<?php
require('includes/header.php');

   include('connection.php');
 
?>
<meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" type="image/x-icon" href="upload/icon.png">
  
    <title>Employee Salary</title>

<html>
 <head>

	<link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/select2.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/dataTables.bootstrap4.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap-datetimepicker.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/style1.css">



   <link rel="stylesheet" href="style.css">
   <!-- Select2 CSS --> 
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" /> 

<!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 

<!-- Select2 JS --> 
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>

<meta content='width=device-width, initial-scale=0.75, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />

<style>
* {
  box-sizing: border-box;
}
form-content{
  float: left;
  width: 100%;
  margin-top: 6px;
}

input[type=text], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: vertical;
}
input[type=number], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: vertical;
}
input[type=date], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: vertical;
}
input[type=Amount], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  resize: vertical;
}


label {
  padding: 12px 12px 12px 0;
  display: inline-block;
}

button {
  width: 15%;
  margin-left:8%;
  margin-top:5px;
  border-radius: 15px;
  background-color: red;
  padding: 20px 20px 20px 20px;
  margin:center;
}
button:hover {
  background-color: #05ceed;
}
#content {
  border-radius: 0px;
  background-color: #fcfcfc;
  padding: 2%;
  margin-left: 50px;
}
.page-header{
	border-radius: 20px;
	color: #f9f9f9;
	text-align: center;
	background-color: red;
	width: 100%;
	margin-left: 0%;
	font-weight: bold;
	}

}
.red{
	text-align: center ;
	text-color: green !important;
	width: 50%;
	 margin-left: 25%;
}


.from {
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 50px;
  margin-left: 10px;
}

.col-25 {
  float: left;
  width: 25%;
  margin-top: 6px;
}

.col-75 {
  float: left;
  width: 75%;
  margin-top: 6px;
}
  .select2 {
   width: 75% !important;
  margin-top: 6px;
}

/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}

/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
  .col-25, .col-75, input[type=submit] {
    width: 100%;
    margin-top: 0;
  }
 .select2 {
   width: 100% !important;
   
}
}

