<?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='\
Однако скачиваний много, а комментарий нуль. Высказывайте пожелания/замечания не стесняйтесь 😀
Здорово. Всегда приятно видеть развитие проекта. И вдвойне приятно видеть развитие своего проекта. Автор молодец 5+
А есть ли возможность waypoints задавать в виде координат?
Знаю что можно, ток пример не могу ниде найти…
интересно как координаты соотносятся с координатами яндекса…
Но самое плохое в этом всем что количество waypoints ограничено 8-ю 🙁
А можно ли задавать приоретет точек?
А есть ли возможность waypoints задавать в виде координат?
Знаю что можно, ток пример не могу ниде найти…
интересно как координаты соотносятся с координатами яндекса…
Но самое плохое в этом всем что количество waypoints ограничено 8-ю
взамен адреса в waypoints можно спокойно подставлять координаты
Количество waypoints ограниченно намеренно на уровне API. Если хочеш больше покупай у гугла премиум и используй waypoints сколько необходимо
А можно ли задавать приоретет точек?
Что в твоем понимании приоритет. передвигать строки адреса можно стрелками вверх вниз
Приоретет в таком смысле.
Ситуации
1) Адреса находятся в разных частях города, А и В в одной части Б в другой части. Чтобы доставить товар на В надо посетить точку А потом точку Б. А Гугль построит маршрут кратчайшим способом А,В,Б.
Приоретет в таком смысле.
Ситуации
1) Адреса находятся в разных частях города, А и В в одной части Б в другой части. Чтобы доставить товар на В надо посетить точку А потом точку Б. А Гугль построит маршрут кратчайшим способом А,В,Б.
Покажи где это делает сам гугл или yandex и я добавлю это в обработку
Не работает под веб-клиентом. Хоть она и работает под УФ, но реального применения в УФ ей ноль.
(8) под веб-клиент оптимизации нет. По просьбам «трудящихся» могу добавить
Количество waypoints ограниченно намеренно на уровне API. Если хочеш больше покупай у гугла премиум и используй waypoints сколько необходимо
в обход никак нельзя? 😉 Тоесть расчеты проводятся напрямую у гугла?
Автор, быть может я чего-то не понимаю, но НЕ РАБОТАЕТ!!! СОВСЕМ НИКАК.
Задал в верхнем поле КРАСНОДАР — МАЙКОП, и нифига — МОСКВУ выводит и рисует чего-то.
Еще, было бы неплохо сделать не под гугл, а под яндекс-карты, они с улицами, да и работать приятнее
Здорово. Всегда приятно видеть развитие проекта
Задал в верхнем поле КРАСНОДАР — МАЙКОП, и нифига — МОСКВУ выводит и рисует чего-то.
Еще, было бы неплохо сделать не под гугл, а под яндекс-карты, они с улицами, да и работать приятнее
(11) (13) Внимательно смотрите код насильно установлена Москва. А так как гугл «типа умный» то другое и не рисует. Поправьте в коде и будет поиск по миру и или Росиии
Спасибо, хорошая разработка.
Вопрос, а есть ли возможность работы с оффлайн картами?
Или выбор маршрута целиком работает средствами гугл?
У меня запустилась и сформировала маршруты сразу же.
(15) Единственное что можно сделать чтоб использовать прокладчик маршрута от Google это использовать кэшированные картинки.
http://www.routino.org/ или на что то похожее
А так чтоб использовать всё свое и держать у себя то тебе прямая дорога к
Откуда такая информация, что количество точек на маршруте ограничено 8?
Для меня это важный момент. И если можно скажите, где можно посмотреть стоимость Премиум АПИ.
Обычно Москву выводи когда не может рассчитать маршрут.
http://www.google.com/enterprise/earthmaps/maps-compare.html
(17) Throrka,
точек на самом деле не 8, а 10.
в премиум — 23.
источник инфы
А через что реализован вывод карты на управляемую форму? что-то через форматированный документ не получается 🙁
скачать посмотреть тоже не дает, так как я здесь не частый гость. Хотя может, где доберу скачаю посмотрю. 🙂
(19) sarge_s, спасибо нашел,
если кому надо будет (затупят как и я :))
то тип карты строка в реквизитах формы, а у поля формы необходимо выбрать вид «Поле HTML документа».
Количество точек может быть и больше — строка запроса не может превышать 2000 символов.
Пишу сейчас службу доставки для одной сети быстрого питания. Сделал там печать маршрута от базы до нужного адреса через Google Maps API V3. Имеются документы заказов от клиентов, в них есть время доставки, адрес. Сейчас хотелось бы сделать доставку по возможности сразу нескольких заказов, чтобы находился оптимальный маршрут по имеющимся заявкам, в зависимости от времени доставки в документах заказов чтобы захватывало максимальное количество заявок. Начальная точка отправки у меня всегда одна. А вот конечную нужно выбрать оптимальную и промежуточные точки тоже оптимальные. Есть ли идеи как эти можно реализовать через Google Maps API V3? Нет ли подобных наработок?
когда планируешь оптимизировать по веб?
Вопрос:
-Пакетное использование геокодирования строго запрещено в коммерческих целях, как у вас этим вопросом (договоренность есть)?
Обработка не открывается когда её пытаюсь запустить!
(25) проверь возможность запуска управляемых форм
(22) Появилась такая же задачка. Существует-ли какое-то решение?
(23) В принципе на инфостарте есть обработки которые уже оптимизированы под вэб. Если очень сильно надо то могу их наработки внедрить в данную версию
Есть нюанс, на стороне гугла, ПЕРВЫЙ адрес не может совпадать с каким-либо адресом из списка — в результате маршрут не стоится, видимо придется указывать соседний дом или корпус.
Группировку по времени — можно реализовать — дробно строить маршруты разбивая запрос к Гуглу на группы, например по времени или по почтовым индексам (на Википедии есть разбивка по главпочтамтам Москвы (другими словами по районам)
Спасибо
не работает:
Ошибка: Не удалось получить свойство display. Недопустимый аргумент.
(31)(31)(31) ilya005, И у меня такая ошибка, хотя до этого уже несколько лет работало нормально.
(31) Разобрался, нужно в макете (не знаю как тут, но у меня работает через макет) заменит «http://maps.google.com/maps/api/js?sensor=false» на»http://maps.google.com/maps/api/js?v=3.19&sensor=false», тоесть указать конкретную версию api.
Спасибо. Та же проблема. Макет подправил. Теперь карта открывается, но сразу же вываливается сообщение о невозможности отображать страницу в связи с нарушением условий использования карты.
(34) Andriyanov, проблема лечиться Вставкой корректного Ключа API
(33) Vovalnu, (35) albov,
что то у меня не получилось,
ни вставка ключа ни вставка версии не помогло…
теперь такая ошибка :
Строка: 3
Ошибка: «google» не определено
Во-первых, автору огромное спасибо за такую обработку!
Во-вторых,
(18) sarge_s, у меня почему то строит маршрут только если в таблице максимум 6 адресов, если больше, то отказывается строить.
Подсчет общего количества км по маршруту добавьте пожалуйста.
Обработка работает нормально, (Платформа 8.3.8.1502), но периодически выскакивает данная ошибка:
(Ошибка скрипта! Адрес URL «http://maps.google.com/maps-api-v3/api/js/23/8/intl/ru_ALL/onion.js»)
Я изменил в ХТМЛ коде map_canvas на map-canvas, а также «http://maps.google.com/maps/api/js?sensor=false» на «http://maps.google.com/maps/api/js?v=3&sensor=false»
Подскажите пожалуйста, как исправить? Может это связанно с Ключом API?
Подскажите как и куда вставить этот ключ? ( у меня есть ключ от google)
Спасибо!
Ошибка: Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой
Не работает больше с АПИ нужно зарегистрироваться получить ключ APi и вставить