From: Vladimir Fomichev Date: Tue, 5 Aug 2025 13:59:59 +0000 (+0300) Subject: Merge branch 'refs/heads/develop' into feature_fomichev_erp_444_OS_autoplannogramm X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=e304b1386366c42f56278e9dd63dcae76852cbc9;p=erp24_rep%2Fyii-erp24%2F.git Merge branch 'refs/heads/develop' into feature_fomichev_erp_444_OS_autoplannogramm # Conflicts: # erp24/controllers/AutoPlannogrammaController.php # erp24/web/js/autoplannogramma/autoplannogramma.js --- e304b1386366c42f56278e9dd63dcae76852cbc9 diff --cc erp24/commands/CronController.php index 3aa7f65b,fb586534..5a9678f7 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@@ -1785,11 -1767,11 +1785,11 @@@ class CronController extends Controlle 'is_archive' => false, 'auto_forecast' => true, 'capacity_type' => 1, - 'details' => json_encode($details, JSON_UNESCAPED_UNICODE), + 'details' => json_encode($details, JSON_UNESCAPED_UNICODE), // TODO двойное кодирование 'calculate' => $quantity, - 'modify' => ceil($total), + 'modify' => null, 'total' => ceil($total) - ]); + ], false); if (!$model->save()) { $errors = implode('; ', array_map( diff --cc erp24/controllers/AutoPlannogrammaController.php index 9c58b574,3d500720..0aeacf73 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@@ -2,8 -2,8 +2,10 @@@ namespace app\controllers; + use PhpOffice\PhpSpreadsheet\Spreadsheet; + use PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use DateTime; +use Throwable; use Yii; use yii\base\DynamicModel; use yii\data\ArrayDataProvider; diff --cc erp24/web/js/autoplannogramma/autoplannogramma.js index 27327792,e2faf7a8..45e0e48c --- a/erp24/web/js/autoplannogramma/autoplannogramma.js +++ b/erp24/web/js/autoplannogramma/autoplannogramma.js @@@ -5,59 -5,47 +5,100 @@@ document.addEventListener("DOMContentLo row.style.display = "none"; } }); + $('.export-excel-btn').on('click', function (e) { + e.preventDefault(); + + const auto = $(this).data('auto'); + const selectedPairs = []; + $('.subcategory.active .subcategory-label').each(function () { + const category = $(this).data('category'); + const subcategory = $(this).data('subcategory'); + if (category && subcategory) { + selectedPairs.push([category, subcategory]); + } + }); + console.log(selectedPairs.length) + if (selectedPairs.length === 0) { + alert("Нет данных для выгрузки"); + return; + } + const baseUrl = '/auto-plannogramma/export-excel'; + const params = { + year: $('#year').val(), + week: $('#week').val(), + city: $('#city').val(), + region: $('#region').val(), + district: $('#district').val(), + store_type: $('#store-type').val(), + capacity_type: $('#capacity-type').val() || null, + bush_chef_florist: $('#bush_chef_florist').val(), + territorial_manager: $('#territorial-manager').val(), + polnogramma_type: $('#polnogramma-type').val(), + auto: auto, + categories: JSON.stringify(selectedPairs) + }; + const query = Object.entries(params) + .filter(([_, v]) => v !== null && v !== '') + .map(([k, v]) => k + '=' + encodeURIComponent(v)) + .join('&'); + + const url = baseUrl + (query ? '?' + query : ''); + + window.open(url, '_blank'); + }); + let skipRegionChange = false; + + $('#region').on('change', function () { + if (skipRegionChange) return; + + var regionId = $(this).val(); + var citySelect = $('#city'); + var districtSelect = $('#district'); + + citySelect.val(null).trigger('change'); + citySelect.empty().append(''); + + districtSelect.val(null).trigger('change'); + districtSelect.empty().append(''); + + if (regionId) { + $.get('/auto-plannogramma/city-list?region_id=' + regionId, function (data) { + $.each(data, function (id, name) { + citySelect.append(''); + }); + }); + } + }); + + $('#city').on('change', function () { + var cityId = $(this).val(); + var regionSelect = $('#region'); + var districtSelect = $('#district'); + + districtSelect.val(null).trigger('change'); + districtSelect.empty().append(''); + + if (cityId) { + skipRegionChange = true; + + $.get('/auto-plannogramma/region-by-city?city_id=' + cityId, function (data) { + if (data && data.id) { + if (regionSelect.find("option[value='" + data.id + "']").length === 0) { + regionSelect.append(''); + } + regionSelect.val(data.id).trigger('change'); + } + skipRegionChange = false; + }); + + $.get('/auto-plannogramma/district-list?city_id=' + cityId, function (data) { + $.each(data, function (id, name) { + districtSelect.append(''); + }); + }); + } + }); + document.querySelectorAll(".category").forEach(category => { category.addEventListener("click", function () {