Description
Method to create postings based on a template (of a recurring entry).
Parameters
iiCompanyId | input | integer | |
iiPeriodID | input | integer | Period ID |
icJournalCode | input | character | Daybook Code |
itPostingDate | input | date | posting date |
icPostingText | input | character | Posting Text |
iiRecEntryLineId | input | integer | |
icTemplateCode | input | character | Template Code |
idAmountLC | input | decimal | Amount lc |
icRowid | input | character | Row ID |
itReversingDate | input | date | Reversing Date |
tChangedEntryLine | input | temp-table | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program7/bjournalentry.p)
/* ================================================================ */
/* PART I. Validate the input-parameters */
/* ================================================================ */
if iiCompanyId = 0 or iiCompanyId = ? then assign iiCompanyId = viCompanyId.
/* =================== */
/* Validate the Period */
/* =================== */
if iiPeriodID = ? or
iiPeriodID = 0
then do:
assign vcMsgJE = trim(#T-22'You must enter the GL period.':150(2748)T-22#)
oiReturnStatus = -3.
<M-1 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1007':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
<Q-2 run PeriodPrim (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input iiPeriodID, (PeriodId)
input ?, (PeriodYear)
input ?, (PeriodPeriod)
output dataset tqPeriodPrim) in BPeriod >
find tqPeriodPrim no-lock no-error.
if not available tqPeriodPrim
then do:
assign vcMsgJE = trim(#T-23'The GL period cannot be found.':150(2749)t-23#)
oiReturnStatus = -3.
<M-3 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input iiPeriodID (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1010':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
/* ========================= */
/* Validate the Journal Code */
/* ========================= */
if icJournalCode = ? or
icJournalCode = '':U
then do:
assign vcMsgJE = trim(#T-24'You must enter a daybook code.':150(2750)T-24#)
oiReturnStatus = -3.
<M-4 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1011':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
<Q-7 run JournalPrim (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input icJournalCode, (JournalCode)
input ?, (JournalID)
output dataset tqJournalPrim) in BJournal >
find tqJournalPrim no-lock no-error.
if not available tqJournalPrim
then do:
assign vcMsgJE = trim(substitute(#T-25'The daybook code &1 cannot be found.':150(2751)t-25#, trim(icJournalCode)))
oiReturnStatus = -3.
<M-6 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input icJournalCode (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1012':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
/* ========================= */
/* Validate the posting date */
/* ========================= */
if itPostingDate = ?
then do:
assign vcMsgJE = trim(#T-26'You must enter the posting date.':150(2752)T-26#)
oiReturnStatus = -3.
<M-8 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1013':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
/* ========================= */
/* Validate the Posting Text */
/* ========================= */
if icPostingText = ? or
icPostingText = '':U
then do:
assign vcMsgJE = trim(#T-27'You must enter the posting text.':150(2753)T-27#)
oiReturnStatus = -3.
<M-9 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1014':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
/* ========================== */
/* Validate the Template Code */
/* ========================== */
if icTemplateCode = ? or
icTemplateCode = '':U
then do:
assign vcMsgJE = trim(#T-28'You must enter the posting template code.':150(2754)T-28#)
oiReturnStatus = -3.
<M-10 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1008':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
<Q-13 run PostingTemplatePrim (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input ?, (TemplateID)
input icTemplateCode, (TemplateCode)
input ?, (PostingID)
output dataset tqPostingTemplatePrim) in BPostingTemplate >
find tqPostingTemplatePrim no-lock no-error.
if not available tqPostingTemplatePrim
then do:
assign vcMsgJE = trim(substitute(#T-29'The posting template &1 cannot be found.':150(2755)t-29#, trim(icTemplateCode)))
oiReturnStatus = -3.
<M-12 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input icTemplateCode (icFieldValue),
input 'E':U (icType),
input '3':U (iiSeverity),
input icRowid (icRowid),
input 'QADFIN-1009':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
end.
if oiReturnStatus < 0
then return.
/* ================================================================ */
/* PART II. Create the posting based on a template */
/* ================================================================ */
<M-15 run CreateRecEntryPostingTemplate
(input iiCompanyId (iiCompanyId),
input icTemplateCode (icTemplateCode),
input iiRecEntryLineId (iiRecEntryLineId),
input icPostingText (icPostingText),
input idAmountLC (idAmountLC),
input icJournalCode (icJournalCode),
input itPostingDate (itPostingDate),
input iiPeriodID (iiPeriodID),
output vcRowid (ocPostingTcRowid),
input tChangedEntryLine (tChangedEntryLine),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* ================================================================ */
/* PART III. Create the reversing posting if necessary */
/* ================================================================ */
if itReversingDate <> ?
then do:
<Q-17 run PeriodByStartEndDate (all) (Read) (NoCache)
(input iiCompanyId, (CompanyId)
input itReversingDate, (Date)
output dataset tqPeriodByStartEndDate) in BPeriod >
find tqPeriodByStartEndDate where
tqPeriodByStartEndDate.tcPeriodTypeCode = {&PERIODTYPECODE-NORMAL}
no-lock no-error.
if not available tqPeriodByStartEndDate
then do:
assign vcMsgJE = trim(substitute(#T-30'No GL period exists for the reversing date &1.':150(2759)t-30#, trim(string(itReversingDate))))
oiReturnStatus = -1.
<M-18 run SetMessage (input vcMsgJE (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input itReversingDate (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-1033':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
return.
end.
<M-16 run CreateRecEntryPostingReverse (input vcRowid (icPostingTcRowid),
input icJournalCode (icNewJournalCode),
input tqPeriodByStartEndDate.tiPeriodPeriod (iiNewPeriodPeriod),
input tqPeriodByStartEndDate.tiPeriodYear (iiNewPeriodYear),
input itReversingDate (itNewPostingDate),
input '':U (icNewPostingText),
output viPostingID (oiNewPostingID),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
end. /* if itReversingDate <> ? */
/* =============================================== */
/* PART IV. Run Validate Component BJournalEntry */
/* =============================================== */
<M-19 run ValidateBC (output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* =============================================== */
/* PART V. Run Additional Updates in BJournalEntry */
/* =============================================== */
<M-20 run AdditionalUpdates (output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* =============================================== */
/* PART VI. Run Datasave for BJournalEntry */
/* =============================================== */
<M-21 run DataSave (output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.