</style>


 
</head>
<body>
<div id="content">
<div class="table-responsive-md">
<div  id="mob" style="margin-top: 40px">
  
  <table class="table table-bordered">
                                    <thead style="font-weight:bold; text-align: center;"  class="alert-info">
                                        <tr>
											<th>Salary TRN_ID <br>নাম্বার</th>
                                            <th>Employee Name</br>কর্মচারী নাম </th>
											<th>Project Name</br>কাজের স্থান </th>
                                            <th>Salary</br>বেতন</th>
                                             <th>Pay Amount</br>টাকা দেয়া</th>
											<th>Edit</br>সংশোধণ</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									
																		
									 <?php $sqli=$conn->query("SELECT project.ProjectName, employee.EmployeeName, PaymentDate, employee_transations.Salary, PayAmount, project.Id, employee_transations.Id from employee_transations LEFT JOIN project on employee_transations.ProjectName=project.Id LEFT JOIN employee on employee_transations.EmployeeName=employee.Id 
									where  `PaymentDate` = CURDATE() and TUserId ='" . $_SESSION['UserId'] . "' ");
        foreach ($sqli as $key => $employee) {
  ?>
                                        <tr>
											<td><?php echo $employee ['Id']; ?></td>
                                            <td><?php echo $employee ['EmployeeName']; ?></td>
											<td><?php echo $employee ['ProjectName']; ?></td>
											<td class="kkk"><?php echo $employee ['Salary']; ?></td>
                                            <td><?php echo $employee ['PayAmount']; ?></td>
                                            <td><a target=_blank class="dropdown-item" href="employee_tran_edit.php?Id=<?php echo $employee["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a></td>
						</tr>

												</div>
											</div>
										</td>
                                        </tr>
                                <?php } ?>        
                                    </tbody>
                                </table>

	<div class="row">
			<form class="from" action="Savetransations.php" method="post" enctype="multipart/form-data" >
			<h2 class="page-header">Add Salary Payment</br></br>হাজিরা যোগ করুন</h2>
				<div style="font-weight:bold; text-align: center;"  class="alert-info">
				    <?php
				    if(isset($_GET['msg'])) echo $_GET['msg'];
				    ?>
				</div>
				<div class="row">
					<div class="col-25">
						<label for="fname">PayDate / তারিখ :</label>
					</div>
					<div class="col-75">
					
						<input type="date"  name="PaymentDate" required placeholder />
					</div>
				</div>
			
				<div class="row">
					<div class="col-25">
						<label for="fname">Employee Name / কর্মচারী নাম :</label>
					</div>
					<div class="project"> 
						<select name="EmployeeName" id="employee" 
									class="form-control" required placeholder >
							<?php 
									$sql = "SELECT * FROM employee where status=1 AND EUserId ='" . $_SESSION['UserId'] . "'";
									$query = mysqli_query($conn,$sql);
									while($row = mysqli_fetch_assoc($query)){
							?>
								<option  value="">Choose A Payment Employee</option>
								<option class="red" id="<?php echo $row['Id']; ?>" value="<?php echo $row['Id']; ?>"  class="employee custom-select">
									<?php echo $row['EmployeeName']; ?>  !! Salary = <?php echo $row['Salary']; ?>  !! JobTitle = <?php echo $row['JobTitle']; ?>
								</option>
							<?php  }?>   
						</select>
					</div>
				</div>
			
			
				<div class="row">
					<div class="col-25">
						<label for="lname">Salary / হাজিরা :</label>
					</div>
					<div class="col-75">	
						<input type="number"  id="Salary"  name="Salary"/>
					</div>
				</div>
			
				<div class="row">
					<div class="col-25">		
						<label for="lname"> Pay Amount / টাকা দেয়া :</label>
					</div>
					<div class="col-75">	
						<input type="number" name="PayAmount" placeholder="Pay Amount ...."/>
					</div>
				</div>
			
				<div class="row">
					<div class="col-25">	
						<label for="lname">Payment Method / টাকার পদ্ধতি :</label>
					</div>
					<div class="col-75">   
						<select type="text" name="Paymentmethod" id="">
							
							<option value="Cash">Cash</option>
							<option value="Bkash">Bkash</option>
							<option value="Chaque">Chaque</option>
							<option value="Others">Others</option>
						</select>
					</div>
				</div>
			
				<div class="row">
					<div class="col-25">
						<label for="lname">Working Project / কাজের স্থান :</label>
					</div>
					<div class="project">		
						<select type="text" id="project" name="ProjectName" class="form-control" required placeholder >
						<option  value="">Choose A Worknig Project</option>
											<?php 
												 $sql = "SELECT * FROM project where status=1 AND PUserId ='" . $_SESSION['UserId'] . "'";
												 $query = mysqli_query($conn,$sql);
												 while($row = mysqli_fetch_assoc($query)){
												 ?>
						<option class="red" value="<?php echo $row['Id'];?>"><?php echo $row['ProjectName'];?>  
							!!   ...ContactName    =     <?php echo $row['ContactName'];?>
						</option>
							<?php
							}
							?>
						</select>
					</div>
				</div>
			
				<div class="row">
					<div class="col-25">
						<label for="text">Remarks / মন্তব্য :</label>
					</div>
					<div class="col-75">	
						<input type="text" name="Remarks" placeholder="Remarks...." />
					</div>
				</div>
			
				
			
				
				<div class="m-t-20 text-center">
					
					<button class="btn btn-primary submit-btn btn-rounded" type="submit" name="savetransations">Save</button>
					<button class="btn btn-primary submit-btn btn-rounded" type="reset" name=""  value="Clear Fields">Clear</button>
					<button class="btn btn-primary submit-btn btn-rounded" type="reset"><a href="Employeedisplay.php">Cancel</a></button> 
					</div>
			</form>
		</div>
		</div>
		</div>
	


</body>
</html>



<script>
$("#project").select2( {
	placeholder: "Choose A Worknig Project",
	allowClear: true
	} );
</script>
<script>
$("#employee").select2( {
	placeholder: "Choose A Payment Employee",
	allowClear: true
	} );
</script>


<script>
   $(document).ready(function(){
     $('#employee').change(function() {
      var id = $(this).find(':selected')[0].id;
       $.ajax({
          method:'GET',
          url:'fetch.php',
          data:{id:id},
          dataType:'json',
          success:function(data)
            {
               $('#Salary').val(data.Salary);
 
               //$('#qty').text(data.product_qty);
            }
       });
     });
         });
</script>
