<?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='\
«Просто из вредности» архив нулевого размера?
Почти работает!
блин,они как-будто прикалываются(инфостаровцы).Я уже и обновлял и добавлял и сменял,размер=0
Плюшкин — попробуй обозвать файл англискими буквами — может так пройдет?
попробуй еще раз
Ну и?
Недождёмся………. Жаль.
и где?
просто паиздевался и сё
Извините,оказывается,что создатели ресурса не предусмотрели моей тупости(не могли предвидеть,что я назову файл русским именем) 🙂
Жду отзывов
Люди,вы прям как я 🙂 Качаем,авось пригодится,а комментировать кто будет? да и рейтинг не растет.Значит ну нужна ?
дело в том что для рейтинга нужна регистрация, а многие заходят читают и качают, не до рейтингов Батенька. 🙂
Идея не плохая …
Идея хорошая
Идея даже очень короша. Правда познакомился с разработкой из другого источника. С инфостара скачать не смог. Но поблагодарить пришел. Респект.
Добрый день ! Очень интересуюсь установлением цен .Будьте добры прокомментируйе свой отчет, что он делает.Может демо пришлете,и если он очень хороший ,возможно поговорить о цене.
Он НЕ демо.Обычный с полным функционалом.Скачивайте,читайте описание.
Пишешь что для простых смертных, а сам поставил доступ только с рейтингом не менее трех !?!?
2 alfbiz
не в обиду, но подровнял тебе рейтинг, потому как незаслужено Abadonna + влепил.
Плюшкин Черт
сними рейтинг
А кто скачал, не может на мыло выслать? ole-egorov@mail.ru. Т.к. поднять рейтинг не представляется возможным. Все что я могу сделать — это уже давно сделано.
поискал у себя рейтинг, не нашел 🙂
тода и скачать не могу 🙁
Да уж, хотел помочь людям, выложить для них обработку, т.к. на проклабе ее нет (туда у меня есть доступ). Но видно не судьба. Но уж судя по комментарию точно «для простых сметрных»…
«Хорошая» шутка… Может автор выложит действительно для простых смертных?
«Простые смертные» были бы очень благодарны.
да не ставил я никакой рейтинг,просто выложил и все.
Администрация,снимите пожалуйста это чертов рейтинг,чтобы доступно всем было,а то я никак не врублюсь как это сделать.
ЗЫ.Редко посещал данный ресурс и не обращал внимание на отзывы.
Нужная обработка! Плюс.
Вообще не открывается
Что значит не открывается ? Давно уже с 7-кой не работаю, но ради дела установил ТиС, подкючил обработку, проверил. Все прекрасно открывается.
Остается подозрение, что Вы не читали описание к обработке.
Она подключается как внешняя печ. форма к документу Поступления ТМЦ. и далее вызывается из него.