USP_DATAFORMTEMPLATE_ADD_PLEDGEWRITEOFF
The save procedure used by the add dataform template "Pledge Write-off Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@REVENUEID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@DATE | datetime | IN | Date |
@WRITEOFFTOTALAMOUNT | money | IN | Amount |
@POSTSTATUSCODE | tinyint | IN | GL post status |
@POSTDATE | datetime | IN | GL post date |
@REASON | nvarchar(300) | IN | Write-off reason |
@INSTALLMENTS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLEDGEWRITEOFF (
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier,
@REVENUEID uniqueidentifier,
@DATE datetime,
@WRITEOFFTOTALAMOUNT money = 0,
@POSTSTATUSCODE tinyint = 1,
@POSTDATE datetime = null,
@REASON nvarchar(300) = null,
@INSTALLMENTS xml
)
as
begin
set nocount on;
declare @CURRENTDATE datetime;
declare @PLEDGEID uniqueidentifier;
if @ID is null
set @ID = NewID();
set @CURRENTDATE = GetDate();
select
@PLEDGEID = REVENUE.ID
from
dbo.REVENUE
where
REVENUE.ID = @REVENUEID;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
insert into dbo.WRITEOFF (ID,REVENUEID,DATE,POSTSTATUSCODE,POSTDATE,REASON,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values (@ID,@PLEDGEID,@DATE,@POSTSTATUSCODE,@POSTDATE,@REASON,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
exec dbo.USP_INSTALLMENT_WRITEOFFINSTALLMENTS @ID,@WRITEOFFTOTALAMOUNT,@CHANGEAGENTID,@CURRENTDATE,0,@INSTALLMENTS;
insert into dbo.WRITEOFFSPLIT(ID, WRITEOFFID, DESIGNATIONID, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
newid(),
@ID,
DESIGNATIONID,
AMOUNT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from (select INSTALLMENTSPLIT.DESIGNATIONID, sum(INSTALLMENTSPLITWRITEOFF.AMOUNT) AMOUNT
from dbo.INSTALLMENTSPLITWRITEOFF
inner join dbo.INSTALLMENTSPLIT
on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where
INSTALLMENTSPLITWRITEOFF.WRITEOFFID = @ID
and INSTALLMENTSPLIT.PLEDGEID = @PLEDGEID
group by INSTALLMENTSPLIT.DESIGNATIONID) a
--Save the write-off GL distributions
if @POSTSTATUSCODE <> 2
exec dbo.USP_SAVE_WRITEOFFGLDISTRIBUTION @PLEDGEID, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end