From 37828d4f6ea7c19d017de439b8f635572fc47aa7 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Sat, 14 Jul 2018 17:14:03 +0100 Subject: [PATCH] Rename CRM_Contribute_BAO_ManagePremiums to CRM_Contribute_BAO_Product and deprecate CRM_Contribute_BAO_ManagePremiums --- CRM/Admin/Page/AJAX.php | 2 +- CRM/Contribute/BAO/ManagePremiums.php | 71 ++------- CRM/Contribute/BAO/Product.php | 144 ++++++++++++++++++ CRM/Contribute/Form/AdditionalInfo.php | 2 +- CRM/Contribute/Form/ManagePremiums.php | 6 +- CRM/Contribute/Page/ManagePremiums.php | 2 +- CRM/Core/BAO/FinancialTrxn.php | 2 +- .../CRM/Contribute/BAO/ContributionTest.php | 4 +- ...ManagePremiumsTest.php => ProductTest.php} | 24 +-- 9 files changed, 181 insertions(+), 76 deletions(-) create mode 100644 CRM/Contribute/BAO/Product.php rename tests/phpunit/CRM/Contribute/BAO/{ManagePremiumsTest.php => ProductTest.php} (80%) diff --git a/CRM/Admin/Page/AJAX.php b/CRM/Admin/Page/AJAX.php index 4854ffb9df..85f1c0fbb7 100644 --- a/CRM/Admin/Page/AJAX.php +++ b/CRM/Admin/Page/AJAX.php @@ -123,7 +123,7 @@ class CRM_Admin_Page_AJAX { $ret['content'] = ts('Are you sure you want to disable this CiviCRM Profile field?'); break; - case 'CRM_Contribute_BAO_ManagePremiums': + case 'CRM_Contribute_BAO_Product': $ret['content'] = ts('Are you sure you want to disable this premium? This action will remove the premium from any contribution pages that currently offer it. However it will not delete the premium record - so you can re-enable it and add it back to your contribution page(s) at a later time.'); break; diff --git a/CRM/Contribute/BAO/ManagePremiums.php b/CRM/Contribute/BAO/ManagePremiums.php index 1f5b3c74d0..35c93959cc 100644 --- a/CRM/Contribute/BAO/ManagePremiums.php +++ b/CRM/Contribute/BAO/ManagePremiums.php @@ -29,45 +29,38 @@ * * @package CRM * @copyright CiviCRM LLC (c) 2004-2018 + * @deprecated */ -class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_DAO_Product { - - /** - * Static holder for the default LT. - */ - static $_defaultContributionType = NULL; +class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_BAO_Product { /** * Class constructor. */ public function __construct() { + CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::construct'); parent::__construct(); } /** * Fetch object based on array of properties. * + * @deprecated * @param array $params * (reference ) an assoc array of name/value pairs. * @param array $defaults * (reference ) an assoc array to hold the flattened values. * - * @return CRM_Contribute_BAO_ManagePremium + * @return CRM_Contribute_BAO_ManagePremiums */ public static function retrieve(&$params, &$defaults) { - $premium = new CRM_Contribute_DAO_Product(); - $premium->copyValues($params); - if ($premium->find(TRUE)) { - $premium->product_name = $premium->name; - CRM_Core_DAO::storeValues($premium, $defaults); - return $premium; - } - return NULL; + CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::retrieve'); + return parent::retrieve($params, $defaults); } /** * Update the is_active flag in the db. * + * @deprecated * @param int $id * Id of the database record. * @param bool $is_active @@ -76,17 +69,14 @@ class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_DAO_Product { * @return bool */ public static function setIsActive($id, $is_active) { - if (!$is_active) { - $dao = new CRM_Contribute_DAO_PremiumsProduct(); - $dao->product_id = $id; - $dao->delete(); - } - return CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Product', $id, 'is_active', $is_active); + CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::setIsActive'); + return parent::setIsActive($id, $is_active); } /** * Add a premium product to the database, and return it. * + * @deprecated * @param array $params * Reference array contains the values submitted by the form. * @param array $ids (deprecated) @@ -95,50 +85,21 @@ class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_DAO_Product { * @return CRM_Contribute_DAO_Product */ public static function add(&$params, $ids) { - $id = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('premium', $ids)); - $params = array_merge(array( - 'id' => $id, - 'image' => '', - 'thumbnail' => '', - 'is_active' => 0, - 'is_deductible' => FALSE, - 'currency' => CRM_Core_Config::singleton()->defaultCurrency, - ), $params); - - // Modify the submitted values for 'image' and 'thumbnail' so that we use - // local URLs for these images when possible. - $params['image'] = CRM_Utils_String::simplifyURL($params['image'], TRUE); - $params['thumbnail'] = CRM_Utils_String::simplifyURL($params['thumbnail'], TRUE); - - // Save and return - $premium = new CRM_Contribute_DAO_Product(); - $premium->copyValues($params); - $premium->save(); - return $premium; + CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::add'); + return parent::add($params, $ids); } /** * Delete premium Types. * + * @deprecated * @param int $productID * * @throws \CRM_Core_Exception */ public static function del($productID) { - //check dependencies - $premiumsProduct = new CRM_Contribute_DAO_PremiumsProduct(); - $premiumsProduct->product_id = $productID; - if ($premiumsProduct->find(TRUE)) { - $session = CRM_Core_Session::singleton(); - $message .= ts('This Premium is being linked to Online Contribution page. Please remove it in order to delete this Premium.', array(1 => CRM_Utils_System::url('civicrm/admin/contribute', 'reset=1')), ts('Deletion Error'), 'error'); - CRM_Core_Session::setStatus($message); - return CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/contribute/managePremiums', 'reset=1&action=browse')); - } - - //delete from financial Type table - $premium = new CRM_Contribute_DAO_Product(); - $premium->id = $productID; - $premium->delete(); + CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::del'); + return parent::del($productID); } } diff --git a/CRM/Contribute/BAO/Product.php b/CRM/Contribute/BAO/Product.php new file mode 100644 index 0000000000..4ef558ccda --- /dev/null +++ b/CRM/Contribute/BAO/Product.php @@ -0,0 +1,144 @@ +copyValues($params); + if ($premium->find(TRUE)) { + $premium->product_name = $premium->name; + CRM_Core_DAO::storeValues($premium, $defaults); + return $premium; + } + return NULL; + } + + /** + * Update the is_active flag in the db. + * + * @param int $id + * Id of the database record. + * @param bool $is_active + * Value we want to set the is_active field. + * + * @return bool + */ + public static function setIsActive($id, $is_active) { + if (!$is_active) { + $dao = new CRM_Contribute_DAO_PremiumsProduct(); + $dao->product_id = $id; + $dao->delete(); + } + return CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Product', $id, 'is_active', $is_active); + } + + /** + * Add a premium product to the database, and return it. + * + * @param array $params + * Reference array contains the values submitted by the form. + * @param array $ids (deprecated) + * Reference array contains the id. + * + * @return CRM_Contribute_DAO_Product + */ + public static function add(&$params, $ids) { + $id = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('premium', $ids)); + $params = array_merge(array( + 'id' => $id, + 'image' => '', + 'thumbnail' => '', + 'is_active' => 0, + 'is_deductible' => FALSE, + 'currency' => CRM_Core_Config::singleton()->defaultCurrency, + ), $params); + + // Modify the submitted values for 'image' and 'thumbnail' so that we use + // local URLs for these images when possible. + $params['image'] = CRM_Utils_String::simplifyURL($params['image'], TRUE); + $params['thumbnail'] = CRM_Utils_String::simplifyURL($params['thumbnail'], TRUE); + + // Save and return + $premium = new CRM_Contribute_DAO_Product(); + $premium->copyValues($params); + $premium->save(); + return $premium; + } + + /** + * Delete premium Types. + * + * @param int $productID + * + * @throws \CRM_Core_Exception + */ + public static function del($productID) { + //check dependencies + $premiumsProduct = new CRM_Contribute_DAO_PremiumsProduct(); + $premiumsProduct->product_id = $productID; + if ($premiumsProduct->find(TRUE)) { + $session = CRM_Core_Session::singleton(); + $message .= ts('This Premium is being linked to Online Contribution page. Please remove it in order to delete this Premium.', array(1 => CRM_Utils_System::url('civicrm/admin/contribute', 'reset=1')), ts('Deletion Error'), 'error'); + CRM_Core_Session::setStatus($message); + return CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/contribute/managePremiums', 'reset=1&action=browse')); + } + + //delete from financial Type table + $premium = new CRM_Contribute_DAO_Product(); + $premium->id = $productID; + $premium->delete(); + } + +} diff --git a/CRM/Contribute/Form/AdditionalInfo.php b/CRM/Contribute/Form/AdditionalInfo.php index d279d644e1..33bf7bb196 100644 --- a/CRM/Contribute/Form/AdditionalInfo.php +++ b/CRM/Contribute/Form/AdditionalInfo.php @@ -209,7 +209,7 @@ class CRM_Contribute_Form_AdditionalInfo { ); $productDetails = array(); - CRM_Contribute_BAO_ManagePremiums::retrieve($premiumParams, $productDetails); + CRM_Contribute_BAO_Product::retrieve($premiumParams, $productDetails); $dao->financial_type_id = CRM_Utils_Array::value('financial_type_id', $productDetails); if (!empty($options[$selectedProductID])) { $dao->product_option = $options[$selectedProductID][$selectedProductOptionID]; diff --git a/CRM/Contribute/Form/ManagePremiums.php b/CRM/Contribute/Form/ManagePremiums.php index 8ac350b9c6..d860863d8d 100644 --- a/CRM/Contribute/Form/ManagePremiums.php +++ b/CRM/Contribute/Form/ManagePremiums.php @@ -50,7 +50,7 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form { $defaults = parent::setDefaultValues(); if ($this->_id) { $params = array('id' => $this->_id); - CRM_Contribute_BAO_ManagePremiums::retrieve($params, $tempDefaults); + CRM_Contribute_BAO_Product::retrieve($params, $tempDefaults); $imageUrl = (isset($tempDefaults['image'])) ? $tempDefaults['image'] : ""; if (isset($tempDefaults['image']) && isset($tempDefaults['thumbnail'])) { $defaults['imageUrl'] = $tempDefaults['image']; @@ -272,7 +272,7 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form { // If deleting, then only delete and skip the rest of the post-processing if ($this->_action & CRM_Core_Action::DELETE) { - CRM_Contribute_BAO_ManagePremiums::del($this->_id); + CRM_Contribute_BAO_Product::del($this->_id); CRM_Core_Session::setStatus( ts('Selected Premium Product type has been deleted.'), ts('Deleted'), 'info'); @@ -295,7 +295,7 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form { $this->_processImages($params); // Save to database - $premium = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); + $premium = CRM_Contribute_BAO_Product::add($params, $ids); CRM_Core_Session::setStatus( ts("The Premium '%1' has been saved.", array(1 => $premium->name)), diff --git a/CRM/Contribute/Page/ManagePremiums.php b/CRM/Contribute/Page/ManagePremiums.php index 070a393d80..462e8b33eb 100644 --- a/CRM/Contribute/Page/ManagePremiums.php +++ b/CRM/Contribute/Page/ManagePremiums.php @@ -52,7 +52,7 @@ class CRM_Contribute_Page_ManagePremiums extends CRM_Core_Page_Basic { * Classname of BAO. */ public function getBAOName() { - return 'CRM_Contribute_BAO_ManagePremiums'; + return 'CRM_Contribute_BAO_Product'; } /** diff --git a/CRM/Core/BAO/FinancialTrxn.php b/CRM/Core/BAO/FinancialTrxn.php index ccb7d9ca0a..2adfdc4db6 100644 --- a/CRM/Core/BAO/FinancialTrxn.php +++ b/CRM/Core/BAO/FinancialTrxn.php @@ -369,7 +369,7 @@ WHERE ceft.entity_id = %1"; 'id' => $params['oldPremium']['product_id'], ); $productDetails = array(); - CRM_Contribute_BAO_ManagePremiums::retrieve($premiumParams, $productDetails); + CRM_Contribute_BAO_Product::retrieve($premiumParams, $productDetails); $params = array( 'cost' => CRM_Utils_Array::value('cost', $productDetails), 'currency' => CRM_Utils_Array::value('currency', $productDetails), diff --git a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php index ae9a427c94..157ecc5c4d 100644 --- a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php +++ b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php @@ -376,7 +376,7 @@ class CRM_Contribute_BAO_ContributionTest extends CiviUnitTestCase { 'min_contribution' => 100, 'is_active' => 1, ); - $premium = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); + $premium = CRM_Contribute_BAO_Product::add($params, $ids); $this->assertEquals('TEST Premium', $premium->name, 'Check for premium name.'); @@ -415,7 +415,7 @@ class CRM_Contribute_BAO_ContributionTest extends CiviUnitTestCase { $this->assertEquals($contributionProduct->product_id, $premium->id, 'Check for Product id .'); //Delete Product - CRM_Contribute_BAO_ManagePremiums::del($premium->id); + CRM_Contribute_BAO_Product::del($premium->id); $this->assertDBNull('CRM_Contribute_DAO_Product', $premium->name, 'id', 'name', 'Database check for deleted Product.' ); diff --git a/tests/phpunit/CRM/Contribute/BAO/ManagePremiumsTest.php b/tests/phpunit/CRM/Contribute/BAO/ProductTest.php similarity index 80% rename from tests/phpunit/CRM/Contribute/BAO/ManagePremiumsTest.php rename to tests/phpunit/CRM/Contribute/BAO/ProductTest.php index a1d6c2e306..22e5612f84 100644 --- a/tests/phpunit/CRM/Contribute/BAO/ManagePremiumsTest.php +++ b/tests/phpunit/CRM/Contribute/BAO/ProductTest.php @@ -26,10 +26,10 @@ */ /** - * Class CRM_Contribute_BAO_ManagePremiumsTest + * Class CRM_Contribute_BAO_ProductTest * @group headless */ -class CRM_Contribute_BAO_ManagePremiumsTest extends CiviUnitTestCase { +class CRM_Contribute_BAO_ProductTest extends CiviUnitTestCase { public function setUp() { parent::setUp(); @@ -50,9 +50,9 @@ class CRM_Contribute_BAO_ManagePremiumsTest extends CiviUnitTestCase { 'is_active' => 1, ); - $product = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); + $product = CRM_Contribute_BAO_Product::add($params, $ids); - $result = $this->assertDBNotNull('CRM_Contribute_BAO_ManagePremiums', $product->id, + $result = $this->assertDBNotNull('CRM_Contribute_BAO_Product', $product->id, 'sku', 'id', 'Database check on updated product record.' ); @@ -75,10 +75,10 @@ class CRM_Contribute_BAO_ManagePremiumsTest extends CiviUnitTestCase { 'is_active' => 1, ); - $product = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); + $product = CRM_Contribute_BAO_Product::add($params, $ids); $params = array('id' => $product->id); $default = array(); - $result = CRM_Contribute_BAO_ManagePremiums::retrieve($params, $default); + $result = CRM_Contribute_BAO_Product::retrieve($params, $default); $this->assertEquals(empty($result), FALSE, 'Verify products record.'); } @@ -97,10 +97,10 @@ class CRM_Contribute_BAO_ManagePremiumsTest extends CiviUnitTestCase { 'is_active' => 1, ); - $product = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); - CRM_Contribute_BAO_ManagePremiums::setIsActive($product->id, 0); + $product = CRM_Contribute_BAO_Product::add($params, $ids); + CRM_Contribute_BAO_Product::setIsActive($product->id, 0); - $isActive = $this->assertDBNotNull('CRM_Contribute_BAO_ManagePremiums', $product->id, + $isActive = $this->assertDBNotNull('CRM_Contribute_BAO_Product', $product->id, 'is_active', 'id', 'Database check on updated for product records is_active.' ); @@ -123,13 +123,13 @@ class CRM_Contribute_BAO_ManagePremiumsTest extends CiviUnitTestCase { 'is_active' => 1, ); - $product = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); + $product = CRM_Contribute_BAO_Product::add($params, $ids); - CRM_Contribute_BAO_ManagePremiums::del($product->id); + CRM_Contribute_BAO_Product::del($product->id); $params = array('id' => $product->id); $default = array(); - $result = CRM_Contribute_BAO_ManagePremiums::retrieve($params, $defaults); + $result = CRM_Contribute_BAO_Product::retrieve($params, $defaults); $this->assertEquals(empty($result), TRUE, 'Verify product record deletion.'); } -- 2.25.1