From 2fe5cad4edc940886d67d83dee0eff652d02c11c Mon Sep 17 00:00:00 2001 From: marina Date: Wed, 16 Oct 2024 13:16:22 +0300 Subject: [PATCH] =?utf8?q?ERP-225=20=D0=9D=D0=B5=20=D0=BF=D1=80=D0=B0?= =?utf8?q?=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=20=D1=81=D1=87=D0=B8=D1=82?= =?utf8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=9F=D1=80=D0=BE=D0=B3=D0=BD?= =?utf8?q?=D0=BE=D0=B7=20=D0=B7=D0=B0=20=D0=BC=D0=B5=D1=81=D1=8F=D1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...ata_to_monitvation_from_motivation_buh.php | 99 ++++++++++--------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php b/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php index 34c3d4e2..cd54869d 100644 --- a/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php +++ b/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php @@ -186,63 +186,64 @@ try { $motivationValue->save(); } - + $summa = 0; if ($motivationValue->value_id === MotivationCostsItem::findOne(['code' => 10])->id) { - $summa = []; - - if ($motivationValue->motivation_group_id <= 5 && $motivationValue->motivation_group_id >= 1) { - $period = Motivation::getWeekRange(null, $motivationValue->motivation_group_id); - } else if ($motivationValue->motivation_group_id == 10) { - $period = array( - 'startDate' => "$motivation->year-$motivation->month-01 00:00:00", - 'endDate' => "$motivation->year-$motivation->month-" . date('t', strtotime("$motivation->year-$motivation->month-01")) . " 23:59:59" - ); - } - $stores = ArrayHelper::map(CityStore::find() - ->joinWith('storeGuid') - ->select('city_store.id as id, export_import_table.export_val as store_guid') - ->andWhere('city_store.id is not null') - ->andWhere('export_import_table.export_val is not null') - ->andWhere('export_import_table.export_val <> \'\'') - ->orderBy('id desc') - ->asArray() - ->all(), 'id', 'store_guid'); - - if (!empty(array_key_exists($motivation->store_id,$stores))) { - $writeOffs = WriteOffs::find() - ->andWhere(['type' => 'Расходные материалы (обеспечение продаж)']) - ->andWhere(['>', 'date', $period['startDate']]) - ->andWhere(['<=', 'date', $period['endDate']]) - ->andWhere(['store_id' => $stores[$motivation->store_id]]) + + if ($motivationValue->motivation_group_id <= 5 && $motivationValue->motivation_group_id >= 1) { + $period = Motivation::getWeekRange(null, $motivationValue->motivation_group_id); + } else if ($motivationValue->motivation_group_id == 10) { + $period = array( + 'start_time' => "$motivation->year-$motivation->month-01 00:00:00", + 'end_time' => "$motivation->year-$motivation->month-" . date('t', strtotime("$motivation->year-$motivation->month-01")) . " 23:59:59" + ); + } + + $stores = ArrayHelper::map(CityStore::find() + ->joinWith('storeGuid') + ->select('city_store.id as id, export_import_table.export_val as store_guid') + ->andWhere('city_store.id is not null') + ->andWhere('export_import_table.export_val is not null') + ->andWhere('export_import_table.export_val <> \'\'') + ->orderBy('id desc') + ->asArray() + ->all(), 'id', 'store_guid'); + + if (!empty(array_key_exists($motivation->store_id,$stores))) { + $writeOffs = WriteOffs::find() + ->andWhere(['type' => 'Расходные материалы (обеспечение продаж)']) + ->andWhere(['>', 'date', $period['start_time']]) + ->andWhere(['<=', 'date', $period['end_time']]) + ->andWhere(['store_id' => $stores[$motivation->store_id]]) + ->all(); + + foreach ($writeOffs as $writeOff) { + $writeOffProducts = WriteOffsProducts::find() + ->andWhere(['write_offs_id' => $writeOff->id]) ->all(); - foreach ($writeOffs as $writeOff) { - $writeOffProducts = WriteOffsProducts::find() - ->andWhere(['write_offs_id' => $writeOff->id]) - ->all(); - - foreach ($writeOffProducts as $offProduct) { - if (empty(array_search($writeOff->store_id, $stores))) { - continue; - } - - $price = SelfCostProduct::find() - ->andWhere(['product_guid' => $offProduct->product_id]) - ->andWhere(['store_id' => array_search($writeOff->store_id, $stores)]) - ->andWhere(['date' => date('Y-m-d', strtotime($writeOff->date))]) - ->one(); - if (empty($price)) { - $price = $offProduct; - } - - $summa += ($price->price * $offProduct->quantity); + foreach ($writeOffProducts as $offProduct) { + if (empty(array_search($writeOff->store_id, $stores))) { + continue; + } + + $price = SelfCostProduct::find() + ->andWhere(['product_guid' => $offProduct->product_id]) + ->andWhere(['store_id' => array_search($writeOff->store_id, $stores)]) + ->andWhere(['date' => date('Y-m-d', strtotime($writeOff->date))]) + ->one(); + + if (empty($price)) { + $price = $offProduct; } + $summa = $summa + $price->price * $offProduct->quantity; } + } + } - $motivationValue += $summa; - $motivationValue->save(); + $motivationValue->value_float += $summa; + $motivationValue->save(); } } -- 2.39.5