<?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) Данные из журнала расчетов «Зарплата», вид расчетов задается.
Обработка ни о чем.
http://infostart.ru/public/89130/
Расчетчику нужно самостоятельно и своевременно контролировать кому вводить переработку (нужный вид расчета). Если это не сделано, то отчет ничего и не покажет.
Рекомендую
(4) Как раз Ваш отчет и не контролирует предел сверхурочных работ.
Вашим пользователям и нужен данный отчет, чтобы они видели чего же они навводили.
Кстати, через пять минут тестирования Вашего отчета, добавив сотруднику один день работы (8 часов)
получил то, что на картинке
(5)Да, получается, что у вас работник за учетный период (1 кв 08) отработал сверхурочно 344 часа. И что? Теперь не оплачивать их вдвойне раз превышен лимит? А если вы возражаете против этого числа (типа оно завышено), то возможны варианты:
— не верно задан график работы работника;
— не верно задан учетный период (надо выбрать год, вместо квартала);
— на самом деле имеет быть место неучтенная переработка, которая в нарушение другой статьи ТК не была оплачена в нужном размере.
(6) Не угадали. Ни одним из трех Ваших вариантов такого результата не достичь.
342 часа в двойном размере, при том, что в полуторном только 2 часа. Это как, в сутках сколько часов тогда?
(7)Я и не гадал. Я свои ответы на догадках не строю.
Причем тут двойные или полуторные часы? Обработка показывает кол-во фактически отработанных часов. Если при норме 480 часов, в журнале расчетов обнаружено фактически отработанных 824, то это о чем говорит?
(8) Упертый Вы товарищ. Я уж было хотел раскрыть «секрет», но пока не буду.
Это говорит о том, что в Вашем отчете есть ошибка.
342 часа в двойном размере, не может быть при двух часах в полуторном.
Ни при каких обстоятельствах не может.
(9)Причем здесь сутки? Первые 2 часа вообще за учетный период, а не за сутки.
Если вы выбрали стиль общения загадками, то прощайте. Загадывайте себе сами.
(10) Вот так считают … и не в керосиновой лавке.
(11)Во-первых, меня не интересуют неграмотные самописки и неграмотные бухгалтеры.
Во-вторых, у меня описывается вариант при суммированном учете рабочего времени, при котором общее количество сверхурочных часов определяется по итогам учетного периода, из которых первые два часа сверхурочной работы оплачиваются в полуторном размере.
(12) Как же Вы предсказуемы. Я ждал именно этого: «неграмотные самописки и неграмотные бухгалтеры».
Самописка кстати не моя, я на этом проекте — случайный прохожий. А контора по всей России филиалы имеет (потому и самописка не моя), так что «неграмотных бухгалтеров» не мало, да и не только в этой организации.
Но это пустой спор, его действительно надо прекратить.
PS: Таких вот грамотных в самой «1С» кстати не мало, там тоже любят пользователей носом в бумажки тыкать.
Я не против вдумчивого изучения нормативной базы, но край то надо видеть.
На мой взгляд надо учитывать что первые два часа сверхурочной работы оплачиваются в полуторном размере, а остальные в двойном (читай ТК), и уже на основании этого строить отчет по сверхурочным работам
(14) Читаем ТК, только все по разному. И что? Как в ДАННОМ отчет нужно (и можно ли) учитывать работы в полуторном размере? И зачем? Здесь выводится общее количество часов и объяснено для чего.
попробую скорей всего мне подойдет спасибо
спасибо. хороший отчет
Очень нужная и полезная вещь. Списибо большое!
Очень хороший отчет.
Вещь действительно нужная.
Списибо большое!