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;