* @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class livredorItem extends ObjectModel { public $prenom; public $nom; public $age; public $departement; public $ville; public $titre; public $note; public $phrase; public $active; public $en_avant; public $position; public $id_theme; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'devspelivredor_item', 'primary' => 'id_livredor_item', 'multilang' => true, 'fields' => array( 'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), 'en_avant' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), 'position' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt', 'required' => true), 'id_theme' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt', 'required' => true), 'age' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt', 'required' => false), 'note' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt', 'required' => true), // Lang fields 'titre' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isString', 'size' => 255), 'phrase' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isString', 'size' => 8000), 'prenom' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255), 'nom' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => false, 'size' => 255), 'departement' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => false, 'size' => 255), 'ville' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => false, 'size' => 255), ) ); public function __construct($id_livredor = null, $id_lang = null, $id_shop = null, Context $context = null) { parent::__construct($id_livredor, $id_lang, $id_shop); } public function add($autodate = true, $null_values = false) { $context = Context::getContext(); $id_shop = $context->shop->id; $res = parent::add($autodate, $null_values); $res &= Db::getInstance()->execute(' INSERT INTO `'._DB_PREFIX_.'devspelivredor` (`id_shop`, `id_livredor_item`) VALUES('.(int)$id_shop.', '.(int)$this->id.')' ); return $res; } public function delete() { $res = true; // $images = $this->image; // foreach ($images as $image) // { // if (preg_match('/sample/', $image) === 0) // if ($image && file_exists(dirname(__FILE__).'/images/'.$image)) // $res &= @unlink(dirname(__FILE__).'/images/'.$image); // } $res &= $this->reOrderPositions(); $res &= Db::getInstance()->execute(' DELETE FROM `'._DB_PREFIX_.'devspelivredor` WHERE `id_livredor_item` = '.(int)$this->id ); $res &= parent::delete(); return $res; } public function reOrderPositions() { $id_livredor = $this->id; $context = Context::getContext(); $id_shop = $context->shop->id; $max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT MAX(hss.`position`) as position FROM `'._DB_PREFIX_.'devspelivredor_item` hss, `'._DB_PREFIX_.'devspelivredor` hs WHERE hss.`id_livredor_item` = hs.`id_livredor_item` AND hs.`id_shop` = '.(int)$id_shop ); if ((int)$max == (int)$id_livredor) return true; $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hss.`position` as position, hss.`id_livredor_item` as id_livredor FROM `'._DB_PREFIX_.'devspelivredor_item` hss LEFT JOIN `'._DB_PREFIX_.'devspelivredor` hs ON (hss.`id_livredor_item` = hs.`id_livredor_item`) WHERE hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position ); foreach ($rows as $row) { $current_livredor = new livredorItem($row['id_livredor']); --$current_livredor->position; $current_livredor->update(); unset($current_livredor); } return true; } }