Example #1
0
 /**
  * Update payment method
  *
  * @return void
  */
 protected function doActionUpdate()
 {
     $settings = \XLite\Core\Request::getInstance()->settings;
     $method = $this->getPaymentMethod();
     if (!$method) {
         \XLite\Core\TopMessage::addError('An attempt to update settings of unknown payment method');
     } else {
         if (is_array($settings)) {
             foreach ($settings as $name => $value) {
                 $method->setSetting($name, trim($value));
             }
         }
         $properties = \XLite\Core\Request::getInstance()->properties;
         if (is_array($properties) && !empty($properties)) {
             $method->map($properties);
         }
         \XLite\Core\Database::getRepo('\\XLite\\Model\\Payment\\Method')->update($method);
         // If "just added" method is configured and can be enabled then we enable it
         if (\XLite\Core\Request::getInstance()->just_added && $method->isConfigured() && $method->canEnable()) {
             $method->setEnabled(true);
             \XLite\Core\Database::getEM()->flush();
         }
         if ($method->isConfigured()) {
             \XLite\Core\TopMessage::addInfo('The settings of payment method successfully updated');
             $this->setReturnURL($this->buildURL('payment_settings'));
         } else {
             \XLite\Core\TopMessage::addWarning('Payment method has not been configured properly');
         }
     }
 }
Example #2
0
 /**
  * Execute certain hook handle
  *
  * @return void
  */
 public function executeHookHandler()
 {
     if (\XLite\Upgrade\Cell::getInstance()->isUpgraded()) {
         $entries = \XLite\Upgrade\Cell::getInstance()->getEntries();
         if ($entries) {
             \Includes\Utils\Operator::showMessage('', true, false);
             /** @var \XLite\Upgrade\Entry\AEntry $entry */
             foreach ($entries as $entry) {
                 if (!$entry->isPostUpgradeActionsCalled()) {
                     $message = '...Invoke actions for ' . $entry->getActualName();
                     \Includes\Decorator\Utils\CacheManager::logMessage(PHP_EOL);
                     \Includes\Decorator\Utils\CacheManager::logMessage($message);
                     $isInvoked = \XLite\Upgrade\Cell::getInstance()->runHelper($entry, 'post_rebuild');
                     if ($isInvoked && \XLite\Upgrade\Cell::getInstance()->getHookRedirect()) {
                         break;
                     }
                     if (!\XLite\Upgrade\Cell::getInstance()->hasUnfinishedUpgradeHooks('post_rebuild', $entry)) {
                         // All post-rebuild hooks completed, run the rest actions...
                         \XLite\Upgrade\Cell::getInstance()->runCommonHelper($entry, 'add_labels');
                         \XLite\Upgrade\Cell::getInstance()->callInstallEvent($entry);
                         $entry->setPostUpgradeActionsCalled();
                     }
                     if (\Includes\Decorator\Utils\CacheManager::isTimeExceeds(static::STEP_TTL)) {
                         break;
                     }
                 }
             }
         }
     }
     \Includes\Decorator\Utils\CacheManager::logMessage(PHP_EOL);
     \XLite\Core\Database::getEM()->flush();
     \XLite\Core\Database::getEM()->clear();
 }
Example #3
0
 /**
  * Run task
  *
  * @return void
  */
 protected function doActionRun()
 {
     $event = \XLite\Core\Request::getInstance()->event;
     $result = false;
     $errors = array();
     $task = \XLite\Core\Database::getRepo('XLite\\Model\\EventTask')->findOneBy(array('name' => $event));
     if ($task) {
         if (\XLite\Core\EventListener::getInstance()->handle($task->getName(), $task->getArguments())) {
             \XLite\Core\Database::getEM()->remove($task);
             $result = true;
         }
         $errors = \XLite\Core\EventListener::getInstance()->getErrors();
     } else {
         \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->removeEventState($event);
     }
     \XLite\Core\Database::getEM()->flush();
     $state = \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventState($event);
     $this->setPureAction(true);
     if ($result && $state) {
         \XLite\Core\Event::eventTaskRun(array('percent' => \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventStatePercent($event), 'error' => !empty($errors)));
     } else {
         $result = false;
     }
     if ($errors) {
         foreach ($errors as $message) {
             \XLite\Core\TopMessage::addError($message);
         }
         $result = false;
     }
     $this->valid = $result;
 }
