<?php
// connect to the database
    include('connection.php');
	include('includes/header.php');
	
	if (isset($_POST['editemployee'])){
//if(count($_POST)>0) {
mysqli_query($conn,"UPDATE employee set id='" . $_POST['id'] . "',
 EmployeeName='" . $_POST['EmployeeName'] . "',
 PhoneNo='" . $_POST['PhoneNo'] . "',
 
 Address='" . $_POST['Address'] . "',
 JobTitle='" . $_POST['JobTitle'] . "',
 Salary='" . $_POST['Salary'] . "'
 WHERE Id='" . $_POST['id'] . "'");

$message = "Record Modified Successfully";
}
$result = mysqli_query($conn,"SELECT * FROM employee 
where EUserId ='" . $_SESSION['UserId'] . "' and Id='" . $_GET['Id'] . "'");
$row= mysqli_fetch_array($result);


?>
<!DOCTYPE html>
<html lang="en" >
  
<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>Add Employee</title>
	<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">


<style>
.page-header{
	border-radius: 20px;
	color: #f9f9f9;
	text-align: center;
	background-color: #2780e3;
	width: 100%;
	margin-left: 0%;
	font-weight: bold;
	}
form {
  margin-right:100px;
  margin:20px 100px 20px 100px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}
.row {
    margin-left: -40px;
    margin-right: -40px;
}
input[type=text], select {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
  input[type=number] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
input[type=password] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

input[type=submit] {
  width: 50%;
  background-color: #4CAF50;
  color: white;
  padding: 20px;
  margin: 8px 0;
  border: 1px;
  border-radius: 15px;
  cursor: pointer;
  margin-left: 200px;
}
input[type=cancel] {
  margin-left:150px;
  margin-top:5px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}

input[type=submit]:hover {
  background-color: #45a049;
}
button {
 
  margin-top:5px;
  border-radius: 20px;
  background-color: #3c42383d;
  padding: 20px 20px 20px 20px;
}
button:hover {
  background-color: #45a049;
}
form {
  width: 80%;
  border-collapse: collapse;
  margin: 100px auto;
}

</style>


<html>
<head>
<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 Eidt Profile</title>
</head>
<body>


<hr>
    <div id="page-wrapper"> 
   
      <div class="row">
          
                      <?php if(isset($_GET['error'])){ ?>
            <div class="alert alert-danger" role="alert">
              <?php echo $_GET['error']; ?>
            </div>
            <?php } ?>
            
            <!-- success -->
            <?php if(isset($_GET['success'])){ ?>
            <div class="alert alert-success" role="alert">
              <?php echo $_GET['success']; ?>
            </div>
            <?php } ?>
          
          
        <form  action="Employee_edit_Action.php" method="post" enctype="multipart/form-data" >
            <h2 class="page-header" >Edit Employee = <?php echo $row['EmployeeName']; ?></br>কর্মচারী সংশোধন </h2>

		<label for="fname">Employee ID /কর্মচারী নম্বর  </label>
		<input type="hidden" name="id" class="txtField" value="<?php echo $row['id']; ?>">
		<input type="text" name="id"  value="<?php echo $row['Id']; ?>">
		
		
		<label for="fname">Employee Name /কর্মচারী নাম </label>
		<input type="text" name="EmployeeName" value="<?php echo $row['EmployeeName']; ?>">
	
		<label for="lname">Phone No /মোবাইল নম্বর </label>
		<input type="text" name="PhoneNo" class="txtField" value="<?php echo $row['PhoneNo']; ?>">
	
		
	
		<label for="lname">Address /ঠিকানা </label>
		<input type="text" name="Address" class="txtField" value="<?php echo $row['Address']; ?>">
		
		<label for="lname">Job Title /পদবী </label>
	
	<select id="JobTitle" name="JobTitle" class="form-control">
	<option value="<?php echo $row['JobTitle']; ?>"><?php echo $row['JobTitle']; ?></option>
	<?php
	$sqlQuery = "SELECT JobTitle,JId FROM jobtitles where JUserId ='" . $_SESSION['UserId'] . "'" ;
	$resultSet = mysqli_query($conn, $sqlQuery)
	?>
	
            <?php while($rows = mysqli_fetch_array($resultSet)){
			?>
            <option value="<?php echo $rows['JId'];?>"><?php echo $rows['JId'];?> = <?php echo $rows['JobTitle'];?></option>
			
			<?php
			}
			?>
            </select>
	
	
		<label for="fname">Salary /বেতন </label></br>
		
		<input type="number" name="Salary" value="<?php echo $row['Salary']; ?>">
	
	</br>

	

	
							<div class="form-group">
							<h3>Current Photo /বর্তমান ছবি </h3>
							<img src="EmployeeImage/<?php echo $row['FileName'];?>" height="150" width="150" />
							<input type="hidden" name="previous" value="<?php echo $row['FileName'];?>"/>
							<h3>New Photo /নতুন ছবি দিন</h3>
							<input type="file" class="form-control" name="FileName" value="<?php echo $row['FileName'];?>" />
						</div>
	


</br>
		  
		  <div class="m-t-20 text-center">
					
					<button class="btn btn-primary submit-btn btn-rounded" type="submit" name="editemployee">Update</button>
					<button class="btn btn-primary submit-btn btn-rounded" type="cancel"><a href="Employeedisplay.php">Cancel</a></button> 
					</div>
		 
        </form>
      </div>
      
    </div>
  </body>

</html>
<script>
$("#JobTitle").select2( {
	placeholder: "Choose A JobTitle",
	allowClear: true
	} );
</script>


