USP_DATAFORMTEMPLATE_EDIT_CREDITMEMO

The save procedure used by the edit dataform template "Credit Memo 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.
@VENDORID uniqueidentifier IN Vendor
@CREDITMEMONUMBER nvarchar(60) IN Credit memo number
@PURCHASEORDERID nvarchar(20) IN PO number
@AMOUNT money IN Credit memo amount
@DATE datetime IN Credit memo date
@POSTDATE datetime IN Post date
@POSTSTATUSCODE tinyint IN Post status
@BANKACCOUNTID uniqueidentifier IN Bank account
@REMITADDRESSID uniqueidentifier IN Remit to address
@DESCRIPTION nvarchar(100) IN Credit memo description

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CREDITMEMO(
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @VENDORID uniqueidentifier,
                        @CREDITMEMONUMBER nvarchar(60),
                        @PURCHASEORDERID nvarchar(20),
                        @AMOUNT money,
                        @DATE datetime,
                        @POSTDATE datetime,
                        @POSTSTATUSCODE tinyint,
                        @BANKACCOUNTID uniqueidentifier,
                        @REMITADDRESSID uniqueidentifier,
            @DESCRIPTION nvarchar(100)
                    )
                    as

                        set nocount on;

                        declare @CURRENTDATE datetime;

                        begin try
                            if @CHANGEAGENTID is null  
                                exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                            set @CURRENTDATE = getdate();

              if @POSTSTATUSCODE = 3 and @POSTDATE is not null
                set @POSTDATE = null;

              if @AMOUNT <= 0 
                raiserror('ERR_NOT_ALLOW_ZEROAMOUNT', 13, 1);     

                            exec dbo.USP_FINANCIALTRANSACTION_EDIT @ID, @CHANGEAGENTID, @VENDORID, @CREDITMEMONUMBER, @AMOUNT, @DATE, @POSTDATE, @POSTSTATUSCODE, @DESCRIPTION;
              exec dbo.USP_FINANCIALTRANSACTIONSCHEDULE_UPDATE @ID, @CHANGEAGENTID, @AMOUNT, @DATE

              exec USP_CREDITMEMO_VALIDATE  @ID,@REMITADDRESSID,@BANKACCOUNTID 

                            -- handle updating the data

                            update dbo.CREDITMEMO set
                                PURCHASEORDERID = @PURCHASEORDERID,
                                BANKACCOUNTID = @BANKACCOUNTID,
                                REMITADDRESSID = @REMITADDRESSID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where ID = @ID;

              if exists (select ID from dbo.FINANCIALTRANSACTION1099DISTRIBUTION where FINANCIALTRANSACTIONID = @ID)
                exec dbo.USP_UPDATE1099DISTRIBUTION @ID, @AMOUNT;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                    return 0;