/** * Set default values for the form. */ public function setDefaultValues() { $defaults = parent::setDefaultValues(); if ($this->_id) { $params = array('id' => $this->_id); CRM_Contribute_BAO_ManagePremiums::retrieve($params, $tempDefaults); $imageUrl = isset($tempDefaults['image']) ? $tempDefaults['image'] : ""; if (isset($tempDefaults['image']) && isset($tempDefaults['thumbnail'])) { $defaults['imageUrl'] = $tempDefaults['image']; $defaults['thumbnailUrl'] = $tempDefaults['thumbnail']; $defaults['imageOption'] = 'thumbnail'; // assign thumbnailUrl to template so we can display current image in update mode $this->assign('thumbnailUrl', $defaults['thumbnailUrl']); } else { $defaults['imageOption'] = 'noImage'; } if (isset($tempDefaults['thumbnail']) && isset($tempDefaults['image'])) { $this->assign('thumbURL', $tempDefaults['thumbnail']); $this->assign('imageURL', $tempDefaults['image']); } if (isset($tempDefaults['period_type'])) { $this->assign('showSubscriptions', TRUE); } } return $defaults; }
/** * This function sets the default values for the form. Manage Premiums that in edit/view mode * the default values are retrieved from the database * * @access public * @return None */ function setDefaultValues() { require_once 'CRM/Utils/Rule.php'; $defaults = parent::setDefaultValues(); if ($this->_id) { $params = array('id' => $this->_id); CRM_Contribute_BAO_ManagePremiums::retrieve($params, $tempDefaults); $imageUrl = $tempDefaults['image']; if ($tempDefaults['image'] && $tempDefaults['thumbnail']) { $defaults['imageUrl'] = $tempDefaults['image']; $defaults['thumbnailUrl'] = $tempDefaults['thumbnail']; $defaults['imageOption'] = 'thumbnail'; // assign thumbnailUrl to template so we can display current image in update mode $this->assign('thumbnailUrl', $defaults['thumbnailUrl']); } else { $defaults['imageOption'] = 'noImage'; } if ($tempDefaults['thumbnail'] && $tempDefaults['image']) { $this->assign('thumbURL', $tempDefaults['thumbnail']); $this->assign('imageURL', $tempDefaults['image']); } if ($tempDefaults['period_type']) { $this->assign("showSubscriptions", true); } } return $defaults; }
/** * Check method del( ) */ public function testDel() { $ids = array(); $params = array('name' => 'Test Product', 'sku' => 'TP-10', 'imageOption' => 'noImage', 'price' => 12, 'cost' => 5, 'min_contribution' => 5, 'is_active' => 1); $product = CRM_Contribute_BAO_ManagePremiums::add($params, $ids); CRM_Contribute_BAO_ManagePremiums::del($product->id); $params = array('id' => $product->id); $default = array(); $result = CRM_Contribute_BAO_ManagePremiums::retrieve($params, $defaults); $this->assertEquals(empty($result), TRUE, 'Verify product record deletion.'); }
/** * create financial transaction for premium * * @access public * @static */ static function createPremiumTrxn($params) { if ((empty($params['financial_type_id']) || empty($params['contributionId'])) && empty($params['oldPremium'])) { return; } if (!empty($params['cost'])) { $contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); $financialAccountType = CRM_Contribute_PseudoConstant::financialAccountType($params['financial_type_id']); $accountRelationship = CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND label IN ('Premiums Inventory Account is', 'Cost of Sales Account is')"); $toFinancialAccount = !empty($params['isDeleted']) ? 'Premiums Inventory Account is' : 'Cost of Sales Account is'; $fromFinancialAccount = !empty($params['isDeleted']) ? 'Cost of Sales Account is' : 'Premiums Inventory Account is'; $accountRelationship = array_flip($accountRelationship); $financialtrxn = array('to_financial_account_id' => $financialAccountType[$accountRelationship[$toFinancialAccount]], 'from_financial_account_id' => $financialAccountType[$accountRelationship[$fromFinancialAccount]], 'trxn_date' => date('YmdHis'), 'total_amount' => CRM_Utils_Array::value('cost', $params) ? $params['cost'] : 0, 'currency' => CRM_Utils_Array::value('currency', $params), 'status_id' => array_search('Completed', $contributionStatuses)); $trxnEntityTable['entity_table'] = 'civicrm_contribution'; $trxnEntityTable['entity_id'] = $params['contributionId']; CRM_Core_BAO_FinancialTrxn::create($financialtrxn, $trxnEntityTable); } if (!empty($params['oldPremium'])) { $premiumParams = array('id' => $params['oldPremium']['product_id']); $productDetails = array(); CRM_Contribute_BAO_ManagePremiums::retrieve($premiumParams, $productDetails); $params = array('cost' => CRM_Utils_Array::value('cost', $productDetails), 'currency' => CRM_Utils_Array::value('currency', $productDetails), 'financial_type_id' => CRM_Utils_Array::value('financial_type_id', $productDetails), 'contributionId' => $params['oldPremium']['contribution_id'], 'isDeleted' => TRUE); CRM_Core_BAO_FinancialTrxn::createPremiumTrxn($params); } }
/** * Process the Premium Information. * * @param array $params * @param int $contributionID * @param int $premiumID * @param array $options */ public static function processPremium($params, $contributionID, $premiumID = NULL, $options = array()) { $selectedProductID = $params['product_name'][0]; $selectedProductOptionID = CRM_Utils_Array::value(1, $params['product_name']); $dao = new CRM_Contribute_DAO_ContributionProduct(); $dao->contribution_id = $contributionID; $dao->product_id = $selectedProductID; $dao->fulfilled_date = CRM_Utils_Date::processDate($params['fulfilled_date'], NULL, TRUE); $isDeleted = FALSE; //CRM-11106 $premiumParams = array('id' => $selectedProductID); $productDetails = array(); CRM_Contribute_BAO_ManagePremiums::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]; } if ($premiumID) { $ContributionProduct = new CRM_Contribute_DAO_ContributionProduct(); $ContributionProduct->id = $premiumID; $ContributionProduct->find(TRUE); if ($ContributionProduct->product_id == $selectedProductID) { $dao->id = $premiumID; } else { $ContributionProduct->delete(); $isDeleted = TRUE; } } $dao->save(); //CRM-11106 if ($premiumID == NULL || $isDeleted) { $premiumParams = array('cost' => CRM_Utils_Array::value('cost', $productDetails), 'currency' => CRM_Utils_Array::value('currency', $productDetails), 'financial_type_id' => CRM_Utils_Array::value('financial_type_id', $productDetails), 'contributionId' => $contributionID); if ($isDeleted) { $premiumParams['oldPremium']['product_id'] = $ContributionProduct->product_id; $premiumParams['oldPremium']['contribution_id'] = $ContributionProduct->contribution_id; } CRM_Core_BAO_FinancialTrxn::createPremiumTrxn($premiumParams); } }
/** * Function to process the Premium Information * * @access public * * @return None */ static function processPremium(&$params, $contributionID, $premiumID = NULL, &$options = NULL) { $dao = new CRM_Contribute_DAO_ContributionProduct(); $dao->contribution_id = $contributionID; $dao->product_id = $params['product_name'][0]; $dao->fulfilled_date = CRM_Utils_Date::processDate($params['fulfilled_date'], NULL, TRUE); $isDeleted = False; //CRM-11106 $premiumParams = array('id' => $params['product_name'][0]); $productDetails = array(); CRM_Contribute_BAO_ManagePremiums::retrieve($premiumParams, $productDetails); $dao->financial_type_id = CRM_Utils_Array::value('financial_type_id', $productDetails); if (CRM_Utils_Array::value($params['product_name'][0], $options)) { $dao->product_option = $options[$params['product_name'][0]][$params['product_name'][1]]; } if ($premiumID) { $premoumDAO = new CRM_Contribute_DAO_ContributionProduct(); $premoumDAO->id = $premiumID; $premoumDAO->find(TRUE); if ($premoumDAO->product_id == $params['product_name'][0]) { $dao->id = $premiumID; $premium = $dao->save(); } else { $premoumDAO->delete(); $isDeleted = TRUE; $premium = $dao->save(); } } else { $premium = $dao->save(); } //CRM-11106 if ($premiumID == NULL || $isDeleted) { $params = array('cost' => CRM_Utils_Array::value('cost', $productDetails), 'currency' => CRM_Utils_Array::value('currency', $productDetails), 'financial_type_id' => CRM_Utils_Array::value('financial_type_id', $productDetails), 'contributionId' => $contributionID); if ($isDeleted) { $params['oldPremium']['product_id'] = $premoumDAO->product_id; $params['oldPremium']['contribution_id'] = $premoumDAO->contribution_id; } CRM_Core_BAO_FinancialTrxn::createPremiumTrxn($params); } }