USP_DATAFORMTEMPLATE_EDIT_TRANSACTIONSELLPROPERTYADJUST
The save procedure used by the edit dataform template "Revenue Transaction Posted Sold Property 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. |
@SALEDATE | datetime | IN | Date of sale |
@SALEAMOUNT | money | IN | Sale amount |
@BROKERFEE | money | IN | Fees |
@ADJUSTMENTDATE | datetime | IN | Adjusted Date |
@ADJUSTMENTPOSTDATE | datetime | IN | Adjusted Post Date |
@ADJUSTMENTREASON | nvarchar(300) | IN | Adjustment reason |
@POSTSTATUSCODE | tinyint | IN | GL post status |
@POSTDATE | datetime | IN | GL post date |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRANSACTIONSELLPROPERTYADJUST
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SALEDATE datetime,
@SALEAMOUNT money,
@BROKERFEE money,
@ADJUSTMENTDATE datetime,
@ADJUSTMENTPOSTDATE datetime,
@ADJUSTMENTREASON nvarchar(300),
@POSTSTATUSCODE tinyint,
@POSTDATE datetime
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CHANGEDATE datetime;
declare @PROPERTYDETAILADJUSTMENTID uniqueidentifier;
set @CHANGEDATE = GetDate();
declare @REVENUEPAYMETHODID uniqueidentifier;
begin try
declare @ADJUST bit;
declare @GIFTID uniqueidentifier;
declare @CLEARGLDISTRIBUTION bit;
select top 1
@REVENUEPAYMETHODID = ID
from REVENUEPAYMENTMETHOD where REVENUEID = @ID;
set @ADJUST = 0;
set @CLEARGLDISTRIBUTION = 0;
/* Check if sale amount or broker fee has changed */
if (select COUNT(PROPERTYDETAIL.ID)
from dbo.PROPERTYDETAIL
where PROPERTYDETAIL.ID = @REVENUEPAYMETHODID
and SALEAMOUNT = @SALEAMOUNT
and BROKERFEE = @BROKERFEE) = 0
begin
set @ADJUST = 1;
set @CLEARGLDISTRIBUTION = 1;
end
/* Already adjusted */
if @ADJUST = 0
if (select COUNT(PROPERTYDETAILADJUSTMENT.ID)
from dbo.PROPERTYDETAILADJUSTMENT
where PROPERTYDETAILID = @REVENUEPAYMETHODID and POSTSTATUSCODE = 1) > 0
set @ADJUST = 1;
/* If there was a change to GL related data log an adjustment */
if @ADJUST = 1
begin
exec dbo.USP_SAVE_PROPERTYDETAILADJUSTMENT @REVENUEPAYMETHODID, @PROPERTYDETAILADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;
end
update dbo.[PROPERTYDETAIL] set
[SALEDATE] = @SALEDATE,
[SALEAMOUNT] = @SALEAMOUNT,
[BROKERFEE] = @BROKERFEE,
[SALEPOSTSTATUSCODE] = @POSTSTATUSCODE,
[SALEPOSTDATE] = @POSTDATE,
[ADDEDBYID] = @CHANGEAGENTID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATEADDED] = @CHANGEDATE,
[DATECHANGED] = @CHANGEDATE
where [PROPERTYDETAIL].[ID] = @REVENUEPAYMETHODID;
-- if the sale amount or broker fee has changed, clear any user-defined gl distributions for this record
if @CLEARGLDISTRIBUTION = 1
begin
--Clear GL
--Cache CONTEXT INFO
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID = @REVENUEPAYMETHODID and OUTDATED = 0;
exec dbo.USP_SAVE_PROPERTYDETAILGLDISTRIBUTION @ID, @CHANGEAGENTID, @CHANGEDATE;
--Restore CONTEXT_INFO
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
if @ADJUST = 1
exec dbo.USP_ADJUSTMENTHISTORY_PROPERTY_SAVEHISTORY @REVENUEPAYMETHODID, @CHANGEAGENTID, null, @PROPERTYDETAILADJUSTMENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;