Example #4
0
 /**
  * @param bool $new_order
  * @return XLite\Model\Order
  */
 protected function getTestOrder($new_order = false)
 {
     $order = parent::getTestOrder($new_order);
     $order->setPaymentMethod($this->getTestMethod());
     \XLite\Core\Database::getEM()->flush();
     return $order;
 }
Example #5
0
 /**
  * testCreate
  *
  * @return void
  * @access public
  * @see    ____func_see____
  * @since  1.0.0
  */
 public function testCreate()
 {
     $c = new \XLite\Model\Country();
     foreach ($this->entityData as $field => $testValue) {
         $setterMethod = 'set' . \XLite\Core\Converter::getInstance()->convertToCamelCase($field);
         $getterMethod = 'get' . \XLite\Core\Converter::getInstance()->convertToCamelCase($field);
         $c->{$setterMethod}($testValue);
         $value = $c->{$getterMethod}();
         $this->assertEquals($testValue, $value, 'Creation checking (' . $field . ')');
     }
     $s = new \XLite\Model\State();
     $s->setState('test state');
     $s->setCode('ttt');
     $c->addStates($s);
     $em = \XLite\Core\Database::getEM();
     $em->persist($c);
     $em->flush();
     $em->clear();
     $c = \XLite\Core\Database::getEM()->merge($c);
     foreach ($this->entityData as $field => $testValue) {
         $getterMethod = 'get' . \XLite\Core\Converter::getInstance()->convertToCamelCase($field);
         $this->assertEquals($testValue, $c->{$getterMethod}(), 'Creation checking (' . $field . ') #2');
     }
     $this->assertEquals($s->getStateId(), $c->getStates()->get(0)->getStateId(), 'check state');
     $em->remove($c);
     $em->flush();
 }
Example #6
0
 /**
  * Update membership list
  *
  * @return void
  */
 protected function doActionUpdate()
 {
     $data = \XLite\Core\Request::getInstance()->update_memberships;
     if (!is_array($data)) {
         // TODO - add top message
     } else {
         $code = $this->getCurrentLanguage();
         $flag = false;
         foreach ($data as $id => $row) {
             $m = \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->find($id);
             if ($m) {
                 $duplicate = \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->createQueryBuilder()->andWhere('translations.name = :name', 'm.membership_id != :id')->setParameter('name', $row['name'])->setParameter('id', $id)->setMaxResults(1)->getSingleResult();
                 if (!is_null($duplicate)) {
                     \XLite\Core\TopMessage::addWarning('"' . $row['name'] . '" ' . ' membership name is already in use. ' . 'Please specify another name for this membership level');
                 } else {
                     \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->update($m, $row);
                 }
                 $flag = true;
             } else {
                 \XLite\Core\TopMessage::addError('Could not find membership ID#' . $id . ' record in the database');
             }
         }
         if ($flag) {
             \XLite\Core\Database::getEM()->flush();
         }
     }
 }
Example #7
0
 /**
  * Update user's Drupal roles
  *
  * @param array $newDrupalRoles Array of Drupal role IDs
  *
  * @return void
  */
 public function updateDrupalRoles($newDrupalRoles)
 {
     $processedRoles = array();
     $drupalRoles = $this->getDrupalRoles();
     if ($drupalRoles) {
         // Remove roles that is not in new roles array
         foreach ($this->getDrupalRoles() as $key => $drupalRole) {
             if (!in_array($drupalRole->getDrupalRoleId(), $newDrupalRoles)) {
                 $this->drupalRoles->remove($key);
                 \XLite\Core\Database::getEM()->remove($drupalRole);
             } else {
                 $processedRoles[] = $drupalRole->getDrupalRoleId();
             }
         }
     }
     // Get roles to add
     $rolesToAdd = array_diff($newDrupalRoles, $processedRoles);
     // Create new roles
     foreach ($rolesToAdd as $roleId) {
         $newDrupalRole = new \XLite\Module\CDev\DrupalConnector\Model\DrupalRole();
         $newDrupalRole->setProfile($this);
         $newDrupalRole->setDrupalRoleId($roleId);
         $this->addDrupalRoles($newDrupalRole);
     }
 }
