project QadFinancials > class BSystemProperty > method SetSystemProperties

Description

SetSystemPropertiesExtInvCert: extended version of SetSystemProperties that now covers the invoice-certifaction fields as well


Parameters


ilSysPropertyIsBudOverChinputlogicalSysPropertyIsBudOverCh
icSysPropertyCurrencyCodeinputcharacterSysPropertyCurrencyCode
ilSysPropertyIsWithBudgetinputlogicalSysPropertyIsWithBudget
ilSysPropertyIsSpecCIApproveinputlogicalSysPropertyIsSpecCIApprove
ilSysPropertyIsBudOLCheckGLinputlogicalSysPropertyIsBudOLCheckGL
ilSysPropertyIsBudOLCheckPrjinputlogicalSysPropertyIsBudOLCheckPrj
ilSysPropertyIsBudOLCheckCCinputlogicalSysPropertyIsBudOLCheckCC
ilSysPropertyIsBusRelDomResinputlogicaldefault value of BusinessRelation.BusinessRelationIsDomRestr should come from SysPropertyIsBusRelDomRes and have that lather field on System maintenance UI with label Are business relations by domain ?
icSysPropertyInvCertCertificateinputcharacterSysPropertyInvCertCertificate
icSysPropertyInvCertVersioninputcharacterSysPropertyInvCertVersion
icSysPropertyInvCertPublicKeyinputcharacterSysPropertyInvCertPublicKey
icSysPropertyInvCertOpenSSlDirinputcharacterSysPropertyInvCertOpenSSlDir
ilCalledFromSynchroniseinputlogicalTrue when this method is Called From the Synchronise flow
iiSysPropertyBankFileBatchSizeinputintegerBank File Batch Size.
iiSysPropertyMaxBatchSizeinputintegerMaximum Batch Size
iiSysPropertyMinBatchSizeinputintegerMinimum Batch Size
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BSystem.ApiSetSystemPropertiesExtInvCert


program code (program9/bsystemproperty.p)

        
    /* =============================================================================== */
    /* Clear the instance, check parameters                                            */
    /* Find the single system-record, if available then load it, else create a new one */
    /* =============================================================================== */
    <M-83 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if oiReturnStatus < 0 then return.
    <Q-1 run SystemPropertyByAll (all) (Read) (NoCache)
       (output dataset tqSystemPropertyByAll) in BSystemProperty >
    find first tqSystemPropertyByAll no-lock no-error.
    if not available tqSystemPropertyByAll
    then do :
        <M-60 run DataNew (output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
        if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
        if oiReturnStatus < 0 
        then return.
    end. /* if not available tqSystem */
    else do :
        <M-33 run DataLoad (input  '':U (icRowids), 
                   input  string(tqSystemPropertyByAll.tiSysProperty_ID) (icPkeys), 
                   input  '':U (icObjectIds), 
                   input  '' (icFreeform), 
                   input  true (ilKeepPrevious), 
                   output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
        if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
        if oiReturnStatus < 0 
        then return.
        find tSysProperty where 
             tSysProperty.SysProperty_ID = tqSystemPropertyByAll.tiSysProperty_ID
             no-error.
        if not available tSysProperty
        then do :
            assign vcMessage      = trim(substitute(#T-30'The system cannot load the system properties based on the ID (&1).':255(3763)T-30#,string(tqSystemPropertyByAll.tiSysProperty_ID))) + " (4)":U
                   oiReturnStatus = -3.
            <M-98 run SetMessage (input  vcMessage (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  '':U (icRowid),
                     input  'qadfin-362283':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
            return.
        end. /* if not available tSysProperty */
        else assign tSysProperty.tc_Status = "C":U.
    end. /* if available tqSystem */
    
    /* ============================== */
    /* Update the general System-Data */
    /* ============================== */
    assign tSysProperty.SysPropertyIsBudOverCh        = ilSysPropertyIsBudOverCh
           tSysProperty.SysPropertyIsWithBudget       = ilSysPropertyIsWithBudget
           tSysProperty.SysPropertyIsSpecCIApprove    = ilSysPropertyIsSpecCIApprove
           tSysProperty.SysPropertyIsBudOLCheckGL     = ilSysPropertyIsBudOLCheckGL
           tSysProperty.SysPropertyIsBudOLCheckPrj    = ilSysPropertyIsBudOLCheckPrj
           tSysProperty.SysPropertyIsBudOLCheckCC     = ilSysPropertyIsBudOLCheckCC
           tSysProperty.SysPropertyIsBusRelDomRes     = ilSysPropertyIsBusRelDomRes
           tSysProperty.SysPropertyInvCertCertificate = icSysPropertyInvCertCertificate
           tSysProperty.SysPropertyInvCertPublicKey   = icSysPropertyInvCertPublicKey
           tSysProperty.SysPropertyInvCertVersion     = icSysPropertyInvCertVersion
           tSysProperty.SysPropertyInvCertOpenSSLDir  = icSysPropertyInvCertOpenSSlDir
           tSysProperty.SysPropertyBankFileBatchSize  = iiSysPropertyBankFileBatchSize
           tSysProperty.SysPropertyPaySelMaxBatchSize = iiSysPropertyMaxBatchSize
           tSysProperty.SysPropertyPaySelMinBatchSize = iiSysPropertyMinBatchSize.
    
    /* ========================================================================================================================================= */
    /* When this method is called from the Synchronise-process then the CurrencyCode is surrounded by XXX                                        */
    /* This way we know this method is called from the Synchronise process - and not via the system-maintenance                                  */
    /* We should only set the Currency when we are in new mode or when it is called from the system-maintenance - and not via the Synchronise    */
    /* ========================================================================================================================================= */
    /* This means that when this method is called via the Synchronise and we are in new mode the input value for the currency is just ignored.   */
    /* This is done to avoid that the synchronise gets an error in modify-mode about the currency that cannot be changed once there are postings */
    /* ========================================================================================================================================= */
    if tSysProperty.tc_Status  = "N":U or 
       ilCalledFromSynchronise = false
    then assign tSysProperty.tcCurrencyCode = icSysPropertyCurrencyCode.
    
    /* =============================================================================== */
    /* Validate, AddtionalUpdates and Save                                             */
    /* =============================================================================== */
    <M-49 run ValidateBC (output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if oiReturnStatus < 0 
    then return.
    <M-22 run AdditionalUpdates (output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if oiReturnStatus < 0 
    then return.
    <M-52 run DataSave (output viFcReturnSuper (oiReturnStatus)) in BSystemProperty>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if oiReturnStatus < 0 
    then return.