project QadFinancials > class BYearClosing > method AdditionalUpdatesPostingTrans

Description

Additional Updates Posting Trans


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BYearClosing.AdditionalUpdatesPosting


program code (program5/byearclosing.p)

/* ====================================================================== */
/* Create the postings to transfer the balance from P&L to Balance Sheets */
/* ====================================================================== */

assign oiReturnStatus = -98.

TRANSFERBLOCK:
for each tYearClosing where
         tYearClosing.tc_Status                 = 'N':U and
         tYearClosing.YearClosingIsTransPLToBal = true:

    <Q-1 run PeriodByYearPeriod (all) (Read) (NoCache)
       (input tYearClosing.Company_ID, (CompanyId)
        input tYearClosing.YearClosingAccountingYear, (PeriodYear)
        input 0, (PeriodPeriod)
        input 0, (PeriodId)
        output dataset tqPeriodByYearPeriod) in BPeriod>

    find last tqPeriodByYearPeriod where
              tqPeriodByYearPeriod.tiCompany_ID     = tYearClosing.Company_ID and
              tqPeriodByYearPeriod.tiPeriodYear     = tYearClosing.YearClosingAccountingYear  and
              tqPeriodByYearPeriod.tcPeriodTypeCode <> {&PERIODTYPECODE-YEARCLOSING} 
              no-error.        
  
    if not available tqPeriodByYearPeriod
    then do:
        assign vcMessage           = trim(substitute(#T-61'Cannot find a GL period for GL calendar year &1.':200(20431)T-61#, trim(string(tYearClosing.YearClosingAccountingYear)) ))
               viLocalReturnStatus = -1.
        <M-11 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tYearClosing.YearClosingAccountingYear':U (icFieldName), 
            input  tYearClosing.YearClosingAccountingYear (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  tYearClosing.tc_Rowid (icRowid), 
            input  'qadfin-770024':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BYearClosing>       
        leave TRANSFERBLOCK.
    end.  
   
            
    /* ================================================================= */
    /* Get the Result of this Year for the Official Layer                */
    /* ================================================================= */

        
    <M-72 run CalculateBalanceByDivDIRECT
       (input  tYearClosing.Company_ID (iiCompanyID), 
        input  tYearClosing.tcLayerTypeCode (icLayerTypeCode), 
        input  False (ilGLIsBalanceAccount), 
        input  (tqPeriodByYearPeriod.tiPeriodYear * 100) (iiYearPeriodFrom), 
        input  (tqPeriodByYearPeriod.tiPeriodYear * 100) + tqPeriodByYearPeriod.tiPeriodPeriod (iiYearPeriodTill), 
        input  tYearClosing.YearClosingIsInclDivision (ilIsInclDivision), 
        output viPostingHistRecordsRead (oiPostingHistRecordsRead), 
        input  tYearClosing.tcLayerCode (icLayerCode), 
        output viFcReturnSuper (oiReturnStatus)) in BYearClosing>
                      
    if not can-find(first tPLAmounts)
    then next.

    assign vcPostingText = trim(#T-70'Year-End Closing: PL transfer to BS.':200(56442)T-70#)
           vcPostingText = SUBSTRING (vcPostingText,1,40,"CHARACTER").
     
    /* Add Posting Header */
    <M-14 run AddPostingHeader
       (input  tYearClosing.Company_ID (iiCompanyId), 
        input  tYearClosing.YearClosingAccountingYear (iiPeriodYear), 
        input  tqPeriodByYearPeriod.tiPeriodPeriod (iiPeriodPeriod), 
        input  tYearClosing.tcClosingTransferJournalCode (icJournalCode), 
        input  '' (icReportingJournalCode), 
        input  0 (iiVoucher), 
        input  tqPeriodByYearPeriod.ttPeriodEndDate (itPostingDate), 
        input  ? (itValueDate), 
        input  vcPostingText (icPostingText), 
        input  '':U (icPostingBusinessRelationText), 
        input  '':U (icPostingInvoiceReferenceText), 
        input  '':U (icPostingParentText), 
        input  viBPeriodYearClosingID (iiBPeriodId), 
        input  ? (icPostingOriginAddressCode), 
        input  ? (icPostingOriginDocument), 
        input  ? (icPostingOriginDocumentType), 
        input  '':U (icBatchNumber), 
        input  ? (icBankImpLineRef), 
        output viPostingID (oiPostingId), 
        output vcPostingRowid (ocRowid), 
        output viPostingVoucher (oiPostingVoucher), 
        output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
    if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
    then assign viLocalReturnStatus = viFcReturnSuper.                           
    if viFcReturnSuper < 0 
    then leave TRANSFERBLOCK.
    
    /* Update Additional GL Numbering date */
    if vlIsAddGLNbr
    then do:
        <M-22 run SetNumberingDate
           (input  viPostingID (iiPostingID), 
            input  tYearClosing.YearClosingTrnAddGLNbrDate (itNbrDate), 
            output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
        if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
        then assign viLocalReturnStatus = viFcReturnSuper.                           
        if viFcReturnSuper < 0 
        then leave TRANSFERBLOCK.
    end.

    /* Create Postinglines */
    assign vcPostingText = trim(#T-57'Year-End Closing: PL transfer to BS.':200(56442)T-57#)
           vcPostingText = SUBSTRING (vcPostingText,1,40,"CHARACTER").

    for each tPLAmounts:
              
        <M-79 run AddStandardPosting
           (input  vcPostingRowid (icPostingtcRowid), 
            input  if tplamounts.tcplamountsdivisionCode = '':U then tYearClosing.tcClosingPLGLCode else tYearClosing.tcClosingPLDivGLCode (icGLCode), 
            input  tPLAmounts.tcPLAmountsDivisionCode (icDivisionCode), 
            input  '':U (icCostCentreCode), 
            input  '':U (icCostCentreText), 
            input  '':U (icProjectCode), 
            input  '':U (icProjectText), 
            input  '':U (icIntercoBusinessRelationCode), 
            input  vcCompanyLC (icCurrencyCode), 
            input  if tPLAmounts.tdPLAmountsLC <= 0 then - tPLAmounts.tdPLAmountsLC else 0 (idDebitTC), 
            input  if tPLAmounts.tdPLAmountsLC <= 0 then - tPLAmounts.tdPLAmountsLC else 0 (idDebitLC), 
            input  if tPLAmounts.tdPLAmountsCC <= 0 then - tPLAmounts.tdPLAmountsCC else 0 (idDebitCC), 
            input  0 (idDebitPC), 
            input  if tPLAmounts.tdPLAmountsLC <= 0 then 0 else tPLAmounts.tdPLAmountsLC (idCreditTC), 
            input  if tPLAmounts.tdPLAmountsLC <= 0 then 0 else tPLAmounts.tdPLAmountsLC (idCreditLC), 
            input  if tPLAmounts.tdPLAmountsCC <= 0 then 0 else tPLAmounts.tdPLAmountsCC (idCreditCC), 
            input  0 (idCreditPC), 
            input  0 (idQty), 
            input  vcPostingText (icLineText), 
            input  '':U (icSafText), 
            input  tDefaultSaf (tDefaultSafs), 
            input  {&EXCHANGERATETYPE-ACCOUNTING} (icExchangeRateType), 
            input  1 (idExchangeRate), 
            input  1 (idExchangeRateScale), 
            input  ? (idPostingLineCCRate), 
            input  ? (idPostingLineCCScale), 
            output viPostingLineID (oiPostingLineId), 
            input  0 (iiSafStructureId), 
            input  '':U (icSafStructureCode), 
            input  '':U (icAllocationKey), 
            input  false (ilLinkedCrCyDaemonReqExists), 
            output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>

        if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
        then assign viLocalReturnStatus = viFcReturnSuper.                           
        if viFcReturnSuper < 0 
        then leave TRANSFERBLOCK.

        <M-7 run AddStandardPosting
           (input  vcPostingRowid (icPostingtcRowid), 
            input  if tplamounts.tcPLAmountsDivisionCode = '':U then tYearClosing.tcClosingBalanceGLCode else tYearClosing.tcClosingBalanceDivGLCode (icGLCode), 
            input  tPLAmounts.tcPLAmountsDivisionCode (icDivisionCode), 
            input  '':U (icCostCentreCode), 
            input  '':U (icCostCentreText), 
            input  '':U (icProjectCode), 
            input  '':U (icProjectText), 
            input  '':U (icIntercoBusinessRelationCode), 
            input  vcCompanyLC (icCurrencyCode), 
            input  if tplamounts.tdPLAmountsLC <= 0 then 0 else tplamounts.tdPLAmountsLC (idDebitTC), 
            input  if tplamounts.tdPLAmountsLC <= 0 then 0 else tplamounts.tdPLAmountsLC (idDebitLC), 
            input  if tplamounts.tdPLAmountsCC <= 0 then 0 else tplamounts.tdPLAmountsCC (idDebitCC), 
            input  0 (idDebitPC), 
            input  if tplamounts.tdPLAmountsLC <= 0 then - tplamounts.tdPLAmountsLC else 0 (idCreditTC), 
            input  if tplamounts.tdPLAmountsLC <= 0 then - tplamounts.tdPLAmountsLC else 0 (idCreditLC), 
            input  if tplamounts.tdPLAmountsCC <= 0 then - tplamounts.tdPLAmountsCC else 0 (idCreditCC), 
            input  0 (idCreditPC), 
            input  0 (idQty), 
            input  vcPostingText (icLineText), 
            input  '':U (icSafText), 
            input  tDefaultSaf (tDefaultSafs), 
            input  {&EXCHANGERATETYPE-ACCOUNTING} (icExchangeRateType), 
            input  1 (idExchangeRate), 
            input  1 (idExchangeRateScale), 
            input  ? (idPostingLineCCRate), 
            input  ? (idPostingLineCCScale), 
            output viPostingLineID (oiPostingLineId), 
            input  0 (iiSafStructureId), 
            input  '':U (icSafStructureCode), 
            input  '':U (icAllocationKey), 
            input  false (ilLinkedCrCyDaemonReqExists), 
            output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>   

        if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
        then assign viLocalReturnStatus = viFcReturnSuper.                           
        if viFcReturnSuper < 0 
        then leave TRANSFERBLOCK.

    end. /* for each tPLAmounts */     

end. /* for each tYearClosing where tc_status = 'N' */  

assign oiReturnStatus = viLocalReturnStatus.

if oiReturnStatus < 0
then return.