/**
  * 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;
 }