worknova.manus/setting-working.php
LAPTOP-V9RRD1TL\Michelle's Computer f8f8fcaf96 first commit
2025-07-21 21:38:17 +08:00

808 lines
44 KiB
PHP

<?php
include 'connect/cms-config.php' ;
include 'requires/function.php' ;
include 'requires/session.php' ;
// include the class
include 'requires/class_resize.php' ;
// keep parameter in value
$page = escapeString($_GET['page']) ;
$page_mode = escapeString($_GET['page_mode']) ;
$type = escapeString($_GET['type']) ;
$search = escapeString($_GET['search']) ;
// active menu bar
$active_main_menu = 'setting' ;
$active_sub_menu = 'setting-hr' ;
$active_menu = 'setting-hr-working' ;
// mode type | all list | new | edit
switch( $page_mode ){
// edit working
case 'new' :
case 'edit' :
// check query exsits
$submit_type = 'new' ;
$mysqli_page = $mysqli->query("SELECT * FROM setting_working_group
WHERE group_id = '".$page."' LIMIT 1");
if ($mysqli_page->num_rows > 0){
// keep query value in array
$row_page = $mysqli_page->fetch_array(MYSQLI_ASSOC) ;
$submit_type = 'edit' ;
}
// update database
if ( isset($type) && ( $type == 'new' || $type == 'edit' ) && $_POST['hide'] == 1 ){
// keep value in variable
$page_title = escapeString($_POST['title']) ;
$page_title = ($page_title != '' ? $page_title : 'No Title') ;
$boolean_add_working = false ;
if ( $page == '' ){
$mysqli->query("INSERT INTO setting_working_group (created_at) VALUES ('".TODAYDATE."')") ;
$page = $mysqli->insert_id ;
$boolean_add_working = true ;
}
// update database
$mysqli->query("UPDATE setting_working_group SET
group_name = '".$page_title."',
updated_at = '".TODAYDATE."'
WHERE group_id = '".$page."'") ;
$working_hours = $_POST['working_hours'] ;
foreach ( $working_hours as $key => $value ){
$working_day = $value ;
$working_on = ( !empty($_POST['working_on'][$value]) ? 'yes' : 'no' ) ;
$working_if_flexi = ( !empty($_POST['working_if_flexi'][$value]) ? 'yes' : 'no' ) ;
$working_if_include_rest = ( !empty($_POST['working_if_include_rest'][$value]) ? 'yes' : 'no' ) ;
$working_if_ot = ( !empty($_POST['working_if_ot'][$value]) ? 'yes' : 'no' ) ;
$working_if_fixed_work = ( !empty($_POST['working_if_fixed_work'][$value]) ? 'yes' : 'no' ) ;
$working_direct_day = ( !empty($_POST['working_direct_day'][$value]) ? 'yes' : 'no' ) ;
$working_if_ot_morning = ( !empty($_POST['working_if_ot_morning'][$value]) ? 'yes' : 'no' ) ;
$working_if_offduty = ( !empty($_POST['working_if_offduty'][$value]) ? 'yes' : 'no' ) ;
$working_if_deduct_offduty = ( !empty($_POST['working_if_deduct_offduty'][$value]) ? 'yes' : 'no' ) ;
$working_day_calculation = $_POST['working_day_calculation'][$value] ;
$working_morning_start = $_POST['working_morning_start'][$value] ;
$working_morning_end = $_POST['working_morning_end'][$value] ;
$working_period_before = $_POST['working_period_before'][$value] ;
$working_break_start = $_POST['working_break_start'][$value] ;
$working_break_end = $_POST['working_break_end'][$value] ;
$working_break_end_include_ot = $_POST['working_break_end_include_ot'][$value] ;
$working_afternoon_start = $_POST['working_afternoon_start'][$value] ;
$working_afternoon_end = $_POST['working_afternoon_end'][$value] ;
$working_shortbreak_start = $_POST['working_shortbreak_start'][$value] ;
$working_shortbreak_end = $_POST['working_shortbreak_end'][$value] ;
$working_night_start = $_POST['working_night_start'][$value] ;
$working_night_end = $_POST['working_night_end'][$value] ;
$working_ot_start = $_POST['working_ot_start'][$value] ;
$working_total_hours = $_POST['working_total_hours'][$value] ;
$working_total_hours = ( $working_total_hours <= '24:00' ? $working_total_hours : '24:00' ) ;
$working_total_rest_hours = $_POST['working_total_rest_hours'][$value] ;
$working_total_rest_hours = ( $working_total_rest_hours <= '24:00' ? $working_total_rest_hours : '24:00' ) ;
$working_rest_range_from = $_POST['working_rest_range_from'][$value] ;
$working_rest_range_from = ( $working_rest_range_from != '' ? $working_rest_range_from : NULL ) ;
$working_rest_range_to = $_POST['working_rest_range_to'][$value] ;
$working_rest_range_to = ( $working_rest_range_from != '' && $working_rest_range_to != '' ? $working_rest_range_to : $working_rest_range_from ) ;
$working_rest_include_ot = $_POST['working_rest_include_ot'][$value] ;
$working_rest_include_ot = ( $working_rest_include_ot != '' ? $working_rest_include_ot : NULL ) ;
//second
$working_total_rest_hours2 = $_POST['working_total_rest_hours2'][$value] ;
$working_total_rest_hours2 = ( $working_total_rest_hours2 <= '24:00' ? $working_total_rest_hours2 : '24:00' ) ;
$working_rest_range_from2 = $_POST['working_rest_range_from2'][$value] ;
$working_rest_range_from2 = ( $working_rest_range_from2 != '' ? $working_rest_range_from2 : NULL ) ;
$working_rest_range_to2 = $_POST['working_rest_range_to2'][$value] ;
$working_rest_range_to2 = ( $working_rest_range_from2 != '' && $working_rest_range_to2 != '' ? $working_rest_range_to2 : $working_rest_range_from2 ) ;
$working_rounding_ot = $_POST['working_rounding_ot'][$value] ;
$working_count_offduty = $_POST['working_count_offduty'][$value] ;
$working_count_offduty = ( $working_count_offduty <= '24:00' ? $working_count_offduty : '24:00' ) ;
$working_max_ot = $_POST['working_max_ot'][$value] ;
$working_max_ot = ( $working_max_ot != '' ? $working_max_ot : NULL ) ;
// check if exsits
$check_working = $mysqli->query("SELECT * FROM setting_working
WHERE group_id = '".$page."' AND working_day = '".$value."' LIMIT 1") ;
if ( $check_working->num_rows == 0 ){
$mysqli->query("INSERT INTO setting_working
(created_at) VALUES
('".TODAYDATE."')") ;
$working_id = $mysqli->insert_id ;
}else{
$row_working = $check_working->fetch_assoc() ;
$working_id = $row_working['working_id'] ;
}
// if morning end > morning start
$working_next_day = 'no' ;
if ( $working_break_start > $working_break_end ){
$working_next_day = 'yes' ;
}
$working_morning_end = date('H:i:s', strtotime($working_morning_start.' -1 seconds')) ;
$mysqli->query("UPDATE setting_working SET
group_id = '".$page."',
working_day = '".$working_day."',
working_on = '".$working_on."',
working_next_day = '".$working_next_day."',
working_if_include_rest = '".$working_if_include_rest."',
working_if_ot = '".$working_if_ot."',
working_direct_day = '".$working_direct_day."',
working_if_ot_morning = '".$working_if_ot_morning."',
working_if_flexi = '".$working_if_flexi."',
working_if_fixed_work = '".$working_if_fixed_work."',
working_day_calculation = '".$working_day_calculation."',
working_morning_start = '".$working_morning_start."',
working_morning_end = '".$working_morning_end."',
working_period_before = '".$working_period_before."',
working_break_start = '".$working_break_start."',
working_break_end = '".$working_break_end."',
working_break_end_include_ot = '".$working_break_end_include_ot."',
working_afternoon_start = '".$working_afternoon_start."',
working_afternoon_end = '".$working_afternoon_end."',
working_shortbreak_start = '".$working_shortbreak_start."',
working_shortbreak_end = '".$working_shortbreak_end."',
working_night_start = '".$working_night_start."',
working_night_end = '".$working_night_end."',
working_ot_start = '".$working_ot_start."',
working_total_hours = '".$working_total_hours."',
working_total_rest_hours = '".$working_total_rest_hours."',
working_total_rest_hours = '".$working_total_rest_hours."',
working_rest_range_from = ".( $working_rest_range_from != '' ? "'".$working_rest_range_from."'" : "NULL").",
working_rest_range_to = ".( $working_rest_range_to != '' ? "'".$working_rest_range_to."'" : "NULL").",
working_rest_include_ot = '".$working_rest_include_ot."',
working_total_rest_hours2 = '".$working_total_rest_hours2."',
working_rest_range_from2 = ".( $working_rest_range_from2 != '' ? "'".$working_rest_range_from2."'" : "NULL").",
working_rest_range_to2 = ".( $working_rest_range_to2 != '' ? "'".$working_rest_range_to2."'" : "NULL").",
working_rounding_ot = '".$working_rounding_ot."',
working_if_offduty = '".$working_if_offduty."',
working_count_offduty = '".$working_count_offduty."',
working_if_deduct_offduty = '".$working_if_deduct_offduty."',
working_max_ot = ".( $working_max_ot != '' ? "'".$working_max_ot."'" : "NULL").",
updated_at = '".TODAYDATE."'
WHERE working_id = '".$working_id."'") ;
}
// add system log
$array_remark = array('old' => array('title' => $row_page['working_name']),
'new' => array('title' => $page_title)) ;
// refresh page
header("Location:setting-working.php?page_mode=edit&page=".$page."&success=1") ;
$_SESSION['system_result'] = 'success-updated' ;
exit ;
}
// start header here
include 'requires/page_header.php';
include 'requires/page_top.php';
?>
<script>
$(document).ready(function(){
$('.copy_paste').click(function(){
var set_working_day_calculation = $('.set_working_day_calculation').first().val() ;
var set_working_morning_start = $('.set_working_morning_start').first().val() ;
var set_working_period_before = $('.set_working_period_before').first().val() ;
var set_working_break_start = $('.set_working_break_start').first().val() ;
var set_working_break_end = $('.set_working_break_end').first().val() ;
var set_working_break_end_include_ot = $('.set_working_break_end_include_ot').first().val() ;
var set_working_total_hours = $('.set_working_total_hours').first().val() ;
var set_working_total_rest_hours = $('.set_working_total_rest_hours').first().val() ;
var set_working_rest_range_from = $('.set_working_rest_range_from').first().val() ;
var set_working_rest_range_to = $('.set_working_rest_range_to').first().val() ;
var set_working_rest_include_ot = $('.set_working_rest_include_ot').first().val() ;
var set_working_total_rest_hours2 = $('.set_working_total_rest_hours2').first().val() ;
var set_working_rest_range_from2 = $('.set_working_rest_range_from2').first().val() ;
var set_working_rest_range_to2 = $('.set_working_rest_range_to2').first().val() ;
var set_working_rounding_ot = $('.set_working_rounding_ot').first().val() ;
var set_working_count_offduty = $('.set_working_count_offduty').first().val() ;
var set_working_max_ot = $('.set_working_max_ot').first().val() ;
$('.set_working_day_calculation').val( set_working_day_calculation ) ;
$('.set_working_morning_start').val( set_working_morning_start ) ;
$('.set_working_period_before').val( set_working_period_before ) ;
$('.set_working_break_start').val( set_working_break_start ) ;
$('.set_working_break_end').val( set_working_break_end ) ;
$('.set_working_break_end_include_ot').val( set_working_break_end_include_ot ) ;
$('.set_working_total_hours').val( set_working_total_hours ) ;
$('.set_working_total_rest_hours').val( set_working_total_rest_hours ) ;
$('.set_working_rest_range_from').val( set_working_rest_range_from ) ;
$('.set_working_rest_range_to').val( set_working_rest_range_to ) ;
$('.set_working_rest_include_ot').val( set_working_rest_include_ot ) ;
$('.set_working_total_rest_hours2').val( set_working_total_rest_hours2 ) ;
$('.set_working_rest_range_from2').val( set_working_rest_range_from2 ) ;
$('.set_working_rest_range_to2').val( set_working_rest_range_to2 ) ;
$('.set_working_rounding_ot').val( set_working_rounding_ot ) ;
$('.set_working_count_offduty').val( set_working_count_offduty ) ;
$('.set_working_max_ot').val( set_working_max_ot ) ;
if ( $('.set_working_on').first().attr('checked') ){
$('.set_working_on').prop("checked", true) ;
}else{
$('.set_working_on').prop("checked", false) ;
}
if ( $('.set_working_if_flexi').first().attr('checked') ){
$('.set_working_if_flexi').prop("checked", true) ;
$('.div_working_hours, .div_reset_hours_range, .div_working_direct_day').hide() ;
}else{
$('.set_working_if_flexi').prop("checked", false) ;
$('.div_working_hours, .div_reset_hours_range, .div_working_direct_day').show() ;
}
if ( $('.set_working_if_fixed_work').first().attr('checked') ){
$('.set_working_if_fixed_work').prop("checked", true) ;
}else{
$('.set_working_if_fixed_work').prop("checked", false) ;
}
if ( $('.set_working_if_include_rest').first().attr('checked') ){
$('.set_working_if_include_rest').prop("checked", true) ;
}else{
$('.set_working_if_include_rest').prop("checked", false) ;
}
if ( $('.set_working_if_ot').first().attr('checked') ){
$('.set_working_if_ot').prop("checked", true) ;
$('.div_ot_box').show() ;
}else{
$('.set_working_if_ot').prop("checked", false) ;
$('.div_ot_box').hide() ;
}
if ( $('.set_working_if_ot_morning').first().attr('checked') ){
$('.set_working_if_ot_morning').prop("checked", true) ;
}else{
$('.set_working_if_ot_morning').prop("checked", false) ;
}
if ( $('.set_working_count_format').first().attr('checked') ){
$('.set_working_count_format').prop("checked", true) ;
}else{
$('.set_working_count_format').prop("checked", false) ;
}
if ( $('.set_working_if_offduty').first().attr('checked') ){
$('.set_working_if_offduty').prop("checked", true) ;
}else{
$('.set_working_if_offduty').prop("checked", false) ;
}
if ( $('.set_working_if_deduct_offduty').first().attr('checked') ){
$('.set_working_if_deduct_offduty').prop("checked", true) ;
}else{
$('.set_working_if_deduct_offduty').prop("checked", false) ;
}
return false ;
}) ;
$('.set_working_if_flexi').change(function(){
var thisKey = $(this),
thisParent = thisKey.parents('.div_setting_working_box') ;
if ( thisKey.is(':checked') ){
thisParent.find('.div_working_hours').hide() ;
thisParent.find('.div_reset_hours_range').hide() ;
thisParent.find('.div_working_direct_day').hide() ;
}else{
thisParent.find('.div_working_hours').show() ;
thisParent.find('.div_reset_hours_range').show() ;
thisParent.find('.div_working_direct_day').show() ;
}
}) ;
$('.set_working_rounding_ot').keyup(function(){
var thisKey = $(this),
thisVal = thisKey.val() ;
if ( thisVal != '' ){
thisVal = parseInt(thisVal) ;
if ( thisVal > 60 ){
thisKey.val( '60' ) ;
}else{
thisKey.val( thisVal ) ;
}
}
}) ;
$('.set_working_if_ot').change( function(){
var thisKey = $(this) ;
if ( thisKey.attr('checked') ){
thisKey.parents('.div_setting_working_box').find('.div_ot_box').show() ;
}else{
thisKey.parents('.div_setting_working_box').find('.div_ot_box').hide() ;
}
}) ;
}) ;
</script>
<style>
#map-container, #canvas, #existMap {
height: 400px;
}
</style>
<div class="warper container-fluid">
<div class='container' style="background-color: white; border-radius: 10px;">
<div class="page-header" style="margin: 30px 0px 0px 0px;padding: 0px;">
<div class="row">
<div class="pull-left col">
<h1><?= $lang['working_hours'] ?> <small><?= $lang[$page_mode] ?></small></h1>
</div>
</div>
<?php
if ($_SESSION['system_result'] != ''){
switch($_SESSION['system_result']){
case 'success-updated' :
echo '
<div class="result_success">
'.$lang['thank_you_your_working_has_been_updated'].'
</div>' ;
break ;
}
unset($_SESSION['system_result']) ;
}
?>
</div>
<div class="panel panel-default">
<div class="panel-heading" style="text-align:right;">
<a href="#" class="copy_paste" style="font-size:12px;"><?= $lang['copy_paste'] ?></a>
</div>
<div class="panel-body">
<form method="post" class="form-horizontal" id="quotationForm" enctype="multipart/form-data" action="setting-working.php?page_mode=edit&page=<?= $page ?>&type=edit" novalidate="novalidate">
<div class="form-group">
<div class="col-sm-2 control-label"><?= $lang['working_title'] ?></div>
<div class="col-sm-9">
<input type="text" name="title" class="form-control ui-search-input" value="<?= dataFilter($row_page['group_name']) ?>" placeholder="<?= $lang['working_title'] ?>" >
</div>
</div>
<?php
$day_list = [ '1' => $lang['monday'],
'2' => $lang['tuesday'],
'3' => $lang['wednesday'],
'4' => $lang['thursday'],
'5' => $lang['friday'],
'6' => $lang['saturday'],
'7' => $lang['sunday'] ] ;
if ( $page != '' ){
$set_workings = [] ;
$get_query = $mysqli->query("SELECT * FROM setting_working
WHERE group_id = '".$page."'") ;
if ( $get_query->num_rows > 0 ){
while ( $value = $get_query->fetch_assoc() ){
$set_workings[$value['working_day']] = [
'working_on' => $value['working_on'],
'working_if_flexi' => $value['working_if_flexi'],
'working_next_day' => $value['working_next_day'],
'working_if_include_rest' => $value['working_if_include_rest'],
'working_if_ot' => $value['working_if_ot'],
'working_if_fixed_work' => $value['working_if_fixed_work'],
'working_day_calculation' => $value['working_day_calculation'],
'working_morning_start' => $value['working_morning_start'],
'working_morning_end' => $value['working_morning_end'],
'working_period_before' => $value['working_period_before'],
'working_break_start' => $value['working_break_start'],
'working_break_end' => $value['working_break_end'],
'working_break_end_include_ot' => $value['working_break_end_include_ot'],
'working_afternoon_start' => $value['working_afternoon_start'],
'working_afternoon_end' => $value['working_afternoon_end'],
'working_shortbreak_start' => $value['working_shortbreak_start'],
'working_shortbreak_end' => $value['working_shortbreak_end'],
'working_night_start' => $value['working_night_start'],
'working_night_end' => $value['working_night_end'],
'working_ot_start' => $value['working_ot_start'],
'working_direct_day' => $value['working_direct_day'],
'working_if_ot_morning' => $value['working_if_ot_morning'],
'working_total_hours' => $value['working_total_hours'],
'working_total_rest_hours' => $value['working_total_rest_hours'],
'working_rest_range_from' => $value['working_rest_range_from'],
'working_rest_range_to' => $value['working_rest_range_to'],
'working_rest_include_ot' => $value['working_rest_include_ot'],
'working_total_rest_hours2' => $value['working_total_rest_hours2'],
'working_rest_range_from2' => $value['working_rest_range_from2'],
'working_rest_range_to2' => $value['working_rest_range_to2'],
'working_rounding_ot' => $value['working_rounding_ot'],
'working_if_offduty' => $value['working_if_offduty'],
'working_count_offduty' => $value['working_count_offduty'],
'working_if_deduct_offduty' => $value['working_if_deduct_offduty'],
'working_max_ot' => $value['working_max_ot']
] ;
}
}
}else{
$set_workings = [] ;
for ( $a = 1 ; $a <= 7 ; $a++ ){
$set_workings[$a] = [
'working_on' => 'yes',
'working_if_flexi' => 'no',
'working_next_day' => 'no',
'working_if_include_rest' => 'no',
'working_if_ot' => 'no',
'working_direct_day' => 'no',
'working_if_ot_morning' => 'no',
'working_if_fixed_work' => 'no',
'working_day_calculation' => '00:01:00',
'working_morning_start' => '08:00:00',
'working_morning_end' => '08:00:00',
'working_period_before' => '0',
'working_break_start' => '09:00:00',
'working_break_end' => '18:00:00',
'working_break_end_include_ot' => '00:00:00',
'working_total_hours' => '08:00:00',
'working_total_rest_hours' => '01:00:00',
'working_rest_range_from' => '01:00:00',
'working_rest_range_to' => '01:00:00',
'working_rest_include_ot' => '00:00:00',
'working_total_rest_hours2' => '01:00:00',
'working_rest_range_from2' => '01:00:00',
'working_rest_range_to2' => '01:00:00',
'working_rounding_ot' => '1',
'working_if_offduty' => 'no',
'working_count_offduty' => '00:00:00',
'working_if_deduct_offduty' => 'no',
'working_max_ot' => '00:00'
] ;
}
}
foreach ( $set_workings as $key => $value ){
?>
<hr />
<div class="div_setting_working_box">
<div class="form-group">
<label class="col-md-12 col-sm-1 col-xs-12 text-center" style="font-size: 16px; text-decoration: underline;">
<input type="checkbox" value="yes" name="working_on[<?= $key ?>]" class="set_working_on" <?= $value['working_on'] == 'yes' ? 'checked' : '' ?> style="margin-right:10px" />
<b><?= $day_list[$key] ?></b>
</label>
<input type="hidden" name="working_hours[]" value="<?= $key ?>" />
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['flexible_hours'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_flexi[<?= $key ?>]" class="set_working_if_flexi" <?= $value['working_if_flexi'] == 'yes' ? 'checked' : '' ?> /> <?= $lang['check_if_flexible_hours'] ?>
</label>
</div>
</div>
<?php if (EXCELDETAIL == "YES"){ ?>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['work_day_calculation'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_day_calculation" type="text" name="working_day_calculation[<?= $key ?>]" id="set_working_day_calculation" placeholder="00:00" value="<?= !empty($value['working_day_calculation']) ? substr($value['working_day_calculation'], 0, 5) : '' ?>" data-timepicker required />
</div>
</div>
<?php } ?>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['working_start'] ?></label>
<div class="col-md-5 col-sm-5 col-xs-4" noted="几点开始打卡,属于今天的打卡时间" >
<input class="form-control set_working_morning_start" type="text" name="working_morning_start[<?= $key ?>]" id="working_morning_start" placeholder="00:00" value="<?= !empty($value['working_morning_start']) ? substr($value['working_morning_start'], 0, 5) : '' ?>" data-timepicker required />
</div>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_period_before" type="text" name="working_break_end_include_ot[<?= $key ?>]" id="working_break_end_include_ot" placeholder="0" value="<?= !empty($value['working_break_end_include_ot']) ? $value['working_break_end_include_ot'] : '0' ?>" />
<label style="margin-top:3px;">* <?= $lang['set_the_X_hours_before_the_ending_working_hours'] ?></label>
</div>
</div>
<div class="form-group div_working_hours" <?= ( $value['working_if_flexi'] == 'yes' ? 'style="display:none;"' : '' ) ?> >
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['working_hours'] ?></label>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_break_start" type="text" name="working_break_start[<?= $key ?>]" id="working_break_start" placeholder="00:00" value="<?= !empty($value['working_break_start']) ? substr($value['working_break_start'], 0, 5) : '' ?>" data-timepicker required />
</div>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_break_end" type="text" name="working_break_end[<?= $key ?>]" id="working_break_end" placeholder="00:00" value="<?= !empty($value['working_break_end']) ? substr($value['working_break_end'], 0, 5) : '' ?>" data-timepicker required />
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_fixed_work[<?= $key ?>]" class="set_working_if_fixed_work" <?= $value['working_if_fixed_work'] == 'yes' ? 'checked' : '' ?> /> Tick if fixed working hours?
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['total_working_hours'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_total_hours" type="text" name="working_total_hours[<?= $key ?>]" id="working_total_hours" placeholder="00:00" value="<?= !empty($value['working_total_hours']) ? substr($value['working_total_hours'], 0, 5) : '' ?>" data-timepicker required />
</div>
</div>
<div style="background-color: #f9f9f9a1">
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['total_rest_hours'] ?> 1</label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_total_rest_hours" type="text" name="working_total_rest_hours[<?= $key ?>]" id="working_total_rest_hours" placeholder="00:00" value="<?= !empty($value['working_total_rest_hours']) ? substr($value['working_total_rest_hours'], 0, 5) : '' ?>" data-timepicker required />
</div>
</div>
<div class="form-group div_reset_hours_range" <?= ( $value['working_if_flexi'] == 'yes' ? 'style="display:none;"' : '' ) ?> >
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['rest_hours_range'] ?> 1</label>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_rest_range_from" type="text" name="working_rest_range_from[<?= $key ?>]" id="working_rest_range_from" placeholder="00:00" value="<?= !empty($value['working_rest_range_from']) ? substr($value['working_rest_range_from'], 0, 5) : '' ?>" data-timepicker />
</div>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_rest_range_to" type="text" name="working_rest_range_to[<?= $key ?>]" id="working_rest_range_to" placeholder="00:00" value="<?= !empty($value['working_rest_range_to']) ? substr($value['working_rest_range_to'], 0, 5) : '' ?>" data-timepicker />
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right">Over X Hours Deduct Rest 1</label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_rest_include_ot" type="text" name="working_rest_include_ot[<?= $key ?>]" id="working_rest_include_ot" placeholder="00:00" value="<?= !empty($value['working_rest_include_ot']) ? substr($value['working_rest_include_ot'], 0, 5) : '' ?>" data-timepicker required />
<label style="margin-top:3px;">* Only affected for half day working</label>
</div>
</div>
<div style="background-color: #f9f9f9a1">
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['total_rest_hours'] ?> 2</label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_total_rest_hours2" type="text" name="working_total_rest_hours2[<?= $key ?>]" id="working_total_rest_hours2" placeholder="00:00" value="<?= !empty($value['working_total_rest_hours2']) ? substr($value['working_total_rest_hours2'], 0, 5) : '' ?>" data-timepicker required />
</div>
</div>
<div class="form-group div_reset_hours_range" <?= ( $value['working_if_flexi'] == 'yes' ? 'style="display:none;"' : '' ) ?> >
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['rest_hours_range'] ?> 2</label>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_rest_range_from2" type="text" name="working_rest_range_from2[<?= $key ?>]" id="working_rest_range_from2" placeholder="00:00" value="<?= !empty($value['working_rest_range_from2']) ? substr($value['working_rest_range_from2'], 0, 5) : '' ?>" data-timepicker />
</div>
<div class="col-md-5 col-sm-5 col-xs-4" >
<input class="form-control set_working_rest_range_to2" type="text" name="working_rest_range_to2[<?= $key ?>]" id="working_rest_range_to2" placeholder="00:00" value="<?= !empty($value['working_rest_range_to2']) ? substr($value['working_rest_range_to2'], 0, 5) : '' ?>" data-timepicker />
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right">Count as Late</label>
<div class="col-md-10 col-sm-10 col-xs-4" >
<input class="form-control set_working_period_before" type="text" name="working_period_before[<?= $key ?>]" id="working_period_before" placeholder="0" value="<?= !empty($value['working_period_before']) ? $value['working_period_before'] : '0' ?>" />
<label style="margin-top:3px;" >
* Set the X minutes to count as late
</label>
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['working_day_include'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4">
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_include_rest[<?= $key ?>]" class="set_working_if_include_rest" <?= $value['working_if_include_rest'] == 'yes' ? 'checked' : '' ?> /> <?= $lang['check_if_count_day_include_rest_hours'] ?>
</label>
</div>
</div> -->
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['ot'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4">
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_ot[<?= $key ?>]" class="set_working_if_ot" <?= $value['working_if_ot'] == 'yes' ? 'checked' : '' ?> /> Tick if have OT
</label>
</div>
</div>
<div class="div_ot_box" style="display:<?= $value['working_if_ot'] == 'yes' ? 'block;' : 'none;' ?>" >
<div class="form-group div_working_direct_day" <?= ( $value['working_if_flexi'] == 'yes' ? 'style="display:none;"' : '' ) ?> >
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['ot_count_format'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4">
<!-- <label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_direct_day[<?= $key ?>]" class="set_working_count_format" <?= $value['working_direct_day'] == 'yes' ? 'checked' : '' ?> /> Tick if combine all working hours as OT hours
</label><br /> -->
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_ot_morning[<?= $key ?>]" class="set_working_if_ot_morning" <?= $value['working_if_ot_morning'] == 'yes' ? 'checked' : '' ?> /> Tick if morning count as OT?
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['ot_rounding'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-8" >
<input class="form-control set_working_rounding_ot" type="text" name="working_rounding_ot[<?= $key ?>]" id="working_rounding_ot" placeholder="0" value="<?= !empty($value['working_rounding_ot']) ? $value['working_rounding_ot'] : '' ?>" max="60" />
<font color="red" style="font-size: 11px;">* <?= $lang['x_minutes_for_ot_rounding_number_format'] ?></font>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['off_duty'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4">
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_offduty[<?= $key ?>]" class="set_working_if_offduty" <?= $value['working_if_offduty'] == 'yes' ? 'checked' : '' ?> /> Tick if off duty?
</label>
<div>
<input class="form-control set_working_count_offduty" type="text" name="working_count_offduty[<?= $key ?>]" id="working_count_offduty" placeholder="00:00" value="<?= !empty($value['working_count_offduty']) ? substr($value['working_count_offduty'], 0, 5) : '' ?>" data-timepicker />
<font color="red" style="font-size: 11px;">* <?= $lang['x_minutes_later_clock_out_counted_as_ot'] ?></font>
</div>
<label style="margin-top:3px;">
<input type="checkbox" value="yes" name="working_if_deduct_offduty[<?= $key ?>]" class="set_working_if_deduct_offduty" <?= $value['working_if_deduct_offduty'] == 'yes' ? 'checked' : '' ?> /> <?= $lang['deduct_the_off_duty_x_minutes_later'] ?>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2 col-sm-2 col-xs-4 text-right"><?= $lang['maximum_OT_hours'] ?></label>
<div class="col-md-10 col-sm-10 col-xs-4">
<div>
<input class="form-control set_working_max_ot" type="text" name="working_max_ot[<?= $key ?>]" id="working_max_ot" placeholder="00:00" value="<?= !empty($value['working_max_ot']) ? substr($value['working_max_ot'], 0, 5) : '' ?>" data-timepicker />
</div>
</div>
</div>
</div>
</div>
<?php
}
?>
<?php if ( ( $page_mode == 'new' && permissionCheck($row_user, 'hr-working-hours-new') ) || ( $page_mode == 'edit' && permissionCheck($row_user, 'hr-working-hours-edit') ) ){ ?>
<div class="form-group">
<div class="col-sm-2 control-label"></div>
<div class="col-sm-9">
<button type="submit" class="btn" style="color:white;background-color: #5e5bd0;float:right; margin-top: 5px;width: 100px;"><?= $lang['submit'] ?></button>
<input type="hidden" name="hide_status" value="<?= $row_page['post_status'] ?>" />
<input type="hidden" name="hide" value="1">
<input type="hidden" name="page_status" value="<?= $submit_type ?>">
</div>
</div>
<?php } ?>
</form>
</div>
</div>
</div>
</div>
<script src="/scripts/timepicker.js"></script><!-- timepicker -->
<?php
break ;
// all working list
case 'all' :
default :
// check permission
if ( !permissionCheck($row_user, 'hr-working-hours-view') ){
echo '<script>alert("Sorry You Don\'t Have The Permission.")</script>';
header('Location: index.php') ;
exit ;
}
// query type
$search_query = '' ;
// search query
if ($search != ''){
$search_query .= " AND (group_name LIKE '%".$search."%')" ;
}
// form submit
if ($_POST['hide'] == '1' && $_POST['hide_status'] == 'action'){
// trash item
switch($_POST['page_action']){
case 'trash':
$mysqli_query = "UPDATE " . setting_working_group . " SET
deleted_at = '".TODAYDATE."'
WHERE group_id = " ;
$trash_page = trashPage('working', $mysqli, $mysqli_query, $_POST['multiple_trash']) ;
break;
}
}
// pagination
if (isset($page) && !empty($page)) { $product_page = $page ; } else { $product_page = 1 ; } // next and prev page (5 thing need to change)
$start_from = ($product_page - 1) * LIMIT ; //end next and prev page
// set search url
$search_url = 'search='.$search ;
// page query
$mysqli_query = "SELECT * FROM setting_working_group
WHERE deleted_at IS NULL " . $search_query ;
$mysqli_page = $mysqli->query($mysqli_query." ORDER BY group_id LIMIT $start_from, " . LIMIT) ;
// load pagination
$page_pagination = nextPrevious($product_page, LIMIT, $search_url, $mysqli_query) ;
// start header here
include 'requires/page_header.php' ;
include 'requires/page_top.php' ;
?>
<!-- Header Ends -->
<div class="warper container-fluid">
<div class='container' style="background-color: white; border-radius: 10px;">
<div class="page-header" style="margin: 30px 0px 0px 0px;padding: 0px;">
<div class="row">
<div class="pull-left col">
<h1><?= $lang['working_hours'] ?> <small><?= $lang['list'] ?></small></h1>
</div>
<div class="pull-right col">
<?php if ( permissionCheck($row_user, 'hr-working-hours-new') ){ ?>
<a href="setting-working.php?page_mode=new" class="btn" style="color:white;background-color: #5e5bd0;" target="_blank"><?= $lang['add_new'] ?></a>
<?php } ?>
<a href="hr-timetable.php?page_mode=user" class="btn" style="color:white;background-color: #5e5bd0;" target="_blank"><?= $lang['by_user'] ?></a>
<a href="hr-timetable.php?page_mode=dep" class="btn" style="color:white;background-color: #5e5bd0;" target="_blank"><?= $lang['by_department'] ?></a>
<a href="hr-timetable.php?page_mode=schedule" class="btn" style="color:white;background-color: #5e5bd0;" target="_blank"><?= $lang['by_schedule'] ?></a>
</div>
</div>
</div>
<form method="post">
<?php if ( permissionCheck($row_user, 'hr-working-hours-trash') ){ ?>
<!-- trash -->
<div class="panel panel-default">
<div class="panel-body">
<select name="page_action" class="form-control selectpicker">
<option value=""><?= $lang['select'] ?></option>
<option value="trash"><?= $lang['move_to_trash'] ?></option>
</select>
<input type="hidden" name="hide" value="1" />
<input type="hidden" name="hide_status" value="action" />
<input type="submit" class="btn" style="color:white; background-color:#5e5bd0; width:100px;" value="<?= $lang['submit'] ?>" />
</div>
</div>
<!-- end trash -->
<?php } ?>
<div class="panel panel-default">
<div class="panel-heading"></div>
<div class="panel-body">
<table cellpadding="0" cellspacing="0" border="0" class="responsive table table-striped table-bordered" id="basic-datatable">
<thead>
<tr>
<th><?= $lang['title'] ?></th>
<th><?= $lang['date'] ?></th>
<th width="50"><?= $lang['trash'] ?></th>
</tr>
</thead>
<tbody>
<?php
if ($mysqli_page->num_rows > 0){
while ($row_page = $mysqli_page->fetch_array(MYSQLI_ASSOC)){
// default variable
$id = $row_page['group_id'] ;
$title = dataFilter($row_page['group_name']) ;
echo '
<tr class="odd gradeX">
<td><a href="setting-working.php?page_mode=edit&page='.$id.'">'.$title.'</a></td>
<td>'.resetDateFormat($row_page['created_at']).'</td>
<td>
<div class="checkbox multiple_trash">
<input type="checkbox" name="multiple_trash['.$id.']" class="trash_button" value="1">
<label for="checkbox1"></label>
</div>
</td>
</tr>';
}
}else{
echo '
<tr class="odd gradeX">
<td class="border_none">'.$lang['no_data'].'</td>
<td class="border_none"></td>
<td class="border_none"></td>
</tr>' ;
}
?>
</tbody>
</table>
<?= $page_pagination['page_pagination'] ?>
</div>
</div>
</form>
</div>
</div>
<?php
break ;
}
// footer
include 'requires/page_footer.php' ;
?>