USP_DATAFORMTEMPLATE_EDIT_RESERVATIONSECURITYDEPOSITCREDIT
The save procedure used by the edit dataform template "Reservation Security Deposit Refund Edit Data 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. |
@AMOUNTCHARGED | money | IN | Amount charged |
@AMOUNTPAID | money | IN | Amount paid |
@WITHHOLDREASONCODEID | uniqueidentifier | IN | Reason |
@AMOUNTWITHHELD | money | IN | Amount |
@REFUNDAMOUNT | money | IN | Refund amount |
@REFUNDMETHOD | int | IN | Refund method |
@COMMENT | nvarchar(max) | IN | Comment |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RESERVATIONSECURITYDEPOSITCREDIT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@AMOUNTCHARGED money,
@AMOUNTPAID money,
@WITHHOLDREASONCODEID uniqueidentifier,
@AMOUNTWITHHELD money,
@REFUNDAMOUNT money,
@REFUNDMETHOD int,
@COMMENT nvarchar(max),
@CURRENTAPPUSERID uniqueidentifier
)
as
set nocount on;
declare @CREDITID uniqueidentifier = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @AMOUNTREFUNDING money
if @WITHHOLDREASONCODEID is null
set @AMOUNTREFUNDING = @AMOUNTPAID
else
set @AMOUNTREFUNDING = @AMOUNTPAID - @AMOUNTWITHHELD
if @WITHHOLDREASONCODEID is null and @AMOUNTREFUNDING > 0
begin
-- Refund
declare @CONSTITUENTID uniqueidentifier
select @CONSTITUENTID = [CONSTITUENTID] from dbo.[SALESORDER] where [ID] = @ID
insert into dbo.CREDIT
(
ID,
SALESORDERID,
AMOUNT,
COMMENT,
CREDITREASONCODEID,
TRANSACTIONDATE,
CONSTITUENTID,
APPUSERID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@CREDITID,
@ID,
@AMOUNTREFUNDING,
@COMMENT,
case @WITHHOLDREASONCODEID
when '00000000-0000-0000-0000-000000000000' then null
else @WITHHOLDREASONCODEID
end,
@CURRENTDATE,
@CONSTITUENTID,
@CURRENTAPPUSERID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
-- Update security deposit status
if @AMOUNTREFUNDING = @AMOUNTPAID
update dbo.RESERVATION set SECURITYDEPOSITSTATUSCODE = 2, DATECHANGED = @CURRENTDATE, CHANGEDBYID = @CHANGEAGENTID
where RESERVATION.ID = @ID
else if @AMOUNTREFUNDING = 0
update dbo.RESERVATION set SECURITYDEPOSITSTATUSCODE = 3, DATECHANGED = @CURRENTDATE, CHANGEDBYID = @CHANGEAGENTID
where RESERVATION.ID = @ID
else if @AMOUNTREFUNDING < @AMOUNTPAID
update dbo.RESERVATION set SECURITYDEPOSITSTATUSCODE = 4, DATECHANGED = @CURRENTDATE, CHANGEDBYID = @CHANGEAGENTID
where RESERVATION.ID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;