Example #1
0
 public static function deleteByID($className, $id, $foreignKeyName)
 {
     $inst = ActiveRecordModel::getInstanceById($className, $id, ActiveRecordModel::LOAD_DATA);
     $inst->getOwner()->load();
     $inst->deleteImageFiles();
     // check if main image is being deleted
     $owner = $inst->getOwner();
     $owner->load(array(get_class($inst)));
     if ($owner->defaultImage->get()->getID() == $id) {
         // set next image (by position) as the main image
         $f = new ARSelectFilter();
         $cond = new EqualsCond(new ARFieldHandle(get_class($inst), $foreignKeyName), $owner->getID());
         $cond->addAND(new NotEqualsCond(new ARFieldHandle(get_class($inst), 'ID'), $inst->getID()));
         $f->setCondition($cond);
         $f->setOrder(new ARFieldHandle(get_class($inst), 'position'));
         $f->setLimit(1);
         $newDefaultImage = ActiveRecordModel::getRecordSet(get_class($inst), $f);
         if ($newDefaultImage->size() > 0) {
             $owner->defaultImage->set($newDefaultImage->get(0));
             $owner->save();
         }
     }
     ActiveRecordModel::executeUpdate('SET FOREIGN_KEY_CHECKS=0');
     ActiveRecordModel::executeUpdate('UPDATE ' . $className . ' SET ' . $foreignKeyName . '=NULL , protectedFields="|' . $foreignKeyName . '|" WHERE ID=' . $id);
     //return parent::deleteByID($className, $id);
 }
Example #2
0
 public function edit()
 {
     $newsletter = ActiveRecordModel::getInstanceById('NewsletterMessage', $this->request->get('id'), ActiveRecordModel::LOAD_DATA);
     $form = $this->getForm();
     $form->setData($newsletter->toArray());
     $form->set('users', 1);
     $form->set('subscribers', 1);
     $response = new ActionResponse('form', $form);
     $groupsArray = array_merge(ActiveRecord::getRecordSetArray('UserGroup', select()), array(array('ID' => null, 'name' => $this->translate('Customers'))));
     usort($groupsArray, array($this, 'sortGroups'));
     $response->set('groupsArray', $groupsArray);
     $newsletterArray = $newsletter->toArray();
     $text = strlen($newsletterArray['text']);
     $html = strlen($newsletterArray['html']);
     if ($text && $html) {
         $newsletterArray['format'] = self::FORMAT_HTML_TEXT;
     } else {
         if ($text) {
             $newsletterArray['format'] = self::FORMAT_TEXT;
         } else {
             if ($html) {
                 $newsletterArray['format'] = self::FORMAT_HTML;
             }
         }
     }
     $response->set('newsletter', $newsletterArray);
     $response->set('sentCount', $newsletter->getSentCount());
     $response->set('recipientCount', $this->getRecipientCount($form->getData()));
     return $response;
 }
Example #3
0
 public function edit()
 {
     $condition = ActiveRecordModel::getInstanceById('DiscountCondition', $this->request->get('id'), DiscountCondition::LOAD_DATA, DiscountCondition::LOAD_REFERENCES);
     $condition->loadAll();
     $response = new ActionResponse('condition', $condition->toArray());
     $records = array();
     $zones = ActiveRecordModel::getRecordSetArray('DeliveryZone', new ARSelectFilter());
     //$zones = array_merge(array(DeliveryZone::getDefaultZoneInstance()->toArray()), $zones);
     //$this->loadLanguageFile('backend/DeliveryZone');
     //$zones[0]['name'] = $this->translate('_default_zone');
     $records['DeliveryZone'] = $zones;
     $records['UserGroup'] = ActiveRecordModel::getRecordSetArray('UserGroup', new ARSelectFilter());
     $response->set('records', $records);
     $response->set('serializedValues', array('RuleConditionPaymentMethodIs' => $this->getPaymentMethods(), 'RuleConditionCurrencyIs' => $this->getCurrencies(), 'RuleConditionShippingMethodIs' => $this->getShippingMethods()));
     $form = $this->buildForm();
     $form->setData($condition->toArray());
     $response->set('form', $form);
     // actions
     $f = new ARSelectFilter();
     $f->setOrder(new ARFieldHandle('DiscountAction', 'position'));
     $actions = $condition->getRelatedRecordSet('DiscountAction', $f, array('DiscountCondition', 'DiscountCondition_ActionCondition'));
     foreach ($actions as $action) {
         if ($action->actionCondition->get()) {
             $action->actionCondition->get()->load();
             $action->actionCondition->get()->loadAll();
         }
     }
     $response->set('actions', $actions->toArray());
     $this->setEditResponse($response);
     return $response;
 }
 public function delete()
 {
     $product = Product::getInstanceByID($this->request->get('id'), ActiveRecord::LOAD_DATA, array('Category'));
     $category = Category::getInstanceByID($this->request->get('categoryId'), ActiveRecord::LOAD_DATA);
     $relation = ActiveRecordModel::getInstanceById('ProductCategory', array('productID' => $product->getID(), 'categoryID' => $category->getID()));
     $relation->delete();
     return new JSONResponse(array('data' => $relation->toFlatArray()));
 }
