<?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='\
да, второй скрин вызывает увжение за юзеров, которые с ним работают…
Причем показана только одна закладка. А таких, видимо, три…
(2) на второй поменьше, на третей не помню уже
типа второго скрина видел, его бы озаглавить «Краткий отчет по некоторым параметрам» 🙂
(4) Почему по некоторым? «По всем мыслим и немыслимым» 🙂
Где-то читал: некоторые психологи утверджают, что среднестатистический человек нормально воспринимает на экране одновременно не более 5-ти элементов управления 🙂
С другой стороны: вот попробуйте потом этого юзера отучить от такого отчета 🙂
(5) душевно посмеялся
+ с добавкой ограниченными только размером экрана 🙂
(6) человек может воспринимать одновременно 7 плюс минус 2 элемента — ограничение оперативной памяти(или как она там называется)
меня убивает выравнивание элементов… это так специально сделано?
(8) Ну значит я не точно сказал, сколько там кто может воспринимать, но по-любому это не тот случай 🙂
(9) вообще то отчасти правильно, интерфейс должен быть рассчитан на всех, поэтому максимум должно быть 5 элементов =)
Второй скриншот порадовал!!!
В первой не понял в чем юмор (сам старлей в запасе ;))
(11) когда в первый раз увидел, улыбнула надпись «Виноват, исправлю» в окошке с предупреждением
по поводу второго скрина небольшая история:
Новый клиент. Сказали что беда с остатками — минусов много.
Приехал. Отчет открыли сами (он называется «готовая продукция» — я бы не сразу догадался, что остатки нужно в нем смотреть).
Когда увидел — небольшое замешательство, не знаю куда нажимать..
Клиент заметил замешательство и сказал с небольшой укоризной — вы же специалист по 1с и должны знать как отчет сформировать (дословно не помню, но суть была такова).
Так-то интересные настройки — можно эксперименты ставить.
Поставить галочку «быстрые остатки» и нажать на кнопку Остатки (долго) например..
Оба скрина повеселили отдуши. Во втором ещё порадовал перенос:
«Зая
витель» 🙂
Есть в нашей фирме конфа, у которой формы документов — тоже чем-то 2й скрин напоминают. Тоже есть несколько скринов, но я ещё не разобрался как здесь картинки в текст вставлять:(
В свете принесенного вчера распоряжения «… обеспечить технически невозможность проведения документов в торговой базе при наличии незаполненных полей …» впечатлило. А мы тут прикидываем, сопроводить ли эту невозможность проведения сообщением «С вопросами, замечаниями, пожеланиями обращаться по тел. <сотовый автора распоряжения>».
😮
порадовала кнопка «Искать» в центре формы 🙂
Мне клиент заказал всплывающее окно в ТиС 7.7 при продаже товара ниже себестоимости:
«А ты задумался чем будешь кормить семью в этом месяце?» —
вариант «Да» — проводится, записывая в регистр минусовой профит.
вариант «Нет» — отмена проведения.
(продажи в минус при этом, конечно же, вычитались при расчете зп. по продажам).
(18) Бред!
Иногда фирмы продают ниже себестоимости. Например, залежавшийся товар. Или рыночная цена изменилась.
И, думаю, никому не придет в голову вешать просчеты фирмы на менеджеров.
(19) но в любом случае — продаже ниже себестоимости не рядовое событие, поэтому требует контроля. Это ведь не прямой запрет..
Может Вам и приходилось работать с такими благородными бизнесменами,
и оттого сия ситуация кажется бредом.
Более того, у этих ребят, то что раздается клиентам в качестве призов-акций, вбивается в накладной по 1 копейке.
Естественно профит записывается отрицательный в сумме себестоимости товара. А затем прекрасно вычитается в полной сумме из заработной платы.
Просто продавцов дорывистых мало, а распечатка продаж в разрезе накладных и товаров занимает несколько листов для каждого за месяц.
Посему ее не делают.
Оттого богатые богатеют еще больше а продавцы…ну кто их бедных за людей считает.
картинки чот не открываются
куда то пропали картинки
куда-то пропали картинки?
страшно хочется посмотреть! )))
Анекдот в тему:
Профессор жил в общаге.
Студент в с соседней комнате каждый раз приходил поздно вечером и кидал сапоги об стену. Первый сапог — Бух! Второй — Бух!
Каждый день. Бух!… Бух!…
Бух!… Бух!…
Профессор зашел, сказал что выживет из института, если он будет сапоги об стену кидать.
На следующий день студент приходит. Бух!… Вспомнил профессора. Второй сапог поставил на пол.
Через какое-то время заходит профессор и говорит. Слышь студент, кинь второй сапог. Лежу, жду! 🙂
(22)(23)(24) adhocprog, обновил ссылки 🙂
(25) спасибо 🙂
Второй скрин очень понравился. Жизненный 🙂
А интересно на второй картинке вообще эта форма работает и как работник её заводит?
А у меня пользователи с трудом Универсальный отчет и отчеты на СКД осваивают. Покажу им ради смеха «Своеобразная форма настройки отчета» =)
Думаю, что начиналось всё с кнопки «Простая обработка». )))))))))