first commit
This commit is contained in:
206
modules/pocztapolskaen/classes/PPOrder.php
Normal file
206
modules/pocztapolskaen/classes/PPOrder.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
|
||||
class PPOrder extends ObjectModel {
|
||||
|
||||
public $id_order;
|
||||
public $id_shipment;
|
||||
public $shipment_number;
|
||||
public $order_date;
|
||||
public $send_date;
|
||||
public $post_date;
|
||||
public $shipment_type;
|
||||
public $id_buffor;
|
||||
public $date_add;
|
||||
public $date_upd;
|
||||
public $pni;
|
||||
public $id_cart;
|
||||
public $id_carrier;
|
||||
public $point;
|
||||
public $cod;
|
||||
public static $definition = array(
|
||||
'table' => 'pocztapolskaen_order',
|
||||
'primary' => 'id_pp_order',
|
||||
'fields' => array(
|
||||
'id_order' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
|
||||
'id_cart' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
|
||||
'id_carrier' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
|
||||
'id_shipment' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'required' => true),
|
||||
'shipment_number' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'allow_null' => true),
|
||||
'shipment_type' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'allow_null' => true),
|
||||
'send_date' => array('type' => self::TYPE_DATE, 'allow_null' => true),
|
||||
'post_date' => array('type' => self::TYPE_DATE, 'allow_null' => true),
|
||||
'id_buffor' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
|
||||
'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
|
||||
'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
|
||||
'point' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'allow_null' => true),
|
||||
'pni' => array('type' => self::TYPE_INT, 'validate' => 'isInt', 'allow_null' => true),
|
||||
'cod' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
|
||||
),
|
||||
'associations' => array(
|
||||
'buffor' => array('type' => self::HAS_ONE, 'field' => 'id_buffor', 'foreign_field' => 'id_en', 'object' => 'PPOrderSet'),
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Metoda pobiera wszystkie przesyłki pogrupowane wzgledem id zbioru
|
||||
*/
|
||||
public static function getCollection() {
|
||||
$arr = array();
|
||||
$collection = new PrestaShopCollection('PPOrder');
|
||||
foreach ($collection as $c) {
|
||||
$arr[$c->id_en] = $c;
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda pobiera przesylke po identyfikatorze zamowienia
|
||||
*/
|
||||
public static function findByOrder($idOrder) {
|
||||
$orders = new PrestaShopCollection('PPOrder');
|
||||
$orders->where('id_order', '=', $idOrder);
|
||||
if ($orders->count() > 0) {
|
||||
return $orders[0];
|
||||
}
|
||||
$object = new self;
|
||||
$object->id_order = $idOrder;
|
||||
return $object;
|
||||
}
|
||||
|
||||
public static function findByBuffor($idBuffor) {
|
||||
$orders = new PrestaShopCollection('PPOrder');
|
||||
$orders->where('id_buffor', '=', $idBuffor);
|
||||
if ($orders->count() > 0) {
|
||||
return $orders[0];
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda pobiera przesylki o podanych w parametrze identyfikatorach
|
||||
*/
|
||||
public static function getOrders($ordersIds, $isSent = true, $isShipment = false) {
|
||||
$orders = new PrestaShopCollection('PPOrder');
|
||||
//$orders->join('buffor');
|
||||
$orders->where('id_order', 'in', $ordersIds);
|
||||
/*if ($isSent) {
|
||||
$orders->where('buffor.id_envelope', '>', '0');
|
||||
}*/
|
||||
if ($isShipment) {
|
||||
$orders->where('id_shipment', '>', '0');
|
||||
}
|
||||
return $orders;
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda ustawia status zamowienia w zależnosci od zdefiniowanych ustawien
|
||||
*/
|
||||
public function setOrderStatus($name) {
|
||||
$order = new Order($this->id_order);
|
||||
$order_status = PPSetting::getStatusValue($name);
|
||||
if (!empty($order_status)) {
|
||||
$order->setCurrentState($order_status);
|
||||
$order->save();
|
||||
}
|
||||
}
|
||||
|
||||
public function setOrderShipment(){
|
||||
$order = new Order($this->id_order);
|
||||
$orderCarrier = new OrderCarrier($order->getIdOrderCarrier());
|
||||
$orderCarrier->tracking_number = $this->shipment_number;
|
||||
$orderCarrier->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda zwraca adres dostawy zamowienia
|
||||
*/
|
||||
public function getOrderAddress() {
|
||||
$order = new Order($this->id_order);
|
||||
$address = new Address($order->id_address_delivery);
|
||||
return $address;
|
||||
}
|
||||
|
||||
public function getOrderCustomer() {
|
||||
$order = new Order($this->id_order);
|
||||
return $order->getCustomer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda zwraca przesylki pogrupowane wzgledem id zbioru
|
||||
*/
|
||||
public static function getGroupedByBuffer($ordersIds = array()) {
|
||||
$orders = new PrestaShopCollection('PPOrder');
|
||||
$orders->where('id_order', 'in', $ordersIds);
|
||||
$arr = array();
|
||||
if (!empty($orders)) {
|
||||
foreach ($orders as $order) {
|
||||
$arr[$order->id_buffor]['orders'][] = $order;
|
||||
$arr[$order->id_buffor]['guids'][] = $order->id_shipment;
|
||||
}
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda zwraca przesylke wzgledem id koszyka
|
||||
*/
|
||||
public static function findByCart($idCart, $return_object = true) {
|
||||
|
||||
$row = Db::getInstance()->getRow('
|
||||
SELECT `id_pp_order` as id
|
||||
FROM `' . _DB_PREFIX_ . 'pocztapolskaen_order` pp
|
||||
WHERE pp.`id_cart` = ' . (int) $idCart, false
|
||||
);
|
||||
|
||||
if (isset($row['id'])) {
|
||||
return new self($row['id']);
|
||||
} else {
|
||||
if ($return_object) {
|
||||
$ppOrder = new PPOrder();
|
||||
$ppOrder->id_cart = $idCart;
|
||||
$ppOrder->id_order = 0;
|
||||
$ppOrder->id_shipment = 0;
|
||||
$ppOrder->shipment_number = '';
|
||||
$ppOrder->save();
|
||||
return $ppOrder;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda zwraca zbior powiazany z przesylka
|
||||
*/
|
||||
public function getOrderSet() {
|
||||
$ppOrders = new PrestaShopCollection('PPOrderSet');
|
||||
$ppOrders->where('id_en', '=', $this->id_buffor);
|
||||
return $ppOrders[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda resetuje pola zwiazane z przesylka
|
||||
*/
|
||||
public function clearShipment() {
|
||||
$this->clearOrderShipment();
|
||||
if(!empty($this->pni)){
|
||||
$this->id_shipment = 0;
|
||||
$this->id_buffor = 0;
|
||||
$this->shipment_type = '';
|
||||
$this->send_date = null;
|
||||
$this->shipment_number = '';
|
||||
$this->save();
|
||||
} else {
|
||||
$this->delete();
|
||||
}
|
||||
}
|
||||
|
||||
public function clearOrderShipment(){
|
||||
$order = new Order($this->id_order);
|
||||
$orderCarrier = new OrderCarrier($order->getIdOrderCarrier());
|
||||
if($orderCarrier->tracking_number == $this->shipment_number){
|
||||
$orderCarrier->tracking_number = '';
|
||||
$orderCarrier->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user