Current File : /var/www/vinorea/modules/ipexportimport/classes/import/order/EIAMessage.php |
<?php
/**
*
* NOTICE OF LICENSE
*
* @author SmartPresta <tehran.alishov@gmail.com>
* @copyright 2024 SmartPresta
* @license Commercial License
*/
if (!defined('_PS_VERSION_')) {
exit;
}
class EIAMessage
{
public $id_cart;
public $id_order;
public $id_customer;
public $baseOrderData;
public $id_message;
public $row;
public $id_process;
public $validateOnly;
public function __construct($id_order = null, $id_cart = null, $id_customer = null, $baseOrderData = null, $row = null, $id_process = null, $validateOnly = false)
{
$this->id_cart = (int) $id_cart;
$this->id_order = (int) $id_order;
$this->id_customer = (int) $id_customer;
$this->baseOrderData = $baseOrderData;
$this->row = $row;
$this->id_process = $id_process;
$this->validateOnly = $validateOnly;
}
public function save()
{
$id_message = $this->getIdMessage();
$obj = new Message((int) $id_message);
if (isset($this->baseOrderData['message'])) {
$messages = explode(';;', $this->baseOrderData['message']);
foreach ($messages as $message) {
$mes_parts = explode('!', $message, 2);
$obj->id_order = $this->id_order;
$obj->id_customer = $this->id_customer;
$obj->private = (int) trim($mes_parts[0]);
if (isset($mes_parts[1])) {
$obj->message = ltrim($mes_parts[1]);
} else {
$obj->private = 0;
$obj->message = trim($mes_parts[0]);
}
$obj->id_employee = 0;
if (($error = $obj->validateFields(false, true)) !== true) {
throw new PrestaShopException("Error: $error. ID: $this->id_order. Row in file: $this->row.");
}
$this->validateOnly || $obj->save();
}
}
}
private function getIdMessage()
{
$sql = "
SELECT *
FROM " . _DB_PREFIX_ . "message as o
WHERE o.id_order = " . (int) $this->id_order . "
AND o.id_customer = " . (int) $this->id_customer;
$message = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql);
if (isset($message['id_message']) && $message['id_message']) {
return $message['id_message'];
}
return false;
}
}