Example #8
0
 /**
  * Action of license key registration
  *
  * @return void
  */
 protected function doActionRegisterKey()
 {
     $key = \XLite\Core\Request::getInstance()->key;
     $addonsInfo = \XLite\Core\Marketplace::getInstance()->checkAddonKey($key);
     if ($addonsInfo && $addonsInfo[$key]) {
         $addonsInfo = $addonsInfo[$key];
         $repo = \XLite\Core\Database::getRepo('\\XLite\\Model\\ModuleKey');
         foreach ($addonsInfo as $info) {
             $module = \XLite\Core\Database::getRepo('\\XLite\\Model\\Module')->findOneBy(array('author' => $info['author'], 'name' => $info['name']));
             if ($module) {
                 $entity = $repo->findKey($info['author'], $info['name']);
                 if ($entity) {
                     $entity->setKeyValue($key);
                     $repo->update($entity);
                 } else {
                     $entity = $repo->insert($info + array('keyValue' => $key));
                 }
                 \XLite\Core\Database::getEM()->flush();
                 // Clear cache for proper installation
                 \XLite\Core\Marketplace::getInstance()->clearActionCache(\XLite\Core\Marketplace::ACTION_GET_ADDONS_LIST);
                 $this->showInfo(__FUNCTION__, 'License key has been successfully verified for "{{name}}" module by "{{author}}" author', array('name' => $module->getModuleName(), 'author' => $module->getAuthorName()));
             } else {
                 $this->showError(__FUNCTION__, 'Key is validated, but the module [' . implode(',', $info) . '] was not found');
             }
         }
     } else {
         $error = \XLite\Core\Marketplace::getInstance()->getError();
         if ($error) {
             $this->showError(__FUNCTION__, 'Response from marketplace: ' . $error);
         } else {
             $this->showError(__FUNCTION__, 'Response from marketplace is not received');
         }
     }
     $this->setReturnURL($this->buildURL('addons_list_marketplace'));
 }
Example #9
0
File: Rate.php Project: kingsj/core
 public function testGetTotalRate()
 {
     $tax = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\VAT\\Model\\Tax')->getTax();
     foreach ($tax->getRates() as $rate) {
         \XLite\Core\Database::getEM()->remove($rate);
     }
     $tax->getRates()->clear();
     $tax->setEnabled(true);
     $rate = new \XLite\Module\CDev\VAT\Model\Tax\Rate();
     $rate->setValue(10);
     $rate->setPosition(1);
     \XLite\Core\Database::getEM()->persist($rate);
     $tax->addRates($rate);
     $rate->setTax($tax);
     $rate = new \XLite\Module\CDev\VAT\Model\Tax\Rate();
     $rate->setValue(20);
     $rate->setPosition(0);
     \XLite\Core\Database::getEM()->persist($rate);
     $tax->addRates($rate);
     $rate->setTax($tax);
     $memberships = \XLite\Core\Database::getRepo('XLite\\Model\\Membership')->findAll();
     $membership = array_shift($memberships);
     $rate->setMembership($membership);
     $tax->setVATMembership($membership);
     \XLite\Core\Database::getEM()->flush();
     $method = new \XLite\Model\Shipping\Method();
     $method->setEnabled(true);
     $rate = new \XLite\Model\Shipping\Rate();
     $rate->setBaseRate(10);
     $rate->setMarkupRate(10);
     $rate->setMethod($method);
     $this->assertEquals(16.67, \XLite::getInstance()->getCurrency()->formatValue($rate->getTotalRate()), 'check cost');
 }
Example #10
0
 /**
  * Execute certain hook handler
  *
  * @return void
  */
 public function executeHookHandler()
 {
     \XLite\Core\Translation::getInstance()->reset();
     \XLite\Core\Database::getEM()->flush();
     \XLite\Core\Translation::getInstance()->resetDriver();
     \XLite\Core\Translation::getInstance()->translateByString('label');
     \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->setVar(\XLite::CACHE_TIMESTAMP, intval(microtime(true)));
 }
Example #11
0
 /**
  * Sync amount in stock with remaining pin codes
  * 
  * @return void
  */
 public function syncAmount()
 {
     $remaining = $this->getProduct()->getRemainingPinCodesCount();
     if (parent::getAmount() !== $remaining) {
         $this->setAmount($remaining);
         \XLite\Core\Database::getEM()->persist($this);
     }
 }
Example #12
0
File: Tax.php Project: kingsj/core
 /**
  * Create tax
  *
  * @return \XLite\Module\CDev\SalesTax\Model\Tax
  */
 protected function createTax()
 {
     $tax = new \XLite\Module\CDev\SalesTax\Model\Tax();
     $tax->setName('Sales tax');
     $tax->setEnabled(true);
     \XLite\Core\Database::getEM()->persist($tax);
     return $tax;
 }
