public function create(UploadRecord $record) { $this->_transaction->add("\n\t\t\tINSERT INTO\n\t\t\t\tproduct_page_upload_record\n\t\t\t\t(\n\t\t\t\t\tpage_id,\n\t\t\t\t\tproduct_id,\n\t\t\t\t\tunit_id,\n\t\t\t\t\tconfirmed_at,\n\t\t\t\t\tconfirmed_by\n\t\t\t\t)\n\t\t\tVALUES\n\t\t\t\t(\n\t\t\t\t\t:pageID?i,\n\t\t\t\t\t:productID?in,\n\t\t\t\t\t:unitID?in,\n\t\t\t\t\t:confirmedAt?dn,\n\t\t\t\t\t:confirmedBy?in\n\t\t\t\t)\n\t\t", ['pageID' => $record->getPageID(), 'productID' => $record->getProductID(), 'unitID' => $record->getUnitID(), 'confirmedAt' => $record->getConfirmedAt(), 'confirmedBy' => $record->getConfirmedBy()]); if (!$this->_transOverride) { $this->_transaction->commit(); } }
/** * Save changes to the bundle to the database * * @param Bundle $bundle */ public function save(Bundle $bundle) { $this->_transaction->add("\n\t\t\tUPDATE\n\t\t\t\tdiscount_bundle\n\t\t\tSET\n\t\t\t\t`name` = :name?s,\n\t\t\t\tallow_codes = :allowsCodes?b,\n\t\t\t\tstart = :start?dn,\n\t\t\t\t`end` = :end?dn,\n\t\t\t\tupdated_at = :updatedAt?d,\n\t\t\t\tupdated_by = :updatedBy?i\n\t\t\tWHERE\n\t\t\t\tbundle_id = :bundleID?i\n\t\t", ['name' => $bundle->getName(), 'allowsCodes' => $bundle->allowsCodes(), 'start' => $bundle->getStart(), 'end' => $bundle->getEnd(), 'updatedAt' => new \DateTime(), 'updatedBy' => $this->_user->id, 'bundleID' => $bundle->getID()]); $this->_productCreate->save($bundle); $this->_priceCreate->setTransaction($this->_transaction); $this->_priceCreate->save($bundle); $this->_imageCreate->setTransaction($this->_transaction); $this->_imageCreate->save($bundle); $this->_commitTransaction(); }
/** * Add query saving the referral to the database transaction * * @param ReferralInterface $referral */ private function _addToTransaction(ReferralInterface $referral) { $this->_trans->add(' UPDATE refer_a_friend_referral SET status = :status?s, referrer_id = :referrerID?i, referred_email = :referredEmail?s, updated_at = :updatedAt?d, updated_by = :updatedBy?in WHERE referral_id = :id?i ', ['status' => $referral->getStatus(), 'referrerID' => $referral->getReferrer()->id, 'referredEmail' => $referral->getReferredEmail(), 'updatedAt' => new \DateTime(), 'updatedBy' => $this->_currentUser->id, 'id' => $referral->getID()]); }
/** * Save data to product export table, create new row if not exists * * @throws \LogicException * * @return Edit */ protected function _saveProductExport() { if (!$this->_product) { throw new \LogicException('Cannot edit product export info as no product is set'); } $this->_trans->add("\n\t\t\tINSERT INTO\n\t\t\t\tproduct_export\n\t\t\t\t(\n\t\t\t\t\tproduct_id,\n\t\t\t\t\tlocale,\n\t\t\t\t\texport_value,\n\t\t\t\t\texport_description,\n\t\t\t\t\texport_manufacture_country_id,\n\t\t\t\t\texport_code\n\t\t\t\t)\n\t\t\tVALUES\n\t\t\t\t(\n\t\t\t\t\t:productID?i,\n\t\t\t\t\t:locale?sn,\n\t\t\t\t\t:exportValue?fn,\n\t\t\t\t\t:exportDescription?sn,\n\t\t\t\t\t:exportCountryID?s,\n\t\t\t\t\t:exportCode?sn\n\t\t\t\t)\n\t\t\tON DUPLICATE KEY UPDATE\n\t\t\t\texport_value\t\t\t\t\t= :exportValue?fn,\n\t\t\t\texport_description\t\t\t\t= :exportDescription?sn,\n\t\t\t\texport_manufacture_country_id\t= :exportCountryID?s,\n\t\t\t\texport_code = :exportCode?sn\n\t\t", ['productID' => $this->_product->id, 'locale' => $this->_locale->getID(), 'exportValue' => $this->_product->exportValue, 'exportDescription' => $this->_product->exportDescription, 'exportCountryID' => $this->_product->exportManufactureCountryID, 'exportCode' => $this->_product->getExportCode()]); return $this; }
/** * Loop through unit IDs and save them with the page ID and product ID * * @param Page $page The product page being edited * @param Product $product The product assigned to the page * @param array | Unit\Collection $units The units that fit the requirements of the page * @param bool $deleteExisting Determines whether existing rows should be deleted before * save, defaults to true */ public function save(Page $page, Product $product, $units, $deleteExisting = true) { if (!is_array($units) && !$units instanceof Unit\Collection) { throw new \InvalidArgumentException('Units must be either an array or a Unit\\Collection instance'); } if ($deleteExisting) { $this->_transaction->add("\n\t\t\t\tDELETE FROM\n\t\t\t\t\tproduct_page_unit_record\n\t\t\t\tWHERE\n\t\t\t\t\tpage_id = :pageID?i\n\t\t\t", ['pageID' => $page->id]); } if (count($units) > 0) { $inserts = []; $params = ['pageID' => $page->id, 'productID' => $product->id]; foreach ($units as $unit) { $inserts[] = '(' . PHP_EOL . ':pageID?i,' . PHP_EOL . ':productID?i,' . PHP_EOL . ':unitID' . $unit->id . '?i' . PHP_EOL . ')'; $params['unitID' . $unit->id] = $unit->id; } $inserts = implode(',' . PHP_EOL, $inserts); $this->_transaction->add("\n\t\t\t\tREPLACE INTO\n\t\t\t\t\tproduct_page_unit_record\n\t\t\t\t\t(\n\t\t\t\t\t\tpage_id,\n\t\t\t\t\t\tproduct_id,\n\t\t\t\t\t\tunit_id\n\t\t\t\t\t)\n\t\t\t\tVALUES\n\t\t" . $inserts, $params); } $this->_commitTransaction(); }
/** * Add a query saving a trigger to the database transaction * * @param ConfigInterface $config * @param TriggerInterface $trigger */ private function _addToTransaction(ConfigInterface $config, TriggerInterface $trigger) { $this->_transaction->add("\n\t\t\tINSERT INTO\n\t\t\t\trefer_a_friend_reward_trigger\n\t\t\t\t(\n\t\t\t\t\treward_config_id,\n\t\t\t\t\t`name`\n\t\t\t\t)\n\t\t\t\tVALUES\n\t\t\t\t(\n\t\t\t\t\t:rewardConfigID?i,\n\t\t\t\t\t:name?s\n\t\t\t\t)\n\t\t", ['rewardConfigID' => $config->getID(), 'name' => $trigger->getName()]); }
/** * Add a query to save an individual comment to the transaction * * @param Comment $comment * @param UserInterface $user */ private function _save(Comment $comment, UserInterface $user) { $this->_trans->add("\n\t\t\tUPDATE\n\t\t\t\tblog_comment\n\t\t\tSET\n\t\t\t\tpage_id = :pageID?i,\n\t\t\t\tuser_id = :userID?i,\n\t\t\t\t`name` = :name?s,\n\t\t\t\temail_address = :email?s,\n\t\t\t\twebsite = :website?sn,\n\t\t\t\tcontent = :content?s,\n\t\t\t\tip_address = :ipAddress?s,\n\t\t\t\tupdated_at = :updatedAt?d,\n\t\t\t\tupdated_by = :updatedBy?in,\n\t\t\t\tstatus = :status?s\n\t\t\tWHERE\n\t\t\t\tcomment_id = :id?i\n\t\t", ['id' => $comment->getID(), 'pageID' => $comment->getPageID(), 'userID' => $comment->getUserID(), 'name' => $comment->getName(), 'email' => $comment->getEmail(), 'website' => $comment->getWebsite(), 'content' => $comment->getContent(), 'ipAddress' => $comment->getIpAddress(), 'updatedAt' => new \DateTime(), 'updatedBy' => $user->id, 'status' => $comment->getStatus()]); }
/** * Add the query to delete a configuration to the database transaction * * @param Config $config */ private function _addToTransaction(Config $config) { $this->_transaction->add("\n\t\t\tUPDATE\n\t\t\t\trefer_a_friend_reward_config\n\t\t\tSET\n\t\t\t\tdeleted_at = :deletedAt?d,\n\t\t\t\tdeleted_by = :deletedBy?i\n\t\t\tWHERE\n\t\t\t\treward_config_id = :id?i\n\t\t", ['id' => $config->getID(), 'deletedAt' => new \DateTime(), 'deletedBy' => $this->_currentUser->id]); }
/** * Add query saving the constraint name and value, as well as the reward config ID, to the database transaction * * @param ConfigInterface $config * @param ConstraintInterface $constraint */ private function _addToTransaction(ConfigInterface $config, ConstraintInterface $constraint) { $this->_transaction->add("\n\t\t\tINSERT INTO\n\t\t\t\trefer_a_friend_reward_constraint\n\t\t\t\t(\n\t\t\t\t\treward_config_id,\n\t\t\t\t\t`name`,\n\t\t\t\t\t`value`\n\t\t\t\t)\n\t\t\t\tVALUES\n\t\t\t\t(\n\t\t\t\t\t:rewardConfigID?i,\n\t\t\t\t\t:name?s,\n\t\t\t\t\t:value?s\n\t\t\t\t)\n\t\t", ['rewardConfigID' => $config->getID(), 'name' => $constraint->getName(), 'value' => $constraint->getValue()]); }
/** * Save the type against the user * * @param User\User $user * @param UserTypeInterface $type * * @return UserTypeInterface */ public function save(User\User $user, UserTypeInterface $type) { $this->_transaction->add("\n\t\t\tREPLACE INTO\n\t\t\t\tuser_type\n\t\t\t\t(\n\t\t\t\t\tuser_id,\n\t\t\t\t\t`type`\n\t\t\t\t)\n\t\t\tVALUES\n\t\t\t\t(\n\t\t\t\t\t:id?i,\n\t\t\t\t\t:type?s\n\t\t\t\t)\n\t\t", ['id' => $user->id, 'type' => $type->getName()]); $this->_commitTransaction(); return $type; }