USP_RECEIVABLEPAYMENTCREDIT_APPLY
Applies a payment line item to a charge line item.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@LINEITEMAPPLICATIONID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@PAYMENTCREDITLINEITEM | uniqueidentifier | IN | |
@CHARGELINEITEM | uniqueidentifier | IN | |
@AMOUNT | money | IN |
Definition
Copy
create procedure dbo.USP_RECEIVABLEPAYMENTCREDIT_APPLY
(
@LINEITEMAPPLICATIONID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@PAYMENTCREDITLINEITEM uniqueidentifier,
@CHARGELINEITEM uniqueidentifier,
@AMOUNT money
)
as
begin
set nocount on;
begin try
-- Check specific application rules
-- Payment line item must be from a payment or credit
if (exists (select FINANCIALTRANSACTION.ID
from dbo.FINANCIALTRANSACTION
inner join dbo.FINANCIALTRANSACTIONLINEITEM
on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where (FINANCIALTRANSACTIONLINEITEM.ID = @PAYMENTCREDITLINEITEM) and
(FINANCIALTRANSACTION.TYPECODE in (105, 106)))) -- Payment or credit
raiserror('ERR_RECEIVABLEPAYMENTCREDITAPPLICATION_PAYMENTLINEITEMNOTFROMPAYMENT', 13,1);
-- Charge line item must be from a payment
if (exists (select FINANCIALTRANSACTION.ID
from dbo.FINANCIALTRANSACTION
inner join dbo.FINANCIALTRANSACTIONLINEITEM
on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where (FINANCIALTRANSACTIONLINEITEM.ID = @PAYMENTCREDITLINEITEM) and
(FINANCIALTRANSACTION.TYPECODE = 104))) -- Charge
raiserror('ERR_RECEIVABLEPAYMENTCREDITAPPLICATION_CHARGELINEITEMNOTFROMCHARGE', 13,1);
-- Otherwise create the application, basic rules are handled in this sproc.
exec dbo.USP_FINANCIALTRANSACTION_LINEITEMAPPLICATIONS_APPLY @LINEITEMAPPLICATIONID output,
@CHANGEAGENTID,
@PAYMENTCREDITLINEITEM,
@CHARGELINEITEM,
@AMOUNT;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end