USP_DATAFORMTEMPLATE_EDITSAVE_SALESMETHODDELIVERYMETHOD

The save procedure used by the edit dataform template "Edit Sales Method Delivery Methods".

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.
@DELIVERYMETHODS xml IN Delivery methods

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_SALESMETHODDELIVERYMETHOD
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @DELIVERYMETHODS xml
)
as

    set nocount on;

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

  declare @DEFAULTDELIVERYMETHODID uniqueidentifier

  select @DEFAULTDELIVERYMETHODID = SMDM.DELIVERYMETHODID
  from dbo.SALESMETHODDELIVERYMETHOD as SMDM
  inner join dbo.DELIVERYMETHOD as DM on DM.ID = SMDM.DELIVERYMETHODID
  where SALESMETHODID = @ID and ISDEFAULT = 1;

  if (not exists(select D.c.value('(DELIVERYMETHODID)[1]', 'uniqueidentifier') as ID
                from @DELIVERYMETHODS.nodes('/DELIVERYMETHODS/ITEM') D(c)
                where D.c.value('(ISDEFAULT)[1]', 'bit') = 1))
    begin
        raiserror('BBERR_CONFLICTSEXIST', 13, 1);
            return 1
    end

    begin try
        update dbo.SALESMETHODDELIVERYMETHOD
        set ISDEFAULT = 0
        where SALESMETHODID = @ID and ISDEFAULT = 1

        exec dbo.USP_SALESMETHODDELIVERYMETHOD_GETDELIVERYTYPES_UPDATEFROMXML @ID, @DELIVERYMETHODS, @CHANGEAGENTID;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

    return 0;