<?php // Полная загрузка сервисных книжек, создан 2024-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='\
А в чем ограничение то !!!
Там же сразу видно, что некоторые параметры не активны. Зачем описывать, то что итак видно. Это касается корректировки уходимости по тренду (4 параметра отключены) и значение точки заказа и мин. страх. депозита в полной версии можно задавать для каждой позиции номенклатуры в разрезе складов.
(2) а скажите, плиз, Вы рассматриваете Инфостарт в качестве бесплатной рекламной площадки или таки собираетесь продавать через него свою разработку?
Хорошее начало. Как мне кажется, раз так серьезно взялись за дело, то надо доработать инструментами финансово — аналитического учета: План-фактный анализ, анализ оборачиваемости учетных единиц, ликвидности и пр., хотя бы в «lite» варианте.
Вроде «уходимость» у всех является ликвидностью,
лично меня эта уходимость как обухом…
А так надо смотреть…
Я соглашусь с 4. Отличное начало. Если учесть пожелания, то можно
продавать намного дороже
(+ за идею)
Минус за спам. Я это даже не качал.
(7) Спам это когда всем без разбора шлют. А тут выборочно, лично.
(4) см Планирование — наверху кнопка Функционал — План-Факт анализ
(5) Уходимость и ликвидность это одно и тоже. Иногда можно это просто спросом назвать.
Минус не поставлю, но спамом не надо заниматься !
Я понял так, что письмо пришло, как участнику группы:
«Логистика и склад. Планирование закупок»
Если так, то спасибо.
Если подтвердите, то поставлю ++.
Думаю и coder1cv8 надо было спросить или хотя бы сослаться
на однозначнодействующее правило.
Уж больно он лютый.
Еще мне не понятно, но интересно.
У вас планирование из каких теоретических посылов,
наличие заданного количества или есть другие соображения.
Я может не доглядел в темах группы, извиняюсь.
В моей практике обычно требуют максимизацию прибыли,
из-за чего и спросил про ликвидность.
(14) Будем сравнивать ?
классная вещь, можно сравнить по ТЗ.. 😉
Вещь то может и хорошая, только смотря для чего, такой анализ может и кому-то пригодится, мне совершенно бесполезен. Плавали-знаем!!!
позворляет корректировать уходимость с учетом роста или падения спроса — на счёт сезонного спроса это понятно, а вот как же рекламные акции, во время их проведения уходимость увеличивается на некоторые позиции товаров раз в 10, а затем падает почти до уровня- до проведения той самой акции. Цена тоже — сегодня по 1000 руб, а завтра по 5000 руб, и будет после такого анализа полный склад товаров, которые будут лежать мертвым грузом. Да ещё не мало факторов, которые влияют на анализ: остаточный срок годности, ассортимент (товар за 500 руб., на который наценка 40% не купят без товара за 1 руб., с наценкой 10%), да и др. акторы есть, побольще параметров для анализа надо, чтоб планировать!!!
Уверен, что если бы не («10 функционалых особенностей, которые потрясли мир:») мания величия в увеличенных размерах, благожелательных комментариев было бы больше. :). Меня интересует, каким алгоритмом, или иначе, по каким регистрам вы высчитываете количество дней продажи. Партионный учет? Линейный метод? Потом, может быть и не внимательно смотрел, учитывается ли при расчете показателей начальный остаток перед реализацией номенклатуры? Пара чисто технических вопросов, точнее — алгоритмических :).
(20) Наличие свободного остатка товара на начало дня рассчитывается по регистрам ТоварыНаСкладах, ТоварыВРезерве, ТоварыКПередаче, ТоварыКПолучению, ТоварыКПеремещениюВНТТ. Продажи по регистру Продажи или по ТоварыНаСкладах.
С благодарностью…
Планирование закупок с возможностью формирования закза (Код открыт) для УТ 10.3http://infostart.ru/projects/5790/
Отличная реализация, вот только нет свободного ожидаемого остатка.
Да.Но для закупок важен просто свободный остаток, кот вкл ожидаемый. Это же не для мен по продажам.
Ни правда ;), для закупок тоже очень актуально знать сколько свободного товара у тебя в пути. А то можно склад нагрузить по самые…. Конечно при условии длительности самой поставки товара — 1-2 мес…. и более частой закупке.
Думаю это можно будет учесть.
Здравствуйте а можно от вас получить тестовую баз для проверки работы функционала. Мне нужен продукт такого вида но надо посмотреть как он работает. А своей базы нет.
А для РАУЗ вариант будет ?
Я понимаю конечно все прелести партионного учета, но специфика подвигла перейти на РАУЗ. Ессно половина отчетов и обработок «ф топку».
Для рауза нет.
Исправили ошибку:
Преобразование значения к типу Число не может быть выполнено
Вообще задумка хорошая, но так как это достаточно объемная обработка с большим количеством настраиваемых параметров, то очень нехватает возможности сохранять настройки в файл. а также:
Неудобные отборы складов и номенклатуры, Отбора построителем очень нехватает.
Таблица планирования — недостатки:
на панели нет кнопок сдвинуть, раздвинуть колонки (функции забить в горячие клавиши + и -)
нет чередования цветов строк.
Есть кнопка скрыть инфо колонки. А где кнопка отобразить???
очень юзабельно было бы настраивать свои цвета строк указывающие на определенные ситуации в таблице планирования.
И еще вопросик, при расчете количества к заказу по точке заказа учитываются резервы внутренних заказов? т.е. количество к заказу должно быть уменьшено на уже зарезервированное для этого склада во внутренних заказах.
//Есть кнопка скрыть инфо колонки. А где кнопка отобразить???
Правой кнопкой на таблице и выбираем Настройка списка.
//И еще вопросик, при расчете количества к заказу по точке заказа учитываются резервы внутренних заказов?
Резервы все учитываются. Галочка Минус резервы.
Чем отличаются платная обработка от бесплатной? Только открытым кодом ?
Да. Вообще, я хотел выложить только с закрытым кодом.
Возможно ли добавить учет отгрузок со склада типа «Розница»?
Все доработки планы.
(43) Платны?
(44) dufrein, не понял. А как они будут бесплатны?
Хотите сами дорабатывайте.
(19) pah_a,
В обработке есть возможность исключать Проекты. Например, крупные распродажи.
Прежде всего БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО АВТОРУ!!!!
НУЖНАЯ ВЕЩЬ. Отличная реализация. Прекрасный дизайн. Хороший функционал. Приличное удобство и эргономика.
У меня бы неделя ушла на создание чего-то подобного. Стоимость ей не «один смарт мани», а как минимум 1000 рублей за копию или 30 тыс. за разработку.
Много негативных комментариев просто от непонимания, незнания, самоуверенности. Все прекрасно настраивается. ИМХО Лучшее из бесплатного.
У меня был лишь один момент…. я целый час разбирался со всеми терминами, настройками, и коэффициентами, хелпа почти нет.
Но сразу было ощущение что писал человек пунктуальный, последовательный и и все получится, нужно только разобраться.
Завтра у меня внеплановое собрание — обучение менеджеров по закупкам, включаем эту разработку как один из полезных инструментов для работы.
Еще понадобилась вот эта разработкуhttp://infostart.ru/public/20983/ чтоб Основного поставщика проставлять… (добавил в нее еще фильтр по контрагентам).
MrFlanker абсолютно согласен с вами.
Отличная вещь. Интегрировано много чего.
Много инструментов в удобном виде сразу в одном месте.
Эта разработка из разряда того, что надо освоить, понять и пользоваться.
Если вы не умеете ездить на велосипеде, и даже не пробовали, это не значит что он плохой.
Просто вы ленивы и даже подойти к нему не хотите.
Не кидайте тухлыми помидорами. Попытайтесь разобраться и понять а не хаять.
Очень легко сказать фиии. А вы попробуйте помочь автору. Попробуйте потестировать, показать, что там не так и что можно улучшить!