<?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), кстати да. Как Максиму Дорофееву оформить свой продукт и продавать его. Ездить по городам, читать лекции.
Например такие, со шведским столом. И все включено.
https://youtu.be/riF7GLRzg90
tl;dr
Я всех ненавидел, но потом переустал.
Бизнесы надо использовать для реализации собственных амбиций.
Работать надо преследуя личные цели и заниматься только интересными вещами, тогда все будут счастливы.
В жизни и работе нужна цель, тогда все будет хорошо.
Ни один вымышленный персонаж этих историй не пострадал.
Мы за все хорошее и против всего плохого.
на работе мы проводим — суммарно — полжизни. полжизни отдавать на работу? — это же нонсенс. есть два выхода — или чтобы работа стала твоим домом или ну ее нафиг такую работу. дома мы работаем и делаем все для кого? — для себя и родных. Ну так и на работе — делать надо для себя. Если это удается — ну и хорошо. Не удается (по разным причинам, как внешним так и внутренним) — НАХЕР такую работу. Уходим и ищем другое. Да, возможно потеряем в деньгах. но деньги вещь такая — воспроизводимая. а потраченное время — нет. Выбирайте что важнее.
Уровень ЧСВ овермного.
Два раза в месяц должно отпускать, в день аванса и зарплаты, может зарплату то же ненавидел получать, но это редкость.
тоже выгорал. очень так хорошо. сейчас стараюсь получать удовольствие от работы. это большая часть жизни и она должна быть сама по себе, а не только служить для накопления денег, которые можно потратить после неё.
Вот и я такой же. Есть немного, но их хватает. А зачем еще надрываться?
(7) два раза в месяц ты чувствуешь что все коллеги тебя ненавидят
Хорошо написано.
Но мне вот вспомнилось как лет так 15 назад, на предмете менеджмента мы рисовали табличку 9 на 9. Где на одной оси — интересы компании, на другой интересы сотрудника. Так вот точки 9,1 и 1, 9 — это плохие компании. Идеально 5,5.
Это я к чему? 🙂 Всё давно уже придумано, а мы как всегда не прочитав инструкции, пытаемся настроить телевизор :)))
(11)
а на предмете менеджмента рассказывали, как прийти к этой цифре?
(12) конечно нет. Всё-таки это был технический вуз. Основное — это было показать что кроме интересов работодателя, есть интересы сотрудников, и считаться с ними надо прилично.
(10)зарплату начисляешь?
Это дополнительная, очень серьезная нагрузка на руководителей, управлять коллективном индивидуалистов. Гораздо проще управлять «роботами». Наверное по этому такой подход встречается в основном на стартапах.
у этой статьи должно быть продолжение про то, как носишься вот так по компаниям, находишь вот такие интересные цели, проходит 5-10-15 лет и начинаешь думать — а что дальше то? невозможно же так до бесконечности. одни пытаются сменить 1с на с# или меняют предметную область, другие открывают своего франча, третьи подаются в управление проектом/консалт/аналитику, четвёртые становятся узкоспециализированными высокооплачиваемыми. но дальше то что? может быть свой интерес в чужом проекте — хорошо, но свой интерес в своём проекте — ещё лучше. простите за сумбурный поток мыслей.
Вообще-то, я немного верю в эту фразу.
Когда-то работал на заводе слесарем, учился на сварщика по вечерам. Мой приятель, сварщик, получал очень неплохо плюс нехилые шабашки. За выходные он мог нашабашить мою месячную зарплату. Но старшие товарищи на заводе и мои родители говорили, не ведись на длинный рубль, иди в институт, получай образование и я послушал их. И не пожалел. И до сих пор настороженно отношусь к «длинному рублю». Это настороженность уберегла меня в свое время от МММ и других неприятностей, на которых подорвались масса моих знакомых и друзей.
(13) вы просто написали, что всё уже придумано. Необходимость учитывать интересы — придумана. Как именно это делать — не так хорошо придумано. Примеров — вообще единицы.
Спасибо за чтиво! Все по делу. Во многом пересекается с моими установками. Невозможно ходить на работу просто чтобы выполнять чьи-то задачи, просто ради денег. Всегда должен быть фоновый процесс, вытканный из своих целей и задач. Так интереснее. И полезнее для всех. И тебе польза пока ты «свои дела делаешь», и компании хорошо — «устойчивость» сотрудника повышается.
Примерно все таке. С мотивацией и установкой целей особых проблем никогда не было.
На работу хожу с удовольствием, ухожу, когда жена звонит, и намекает, что уже 7 вечера, и пора домой.
Но столкнулся с задачей по сложности куда высшего порядка. Теперь надо пытаться найти ту самую цель и зажечь огонь в глазах разработчиков своей команды. Вот если бы на эту тему кто бы своим опытом поделился, получился бы реально полезный материал.