From 706f6a014f442600e0b544b781f8087db119d877 Mon Sep 17 00:00:00 2001 From: Sean Madsen Date: Fri, 21 Jul 2017 10:31:12 -0600 Subject: [PATCH] CRM-20821 - Refactor PremiumProduct BAO add() - Refactor CRM_Contribute_BAO_ManagePremiums::add - Don't change any functionality - Improve docblock - Use a $defaults array --- CRM/Contribute/BAO/ManagePremiums.php | 29 ++++++++++++--------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/CRM/Contribute/BAO/ManagePremiums.php b/CRM/Contribute/BAO/ManagePremiums.php index 9ddf411b79..30f17ad3de 100644 --- a/CRM/Contribute/BAO/ManagePremiums.php +++ b/CRM/Contribute/BAO/ManagePremiums.php @@ -86,17 +86,26 @@ class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_DAO_Product { } /** - * add the financial types. + * 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 * Reference array contains the id. * - * - * @return object + * @return CRM_Contribute_DAO_Product */ public static function add(&$params, &$ids) { + $defaults = array( + 'id' => CRM_Utils_Array::value('premium', $ids), + 'image' => '', + 'thumbnail' => '', + 'is_active' => FALSE, + 'is_deductible' => FALSE, + 'currency' => CRM_Core_Config::singleton()->defaultCurrency, + ); + $params = array_merge($defaults, $params); + // CRM-14283 - strip protocol and domain from image URLs $image_type = array('image', 'thumbnail'); foreach ($image_type as $key) { @@ -107,21 +116,9 @@ class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_DAO_Product { } } - $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE); - $params['is_deductible'] = CRM_Utils_Array::value('is_deductible', $params, FALSE); - - // action is taken depending upon the mode + // Save and return $premium = new CRM_Contribute_DAO_Product(); $premium->copyValues($params); - - $premium->id = CRM_Utils_Array::value('premium', $ids); - - // set currency for CRM-1496 - if (!isset($premium->currency)) { - $config = CRM_Core_Config::singleton(); - $premium->currency = $config->defaultCurrency; - } - $premium->save(); return $premium; } -- 2.25.1