project QadFinancials > class BBankImportLine > method CreateUnallocatedBankEntry


Parameters


icOwnBankNumberinputcharacter
biOwnBankNumber_IDinput-outputinteger
bcBankGLCodeinput-outputcharacter
btBankImpLineOrigTransDateinput-outputdate
itBankImpLineValueDateinputdate
iiBankImpLineBatchNbrinputinteger
iiBankImpLine_IDinputinteger
icBankImpLineStatNumberinputcharacter
icBankImpLineInfoinputcharacter
oiBankState_IDoutputinteger
icBankImpLineInOutinputcharacter
icBankImpLineDescriptioninputcharacter
icBankImpLinePaymentRefinputcharacter
icBankImpLineInvRefListinputcharacter
icBankImpLineDebtorCodeinputcharacter
icBankImpLineCreditorCodeinputcharacter
idBankImpLineAmountSumTCinputdecimal
icBankImpLineDebtorNameinputcharacter
icBankImpLineAddressLineinputcharacter
icBankImpLineAddressCityinputcharacter
icBankImpLineAddressZipinputcharacter
icBankImpLineAddressCountryinputcharacter
icBankImpLineBankNumberinputcharacter
idBankImpLineOrigAmountTCinputdecimal
icBankImpLineOrigCurrCodeinputcharacter
idBankImpLineExchangeRateinputdecimal
idBankImpLineRateScaleinputdecimal
icBankImpLineCostinputcharacter
icBankImpLineRowIDinputcharacter
ocBankingEntryReferenceoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankImportLine.ProcessBankImpLineDDocStatusChg
method BBankImportLine.ProcessBankImpLineNewDDocument


program code (program6/bbankimportline.p)

/* =================================================================================================== */
/* Method      : CreateUnallocatedBankEntry                                                            */
/* Desc        : This method creates new banking entry and will not alloctes it                        */
/* =================================================================================================== */

assign oiReturnStatus = -98
       vcParam        = '':U
       vcCriteria     = '':U.

/* =================================================================================================== */
/* Open communication with BankEntry component                                                         */
/* =================================================================================================== */
if  viBBankEntryID = 0 or viBBankEntryID = ?
then do:
    <I-19 {bFcStartAndOpenInstance
         &ADD-TO-TRANSACTION   = "true"
         &CLASS                = "BBankEntry"}>
end.
else if not valid-handle(vhBBankEntryInst)
then do:
    <I-5 {bFcOpenInstance
         &CLASS           = "BBankEntry"}>
end.
assign viLocalReturn = 0
       viOriginalCompanyId = viCompanyId.

