/** * Выполняет операцию над отмеченными заказами в админке. * @return boolean */ public function operationOrder() { $model = new Models_Order(); $operation = $_POST['operation']; if (empty($_POST['orders_id'])) { $this->messageError = 'Необходимо отметить заказы!'; return false; } if ($operation == 'delete') { foreach ($_POST['orders_id'] as $orderId) { $model->refreshCountProducts($orderId, 4); } $result = $model->deleteOrder(true, $_POST['orders_id']); } elseif (strpos($operation, 'status_id') === 0 && !empty($_POST['orders_id'])) { foreach ($_POST['orders_id'] as $orderId) { $result = $model->updateOrder(array('id' => $orderId, 'status_id' => substr($operation, -1, 1))); } } $this->data = array('count' => $model->getNewOrdersCount()); return $result; }
public function ordersUpdate($filename) { // вычисляем какой из имеющихся файлов в папке обмена относится к заказам. $sep = DIRECTORY_SEPARATOR; $dirname = dirname(__FILE__); $realDocumentRoot = str_replace($sep . 'mg-core' . $sep . 'controllers', '', $dirname); $files = scandir($realDocumentRoot . '/tempcml/'); foreach ($files as $name) { if (end(explode(".", $name)) == 'xml' && $name != "import.xml" && $name != "offers.xml") { $filename = $name; } } $orderModel = new Models_Order(); $arrayStatus = array('Новый' => 0, 'Подтвержден' => 1, 'Собран' => 6, 'Отгружен' => 3, 'Доставлен' => 5, 'Возврат' => 5, 'Отменен' => 4, '[F] Доставлен' => 5, '[N] Принят' => 0); $xml = simplexml_load_file('tempcml/' . $filename); foreach ($xml->Документ as $order) { $orderId = $order->Ид; $orderNumber = $order->Номер; $orderStatusId = ''; foreach ($order->ЗначенияРеквизитов->ЗначениеРеквизита as $item) { //if ($item->Наименование == "Номер по 1С") { // $orderNumber = $item->Значение; //} $res = DB::query("SELECT id FROM " . PREFIX . "order WHERE number = " . DB::quote($orderNumber)); if ($row = DB::fetchAssoc($res)) { $orderId = $row['id']; } if ($item->Наименование == "Статус заказа") { $orderStatus = $item->Значение; $orderStatusId = $arrayStatus[(string) $orderStatus]; } //if ($item->Наименование == "Проведен") { // $passed = $item->Значение == "true"?1:0; //} if ($item->Наименование == "ПометкаУдаления") { $delete = $item->Значение == "true" ? 1 : 0; if ($delete) { $orderModel->deleteOrder($orderId); } } } if (empty($orderId)) { continue; } //echo "<br>".$orderId.'['.$orderNumber.']['.$orderId1c.']='.$orderStatus.'['.$orderStatusId.']'; $arrayOrder = array('id' => $orderId, 'status_id' => $orderStatusId); $orderModel->updateOrder($arrayOrder); } unlink($realDocumentRoot . '/tempcml/' . $filename); }