]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
move orders delivery from old php
authorAlexander Smirnov <fredeom@mail.ru>
Wed, 10 Apr 2024 07:26:20 +0000 (10:26 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Wed, 10 Apr 2024 07:26:20 +0000 (10:26 +0300)
erp24/controllers/OrdersController.php
erp24/modul/orders/delivery.php
erp24/views/orders/delivery.php
erp24/views/orders/delivery2.php [new file with mode: 0644]

index a013ef2cde14f362ede0e044e1d4cad889f946a2..ae144847860409a05c607857319a818ad6b25fd8 100644 (file)
@@ -19,7 +19,11 @@ class OrdersController extends Controller
         return $this->render('couriers');
     }
 
-    public function actionDelivery()
+    public function actionDelivery() {
+        return $this->render('delivery');
+    }
+
+    public function actionDelivery2()
     {
         if (!empty($_REQUEST["umoup"])) {
 
index e762b84be5dee601bf6cf811503d3d5d15bb6c26..125fb7748774d56ff85ef4a2d3eff86e2c21dc45 100644 (file)
@@ -1,25 +1,24 @@
-<?
-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.'
 
@@ -40,7 +39,7 @@ foreach($arr0["custom_fields_values"] as $fid => $arr20) {
 $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>";
 
@@ -48,7 +47,7 @@ if(empty($dat)) echo"<div> ".$dat["delivery_date"]." ".$dat["status_id"]."  За
 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);
     
 }
 
@@ -58,7 +57,7 @@ if($dat["status_id"]!=$arr0["status_id"]) {
 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);
     
 }
     
@@ -67,7 +66,7 @@ if($arr0["status_id"]==142)  {
 
 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"; 
 }
     
@@ -80,7 +79,7 @@ if(!empty($arr0["id"])) {
 
 
 
-$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) {
  
  
@@ -117,7 +116,7 @@ $usersArr = $db::mapping("SELECT id,name FROM products_1c WHERE tip='admin'");
 
     
     
-$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"]="Отказ";
@@ -128,11 +127,13 @@ foreach($data as $row) {
  $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;\">
@@ -164,7 +165,7 @@ foreach($data as $row) $balancesAll[$row["store_id"]][$row["product_id"]]=$row["
 
 // получаем массив с 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"];
 
  // массив с гуидами магазинов   
@@ -182,7 +183,7 @@ $data = $db::getRows("SELECT id, name FROM products_1c WHERE tip='city_store' ")
 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"];    
@@ -208,10 +209,11 @@ foreach($data as $row) {
 //$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' ";   
@@ -219,7 +221,7 @@ foreach($_REQUEST["statuses"] as $is =>$idf)  {
 }
 
    
-$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 "; 
@@ -237,17 +239,17 @@ $sale[$checkr["order_id"]] .=$cheks_txt;
 //$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 ="";
@@ -342,7 +344,7 @@ if(empty($row["florist_id"])) echo"<span class=\"btn btn-danger\">флорист
 
 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"];
 
 
@@ -533,7 +535,8 @@ echo"</div></td><td>$pay_text</td></tr>";
    
 
 }
-
+$itog = $itog ?? 0;
+$cnt = $cnt ?? 0;
 echo"</tbody></table>Итого $itog руб. всего $cnt ";   
  
 
@@ -630,10 +633,10 @@ $.ajax({
                        </div>
                </div>
 
-'; 
+';
+
 
- include"templates/bottom.php";
+include_once dirname(__DIR__, 2) . '/templates/bottom_light.php';
     
     
     
\ No newline at end of file
index e008ea432064907fa496dd8bb30536cb1e5ca3ef..dc4c317e4e26d6e6f301245680f102d1f814c2ee 100644 (file)
@@ -1,159 +1,5 @@
 <?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">&times;</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';
diff --git a/erp24/views/orders/delivery2.php b/erp24/views/orders/delivery2.php
new file mode 100644 (file)
index 0000000..e008ea4
--- /dev/null
@@ -0,0 +1,159 @@
+<?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">&times;</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