<?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='\
Какой-то реферат студента, состряпанный на коленке на 3 балла.
Возможно кто-то и получит зачет благодаря этому материалу.
Платежи, укладывающиеся в лимит, не требуют утверждения, а сразу поступают к казначею для исполнения.
Лимиты и утверждение платежа никак не связаны. Могут стоять лимиты и требовать подтверждение каждого платежа. Зависит от принятого в компании подхода.
(2) При сотнях платежей быстро отпадет желание утверждать
(3) это ваш субъективный взгляд и что там у кого отпадает в контексте платежей — решают руководители конкретной организации или кураторы.
Логичнее было назвать тему
«Мой взгляд на казначейский учет»
(3)У нас их тысячи….
(3)То что стоит лимит на закупку ТМЦ на 20 млн в месяц не означает что всякий кому не лень может без согласования закупать пока лимит не выберет.
(4) Вы можете написать статью и называть как угодно
(6) Руководитель отдела сам создает или поручает кому-нибудь закупать по плану. Явно лимит утверждали убеждая топ менеджеров конкретными выкладками, планами, проектами. Если закуплено будет не то, тогда репрессии.
(5) Топ менеджер утверждает каждый платеж, выясняя у каждого на что и зачем. Не жалко ему времени или он такой скурпулезный?
(9)Утверждает заявки ответственный человек. Если у вас в компании кроме ТОП менеджера ответственных за утверждение заявок нет то не надо переносить свой опыт на других.
В компниях есть фин диры, фин менеджеры и тд. А есть ещё многоэтапный процесс согласования.
В разных подразделениях разные правила. В одном фин дир подписывает не глядя заявки если они менее 100К рублей, в другом по масштабам ещё больше предприятие заявки до 5К подписывают не глядя, остальные надо согласовывать.
Правила и маршруты согласования могут быть очень разными, зависит от предприятия и принятых на нём правил.
За такую схему надо того кто её придумал увольнять. Задача в принципе не допускать закупки «не того». Если вы купите «не того» на 10 млн рублей, то потом хоть за репресируйтесь.
Утверждённый лимит совершенно не означает что именно сегодня можно взять деньги со счёта и пойти их тратить.
У вас похоже очень мало опыта в фин учёте.
(10)
Во первых учет казначейский, финансовый это другое.
Стиль работы как у Вас не единственный правильный.
(11)
Так я о «правильности» и не говорил….
Я же вроде написал:
Не суть…