project QadFinancials > class BConsolidDump > method ValidateComponent

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


oiReturnStatusoutputinteger


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.