return $this->render('couriers');
}
- public function actionDelivery()
+ public function actionDelivery() {
+ return $this->render('delivery');
+ }
+
+ public function actionDelivery2()
{
if (!empty($_REQUEST["umoup"])) {
-<?
-include_once("startup.php");
-include_once("inc/db.php");
-include_once("inc/base_new.php");
-include_once("inc/design_new.php");
-include_once("inc/db2.php");
+<?php
+include_once(dirname(__DIR__, 2) . "/startup.php");
+include_once(dirname(__DIR__, 2) . "/inc/db.php");
+include_once(dirname(__DIR__, 2) . "/inc/base_new.php");
+include_once(dirname(__DIR__, 2) . "/inc/design_new.php");
try {
-include"templates/top.php";
+//include"templates/top.php";
if(!empty($_REQUEST["umoup"])) {
$date1=mktime(0,0,0,date("n"),date("d",time()-86400),date("Y"));
$date2=mktime(0,0,0,date("n"),date("d"),date("Y"));
-include_once"/var/www/www-root/data/www/amo.bazacvetov24.ru/amo/amo_inc.php";
+include_once(dirname(__DIR__, 2) . "/inc/amo/amo_inc.php");
$dt="updated_at";
$statuses=[38932165,142];
-$delivery__date='&filter['.$dt.'][from]='.$unix0.'&filter['.$dt.'][to]='.$date1.'';
+//$delivery__date='&filter['.$dt.'][from]='.$unix0.'&filter['.$dt.'][to]='.$date1.'';
$delivery__date='&filter[custom_fields_values][647935][from]='.$date1.'&filter[custom_fields_values][647935][to]='.$date2.'';
//&filter['.$dt.'][from]='.$date1.'&filter['.$dt.'][to]='.$date2.'
$k++;
echo" <br>$k) Сделка ".$arr0["id"]." lid_id=$lid_id5 ".$arr0["name"]." price= ".$arr0["name"]." status_id=".$arr0["status_id"]." ";
-$dat = $db2::getRow("SELECT status_id, price, id, delivery_date FROM orders_amo WHERE amo_id=? LIMIT 1",[$arr0["id"]]);
+$dat = $db::getRow("SELECT status_id, price, id, delivery_date FROM orders_amo WHERE amo_id=? LIMIT 1",[$arr0["id"]]);
if(empty($dat)) echo"<div> ".$dat["delivery_date"]." ".$dat["status_id"]." Заказа нет в системе ".$dat["id"]." ".$dat["price"]."
</div>";
if($arr0["price"]!=$dat["price"]) {
echo"Сумма заказа не равна ! ".$arr0["price"]."!=".$dat["price"]."";
$z="UPDATE orders_amo SET price='".$arr0["price"]."' WHERE amo_id='".$arr0["id"]."' AND id=$lid_id5 LIMIT 1";
- $db2::sql($z);
+ $db::sql($z);
}
if($arr0["status_id"]==142) {
$z="UPDATE orders_amo SET status_id='".$arr0["status_id"]."', price='".$arr0["price"]."' WHERE amo_id='".$arr0["id"]."' AND id=$lid_id5 LIMIT 1";
// echo"<br>$z";
- $db2::sql($z);
+ $db::sql($z);
}
if(!empty($arr0["id"])) {
$z="UPDATE orders_amo SET store='".$store."', delivery='$delivery' WHERE amo_id='".$arr0["id"]."' LIMIT 1";
- $db2::sql($z);
+ $db::sql($z);
// echo"<br>$z";
}
-$data=$db::getRows("SELECT check_id, type FROM create_checks WHERE date>=NOW() - INTERVAL 17 day AND status='0' AND check_id!=''");
+$data=$db::getRows("SELECT check_id, type FROM create_checks WHERE (date >= NOW() - 17 * INTERVAL '1 day') AND status='0' AND check_id!=''");
foreach($data as $row) {
-$data = $db2::getRows("SELECT status_id, color, name FROM orders_status WHERE pipeline_id='4021495'");
+$data = $db::getRows("SELECT status_id, color, name FROM orders_status WHERE pipeline_id='4021495'");
foreach($data as $row) {
if($row["status_id"]==142) $row["name"]="Успешно";
if($row["status_id"]==143) $row["name"]="Отказ";
$delivery_date=date("Y-m-d");
if(!empty($_POST["lid_id"])) $lid_id=(int)$_POST["lid_id"];
if(!empty($_POST["amo_id"])) $amo_id=(int)$_POST["amo_id"];
-if(!empty($_POST["delivery_date"])) $delivery_date=htmlentities($_POST["delivery_date"]);
-
-
-echo"<form action=\"\" method=post>
-<table><td>
+if(!empty($_POST["delivery_date"])) $delivery_date=htmlentities($_POST["delivery_date"]);
+
+$lid_id = $lid_id ?? '';
+
+echo"<form action=\"\" method=post>";
+echo '<input type="hidden" name="_csrf" value="' . Yii::$app->request->getCsrfToken() . '" />';
+echo "<table><td>
<input type=text name=lid_id value=\"$lid_id\" placeholder=\"ID заказа\" class=\"form-control\" style=\"width:100px;\">
</td><td>
<input type=text name=amo_id value=\"\" placeholder=\"amo ID\" class=\"form-control\" style=\"width:100px;\">
// получаем массив с GUID услуг
$data = $db::getRows("SELECT products_1c.id FROM products_1c RIGHT JOIN products_class ON products_1c.parent_id=products_class.category_id
-AND products_class.tip='services' WHERE 1");
+AND products_class.tip='services' WHERE 1=1");
foreach($data as $row) $services[$row["id"]]=$row["id"];
// массив с гуидами магазинов
foreach($data as $row) $stores_arr[$row["id"]]=$row["name"];
-$data = $db2::getRows("SELECT id, name, adress_amo FROM city_store WHERE 1 ");
+$data = $db::getRows("SELECT id, name, adress_amo FROM city_store WHERE 1=1 ");
foreach($data as $row) {
$store_arr[$row["id"]]=$row["name"];
$storesNameArr[$row["adress_amo"]]=$row["id"];
//$where0 =" AND delivery!='Доставка из магазина' AND delivery!='Самовывоз' ";
$where2="";
-foreach($_REQUEST["statuses"] as $is =>$idf) {
+foreach($_REQUEST["statuses"] ?? [] as $is =>$idf) {
if($idf=='on') $where2 .=" or status_id='$is'";
-}
+}
+ $where0 = $where0 ?? '1 = 1';
$where =" $where0 AND ( status_id='142' $where2) ";
if(!empty($delivery_date)) $where .=" AND delivery_date='$delivery_date' ";
}
-$checkarr= $db::getRows("SELECT * FROM sales WHERE date>=NOW()- INTERVAL 37 day ");
+$checkarr= $db::getRows("SELECT * FROM sales WHERE date >= NOW()- 37 * INTERVAL '1 day' ");
//$cheks_txt=";
foreach($checkarr as $checkr) {
$cheks_txt ="<div class=\"col text-center p-1 m-1 ";
//$cheks_txt .="</div>";
-$data4= $db::getRows("SELECT * FROM create_checks WHERE date>=NOW()- INTERVAL 37 day ");
+$data4= $db::getRows("SELECT * FROM create_checks WHERE date >= NOW()- 37 * INTERVAL '1 day' ");
foreach($data4 as $row4) $create_check_arr[$row4["order_id"]][]=$row4;
- echo"SELECT *,DATE_FORMAT(delivery_date, '%d.%m.%Y') as dated FROM orders_amo
-WHERE 1 $where AND delivery_date <= NOW() order by delivery_date DESC, updated_at DESC LIMIT 1750 ";
-
+ echo"SELECT *, TO_CHAR(delivery_date, 'DD.MM.YYYY') as dated FROM orders_amo
+WHERE $where AND delivery_date <= NOW() order by delivery_date DESC, updated_at DESC LIMIT 1750 ";
-$data = $db2::getRows("SELECT *,DATE_FORMAT(delivery_date, '%d.%m.%Y') as dated FROM orders_amo
-WHERE 1 $where AND delivery_date <= NOW() order by delivery_date DESC, updated_at DESC LIMIT 1750");
+$data = $db::getRows("SELECT *, TO_CHAR(delivery_date, 'DD.MM.YYYY') as dated FROM orders_amo
+WHERE $where AND delivery_date <= NOW() order by delivery_date DESC, updated_at DESC LIMIT 1750");
+var_dump($data); die;
echo"<table class=\"table table-hover\">";
foreach($data as $row) {
$cheks_txt ="";
echo"</td><td><b>".$row["price"]."</b> yes=$yes ".$row["store"]." ".$row["delivery_adress"]."";
-$itog=$itog+$row["price"];
+$itog=($itog ?? 0)+$row["price"];
$in_orders[]=$row["amo_id"];
}
-
+$itog = $itog ?? 0;
+$cnt = $cnt ?? 0;
echo"</tbody></table>Итого $itog руб. всего $cnt ";
</div>
</div>
-';
-
+';
+
- include"templates/bottom.php";
+include_once dirname(__DIR__, 2) . '/templates/bottom_light.php';
\ No newline at end of file
<?php
-use yii\data\ActiveDataProvider;
-use yii\grid\GridView;
-use yii\helpers\Html;
-use yii\helpers\Url;
-use yii\web\View;
-use yii_app\records\OrdersAmo;
-use yii_app\records\OrdersAmoSearch;
+chdir(__DIR__ . '/../../');
-/**
- * @var $this View
- * @var $searchModel OrdersAmoSearch
- * @var $dataProvider ActiveDataProvider
- */
-
-$this->registerJs(<<<JS
- function ajax_return_check(sales_check) {
- jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('');
-
- $.ajax({
- url: '/orders/ajax_return_check/',
- method: 'post',
- dataType: 'html',
- data: { sales_check: ''+sales_check+''},
- success: function(data){
- $('#modal-7 .modal-body').html(data);
- $('#check__'+sales_check+'').remove();
- }});
- }
-JS, $this::POS_HEAD);
-?>
-
-<div class="p-8">
- <h1>Заказы из amo и чеки в магазинах <a href="/content/Amo142/?status_id=142&date1='<?= date("Y-m-d", time())?>'&date2='<?= date("Y-m-d", time())?>'" target="new" class="btn btn-info">
- импортировать заказы из amo с датой доставки <?= date("d.m.Y", time()) ?> </a></h1>
- <a href="?umoup=1" class="btn btn-info">синхронизировать заказы с amo</a>
- <?= GridView::widget([
- 'filterModel' => $searchModel,
- 'dataProvider' => $dataProvider,
- 'options' => [
- 'style' => [
- 'overflow-x' => 'scroll'
- ]
- ],
- 'columns' => [
- [
- 'label' => 'Информация о доставке',
- 'format' => 'raw',
- 'contentOptions' => function (OrdersAmo $model) {
- return [
- 'class' => ($model->sales ? 'table-success' : 'table-danger'),
- ];
- },
- 'value' => function (OrdersAmo $model) {
-
- $div = '<div class="w-100 text-center">';
-
- $div .= Html::a(
- 'Заказ в AMO',
- 'https://bazacvetov24.amocrm.ru/leads/detail/' . $model->amo_id,
- [
- 'target' => 'new' . $model->amo_id
- ]
- );
-
- $div .= '</div>';
-
- $div .= '<div>Дата доставки: <span class="" >' . $model->delivery_date . '</span></div>';
-
- $div .= '<div>Магазин: <span class="" >' . ($model->storeObj->name ?? '-') . '</span></div>';
-
- $div .= '<div> Доставка: <span class="">' . $model->delivery . '</span></div>';
-
- $div .= '<div> Адрес доставки: <span class="">' . $model->delivery_adress . '</span></div>';
-
- return $div;
- }
- ],
- [
- 'label' => 'Статус',
- 'format' => 'raw',
- 'value' => function (OrdersAmo $model) {
- if ($model->status) {
- return '<h3><span class="badge" style="background-color: ' . $model->status->color .'">' . $model->status->name .'</span></h3>';
- } else {
- return '<h3><span class="badge bg-danger">' . $model->status_id .'</span></h3>';
- }
-
- }
- ],
- [
- 'label' => '',
- 'format' => 'raw',
- 'value' => function (OrdersAmo $model) {
- if ($model->floristObj) {
- $div = '<div>Флорист: ' . ($model->floristObj->name ?? '-') . '</div>';
- } else {
- $div = '<div class="bg-danger">Флорист: ' . 'Укажите верного ID флориста в АМО! И обновите данные по заказам - иначе чек не пробьется!
-У каждого чека должен быть актуальный продавец' . '</div>';
- }
-
- $div .= '<div>Курьер: ' . ($model->courierObj->name ?? '-') . '</div>';
- return $div;
- }
- ],
- [
- 'label' => 'Информация по чекам',
- 'format' => 'raw',
- 'value' => function (OrdersAmo $model) {
- $table = '<table class="table text-center"><thead><td>GUID</td><td>Операция</td><td>Дата</td><td>Кто провел чек</td><td></td></thead><tbody>';
-
- if (!$model->sales) {
- $tr = '<tr class="table-danger"><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>';
- $table .= $tr;
- }
-
- foreach ($model->sales as $sale) {
- if ($sale->operation === 'Продажа') {
- $tr = '<tr class="table-success"><td>' . $sale->id . '</td><td>' . $sale->operation . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td><button class="btn btn-danger" onclick="ajax_return_check(\'' . $sale->id . '\')">Сделать возврат</button></td></tr>';
-
- } else if ($sale->operation === 'Возврат') {
- $tr = '<tr class="table-warning"><td>' . $sale->id . '</td><td>' . $sale->operation . ': ' . ($sale->sales_check != '' ? $sale->sales_check : '-') . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td></td></tr>';
-
- } else {
- $tr = '<tr class="table-info"><td>' . $sale->id . '</td><td>' . $sale->operation . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td></td></tr>';
-
- }
-
-
-
- $table .= $tr;
- }
-
- $table .= '</tbody></table>';
-
- return $table;
- }
- ],
- ]
- ]) ?>
-</div>
-<!-- MODAL -->
-<div class="modal fade" id="modal-7">
- <div class="modal-dialog modal-dialog-centered text-center" role="document">
- <div class="modal-content modal-content-demo">
- <div class="modal-header">
- <h6 class="modal-title"></h6><button aria-label="Close" class="btn-close" data-bs-dismiss="modal" type="button"><span aria-hidden="true">×</span></button>
- </div>
- <div class="modal-body">
-
- </div>
- <div class="modal-footer">
-
- <button class="btn btn-secondary" data-bs-dismiss="modal" type="button">закрыть</button>
- </div>
- </div>
- </div>
-</div>
\ No newline at end of file
+include 'modul/orders/delivery.php';
--- /dev/null
+<?php
+
+use yii\data\ActiveDataProvider;
+use yii\grid\GridView;
+use yii\helpers\Html;
+use yii\helpers\Url;
+use yii\web\View;
+use yii_app\records\OrdersAmo;
+use yii_app\records\OrdersAmoSearch;
+
+/**
+ * @var $this View
+ * @var $searchModel OrdersAmoSearch
+ * @var $dataProvider ActiveDataProvider
+ */
+
+$this->registerJs(<<<JS
+ function ajax_return_check(sales_check) {
+ jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('');
+
+ $.ajax({
+ url: '/orders/ajax_return_check/',
+ method: 'post',
+ dataType: 'html',
+ data: { sales_check: ''+sales_check+''},
+ success: function(data){
+ $('#modal-7 .modal-body').html(data);
+ $('#check__'+sales_check+'').remove();
+ }});
+ }
+JS, $this::POS_HEAD);
+?>
+
+<div class="p-8">
+ <h1>Заказы из amo и чеки в магазинах <a href="/content/Amo142/?status_id=142&date1='<?= date("Y-m-d", time())?>'&date2='<?= date("Y-m-d", time())?>'" target="new" class="btn btn-info">
+ импортировать заказы из amo с датой доставки <?= date("d.m.Y", time()) ?> </a></h1>
+ <a href="?umoup=1" class="btn btn-info">синхронизировать заказы с amo</a>
+ <?= GridView::widget([
+ 'filterModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ 'options' => [
+ 'style' => [
+ 'overflow-x' => 'scroll'
+ ]
+ ],
+ 'columns' => [
+ [
+ 'label' => 'Информация о доставке',
+ 'format' => 'raw',
+ 'contentOptions' => function (OrdersAmo $model) {
+ return [
+ 'class' => ($model->sales ? 'table-success' : 'table-danger'),
+ ];
+ },
+ 'value' => function (OrdersAmo $model) {
+
+ $div = '<div class="w-100 text-center">';
+
+ $div .= Html::a(
+ 'Заказ в AMO',
+ 'https://bazacvetov24.amocrm.ru/leads/detail/' . $model->amo_id,
+ [
+ 'target' => 'new' . $model->amo_id
+ ]
+ );
+
+ $div .= '</div>';
+
+ $div .= '<div>Дата доставки: <span class="" >' . $model->delivery_date . '</span></div>';
+
+ $div .= '<div>Магазин: <span class="" >' . ($model->storeObj->name ?? '-') . '</span></div>';
+
+ $div .= '<div> Доставка: <span class="">' . $model->delivery . '</span></div>';
+
+ $div .= '<div> Адрес доставки: <span class="">' . $model->delivery_adress . '</span></div>';
+
+ return $div;
+ }
+ ],
+ [
+ 'label' => 'Статус',
+ 'format' => 'raw',
+ 'value' => function (OrdersAmo $model) {
+ if ($model->status) {
+ return '<h3><span class="badge" style="background-color: ' . $model->status->color .'">' . $model->status->name .'</span></h3>';
+ } else {
+ return '<h3><span class="badge bg-danger">' . $model->status_id .'</span></h3>';
+ }
+
+ }
+ ],
+ [
+ 'label' => '',
+ 'format' => 'raw',
+ 'value' => function (OrdersAmo $model) {
+ if ($model->floristObj) {
+ $div = '<div>Флорист: ' . ($model->floristObj->name ?? '-') . '</div>';
+ } else {
+ $div = '<div class="bg-danger">Флорист: ' . 'Укажите верного ID флориста в АМО! И обновите данные по заказам - иначе чек не пробьется!
+У каждого чека должен быть актуальный продавец' . '</div>';
+ }
+
+ $div .= '<div>Курьер: ' . ($model->courierObj->name ?? '-') . '</div>';
+ return $div;
+ }
+ ],
+ [
+ 'label' => 'Информация по чекам',
+ 'format' => 'raw',
+ 'value' => function (OrdersAmo $model) {
+ $table = '<table class="table text-center"><thead><td>GUID</td><td>Операция</td><td>Дата</td><td>Кто провел чек</td><td></td></thead><tbody>';
+
+ if (!$model->sales) {
+ $tr = '<tr class="table-danger"><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>';
+ $table .= $tr;
+ }
+
+ foreach ($model->sales as $sale) {
+ if ($sale->operation === 'Продажа') {
+ $tr = '<tr class="table-success"><td>' . $sale->id . '</td><td>' . $sale->operation . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td><button class="btn btn-danger" onclick="ajax_return_check(\'' . $sale->id . '\')">Сделать возврат</button></td></tr>';
+
+ } else if ($sale->operation === 'Возврат') {
+ $tr = '<tr class="table-warning"><td>' . $sale->id . '</td><td>' . $sale->operation . ': ' . ($sale->sales_check != '' ? $sale->sales_check : '-') . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td></td></tr>';
+
+ } else {
+ $tr = '<tr class="table-info"><td>' . $sale->id . '</td><td>' . $sale->operation . '</td><td>' . $sale->date . '</td><td>' . $sale->sellerById->name . '</td><td></td></tr>';
+
+ }
+
+
+
+ $table .= $tr;
+ }
+
+ $table .= '</tbody></table>';
+
+ return $table;
+ }
+ ],
+ ]
+ ]) ?>
+</div>
+<!-- MODAL -->
+<div class="modal fade" id="modal-7">
+ <div class="modal-dialog modal-dialog-centered text-center" role="document">
+ <div class="modal-content modal-content-demo">
+ <div class="modal-header">
+ <h6 class="modal-title"></h6><button aria-label="Close" class="btn-close" data-bs-dismiss="modal" type="button"><span aria-hidden="true">×</span></button>
+ </div>
+ <div class="modal-body">
+
+ </div>
+ <div class="modal-footer">
+
+ <button class="btn btn-secondary" data-bs-dismiss="modal" type="button">закрыть</button>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file