Symptoms

A customer only has the Check/Cash payment method assigned to their account in Parallels Business Automation (PBA). The payment method is displayed in the Customer Control Panel (CCP) and its status is 'Ok'. It is marked as the method to be used for auto payments, as in the screenshot below:

However, Check/Cash is absent in the list of available payment options in the CCP. When a customer tries to place an upgrade order and pay using the Check/Cash method, PBA asks the customer to enter the information of a new credit card:

Cause

The Check/Cash payment option is disabled for upgrade orders in the CCP by default on a PBA 5.4 installation. It can be activated using some CCP customization.

The Check/Cash payment method is removed from the CCP by JS script in the following system PBA files, which represent corresponding screens in the CCP:

  • PBA_ROOT/conf/wnd/BM/customization/SubscrParam_CDB_ConfirmUpgradeOrderWin.xml

  • PBA_ROOT/conf/wnd/BM/customization/Payment_CDB_AddPaymentToOrderOrInvoiceWin.xml

The first file is used when a customer places a new upgrade order at Home > Account > Buy Additional Resources. The second is used when a customer wants to pay an existing order/invoice at Home > Account > Financial Documents.

PBA_ROOT is the root folder of your PBA installation. The default values are:

  • PBA for Linux: /usr/local/bm

  • PBA for Windows: C:\Program Files\Parallels\PBA

The files above are not customization files, despite the fact they are stored in the 'BM/customization' folder. They are part of the PBA packages installed on the PBA Application Server.

The following JS script in the above files removes the Check/Cash payment method in the corresponding screens in CCP:

<!--remove "pay by cash" -->
var pms = document.getElementById('input___PayToolPayToolID');
for(var i=0;i!=pms.options.length;i++){
if(pms.options[i].value == "0"){
pms.remove(i);
break;
}
}

Resolution

Upgrade to PBA 5.5.x.

The customizations described below are not required after an upgrade to PBA 5.5. In this version, it is possible to make Check/Cash visible and usable for end-users from the Provider Control Panel: See the PBA 5.5 Release Notes

Resolution for 5.4.x Linux installations

In order to leave the Check/Cash payment method in the CCP, the customization files must be prepared which remove the above-mentioned JS script. Follow the steps below to restore the Check/Cash payment method in the PBA CCP.

  1. Create the /usr/local/bm/customization directory where customization files are to be stored (if it does not already exist):

    # mkdir /usr/local/bm/customization 
    
  2. Create symlink in the conf/wnd/BM/customization directory that points to the /usr/local/bm/customization directory (if it does not already exist):

    #  ll /usr/local/bm/conf/wnd/BM/customization/customization/
    ls: /usr/local/bm/conf/wnd/BM/customization/customization/: No such file or directory
    
    #  cd /usr/local/bm/conf/wnd/BM/customization
    #  ln -s /usr/local/bm/customization customization
    
  3. Prepare the correct files on the PBA Management Node (create the files if necessary):

    • PBA_ROOT/customization/SubscrParam_CDB_ConfirmUpgradeOrderWin.xml

    • PBA_ROOT/customization/Payment_CDB_AddPaymentToOrderOrInvoiceWin.xml
  4. Put the following content into the customization file: PBA_ROOT/customization/SubscrParam_CDB_ConfirmUpgradeOrderWin.xml:

    <window id="SubscrParam_CDB_ConfirmUpgradeOrderWin" type="wizard" wo_refresh="yes">
    <layout>
    <grid id="dataBilling Information" group="New Credit Card Holder Information" after="dataGeneral Info">
      <row id="VState">
        <cell class="reference">VState VStateName
        <html>
            <script LANGUAGE="JavaScript">
              <!-- remove "pay by cash"
              var pms = document.getElementById('input___PayToolPayToolID');
              for(var i=0;i!=pms.options.length;i++){
              if(pms.options[i].value == "0"){
              pms.remove(i);
              break;
              }
              } -->
            </script>
          </html>
        </cell>
      </row>
    </grid>
    </layout>
    </window>
    

    Attention: if the customization file already exists and contains some content, put the above content into the proper hierarchy of objects:

    • cell 'VState VStateName'
    • row id="VState"
    • grid id="dataBilling Information"
    • top-level layout
    • window id="SubscrParam_CDB_ConfirmUpgradeOrderWin"
  5. Add the following content into the customization file: PBA_ROOT/customization/Payment_CDB_AddPaymentToOrderOrInvoiceWin.xml:

    <window id="Payment_CDB_AddPaymentToOrderOrInvoiceWin" type="wizard" ICON="/images/nav/tree/OperationDirector/FinancialManager/Payments-32.gif">
    <layout>
    <grid id="dataBilling Information" group="New Credit Card Holder Information" after="dataGeneral Info">
       <row id="VState">
        <cell class="reference">VState VStateName<html>
            <script language="JavaScript">
               <!-- remove "pay by cash"
               var pms = document.getElementById('input___PayToolPayToolID');
               for(var i=0;i!=pms.options.length;i++){
                if(pms.options[i].value == "0"){
                  pms.remove(i);
                  break;
               }
               } -->
            </script>
          </html>
        </cell>
      </row>
    </grid>
    </layout>
    </window>
    

    Attention: if the customization file already exists and contains some content, put the above content into the proper hierarchy of objects:

    • cell 'VState VStateName'
    • row id="VState"
    • grid id="dataBilling Information"
    • top-level layout
    • window id=" Payment_CDB_AddPaymentToOrderOrInvoiceWin"
  6. Restart the PBA 'WWW' container to apply the changes:

        # /etc/init.d/www restart
    

Resolution for 5.4.x Windows installations

Changes are to be made in the the original files, which are rewritten with each update. As a result, it is necessary to apply them after an update installation.

  1. In the file(s):

    PBA_ROOT/conf/wnd/BM/customization/SubscrParam_CDB_ConfirmUpgradeOrderWin.xml
    PBA_ROOT/conf/wnd/BM/customization/Payment_CDB_AddPaymentToOrderOrInvoiceWin.xml
    

    ... comment the part which removes the Check/Cash option, like this:

           <!-- remove "pay by cash"
           var pms = document.getElementById('input___PayToolPayToolID');
           for(var i=0;i!=pms.options.length;i++){
            if(pms.options[i].value == "0"){
              pms.remove(i);
              break;
            }
           } -->
    
  2. Restart www to apply the changes :

    ssm restart www
    

Check that you can select the Check/Cash option in the CCP resource upgrade wizard and use it to pay a resource upgrade/downgrade order.

Internal content