CREATE_BANK_STATEMENT:
do:
    /* =================================================================================================== */
    /* Get definition of own bank number                                                                   */
    /* =================================================================================================== */
    if biOwnBankNumber_ID = 0 or biOwnBankNumber_ID = ? or 
        bcBankGLCode = '':U or bcBankGLCode = ?
    then do:
        /* Create Processing Info */
        <M-45 run CreateBankImpLineProcessInfo
           (input  'GetBankNumberByNumber':U (icProcessName), 
            input  #T-59'Get own bank number':255(242707683)T-59# (icProcessDesc), 
            input  ? (icProcessResult), 
            input  ? (icProcessParam), 
            input  'CreateUnallocatedBankEntry':U (icParentRowName), 
            input  0 (iiProcessStatus), 
            output viFcReturnSuper (oiReturnStatus)) in BBankImportLine>

        <M-1 run GetBankNumberByNumber
           (input  {&BANKNUMBERPARENTTYPE-GL} (icBankNumberParentType), 
            input  icOwnBankNumber (icBankNumber), 
            output biOwnBankNumber_ID (oiBankNumberId), 
            output vcDummy (ocBankNumber), 
            output viDummy (oiParentObjectId), 
            output bcBankGLCode (ocParentObjectCode), 
            output viDummy (oiCurrencyId), 
            output vcDummy (ocCurrencyCode), 
            output viDummy (oiTransactionCompanyId), 
            input  ? (icBankImpCurrencyCode), 
            output viFcReturnSuper (oiReturnStatus)) in BBankImportLine>    
            
        if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.
        
        <M-96 run UpdateBankImpLineProcessResult
           (input  'GetBankNumberByNumber':U (icProcessName), 
            input  viLocalReturn (iiProcessStatus), 
            input  ? (icProcessResult), 
            output viFcReturnSuper (oiReturnStatus)) in BBankImportLine>
        if viLocalReturn <  0 then leave CREATE_BANK_STATEMENT.
    end. /* if iiOwnBankNumber_ID = 0 or iiOwnBankNumber_ID */

    /* =================================================================================================== */
    /* Add bank entry header                                                                               */
    /* =================================================================================================== */
    if btBankImpLineOrigTransDate = ?
    then assign btBankImpLineOrigTransDate = itBankImpLineValueDate.

    if iiBankImpLineBatchNbr <> 0 and
       iiBankImpLineBatchNbr <> ?
    then do:
        assign vcBankImpLineRef = string(iiBankImpLineBatchNbr).
    end.
    else do:
        <Q-6 run GetBankImpByLineID (all) (Read) (NoCache)
           (input iiBankImpLine_ID, (BankImpLineID)
            output dataset tqGetBankImpByLineID) in BBankImportLine>
        find first tqGetBankImpByLineID where
                   tqGetBankImpByLineID.tiBankImpLine_ID = iiBankImpLine_ID
                   no-error.
        if available tqGetBankImpByLineID
        then assign vcBankImpLineRef = tqGetBankImpByLineID.tcBankImpFileName.
    end.

    <M-46 run AddBankEntryHeader
       (input  bcBankGLCode (icBankGLCode), 
        input-output icBankImpLineStatNumber (bcStatementNumber), 
        input  btBankImpLineOrigTransDate (itTransactionDate), 
        input  icBankImpLineInfo (icInfo), 
        input  vcBankImpLineRef (icBankImpLineRef), 
        output oiBankState_ID (oiBankStateId), 
        output vcBankStateRowId (ocBankStateRowId), 
        output viBankStateYear (oiBankStateYear), 
        output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
    if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.

    /* Create Processing Info */
    <M-31 run CreateBankImpLineProcessInfo
       (input  'AddBankEntryHeader':U (icProcessName), 
        input  #T-4'Create bank entry header info':255(74266279)T-4# (icProcessDesc), 
        input  ? (icProcessResult), 
        input  ? (icProcessParam), 
        input  'CreateUnallocatedBankEntry':U (icParentRowName), 
        input  viLocalReturn (iiProcessStatus), 
        output viFcReturnSuper (oiReturnStatus)) in BBankImportLine>

    if viLocalReturn <  0 then leave CREATE_BANK_STATEMENT.

    /* =================================================================================================== */
    /* Create bank statement line                                                                          */
    /* =================================================================================================== */
    assign vcBankLineInOut     = (if icBankImpLineInOut = {&TRANSDIRECTION-IN}
                                  then {&BANKSTATELINEINOUT-IN}
                                  else {&BANKSTATELINEINOUT-OUT})
           vcBankStateLineDesc = icBankImpLineDescription.
    /* Make sure that the BankStateLineDescription is filled with value */
    if vcBankStateLineDesc = '':U or vcBankStateLineDesc = ?
    then assign vcBankStateLineDesc = icBankImpLinePaymentRef.
    if vcBankStateLineDesc = '':U or vcBankStateLineDesc = ?
    then assign vcBankStateLineDesc = icOwnBankNumber + 'Statement':U.
    assign vcBankStateLineReferenceExt = substring(icBankImpLineInvRefList,1,40,"CHARACTER")
           vcBankStateLineDebCredExt   = if (icBankImpLineDebtorCode <> "":U and 
                                             icBankImpLineDebtorCode <> ?)
                                         then icBankImpLineDebtorCode 
                                         else icBankImpLineCreditorCode.
    
    <M-9 run AddBankEntryLine
       (input  vcBankStateRowId (icBankEntryRowId), 
        input  btBankImpLineOrigTransDate (itTransactionDate), 
        input  itBankImpLineValueDate (itValueDate), 
        input  vcBankStateLineDesc (icDescription), 
        input  idBankImpLineAmountSumTC (idTransactionAmountTC), 
        input  vcBankLineInOut (icTransactionInOut), 
        input  icBankImpLinePaymentRef (icReference), 
        input  vcBankStateLineReferenceExt (icReferenceExt), 
        input  icBankImpLineInfo (icInfo), 
        input  icBankImpLineDebtorName (icPartnerName), 
        input  icBankImpLineAddressLine (icAddressLine), 
        input  icBankImpLineAddressCity (icAddressCity), 
        input  icBankImpLineAddressZip (icAddressZip), 
        input  icBankImpLineAddressCountry (icAddressCountry), 
        input  icBankImpLineBankNumber (icPartnerBankNumber), 
        input  '':U (icPartnerDebCred), 
        input  idBankImpLineOrigAmountTC (idOrigAmountTC), 
        input  icBankImpLineOrigCurrCode (icOrigCurrCode), 
        input  idBankImpLineExchangeRate (idBankExchangeRate), 
        input  idBankImpLineRateScale (idBankRateScale), 
        input  icBankImpLineCost (icCost), 
        input  icBankImpLineRowID (icBankImportLineRowID), 
        output vcBankStateLineRowId (ocBankStateLineRowId), 
        input  true (ilIsUnAllocatedStatement), 
        input  vcBankImpLineRef (icBankImpLineRef), 
        output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
    if viFcReturnSuper <> 0 then assign viLocalReturn = viFcReturnSuper.

    /* Create Processing Info */
    <M-70 run CreateBankImpLineProcessInfo
       (input  'AddBankEntryLine':U (icProcessName), 
        input  #T-25'Create bank entry line data':255(677416537)T-25# (icProcessDesc), 
        input  ? (icProcessResult), 
        input  ? (icProcessParam), 
        input  'CreateUnallocatedBankEntry':U (icParentRowName), 
        input  viLocalReturn (iiProcessStatus), 
        output viFcReturnSuper (oiReturnStatus)) in BBankImportLine>

    if viLocalReturn <  0 then leave CREATE_BANK_STATEMENT.  

    /* Prepare Banking Entry reference for warning message */
    assign ocBankingEntryReference = string(viBankStateYear) + "/" + 
                                     icBankImpLineStatNumber + "/" +
                                     vcBankImpLineRef.

end. /* of CREATE_BANK_STATEMENT: */

/* ====== */
/* Return */ 
/* ====== */
if viLocalReturn <> 0   then assign oiReturnStatus = viLocalReturn.
if oiReturnStatus = -98 then assign oiReturnStatus = 0.