USP_DATAFORMTEMPLATE_EDIT_USP_BANKACCOUNTDEPOSITPAYMENT
The save procedure used by the edit dataform template "Bank Account Deposit Payment 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. |
@DEPOSITID | uniqueidentifier | IN | Deposit |
@BANKACCOUNTDEPOSITPAYMENTID | uniqueidentifier | IN | Deposit payment ID |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_USP_BANKACCOUNTDEPOSITPAYMENT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@DEPOSITID uniqueidentifier,
@BANKACCOUNTDEPOSITPAYMENTID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @POSTDATE datetime
declare @POSTSTATUSCODE tinyint
begin try
if @BANKACCOUNTDEPOSITPAYMENTID is null
insert into dbo.BANKACCOUNTDEPOSITPAYMENT
(ID, DEPOSITID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID, @DEPOSITID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
if @DEPOSITID is not null
begin
select
@POSTDATE = POSTDATE,
@POSTSTATUSCODE = POSTSTATUSCODE
from
dbo.BANKACCOUNTTRANSACTION
where
ID = @DEPOSITID
-- handle updating the data
update dbo.BANKACCOUNTDEPOSITPAYMENT set
DEPOSITID = @DEPOSITID
where ID = @ID;
if exists(select 1 from dbo.ADJUSTMENT where ADJUSTMENT.REVENUEID = @ID)
begin
update dbo.ADJUSTMENT
set POSTDATE = @POSTDATE
where REVENUEID = @ID and POSTSTATUSCODE <> 0
-- update post date on the GL transaction records
/* kwb Change to ANSI syntax
update dbo.GLTRANSACTION
set GLTRANSACTION.POSTDATE = @POSTDATE, GLTRANSACTION.DATECHANGED = @CURRENTDATE, GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
from dbo.GLTRANSACTION
inner join dbo.REVENUEGLDISTRIBUTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.OUTDATED = 0;
*/
update dbo.GLTRANSACTION
set GLTRANSACTION.POSTDATE = @POSTDATE,
GLTRANSACTION.DATECHANGED = @CURRENTDATE,
GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
where ID in (select GLTRANSACTIONID from dbo.REVENUEGLDISTRIBUTION where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.OUTDATED = 0)
-- update post date for unposted reversals
/* kwb Change to ANSI syntax
update dbo.GLTRANSACTION
set GLTRANSACTION.POSTDATE = @POSTDATE, GLTRANSACTION.DATECHANGED = @CURRENTDATE, GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
from dbo.GLTRANSACTION
inner join dbo.REVENUEGLDISTRIBUTION on GLTRANSACTION.REVERSEDGLTRANSACTIONID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where REVENUEGLDISTRIBUTION.REVENUEID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1;\
*/
update dbo.GLTRANSACTION
set GLTRANSACTION.POSTDATE = @POSTDATE,
GLTRANSACTION.DATECHANGED = @CURRENTDATE,
GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
where REVERSEDGLTRANSACTIONID in (select GLTRANSACTIONID from dbo.REVENUEGLDISTRIBUTION where REVENUEGLDISTRIBUTION.REVENUEID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1)
end
exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITEPAYMENTDEBITACCOUNTS @ID, @DEPOSITID, @CHANGEAGENTID, @CURRENTDATE;
declare @REFERENCE nvarchar(100);
select @REFERENCE = REFERENCE from dbo.BANKACCOUNTTRANSACTION where ID = @DEPOSITID;
if len(@REFERENCE) > 0
begin
/* Change to ANSI syntax
update dbo.GLTRANSACTION set REFERENCE = @REFERENCE
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where FINANCIALTRANSACTION.ID = @ID and GLTRANSACTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1;
update dbo.REVENUEGLDISTRIBUTION set REFERENCE = @REFERENCE
from FINANCIALTRANSACTION
inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID
inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
where FINANCIALTRANSACTION.ID = @ID and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1;
*/
update dbo.GLTRANSACTION
set REFERENCE = @REFERENCE,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where ID in (select REVENUEGLDISTRIBUTION.GLTRANSACTIONID from dbo.FINANCIALTRANSACTION inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID)
and POSTSTATUSCODE = 1
update dbo.REVENUEGLDISTRIBUTION
set REFERENCE = @REFERENCE,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where ID in (select REVENUEGLDISTRIBUTION.ID from dbo.REVENUEGLDISTRIBUTION inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1)
end
end
else
update dbo.BANKACCOUNTDEPOSITPAYMENT set DEPOSITID = null where ID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;