/****** Object:  StoredProcedure [dbo].[GetImponibile_CoeffConv]    Script Date: 06/09/2011 11:59:59 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetImponibile_CoeffConv]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetImponibile_CoeffConv]
GO


/****** Object:  StoredProcedure [dbo].[GetImponibile_CoeffConv]    Script Date: 06/09/2011 12:00:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Crea il totale del documento considerando il coifficente di conversione tra unità di misura acquisto
-- e l'unità di misura della vendita.
-- Viene richiamata questa procedure solo per ducumenti verso a Fornitori
-- =============================================

CREATE PROCEDURE [dbo].[GetImponibile_CoeffConv] 
	-- Add the parameters for the stored procedure here
	@idDoc as integer
AS
	declare @iva DECIMAL 
	declare @qta DECIMAL(18,6)
	declare @prezzoCopertina DECIMAL(18,6)
	declare @prezzoNetto DECIMAL(18,6)
	declare @CoeffConv  DECIMAL(18,6)
	declare @totImponibile DECIMAL (18,6)
	declare @totIVA DECIMAL (18,6)
	declare @totaleDocumento DECIMAL(18,6)
	declare @sconto DECIMAL(18,6)
BEGIN

	SET NOCOUNT ON;
	set @totImponibile = 0.0
	set @totaleDocumento = 0.0

	
	DECLARE Cursore CURSOR FOR 	select iva, qta, prezzoCopertina,prezzoNetto, CoeffConv,sconto from vdocumentirighe left outer join prodotti on vdocumentirighe.idprod = prodotti.idprod where iddocumento = @idDoc        
 
	OPEN Cursore

	FETCH NEXT FROM Cursore INTO @iva,@qta,@prezzoCopertina,@PrezzoNetto,@CoeffConv,@sconto

	WHILE @@FETCH_STATUS = 0
	BEGIN

		set @CoeffConv = ISNULL (@CoeffConv, 1)
		set @sconto = ISNULL (@sconto, 1)
		if (@iva=0)
			 if @sconto=0
			    begin 
				   set @totImponibile =  @totImponibile + (@PrezzoNetto    * ( @qta/@CoeffConv))
	   			   set @totaleDocumento = @totaleDocumento + ( @PrezzoNetto * ( @qta/@CoeffConv ) )
	   			end   
	   			else
	   			begin
	   			   set @totImponibile =  @totImponibile + (@PrezzoNetto    * ( @qta/@sconto))
	   			   set @totaleDocumento = @totaleDocumento + ( @PrezzoNetto * ( @qta/@sconto ) )      
	   			end   
		else
			  if @sconto=0 
			      begin
				    set @totImponibile =  @totImponibile + (@prezzoCopertina / ( 1 + (@iva/100) ))   * ( @qta/@CoeffConv)
	   			    set @totaleDocumento = @totaleDocumento + ( @prezzoCopertina * ( @qta/@CoeffConv ) )
	   			    print @CoeffConv
	   			  end  
	   			else
	   			  begin   
	   			    set @totImponibile =  @totImponibile + (@prezzoCopertina / ( 1 + (@iva/100) ))   * ( @qta/@sconto)
	   			    set @totaleDocumento = @totaleDocumento + ( @prezzoCopertina * ( @qta/@sconto ) )
	   			   end
			

		--Vecchio Sistema				
		--set @totImponibile =  @totImponibile + (@prezzo / ( 1 + (@iva/100) ))   * ( @qta/@CoeffConv)
	   	--set @totaleDocumento = @totaleDocumento + ( @prezzo * ( @qta/@CoeffConv ) )

		FETCH NEXT FROM Cursore INTO @iva,@qta,@prezzoCopertina,@PrezzoNetto,@CoeffConv,@sconto

	END

CLOSE Cursore
DEALLOCATE Cursore
--print @totaleDocumento 
--print @totImponibile

IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[returnVAlues]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE dbo.returnVAlues 
( 
    totDocumento decimal (8,3),
    totImponibile decimal(8,3)
) 
INSERT dbo.returnVAlues values (@totaleDocumento , @totImponibile)

select * from dbo.returnVAlues 
drop TABLE dbo.returnVAlues 
END


GO