Example #5
0
 /**
  * @role update
  */
 public function save()
 {
     $validator = $this->buildValidator();
     if (!$validator->isValid()) {
         return new JSONResponse(array('err' => $validator->getErrorList()));
     }
     $post = $this->request->get('id') ? ActiveRecordModel::getInstanceById('ProductRatingType', $this->request->get('id'), ActiveRecordModel::LOAD_DATA) : ProductRatingType::getNewInstance(Category::getInstanceByID($this->request->get('categoryId'), Category::LOAD_DATA));
     $post->loadRequestData($this->request);
     $post->save();
     return new JSONResponse($post->toArray());
 }
Example #6
0
 public function save()
 {
     $clonedStore = ActiveRecordModel::getInstanceById('ClonedStore', $this->request->get('id'), true);
     $validator = $this->buildValidator();
     if ($validator->isValid()) {
         $clonedStore->loadRequestData($this->request);
         $clonedStore->save();
         return new JSONResponse(array('clonedStore' => $clonedStore->toArray()), 'success', $this->translate('Store configuration was successfully saved'));
     } else {
         return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure');
     }
 }
Example #7
0
 /**
  *  Return Currency instance by ID and provide additional validation. If the currency doesn't exist
  *  or is not valid, instance of the default currency is returned.
  *
  *  @return Currency
  */
 public static function getValidInstanceById($id, $loadData = true)
 {
     try {
         $instance = ActiveRecordModel::getInstanceById(__CLASS__, $id, $loadData);
     } catch (ARNotFoundException $e) {
         $instance = null;
     }
     if (!$instance || !$instance->isEnabled->get()) {
         $instance = self::getApplication()->getDefaultCurrency();
     }
     return $instance;
 }
 /**
  * @role update
  */
 public function sort()
 {
     $target = $this->request->get('target');
     preg_match('/_(\\d+)$/', $target, $match);
     // Get group.
     foreach ($this->request->get($this->request->get('target'), array()) as $position => $id) {
         $item = ActiveRecordModel::getInstanceByID('ProductListItem', $id);
         $item->position->set($position);
         if (isset($match[1])) {
             $item->productList->set(ActiveRecordModel::getInstanceById('ProductList', $match[1]));
         }
         $item->save();
     }
     return new JSONResponse(false, 'success');
 }
Example #9
0
 /**
  * @role update
  */
 public function save()
 {
     $validator = $this->buildValidator();
     if (!$validator->isValid()) {
         return new JSONResponse(array('err' => $validator->getErrorList()));
     }
     $post = $this->request->get('id') ? ActiveRecordModel::getInstanceById('EyeExamSchedule', $this->request->get('id'), ActiveRecordModel::LOAD_DATA) : ActiveRecordModel::getNewInstance('EyeExamSchedule');
     $post->loadRequestData($this->request);
     $post->save();
     $postArr = $post->toArray();
     if (!isset($locale)) {
         $locale = self::getApplication()->getLocale();
     }
     $date = strtotime($postArr['date']);
     $postArr['formatted_date'] = $locale->getFormattedTime($date);
     return new JSONResponse($postArr);
 }
Example #10
0
 public function update()
 {
     $review = ActiveRecordModel::getInstanceById('ProductReview', $this->request->get('id'), ProductReview::LOAD_DATA, array('Product'));
     $validator = $this->buildValidator($review);
     if ($validator->isValid()) {
         $review->loadRequestData($this->request);
         $review->save();
         // set ratings
         foreach ($review->getRelatedRecordSet('ProductRating', new ARSelectFilter()) as $rating) {
             $typeId = $rating->ratingType->get() ? $rating->ratingType->get()->getID() : '';
             $rating->rating->set($this->request->get('rating_' . $typeId));
             $rating->save();
         }
         return new JSONResponse(array('review' => $review->toFlatArray()), 'success', $this->translate('_review_was_successfully_saved'));
     } else {
         return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure');
     }
 }
 public function update()
 {
     return $this->save(ActiveRecordModel::getInstanceById('Manufacturer', $this->request->get('id'), Manufacturer::LOAD_DATA, Manufacturer::LOAD_REFERENCES));
 }
Example #12
0
 public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false)
 {
     return parent::getInstanceById('UserAddress', $id, $loadData, $loadReferencedRecords);
 }
