<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Исправил обнаруженную ошибку в отчете, добавил один показатель и переименовал другой.
Все кто скачал сырую версию — пишите в личку с указанием версии отчета (для украины или для ЕРП), я вышлю доработанный отчет.
Прошу прощения за невнимательность.
Доброго дня! Подскажите, на 11.4 мне какой вариант скачать? Где «для новых конфигураций семейства ERP»?
Да, второй для украины и старой УТ подходит, типа 11.1.
Добрый день!
КА 2.4.
Воспользовался вашим отчетом и обнаружил, что показатель Свободный остаток не учитывает текущие резервы.
Т.е. по Ведомости Доступность товара — В наличии 10. К отгрузке 2, в резерве 2. Свободно 6
А у вас — Свободный остаток — 8
(4) ОК, проверю сегодня. Возможно у нас ситуация с резервами не воспроизводилась.
Вы можете уточнить каким документом у вас в учете зарезервированы 2 ед. товара?
(5) Заказ клиента, товар в статусе «Резервировать»
(6) Действительно, при удовлетворении требований заказчика — резервы игнорировались. Добавил вариант отчета учитывающий резервы.
Если кому то требуется вариант отчета с учетом резервов для старой версии и украины — пишите опубликую.
ERP 2.2.4 хочу скачать отчет
«Если кому то требуется вариант отчета с учетом резервов для старой версии и украины — пишите опубликую.»
Залейте, пожалуйста или какую версию мне скачать? Просто боюсь ошибиться
И вопрос, перемещения между складами сюда попадают?
И оприходование излишек и списание недостачи?
(9) >И вопрос, перемещения между складами сюда попадают?
>И оприходование излишек и списание недостачи?
Опубликую.
В продажи внутренние движения конечно не попадают.
Но на остатках они естественно сказываются. А вы как хотите — обороты внутренних движений видеть?
Какой из 3 файлов скачать чтобы посмотреть? Напомню, ЕРП 2.2.4?
Главное чтобы в продажи перемещения не попадали, спасибо скачаю
(11)Для ЕРП или … для новых конфигураций семейства ERP или …для новых конфигураций семейства ERP (с учетом резервов) второй вариант учитывает резервирование первый — нет
скачал Вашу отличную обработку! автору-респект!
из найденных ошибок: «дней наличия» — считает дни, когда были продажи, а не физическое наличие товара на складе.
мы чуть доработали его, добавив возможность фильтра по складам и выводить количество в единицах отчетов. могу прислать:-)
(13)Спасибо!
Был бы рад посмотреть как вы доработали про «дней наличия»
Я правильно понимаю, что аналитики «Склад» нет?
(15) Аналитики склад нет, делалось под клиента где это не требовалось.
(13)Добрый день.
Сегодня тоже заметил , что «дней наличия» считает как-то не так.
Можно прислать исправленную версию.
(13)Можно прислать исправленную версию?
Добрый день
Для Украины вышла новая версия Управление торговлей
BAS Управління торгівлею 3.2.8.1
Какой вариант отчета выбирать?
Анализ потребностей по данным продаж за период для старой УТ 11 и для УТ для Украины, редакция 3.1
или
Анализ потребностей по данным продаж за период для новых конфигураций семейства ERP (С УЧЕТОМ РЕЗЕРВОВ)
Добрый день, у меня есть вопросы по обработке. Напишите пожалуйста на почту ukitaki@yandex.ru
Добрый день. Обработку к УПП 1.6 пришить можно?
Ошибся в предыдущем посту!! К УНФ 1.6 пришить можно?