<?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) Можно, но только идея была еще показать границы областей, а там уже одной переменой не отделаешься. Для тех кому интересно в строчке 20 поменять координаты на ваш город, свои координаты можно узнатьздесь , цифра 12 означает масштаб карты.
Жаль, 100 скачиваний и комментарий нет!
У меня пишет «На этой странице произошла ошибка сценария»
строка 7
символ 9
Я пользуюсь, переделал немного чтоб по информации из клиента эта окно вызывалось нам это более актуально чем смотреть заказы)
Один момент — (вещь очень прикольная и удобная) — нельзя ли подвязать Яндекс-пробки??? Ведь там только адрес чуть поменяется в коде HTML ???
И ещё — у меня чё-то окно «получить API ключ» не доступно, хотя галочку что принимаю правила устанавливаю…
А в общем автору большое спс, кстати пробовал не тока Краснодар — всё работает отлично, просто я сразу при открытии сделал чтоб точка показывалась с адресом (адрес берёться из контактной инфы контрагента.)
(4) Скорей всего у вас стоит win7 и последние обновление для IE8, на самом деле просто поставьте галочку что бы больше это сообщение не выскакивало и все, дальше скрипт работает так как нужно.
(5) На счет пробок сейчас гляну, на счет ключа, попробуйте очистить кэш через что смотрите, все должно по идеи открываться.
P.S. Если обработка понравилась, то ставте плюс, не стесняйтесь!
автору — Всё ключ получил, там нада было адрес сайта просто ввести)))
А насчет пробок актуально, думаю там в параметрах адреса просто какой-то ключ заполнить нада чтоб было с пробками…. Ну в общем если это скажите как сделать буду очень признателен!
(8) По поводу пробок, вот нашел на форуме разработчиков.
«Не нашел в api — яндекс-карт возможность отображения пробок, очень бы хотелось использоавть такую возможность, а еще возможность проложить маршрут к объекту с объездом пробок.»
«В API в настоящее время такая возможность отсутствует»
Сообщение:
Строка: 10
Ошибка: ‘YMaps’ — определение отсутствует
(10) Посмотри сообщение (6)
(6) Нет у меня win server 2003
Выскакивает окно — нажимаю «да» ни чего не происходит, а в обработке даже карту не показывает ((
(12) Версия IE какая?
Автору — а в каком месте можно указать стиль метки?
Никак не могу совместить ваш код с примерами с сайта Яндекса. (
Или можно пример наложения на уже выведенную карту метки с координатами, а не через запрос к геокодеру?)
совершенно бессовестно стащил эту обработку, ну не совсем буквально, подпилил местами, но основу взял именно отсюда, автору спасибо!
Яндекс карта. допустим есть несколько меток, можно ли как-то смасштабировать карту (не руками, а программно), что бы масштаб был максимально увеличен и в тоже время все метки были видны (в границах карты)?