USP_DATAFORMTEMPLATE_EDIT_REVENUEVAT
The save procedure used by the edit dataform template "Revenue VAT 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. |
@AMOUNTTOTAX | money | IN | Portion subject to VAT |
@VATTAXRATEID | uniqueidentifier | IN | VAT tax rate |
@VATAMOUNT | money | IN | VAT amount |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUEVAT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@AMOUNTTOTAX money,
@VATTAXRATEID uniqueidentifier,
@VATAMOUNT money
) as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
if @AMOUNTTOTAX > 0
begin
declare @TRANSACTIONVATAMOUNT money;
declare @TRANSACTIONAMOUNTTOTAX money;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @BASEVATAMOUNT money;
declare @BASEAMOUNTTOTAX money;
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONVATAMOUNT money;
declare @ORGANIZATIONAMOUNTTOTAX money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @REVENUETRANSACTIONAMOUNT money;
set @TRANSACTIONVATAMOUNT = @VATAMOUNT;
set @TRANSACTIONAMOUNTTOTAX = @AMOUNTTOTAX;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
@BASECURRENCYID = isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID),
@BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,
@ORGANIZATIONEXCHANGERATEID = FINANCIALTRANSACTION.ORGEXCHANGERATEID,
@REVENUETRANSACTIONAMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT
from
dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where
FINANCIALTRANSACTION.ID = @ID
if @BASECURRENCYID is null
set @BASECURRENCYID = @ORGANIZATIONCURRENCYID
exec dbo.USP_CURRENCY_GETCURRENCYVALUES @TRANSACTIONVATAMOUNT,
@CURRENTDATE,
@BASECURRENCYID,
@BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID,
@BASEVATAMOUNT output,
@ORGANIZATIONCURRENCYID,
@ORGANIZATIONVATAMOUNT output,
@ORGANIZATIONEXCHANGERATEID,
0;
exec dbo.USP_CURRENCY_GETCURRENCYVALUES @TRANSACTIONAMOUNTTOTAX,
@CURRENTDATE,
@BASECURRENCYID,
@BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID,
@BASEAMOUNTTOTAX output,
@ORGANIZATIONCURRENCYID,
@ORGANIZATIONAMOUNTTOTAX output,
@ORGANIZATIONEXCHANGERATEID,
0;
if @TRANSACTIONAMOUNTTOTAX > @REVENUETRANSACTIONAMOUNT
begin
raiserror('ERR_AMOUNTTOTAX_INVALID', 13, 1);
return 0;
end
if exists(select 1 from dbo.REVENUEVAT where ID = @ID)
begin
update
dbo.REVENUEVAT
set
AMOUNTTOTAX = @BASEAMOUNTTOTAX,
VATAMOUNT = @BASEVATAMOUNT,
BASECURRENCYID = @BASECURRENCYID,
BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
TRANSACTIONAMOUNTTOTAX = @TRANSACTIONAMOUNTTOTAX,
TRANSACTIONVATAMOUNT = @TRANSACTIONVATAMOUNT,
TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
ORGANIZATIONAMOUNTTOTAX = @ORGANIZATIONAMOUNTTOTAX,
ORGANIZATIONVATAMOUNT = @ORGANIZATIONVATAMOUNT,
ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
VATTAXRATEID = @VATTAXRATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
end
else
begin
insert into dbo.REVENUEVAT(
ID,
AMOUNTTOTAX,
VATAMOUNT,
BASECURRENCYID,
BASEEXCHANGERATEID,
TRANSACTIONAMOUNTTOTAX,
TRANSACTIONVATAMOUNT,
TRANSACTIONCURRENCYID,
ORGANIZATIONAMOUNTTOTAX,
ORGANIZATIONVATAMOUNT,
ORGANIZATIONEXCHANGERATEID,
VATTAXRATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@ID,
@BASEAMOUNTTOTAX,
@BASEVATAMOUNT,
@BASECURRENCYID,
@BASEEXCHANGERATEID,
@TRANSACTIONAMOUNTTOTAX,
@TRANSACTIONVATAMOUNT,
@TRANSACTIONCURRENCYID,
@ORGANIZATIONAMOUNTTOTAX,
@ORGANIZATIONVATAMOUNT,
@ORGANIZATIONEXCHANGERATEID,
@VATTAXRATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
end
else
begin
exec dbo.USP_REVENUEVAT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;