/** * Creates a copy of this receipt. The receipt status will be 'COPY' * * @param $parameters an assoc. array of creation parameters TODO: to be defined * * @return TRUE if successfull, FALSE otherwise. In that case, the $parameters['error'] contains an error message */ public function createCopy(&$parameters) { $receipt_id = $this->Id; $receipt_group_id = self::$_custom_group_id; $receipt_fields = self::$_custom_fields; $uid = CRM_Donrec_Logic_Settings::getLoggedInContactID(); $exclude = array('status', 'issued_on', 'issued_by', 'original_file'); $field_query = '`entity_id`'; foreach ($receipt_fields as $key => $field) { if (!in_array($key, $exclude)) { $field_query .= ", `{$field}`"; } } $query = "\n INSERT INTO `civicrm_value_donation_receipt_{$receipt_group_id}` (\n `{$receipt_fields['status']}`,\n `{$receipt_fields['issued_on']}`,\n `{$receipt_fields['issued_by']}`,\n {$field_query}\n )\n SELECT\n 'COPY' AS `{$receipt_fields['status']}`,\n NOW() AS `{$receipt_fields['issued_on']}`,\n {$uid} AS `{$receipt_fields['issued_by']}`,\n {$field_query}\n FROM `civicrm_value_donation_receipt_{$receipt_group_id}`\n WHERE `id` = {$receipt_id}\n AND `{$receipt_fields['status']}` = 'ORIGINAL'\n "; $result = CRM_Core_DAO::executeQuery($query); $lastId = CRM_Core_DAO::singleValueQuery('SELECT LAST_INSERT_ID();'); CRM_Donrec_Logic_ReceiptItem::createCopyAll($this->Id, $lastId); return TRUE; }