Exemple #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;
 }
Exemple #2
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);
 }
Exemple #3
0
 public function delete($elements)
 {
     if (!is_array($elements)) {
         $elements = array($elements);
     }
     $config = hikaserial::config();
     JPluginHelper::importPlugin('hikashop');
     JPluginHelper::importPlugin('hikaserial');
     $dispatcher = JDispatcher::getInstance();
     $do = true;
     $dispatcher->trigger('onBeforeSerialDelete', array(&$elements, &$do));
     if (!$do) {
         return false;
     }
     $deleted_status = 'deleted';
     $useDeletedStatus = $config->get('use_deleted_serial_status', false);
     if (!$useDeletedStatus) {
         $result = parent::delete($elements);
         if ($result) {
             $query = 'DELETE FROM ' . hikaserial::table('history') . ' WHERE history_serial_id IN (' . implode(',', $elements) . ')';
             $this->db->setQuery($query);
             $this->db->query();
             $dispatcher->trigger('onAfterSerialDelete', array(&$elements));
         }
     } else {
         $query = 'DELETE FROM ' . hikaserial::table('serial') . ' WHERE serial_id IN (' . implode(',', $elements) . ') AND serial_status = ' . $this->db->Quote($deleted_status);
         $this->db->setQuery($query);
         $this->db->query();
         $result = true;
         $query = 'SELECT serial_id FROM ' . hikaserial::table('serial') . ' WHERE serial_id IN (' . implode(',', $elements) . ')';
         $this->db->setQuery($query);
         if (!HIKASHOP_J25) {
             $updateIds = $this->db->loadResultArray();
         } else {
             $updateIds = $this->db->loadColumn();
         }
         if (!empty($updateIds)) {
             $query = 'UPDATE ' . hikaserial::table('serial') . ' SET serial_status = ' . $this->db->Quote($deleted_status) . ' WHERE serial_id IN (' . implode(',', $updateIds) . ')';
             $this->db->setQuery($query);
             $this->db->query();
             $query = 'DELETE FROM ' . hikaserial::table('history') . ' WHERE history_serial_id IN (' . implode(',', $elements) . ') AND history_serial_id NOT IN (' . implode(',', $updateIds) . ')';
             $this->db->setQuery($query);
             $this->db->query();
             if ($config->get('save_history', 1)) {
                 $historyClass = hikaserial::get('class.history');
                 $histories = array();
                 foreach ($updateIds as $id) {
                     $histories[] = $historyClass->create($id, $deleted_status, 'delete');
                 }
                 if (!empty($histories)) {
                     $historyClass->save($histories);
                 }
             }
         } else {
             $query = 'DELETE FROM ' . hikaserial::table('history') . ' WHERE history_serial_id IN (' . implode(',', $elements) . ')';
             $this->db->setQuery($query);
             $this->db->query();
         }
         $dispatcher->trigger('onAfterSerialDelete', array(&$elements));
     }
     $productClass = hikaserial::get('class.product');
     $productClass->refreshQuantities();
     return $result;
 }