$totals = [];
$weeksData = [];
$weeksShareResult = [];
+ $weeksGoalResult = [];
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$filters = [];
- if ($model->storeId) {
- $filters['store_id'] = $model->storeId;
- }
-
list($m, $y) = explode('-', $model->month);
$dateFrom = date("Y-m-d 00:00:00", strtotime(sprintf('%04d-%02d-01', $y, $m)));
$dateTo = date("Y-m-t 23:59:59", strtotime($dateFrom));
+ if ($model->storeId) {
+ $filters['store_id'] = $model->storeId;
+ $filters['type'] = $model->type;
+ $filters['plan_date'] = $dateFrom;
+ }
+
$service = new AutoPlannogrammaService();
if ($model->storeId) {
[$monthRow['species']] = $monthRow['total_sum'] ;
}
+ $monthSpeciesGoals = $service->calculateFullGoalChain($filters);
+ $monthSpeciesGoalsMap = [];
+ foreach ($monthSpeciesGoals as $monthSpeciesGoal) {
+ $monthSpeciesGoalsMap[$monthSpeciesGoal['store_id']]
+ [$monthSpeciesGoal['category']]
+ [$monthSpeciesGoal['subcategory']]
+ [$monthSpeciesGoal['product_name']] = $monthSpeciesGoal['goal'] ; // переименовать
+ }
+
foreach (range(1, 5) as $ind) {
$weekStart = date("Y-m-d 00:00:00", strtotime("+" . (($ind - 1) * 7) . ' days', strtotime($dateFrom)));
if (!$weekResult) {
continue;
}
+
$weeksShareResult[$ind] = [];
+ $weeksGoalResult[$ind] = [];
foreach ($weekResult as $weekRow) {
$monthSum = $speciesMonthTotals
[$weekRow['store_id']]
[$weekRow['subcategory']]
[$weekRow['species']] ?? null;
+ $monthGoal = $monthSpeciesGoalsMap
+ [$weekRow['store_id']]
+ [$weekRow['category']]
+ [$weekRow['subcategory']]
+ [$weekRow['species']] ?? null;
+
+
if ($monthSum) {
$weeksShareResult[$ind]
[$weekRow['category']]
[$weekRow['species']] = $weekRow['total_sum'] / $monthSum;
}
+ if ($monthSum && $monthGoal) {
+ $weeksGoalResult[$ind]
+ [$weekRow['category']]
+ [$weekRow['subcategory']]
+ [$weekRow['species']] = ($weekRow['total_sum'] / $monthSum) * $monthGoal;
+ }
+
}
}
$weeksData = $weeksShareResult['weeksData'];
$weeksShareResult = $weeksShareResult['weeksShare'];
- }
+
+
+
+ }
+var_dump($monthSpeciesGoalsMap); die();
return $this->render('control-species', [
'model' => $model,
'result' => $monthResult,
'weeksData' => $weeksData,
'weeksShareResult' => $weeksShareResult,
+ 'weeksGoalResult' => $weeksGoalResult,
'totals' => $totals,
'storeList' => $storeList,
'monthsList' => $monthsList,
$monthCategoryShare = $this->getMonthCategoryShareOrWriteOff($dateFromForCategory, $filters);
$monthCategoryGoal = $this->getMonthCategoryGoal($monthCategoryShare, $datePlan, $filters);
-
+ var_dump($monthCategoryShare); die();
$monthSubcategoryShare = $this->getMonthSubcategoryShareOrWriteOff($dateFrom, $filters);
$monthSubcategoryGoal = $this->getMonthSubcategoryGoal($monthSubcategoryShare, $monthCategoryGoal);
- $monthSpeciesShare = $this->getMonthSpeciesShareOrWriteOff($dateFrom, $filters);
+ //$monthSpeciesShare = $this->getMonthSpeciesShareOrWriteOff($dateFrom, $filters);
+ $monthSpeciesShare = $this->getMonthSpeciesShareOrWriteOffDate($dateFrom, $datePlan, $filters, null, $filters['type']);
$monthSpeciesGoal = $this->getMonthSpeciesGoalDirty($monthSpeciesShare, $monthSubcategoryGoal);
$filtered = array_filter($monthSpeciesGoal, function ($row) use ($filters) {