project QadFinancials > class BDInvoice > method ValidateComponentAllPost

validation procedure

Description

This method is a submethod of ValidateComponentAll.

This method validations db fields. They are called from here and not as field validations either because they have queries that can be started/stopped or because they are interfield validatios.


Parameters


iiHOAddressTypeIdinputintegerId of the Head office address type
blstartVatPeriodByStartEndDateinput-outputlogicalis query tqVatPeriodByStartEndDate already started or not ?
blStartJrnlByJrnlIDCodeTypeinput-outputlogicalis query tqJournalByJournalIDCodeType already started or not ?
blstartPerByPerStartEndDateinput-outputlogicalis query tqPeriodbyPeriodStartEndDate already started or not ?
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDInvoice.ValidateComponentAll


program code (program5/bdinvoice.p)

if (t_sDInvoice.tc_Status               = "N":U or
        t_sDInvoice.tc_Status               = "C") and
        t_sDInvoice.DInvoiceType            = {&INVOICETYPE-INVOICE} and
        t_sDInvoice.DInvoiceOriginalDebitTC = 0
    then do:
         <M-18 run SetMessage
            (input  trim(#T-1'Warning: You are saving a zero value invoice.':255(68255)t-1#) (icMessage), 
             input  '':U (icArguments), 
             input  'tDInvoice.DInvoiceOriginalDebitTC':U (icFieldName), 
             input  t_sDInvoice.DInvoiceOriginalDebitTC (icFieldValue), 
             input  'W':U (icType), 
             input  3 (iiSeverity), 
             input  t_sDInvoice.tc_Rowid (icRowid), 
             input  'QadFin-7593':U (icFcMsgNumber), 
             input  '':U (icFcExplanation), 
             input  '':U (icFcIdentification), 
             input  '':U (icFcContext), 
             output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
         assign oiReturnStatus = +1.
    end.

    if (t_sDInvoice.tc_Status                = "N":U or
        t_sDInvoice.tc_Status                = "C") and
        t_sDInvoice.DInvoiceType             = {&INVOICETYPE-CREDITNOTE} and
        t_sDInvoice.DInvoiceOriginalCreditTC = 0
    then do:
         <M-19 run SetMessage
            (input  trim(#T-20'Warning: You are saving a zero value invoice.':255(68255)t-20#) (icMessage), 
             input  '':U (icArguments), 
             input  'tDInvoice.DInvoiceOriginalCreditTC':U (icFieldName), 
             input  t_sDInvoice.DInvoiceOriginalCreditTC (icFieldValue), 
             input  'W':U (icType), 
             input  3 (iiSeverity), 
             input  t_sDInvoice.tc_Rowid (icRowid), 
             input  'QadFin-7594':U (icFcMsgNumber), 
             input  '':U (icFcExplanation), 
             input  '':U (icFcIdentification), 
             input  '':U (icFcContext), 
             output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
         assign oiReturnStatus = +1.
    end.

    <M-22 run ValidateComponentAllPostBalances  (output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper. 
    
    /*CA676097*/
    <M-23 run ValidateComponentAllPostNonDiscAmt  (output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.        
    /*CA676097*/
    
    <M-1 run ValidateComponentAllPostDAJournalCode
       (input  t_sDinvoice.tc_Rowid (icRowid), 
        input  t_sDInvoice.DInvoiceType (icDInvoiceType), 
        input  t_sDInvoice.LinkedDInvoice_ID (iiLinkedDInvoiceId), 
        input  t_sDInvoice.tcDAJournalCode (icDAJournalCode), 
        input-output blStartJrnlByJrnlIDCodeType (blstartJrnlByJrnlIDCodeType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.    
        
    <M-2 run ValidateDInvoiceExchangeRate
       (input  t_sDinvoice.DinvoiceExchangeRate (idDinvoiceExchangeRate), 
        input  t_sDInvoice.tc_rowid (icRowid), 
        input  t_sDInvoice.DinvoiceCurrency_ID (iiCurrencyID), 
        input  trim(string(t_sDInvoice.DInvoicePostingYear)) + '/':U + trim(t_sDInvoice.tcJournalCode) + '/':U + trim(string(t_sDInvoice.DInvoiceVoucher)) (icDInvoiceReference), 
        input  ? (icCurrencyCode), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>    
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.

    if t_sDInvoice.tc_Status             = "N":U or
       (t_sDInvoice.tc_Status            = "C":U and
       (t_sDInvoice.DInvoiceDate <> t_iDInvoice.DInvoiceDate or
       t_sDInvoice.DInvoicePostingDate <> t_iDInvoice.DInvoicePostingDate))
    then do:
    <M-3 run ValidateInvoiceDate
       (input  t_sDinvoice.DInvoiceDate (itDinvoiceInvoiceDate), 
        input  t_sDinvoice.tc_rowid (icRowid), 
        input  t_sDinvoice.DinvoicePostingDate (itDInvoicePostingDate), 
        input  t_sDinvoice.DinvoiceType (icDInvoiceType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>  
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    end.
    
    /* Validate the DinvoiceOriginalCreditLC field */    
    <M-5 run ValidateComponentAllPostOrigiNotNeg
       (input  t_sDinvoice.DinvoiceOriginalCreditLC (idTargetField), 
        input  'tDinvoice.DinvoiceOriginalCreditLC':U (icTargetFieldName), 
        input  t_sDInvoice.tc_rowid (icRowid), 
        input  t_sDInvoice.DInvoiceType (icDInvoiceType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>    
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    
    /* Validate the DinvoiceOriginalCrediTC field */
    <M-6 run ValidateComponentAllPostOrigiNotNeg
       (input  t_sDinvoice.DinvoiceOriginalCreditTC (idTargetField), 
        input  'tDinvoice.DinvoiceOriginalCreditTC':U (icTargetFieldName), 
        input  t_sDInvoice.tc_rowid (icRowid), 
        input  t_sDInvoice.DInvoiceType (icDInvoiceType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>    
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    
    /* Validate the DinvoiceOriginalDebitLC field */
    <M-7 run ValidateComponentAllPostOrigiNotNeg
       (input  t_sDinvoice.DinvoiceOriginalDebitLC (idTargetField), 
        input  'tDinvoice.DinvoiceOriginalDebitLC':U (icTargetFieldName), 
        input  t_sDInvoice.tc_rowid (icRowid), 
        input  t_sDInvoice.DInvoiceType (icDInvoiceType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>    
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    
    /* Validate the DinvoiceOriginalDebitTC field */
    <M-8 run ValidateComponentAllPostOrigiNotNeg
       (input  t_sDinvoice.DinvoiceOriginalDebitTC (idTargetField), 
        input  'tDinvoice.DinvoiceOriginalDebitTC':U (icTargetFieldName), 
        input  t_sDInvoice.tc_rowid (icRowid), 
        input  t_sDInvoice.DInvoiceType (icDInvoiceType), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>    
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.           
    
    <M-21 run ValidateComponentAllPostPostingDate
       (input  t_sDInvoice.DInvoicePostingDate (itDInvoicePostingDate), 
        input  t_sDInvoice.tc_Rowid (icRowid), 
        input  t_sDInvoice.Period_ID (iiPeriodId), 
        input  t_sDInvoice.DInvoicePostingYear (iiPeriodYear), 
        input  t_sDInvoice.DInvoicePostingPeriod (iiPeriodPeriod), 
        input-output blstartPerByPerStartEndDate (blstartPerByPerStartEndDate), 
        input  t_sDInvoice.Company_ID (iiInvoiceCompanyId), 
        output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.           

    /* Validate tax point date */
    if t_sDInvoice.tc_Status             = "N":U or
       (t_sDInvoice.tc_Status             = "C":U and
       t_sDInvoice.DInvoiceTaxPointDate <> t_iDInvoice.DInvoiceTaxPointDate)
    then do:
        <M-16 run ValidateTaxPointDate
           (input  t_sDinvoice.DinvoiceTaxPointDate (itDinvoiceTaxPointDate), 
            input  t_sDinvoice.tc_rowid (icRowid), 
            input-output blstartVatPeriodByStartEndDate (blstartVatPeriodByStartDate), 
            output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
        if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.             
    end.    
    
    /* Validte TSM Number */
    if t_sDInvoice.tc_Status             = "N":U or
       (t_sDInvoice.tc_Status           <> "D":U and        
        t_sDInvoice.DInvoiceIsSelected  <> true)
    then do:
        <M-17 run ValidateComponentAllPostTSMNumber
           (input  t_sDInvoice.DInvoiceTSMNumber (icDinvoiceTSMNumber), 
            input  iiHOAddressTypeId (iiHOAddressTypeId), 
            input  t_sDInvoice.tc_Rowid (icRowid), 
            input  t_sDInvoice.Debtor_ID (iiDebtorId), 
            output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
        if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.                 
    end.