From 7ef809f793be69d87ffbbedafd7a75657758f25d Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 1 Nov 2024 15:43:57 +0300 Subject: [PATCH] =?utf8?q?[ERP-235]=20=D0=A7=D0=B5=D0=BA=20=D0=B2=D0=BE?= =?utf8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=82=D0=B0=20=D0=B1=D0=B5=D0=B7=20orde?= =?utf8?q?r=5Fid=20=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20=D0=B1=D1=8B=D1=82?= =?utf8?q?=D1=8C=20=D0=BF=D0=BE=20=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D0=B2?= =?utf8?q?=D0=BA=D0=B5,=20=D0=B5=D1=81=D0=BB=D0=B8=20sales=5Fcheck=20?= =?utf8?q?=D0=BF=D0=BE=20=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/records/Sales.php | 5 +++++ erp24/services/DashboardService.php | 2 +- erp24/services/SalesService.php | 33 ++++++++++++++++++++--------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/erp24/records/Sales.php b/erp24/records/Sales.php index 626d7db8..32670e43 100755 --- a/erp24/records/Sales.php +++ b/erp24/records/Sales.php @@ -139,4 +139,9 @@ class Sales extends \yii\db\ActiveRecord public function getUsers() { return $this->hasOne(Users::class, ['phone' => 'phone']); } + + public function getSaleCheck() { + return $this->hasOne(self::class, ['id' => 'sales_check']) + ->from(self::tableName() . ' sc'); + } } \ No newline at end of file diff --git a/erp24/services/DashboardService.php b/erp24/services/DashboardService.php index 03083c5e..f5ba83f0 100755 --- a/erp24/services/DashboardService.php +++ b/erp24/services/DashboardService.php @@ -72,7 +72,7 @@ class DashboardService uasort( $sales, function ($a, $b) { - return ($a['percent'] < $b['percent']); + return (-$a['percent'] + $b['percent']); } ); diff --git a/erp24/services/SalesService.php b/erp24/services/SalesService.php index f6179f28..e33e4296 100755 --- a/erp24/services/SalesService.php +++ b/erp24/services/SalesService.php @@ -95,19 +95,32 @@ class SalesService public function getSalesSum($dateFrom, $dateTo, $salesDelivery = false, $salesTotal = false, $storeId1c = null, $payType = null) : array { $query = Sales::find() + ->alias('s') ->select([ - 'summ' => new \yii\db\Expression("SUM(summ - skidka)"), - 'store_id_1c', - 'operation' + 'summ' => new \yii\db\Expression("SUM(s.summ - s.skidka)"), + 's.store_id_1c', + 's.operation' ]) - ->andWhere(['>=', 'date', DateHelper::getDateTimeStartDay($dateFrom, true)]) - ->andWhere(['<=', 'date', DateHelper::getDateTimeEndDay($dateTo, true)]); + ->joinWith('saleCheck') + ->andWhere(['>=', 's.date', DateHelper::getDateTimeStartDay($dateFrom, true)]) + ->andWhere(['<=', 's.date', DateHelper::getDateTimeEndDay($dateTo, true)]); if (!$salesTotal) { if ($salesDelivery) { - $query->andWhere(['not in', 'order_id', ['', '0']]); + $query->andFilterWhere(['or', + ['not in', 's.order_id', ['', '0']], + ['not in', 'sc.order_id', ['', '0']] + ]); } else { - $query->andWhere(['order_id' => ['', '0']]); + $query->andWhere([ + 'and', + ['s.order_id' => ['', '0']], + [ + 'or', + 'sc.order_id IS NULL', + ['sc.order_id' => ['', '0']] + ] + ]); } } @@ -116,15 +129,15 @@ class SalesService $payType = ['1', '3', '1,3', '3,1' ]; } - $query->andWhere(['pay_arr' => $payType]); + $query->andWhere(['s.pay_arr' => $payType]); } if (!empty($storeId1c)) { - $query->andWhere(['store_id_1c' => $storeId1c]); + $query->andWhere(['s.store_id_1c' => $storeId1c]); } - $query->groupBy(['store_id_1c', 'operation']); + $query->groupBy(['s.store_id_1c', 's.operation']); $action = $query->createCommand()->getRawSql(); -- 2.39.5