USP_DATAFORMTEMPLATE_EDIT_CHARGE
The save procedure used by the edit dataform template "Charge 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. |
@CHARGEDATE | date | IN | Charge date |
@DUEDATE | date | IN | Due date |
@POSTDATE | datetime | IN | Post date |
@POSTSTATUSCODE | tinyint | IN | Post status |
@BILLINGITEMID | uniqueidentifier | IN | Charging for |
@AMOUNT | money | IN | Charge amount |
@DESCRIPTION | nvarchar(100) | IN | Description |
@CHARGEID | nvarchar(60) | IN | |
@SCHOOLID | uniqueidentifier | IN | School |
@GRADELEVELID | uniqueidentifier | IN | Grade level |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CHARGE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CHARGEDATE date,
@DUEDATE date,
@POSTDATE datetime,
@POSTSTATUSCODE tinyint,
@BILLINGITEMID uniqueidentifier,
@AMOUNT money,
@DESCRIPTION nvarchar(100),
@CHARGEID 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, @CHARGEID, @AMOUNT, @CHARGEDATE, @POSTDATE, @POSTSTATUSCODE;
update dbo.CHARGE set
DUEDATE = @DUEDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
-- update the line items to handle the billing item
update dbo.CHARGELINEITEM
set BILLINGITEMID = @BILLINGITEMID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.CHARGELINEITEM
inner join dbo.FINANCIALTRANSACTIONLINEITEM
on CHARGELINEITEM.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);
--Update student charge information
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(@CHARGEDATE, @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, @CHARGEDATE)
update dbo.STUDENTCHARGE set
STUDENTPROGRESSIONID = @STUDENTPROGRESSIONID,
EDUCATIONALHISTORYID = @STUDENTENROLLMENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;