USP_DATAFORMTEMPLATE_EDIT_INVOICESCHEDULE
The save procedure used by the edit dataform template "Invoice Schedule 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. |
@INVOICESCHEDULES | xml | IN | Invoice schedule |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_INVOICESCHEDULE (
@ID uniqueidentifier
,@CHANGEAGENTID uniqueidentifier = null
,@INVOICESCHEDULES xml
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
-- handle updating the data
update dbo.INVOICE set
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
exec dbo.USP_INVOICE_SCHEDULES_UPDATEFROMXML @ID, @INVOICESCHEDULES, @CHANGEAGENTID;
if exists(
select
*
from
dbo.FINANCIALTRANSACTION as FT
left outer join dbo.FINANCIALTRANSACTIONSCHEDULE as FTS
on FT.ID = FTS.FINANCIALTRANSACTIONID
where FT.ID = @ID and FTS.DELETED = 0
group by FT.ID, FT.TRANSACTIONAMOUNT
having
COALESCE(SUM(FTS.AMOUNT),FT.TRANSACTIONAMOUNT)<>FT.TRANSACTIONAMOUNT
)
raiserror('FT_SCHEDULE_AMOUNT_MUST_MATCH_INVOICEAMOUNT' , 16, 1);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;