<?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).
З.Ы. Козлов везде хватает.
А, кстати, давно уже убедился, что надпись 1с-совместимо еще совсем ничего не говорит. Может оказаться как нормальным продуктом, так и полной фигней. Все зависит от разработчика.
Хех… ) Франчи! Сказано же «позор 1С», разве можно было ожидать чего-то другого?… )
Типичный пример как человек «… не зная броду …» купил «продукт». Мало-ли что на заборе написано, хоть и с «1С-Совместимо».
Не то совсем опыта нет, не то доверчивый слишком. И ладн, если для одного клиента, так сразу на двух 🙂 Без обид, т.к. ничего личного.
Ждем-с грустную историю, как теперь автор выпутываться будет. А франчам нефиг на слово верить по той простой причине, что большинство из них попросту безответственные, лишь бы деньги хапнуть. Впрочем и «мама» от них недалеко ушла.
автор, как же ты купил, без демонстрации или без демоверсии ?
Товарищь, тебе явно не повезло.
Возможно это ошибка менеджера…
Стандартная комплектность поставки:
— коробка желтая 1С:Совместимо!
— компакт-диск
— документация в печ.виде
— рег.анкета
Если у тебя есть вопросы к фирме, то их нужно решать не с рядовым сотрудником, а с руководством фирмы.
Звони Андрею Владимировичу — заместителю директора.
Это будет по-взрослому… А если тебе не повезло с первого раза — попробуй со второго.
Данной программой пользуются порядка 150 организаций по всей Украине… и это только зарегистрированные пользователи…
Надеюсь, что и ты по достоинству оценишь данный продукт. В обновлении много интересного, в т.ч. в работе Табеля.
А распространять чужой продукт самостоятельно может каждый… вот ты научись работать с разработчиком…
Поддержка продукта в актуальном состоянии — дело непростое. Ты лучше подскажи, помоги… а не грязь лей…
Совешненно верно.
Кто связан с управлением фирмой или большими проектами — тот поймет.
На самом деле: вышел из отпуска начальник отдела продаж (Андрей Васильевич), проникся проблемой, вынес выговор менеджеру, оформлявшему сделку, позвонил Скрипту, извинился.
Теперь фирма готовит очередное обновление, которое, стандартным образом, будет выслано Клиенту, включая коробку, голографические марки, анкеты, документации и т.д.
Вопрос решен, я так думаю… Постараемся больше наших клиентов не огорчать
А продукт и в самом деле классный!
Кто писал свои «зарплаты» — тот оценит по достоинству.
Структура — модульная. Внедряется, практически, во все типовые.
Конфа живет и развивается. В очередном обновлении много вкусного.
кому интересно — заходи ,качай.
А ляпы в работе бывают у всех. Оличие в том, как из них выходить…
Мы к критике относимся с уважением, но и от похвалы не отказываемся.
Остаемся открытыми к сотрудничеству.
Всем спасибо.
к стати! продукт не защищен ключами!
абонплата в месяц — 90 грн.
в итоге сам всё сделал. молодец!
iAndrew и тут соврали, говорим о 90 грн/месяц на сайте же написано совсем другая сумма:
«По истечению года мы осуществляем сервисное обслуживание программ на условиях абонплаты – от 180 грн/месяц.»
пиар???
>iAndrew и тут соврали, говорим о 90 грн/месяц на сайте же написано совсем другая сумма:
Абонплата для конечного покупателя — 180 гр., даже если клиент купил у нашего дилера
А дилер платит нам 90 грн./мес. с каждого клиента.
Принцип такой же, как в классических ИТС-ах.
Я бы посоветывал автору сразу писать в контрольную группу 1с, и ни каких переговоров с ИНАГРО. На каждую Ж.. знаете что есть.
А iAndrew лучше бы молчал в тряпочку, тут не юзеры тусуются.
(6) СоболиныйГлаз, да вроде как выпутался. однако, откель така доверчивость у 1снега?
(9) iAndrew,
эта пять
**
в (16) озвучены правильные принципы такой работы