<?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='\
слова не напишут, и рейтинг не поднимут
Прикольно, дома почитаю.
кошмар
Для текущего 2006 года уже устарело. Интересно только, было ли реальное внедрение после такого предпроектного обследования?
Anselm, да, внедрение прошло успешно. Производственный учет это как отдельное государство, настраивать его можно бесконечно, так что до сих пор дописывается, но уже силами собственной ИТ-службы.
SUPPORT — огроменнейший респект и не меньшее спасибо!!! Может с рядом пунктов можно поспорить, но по существу 100% правильный документ. Сейчас готовлю такой же, смотрю на свой полный сумбур, у тебя все по полкам… короче взял за основу пошел свой править…
Еще раз спасибо!!!
Структура верная. В прЫнцыпе можно украсить бантиками Visio и графиками Project.
В целом — номано!
эпохально, можно использовать…
Всегда интересно, в каком виде другие представляют отчет о предпроекте.
нужная штука, плюс одназначна
Камрады, а как два плюса поставить?
😀
пункт 8 расширить бы… все остальное — как войну — пропускаем.. а 8 дополняем до основных моментом — что надо бы доделать… пунктик производство.,. налоговый учет…. бух отчетность… ну в общем — тут экспрес «сделать все». внедренцу должно быть страшно по такому экспресу продолжать, это ж прямой путь в рабство). или вы оцениваете чтото по этому экспрессу? а за сколько вы все делаете? мы вас в субподряд возьмем)
Да, спасибо что выложили. Я с удовольствием воспользуюсь структурой при случае 🙂
(11) a_shpak,
Плюсануть реплику в коментах… 😉
+ автору за сей труд, с удовольствием буду использовать своей работе
Интересно
Стоит поставить плюс уже только за то, что такой материал появился в свободном доступе 🙂
Интересно, идеи здравые — спасибо!
занятно, занятно)) интересно для кого это станет пособием к практическому действию?))) хотя… кому надо и так наверно знают
Любопытно. Спасибо.
(4) Anselm,
Некоторые и 5 лет спустя собираються пользовать 🙂
Очень интересный материал, взял на заметку, спасибо
Супер!!! 🙂
Спасибо! Очень познавательно.
если бы моему руководству такую галиматью показали они сразу бы послали на «собрание куда явка не обязательна».
можно пинать…..
(25) LavinVadik, в 2003 году?
Эх, прошло уже 13 лет, как быстро время летит.
Спасибо, взял на заметку!
Во сколько часов можно оценить подобную работу на сегодняшний день?
(28) какую именно работу, весь проект или обследование с отчетом?
(29) Обследование с отчетом средней сложности. (можно в рублях, можно в трудочасах). Вкратце исходные данные: УТ 10.3 с неизвестной степенью дописок, подключено 5 касс Атол 30Ф, бухгалтерия 2.0 с огромной степенью дописок. Рабочая база ЗУП 3.0 типовая на аутсорсинге в облаке. Задача: выполнить перевод БП 2.0 на 3.0, обепспечить полноценную работу в БП 3.0, настроить синхронизацию БП 3.0 и ЗУП 3.0. Количество пользователей, компьютеров, схемы подключения — неизвестны, нужно всё оценить, описать. Нужны этапы перехода, этапы оплаты, возможные риски.
(30) я бы определил от 130 до 200 часов примерно.