USP_DATAFORMTEMPLATE_ADD_CREDITMEMO
The save procedure used by the add dataform template "Credit Memo Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@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 |
@FINANCIALTRANSACTION1099DISTRIBUTIONS | xml | IN | 1099 distribution |
@DESCRIPTION | nvarchar(100) | IN | Credit memo description |
@LINEITEMS | xml | IN | Line items |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CREDITMEMO
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@VENDORID uniqueidentifier,
@CREDITMEMONUMBER nvarchar(60) = '',
@PURCHASEORDERID nvarchar(20) = '',
@AMOUNT money = 0,
@DATE datetime = null,
@POSTDATE datetime = null,
@POSTSTATUSCODE tinyint = 1,
@BANKACCOUNTID uniqueidentifier = null,
@REMITADDRESSID uniqueidentifier = null,
@FINANCIALTRANSACTION1099DISTRIBUTIONS xml = null,
@DESCRIPTION nvarchar(100) = ''
,@LINEITEMS xml = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @LINEITEMID uniqueidentifier;
begin try
if @ID is null
set @ID = newid();
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_ADD @ID, @CHANGEAGENTID, @VENDORID, @CREDITMEMONUMBER, 102, @AMOUNT, @DATE, @POSTDATE, @POSTSTATUSCODE, @DESCRIPTION, @LINEITEMS;
insert into dbo.CREDITMEMO
(
ID,
PURCHASEORDERID,
BANKACCOUNTID,
REMITADDRESSID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@PURCHASEORDERID,
@BANKACCOUNTID,
@REMITADDRESSID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec USP_FINANCIALTRANSACTIONSCHEDULE_ADD null, @CHANGEAGENTID, @ID, @DATE, @AMOUNT
if @FINANCIALTRANSACTION1099DISTRIBUTIONS is not null
exec dbo.USP_FINANCIALTRANSACTION_1099DISTRIBUTION_UPDATEFROMXML @ID, @VENDORID, @FINANCIALTRANSACTION1099DISTRIBUTIONS, @CHANGEAGENTID, @CURRENTDATE;
else if exists(select * from dbo.VENDOR1099DISTRIBUTION where VENDOR1099SETTINGID = @VENDORID)
insert into dbo.FINANCIALTRANSACTION1099DISTRIBUTION (
ID,
FINANCIALTRANSACTIONID,
BOXNUMBER1099ID,
STATEID,
[PERCENT],
AMOUNT,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
newid(),
@ID,
BOXNUMBER1099ID,
STATEID,
[PERCENT],
((@AMOUNT * [PERCENT]) / 100),
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.VENDOR1099DISTRIBUTION
where VENDOR1099SETTINGID = @VENDORID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;