{
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- // Проверка времени: если текущее время с 5 до 6 утра, обновляем статусы и возвращаем пустой ответ
- $currentHour = (int)date("H");
- if ($currentHour >= 10 && $currentHour < 12) {
- // Проставляем статус 1 всем не запущенным заданиям api_cron (status = 0)
- ApiCron::updateAll(
- ['status' => ApiCron::COMPLETE],
- ['status' => ApiCron::AWAITING_COMPLETION]
- );
- return $this->asJson([]);
+ // Проверка dev окружения: если время с 10 до 12, обновляем статусы и возвращаем пустой ответ (только на тестовом контуре)
+ if (TelegramService::isDevEnv()) {
+ $currentHour = (int)date("H");
+ if ($currentHour >= 5 && $currentHour < 6) {
+ // Проставляем статус 1 всем не запущенным заданиям api_cron (status = 0)
+ ApiCron::updateAll(
+ ['status' => ApiCron::COMPLETE],
+ ['status' => ApiCron::AWAITING_COMPLETION]
+ );
+ return $this->asJson([]);
+ }
}
$request = Yii::$app->request->getRawBody();
use yii_app\records\WriteOffsErp;
use yii_app\services\TaskService;
use yii_app\services\SelfCostProductDynamicService;
+use yii_app\services\TelegramService;
class ShiftTransferController extends Controller
{
'product_guid', 'price'
);
}
-// $a = [['a' => 1, 'b' => 2, 'c' => 3], ['a' => 1, 'b' => 5, 'c' => 4], ['a' => 1, 'b' => 7, 'c' => 5],];
-// var_dump(ArrayHelper::map($a, 'a', 'b')); die;
-// result: array(1) { [1]=> int(7) }
-
- // Фильтруем товары без себестоимости из списка
- $productGuidsFiltered = [];
- foreach ($productGuids as $key => $name) {
- // Проверяем наличие себестоимости (не пустая и больше 0)
- if (isset($selfCost[$key]) && $selfCost[$key] !== '' && $selfCost[$key] !== null && $selfCost[$key] > 0) {
- $productGuidsFiltered[$key] = $name;
- }
+ // Фильтруем товары без себестоимости (только в dev окружении для удобства разработки)
+ // В production показываем все товары, чтобы пользователь видел проблемные и обращался в поддержку
+ if (TelegramService::isDevEnv()) {
+ $productGuids = array_filter($productGuids, function ($key) use ($selfCost) {
+ return !empty($selfCost[$key]) && $selfCost[$key] > 0;
+ }, ARRAY_FILTER_USE_KEY);
}
-
+
$loadDataShiftRemains = [];
- foreach ($productGuidsFiltered as $key => $name) {
+ foreach ($productGuids as $key => $name) {
$loadDataShiftRemains[] = [
- 'product_guid' => $key, 'retail_price' => $price[$key] ?? '',
+ 'product_guid' => $key,
+ 'retail_price' => $price[$key] ?? '',
'self_cost' => $selfCost[$key] ?? '',
- 'remains_summ' => isset($price[$key]) && isset($balance[$key]) ? $price[$key] * $balance[$key] : '',
+ 'remains_summ' => isset($price[$key], $balance[$key]) ? $price[$key] * $balance[$key] : '',
'remains_count' => $balance[$key] ?? '',
- 'fact_and_1c_diff' => 0, 'remains_1c' => $balance[$key] ?? ''
+ 'fact_and_1c_diff' => 0,
+ 'remains_1c' => $balance[$key] ?? '',
];
}
-
- // Обновляем productGuids отфильтрованным списком
- $productGuids = $productGuidsFiltered;
+
return compact('loadDataShiftRemains', 'productGuids');
}