Description
Write here all tests on database update (new / modify / delete) that cannot be coded with a validation mask.
The type of update can be found in tc_status (N/C/D).
If you find incorrect data, you must write an entry in tFcMessages (using SetMessage) and set the return status of this method to either +1 or -1.
Return status +1 = data will still be accepted.
Return status -1 = data will not be accepted.
This method is run from SetPublicTables, before transferring the received data into the class temp-tables.
Parameters
| oiReturnStatus | output | integer | |
Internal usage
unused
program code (program/bconsoliddump.p)
<ANCESTOR-CODE>
For Each t_sConsolidDump Where
t_sConsolidDump.tc_Status = 'N':U Or
t_sConsolidDump.tc_Status = 'C':U:
<Q-1 run PeriodByPeriodRange (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input ((t_sConsolidDump.tiFromPeriodYear * 100) + t_sConsolidDump.tiFromPeriodPeriod), (FromYearPeriod)
input ((t_sConsolidDump.tiToPeriodYear * 100) + t_sConsolidDump.tiToPeriodPeriod), (ToYearPeriod)
output dataset tqPeriodByPeriodRange) in BPeriod >
If Can-Find (First tqPeriodByPeriodRange Where
tqPeriodByPeriodRange.tcPeriodStatus = {&PERIODSTATUS-OPEN})
Then Do:
Assign vcMsg = Trim(#T-2'All GL periods within the range must be closed.':255(17237)t-2#)
oiReturnStatus = +1.
<M-3 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'W':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4242':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If ((t_sConsolidDump.tiToPeriodYear * 100) + t_sConsolidDump.tiToPeriodPeriod) < ((t_sConsolidDump.tiFromPeriodYear * 100) + t_sConsolidDump.tiFromPeriodPeriod)
Then Do:
Assign vcMsg = Trim(#T-5'The last GL period cannot pre-date the first GL period.':255(17238)t-5#)
oiReturnStatus = -1.
<M-4 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4243':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If vcCompanyLC = t_sConsolidDump.tcCurrencyCode And
t_sConsolidDump.ConsolidDumpConsolRate <> 1
Then Do:
Assign vcMsg = Trim(#T-7'If the base currency is the same as Statutory currency, the Statutory export rate must be 1.':255(17239)t-7#)
oiReturnStatus = -1.
<M-6 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.ConsolidDumpConsolRate':U (icFieldName),
input String(t_sConsolidDump.ConsolidDumpConsolRate) (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4244':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
Assign file-info:file-name = t_sConsolidDump.ConsolidDumpDirectory.
If file-info:file-type = ?
Then Do:
Assign vcMsg = Trim(#T-9'Directory is missing.':255(17241)t-9#)
oiReturnStatus = -1.
<M-8 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.ConsolidDumpDirectory':U (icFieldName),
input t_sConsolidDump.ConsolidDumpDirectory (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4245':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
Else If Substring(file-info:file-type,1,1,'CHARACTER':U) <> 'D':U
Then Do:
Assign vcMsg = Trim(#T-11'The selected directory is not a valid directory.':255(17242)t-11#)
oiReturnStatus = -1.
<M-10 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.ConsolidDumpDirectory':U (icFieldName),
input t_sConsolidDump.ConsolidDumpDirectory (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4246':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If t_sConsolidDump.ConsolidDumpChunkSize = 0 Or
t_sConsolidDump.ConsolidDumpChunkSize = ?
Then Assign t_sConsolidDump.ConsolidDumpChunkSize = 3000.
If t_sConsolidDump.ConsolidDumpChunkSize > 3000 Or
t_sConsolidDump.ConsolidDumpChunkSize < 0
Then Do:
Assign vcMsg = Trim(#T-13'The chunk size must be between 0 and 3000.':255(17244)T-13#)
oiReturnStatus = -1.
<M-12 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.ConsolidDumpChunkSize':U (icFieldName),
input String(t_sConsolidDump.ConsolidDumpChunkSize) (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4248':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If t_sConsolidDump.tiOpeningPeriodPeriod = ?
Then Assign t_sConsolidDump.tiOpeningPeriodPeriod = 0.
If t_sConsolidDump.tiOpeningPeriodYear = ?
Then Assign t_sConsolidDump.tiOpeningPeriodYear = 0.
If t_sConsolidDump.ConsolidDumpIsOpeningBal = True And
(t_sConsolidDump.tiOpeningPeriodPeriod = 0 Or
t_sConsolidDump.tiOpeningPeriodYear = 0)
Then Do:
Assign vcMsg = Trim(#T-15'If the consolidation export does not include an opening balance, the opening GL period and year should be 0.':255(17660)T-15#)
oiReturnStatus = -1.
<M-14 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.tiOpeningPeriodPeriod':U (icFieldName),
input String((t_sConsolidDump.tiOpeningPeriodYear * 100) + t_sConsolidDump.tiOpeningPeriodPeriod) (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4356':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If t_sConsolidDump.ConsolidDumpIsOpeningBal = False And
(t_sConsolidDump.tiOpeningPeriodPeriod <> 0 Or
t_sConsolidDump.tiOpeningPeriodYear <> 0)
Then Do:
Assign vcMsg = Trim(#T-17'If the consolidation export includes an opening balance, you must enter the opening GL period and year.':255(17669)t-17#)
oiReturnStatus = -1.
<M-16 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input 'tConsolidDump.tiOpeningPeriodPeriod':U (icFieldName),
input String((t_sConsolidDump.tiOpeningPeriodYear * 100) + t_sConsolidDump.tiOpeningPeriodPeriod) (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4357':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
If ((t_sConsolidDump.tiFromPeriodYear * 100) + t_sConsolidDump.tiFromPeriodPeriod) < ((t_sConsolidDump.tiOpeningPeriodYear * 100) + t_sConsolidDump.tiOpeningPeriodPeriod)
Then Do:
Assign vcMsg = Trim(#T-19'The opening GL period cannot be after the first GL period (From Period).':255(17670)T-19#)
oiReturnStatus = -1.
<M-18 run SetMessage
(input vcMsg (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sConsolidDump.tc_Rowid (icRowid),
input 'QADFIN-4358':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BConsolidDump>
End.
End.