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

545 lines
25 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 = 'service' ;
$active_sub_menu = 'form-submission' ;
$active_menu = 'form-resignation-list' ;
// check permission
if ( !permissionCheck($row_user, 'form-resignation-view') ){
header('Location: index.php') ;
exit ;
}
// mode type | all list | new | edit
switch($page_mode){
// edit formresignation
case 'new' :
case 'edit' :
// check query exsits
$submit_type = 'new' ;
$mysqli_page = $mysqli->query("SELECT * FROM formresignation
WHERE formresignation_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 ){
// // update database
// $mysqli->query( "UPDATE formresignation SET
// comment = '".escapeString($_POST['comment'])."',
// status = '".escapeString($_POST['status'])."'
// WHERE formresignation_id = '".$page."'" ) ;
// if ( $row_page['status'] != $_POST['status'] ){
// pushToUserCron( 'formresignation', $page, $row_page['staff_id'], 'Resignation', 'Resignation has been update.' ) ;
// }
// // refresh page
// header("Location:app-form-resignation.php?page_mode=edit&page=".$page."&success=1") ;
// $_SESSION['system_result'] = 'success-updated' ;
// exit ;
// }
if ( ( $page_mode == 'new' && !permissionCheck($row_user, 'form-resignation-new') ) ||
( $page_mode == 'edit' && !permissionCheck($row_user, 'form-resignation-edit') ) ){
header('Location: app-form-resignation.php') ;
exit ;
}
// get all media
$media_list = [] ;
$mysqli_media = $mysqli->query( "SELECT file, filetype FROM formresignation_media
WHERE deleted_at IS NULL AND formresignation_id = '".$page."'" ) ;
if ( $mysqli_media->num_rows > 0 ){
while ( $row_media = $mysqli_media->fetch_assoc() ){
$media_list[] = $row_media ;
}
}
// get all staff
$staff_list = [] ;
$mysqli_staff = $mysqli->query( "SELECT staff_id, staff_name, staff_idno FROM staff
WHERE deleted_at IS NULL ".$user_branch_permission_sql) ;
if ( $mysqli_staff->num_rows > 0 ){
while ( $row_staff = $mysqli_staff->fetch_assoc() ){
$staff_list[$row_staff['staff_id']] = dataFilter($row_staff['staff_name']) . ' ( ' . dataFilter($row_staff['staff_idno']) . ' )' ;
}
}
// start header here
include 'requires/page_header.php';
include 'requires/page_top.php';
?>
<div class="warper container-fluid">
<div class="page-header"><h1>Resignation <small><?= $lang[$page_mode] ?></small></h1></div>
<div class="panel panel-default">
<div class="panel-heading"></div>
<div class="panel-body">
<form method="post" class="form-horizontal" id="quotationForm" enctype="multipart/form-data" action="app-form-resignation.php?page_mode=edit&page=<?= $page ?>&type=edit" novalidate="novalidate">
<div class="form-group">
<div class="col-sm-2 control-label">Staff</div>
<div class="col-sm-9">
<select name="staff_id" id="staff_id" class="chosen-select form-control tab_index ui-dropdown-select ui-search-input select2-basic-single" disabled >
<option value="">Select</option>
<?php
if ( count($staff_list) > 0 ){
foreach ( $staff_list as $k => $v ){
echo '<option value="'.$k.'" '.( $k == $row_page['staff_id'] ? 'selected' : '').'>'.$v.'</option>' ;
}
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">Title</div>
<div class="col-sm-9">
<input type="text" name="title" class="form-control ui-search-input" readonly value="<?= dataFilter($row_page['title']) ?>" placeholder="Title" />
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">Content</div>
<div class="col-sm-9">
<textarea name="content" class="form-control ui-search-input" readonly rows="10" cols="80"><?= dataFilter($row_page['content']) ?></textarea>
</div>
</div>
<?php if ( count($media_list) ){ ?>
<div class="form-group form-group-pdf">
<div class="col-sm-2 control-label"><?= $lang['preview']?></div>
<div class="col-sm-9">
<?php foreach ( $media_list as $k => $row_image ){ ?>
<?php
switch ( $row_image['filetype'] ){
case 'jpg' :
case 'jpeg' :
case 'png' :
echo '
<a href="'.PATH.'uploads/FormResignation/b/'.dataFilter($row_image['file']).'" class="fancybox fancybox_iframe fancybox_iframe_background" style="background-image:url('.PATH.'uploads/FormResignation/'.dataFilter($row_image['file']).')" >
</a>' ;
break ;
default :
echo '
<a href="'.PATH.'uploads/FormResignation/'.dataFilter($row_image['file']).'" target="_blank" class="fancybox_iframe_background" style="background-image:url(images/filetype/'.$row_image['filetype'].'.png)" >
</a>' ;
}
?>
<?php } ?>
</div>
</div>
<?php } ?>
<hr />
<?php if ( $row_page['date_manager'] != '' ){ ?>
<div class="form-group">
<div class="col-sm-2 control-label">Manager Date Approve</div>
<div class="col-sm-9">
<pre><?= resetDateTimeFormat($row_page['date_manager']) ?></pre>
</div>
</div>
<?php } ?>
<div class="form-group">
<div class="col-sm-2 control-label">Manager</div>
<div class="col-sm-9">
<select name="staff_id_manager" id="staff_id_manager" class="chosen-select form-control tab_index ui-dropdown-select ui-search-input select2-basic-single" disabled >
<option value="">Select</option>
<?php
if ( count($staff_list) > 0 ){
foreach ( $staff_list as $k => $v ){
echo '<option value="'.$k.'" '.( $k == $row_page['staff_id_manager'] ? 'selected' : '').'>'.$v.'</option>' ;
}
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">Manager Status</div>
<div class="col-sm-9">
<select name="status_manager" id="status_manager" class="form-control ui-search-input" disabled >
<option value="pending" <?= ( $row_page['status_manager'] == 'pending' ? 'selected' : '' ) ?> >Pending</option>
<option value="confirmed" <?= ( $row_page['status_manager'] == 'confirmed' ? 'selected' : '' ) ?> >Confirmed</option>
<option value="rejected" <?= ( $row_page['status_manager'] == 'rejected' ? 'selected' : '' ) ?> >Rejected</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">Manager Comment</div>
<div class="col-sm-9">
<pre><?= dataFilter($row_page['comment_manager']) ?></pre>
</div>
</div>
<hr />
<?php if ( $row_page['date_hr'] != '' ){ ?>
<div class="form-group">
<div class="col-sm-2 control-label">HR Date Approve</div>
<div class="col-sm-9">
<pre><?= resetDateTimeFormat($row_page['date_hr']) ?></pre>
</div>
</div>
<?php } ?>
<div class="form-group">
<div class="col-sm-2 control-label">HR Manager</div>
<div class="col-sm-9">
<select name="staff_id_hr" id="staff_id_hr" class="chosen-select form-control tab_index ui-dropdown-select ui-search-input select2-basic-single" disabled >
<option value="">Select</option>
<?php
if ( count($staff_list) > 0 ){
foreach ( $staff_list as $k => $v ){
echo '<option value="'.$k.'" '.( $k == $row_page['staff_id_hr'] ? 'selected' : '').'>'.$v.'</option>' ;
}
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">HR Manager Status</div>
<div class="col-sm-9">
<select name="status_hr" id="status_hr" class="form-control ui-search-input" disabled >
<option value="pending" <?= ( $row_page['status_hr'] == 'pending' ? 'selected' : '' ) ?> >Pending</option>
<option value="confirmed" <?= ( $row_page['status_hr'] == 'confirmed' ? 'selected' : '' ) ?> >Confirmed</option>
<option value="rejected" <?= ( $row_page['status_hr'] == 'rejected' ? 'selected' : '' ) ?> >Rejected</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-2 control-label">HR Manager Comment</div>
<div class="col-sm-9">
<pre><?= dataFilter($row_page['comment_hr']) ?></pre>
</div>
</div>
</form>
</div>
</div>
</div>
<?php
break ;
// all announcement list
case 'all' :
default :
$search_name = escapeString($_GET['search_name']) ;
$search_idno = escapeString($_GET['search_idno']) ;
$search_mobile = escapeString($_GET['search_mobile']) ;
$search_mail = escapeString($_GET['search_mail']) ;
$search_date = ( $_GET['search_date']!= '' ? date('Y-m-d', strtotime($_GET['search_date'])) : '' ) ;
$search_update_date = ( $_GET['search_update_date']!= '' ? date('Y-m-d', strtotime($_GET['search_update_date'])) : '' ) ;
$search_status_manager = escapeString($_GET['search_status_manager']) ;
$search_status_hr = escapeString($_GET['search_status_hr']) ;
$export_excel = escapeString($_GET['export-excel']) ;
// query type
$search_query = '' ;
// search query
if ( $search != '' ){
$search_query .= " AND ( title LIKE '%".$search."%' )" ;
}
if( $search_name != ''){
$search_query .= " AND b.staff_name LIKE '%".$search_name."%'" ;
}
if( $search_idno != ''){
$search_query .= " AND b.staff_idno LIKE '%".$search_idno."%'" ;
}
if( $search_mobile != ''){
$search_query .= " AND b.staff_mobileno LIKE '%".$search_mobile."%'" ;
}
if( $search_mail != ''){
$search_query .= " AND b.staff_email LIKE '%".$search_mail."%'" ;
}
if ( $search_date != '' ){
$search_query .= " AND a.created_at like '%".$search_date."%' " ;
}
if ( $search_update_date != '' ){
$search_query .= " AND a.updated_at like '%".$search_update_date."%' " ;
}
if( $search_status_manager != ''){
$search_query .= " AND a.status_manager = '".$search_status_manager."'" ;
}
if( $search_status_hr != ''){
$search_query .= " AND a.status_hr = '".$search_status_hr."'" ;
}
$get_user_tier = userTierQuery( $row_user ) ;
$search_query .= ( $get_user_tier['check'] ? " AND b.staff_tier IN ( ".implode(', ', $get_user_tier['tiers'])." )" : '' ) ;
// form submit
if ( $_POST['hide'] == '1' && $_POST['hide_status'] == 'action' ){
switch($_POST['page_action']){
case 'trash':
$mysqli_query = "UPDATE formresignation SET
deleted_at = '".TODAYDATE."'
WHERE formresignation_id = " ;
$trash_page = trashPage('formresignation', $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.'&search_name='.$search_name.'&search_date='.$search_date.'&search_update_date='.$search_update_date.'&page_mode='.$page_mode.'&search_idno='.$search_idno.'&search_mobile='.$search_mobile.'&search_mail='.$search_mail.'&search_status_manager='.$search_status_manager.'&search_status_hr='.$search_status_hr ;
// page query
$mysqli_query = "SELECT a.*, b.staff_idno, b.staff_name FROM formresignation a
LEFT JOIN staff b ON ( a.staff_id = b.staff_id )
WHERE a.deleted_at IS NULL " . $search_query.$user_branch_permission_sql_b ;
$mysqli_page = $mysqli->query( $mysqli_query." ORDER BY a.formresignation_id DESC LIMIT $start_from, " . LIMIT ) ;
// load pagination
$page_pagination = nextPrevious($product_page, LIMIT, $search_url, $mysqli_query) ;
if ( $export_excel == 'export_eae' ){
$page_export_file_name = 'Resignation Report-';
$array_header_excel = array(
'No.',
'ID',
'Name',
'Subject',
'Manager Status',
'HR Manager Status',
'Created Date',
'Updated Date'
) ;
$mysqli_export = $mysqli->query( $mysqli_query ) ;
if ( $mysqli_export->num_rows > 0 ){
$count_mysqli_export_page = 0;
while ( $mysqli_export_page = $mysqli_export->fetch_assoc() ){
$count_mysqli_export_page ++;
$array_body_excel[] = array(
$count_mysqli_export_page,
$mysqli_export_page['staff_idno'],
$mysqli_export_page['staff_name'],
$mysqli_export_page['title'],
$mysqli_export_page['status_manager'],
$mysqli_export_page['status_hr'],
date('Y-m-d', strtotime($mysqli_export_page['created_at'])),
date('Y-m-d', strtotime($mysqli_export_page['updated_at']))
) ;
}
$count_mysqli_export_page = 0;
}
include 'export_excel_default.php';
}
// start header here
include 'requires/page_header.php' ;
include 'requires/page_top.php' ;
?>
<!-- Header Ends -->
<div class="warper container-fluid">
<div class="page-header">
<h1>Resignation <small><?= $lang['list']?></small></h1>
</div>
<div class="panel panel-default" id="basic-table-title">
<div class="panel-heading" style="text-align:right">
<a href="?search_name=<?= $search_name ?>&search_idno=<?= $search_idno ?>&search_mobile=<?= $search_mobile ?>&search_mail=<?= $search_mail ?>&search_date=<?= $search_date ?>&search_update_date=<?= $search_update_date ?>&search_type=<?= $search_type ?>&page_mode=list&search=<?= $search ?>&export-excel=export_eae">Export As Excel</a>
</div>
<div class="panel-body">
<form method="get" class="form-horizontal" style="max-width:600px;">
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['Name'] ?></label>
<div class="col-sm-9">
<input type="text" name="search_name" value="<?= $search_name ?>" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['ID No'] ?></label>
<div class="col-sm-9">
<input type="text" name="search_idno" value="<?= $search_idno ?>" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['Mobile'] ?></label>
<div class="col-sm-9">
<input type="text" name="search_mobile" value="<?= $search_mobile ?>" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['email'] ?></label>
<div class="col-sm-9">
<input type="text" name="search_mail" value="<?= $search_mail ?>" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['Created At'] ?></label>
<div class="col-sm-9">
<input class="form-control" name="search_date" type="date" value="<?= $search_date ?>" placeholder="Date Resigned">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"><?= $lang['Updated At'] ?></label>
<div class="col-sm-9">
<input class="form-control" name="search_update_date" type="date" value="<?= $search_update_date ?>" placeholder="Date Updated">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Manager Status</label>
<div class="col-sm-9">
<select class="form-control" name="search_status_manager">
<option value=""><?= $lang['All'] ?></option>
<option value="pending" <?= ($search_status_manager == 'pending' ? 'selected' : '') ?>>Pending</option>
<option value="confirmed" <?= ($search_status_manager == 'confirmed' ? 'selected' : '') ?>>Confirmed</option>
<option value="rejected" <?= ($search_status_manager == 'rejected' ? 'selected' : '') ?>>Rejected</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">HR Manager Status</label>
<div class="col-sm-9">
<select class="form-control" name="search_status_hr">
<option value=""><?= $lang['All'] ?></option>
<option value="pending" <?= ($search_status_hr == 'pending' ? 'selected' : '') ?>>Pending</option>
<option value="confirmed" <?= ($search_status_hr == 'confirmed' ? 'selected' : '') ?>>Confirmed</option>
<option value="rejected" <?= ($search_status_hr == 'rejected' ? 'selected' : '') ?>>Rejected</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-11">
<input type="hidden" name="page_mode" value="<?= $page_mode ?>" />
<input type="hidden" name="search" value="<?= $search ?>" />
<button type="submit" class="btn btn-purple" style="float:right"><?= $lang['submit'] ?></button>
</div>
</div>
</form>
</div>
</div>
<form method="post">
<?php if ( permissionCheck($row_user, 'form-resignation-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 btn-purple" value="<?= $lang['submit']?>" />
</div>
</div>
<?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['Action']?></th>
<th><?= $lang['Staff']?></th>
<th><?= $lang['Subject']?></th>
<th><?= $lang['Created At']?></th>
<th><?= $lang['Updated At']?></th>
<th>Manager Status</th>
<th>HR Manager Status</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['formresignation_id'] ;
echo '
<tr class="odd gradeX">
<td class="align_center">' ;
if ( permissionCheck($row_user, 'form-resignation-edit') ){
echo '
<a title="Edit Current Resignation" href="app-form-resignation.php?page_mode=edit&page='.$id.'"><i class="fa fa-edit"></i></a>' ;
}else{
echo '-' ;
}
echo '
</td>
<td class="text-center">'.dataFilter($row_page['staff_name']).' ( '.dataFilter($row_page['staff_idno']).' )</td>
<td>'.dataFilter($row_page['title']).'</td>
<td class="text-center">'.resetDateFormat($row_page['created_at']).'</td>
<td class="text-center">'.resetDateFormat($row_page['updated_at']).'</td>
<td class="text-center">'.resetStatus($row_page['status_manager']).'</td>
<td class="text-center">'.resetStatus($row_page['status_hr']).'</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>
<td class="border_none"></td>
<td class="border_none"></td>
<td class="border_none"></td>
<td class="border_none"></td>
<td class="border_none"></td>
</tr>' ;
}
?>
</tbody>
</table>
<?= $page_pagination['page_pagination'] ?>
</div>
</div>
</form>
</div>
<?php
break ;
}
// footer
include 'requires/page_footer.php' ;
?>