'ddw', 'primary' => 'id_ddw', 'fields' => array( 'id_carrier' => array( 'type' => self::TYPE_INT, 'required' => true ), 'id_shop' => array('type' => self::TYPE_INT, 'required' => true), 'required' => array( 'type' => self::TYPE_INT, 'required' => true ), 'enabled' => array( 'type' => self::TYPE_INT, 'required' => true ), 'min_days' => array( 'type' => self::TYPE_INT, 'required' => true ), 'max_days' => array( 'type' => self::TYPE_INT, 'required' => true ), 'cutofftime_enabled' => array('type' => self::TYPE_INT, 'required' => true), 'cutofftime_hours' => array('type' => self::TYPE_INT), 'cutofftime_minutes' => array('type' => self::TYPE_INT), 'timeslots_prep_minutes' => array('type' => self::TYPE_INT), 'product_eta_display_enabled' => array('type' => self::TYPE_INT), 'layout' => array('type' => self::TYPE_STRING) ) ); public function loadByCarrier($id_carrier, $id_shop) { $sql = new DbQuery(); $sql->select('*'); $sql->from('ddw'); $sql->where('id_carrier = ' . (int)$id_carrier); $sql->where('id_shop = ' . (int)$id_shop); $row = Db::getInstance()->getRow($sql); if (is_array($row)) { $this->hydrate($row); } } public static function saveToCart($ddw_order_date, $ddw_order_time, $id_cart) { Db::getInstance()->update( 'cart', array( 'ddw_order_date' => pSQL($ddw_order_date), 'ddw_order_time' => (int)$ddw_order_time ), 'id_cart=' . (int)$id_cart ); } public static function getOrderDDWDateTime($id_order) { $order_ddw = array(); $order_ddw['ddw_order_date'] = ''; $order_ddw['ddw_order_time'] = ''; /* get the order date and time we stored in cart session */ $sql = 'SELECT ddw_order_date, ddw_order_time FROM ' . _DB_PREFIX_ . 'orders WHERE id_order = ' . (int)$id_order; $result = Db::getInstance()->getRow($sql); if (isset($result) && is_array($result)) { $order_ddw['ddw_order_date'] = $result['ddw_order_date']; $order_ddw['ddw_order_time'] = $result['ddw_order_time']; /*if (!empty($order_ddw['ddw_order_time'])) { $ddw_timeslot = new DDWTimeslot($order_ddw['ddw_order_time']); if (!empty($ddw_timeslot->id)) $order_ddw['ddw_order_time'] = $ddw_timeslot->time_start.' - '.$ddw_timeslot->time_end; }*/ } return $order_ddw; } public static function saveToOrder($cart) { $ddw_order_date = ''; $ddw_order_time = ''; /* get the order date and time we stored in cart session */ $sql = 'SELECT ddw_order_date, ddw_order_time FROM ' . _DB_PREFIX_ . 'cart WHERE secure_key = "' . $cart->secure_key . '" AND id_cart = ' . (int)$cart->id; $result = Db::getInstance()->getRow($sql); if (isset($result) && is_array($result)) { $ddw_order_date = $result['ddw_order_date']; $ddw_order_time = $result['ddw_order_time']; if (!empty($ddw_order_time)) { $ddw_timeslot = new DDWTimeslotModel($ddw_order_time); if (!empty($ddw_timeslot->id)) { $ddw_order_time = $ddw_timeslot->time_start . ' - ' . $ddw_timeslot->time_end; } } } else { return false; } $sql = 'SELECT * FROM ' . _DB_PREFIX_ . 'orders WHERE secure_key = "' . $cart->secure_key . '" AND id_cart = ' . (int)$cart->id; Db::getInstance()->execute($sql); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); if (count($result) > 0) { $id_order = $result[0]['id_order']; Db::getInstance()->update( 'orders', array( 'ddw_order_date' => pSQL($ddw_order_date), 'ddw_order_time' => pSQL($ddw_order_time) ), 'id_order=' . (int)$id_order . ' AND id_cart=' . (int)$cart->id ); } } /** * Save delivery date and time specific order * @param $id_order * @param $ddw_order_date * @param $ddw_order_time * @return bool */ public static function saveToOrderDirect($id_order, $ddw_order_date, $ddw_order_time) { $date = DateTime::createFromFormat("Y-m-d", $ddw_order_date); if (!$date && $date != '') { return false; } DB::getInstance()->update( 'orders', array( 'ddw_order_date' => pSQL($ddw_order_date), 'ddw_order_time' => pSQL($ddw_order_time) ), 'id_order=' . (int)$id_order ); return true; } public static function updateCarrierID($old_id_carrier, $new_id_carrier) { DB::getInstance()->update('ddw', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); DB::getInstance()->update('ddw_blocked_dates', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); DB::getInstance()->update('ddw_timeslots', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); DB::getInstance()->update('ddw_weekdays', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); DB::getInstance()->update('ddw_scopes', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); DB::getInstance()->update('ddw_specificdate', array('id_carrier' => (int)$new_id_carrier), 'id_carrier=' . (int)$old_id_carrier); } }