﻿
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fds__fn_InvoicePaymentAmount_full]
(
	@InvID varchar(15)
)
RETURNS numeric(9,2)
AS
BEGIN
	DECLARE @RES numeric(9,2);
	DECLARE @invoice_idlist [dbo].[fds__tt__idlist_vchar];
	INSERT INTO @invoice_idlist VALUES(@invid);

	With bs as (
		SELECT * FROM [dbo].[fds__fn_bankingtransactions](null,null, null, null,@invoice_idlist)
	), ci as(
		SELECT [InvId] = d.[StornoTo_InvId], [amount] = ISNULL(i.[InvoiceBalance],0.0) * -1 FROM [dbo].[fds__invoices] as i JOIN [dbo].[fds__invoice_details] as d on i.[Id] = d.[InvId] where d.[StornoTo_InvId] = @InvID  AND i.[IsFinal] = 1
	), tp as (
		SELECT [InvId], [amount] from bs where [invid] = @InvID
		union
		SELECT [InvId], [amount] from ci
	), b as (
		SELECT 
			[InvID]	= @InvID
			,[amount]	= SUM(ISNULL(tp.[amount], 0.0))
		FROM tp
		WHERE tp.[invid] = @InvID
	)
	SELECT TOP(1) @RES = [amount] FROM b;

	RETURN ISNULL(@RES, 0.0);

END