USP_DATAFORMTEMPLATE_EDIT_APPOSTTOGLPROCESS
The save procedure used by the edit dataform template "AP Post to GL Process 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. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@INVOICEPOSTINGOPTIONCODE | tinyint | IN | Invoices and credit memos |
@INVOICEIDSETREGISTERID | uniqueidentifier | IN | Selection |
@DISBURSEMENTOPTIONCODE | tinyint | IN | Disbursements |
@DISBURSEMENTREGISTERID | uniqueidentifier | IN | Selection |
@INCLUDEBYPOSTDATE | bit | IN | Include 'not posted' transactions by post date |
@POSTTHROUGHDATECODE | tinyint | IN | Post dates up to and including |
@EXPENSEPOSTMETHODCODE | tinyint | IN | Expense |
@PAYABLESPOSTMETHODCODE | tinyint | IN | Payables summary |
@CASHPOSTMETHODCODE | tinyint | IN | Treasury cash |
@SUMMARIZEBYCODE | tinyint | IN | Summarize transactions by |
@CREATEOUTPUTIDSET | bit | IN | Create selection from results |
@OUTPUTIDSETNAME | nvarchar(100) | IN | Selection name |
@OVERWRITEOUTPUTIDSET | bit | IN | Overwrite existing selection |
Definition
Copy
create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_APPOSTTOGLPROCESS (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@INVOICEPOSTINGOPTIONCODE tinyint,
@INVOICEIDSETREGISTERID uniqueidentifier,
@DISBURSEMENTOPTIONCODE tinyint,
@DISBURSEMENTREGISTERID uniqueidentifier,
@INCLUDEBYPOSTDATE bit,
@POSTTHROUGHDATECODE tinyint,
@EXPENSEPOSTMETHODCODE tinyint,
@PAYABLESPOSTMETHODCODE tinyint,
@CASHPOSTMETHODCODE tinyint,
@SUMMARIZEBYCODE tinyint,
@CREATEOUTPUTIDSET bit,
@OUTPUTIDSETNAME nvarchar(100),
@OVERWRITEOUTPUTIDSET bit
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
-- handle inserting the data
update dbo.GLPOSTPROCESS
set NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
INCLUDEBYPOSTDATE = @INCLUDEBYPOSTDATE,
POSTTHROUGHDATECODE = @POSTTHROUGHDATECODE,
SUMMARIZEBYDATECODE = @SUMMARIZEBYCODE,
CREATEOUTPUTIDSET = @CREATEOUTPUTIDSET,
OUTPUTIDSETNAME = case @CREATEOUTPUTIDSET when 0 then '' else @OUTPUTIDSETNAME end,
OVERWRITEOUTPUTIDSET = case @CREATEOUTPUTIDSET when 0 then 0 else @OVERWRITEOUTPUTIDSET end,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
update dbo.GLPOSTPROCESSPOSTMETHOD
set POSTMETHODCODE = @EXPENSEPOSTMETHODCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.GLPOSTPROCESSPOSTMETHOD inner join dbo.FINANCIALSYSTEMTRANSACTIONTYPE on GLPOSTPROCESSPOSTMETHOD.FINANCIALSYSTEMTRANSACTIONTYPEID = FINANCIALSYSTEMTRANSACTIONTYPE.ID
where GLPOSTPROCESSPOSTMETHOD.GLPOSTPROCESSID = @ID
and GLPOSTPROCESSPOSTMETHOD.TRANSACTIONTYPECODE = 0
and (FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 101 or FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 102)
update dbo.GLPOSTPROCESSPOSTMETHOD
set POSTMETHODCODE = @PAYABLESPOSTMETHODCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.GLPOSTPROCESSPOSTMETHOD inner join dbo.FINANCIALSYSTEMTRANSACTIONTYPE on GLPOSTPROCESSPOSTMETHOD.FINANCIALSYSTEMTRANSACTIONTYPEID = FINANCIALSYSTEMTRANSACTIONTYPE.ID
where GLPOSTPROCESSPOSTMETHOD.GLPOSTPROCESSID = @ID
and ((GLPOSTPROCESSPOSTMETHOD.TRANSACTIONTYPECODE = 1 and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 101)
or (GLPOSTPROCESSPOSTMETHOD.TRANSACTIONTYPECODE = 1 and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 102)
or (GLPOSTPROCESSPOSTMETHOD.TRANSACTIONTYPECODE = 0 and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 105))
update dbo.GLPOSTPROCESSPOSTMETHOD
set POSTMETHODCODE = @CASHPOSTMETHODCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.GLPOSTPROCESSPOSTMETHOD inner join dbo.FINANCIALSYSTEMTRANSACTIONTYPE on GLPOSTPROCESSPOSTMETHOD.FINANCIALSYSTEMTRANSACTIONTYPEID = FINANCIALSYSTEMTRANSACTIONTYPE.ID
where GLPOSTPROCESSPOSTMETHOD.GLPOSTPROCESSID = @ID
and GLPOSTPROCESSPOSTMETHOD.TRANSACTIONTYPECODE = 1
and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 105
update dbo.GLPOSTPROCESSTRANSACTIONCRITERIA
set POSTINGOPTIONCODE = case TYPECODE when 101 then @INVOICEPOSTINGOPTIONCODE when 105 then @DISBURSEMENTOPTIONCODE end,
IDSETREGISTERID = case TYPECODE when 101 then case @INVOICEPOSTINGOPTIONCODE when 1 then @INVOICEIDSETREGISTERID else null end when 105 then case @DISBURSEMENTOPTIONCODE when 1 then @DISBURSEMENTREGISTERID else null end end,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.GLPOSTPROCESSTRANSACTIONCRITERIA inner join dbo.FINANCIALSYSTEMTRANSACTIONTYPE on GLPOSTPROCESSTRANSACTIONCRITERIA.FINANCIALSYSTEMTRANSACTIONTYPEID = FINANCIALSYSTEMTRANSACTIONTYPE.ID
where GLPOSTPROCESSTRANSACTIONCRITERIA.GLPOSTPROCESSID = @ID
and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE in (101,105)
if @INVOICEPOSTINGOPTIONCODE = 0
merge into dbo.GLPOSTPROCESSTRANSACTIONCRITERIA as Target
using (select @ID as GLPostProcessID, @INVOICEPOSTINGOPTIONCODE as PostingOption, ID as FINANCIALSYSTEMTRANSACTIONTYPEID from dbo.FINANCIALSYSTEMTRANSACTIONTYPE where TYPECODE = 102) as Source
on (Target.GLPostPRocessID = Source.GLPostProcessID and Target.FINANCIALSYSTEMTRANSACTIONTYPEID = Source.FINANCIALSYSTEMTRANSACTIONTYPEID)
when matched then
update set Target.POSTINGOPTIONCODE = Source.PostingOption,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
when not matched by Target then
insert (ID, GLPOSTPROCESSID, POSTINGOPTIONCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, FINANCIALSYSTEMTRANSACTIONTYPEID)
values (newid(), Source.GLPostProcessID, Source.PostingOption, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, Source.FINANCIALSYSTEMTRANSACTIONTYPEID);
else
delete GLPOSTPROCESSTRANSACTIONCRITERIA
from dbo.GLPOSTPROCESSTRANSACTIONCRITERIA inner join dbo.FINANCIALSYSTEMTRANSACTIONTYPE on GLPOSTPROCESSTRANSACTIONCRITERIA.FINANCIALSYSTEMTRANSACTIONTYPEID = FINANCIALSYSTEMTRANSACTIONTYPE.ID
where GLPOSTPROCESSTRANSACTIONCRITERIA.GLPOSTPROCESSID = @ID
and FINANCIALSYSTEMTRANSACTIONTYPE.TYPECODE = 102
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0