USP_DATAFORMTEMPLATE_EDIT_DOCUMENTSALESCONDITION

The save procedure used by the edit dataform template "Document Printing Rule 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.
@DOCUMENTPRINTINGRULESALESMETHODS xml IN Sales method

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DOCUMENTSALESCONDITION (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @DOCUMENTPRINTINGRULESALESMETHODS xml
                    )
                    as

                        set nocount on;

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

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                        begin try
                        if @DOCUMENTPRINTINGRULESALESMETHODS is not null
                        begin
                            delete from dbo.DOCUMENTPRINTINGRULESALESMETHOD
                                from @DOCUMENTPRINTINGRULESALESMETHODS.nodes('/DOCUMENTPRINTINGRULESALESMETHODS/ITEM') T(DOCUMENTPRINTINGRULESALESMETHODS) inner join dbo.DOCUMENTPRINTINGRULESALESMETHOD
                                    on T.DOCUMENTPRINTINGRULESALESMETHODS.value('(SALESMETHODID)[1]', 'uniqueidentifier') = DOCUMENTPRINTINGRULESALESMETHOD.SALESMETHODID
                                where 
                                    DOCUMENTPRINTINGRULESALESMETHOD.DOCUMENTPRINTINGRULEID = @ID and
                                    T.DOCUMENTPRINTINGRULESALESMETHODS.value('(ISAVAILABLE)[1]', 'bit') = 0                                


                            insert into dbo.DOCUMENTPRINTINGRULESALESMETHOD
                            (
                                ID,
                                DOCUMENTPRINTINGRULEID,
                                SALESMETHODID,                                
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            select
                                newid(),
                                @ID,
                                T.DOCUMENTPRINTINGRULESALESMETHODS.value('(SALESMETHODID)[1]', 'uniqueidentifier') SALESMETHODID,                                
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            from @DOCUMENTPRINTINGRULESALESMETHODS.nodes('/DOCUMENTPRINTINGRULESALESMETHODS/ITEM') T(DOCUMENTPRINTINGRULESALESMETHODS) left outer join
                                    (select 
                                        DOCUMENTPRINTINGRULESALESMETHOD.SALESMETHODID 
                                    from dbo.DOCUMENTPRINTINGRULE inner join dbo.DOCUMENTPRINTINGRULESALESMETHOD on
                                        DOCUMENTPRINTINGRULE.ID = DOCUMENTPRINTINGRULESALESMETHOD.DOCUMENTPRINTINGRULEID
                                    where
                                        DOCUMENTPRINTINGRULE.ID = @ID) S                                        
                                on T.DOCUMENTPRINTINGRULESALESMETHODS.value('(SALESMETHODID)[1]', 'uniqueidentifier') = S.SALESMETHODID                                
                            where 
                                S.SALESMETHODID is null and
                                T.DOCUMENTPRINTINGRULESALESMETHODS.value('(ISAVAILABLE)[1]', 'bit') = 1

                        end    

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

                    return 0;