<?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='\
+1
на самом деле здесь я вижу два основных момента:
— достаточно высокая «квалификация» менеджера запасов;
(система поставок «на перспективу» держится исключительно на нем. невыход на работу — пипец системе).
— обеспече
В небольших фирмах «менеджер запасов» и директор — это одно и тоже лицо. Конечно, есть человек, один из самых «сообразительных», кто может его заменить. Ведь система проста до безобразия.
Уважаемый, Сhe Burashka, описанная система действительно очень эффективна и рабочая! На себе испробовал. Я правда не знал, кто ее придумал и у меня были не маркеры, а листы заказов… ну, тоже самое только вид сбоку… Работала вся эта автоматизация лет десять! И люди менялись и болели… Всегда она была эффективна! Не буду вдаваться в подробности зачем такому предприятию хозяин и как он разруливает эти «проколы». Но из этой системы развился мой бизнес. На компьютеры перешел лет 5 назад и только тогда, когда счел не проблемой установить 17 машин, правда конфу писал сам, но некоторые элементы японского изобретения сохраняются и по сей день. Молодец Олег Сиголов! За статью +
а всем бухам надо раздать деревянные счеты ! Ведь считали же раньше как-то и балансы сводили.
Технический — это зло !
Технический прогресс, в смысле
Интересная статья. А курсирующие между киосками и складом мальчики с маркером напомнили мне протокол TCP/IP 😉 . А может всё отсюда и пошло???
«а всем бухам надо раздать деревянные счеты ! Ведь считали же раньше как-то и балансы сводили.»
В советские времена отчет по рейсу рыболовецкого траулера за 6 месяцев на счетах сводили за 3 дня. После применения компьютеров с ДОС прогами 6 дней, виндовс проги отнимают 12 дней. И где работа идёт быстрее?????
Сейчас работаю на предприятии, где был ручной учёт себестоимости, занимавший у буха 1 день. Внедрили 1С — минимум 2 дня.
(8) Работал на заводе.
На ДОС — армах план закупок составляли 14 дней, закрывали месяц — 7 дней.
На 1с — 2 дня и 1 день соответственно…
(7) Просто раньше, когда сводили «ручками», не учитывали столько много параметров. А любое изменение вводных требовало переделывания всей работы с нуля. Сейчас стали больше параметров считать, но местами и перегибают.
Компьютер успешно решает все проблемы, которые до его появления и не существовали 😉
Лет 5 назад публикация сего опуса вызвала куда более неоднозначный интерес. Большинство тогдашних коментаторов высказавшихся не в пользу идей, высказанных г-ном Сиголовым в своей статье усматривали в ее появлении явное посягновение на традиционные методы автомиатизации, т.е. с применением и программ, и компьютеров. Статья и сейчас, несмотря на ее возраст, навевает тоску — 30 молодых людей снующих с ящиками пива на плечах от склада до магазина вызывают жалость и сострадание.. А если серьезно, то решение задачи носит черты односторонеего подхода к проблеме.. В данном случае вполне эффективно решаются вопросы управления запасами и только.. Ценоообразование, взаимоотношения с продавцами, покупателями, поставщиками, с теми ж юношами наконец, остаются за пределами этой самой «бескомпьютерной» автоматизации.. Интересными показались отзывы, в особенности, те что с примерами.. В особенности про балансы.. Свои примеры приводить не буду, но каково ? Сиголовщина находит своих почитателей.. Хе-хе..
Спасибо автору за идею (алгоритм). Главное — умело воспользоваться ее в процессах «компьютерной» автоматизации
За статью +
При такой системе часть склада может быть вообще заморожена — восполняются запасы на освободившихся полках, с которых легче доставать. А как быть с отслеживанием сроков годности? При добавлении карточек в контейнер менеджером запасов кто гарантирует, что дополнительный запас разместится в складе? Решение одной частной задачи всегда ставит новые.
Больше согласен с господином Мощным, чем с автором. Компьютер все равно нужен.
Прочитал. Отметился. Без Рейтинга. » + » за поднятую проблему. » — » за «флуд» на сайте решающем проблемы автоматизации с помощью компьютерных и программных систем.
Отличная статья.
Сам занимаюсь автоматизацией опто-розничной торговли.
Если раньше прочитал, может быть все оказалось намного проше
Статья хорошая, и до сих пор актуальная.
Но, «баян» — читал ее года 4 назад.
Да, статья совершенно бесполезная, таким спосбом автоматизировали, если не изменяет память ещё в древнем Египте, всместо маркеров испольовали камешки, так что на инновацию эта тема не тянет совсем!
Canban не позволяет контролировать извне: сколько меток активно на каком этапе. Только привносить метки/изымать.
Т.е. для наладки аналитики (анализа спроса не в разрезе каждой позиции, а по срезам групп, при необходимости, например, корректировки целевых аудиторий) — потребуется … Считатель маркеров.
Который бы вбивал эти данные по маркерам в компьютер.
Т.е. система работает, управляема, но не анализируема.
Существует более действенный способ — Radio ID (RFID).
И метки есть (10 центов штука). И учёт — «поднёс к компьютеру» — посчиталось.
И методология та же, но уже есть и аналитика.
Интересно, а о какой такой автоматизации можно говорить, когда Канбан развивался в после военные годы в Японии?
Интересно, а какие компьютеры были в 1950-х ???
Отличная статья ) Канбан — наше все. Сами его активно применяем.
(8) Viacht, на тему свода отчета за 3 дня, по сути не вопрос, только вот какой штат бухгалтеров был тогда и какой сейчас
Спасибо автору за статью. Не думаю, что нужно воспринимать ее как данность. Это скорее принцип организации процесса, т.к. не везде и не всегда имеет смысл ставить ПК. Есть участки, на которых важна работа персонала, а не нажимание кнопок.
Плюсую. Статья иллюстрирует важное качество грамотного управленца или ИТ-директора от быдлокодера — знание различных технологий автоматизации, а не тупое применение привычной парадигмы по запросу клиента.
Умная организация процесса, наверное, действительно важнее использования компьютера самого по себе. Как говорил Билл Гейтс, «Автоматизация эффективных операций увеличивает эффективность, автоматизация неэффективных операций увеличивает неэффективность» (В оригинале: «The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency»)
А причина негативных комментариев, наверное, в том, что простому программисту надо просто делать свою работу, а не задумываться о методах и технологиях.
довольно познавательная статья, в качестве альтернативы программной автоматизации
КРУТО
Вот интересно, а сколько стоило для заказчика такое решение?
Это прекрасный пример эффективного использования KISS-принципа : «Keep It Simple Stupid! — Делай проще, дурачок!» ( принцип, запрещающий использование более сложных средств, чем необходимо ).
Всё гениальное просто. Встречал нечто похожее в организациях, работающих еще со времен СССР.
В каждом Макдональдсе такое! Задача производства — заполнить пустые ячейки. Кончились гамбургеры — лепи гамбургеры!
(18)Ну инновация или нет не суть важно. И опять же смотря с какой стороны посмотреть. Вот я о такой методологии не знал, а соответственно с моей колокольни это инновация и сама статья для меня очень полезной оказалась. Поэтому автору спасибо.
(31) И работает такой подход длительное время, и соответственно является подходом проверенным временем и доказавшим свою эффективность. Я вот до чтения этой публикации даже не задумывался о способах бескомпьютерной автоматизации, а теперь задумался. Интересно было бы почитать и другие подобные публикации. Наверняка есть и другие методы, позволяющие обойтись без компьютеров.