From: kirostumm Date: Wed, 10 Jan 2024 08:50:11 +0000 (+0300) Subject: api orders update X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=6b7c95540648cd384e0dfb7a1e765174151a6c3e;p=yii-erp24%2F.git api orders update --- diff --git a/erp24/controllers/OrdersController.php b/erp24/controllers/OrdersController.php index f323464..91536a9 100644 --- a/erp24/controllers/OrdersController.php +++ b/erp24/controllers/OrdersController.php @@ -5,9 +5,11 @@ namespace app\controllers; include_once('../inc/base_new.php'); include_once('../inc/amo_inc.php'); +use Exception; use Yii; use yii\web\Controller; use yii_app\records\CreateChecks; +use yii_app\records\ExportImportTable; use yii_app\records\OrdersAmo; use yii_app\records\OrdersAmoSearch; @@ -49,8 +51,8 @@ class OrdersController extends Controller ->where([ 'amo_id' => $arr0["id"] ]) - ->asArray() - ->one(); + ->asArray() + ->one(); if (empty($dat)) echo "
" . $dat["delivery_date"] . " " . $dat["status_id"] . " Заказа нет в системе " . $dat["id"] . " " . $dat["price"] . "
"; @@ -152,4 +154,143 @@ class OrdersController extends Controller } } + + public function actionAjax_create_check_json() + { + if (!empty($_REQUEST["order_id"])) { + $order_id = (int)$_REQUEST["order_id"]; + + + $seller_id = "3d8f7db1-8d67-11eb-bf83-b42e991aff6c"; // продавец + $store_id = "dbd70103-2c7b-11e9-9b87-c85b76f0e893"; // аэродромная + $kkm_id = "d0d6c742-4db8-11ea-b917-0018f353130f"; //Мочалина Г. М. ИП(Центральный склад) ?? + $payments_type_id = "cd891514-855f-11ea-a625-40618658b055"; // оплата на сайте - старый cd891514-855f-11ea-a625-40618658b055 + $terminal_id = "7909401c-703b-11ea-8b4b-0018f353130f"; //Сбербанк ПАО/Мочалина Г. М. ИП 7909401c-703b-11ea-8b4b-0018f353130f + + $payments_array = [ + "Оплата на сайте (Visa, Mastercard, Мир)" => array("payments_type_id" => "cd891514-855f-11ea-a625-40618658b055", "kkm_id" => "d0d6c742-4db8-11ea-b917-0018f353130f", "terminal_id" => "7909401c-703b-11ea-8b4b-0018f353130f"), // 09 Доставка Букетов + "Перевод на карту Сбербанк" => array("payments_type_id" => "a69ea4d1-feff-11e8-8ae7-1c6f659fb563", "kkm_id" => "d0d6c742-4db8-11ea-b917-0018f353130f"), //, "terminal_id"=>"a22aeb16-1c6a-11ec-88f6-fc349715dc38" //payments_type_id = наличные. kkm_id 09 Доставка + "Наличными курьеру (+100 руб.)" => array("payments_type_id" => "a69ea4d1-feff-11e8-8ae7-1c6f659fb563", "kkm_id" => "d0d6c742-4db8-11ea-b917-0018f353130f"), + "PayPal" => array("payments_type_id" => "cd891514-855f-11ea-a625-40618658b055", "kkm_id" => "a22aeb16-1c6a-11ec-88f6-fc349715dc38", "terminal_id" => "a22aeb16-1c6a-11ec-88f6-fc349715dc38") + ]; + + + try { + $row = OrdersAmo::find() + ->where([ + 'AND', + ['NOT IN', 'delivery', ['Самовывоз', 'Доставка из магазина']], + ['amo_id' => $order_id] + ]) + ->orderBy([ + 'delivery_date' => SORT_DESC + ]) + ->asArray() + ->one(); + + } catch (Exception $e) { + var_dump($e); + } + + echo " amo_id = " . $row["amo_id"] . " Вид оплаты " . $row["payment_type_id"] . " " . $row["pay"] . " " . $row["pay_text"] . " florist_id=" . $row["florist_id"] . " seller_id =$seller_id "; + + + if ($row) { + + // по ID сотрудника узнаем его GUID + $seller_id = ExportImportTable::find() + ->select([ + 'export_val' + ]) + ->where([ + 'AND', + ['entity' => 'admin'], + ['export_id' => 1], + ['entity_id' => $row['florist_id']] + ]) + ->asArray() + ->one(); + + $products = []; + $products_json = json_decode($row["products_json"], true); + if (!empty($products_json)) { + $amount_total = 0; + echo ""; + foreach ($products_json as $k => $arp) { + foreach ($arp["items"] as $item) { + $a = []; + $a["product_id"] = $item["guid"]; + if (!empty($item["color_id"])) $a["color_id"] = $item["color_id"]; + if (!empty($item["quantity"])) $a["quantity"] = round($item["quantity"], 2); + $a["price"] = round($item["price"], 2);; + if (!empty($seller_id)) $a["seller_id"] = $seller_id; + $products[] = $a; + $amount_total += $a["price"] * $a["quantity"]; + + echo " + + + + "; + } + + } + echo '
" . str_replace(".00", "", $item["quantity"]) . "" . $item["name"] . "" . $item["color_id"] . "" . str_replace(".00", "", $item["price"]) . "

+Итого ' . $amount_total . ' руб.
'; + + } +// ставим в соответствие вид оплаты + + $date = CreateChecks::find() + ->select([ + 'date' => 'UNIX_TIMESTAMP(date)' + ]) + ->where([ + 'AND', + ['order_id' => $lid_id], + ['type' => 'Продажа'] + ]) + ->orderBy([ + 'UNIX_TIMESTAMP(date)' => SORT_DESC + ]) + ->limit(1) + ->asArray() + ->one(); + + $error = ""; + if ($date > (time() - 60) and !empty($date)) $error = "Чек не создан так как чек с таким заказом уже создан"; + if (!empty($error)) echo($error); + if (empty($error)) { + if (!empty($payments_array[$row["payment_type_id"]])) { + + $pays_arr = []; + $payments = []; + $pays_arr["type_id"] = $payments_array[$row["payment_type_id"]]["payments_type_id"]; + if (!empty($terminal_id)) { + $pays_arr["terminal_id"] = $terminal_id; + } + $pays_arr["summ"] = round($row["price"], 2); + $payments[] = $pays_arr; + + try { + $check_id = create_guid_my("01", $order_id); + if (empty($seller_id)) $seller_id = "00000000-0000-0000-0000-000000000000"; + $check = new CreateChecks(['check_id' => $check_id, 'date' => date('Y-m-d H:i:s'), 'kkm_id' => $kkm_id, 'seller_id' => $seller_id, 'store_id' => $store_id, 'type' => "Продажа", 'order_id' => $order_id, 'items' => json_encode($products, JSON_UNESCAPED_UNICODE), 'payments' => json_encode($payments, JSON_UNESCAPED_UNICODE)]); + + echo "

Чек поставлен в очередь на пробитие в 1с $check_id

"; + } catch (Exception $e) { + var_dump($e); + } + + } else { + $error = "Тип оплаты не определен - чек не возможно создать"; + + } + } + echo $error; + + } + + } else echo("Отсуствует ID заказа"); + } } \ No newline at end of file