Merge pull request #4627 from colemanw/docblocks
[civicrm-core.git] / CRM / Price / Page / Option.php
index a837c74d78a3865b60ab3955cae946db62b103a3..f9432ed9b61ba3f5b8402835026e0730842734ea 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -43,6 +43,8 @@
  */
 class CRM_Price_Page_Option extends CRM_Core_Page {
 
+  public $useLivePageJS = TRUE;
+
   /**
    * The field id of the option
    *
@@ -127,15 +129,27 @@ class CRM_Price_Page_Option extends CRM_Core_Page {
    * @access public
    */
   function browse() {
-    if (CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'ajax_popups_enabled', NULL, TRUE)) {
-      CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'js/crm.livePage.js');
-    }
     $customOption = array();
     CRM_Price_BAO_PriceFieldValue::getValues($this->_fid, $customOption);
     $config = CRM_Core_Config::singleton();
     $financialType = CRM_Contribute_PseudoConstant::financialType();
+    $taxRate = CRM_Core_PseudoConstant::getTaxRates();
+    // display taxTerm for priceFields
+    $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME,'contribution_invoice_settings');
+    $taxTerm = CRM_Utils_Array::value('tax_term', $invoiceSettings);
+    $invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
+    $getTaxDetails = FALSE;
     foreach ($customOption as $id => $values) {
       $action = array_sum(array_keys($this->actionLinks()));
+      // Adding the required fields in the array
+      if (isset($taxRate[$values['financial_type_id']])) {
+        $customOption[$id]['tax_rate'] = $taxRate[$values['financial_type_id']];
+        if ($invoicing && isset($customOption[$id]['tax_rate'])) {
+          $getTaxDetails = TRUE;
+        }
+        $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($customOption[$id]['amount'], $customOption[$id]['tax_rate']);
+        $customOption[$id]['tax_amount'] = $taxAmount['tax_amount'];
+      }
       if (!empty($values['financial_type_id'])){
         $customOption[$id]['financial_type_id'] = $financialType[$values['financial_type_id']];
       }
@@ -178,6 +192,8 @@ class CRM_Price_Page_Option extends CRM_Core_Page {
       'id', $returnURL, $filter
     );
 
+    $this->assign('taxTerm', $taxTerm);
+    $this->assign('getTaxDetails', $getTaxDetails);
     $this->assign('customOption', $customOption);
     $this->assign('sid', $this->_sid);
   }
@@ -215,9 +231,6 @@ class CRM_Price_Page_Option extends CRM_Core_Page {
     $controller->process();
     $controller->run();
 
-
-    $this->browse();
-
     if ($action & CRM_Core_Action::DELETE) {
       // add breadcrumb
       $url = CRM_Utils_System::url('civicrm/admin/price/field/option', 'reset=1');