USP_DATAFORMTEMPLATE_EDIT_MISCELLANEOUSPAYMENT2
The save procedure used by the edit dataform template "Miscellaneous Payment Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@PAYMENTDATE | datetime | IN | Payment date |
@PAYMENTMETHODCODE | tinyint | IN | Payment method |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN | Other method |
@CHECKDATE | UDT_FUZZYDATE | IN | Check date |
@CHECKNUMBER | nvarchar(20) | IN | Check number |
@REFERENCEDATE | UDT_FUZZYDATE | IN | Reference date |
@REFERENCENUMBER | nvarchar(20) | IN | Reference number |
@CARDHOLDERNAME | nvarchar(255) | IN | Name on card |
@CREDITCARDNUMBER | nvarchar(4) | IN | Card number |
@CREDITTYPECODEID | uniqueidentifier | IN | Card type |
@AUTHORIZATIONCODE | nvarchar(20) | IN | Authorization code |
@EXPIRESON | UDT_FUZZYDATE | IN | Expires on |
@AMOUNT | money | IN | Amount |
@POSTDATE | datetime | IN | Post date |
@POSTSTATUSCODE | tinyint | IN | Post status |
@DEPOSITID | uniqueidentifier | IN | Deposit |
@PAYMENTSOURCE | nvarchar(100) | IN | Reference |
@BASEEXCHANGERATEID | uniqueidentifier | IN | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | IN | Exchange rate |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MISCELLANEOUSPAYMENT2(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@PAYMENTDATE datetime,
@PAYMENTMETHODCODE tinyint,
@OTHERPAYMENTMETHODCODEID uniqueidentifier,
@CHECKDATE dbo.UDT_FUZZYDATE,
@CHECKNUMBER nvarchar(20),
@REFERENCEDATE dbo.UDT_FUZZYDATE,
@REFERENCENUMBER nvarchar(20),
@CARDHOLDERNAME nvarchar(255),
@CREDITCARDNUMBER nvarchar(4),
@CREDITTYPECODEID uniqueidentifier,
@AUTHORIZATIONCODE nvarchar(20),
@EXPIRESON dbo.UDT_FUZZYDATE,
@AMOUNT money,
@POSTDATE datetime,
@POSTSTATUSCODE tinyint,
@DEPOSITID uniqueidentifier,
@PAYMENTSOURCE nvarchar(100),
@BASEEXCHANGERATEID uniqueidentifier,
@EXCHANGERATE decimal(20,8)
)
as
set nocount on;
if @POSTSTATUSCODE = 1
begin
if not exists(select ID from GLFISCALPERIOD where CAST(@POSTDATE as date) <= GLFISCALPERIOD.ENDDATE and CAST(@POSTDATE as date) >= GLFISCALPERIOD.STARTDATE and GLFISCALPERIOD.CLOSED = 0)
begin
RAISERROR ('ERR_POSTDATE_CLOSEDFISCALPERIOD', 16, 1)
return 1;
end
end
-- Check GL business rule for this account system and set to 'Do not post' if needed.
-- ****
declare @PDACCOUNTSYSTEMID uniqueidentifier;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID
from dbo.PDACCOUNTSYSTEMFORREVENUE
where ID = @ID;
declare @ALLOWGLDISTRIBUTIONS bit;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
if @ALLOWGLDISTRIBUTIONS = 0
set @POSTSTATUSCODE = 2 -- Do not post
-- ****
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime = getdate()
declare @DEPOSITREFERENCE nvarchar(100);
declare @ORIGINALAMOUNT money;
declare @ORIGINALREFERENCE nvarchar(100);
declare @BASECURRENCYID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @ORIGINALBASEEXCHANGERATEID uniqueidentifier;
select
@ORIGINALAMOUNT = REVENUE.AMOUNT
,@ORIGINALREFERENCE = REVENUEREFERENCE.REFERENCE
,@BASECURRENCYID = REVENUE.BASECURRENCYID
,@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
,@ORIGINALBASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID
from REVENUE
left outer join dbo.REVENUEREFERENCE on REVENUEREFERENCE.ID = REVENUE.ID
where REVENUE.ID = @ID;
if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001' and exists(select 1 from dbo.CURRENCYEXCHANGERATE where ID = @ORIGINALBASEEXCHANGERATEID and TYPECODE = 2 and RATE = @EXCHANGERATE)
set @BASEEXCHANGERATEID = @ORIGINALBASEEXCHANGERATEID;
declare @ORGAMOUNTORIGINCODE tinyint;
declare @ORGCURRENCYID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGCURRENCYNAME nvarchar(100);
select @ORGAMOUNTORIGINCODE = ORGANIZATIONAMOUNTORIGINCODE from dbo.MULTICURRENCYCONFIGURATION;
select @ORGCURRENCYID = ID, @ORGCURRENCYNAME = NAME from dbo.CURRENCY where ISORGANIZATIONCURRENCY = 1;
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE(@BASECURRENCYID, @ORGCURRENCYID, @PAYMENTDATE, null, @TRANSACTIONCURRENCYID);
if (@ORGAMOUNTORIGINCODE = 1 and @TRANSACTIONCURRENCYID <> @ORGCURRENCYID) or (@ORGAMOUNTORIGINCODE = 0 and @BASECURRENCYID <> @ORGCURRENCYID)
if @ORGANIZATIONEXCHANGERATEID is null
begin
declare @CURRENCYNAME nvarchar(100);
select @CURRENCYNAME = NAME from dbo.CURRENCY where (ID = @TRANSACTIONCURRENCYID and @ORGAMOUNTORIGINCODE = 1) or (ID = @BASECURRENCYID and @ORGAMOUNTORIGINCODE = 0)
declare @errormessage nvarchar(200);
set @errormessage = 'A corporate exchange rate does not exist for ' + isnull(@CURRENCYNAME, '') + ' to ' + isnull(@ORGCURRENCYNAME, '')
raiserror (@errormessage, 16, 1);
end
--Normal revenue payments (non-miscellaneous) have one or more revenue streams associated with them via the application grid in the
--payment add/edit UI. Miscellaneous payments have one and only one application (one entry in the REVENUESPLIT table per REVENUE entry)
--and there is no UI for creating the REVENUESTREAMS xml. We're creating the XML parameter here based on the values entered in the UI.
--Selecting the top 1 row will ensure there is only one application saved per miscellaneous payment REVENUE entry.
declare @REVENUESTREAMS xml = (select top 1
REVENUESPLIT.APPLICATIONCODE,
@AMOUNT AS APPLIED,
lower(cast(REVENUESPLIT.ID as char(36))) AS ID,
REVENUESPLIT.TYPECODE,
lower(cast(REVENUESPLIT.TRANSACTIONCURRENCYID as char(36))) APPLICATIONCURRENCYID,
lower(cast(REVENUESPLIT.TRANSACTIONCURRENCYID as char(36))) TRANSACTIONCURRENCYID
from REVENUESPLIT
where REVENUESPLIT.REVENUEID = @ID
for xml raw('ITEM'),type,elements,root('REVENUESTREAMS'),BINARY BASE64)
declare @ORIGINALPAYMETHODID uniqueidentifier, @ORIGINALPAYMENTMETHODCODE tinyint, @ORIGINALCREDITCARDTYPE uniqueidentifier, @ORIGINALOTHERPAYMENTMETHODCODEID uniqueidentifier;
select
@ORIGINALPAYMETHODID = REVENUEPAYMENTMETHOD.ID,
@ORIGINALPAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
@ORIGINALCREDITCARDTYPE = CREDITCARDPAYMENTMETHODDETAIL.CREDITTYPECODEID,
@ORIGINALOTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID
from dbo.REVENUEPAYMENTMETHOD
left outer join dbo.CREDITCARDPAYMENTMETHODDETAIL on REVENUEPAYMENTMETHOD.ID = CREDITCARDPAYMENTMETHODDETAIL.ID
left outer join dbo.OTHERPAYMENTMETHODDETAIL on REVENUEPAYMENTMETHOD.ID = OTHERPAYMENTMETHODDETAIL.ID
where REVENUEPAYMENTMETHOD.REVENUEID = @ID
begin try
exec dbo.USP_PAYMENT_EDIT_2
@ID = @ID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE,
@DATE = @PAYMENTDATE,
@AMOUNT = @AMOUNT,
@REFERENCE = @PAYMENTSOURCE,
@RECEIPTAMOUNT = @AMOUNT,
@REVENUESTREAMS = @REVENUESTREAMS,
@SOURCECODE = '',
@APPEALID = null,
@BENEFITS = null,
@BENEFITSWAIVED = 0,
@GIVENANONYMOUSLY = 0,
@MAILINGID = null,
@CHANNELCODEID = null,
@DONOTRECEIPT = 0,
@BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
@EXCHANGERATE = @EXCHANGERATE
if @DEPOSITID is null
update dbo.BANKACCOUNTDEPOSITPAYMENT set
DEPOSITID = @DEPOSITID
where ID = @ID;
update dbo.REVENUEPAYMENTMETHOD set
PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ORIGINALPAYMETHODID;
exec dbo.USP_REVENUE_UPDATEPAYMENTDETAILS
@PAYMENTMETHODID = @ORIGINALPAYMETHODID,
@PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
@CHECKDATE = @CHECKDATE,
@CHECKNUMBER = @CHECKNUMBER,
@REFERENCEDATE = @REFERENCEDATE,
@REFERENCENUMBER = @REFERENCENUMBER,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@AUTHORIZATIONCODE = @AUTHORIZATIONCODE,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CHANGEDATE = @CURRENTDATE,
@KEYALREADYOPEN = 0,
@OTHERPAYMENTMETHODCODEID = @OTHERPAYMENTMETHODCODEID,
@REVENUEAMOUNT = @AMOUNT,
@ORIGINALPAYMENTMETHODCODE = @ORIGINALPAYMENTMETHODCODE;
declare @OLDPOSTDATE datetime;
declare @OLDDONOTPOST bit;
declare @DONOTPOST bit = case when @POSTSTATUSCODE = 2 then 1 else 0 end;
select @OLDPOSTDATE = POSTDATE, @OLDDONOTPOST = DONOTPOST from dbo.REVENUE where ID = @ID;
if @OLDPOSTDATE <> @POSTDATE or @OLDDONOTPOST <> @DONOTPOST
begin
update dbo.REVENUE
set POSTDATE = @POSTDATE,
DONOTPOST = @DONOTPOST,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
update dbo.GLTRANSACTION
set POSTDATE = @POSTDATE,
POSTSTATUSCODE = CASE WHEN @DONOTPOST = 1 THEN 2 ELSE 1 END,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID in (select REVENUEGLDISTRIBUTION.GLTRANSACTIONID
from dbo.REVENUEGLDISTRIBUTION
where REVENUEGLDISTRIBUTION.REVENUEID = @ID)
end
declare @PREVIOUSDEPOSITID uniqueidentifier;
declare @CLEARALLGLDISTRIBUTIONS bit = 0;
select @PREVIOUSDEPOSITID = DEPOSITID from dbo.BANKACCOUNTDEPOSITPAYMENT where ID = @ID;
if @DEPOSITID is not null
update dbo.BANKACCOUNTDEPOSITPAYMENT set
DEPOSITID = @DEPOSITID
where ID = @ID;
if @ORIGINALPAYMENTMETHODCODE <> @PAYMENTMETHODCODE or @ORIGINALAMOUNT <> @AMOUNT or (@PREVIOUSDEPOSITID is not null and @DEPOSITID is null) or (@OLDDONOTPOST <> @DONOTPOST) or (@ORIGINALCREDITCARDTYPE <> @CREDITTYPECODEID) or (@ORIGINALOTHERPAYMENTMETHODCODEID <> @OTHERPAYMENTMETHODCODEID)
begin
declare @GLTRANSACTIONIDS table (ID uniqueidentifier);
insert into @GLTRANSACTIONIDS
select GLTRANSACTIONID
from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;
delete from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;
delete from dbo.GLTRANSACTION where ID in (select ID from @GLTRANSACTIONIDS);
if @DONOTPOST = 0
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @ID, @CHANGEAGENTID, @CURRENTDATE;
end
declare @BATRANSACTIONCURRENCYID uniqueidentifier;
if (@DEPOSITID is not null) and ((isnull(@PREVIOUSDEPOSITID, NEWID()) <> @DEPOSITID) or (@ORIGINALPAYMENTMETHODCODE <> @PAYMENTMETHODCODE) or (@ORIGINALAMOUNT <> @AMOUNT) or ((@OLDDONOTPOST <> @DONOTPOST) and @DONOTPOST = 0) or (@ORIGINALCREDITCARDTYPE <> @CREDITTYPECODEID) or (@ORIGINALOTHERPAYMENTMETHODCODEID <> @OTHERPAYMENTMETHODCODEID))
begin
exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITEPAYMENTDEBITACCOUNTS @ID, @DEPOSITID, @CHANGEAGENTID, @CURRENTDATE;
select @DEPOSITREFERENCE = REFERENCE
,@BATRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
from dbo.BANKACCOUNTTRANSACTION
inner join dbo.BANKACCOUNT on BANKACCOUNTTRANSACTION.BANKACCOUNTID = BANKACCOUNTID
where BANKACCOUNTTRANSACTION.ID = @DEPOSITID;
end
if (@ORIGINALREFERENCE <> @PAYMENTSOURCE) or len(@PAYMENTSOURCE) > 0
begin
declare @PAYMENTMETHOD nvarchar(50);
select @PAYMENTMETHOD = REVENUEPAYMENTMETHOD.PAYMENTMETHOD
from dbo.REVENUEPAYMENTMETHOD
where ID = @ORIGINALPAYMETHODID;
declare @SPLITID uniqueidentifier;
declare @APPLICATION nvarchar(50);
select @SPLITID = T.ID, @APPLICATION = REVENUESPLIT.APPLICATION
from dbo.UFN_REVENUE_GETAPPLICATIONS_FROMXML(@REVENUESTREAMS) as T
left outer join dbo.REVENUESPLIT on REVENUESPLIT.ID = T.ID;
if len(@DEPOSITREFERENCE) = 0 or @DEPOSITREFERENCE is null
select @DEPOSITREFERENCE = REFERENCE from dbo.BANKACCOUNTTRANSACTION where ID = @DEPOSITID;
/* kwb Change to ANSI syntax
update dbo.GLTRANSACTION set REFERENCE =
CASE WHEN ((GLTRANSACTION.TRANSACTIONTYPECODE = 0) AND (LEN(@DEPOSITREFERENCE) > 0))
THEN @DEPOSITREFERENCE
ELSE CASE WHEN len(@PAYMENTSOURCE) > 0 THEN @PAYMENTSOURCE
ELSE dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE(@SPLITID, @PAYMENTMETHOD, @APPLICATION) END
END
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
from dbo.REVENUE
inner join dbo.REVENUEGLDISTRIBUTION on REVENUE.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUE.ID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1
and ((GLTRANSACTION.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID and GLTRANSACTION.TRANSACTIONTYPECODE = 1)
or ((GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID or @BATRANSACTIONCURRENCYID is null) and GLTRANSACTION.TRANSACTIONTYPECODE = 0));
update dbo.REVENUEGLDISTRIBUTION set REFERENCE =
CASE WHEN ((REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0) and (LEN(@DEPOSITREFERENCE) > 0))
THEN @DEPOSITREFERENCE
ELSE CASE WHEN len(@PAYMENTSOURCE) > 0 THEN @PAYMENTSOURCE
ELSE dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE(@SPLITID, @PAYMENTMETHOD, @APPLICATION) END
END
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
from dbo.REVENUE
inner join dbo.REVENUEGLDISTRIBUTION on REVENUE.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUE.ID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1
and ((GLTRANSACTION.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID and GLTRANSACTION.TRANSACTIONTYPECODE = 1)
or ((GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID or @BATRANSACTIONCURRENCYID is null) and GLTRANSACTION.TRANSACTIONTYPECODE = 0));
*/
declare @Refs table (GLTransactionID uniqueidentifier, RevenueGLDistributionID uniqueidentifier, Reference nvarchar(255))
insert into @Refs (GLTransactionID, RevenueGLDistributionID, Reference)
select GLTransaction.ID, REVENUEGLDistribution.ID,
CASE WHEN ((GLTRANSACTION.TRANSACTIONTYPECODE = 0) AND (LEN(@DEPOSITREFERENCE) > 0)) THEN @DEPOSITREFERENCE
ELSE CASE WHEN len(@PAYMENTSOURCE) > 0 THEN @PAYMENTSOURCE
ELSE dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE(@SPLITID, @PAYMENTMETHOD, @APPLICATION)
END
END
from dbo.REVENUE inner join dbo.REVENUEGLDISTRIBUTION on REVENUE.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUE.ID = @ID
and GLTRANSACTION.POSTSTATUSCODE = 1
and ((GLTRANSACTION.TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID and GLTRANSACTION.TRANSACTIONTYPECODE = 1)
or ((GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID or @BATRANSACTIONCURRENCYID is null) and GLTRANSACTION.TRANSACTIONTYPECODE = 0));
update dbo.GLTRANSACTION
set REFERENCE = (select Reference from @Refs where GLTransactionID = GLTRANSACTION.ID)
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
where ID in (select GLTransactionID from @Refs)
update dbo.REVENUEGLDISTRIBUTION
set REFERENCE = (select Reference from @Refs where RevenueGLDistributionID = REVENUEGLDISTRIBUTION.ID)
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
where ID in (select RevenueGLDistributionID from @Refs)
end
else if @DEPOSITID is not null and len(@DEPOSITREFERENCE) > 0
begin
/* kwb Change to ANSI syntax
update dbo.GLTRANSACTION set REFERENCE = @DEPOSITREFERENCE
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
from dbo.REVENUE
inner join dbo.REVENUEGLDISTRIBUTION on REVENUE.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUE.ID = @ID and GLTRANSACTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1
and GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID;
update dbo.REVENUEGLDISTRIBUTION set REFERENCE = @DEPOSITREFERENCE
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
from dbo.REVENUE
inner join dbo.REVENUEGLDISTRIBUTION on REVENUE.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUE.ID = @ID and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1
and GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID;
*/
update dbo.GLTRANSACTION
set REFERENCE = @DEPOSITREFERENCE
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
where ID in (select GLTRANSACTION.ID
from dbo.REVENUEGLDISTRIBUTION inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUEGLDISTRIBUTION.REVENUEID = @ID
and GLTRANSACTION.TRANSACTIONTYPECODE = 0
and GLTRANSACTION.POSTSTATUSCODE = 1
and GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID);
update dbo.REVENUEGLDISTRIBUTION
set REFERENCE = @DEPOSITREFERENCE
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @CURRENTDATE
where ID in (select REVENUEGLDISTRIBUTION.ID
from REVENUEGLDISTRIBUTION
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUEGLDISTRIBUTION.REVENUEID = @ID
and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0
and GLTRANSACTION.POSTSTATUSCODE = 1
and GLTRANSACTION.TRANSACTIONCURRENCYID = @BATRANSACTIONCURRENCYID);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;