<?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='\
Код обфусцирован
Да, ну и что? Это же не мешает нормальной работе. Я работаю над ней уже почти полгода бесплатно, выложил на сайт (тоже бесплатно) полностью рабочий и без всяких ограничений вариант. Вы еще даже ее не «пощупали», не написали свой отзыв/комментарий, а уже спрашиваете за код. Если нужны какие-либо доработки, то можно написать здесь же в комментариях или в личку.
выложил на сайт (тоже бесплатно) — 2стартмани уже не бесплатно.
(3) Александр, извините, что-то я не совсем понял: 1-2 $m это дорого или я должен $m каждому, кто скачивает??? Ваша последняя обработка в 2011 г. почему-то тоже не бесплатная? Или Вы просто придираетесь к словам?
(4) Когда я выкладывал свои обработки, то они были бесплатны от слова СОВСЕМ, открыл и скачал, а если администрация портала ставит цену хотя бы 1 $m то это уже ни как не называется бесплатно. Так, что если желающий скачать обработку нажимает скачать а там предложение абонемента или другая какая то сумма висит, то говорить она БЕСПЛАТНА не нужно … Согласитесь, я автор, я сам ставлю цену на свою работу, тогда почему если я даю что то бесплатно, оно висит хоть за копейку, хоть за $m, по-моему это не правильно
(5)Когда-то я тоже выкладывал свои разработки совсем бесплатно…. и $m за это начислялись бесплатно…
А теперь увы, с этих $m тоже берут налог…., сайту тоже нужно как-то жить и развиваться.
в тонком клиенте бы такую вещь было бы вообще зачетно
(7) Да у меня пока только жирные и толстые клиенты и ни одного худого нет… 🙂
А можно добавить путевой лист автомобильного крана?
(9) Путевой лист на спецтехнику не подходит? Или для автокрана какая-то особая форма? В принципе можно, но у меня нет такой формы, (если она вообще существует).
Доброго дня! Скажите, есть ли возможность приобрести конфигурацию с читаемым кодом? Разово организация оплатит, а вот поддерживать все равно придется самому.
(11) Валерий, пишите в личку и там решим. islnik@mail.ru
Не пойму, как-то странно, уже столько скачиваний, а комментариев нет ни положительных, ни отрицательных. Или лень написать 2-3 предложения или скачивают для коллекции?
Добрый день. Программный продукт «Путевые листы грузовых, легковых автомобилей, спец. автомобилей, строительной техники (v.1.7.1).» хороший, соответствует законодательству.
Для более приятного взгляда пользователя желательно изменить наименование «Справки» — Камасутра.
также убрать нижнюю часть «Считать как».
Желаю дальнейшего развития данного проекта.
Добрый день!
Скачивали версию 1.6.4, долго не могли решиться приступить к работе с программой, но вот настал момент и работа в программе закипела. Но в версии 1.6.4 не выводиться журнал ПЛ и как можно обновиться на текущую версию.
(15) Добрый день!
Вы скачали файл версии 1.7.1, теперь стандартным способом через Конфигуратор: Конфигурация — Поддержка — Обновить конфигурацию — Выбор файла обновления, выбираете «свежий» файл и далее подтверждаете выполнение действий.
Такие вопросы лучше писать в личку.