USP_DATAFORMTEMPLATE_EDIT_PROSPECTPLANBASECURRENCY
The save procedure used by the edit dataform template "Prospect Plan Base Currency 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. |
@BASECURRENCYID | uniqueidentifier | IN | Base currency |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PROSPECTPLANBASECURRENCY (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@BASECURRENCYID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if exists (
select top(1)
REVENUEOPPORTUNITY.ID
from
dbo.OPPORTUNITY
inner join
dbo.REVENUEOPPORTUNITY on REVENUEOPPORTUNITY.OPPORTUNITYID = OPPORTUNITY.ID
where
OPPORTUNITY.PROSPECTPLANID = @ID
)
raiserror('BBERR_OPPORTUNITYHASREVENUE', 13, 1);
begin try
declare @ORGCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update dbo.PROSPECTPLAN set
BASECURRENCYID = @BASECURRENCYID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
update dbo.OPPORTUNITY
set
BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(OPPORTUNITY.TRANSACTIONCURRENCYID, @BASECURRENCYID, OPPORTUNITY.DATEADDED, 0, null)
where
PROSPECTPLANID = @ID;
update dbo.OPPORTUNITY
set
BASECURRENCYID = @BASECURRENCYID,
EXPECTEDASKAMOUNT = EXPECTEDASKCURRENCYVALUES.BASEAMOUNT,
ASKAMOUNT = ASKCURRENCYVALUES.BASEAMOUNT,
ACCEPTEDASKAMOUNT = ACCEPTEDASKCURRENCYVALUES.BASEAMOUNT,
ORGANIZATIONEXPECTEDASKAMOUNT = EXPECTEDASKCURRENCYVALUES.ORGANIZATIONAMOUNT,
ORGANIZATIONASKAMOUNT = ASKCURRENCYVALUES.ORGANIZATIONAMOUNT,
ORGANIZATIONACCEPTEDASKAMOUNT = ACCEPTEDASKCURRENCYVALUES.ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID = EXPECTEDASKCURRENCYVALUES.ORGANIZATIONEXCHANGERATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.OPPORTUNITY
cross apply
dbo.UFN_CURRENCY_GETCURRENCYVALUES(TRANSACTIONEXPECTEDASKAMOUNT, OPPORTUNITY.DATEADDED, @BASECURRENCYID, OPPORTUNITY.BASEEXCHANGERATEID, OPPORTUNITY.TRANSACTIONCURRENCYID) EXPECTEDASKCURRENCYVALUES
cross apply
dbo.UFN_CURRENCY_GETCURRENCYVALUES(TRANSACTIONASKAMOUNT, OPPORTUNITY.DATEADDED, @BASECURRENCYID, OPPORTUNITY.BASEEXCHANGERATEID, OPPORTUNITY.TRANSACTIONCURRENCYID) ASKCURRENCYVALUES
cross apply
dbo.UFN_CURRENCY_GETCURRENCYVALUES(TRANSACTIONACCEPTEDASKAMOUNT, OPPORTUNITY.DATEADDED, @BASECURRENCYID, OPPORTUNITY.BASEEXCHANGERATEID, OPPORTUNITY.TRANSACTIONCURRENCYID) ACCEPTEDASKCURRENCYVALUES
where
PROSPECTPLANID = @ID;
update dbo.OPPORTUNITYDESIGNATION
set
BASECURRENCYID = @BASECURRENCYID,
AMOUNT = CURRENCYVALUES.BASEAMOUNT,
ORGANIZATIONAMOUNT = CURRENCYVALUES.ORGANIZATIONAMOUNT,
BASEEXCHANGERATEID = OPPORTUNITY.BASEEXCHANGERATEID,
ORGANIZATIONEXCHANGERATEID = OPPORTUNITY.ORGANIZATIONEXCHANGERATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.OPPORTUNITYDESIGNATION
inner join
dbo.OPPORTUNITY on OPPORTUNITY.ID = OPPORTUNITYDESIGNATION.OPPORTUNITYID
cross apply
dbo.UFN_CURRENCY_GETCURRENCYVALUES(OPPORTUNITYDESIGNATION.TRANSACTIONAMOUNT, OPPORTUNITY.DATEADDED, @BASECURRENCYID, OPPORTUNITY.BASEEXCHANGERATEID, OPPORTUNITY.TRANSACTIONCURRENCYID) CURRENCYVALUES
where
OPPORTUNITY.PROSPECTPLANID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;