USP_DATAFORMTEMPLATE_EDIT_DAILYSALES_SALESORDERITEMFEE_DELETE

The save procedure used by the edit dataform template "Daily Sales Order Item Fee Delete Edit Data 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.
@FEEID uniqueidentifier IN Fee ID

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DAILYSALES_SALESORDERITEMFEE_DELETE (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @FEEID uniqueidentifier
                )
                as
                    set nocount on;

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @ID, @EXCLUDEGROUPSALES = 1;

                        declare @SALESORDERITEMFEEIDS table(ID uniqueidentifier)
                        insert into @SALESORDERITEMFEEIDS
                        select SOI.ID 
                        from dbo.SALESORDERITEM SOI
                        inner join dbo.SALESORDER SO on SOI.SALESORDERID = SO.ID
                        inner join dbo.SALESORDERITEMFEE SOIF on SOI.ID = SOIF.ID
                        where SO.ID = @ID
                        and SOIF.FEEID = @FEEID

                        insert into dbo.SALESORDERFEEDELETED
                        ( ID, SALESORDERID, FEEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED )
                        values
                        ( newid(), @ID, @FEEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE )

                        declare @SALESORDERITEMID uniqueidentifier

                        declare SALESORDERITEMSTODELETE_CURSOR cursor local fast_forward for
                        select ID
                        from @SALESORDERITEMFEEIDS

                        open SALESORDERITEMSTODELETE_CURSOR
                        fetch next from SALESORDERITEMSTODELETE_CURSOR into @SALESORDERITEMID

                        while @@fetch_status = 0
                        begin
                            -- use the system generated delete routine to allow proper recording of the deleting agent
                            exec USP_SALESORDERITEM_DELETEBYID_WITHCHANGEAGENTID @SALESORDERITEMID, @CHANGEAGENTID;

                            fetch next from SALESORDERITEMSTODELETE_CURSOR into @SALESORDERITEMID
                        end

                        close SALESORDERITEMSTODELETE_CURSOR
                        deallocate SALESORDERITEMSTODELETE_CURSOR

            exec dbo.USP_SALESORDER_CALCULATETAXES @ID, @CHANGEAGENTID;

                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                return 0;