Example #13
0
 /**
  * Set order note
  *
  * @return void
  */
 public function doActionSetOrderNote()
 {
     if (isset(\XLite\Core\Request::getInstance()->notes)) {
         $this->getCart()->setNotes(\XLite\Core\Request::getInstance()->notes);
     }
     \XLite\Core\Database::getEM()->flush();
     exit;
 }
Example #14
0
 protected function getTestOrder($new_order = false)
 {
     $order = parent::getTestOrder($new_order);
     $order->setDetail('t1', '123');
     $order->setDetail('t2', '456', 'test');
     \XLite\Core\Database::getEM()->flush();
     return $order;
 }
Example #15
0
 /**
  * Fire event
  *
  * @param string $name      Event name
  * @param array  $arguments Arguments OPTIONAL
  *
  * @return boolean
  */
 public function fire($name, array $arguments = array())
 {
     $entity = new \XLite\Model\EventTask();
     $entity->setName($name);
     $entity->setArguments($arguments);
     \XLite\Core\Database::getEM()->persist($entity);
     \XLite\Core\Database::getEM()->flush();
 }
Example #16
0
 /**
  * setUp
  *
  * @return void
  * @access protected
  * @see    ____func_see____
  * @since  1.0.0
  */
 protected function setUp()
 {
     parent::setUp();
     \XLite\Core\Database::getEM()->clear();
     $this->doRestoreDb(__DIR__ . '/sql/profile/setup.sql', false);
     $this->testSearchData[22]['cnd']['startDate'] = date('M j, Y', time() - 60 * 60 * 24 * 7);
     $this->testSearchData[22]['cnd']['endDate'] = date('M j, Y', time() - 60 * 60 * 24 * 3);
 }
Example #17
0
 /**
  * Read storage
  *
  * @param \XLite\Model\Base\Storage $storage Storage
  *
  * @return void
  */
 protected function readStorage(\XLite\Model\Base\Storage $storage)
 {
     if ($this->storageKey) {
         $this->storageKey->incrementAttempt();
         \XLite\Core\Database::getEM()->flush();
     }
     parent::readStorage($storage);
 }
Example #18
0
 public function storeCachedSearch($query, $result)
 {
     $searchCache = new \XLite\Module\QSL\CloudSearch\Model\SearchCache();
     $searchCache->setKeyValue($this->getKey($query));
     $searchCache->setResultValue($result);
     $searchCache->setActualTime(LC_START_TIME + static::TTL);
     \XLite\Core\Database::getEM()->persist($searchCache);
     \XLite\Core\Database::getEM()->flush($searchCache);
 }
Example #19
0
 /**
  * Remove temporary order
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return void
  */
 protected function removeTemporaryOrder(\XLite\Model\Order $order)
 {
     foreach ($order->getItems() as $item) {
         foreach ($item->getPinCodes() as $pin) {
             \XLite\Core\Database::getEM()->remove($pin);
         }
     }
     parent::removeTemporaryOrder($order);
 }
Example #20
0
 /**
  * Run step
  *
  * @return void
  */
 protected function runStep()
 {
     $listener = \XLite\Core\EventListener::getInstance();
     foreach (\XLite\Core\Database::getRepo('XLite\\Model\\EventTask')->findQuery() as $task) {
         if ($listener->handle($task->getName(), $task->getArguments())) {
             \XLite\Core\Database::getEM()->remove($task);
         }
     }
 }
Example #21
0
 /**
  * Delete single entity
  *
  * @param \XLite\Model\AEntity $entity Entity to detach
  *
  * @return void
  */
 protected function performDelete(\XLite\Model\AEntity $entity)
 {
     parent::performDelete($entity);
     if (is_subclass_of(get_class($entity), 'XLite\\Model\\AttributeValue\\Multiple')) {
         \XLite\Core\Database::getEM()->persist($entity);
         \XLite\Core\Database::getEM()->flush();
         $entity->getProduct()->checkVariants();
     }
 }
Example #22
0
 /**
  * testDelete
  *
  * @return void
  * @see    ____func_see____
  * @since  1.0.22
  */
 public function testDelete()
 {
     $method = $this->getTestMethod();
     $id = $method->getMethodId();
     \XLite\Core\Database::getEM()->remove($method);
     \XLite\Core\Database::getEM()->flush();
     $method = \XLite\Core\Database::getRepo('XLite\\Model\\Payment\\Method')->find($id);
     $this->assertNull($method, 'check removed method');
 }
 protected function getEM()
 {
     if ($this->entityManager == null) {
         $this->entityManager = \XLite\Core\Database::getEM();
     }
     if (!$this->entityManager->isOpen()) {
         $this->entityManager = $this->entityManager->create($this->entityManager->getConnection(), $this->entityManager->getConfiguration());
     }
     return $this->entityManager;
 }