Example #13
0
 /**
  *	@role login
  */
 public function item()
 {
     $item = ActiveRecordModel::getInstanceById('OrderedItem', $this->request->get('id'), ActiveRecordModel::LOAD_DATA, OrderedItem::LOAD_REFERENCES);
     $item->customerOrder->get()->loadAll();
     $item->loadOptions();
     $subItems = $item->getSubitems();
     $item = $item->toArray();
     $this->addAccountBreadcrumb();
     $this->addFilesBreadcrumb();
     $this->addBreadCrumb(isset($item['Product']['name_lang']) ? $item['Product']['name_lang'] : $item['Product']['Parent']['name_lang'], '');
     $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('OrderedItem', 'ID'), $item['ID']));
     $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'userID'), $this->user->getID()));
     $fileArray = $this->loadDownloadableItems($f);
     if (!$fileArray && !$subItems) {
         return new ActionRedirectResponse('user', 'index');
     }
     $response = new ActionResponse();
     $response->set('user', $this->user->toArray());
     $response->set('files', $fileArray);
     $response->set('item', $item);
     if ($subItems) {
         $response->set('subItems', $subItems->toArray());
     }
     return $response;
 }
 public function variationForm()
 {
     $this->loadLanguageFile('Frontend');
     $this->loadLanguageFile('Product');
     $this->loadLanguageFile('backend/Shipment');
     $item = ActiveRecordModel::getInstanceById('OrderedItem', $this->request->get('id'), true, true);
     $item->customerOrder->get()->loadAll();
     $c = new OrderController($this->application);
     $response = $c->variationForm($item->customerOrder->get(), '');
     $response->set('currency', $item->customerOrder->get()->currency->get()->getID());
     $response->set('variations', $item->getProduct()->getVariationData($this->application));
     return $response;
 }
Example #15
0
 public static function getInstanceById($id)
 {
     return parent::getInstanceById(__CLASS__, $id, self::LOAD_DATA, self::LOAD_REFERENCES);
 }
Example #16
0
 /**
  * @role status
  * @return JSONResponse
  */
 public function setEnabled()
 {
     $post = ActiveRecordModel::getInstanceById('NewsPost', $this->request->get('id'), NewsPost::LOAD_DATA);
     $post->isEnabled->set($this->request->get("status"));
     $post->save();
     return new JSONResponse($post->toArray());
 }
Example #17
0
 public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false)
 {
     return ActiveRecordModel::getInstanceById(__CLASS__, $id, $loadData, $loadReferencedRecords);
 }
Example #18
0
 public function view()
 {
     return new ActionResponse('note', ActiveRecordModel::getInstanceById('OrderNote', $this->request->get('id'), OrderNote::LOAD_DATA, OrderNote::LOAD_REFERENCES)->toArray());
 }
Example #19
0
 public function reduceBaseTaxes($price, $product = null)
 {
     $product = $product ? $product : $this->getProduct();
     if (!is_array($product)) {
         $class = $product->getParent()->taxClass->get();
     } else {
         $product = empty($product['Parent']) ? $product : $product['Parent'];
         $class = empty($product['taxClassID']) ? null : ActiveRecordModel::getInstanceById('TaxClass', $product['taxClassID']);
     }
     foreach (DeliveryZone::getDefaultZoneInstance()->getTaxRates() as $rate) {
         if ($rate->taxClass->get() === $class) {
             $price = $price / (1 + $rate->rate->get() / 100);
         }
     }
     return $price;
 }
Example #20
0
 public function unserialize($serialized)
 {
     parent::unserialize($serialized);
     if ($this->availableShippingRates) {
         foreach ($this->availableShippingRates as $rate) {
             $rate->setApplication($this->getApplication());
         }
     }
     if ($this->itemIds) {
         $this->items = array();
         foreach ($this->itemIds as $id) {
             if ($id) {
                 try {
                     $this->items[] = ActiveRecordModel::getInstanceById('OrderedItem', $id, ActiveRecordModel::LOAD_DATA);
                 } catch (ARNotFoundException $e) {
                 }
             }
         }
         $this->itemIds = array();
     }
 }
Example #21
0
 public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false)
 {
     return parent::getInstanceById('CustomerOrder', $id, $loadData, $loadReferencedRecords);
 }
Example #22
0
 public function uploadOptionFile()
 {
     ClassLoader::import('application.model.order.OrderedItemOption');
     $field = 'upload_' . $this->request->get('field');
     $option = ActiveRecordModel::getInstanceById('ProductOption', $this->request->get('id'), true);
     $validator = $this->getValidator('optionFile');
     $this->addOptionValidation($validator, $option->toArray(), $field);
     if (!$validator->isValid()) {
         return new JSONResponse(array('error' => $validator->getErrorList()));
     }
     // create tmp file
     $file = $_FILES[$field];
     $tmp = 'tmp_' . $field . md5($file['tmp_name']) . '__' . $file['name'];
     $dir = ClassLoader::getRealPath('public.upload.optionImage.');
     $path = $dir . $tmp;
     if (!file_exists($dir)) {
         mkdir($dir);
         chmod($dir, 0777);
     }
     move_uploaded_file($file['tmp_name'], $path);
     // create thumbnail
     $thumb = null;
     if (@getimagesize($path)) {
         $thumb = 'tmp_thumb_' . $tmp;
         $thumbPath = $dir . $thumb;
         OrderedItemOption::resizeImage($path, $thumbPath, 1);
     }
     return new JSONResponse(array('name' => $file['name'], 'file' => $tmp, 'thumb' => $thumb));
 }
 public function delete()
 {
     $relation = ActiveRecordModel::getInstanceById('CategoryRelationship', $this->request->get('categoryId'));
     $relation->delete();
     return new JSONResponse(array('data' => $relation->toFlatArray()));
 }