����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
nc6d095
/
www
/
staff
/
view
/
Filename :
leave-requests.php
back
Copy
<?php include('../../admin/inc/config.php'); include('../inc/auth.php'); define('TITLE','Manage Leave Requests'); define('HEADER','Leave Requests'); define('BREADCRUMB','leave-requests'); $tinyEditor = 'basic'; if(isset($_GET['d'])){ $d = $_GET['d']; if($d == "new-request"){ $crdTitle = "Add New Request"; } if($d == "edit-request"){ if(isset($_GET['id'])){ $id = $_GET['id']; } $dbRequest = getDBVal('requests','name',$id); $crdTitle = "Edit Request (<small>".strtolower($dbRequest).")</small>"; } } $q = getRows('category_types','id',"name='Leave'"); $ctRow = mysqli_fetch_array($q); $typeLeave = $ctRow['id']; #logics #save request if(isset($_POST['saveRequest'])){ #data cleaning & scrutinization $daysNo = trim(stripslashes(mysqli_real_escape_string($db, $_POST['daysNo']))); $dateVals = trim(stripslashes(mysqli_real_escape_string($db, $_POST['dateVals']))); $notes = trim(mysqli_real_escape_string($db, $_POST['notes'])); $category = trim(intval($_POST['category'])); #check leave validity $rowCnt = cntRows('leave_requests',"staff=$userId AND dc LIKE '%$thisYear%'"); if($rowCnt > 21){ array_push($errs, $requestExistErr = ""); $emsg = "You have exhausted your leave request for this year ($thisYear)."; } else{ #data validation if(empty($daysNo)){ array_push($errs, $daysNoErr = "please enter a value"); } if(empty($dateVals)){ array_push($errs, $dateValsErr = "please enter a value"); }else{ $dates = explode(",",$dateVals); $dateItems = count($dates); if($dateItems != $daysNo){ array_push($errs, $datesCountErr = ""); $emsg = "dates does not match the number of days specified"; } foreach($dates as $date){ if(!validateDateFormat($date)){ array_push($errs, $dateValsErr = ($dateItems > 1 ? "one or more of the dates format not correct" : "incorrect date format")); }else if(!validateDateVals($date)){ array_push($errs, $dateValsErr = ($dateItems > 1 ? "one or more of the dates not valid" : "date not valid")); } } } if(empty($category)){ array_push($errs, $categoryErr = "please select a value"); } #prevent duplicates $rowCnt = checkDuplicates('leave_requests', "staff=$userId AND status='pending'"); if($rowCnt > 0){ array_push($errs, $requestExistErr = ""); $emsg = "You already have a pending request."; } } #execute when errors have been solved if(count($errs) == 0){ $q = dbInsert("leave_requests", ['staff' => $userId, 'type' => $category, 'daysNo' => $daysNo, 'dates' => $dateVals, 'notes' => $notes, 'dc' => $now]); if($q){ $logoPath = "../../assets/img/hscs/brand/logo.png";$fName = $fName;$subject = "Leave Request";$destination = $staffNo; $body = "Your leave request has been received successfully. You will receive a notification once the request has been addressed by the Management."; require '../../admin/vendor/PHPMailer/PHPMailerAutoload.php'; include("../../admin/inc/mail-temps/notification.php"); $smsg = "Request submitted successfully";$preventResubmission = true; } else{ $emsg = "Action not successful. Try again later"; } } } #update request if(isset($_POST['updateRequest'])){ #data cleaning & scrutinization $requestName = trim(stripslashes(mysqli_real_escape_string($db, $_POST['requestName']))); #data validation if(empty($requestName)){ array_push($errs, $requestNameErr = "please enter a value"); } #prevent duplicates if(!empty($requestName)){ $rowCnt = checkDuplicates('leave_requests', "name='$requestName' AND id<>$id"); $rowCnt2 = checkDuplicates('leave_requests', "name='$requestName' AND id=$id"); if($rowCnt > 0){ array_push($errs, $requestExistErr = ""); $emsg = "Request '$requestName' already exists"; } if($rowCnt2 > 0){ array_push($errs, $requestExistErr = ""); $emsg = "Modification is required to continue"; } } #execute when errors have been solved if(count($errs) == 0){ $q = mysqli_query($db, "UPDATE leave_requests SET name='$requestName', du=NOW() WHERE id=$id"); if($q){ $smsg = "'$dbRequest' updated to '$requestName' successfully"; } else{ $emsg = "Action not successful. Try again later"; } } } #manage request status if(isset($_GET['d']) && isset($_GET['id'])){ $d = $_GET['d']; $id = $_GET['id']; $dbRequest = getDBVal('leave_requests','name',$id); if($d == 'actv-request'){ $q = changeStatus('leave_requests','active',$id); if($q){ $smsg = "request activated successfully"; }else{ $emsg = "something went wrong."; } } if($d == 'dactv-request'){ $q = changeStatus('leave_requests','inactive',$id); if($q){ $smsg = "request deactivated successfully"; }else{ $emsg = "something went wrong."; } } if($d == 'dlt-request'){ $dltItem = true; $dltmsg = "Are you sure you want to delete the request '$dbRequest'"; $url = $staffRoot."leave-requests"; if(isset($_POST['doDlt'])){ $dltItem = false; $q = dltRow('leave_requests',$id); if($q){ $smsg = "request deleted successfully"; }else{ $emsg = "something went wrong."; } } } } include("../../admin/inc/head.php"); ?> <body> <!--******************* Preloader start ********************--> <?php include("../../admin/inc/preloader.php"); ?> <!--******************* Preloader end ********************--> <!--********************************** Main wrapper start ***********************************--> <div id="main-wrapper"> <!--********************************** Nav header start ***********************************--> <?php include("../inc/nav-header.php"); ?> <!--********************************** Nav header end ***********************************--> <!--********************************** Header start ***********************************--> <?php include("../inc/header.php"); ?> <!--********************************** Header end ti-comment-alt ***********************************--> <!--********************************** Sidebar start ***********************************--> <?php include("../inc/sidebar.php"); ?> <!--********************************** Sidebar end ***********************************--> <!--********************************** Content body start ***********************************--> <div class="content-body"> <div class="container-fluid"> <?php include("../inc/page-header.php"); ?> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-body"> <div class="button-dropdown"> <div class="btn-group" title="Add New"> <button type="button" class="btn btn-sm btn-outline-primary"><i class="fa fa-plus-square fa-2x"></i></button> <button type="button" class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false"> </button> <div class="dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(79px, 42px, 0px);"> <a class="dropdown-item" href="<?= $staffRoot ?>leave-requests?d=new-request&sz=min">Request</a> </div> </div> <div class="btn-group" title="Manage All"> <button type="button" class="btn btn-sm btn-outline-primary"><i class="fa fa-list-alt fa-2x"></i></button> <button type="button" class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false"> </button> <div class="dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(79px, 42px, 0px);"> <a class="dropdown-item" href="<?= $staffRoot ?>leave-requests">Requests</a> </div> </div> <a href="<?= $staffRoot ?>leave-requests" class="btn btn-sm btn-outline-primary float-right" title="Refresh Page"><i class="fa fa-refresh"></i></a> </div> </div> </div> </div> </div> <div class="row"> <?php if(isset($_GET['sz'])): ?> <div class="col-md-4"> <div class="card"> <div class="card-header"> <h4 class="card-title d-inline"><?= ($crdTitle != '' ? $crdTitle : 'Add New'); ?></h4> <a href="<?= $staffRoot ?>leave-requests" class="float-right text-danger"><i class="fa fa-times"></i></a> </div> <div class="card-body"> <form action="" method="post" enctype="multipart/form-data"> <?php if(isset($_GET['d']) && $_GET['d'] == "new-request"): ?> <div class="form-row" id="new-request"> <div class="form-group col-md-7"> <label>Leave Category</label> <select class="form-control default-select" id="" name="category"> <option value="" selected>Select Category</option> <?php $q = getRows('categories',"*","type=$typeLeave"); while($row = mysqli_fetch_array($q)){ ?> <option <?php if((isset($_POST['category']) && $_POST['category'] == $row['id'])){ echo 'selected'; } ?> value="<?= $row['id'] ?>"><?= $row['name'] ?></option> <?php }?> </select> <?php if(isset($categoryErr)): ?><span class="bg-danger text-white px-2 rounded"><?= $categoryErr; ?></span><?php endif ?> </div> <div class="form-group col-md-5"> <label>No. of Days</label> <input type="text" class="form-control num-only" name="daysNo" placeholder="" value="<?php if(isset($_POST['daysNo'])){ echo $_POST['daysNo']; } ?>"> <?php if(isset($daysNoErr)): ?><span class="bg-danger text-white px-2 rounded"><?= $daysNoErr; ?></span><?php endif ?> </div> <div class="form-group col-md-12"> <label>Days</label> <p class="text-info">Kindly enter the dates in this format "DD-MM-YYYY" as indicated below and separate each using comma (,). </p> <input type="text" class="form-control" name="dateVals" placeholder="02-05-2023,01-11-2023 etc.." value="<?php if(isset($_POST['dateVals'])){ echo $_POST['dateVals']; } ?>"> <?php if(isset($dateValsErr)): ?><span class="bg-danger text-white px-2 rounded"><?= $dateValsErr; ?></span><?php endif ?> </div> <div class="form-group col-md-12"> <label>Additional Note</label> <textarea name="notes" id="" cols="30" rows="10" class="form-control tinyeditor"><?php if(isset($_POST['notes'])){ echo $_POST['notes']; } ?></textarea> <?php if(isset($notesErr)): ?><span class="bg-danger text-white px-2 rounded"><?= $notesErr; ?></span><?php endif ?> </div> </div> <div class="form-row mt-3"> <div class="col-md-12"> <button type="submit" name="saveRequest" class="btn btn-success">Add</button> <button type="reset" class="btn btn-danger">Cancel</button> </div> </div> <?php endif ?> <?php if(isset($_GET['d']) && $_GET['d'] == "edit-request"): ?> <div class="form-row" id="edit-request"> <div class="form-group col-md-12"> <label>First Name</label> <input type="text" class="form-control" name="requestName" placeholder="Request Name" value="<?php if(isset($_POST['requestName'])){ echo $_POST['requestName']; }else{ echo $dbRequest; } ?>"> <?php if(isset($requestNameErr)): ?><span class="bg-danger text-white px-2 rounded"><?= $requestNameErr; ?></span><?php endif ?> </div> </div> <div class="form-row mt-3"> <div class="col-md-12"> <button type="submit" name="updateRequest" class="btn btn-success">Add</button> <button type="reset" class="btn btn-danger">Cancel</button> </div> </div> <?php endif ?> </form> </div> </div> </div> <?php endif ?> <div class="col-md-<?php if(isset($_GET['sz']) && $_GET['sz'] == "min"){echo 8;}else{echo 12;} ?>"> <div class="card"> <div class="card-header"> <h4 class="card-title">Manage All</h4> </div> <div class="card-body"> <table class="table dtTable"> <thead> <tr> <th scope="col">S/N</th> <th scope="col"><i class="bi bi-toggles text-primary"></i></th> <th scope="col">No. of Days</th> <th scope="col">Leave Type</th> <th scope="col">Dates</th> <th scope="col">Created</th> <th scope="col">Updated</th> <th scope="col" class="text-center">Status</th> </tr> </thead> <tbody> <?php $no = 1; $q = dbSelect('leave_requests',"*"); while($row = mysqli_fetch_array($q)){ $id = $row['id']; $dc = $row['dc']; $du = $row['du']; $status = $row['status']; ?> <tr> <td><?= $no++; ?></td> <td> <div class="btn-group"> <div class="dropdown"> <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="dropdown" title="Add New"> <i class="fa fa-gears"></i> </button> <ul class="dropdown-menu"> <?php if($status == 'active'): ?> <li><a class="dropdown-item" href="<?= $staffRoot ?>leave-requests?id=<?= $id; ?>&sz=min&d=edit-request">Edit</a></li> <li><a class="dropdown-item" href="<?= $staffRoot ?>leave-requests?id=<?= $id; ?>&d=dactv-request">Deactivate</a></li> <?php else: ?> <li><a class="dropdown-item" href="<?= $staffRoot ?>leave-requests?id=<?= $id; ?>&d=actv-request">Activate</a></li> <li><a class="dropdown-item" href="<?= $staffRoot ?>leave-requests?id=<?= $id; ?>&d=dlt-request">Delete</a></li> <?php endif ?> </ul> </div> </div> </td> <td><?= $row['daysNo'] ?></td> <td><?= getDBVal('categories',$row['type']) ?></td> <td> <?php $dates = formatLeaveDates($row['dates']); foreach($dates as $date){ echo $date.'<br>'; } ?> </td> <td><?= formatDate($dc); ?></td> <td><?php if($du != ""){ echo formatDate($du); } ?></td> <td class="text-center"> <i class="fa fa-circle text-<?= getStatusColor($status); ?>"></i> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </div> </div> </div> <!--********************************** Content body end ***********************************--> <!--********************************** Footer start ***********************************--> <?php include("../../admin/inc/footer.php"); ?> <!--********************************** Footer end ***********************************--> </div> <!--********************************** Main wrapper end ***********************************--> <?php include("../../admin/inc/foot.php"); ?>