Example #24
0
 protected function getTestLowInventoryOrder()
 {
     $order = \XLite\Core\Database::getRepo('XLite\\Model\\Order')->createQueryBuilder()->setMaxResults(1)->getQuery()->getSingleResult();
     $order->setStatus('Q');
     $item = $order->getItems()->get(0);
     $inv = $item->getProduct()->getInventory();
     $inv->setEnabled(true);
     $inv->setAmount(0);
     \XLite\Core\Database::getEM()->flush();
     return $order;
 }
Example #25
0
 protected function getTestAttachment()
 {
     $product = $this->getProduct();
     $attach = new \XLite\Module\CDev\FileAttachments\Model\Product\Attachment();
     $product->addAttachments($attach);
     $attach->setProduct($product);
     $storage = $attach->getStorage();
     $this->assertTrue($storage->loadFromLocalFile(__DIR__ . LC_DS . 'max_ava.png'), 'check loading');
     \XLite\Core\Database::getEM()->flush();
     return $attach;
 }
Example #26
0
 public function testDelete()
 {
     $method = $this->getTestMethod();
     $s = $method->getSettings()->get(0);
     $id = $s->getSettingId();
     $method->getSettings()->removeElement($s);
     \XLite\Core\Database::getEM()->remove($s);
     \XLite\Core\Database::getEM()->flush();
     $s = \XLite\Core\Database::getRepo('XLite\\Model\\Payment\\MethodSetting')->find($id);
     $this->assertNull($s, 'check removed setting');
 }
Example #27
0
 /**
  * Find and remove expired tracking details
  *
  * @return void
  */
 public function removeExpired()
 {
     $list = $this->findAllExpiredDetails();
     if (count($list)) {
         foreach ($list as $tracking) {
             \XLite\Core\Database::getEM()->remove($tracking);
         }
         \XLite\Core\Database::getEM()->flush();
         \XLite\Core\Database::getEM()->clear();
     }
 }
 /**
  * Get attribute value data
  *
  * @param array                  $data      Import row data
  * @param \XLite\Model\Attribute $attribute Attribute object
  *
  * @return array
  */
 protected function getAttributeValueData($data, $attribute)
 {
     $option = \XLite\Core\Database::getRepo('XLite\\Model\\AttributeOption')->findOneByNameAndAttribute($data['value'], $attribute);
     if (!$option) {
         $option = new \XLite\Model\AttributeOption();
         $option->setAttribute($attribute);
         $option->setName($data['value']);
         \XLite\Core\Database::getEM()->persist($option);
     }
     return array('attribute_option' => $option);
 }
Example #29
0
File: Zone.php Project: kingsj/core
 /**
  * testFindZone
  *
  * @return void
  * @access public
  * @see    ____func_see____
  * @since  1.0.0
  */
 public function testFindZone()
 {
     $zone = \XLite\Core\Database::getRepo('XLite\\Model\\Zone')->findOneBy(array('zone_name' => 'New York area'));
     $this->assertTrue($zone instanceof \XLite\Model\Zone, 'check zone');
     $id = $zone->getZoneId();
     \XLite\Core\Database::getEM()->clear();
     $zone = \XLite\Core\Database::getRepo('XLite\\Model\\Zone')->findZone($id);
     $this->assertTrue($zone instanceof \XLite\Model\Zone, 'findZone(20) must return an instance of \\XLite\\Model\\Zone');
     $zone = \XLite\Core\Database::getRepo('XLite\\Model\\Zone')->findZone(20000);
     $this->assertNull($zone, 'findZone(20000) must return null');
 }
Example #30
0
 /**
  * Check if the disabled category is shown as usual category page.
  *
  * @return void
  * @access protected
  * @since  1.0.7
  */
 public function testDisabledCategory()
 {
     $categories = \XLite\Core\Database::getRepo('XLite\\Model\\Category')->findByEnabled(true);
     $category = $categories[3];
     $category->setEnabled(false);
     \XLite\Core\Database::getEM()->persist($category);
     \XLite\Core\Database::getEM()->flush();
     $url = $this->getCategoryURL($category->getCategoryId());
     $this->openAndWait($url);
     $this->assertElementPresent('//h2[@class="page-not-found"]', 'Category ' . $category->getCategoryId() . ' must be disabled');
 }