<?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='\
Мило. Завтра как раз еду любимых клиентов поздравлять.
прикольно.. 😀 ..
Все работает, отлично. Правда, считает странно 🙁 . Пишет «Сегодня 29 декабря. До Нового года осталось 1 дней». Это по-нашему стопудово 😀
Версия 1.2
— исправлен подсчет дней до НГ — Спасибо (4)
* доработан показ дней (1 день, 2 дня, 5 дней и т.п.)
Молодец
Отлично! 😀
А что касается идей: кол-во дней до нового года можно сделать бегущей строкой, а при открытии волшебник выдает небольшое «предсказание» методом случайного выбора.
Спасибо, сделано со вкусом
Я б все таки тигра оставил на первой картинке, год тигра как ни как
В тексте ошибки насчет года 20010
{Форма.Форма(67)}: Ошибка при вызове метода контекста (Speak): Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.
гПерсонажАгента.Speak(наименование);
по причине:
Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.
при повторном нажатии на поздравления ошибка вылазить подправь и будет счастье
(11) Спасибо. Посмотрю
ЗЫ вроде все тестил 🙂
(10) Не понял, ты про что написал?
Выложена версия 1.2.1 — исправлена ошибка при работе с поздравлениями.
(11) Исправил
СУПЕР!!!!!!!!!!! Как я раньше не догадался?
все прикольно, но только у нас год будет 2010, а не 20010 как у автора в одной примете, а так «+»
Большое спасибо, очень понравилось всем клиентам!!!
Показать
По моему лучше этот код добавить в модуль самой обработки, а обращение к ней добавить в любой общий модуль, который вызывается из модуля приложения ПриНачалеРаботыСистемы, например в ЗавершениеРаботыПользователей -> УстановитьКонтрольРежимаЗавершенияРаботыПользователей() и конечно же между операторами препроцессора #Если Клиент Тогда и #КонецЕсли.
Это гораздо лучше т.к. можно добавлять в обработку любой праздник.
Выложил обработку в свободный доступ для всех — качайте сколько хотите 🙂
(18) Я специально написал «для новичков».
Более опытные разработчики могут придумывать различные варианты 🙂
Например, у меня юзается спец.класс с вызовом разных вариантов для различных праздников.
А что-то не стартует оно при загрузке. Модуль поправил, права есть, интерфейс соответствует. Работает только с пинка, т.е. вручную…
Спасибо, идея очень нужная. Пошлые анекдоты пришлось удалить. ))
Спасибо большое, поставила, наших порадовала )))
Просто СУПЕЕЕР!!!! Пока всё работает! СПАСИИИБО!!!! От восторга прям распирает ))) :{}
(23) Всегда пожалуйста! 🙂
(21) Насчет пошлых — пока никто не жаловался, тем более, что самые пошлые я предпочитаю рассказывать лично уже самым достойным 🙂
(20) Случайно хранилище не юзаешь? У меня лично была проблема, когда в конфу, подключенную к хранилищу, я пытался загрузить данный файл как обработку. Забыл флаг рекурсии поставить, и в итоге форма не грузилась.
Больше никаких проблем не было, как видишь, никто не жалуется, ищи у себя 🙁
Или пиши более подробно.
До сих пор наши вспоминают этот подарок под Новый год )) никто не работал, все анекдоты читали ))
Ждем на 2012 год ))
Наши уже спрашивали ))
Спасибо!
Подумаю.
(0) Поздравление на управляемых формахhttps://infostart.ru/public/960899/