File "e_salari.php"
Full path: /home/atrmarke/public_html/atrdemolive.site/bshop/log/e_salari.php
File
size: 0.02 KB (16.82 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
include("../db/cn.php");
ob_start();
if (isset($_SESSION['user_name']) && isset($_SESSION['user_role']) && isset($_SESSION['outlet_name']) && isset($_SESSION['outlet_address'])) {
$userName = $_SESSION['user_name'];
$userRole = $_SESSION['user_role'];
$outlet_address = $_SESSION['outlet_address'];
$outlet_name = $_SESSION['outlet_name'];
} else {
// Handle the case where session variables are not set
// Redirect to a login page or show an error
echo '<script type="text/javascript">window.location.href="logout.php";</script>';
// header("Location: login.php");
exit();
}
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["submit2"])) {
// Retrieve and sanitize input values
$emp_name = $_POST["emp_name"];
$emp_id = $_POST["emp_id"];
$emp_salari = $_POST["emp_salari"];
$emp_phone = $_POST["emp_phone"];
$j_date = $_POST["j_date"];
$date_time = date("Y-m-d");
// Use prepared statements to prevent SQL injection
$stmt = $connection->prepare("INSERT INTO e_salary (emp_id, emp_name, emp_salari, emp_phone, j_date, date_time) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssssss", $emp_id, $emp_name, $emp_salari, $emp_phone, $j_date, $date_time);
// Execute the prepared statement
if ($stmt->execute()) {
// Success, redirect or inform the user
echo '<script type="text/javascript">window.location.href="e_salari.php";</script>';
exit();
} else {
// Error handling
echo "Error: " . $stmt->error;
}
// Close the statement
$stmt->close();
}
ob_end_flush();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Salay Management</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="stylesheet" href="css/custom_css.css" />
</head>
<style>
#supplier-container-wrapper {
max-height: 700px; /* Adjust the maximum height as needed */
overflow-y: auto; /* Enable vertical scroll when content overflows */
}
@media (max-width: 880px) {
.col-4 {
width: 33.33% !important;
}
.fa-wifi {
display: none !important;
}
.col-6 {
width: 50% !important;
}
}
@media (min-width: 880px) {
.sidebar {
width: 100%;
/* Change sidebar width to 100% on mobile */
max-width: 120px; /* Set maximum width for the sidebar */
}
}
@media (min-width: 880px) {
.main-content {
margin-left: ; /* Width of the sidebar */
}
}
/* Added new class to control overlay */
.overlay {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.6);
z-index: 999;
display: none; /* Initially hidden */
}
/* Custom styles for sidebar */
.sidebar {
width: 100px;
background: linear-gradient(360deg, #060606, #3C2F23);
position: fixed;
bottom: 0;
top: 60px;
transition: transform 0.3s ease-in-out;
transform: translateX(0);
z-index: 1;
height: 100%;
border-radius: 0px;
transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;
}
.sidebar.hide {
transform: translateX(-100px);
/* Move sidebar out of the viewport when it is hidden */
}
.sidebar .nav-item {
padding: 10px 0;
text-align: center;
position: relative;
font-size: 12px;
}
.sidebar .nav-link {
color: #fff;
position: relative;
/* Ensure icon and text are positioned relative to the nav link */
z-index: 2;
/* Ensure the text and icon are above the hover background */
}
.sidebar .nav-link i {
margin-bottom: 5px;
/* Adjust the margin of the icon */
}
/* Custom styles for hover effect */
.sidebar .nav-item:hover:after {
background-color: #fff;
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 1;
/* Ensure the hover background is below the text and icon */
}
.sidebar .nav-item:hover .nav-link {
color: #503F2E;
}
/* Custom styles for divider */
.sidebar .nav-item:after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 1px;
background-color: #fff;
transition: height 0.3s ease-in-out;
/* Transition effect for smooth animation */
}
/* Custom styles for header */
.header {
background: linear-gradient(90deg, #3C2F23, #060606);
color: #fff;
padding: 10px;
position: fixed;
top: 0;
width: 100%;
z-index: 2;
height: 69px;
box-shadow: #FFF 2px 0px 0px 0px;
/* Ensure header appears above sidebar */
}
.header .navbar-toggler {
color: #fff;
}
.header .navbar-toggler-icon {
color: #fff;
/* Set the color of the toggle button to white */
}
.header .navbar-toggler.white {
color: #fff !important;
/* Ensure the toggle button is white */
}
.header .navbar-brand {
color: #fff;
/* Set navbar brand text color to white */
}
.header .nav-item .nav-link {
color: #fff;
/* Set nav link text color to white */
}
.main-content {
margin-top: 50px; /* Height of fixed header */
margin-left: 100px; /* Initially, set margin-left to 0 */
padding-top: 30px; /* Height of fixed header */
transition: margin-left 0.3s ease-in-out; /* Add transition for smoother animation */
}
/* Custom styles for search bar */
.search-container {
display: flex;
align-items: center;
width:100%;
margin: 2px auto;
float:left;
}
/* Updated hide class to apply to the overlay */
.sidebar.hide, .overlay.hide {
transform: translateX(-100%);
}
.search-input {
width: 100%;
padding: 10px 30px 10px 10px;
/* Adjust padding to accommodate the icon */
border: 1px solid #ccc;
border-radius: 20px;
font-size: 16px;
}
.search-icon {
position: relative;
left: -25px;
/* Adjust the position of the icon */
color: #aaa;
}
.search-icon i {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.btn-dark {
background: #503F2E;
color: #fff;
border: 1px solid #503F2E;
}
.btn-dark:hover {
background: #fff;
color: #503F2E;
border: 1px solid #503F2E;
}
.bg-dark2 {
background: #503F2E;
color: #fff;
}
.modal-content {
animation: modal-animation 0.5s;
}
@keyframes modal-animation {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
label{font-size:12px; font-weight:600;}
</style>
<body>
<?php
ob_start();
include("common/hd.php");
$remain = mysqli_query($connection,"select SUM(closing) AS total_remain FROM salari_close ");
$fetch_remain = mysqli_fetch_array($remain);
$remain_sum = $fetch_remain["total_remain"];
?>
<?php
ob_start();
include("common/hd.php");?>
<!-- Sidebar -->
<?php include("common/sd.php"); ?>
<div class="main-content">
<br />
<div class="container">
<div class="row ">
<div class="col-sm-7" id="table-container-wrapper">
<h3 style="color:#212529;">Salary Management</h3>
<br>
</div>
<div class="col-sm-2"></div>
<div class="col-sm-3" style="background:#503F2E;color:#fff; padding:10px; border-radius:20px;">
<center><p style="font-weight:600px; font-size:18px;">Total Salary Payable Rs <?php echo number_format(round(@$remain_sum, 2), 2); ?></p></center>
</div>
</div>
</div>
<div class="container" style="margin-top:">
<div class="row">
<div class="col-sm-8" style="" >
<div class="row text-center">
<!-- Search container -->
<input type="text" id="searchInput" class="form-control" placeholder="Search...">
<table class="table text-center table-hover table-sm text-center" style="margin-top:25px;">
<thead style="background:#212529; color: white; font-size:14px;">
<tr>
<th>Sr#</th>
<th>ID</th>
<th>Name</th>
<th>Cell#</th>
<th>Joining Date</th>
<th>Closing</th> <!-- New column for closing -->
<th>Detail</th>
</tr>
</thead>
<tbody id="supplierTableBody">
<?php
$sr_no = 1;
// Modify the query with collation to ensure case-insensitive comparison for emp_name
$rec = mysqli_query($connection, "SELECT e_salary.id, e_salary.emp_name, e_salary.emp_phone, e_salary.j_date, e_salary.emp_id,
salari_close.closing
FROM e_salary
LEFT JOIN salari_close
ON e_salary.emp_name COLLATE utf8mb4_general_ci = salari_close.emp_name COLLATE utf8mb4_general_ci");
// Check if the query returned rows
if (!$rec) {
echo "Query error: " . mysqli_error($connection); // Debugging query errors
} else {
// Fetch and display the data
while($row = mysqli_fetch_array($rec)){
?>
<tr>
<td><?php echo $sr_no++; ?></td>
<td><?php echo $row["emp_id"]; ?></td>
<td style="font-weight:700;"><?php echo $row["emp_name"]; ?></td>
<td class="text-uppercase"><?php echo $row["emp_phone"]; ?></td>
<td class="text-uppercase"><?php echo $row["j_date"]; ?></td>
<td class="text-uppercase">
<?php echo ($row["closing"] !== null) ? $row["closing"] : 'N/A'; ?> <!-- Handle NULL closing -->
</td>
<td>
<a href="salari_detail.php?emp_name=<?php echo $row['emp_name']; ?>">
<button class="btn btn-dark btn-sm">
<i class="fas fa-clipboard-check fa-1x"></i>
</button>
</a>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
<div class="col-sm-1"></div>
<div class="col-sm-3" >
<button type="button" class="btn btn-dark form-control" data-toggle="modal" data-target="#addPurchaseModal" style="margin-top:14px;">
Add Employee
</button>
</div>
<div class="modal fade" id="addPurchaseModal" tabindex="-1" role="dialog"
aria-labelledby="addPurchaseModalLabel" aria-hidden="true" style="margin-top:80px;">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title text-capitalize" id="addPurchaseModalLabel">Add Employee</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!-- Form for adding purchase -->
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<div class="form-group">
<label>Employee ID</label>
<input type="text" name="emp_id" class="form-control" value="<?php
$pr_id2 = str_pad(rand(0, 9999), 4, '0', STR_PAD_LEFT);
echo $pr_id2; ?>" readonly>
</div>
<div class="form-group">
<label>Employee Name</label>
<input type="text" name="emp_name" class="form-control" />
</div>
<div class="form-group">
<label>Salary Amount</label>
<input type="text" name="emp_salari" class="form-control" />
</div>
<div class="form-group">
<label>Phone</label>
<input type="text" name="emp_phone" class="form-control" />
</div>
<div class="form-group">
<label>Joining Date</label>
<input type="date" name="j_date" class="form-control" />
</div>
<button type="submit" name="submit2" class="btn btn-dark">Enter</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<script>
document.addEventListener("DOMContentLoaded", function() {
var searchInput = document.getElementById('searchInput');
var rows = document.querySelectorAll("#supplierTableBody tr");
searchInput.addEventListener("keyup", function(event) {
var term = event.target.value.toLowerCase();
rows.forEach(function(row) {
var cells = row.getElementsByTagName("td");
var found = false;
Array.from(cells).forEach(function(cell) {
if (cell.textContent.toLowerCase().indexOf(term) > -1) {
found = true;
}
});
if (found) {
row.style.display = "";
} else {
row.style.display = "none";
}
});
});
});
document.addEventListener("DOMContentLoaded", function () {
var sidebar = document.getElementById("sidebar");
var overlay = document.createElement("div");
overlay.classList.add("overlay");
document.body.appendChild(overlay);
function toggleSidebar() {
sidebar.classList.toggle("hide");
overlay.classList.toggle("hide");
var mainContent = document.querySelector(".main-content");
if (sidebar.classList.contains("hide")) {
mainContent.style.marginLeft = "0";
} else {
mainContent.style.marginLeft = "100px"; // Width of the sidebar
}
}
overlay.addEventListener("click", function () {
toggleSidebar();
});
// Add toggle functionality to navbar toggler
var navbarToggler = document.querySelector(".navbar-toggler");
navbarToggler.addEventListener("click", function () {
toggleSidebar();
});
// Automatically hide sidebar on all screen sizes
// sidebar.classList.add("hide");
// overlay.classList.add("hide");
// Add class to body to prevent scrolling when sidebar is open
// document.body.classList.add("noscroll");
// Check if screen size is larger than a certain threshold (e.g., 768px for desktop screens)
function checkScreenSize() {
if (window.innerWidth > 768) {
sidebar.classList.remove("hide");
overlay.classList.remove("hide");
} else {
sidebar.classList.add("hide");
overlay.classList.add("hide");
}
}
// Check screen size on initial load and whenever the window is resized
checkScreenSize();
window.addEventListener("resize", checkScreenSize);
});
</script>
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
</html>