This is a partial of Pradeep's commit. Having made his go stale I have picked off some parts
to reduce the amount still left to merge
// Figure out number of terms
$numterms = 1;
- $lineitems = CRM_Price_BAO_LineItem::getLineItems($contributionId, 'contribution');
+ $lineitems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contributionId);
foreach ($lineitems as $lineitem) {
if ($membership->membership_type_id == CRM_Utils_Array::value('membership_type_id', $lineitem)) {
$numterms = CRM_Utils_Array::value('membership_num_terms', $lineitem);
*/
public static function allowUpdateRevenueRecognitionDate($contributionId) {
// get line item for contribution
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($contributionId, 'contribution', NULL, TRUE, TRUE);
+ $lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contributionId);
// check if line item is for membership or participant
foreach ($lineItems as $items) {
if ($items['entity_table'] == 'civicrm_participant') {
);
CRM_Event_BAO_Participant::add($participantParams);
if (empty($this->_lineItems)) {
- $this->_lineItems[] = CRM_Price_BAO_LineItem::getLineItems($entityID, 'participant', 1);
+ $this->_lineItems[] = CRM_Price_BAO_LineItem::getLineItems($entityID, 'participant', TRUE);
}
}
else {
$entityID = $this->_id;
}
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($entityID, $entityTable, NULL, TRUE, $isRelatedId);
+ $lineItems = CRM_Price_BAO_LineItem::getLineItems($entityID, $entityTable, FALSE, TRUE, $isRelatedId);
foreach (array_keys($lineItems) as $id) {
$lineItems[$id]['id'] = $id;
}
$dueDate = date('F j ,Y', strtotime($contributionReceiveDate . "+" . $prefixValue['due_date'] . "" . $prefixValue['due_date_period']));
if ($input['component'] == 'contribute') {
- $eid = $contribID;
- $etable = 'contribution';
- $lineItem = CRM_Price_BAO_LineItem::getLineItems($eid, $etable, NULL, TRUE, TRUE);
+ $lineItem = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contribID);
}
else {
$eid = $contribution->_relatedObjects['participant']->id;
- $etable = 'participant';
- $lineItem = CRM_Price_BAO_LineItem::getLineItems($eid, $etable, NULL, TRUE, FALSE, '', TRUE);
+ $lineItem = CRM_Price_BAO_LineItem::getLineItems($eid, 'participant', NULL, TRUE, FALSE, TRUE);
}
//TO DO: Need to do changes for partially paid to display amount due on PDF invoice
}
// use line items for setdefault price set fields, CRM-4090
- $lineItems[$participantID] = CRM_Price_BAO_LineItem::getLineItems($participantID, 'participant', NULL, $includeQtyZero);
+ $lineItems[$participantID] = CRM_Price_BAO_LineItem::getLineItems($participantID, 'participant', FALSE, $includeQtyZero);
if (is_array($lineItems[$participantID]) &&
!CRM_Utils_System::isNull($lineItems[$participantID])
* @return mixed
*/
public function emailReceipt(&$params) {
- $updatedLineItem = CRM_Price_BAO_LineItem::getLineItems($this->_participantId, 'participant', NULL, FALSE);
+ $updatedLineItem = CRM_Price_BAO_LineItem::getLineItems($this->_participantId, 'participant', FALSE, FALSE);
$lineItem = array();
if ($updatedLineItem) {
$lineItem[] = $updatedLineItem;
$result = CRM_Contribute_BAO_Contribution::transitionComponents($params, TRUE);
if (!empty($result) && !empty($params['contribution_id'])) {
$lineItem = array();
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($params['contribution_id'], 'contribution', NULL, TRUE, TRUE);
+ $lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($params['contribution_id']);
$itemId = key($lineItems);
$priceSetId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItems[$itemId]['price_field_id'], 'price_set_id');
* @param string $entity
* participant/contribution.
*
- * @param null $isQuick
+ * @param bool $isQuick
* @param bool $isQtyZero
* @param bool $relatedEntity
*
- * @param string $overrideWhereClause
- * E.g "WHERE contribution id = 7 " per the getLineItemsByContributionID wrapper.
- * this function precedes the convenience of the contribution id but since it does quite a bit more than just a db retrieval we need to be able to use it even
- * when we don't want it's entity-id magix
- *
* @param bool $invoice
* @return array
* Array of line items
*/
- public static function getLineItems($entityId, $entity = 'participant', $isQuick = NULL, $isQtyZero = TRUE, $relatedEntity = FALSE, $overrideWhereClause = '', $invoice = FALSE) {
+ public static function getLineItems($entityId, $entity = 'participant', $isQuick = FALSE, $isQtyZero = TRUE, $relatedEntity = FALSE, $invoice = FALSE) {
$whereClause = $fromClause = NULL;
$selectClause = "
SELECT li.id,
$getTaxDetails = FALSE;
$invoiceSettings = Civi::settings()->get('contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
- if ($overrideWhereClause) {
- $whereClause = $overrideWhereClause;
- }
$dao = CRM_Core_DAO::executeQuery("$selectClause $fromClause $whereClause $orderByClause", $params);
while ($dao->fetch()) {
'field_title' => $dao->field_title,
'html_type' => $dao->html_type,
'description' => $dao->description,
- // the entity id seems prone to randomness but not sure if it has a reason - so if we are overriding the Where clause we assume
- // we also JUST WANT TO KNOW the the entity_id in the DB
- 'entity_id' => empty($overrideWhereClause) ? $entityId : $dao->entity_id,
+ 'entity_id' => $dao->entity_id,
'entity_table' => $dao->entity_table,
'contribution_id' => $dao->contribution_id,
'financial_type_id' => $dao->financial_type_id,
$isRelatedID = TRUE;
}
foreach ($entityId as $id) {
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($id, $entityTable, NULL, TRUE, $isRelatedID);
+ $lineItems = CRM_Price_BAO_LineItem::getLineItems($id, $entityTable, FALSE, TRUE, $isRelatedID);
foreach ($lineItems as $key => $values) {
if (!$setID && $values['price_field_id']) {
$setID = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $values['price_field_id'], 'price_set_id');