]> gitweb.erp-flowers.ru Git - yii-erp24/.git/commitdiff
add bonus/stat during moving from pure php to yii
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 21 Dec 2023 10:00:22 +0000 (13:00 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 21 Dec 2023 10:00:22 +0000 (13:00 +0300)
erp24/actions/bonus/StatAction.php [new file with mode: 0644]
erp24/controllers/BonusController.php [new file with mode: 0644]
erp24/views/bonus/stat.php [new file with mode: 0644]

diff --git a/erp24/actions/bonus/StatAction.php b/erp24/actions/bonus/StatAction.php
new file mode 100644 (file)
index 0000000..a3db19c
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+namespace yii_app\actions\bonus;
+
+use yii\base\Action;
+
+class StatAction extends Action
+{
+    public function run() {
+        return $this->controller->render('stat');
+    }
+}
\ No newline at end of file
diff --git a/erp24/controllers/BonusController.php b/erp24/controllers/BonusController.php
new file mode 100644 (file)
index 0000000..226735a
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+namespace app\controllers;
+
+class BonusController extends \yii\web\Controller
+{
+
+    public function actions()
+    {
+        return [
+            'stat' => \yii_app\actions\bonus\StatAction::class,
+        ];
+    }
+
+}
diff --git a/erp24/views/bonus/stat.php b/erp24/views/bonus/stat.php
new file mode 100644 (file)
index 0000000..07acd18
--- /dev/null
@@ -0,0 +1,189 @@
+<?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");
+include_once(dirname(__DIR__, 2) . "/inc/uni2.php");
+include_once(dirname(__DIR__, 2) . "/inc/bonus.php");
+
+error_reporting(E_ALL ^ E_NOTICE);
+
+$data = $db::getRows("SELECT id, name FROM admin ");
+foreach ($data as $row)  $user_arr[$row["id"]]=$row["name"];
+
+$data = $db::getRows("SELECT id, name FROM city_store ");
+foreach ($data as $row)  $storearr[$row["id"]]=$row["name"];
+
+
+$date1=date("Y-m-d",time()-86400*13);
+$date2=date("Y-m-d",time());
+
+if(!empty($_REQUEST["created_at1"])) $date1=htmlentities($_REQUEST["created_at1"]);
+if(!empty($_REQUEST["created_at2"])) $date2=htmlentities($_REQUEST["created_at2"]);
+
+$where="  users_bonus.date>='$date1 00:00:00' AND users_bonus.date<='$date2 23:59:59'";
+
+if(!empty($_REQUEST["store_id"]) and $_REQUEST["store_id"]!="-1") { $store_id=intval($_REQUEST["store_id"]);$where .=" AND users_bonus.store_id='$store_id'";}
+if(!empty($_REQUEST["tip"]) and $_REQUEST["tip"]!="-1") { $tip=htmlentities($_REQUEST["tip"]);$where .=" AND users_bonus.tip='$tip'";}
+if(!empty($_REQUEST["phone"])) { $phone=htmlentities($_REQUEST["phone"]);$where .=" AND users_bonus.phone LIKE '%$phone%'";}
+if(!empty($_REQUEST["name"])) { $name_s=htmlentities($_REQUEST["name"]);$where .=" AND users_bonus.name LIKE '%$name_s%'";}
+if(!empty($_REQUEST["lid_id"])) { $lid_id_s=intval($_REQUEST["lid_id"]);$where .=" AND users_bonus.lid_id LIKE '%$lid_id_s%'";}
+
+
+
+echo"
+<form method=post role=\"form\" class=\"form-horizontal\" action=\"\">
+<input type=\"hidden\" name=\"_csrf\" value=\"" . Yii::$app->request->getCsrfToken() . "\" />
+<table><tbody>
+<tr><td><select name=tip class=\"form-control\">
+<option value=\"-1\""; if($store_id=="-1") echo" selected"; echo">-все-</option>
+<option value=\"minus\""; if($tip=="minus") echo" selected"; echo">списания</option>
+<option value=\"plus\""; if($tip=="plus") echo" selected"; echo">начисления</option>
+</select>
+</td><td>
+<input type=date style=\"width:150px;\" class=\"form-control datetime\" value=\"$date1\" name=created_at1>
+</td><td>
+<input type=date  style=\"width:150px;\" class=\"form-control datetime\" value=\"$date2\" name=created_at2>
+</td><td>
+<select name=store_id  style=\"width:120px;\" class=\"form-control\">
+<option value=\"-1\""; if($store_id=="-1") echo" selected"; echo">-все-</option>
+<option value=\"0\""; if($store_id=="0") echo" selected"; echo">-без -</option>";
+
+foreach($storearr as $id => $name) { echo"<option value=$id"; if($id==$store_id) echo" selected"; echo">$name</option>";}
+echo"</select>
+</td><td>
+<select name=admin_id  style=\"width:120px;\" class=\"form-control\">
+<option value=\"-1\""; if($admin_id=="-1") echo" selected"; echo">-все-</option>
+<option value=\"0\""; if($admin_id=="0") echo" selected"; echo">-без -</option>";
+foreach($user_arr as $id => $name) { echo"<option value=$id"; if($id==$admin_id) echo" selected"; echo">$name</option>";}
+echo"</select></td></tr></tbody></table>
+
+<table><tbody><td><input type=text name=phone value=\"$phone\" class=\"form-control\" placeholder=\"поиск по телефону\"></td><td>
+<input type=text name=name value=\"$name_s\" class=\"form-control\" placeholder=\"поиск по названию\"></td><td>
+<input type=text name=lid_id value=\"$lid_id_s\" class=\"form-control\" placeholder=\"номер заказа\"></td><td>
+<button type=submit class=\"btn btn-success\" name=show>поиск</button></td></tbody></table></form>";
+
+
+
+
+
+//$data = $db::getRows("SELECT *,users.phone as phone_user, DATE_FORMAT(users_bonus.date,'%d.%m.%Y') as date_t  FROM users_bonus  LEFT JOIN  users ON (users_bonus.user_id=users.id AND ($where) ) order by users_bonus.date limit 300");
+
+$data = $db::getRows("SELECT *, DATE_FORMAT(date,'%d.%m.%Y') as date_t  FROM users_bonus WHERE $where order by date_t, phone DESC, bonus asc, tip ASC limit 800");
+echo"<h1>Движения в бонусной программе Выбрано ".count($data)."</h1> ";
+echo"<hr><table class=\"table table-bordered table-hover\">
+<thead><th width=110>бонусы</th><th width=70>дата</th><th width=130>магазин</th><th width=200>сотрудник</th><th>наименование</th></thead><tbody>";
+foreach ($data as $row)  {
+
+
+
+    if($row["tip"]=="plus") {$tip="+"; $store_arr_bonus[$row["store_id"]]["plus"]=$store_arr_bonus[$row["store_id"]]["plus"]+$row["bonus"];}
+    else { $tip="-"; $store_arr_bonus[$row["store_id"]]["minus"]=$store_arr_bonus[$row["store_id"]]["minus"]+$row["bonus"];  }
+    echo'<tr';
+    if(in_array($row["phone"],$phones[$row["tip"]] ?? []))  echo' class="bg-danger"'; echo'><td>';
+
+
+//echo'<span id=his'.$row["id"].' onclick="ajax_bonus_remove('.$row["id"].')" class="btn btn-sm btn-danger">X</span>';
+
+    echo ''.$tip.' <b>'.$row["bonus"].'</b></td><td>'.$row["date_t"].'</td><td>'.$store_arr[$row["store_id"]].'</td><td>'.$user_arr[$row["admin_id"]].'</td><td>'.$row["name"].' '.$row["phone"].' ';
+    if(!empty($row["referal_id"])) echo 'referal_id='.$row["referal_id"];
+
+    echo'</td></tr>';
+
+    $phones[$row["tip"]][]=$row["phone"];
+}
+echo'</tbody></table>';
+
+
+
+
+
+$data = $db::getRows("SELECT sum(bonus) as bonuss, count(*) as cnt, store_id,phone FROM  users_bonus WHERE tip='minus' AND date>='$date1 00:00:00' AND date<='$date2 23:59:59' group by user_id, store_id, phone  order by cnt DESC");
+echo"<h1>Количество покупок клиента за период</h1>";
+echo"<hr><table class=\"table table-bordered table-hover\">
+<thead><th width=70>кол-во списаний</th><th width=70>бонусы</th><th width=130>магазин</th><th width=200>ID клиента</th></thead><tbody>";
+foreach ($data as $row)  {
+    echo"<tr><td>".$row["cnt"]."</td><td>".$row["bonuss"]."</td><td>".$store_arr[$row["store_id"]]."</td><td><a href=\"users.php?go=user_history&phone=".$row["phone"]."\" target=_blank class=\"btn btn-sm\">".$row["phone"]."</a></td></tr>";
+
+}
+echo'</tbody></table>';
+
+
+
+
+
+$data = $db::getRows("SELECT sum(bonus) as bonuss, count(*) as cnt, store_id,phone FROM  users_bonus WHERE tip='plus' AND 
+date>='$date1 00:00:00' AND date<='$date2 23:59:59' group by store_id, phone  order by cnt DESC");
+echo"<h1>Количество начислений</h1>";
+echo"<hr><table class=\"table table-bordered table-hover\">
+<thead><th width=70>кол-во списаний</th><th width=70>бонусы</th><th width=130>магазин</th><th width=200>ID клиента</th></thead><tbody>";
+foreach ($data as $row) {
+    echo"<tr><td>".$row["cnt"]."</td><td>".$row["bonuss"]."</td><td>".$store_arr[$row["store_id"]]."</td><td><a href=\"users.php?go=user_history&phone=".$row["phone"]."\" target=_blank class=\"btn btn-sm\">".$row["phone"]."</a></td></tr>";
+
+}
+echo'</tbody></table>';
+
+
+
+
+$data = $db::getRows("SELECT sum(bonus) as bonuss,store_id,admin_id FROM  users_bonus WHERE  date>='$date1 00:00:00' AND date<='$date2 23:59:59' group by store_id, admin_id ");
+echo"<h1>Бонусы в магазинах за период</h1>";
+echo"<hr><table class=\"table table-bordered table-hover\">
+<thead><th width=70>бонусы</th><th width=130>магазин</th><th width=200>сотрудник</th></thead><tbody>";
+foreach ($data as $row)  {
+    echo"<tr><td>".$row["bonuss"]."</td><td>".$store_arr[$row["store_id"]]."</td><td>".$row["admin_id"]."</td></tr>";
+
+}
+echo'</tbody></table>
+
+Сортировка по списанным
+ПО дате и по количеству бонусов
+По количеству покупок 
+
+Если больше 2 списаний в месяц проверить списания - список 
+Отчет по продажам в разрезе магазинов 
+Какое количество бонусов списано в магазине
+Сколько новых клиентов подключил магазин за месяц
+Сколько клиентов в день сработало
+
+';
+
+
+
+
+
+
+
+
+$data = $db::getRows("SELECT count(*) as cnt , avg(sale_avg_price) as sale_avg_price, sum(balans) as balans, sum(bonus_minus) as bonus_minus,  created_store_id, created_store 
+FROM  users WHERE  date>='$date1 00:00:00' AND date<='$date2 23:59:59' group by created_store_id, created_store ");
+echo"<h1>Новые клиенты в бонусной за период</h1>";
+echo"<hr><table class=\"table table-bordered table-hover\">
+<thead><th width=70>бонусы</th><th width=70>потрачено</th><th width=130>магазин</th><th width=200>сотрудник</th></thead><tbody>";
+foreach ($data as $row) {
+    echo"<tr><td>".$row["balans"]."</td><td> ".$row["bonus_minus"]." = ".$row["cnt"]."   ".$row["sale_avg_price"]."   </td><td>".$row["created_store"]."</td><td>".$row["admin_id"]."</td></tr>";
+
+}
+echo'</tbody></table>';
+
+
+
+
+$_CONFIG["jscss"]="<script>
+function ajax_bonus_remove(id) {
+$.ajax({
+       url: '/bonus/ajax_bonus_remove/',
+       method: 'post',       
+       dataType: 'html',        
+       data: { id: ''+id+''},  
+       success: function(data){  
+    $('#his'+id).html(data);
+       }}); 
+}</script>";
+
+
+
+
+
+include_once dirname(__DIR__, 2) . '/templates/bottom_light.php';