project QadFinancials > class BPosting > method AdditionalUpdatesPreAddGLNumberDet

Description

This method is to get paramters for calling GetNumber(BNumber), which are companyId, Year.
Also retrieve GL Numbering flag (if using additional numbering)


Parameters


iiCompanyIdinputintegerCompany Id
iiPostingYearinputintegerPostingYear
icJournalCodeinputcharacter
oiSharedCompanyIdoutputintegerCompany Id used as parameter to call GetNumber(BNumber)
oiNumberYearoutputintegerYear used to call GetNumber (BNumber)
If "reset number yearyly" is false, it's a fixed number. Otherwise, it's PostingYear.
olIsAddNbroutputlogicalreturn whether company uses additional GL Numbering.
blStartQueryCompPropByIDAllInfoinput-outputlogicalis query CompanyPropertyByIDAllInfo already started or not ?
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BPosting.AdditionalUpdatesPreAddGLNumber


program code (program5/bposting.p)

if oiReturnStatus = 0 
then oiReturnStatus = -98.

/* =============================================================================== */
/* Check if Additional Numbering is enabled. If not, we don't have to do anything  */
/* =============================================================================== */
if not can-find (first tqCompanyPropertyByIDAllInfo where
                       tqCompanyPropertyByIDAllInfo.tiCompany_ID = iiCompanyId)
then do:
    <Q-7 run CompanyPropertyByIDAllInfo (all) (Read) (Cache)
       (input iiCompanyId, (CompanyId)
        output dataset tqCompanyPropertyByIDAllInfo) in BCompanyProperty >
end.

find first tqCompanyPropertyByIDAllInfo where
           tqCompanyPropertyByIDAllInfo.tiCompany_ID = iiCompanyId and
           tqCompanyPropertyByIDAllInfo.tlCompanyPropertyIsAddGLNbr
           no-error.
if not available tqCompanyPropertyByIDAllInfo 
then do:  
    assign olIsAddNbr = false.
end.
else do:

    assign olIsAddNbr = tqCompanyPropertyByIDAllInfo.tlCompanyPropertyIsAddGLNbr.
    
    <Q-3 run JournalByJournalCodeWithLayer (all) (Read) (NoCache)
       (input viCompanyId, (CompanyId)
        input icJournalCode, (JournalCode)
        output dataset tqJournalByJournalCodeWithLayer) in BJournal>

    /* Check if Additional Numering is enabled for the layer which is used */
    find first tqJournalByJournalCodeWithLayer where
               tqJournalByJournalCodeWithLayer.tcJournalCode = icJournalCode
               no-error.
    if available tqJournalByJournalCodeWithLayer
    then assign olIsAddNbr = tqJournalByJournalCodeWithLayer.tlLayerIsAddGLNbr.
    else assign olIsAddNbr = false.

    if olIsAddNbr 
    then do:
        if tqCompanyPropertyByIDAllInfo.tiSharedAddNrCompany_ID = ? or 
           tqCompanyPropertyByIDAllInfo.tiSharedAddNrCompany_ID = 0
        then assign oiSharedCompanyId   = iiCompanyId
                    oiNumberYear        = if tqCompanyPropertyByIDAllInfo.tlCompanyPropertyIsAddNrYrly 
                                          then iiPostingYear
                                          else  9999.
        else do:             
            assign oiSharedCompanyId = tqCompanyPropertyByIDAllInfo.tiSharedAddNrCompany_ID.
    
            /* get shared company's information for additional GL Numbering */
            if not can-find (first tqCompanyPropertyByIDAllInfo where
                                   tqCompanyPropertyByIDAllInfo.tiCompany_ID = oiSharedCompanyId)
            then do:
                <Q-8 run CompanyPropertyByIDAllInfo (all) (Read) (Cache)
                   (input oiSharedCompanyId, (CompanyId)
                    output dataset tqCompanyPropertyByIDAllInfo) in BCompanyProperty >
            end.

            find first tqCompanyPropertyByIDAllInfo no-error.
            if available tqCompanyPropertyByIDAllInfo 
            then do: 
                if tqCompanyPropertyByIDAllInfo.tlCompanyPropertyIsAddGLNbr 
                then assign oiNumberYear = if tqCompanyPropertyByIDAllInfo.tlCompanyPropertyIsAddNrYrly 
                                           then iiPostingYear
                                           else 9999.
                else do:
                    assign vcAddGLNbrMsg = Trim(substitute(#T-9'The company setup is invalid. The company &1 points to the company &2 for the additional numbering functionality and the company &2 is not enabled for additional numbering.':200(59065)t-9#,
                                           iiCompanyId,tqCompanyPropertyByIDAllInfo.tiCompany_ID,tqCompanyPropertyByIDAllInfo.tiCompany_ID))
                           oiReturnStatus = -3.
                        
                    <M-6 run SetMessage
                       (input  vcAddGLNbrMsg (icMessage), 
                        input  '' (icArguments), 
                        input  '' (icFieldName), 
                        input  '' (icFieldValue), 
                        input  'E' (icType), 
                        input  3 (iiSeverity), 
                        input  tPosting.tc_Rowid (icRowid), 
                        input  'QadFin-8881':U (icFcMsgNumber), 
                        input  '' (icFcExplanation), 
                        input  '' (icFcIdentification), 
                        input  '' (icFcContext), 
                        output viFcReturnSuper (oiReturnStatus)) in BPosting>
                     return.
                end.
            end. 
        end. /* share other company's sequence number */
    end. /* if olIsAddNbr */
end. /* else */

if oiReturnStatus = -98 
then oiReturnStatus = 0.