USP_DATAFORMTEMPLATE_EDIT_RECEIVABLECREDIT
The save procedure used by the edit dataform template "Credit Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CREDITDATE | date | IN | Credit date |
@POSTDATE | datetime | IN | Post date |
@POSTSTATUSCODE | tinyint | IN | Post status |
@BILLINGITEMID | uniqueidentifier | IN | Crediting for |
@AMOUNT | money | IN | Credit amount |
@DESCRIPTION | nvarchar(100) | IN | Description |
@CREDITID | nvarchar(60) | IN | |
@SCHOOLID | uniqueidentifier | IN | School |
@GRADELEVELID | uniqueidentifier | IN | Grade level |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECEIVABLECREDIT
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CREDITDATE date,
@POSTDATE datetime,
@POSTSTATUSCODE tinyint,
@BILLINGITEMID uniqueidentifier,
@AMOUNT money,
@DESCRIPTION nvarchar(100),
@CREDITID nvarchar(60),
@SCHOOLID uniqueidentifier,
@GRADELEVELID uniqueidentifier
)
as
set nocount on;
begin try
if @AMOUNT <= 0
raiserror('ERR_NOT_ALLOW_ZEROAMOUNT', 13, 1);
declare @STUDENTPROGRESSIONID uniqueidentifier;
declare @STUDENTENROLLMENTID uniqueidentifier;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @POSTSTATUSCODE = 3 and @POSTDATE is not null
set @POSTDATE = null;
declare @STUDENTID uniqueidentifier
select @STUDENTID=CONSTITUENTID from dbo.FINANCIALTRANSACTION where ID=@ID
exec dbo.USP_FINANCIALTRANSACTION_EDIT @ID, @CHANGEAGENTID, @STUDENTID, @CREDITID, @AMOUNT, @CREDITDATE, @POSTDATE, @POSTSTATUSCODE;
declare @PRICETYPECODE tinyint
select @PRICETYPECODE=PRICETYPECODE from dbo.BILLINGITEM where dbo.BILLINGITEM.ID=@BILLINGITEMID
if ((@PRICETYPECODE=2 or @PRICETYPECODE = 3) and (@SCHOOLID IS NOT NULL))
begin
select @STUDENTPROGRESSIONID =dbo.UFN_STUDENT_GETSTUDENTPROGRESSIONBYDATE(@CREDITDATE, @STUDENTID, @SCHOOLID)
--If there is no valid student progression check for valid enrollment
if ((@STUDENTPROGRESSIONID is null) and (@PRICETYPECODE = 3))
set @STUDENTENROLLMENTID = dbo.UFN_STUDENT_GETENROLLMENTBYDATE(@STUDENTID, @SCHOOLID, @CREDITDATE)
end
update dbo.RECEIVABLECREDIT set
STUDENTPROGRESSIONID = @STUDENTPROGRESSIONID,
EDUCATIONALHISTORYID = @STUDENTENROLLMENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
-- update the line items to handle the billing item
update dbo.RECEIVABLECREDITLINEITEM
set BILLINGITEMID = @BILLINGITEMID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.RECEIVABLECREDITLINEITEM
inner join dbo.FINANCIALTRANSACTIONLINEITEM
on RECEIVABLECREDITLINEITEM.ID = FINANCIALTRANSACTIONLINEITEM.ID
where (FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID) and
(FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0) and
(FINANCIALTRANSACTIONLINEITEM.DELETEDON is null);
-- Update the basic line items with the new description
update dbo.FINANCIALTRANSACTIONLINEITEM
set DESCRIPTION = @DESCRIPTION,
TRANSACTIONAMOUNT = @AMOUNT,
BASEAMOUNT = @AMOUNT,
ORGAMOUNT = @AMOUNT,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
POSTDATE = @POSTDATE,
POSTSTATUSCODE = @POSTSTATUSCODE
from dbo.FINANCIALTRANSACTIONLINEITEM
where (FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID) and
(FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0) and
(FINANCIALTRANSACTIONLINEITEM.DELETEDON is null);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;