USP_DATAFORMTEMPLATE_EDIT_REVENUESPLITDETAILS
The save procedure used by the edit dataform template "Revenue Split Details 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. |
@DESIGNATIONID | uniqueidentifier | IN | Designation |
@CATEGORYCODEID | uniqueidentifier | IN | Revenue category |
@OTHERTYPECODEID | uniqueidentifier | IN | Other type |
@OPPORTUNITYID | uniqueidentifier | IN | Opportunity |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUESPLITDETAILS
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@DESIGNATIONID uniqueidentifier,
@CATEGORYCODEID uniqueidentifier,
@OTHERTYPECODEID uniqueidentifier,
@OPPORTUNITYID uniqueidentifier
)
as
set nocount on
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
-- Validate that the all the values passed in apply for the application code
declare @REVENUEID uniqueidentifier, @APPLICATIONCODE tinyint
select
@REVENUEID = REVENUEID,
@APPLICATIONCODE = APPLICATIONCODE
from dbo.REVENUESPLIT
where ID = @ID
if @DESIGNATIONID is null and
@APPLICATIONCODE = 0 -- Donation
begin
raiserror('DESIGNATIONREQUIRED', 13, 1)
return 1
end
if @OTHERTYPECODEID is not null and @APPLICATIONCODE <> 4
begin
raiserror('OTHERTYPECODENOTVALID', 13, 1)
return 1
end
if @OTHERTYPECODEID is null and @APPLICATIONCODE = 4
begin
raiserror('OTHERTYPECODEREQUIRED', 13, 1)
return 1
end
if @OPPORTUNITYID is not null and @APPLICATIONCODE <> 0
begin
raiserror('OPPORTUNITYCODENOTVALID', 13, 1)
return 1
end
-- Verify the transaction hasn't already been posted
if exists (select 1 from dbo.REVENUEPOSTED where ID = @REVENUEID)
begin
raiserror('TRANSACTIONCANNOTBEPOSTED', 13, 1)
return 1
end
--check to see if designation changed, if so re-receipt, re-acknowledge and adjust (if posted)
declare @CURRENTDESIGNATIONID uniqueidentifier, @CURRENTCATEGORYID uniqueidentifier
select @CURRENTDESIGNATIONID = DESIGNATIONID from dbo.REVENUESPLIT where ID = @ID
select @CURRENTCATEGORYID = GLREVENUECATEGORYMAPPINGID from dbo.REVENUECATEGORY where ID = @ID
declare @DESIGNATIONCHANGED as bit, @CATEGORYCHANGED as bit
if (@CURRENTDESIGNATIONID is null and @DESIGNATIONID is null) or @CURRENTDESIGNATIONID = @DESIGNATIONID
set @DESIGNATIONCHANGED = 0
else
set @DESIGNATIONCHANGED = 1
if (@CURRENTCATEGORYID is null and @CATEGORYCODEID is null) or @CURRENTCATEGORYID = @CATEGORYCODEID
set @CATEGORYCHANGED = 0
else
set @CATEGORYCHANGED = 1
begin try
if @DESIGNATIONCHANGED = 1
begin
exec dbo.USP_REVENUE_UPDATERERECEIPTS @REVENUEID, @CHANGEAGENTID, @CURRENTDATE
exec dbo.USP_REVENUELETTER_SETREACKNOWLEDGEMENTS @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
end
/* CMC
update dbo.FINANCIALTRANSACTIONLINEITEM set
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
update dbo.REVENUESPLIT_EXT set
DESIGNATIONID = @DESIGNATIONID
where
ID = @ID
*/
update dbo.REVENUESPLIT set
DESIGNATIONID = @DESIGNATIONID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
if @CATEGORYCODEID is null
exec dbo.USP_REVENUECATEGORY_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
else
begin
update dbo.REVENUECATEGORY set
GLREVENUECATEGORYMAPPINGID = @CATEGORYCODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
if @@ROWCOUNT = 0
insert into dbo.REVENUECATEGORY (ID, GLREVENUECATEGORYMAPPINGID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @CATEGORYCODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
if @OTHERTYPECODEID is null
exec dbo.USP_REVENUESPLITOTHER_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
else
begin
update dbo.REVENUESPLITOTHER set
OTHERTYPECODEID = @OTHERTYPECODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
if @@ROWCOUNT = 0
insert into dbo.REVENUESPLITOTHER (ID, OTHERTYPECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @OTHERTYPECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
if @OPPORTUNITYID is null
exec dbo.USP_REVENUEOPPORTUNITY_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
else
begin
update dbo.REVENUEOPPORTUNITY set
OPPORTUNITYID = @OPPORTUNITYID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
if @@ROWCOUNT = 0
insert into dbo.REVENUEOPPORTUNITY (ID, OPPORTUNITYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @OPPORTUNITYID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
-- Clear the user-defined gl distributions if the designation or revenue category has changed
-- Do this regardless of whether gift is posted or not
if @DESIGNATIONCHANGED = 1 or @CATEGORYCHANGED = 1
begin
declare @contextCache varbinary(128);
--cache current context information
set @contextCache = CONTEXT_INFO();
-- Clear GL
delete from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @REVENUEID and OUTDATED = 0;
delete from dbo.STOCKSALEGLDISTRIBUTION where REVENUEID = @REVENUEID and OUTDATED = 0;;
delete from dbo.PROPERTYDETAILGLDISTRIBUTION where REVENUEID = @REVENUEID and OUTDATED = 0;;
set CONTEXT_INFO @CHANGEAGENTID;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
-- Add new GL distributions
declare @DONOTPOST bit
select @DONOTPOST = DONOTPOST from dbo.REVENUE where ID = @REVENUEID
if @DONOTPOST = 0
begin
-- Add new GL distributions
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
-- Add new stock detail GL distributions
exec dbo.USP_SAVE_STOCKDETAILGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
-- Add new property detail GL distributions
exec dbo.USP_SAVE_PROPERTYDETAILGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;