project QadFinancials > class BBankNumber > method ChangeDefaultBankNumber

Description

Change default bank number for customer and supplier


Parameters


iiNewDefaultBankNumberIDinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankNumber.CreateBankNumberAsCopy
method BCDocument.ApiSetCDocumentStatusChange
method BDDocument.ApiSetDDocumentStatusChange


program code (program1/bbanknumber.p)

assign oiReturnStatus = -98.

if iiNewDefaultBankNumberID = 0 or iiNewDefaultBankNumberID = ?
then do:
    assign oiReturnStatus = -1
           vcMsg          = #T-7'The Bank Number field cannot be blank.':255(70237)t-7#.
    <M-6 run SetMessage
       (input  vcMsg (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-8395':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
    return.
end. /* iiNewDefaultBankNumberID = 0 or iiNewDefaultBankNumberID = ? */

find first tBankNumber where
           tBankNumber.BankNumber_ID = iiNewDefaultBankNumberID no-error.
if not available tBankNumber
then do:
    <M-15 run DataLoad
       (input  '':U (icRowids), 
        input  string(iinewDefaultBankNumberID) (icPkeys), 
        input  '':U (icObjectIds), 
        input  '':U (icFreeform), 
        input  true (ilKeepPrevious), 
        output viFcReturnSuper (oiReturnStatus)) in BBankNumber>

    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0 then return.
    find first tBankNumber where
               tBankNumber.BankNumber_ID = iiNewDefaultBankNumberID no-error.
    if not available tBankNumber
    then do:
        assign oiReturnStatus = -1
               vcMsg          = #T-18'The bank number specified is not defined in the system (ID: $1).':255(70311)t-18#.
        <M-17 run SetMessage
           (input  vcMsg (icMessage), 
            input  string(iiNewDefaultBankNumberID) (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'QadFin-8433':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
        return.
    end. /* if not available tBankNumber */
end. /* if not available tBankNumber */

assign viParentObjectID = tBankNumber.ParentObject_ID.

<Q-16 run BankNumberForPayFormatBank (all) (Read) (NoCache)
   (input ?, (CompanyId)
    input viParentObjectID, (ParentObjectID)
    input iiNewDefaultBankNumberID, (BankNumberID)
    output dataset tqBankNumberForPayFormatBank) in BBankNumber >

find first tqBankNumberForPayFormatBank where
           tqBankNumberForPayFormatBank.tiParentObject_ID = viParentObjectID and
           tqBankNumberForPayFormatBank.tiBankNumber_ID = iiNewDefaultBankNumberID no-error.
if not available tqBankNumberForPayFormatBank
then do:
    assign oiReturnStatus = -1
           vcMsg          = #T-20'The bank number specified is not defined in the system (ID: $1).':255(70311)t-20#.
    <M-19 run SetMessage
       (input  vcMsg (icMessage), 
        input  string(iiNewDefaultBankNumberID) (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-8434':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
    return.
end. /* if not available tqBankNumberByID */

assign viBankCompanyID = tqBankNumberForPayFormatBank.tiCompany_ID.

<Q-12 run BankNumberByPayFormatParentObj (all) (Read) (NoCache)
   (input ?, (PaymentFormatID)
    input viParentObjectID, (ParentObjectID)
    input viBankCompanyID, (CompanyId)
    output dataset tqBankNumberByPayFormatParentObj) in BBankNumber >

assign vcList = "":U.
for each tqBankNumberByPayFormatParentObj where
         tqBankNumberByPayFormatParentObj.tiParentObject_ID = viParentObjectID and
         tqBankNumberByPayFormatParentObj.tiCompany_ID      = viBankCompanyID:
    if vcList = "":U then assign vcList = string(tqBankNumberByPayFormatParentObj.tiBankNumber_ID).
    else assign vcList = vcList + chr(4) + string(tqBankNumberByPayFormatParentObj.tiBankNumber_ID).
end. /* for each tqBankNumberByPayFormatParentObj where */

if vcList <> "":U
then do:
    <M-11 run DataLoad
       (input  '':U (icRowids), 
        input  vcList (icPkeys), 
        input  '':U (icObjectIds), 
        input  '':U (icFreeform), 
        input  true (ilKeepPrevious), 
        output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
    if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0 then return.
end.

if not can-find (first tBankNumber where 
                       tBankNumber.BankNumber_ID = iiNewDefaultBankNumberID)
then do:
    assign oiReturnStatus = -1
           vcMsg          = #T-14'New bank number ($1) does not exist.':255(70385)T-14#.
    <M-13 run SetMessage
       (input  vcMsg (icMessage), 
        input  string(iinewDefaultBankNumberID) (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-8401':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BBankNumber>
    return.
end. /* if not can-find (first tBankNumber where */

for each tBankNumber where
         tBankNumber.ParentObject_ID = viParentObjectID:
    if can-find (first tqBankNumberByPayFormatParentObj where
                       tqBankNumberByPayFormatParentObj.tiBankNumber_ID = tBankNumber.BankNumber_ID and
                       tqBankNumberByPayFormatParentObj.tiCompany_ID    = viBankCompanyID)
    then do:
        if tBankNumber.BankNumberIsDefault = true and
           tBankNumber.BankNumber_ID      <> iiNewDefaultBankNumberID
        then assign tBankNumber.BankNumberIsDefault = false
                    tBankNumber.tc_Status           = "C":U.
        else if tBankNumber.BankNumberIsDefault = false and
                tBankNumber.BankNumber_ID       = iiNewDefaultBankNumberID
             then assign tBankNumber.BankNumberIsDefault = true
                         tBankNumber.tc_Status           = "C":U.
    end.
end. /* for each tBankNumber where */

if oiReturnStatus = -98 then assign oiReturnStatus = 0.