Esempio n. 1
0
 public function delete($elements)
 {
     $status = parent::delete($elements);
     if ($status) {
         $app = JFactory::getApplication();
         $orderClass = hikaserial::get('helper.order');
         $orderClass->pkey = 'consumer_id';
         $orderClass->table = 'consumer';
         $orderClass->groupMap = 'consumer_type';
         $orderClass->orderingMap = 'consumer_ordering';
         $orderClass->groupVal = $app->getUserStateFromRequest(HIKASERIAL_COMPONENT . '.consumer_plugin_type', 'consumer_plugin_type', '');
         $orderClass->reOrder();
     }
     return $status;
 }
Esempio n. 2
0
 public function save(&$element)
 {
     if (!is_array($element)) {
         return parent::save($element);
     }
     $struct = array();
     $first = reset($element);
     $query = 'INSERT IGNORE INTO ' . hikaserial::table('history') . ' (';
     $sep = '';
     foreach (get_object_vars($first) as $k => $v) {
         if (is_array($v) || is_object($v) || $v === null || $k[0] == '_') {
             continue;
         }
         if (!HIKASHOP_J30) {
             $query .= $sep . $this->db->nameQuote($k);
         } else {
             $query .= $sep . $this->db->quoteName($k);
         }
         $struct[] = $k;
         $sep = ',';
     }
     $query .= ') VALUES ';
     $sep = '';
     foreach ($element as $el) {
         if ($el === false) {
             continue;
         }
         $query .= $sep . '(';
         $sep2 = '';
         foreach ($struct as $k) {
             $value = $el->{$k};
             if (!HIKASHOP_J25) {
                 $query .= $sep2 . ($this->db->isQuoted($k) ? $this->db->Quote($value) : (int) $value);
             } else {
                 $query .= $sep2 . $this->db->Quote($value);
             }
             $sep2 = ',';
         }
         $query .= ')';
         $sep = ',';
     }
     $this->db->setQuery($query);
     $this->db->query();
     return true;
 }
Esempio n. 3
0
 public function delete($elements)
 {
     if (!is_array($elements)) {
         $elements = array($elements);
     }
     JArrayHelper::toInteger($elements);
     $query = 'SELECT serial_pack_id, count(*) as `cpt` FROM ' . hikaserial::table('serial') . ' WHERE serial_pack_id IN ( ' . implode(',', $elements) . ');';
     $this->db->setQuery($query);
     $serialPacks = $this->db->loadObjectList();
     $exclude = array();
     foreach ($serialPacks as $serialPack) {
         if ($serialPack->cpt > 0) {
             $exclude[] = $serialPack->serial_pack_id;
         }
     }
     if (!empty($exclude)) {
         $elements = array_diff($elements, $exclude);
     }
     return parent::delete($elements);
 }
Esempio n. 4
0
 public function unassign($serial_id, $type = 'all')
 {
     $ret = false;
     if (empty($serial_id)) {
         return $ret;
     }
     $app = JFactory::getApplication();
     if (!$app->isAdmin()) {
         $user_id = hikaserial::loadUser();
         if ($serial->serial_user_id != $user_id) {
             return false;
         }
     }
     $save = false;
     $serial = $this->get($serial_id);
     $newSerial = new stdClass();
     $newSerial->serial_id = $serial_id;
     if ($type == 'all' || $type == 'order') {
         $newSerial->serial_assign_date = 0;
         $newSerial->serial_order_id = 0;
         $save = true;
     }
     if ($type == 'all' || $type == 'user') {
         if (empty($serial->serial_order_id) || isset($newSerial->serial_order_id)) {
             $newSerial->serial_user_id = 0;
             $newSerial->serial_assign_date = 0;
             $save = true;
         }
     }
     if ($type == 'all') {
         $newSerial->serial_extra_data = array();
     }
     JPluginHelper::importPlugin('hikashop');
     JPluginHelper::importPlugin('hikaserial');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeSerialUnassign', array($serial, $type, &$newSerial, &$save));
     if ($save) {
         if (!empty($newSerial->serial_extradata) && !is_string($newSerial->serial_extradata)) {
             $newSerial->serial_extradata = serialize($newSerial->serial_extradata);
         }
         $ret = parent::save($newSerial);
     }
     return $ret;
 }
Esempio n. 5
0
 public function save(&$element)
 {
     if (!empty($element->params)) {
         if (!HIKASHOP_J16) {
             $params = '';
             foreach ($element->params as $key => $val) {
                 $params .= $key . '=' . $val . "\n";
             }
             $element->params = rtrim($params);
         } else {
             $handler = JRegistryFormat::getInstance('JSON');
             $element->params = $handler->objectToString($element->params);
         }
     }
     return parent::save($element);
 }