USP_DATAFORMTEMPLATE_EDIT_PAYMENT_TERM

The save procedure used by the edit dataform template "Payment Term 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.
@NAME nvarchar(20) IN Payment term
@DESCRIPTION nvarchar(100) IN Description
@INCLUDEDISCOUNT bit IN Include discount for payment within a discount period
@DISCOUNTPERCENT decimal(20, 4) IN Discount percent
@DISCOUNTDAYS smallint IN Discount period days
@PAYMENTDUECODE tinyint IN Payment due
@DAYSDUE smallint IN Number of days
@DAYOFMONTHDUE smallint IN Day of month
@MONTHDUECODE smallint IN Month

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PAYMENT_TERM
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(20),
    @DESCRIPTION nvarchar(100),
    @INCLUDEDISCOUNT bit,
    @DISCOUNTPERCENT decimal(20,4),
    @DISCOUNTDAYS smallint,
    @PAYMENTDUECODE tinyint,    
    @DAYSDUE smallint,
    @DAYOFMONTHDUE smallint,
    @MONTHDUECODE smallint
)
as

    set nocount on;

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

  if @PAYMENTDUECODE=1 -- day of month

    set @DAYSDUE=COALESCE(@DAYSDUE,0); -- Infinity does not allow nulls in the db, yet it passes them in in my sprocs. Great.


  if @INCLUDEDISCOUNT=0 
  begin
    set @DISCOUNTPERCENT=COALESCE(@DISCOUNTPERCENT,0);
    set @DISCOUNTDAYS=COALESCE(@DISCOUNTDAYS,0);
  end

    begin try
        -- handle updating the data

        update dbo.PAYMENTTERM set
            NAME = @NAME,
            DESCRIPTION = @DESCRIPTION,
            INCLUDEDISCOUNT = @INCLUDEDISCOUNT,
            DISCOUNTPERCENT = @DISCOUNTPERCENT,
            DISCOUNTDAYS = @DISCOUNTDAYS,
            PAYMENTDUECODE = @PAYMENTDUECODE,
            DAYSDUE = @DAYSDUE,
            DAYOFMONTHDUE = @DAYOFMONTHDUE,
            MONTHDUECODE = @MONTHDUECODE,
                  CHANGEDBYID = @CHANGEAGENTID,
                  DATECHANGED = getdate()
        where ID = @ID
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;