
		<h3  style="font-weight:bold; text-align: center;">
	 <span class="different-text-color" style="font-weight:bold;">
	<?php 
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$sql = "SELECT from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'AND `PaymentDate` BETWEEN '$date1' AND '$date2'";
		$result = $conn->query($sql);
		//display data on web page
		{
		echo "";
		echo "Filtter Date : From $date1 To $date2";
	}}
	?></span></h3>
		
<?php
	 include('connection.php');
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$query=mysqli_query($conn, "SELECT project.ProjectName, Remarks, PaymentDate, Salary,PayAmount, project.Id, employee_transations.Id from employee_transations JOIN project on employee_transations.ProjectName=project.Id WHERE EmployeeName ='" . $_GET['Id'] . "' AND `PaymentDate` BETWEEN '$date1' AND '$date2'") or die(mysqli_error());
		$row=mysqli_num_rows($query);
		if($row>0){
			while($fetch=mysqli_fetch_array($query)){
?>
	<tr>
		<td><?php echo $fetch['PaymentDate']?></td>
		 
		<td><?php echo $fetch['Salary']?></td>
		<td><?php echo $fetch['PayAmount']?></td>
		<td><?php echo $fetch['ProjectName']?></td>
		<td><?php echo $fetch['Remarks']?></td>
	</tr>
	
<?php
			}
		}else{
			echo'
			<tr>
				<td class="alert-info" colspan = "5"><h3 style="font-weight:bold; text-align: center;"><center ><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" class="bi bi-calendar-x-fill" viewBox="0 0 16 16">
  <path d="M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v1h16V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5zM16 14V5H0v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2zM6.854 8.146 8 9.293l1.146-1.147a.5.5 0 1 1 .708.708L8.707 10l1.147 1.146a.5.5 0 0 1-.708.708L8 10.707l-1.146 1.147a.5.5 0 0 1-.708-.708L7.293 10 6.146 8.854a.5.5 0 1 1 .708-.708z"/>
</svg> Record Not Found!</center></h3></td>
			</tr>';
		}
	}else{
		
		
		$query=mysqli_query($conn, "SELECT project.ProjectName, Remarks, PaymentDate, Salary,PayAmount, project.Id, employee_transations.Id from employee_transations JOIN project on employee_transations.ProjectName=project.Id WHERE EmployeeName ='" . $_GET['Id'] . "'") or die(mysqli_error());
		while($fetch=mysqli_fetch_array($query))
		{
?>

	<tr>
		<td><?php echo $fetch['PaymentDate']?></td>
		<td><?php echo $fetch['Salary']?></td>
		<td><?php echo $fetch['PayAmount']?></td>
		<td><?php echo $fetch['ProjectName']?></td>
		<td><?php echo $fetch['Remarks']?></td>
		
		
</tr>


<?php


		}

	
		//sum of amunt filtter Salary
			

		$sql = "SELECT  SUM(Salary) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo 
		" Total Amount : ". $row1['SUM(Salary)'];
		echo "<br>";
	}
	
		//sum of amunt filtter PayAmount
		$sql = "SELECT  SUM(PayAmount) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
	
		echo "PayAmount : ". $row1['SUM(PayAmount)'];
		echo "<br>";
	}

	
	

		
		//sum of amunt filtter Salary
		$sql = "SELECT  SUM(Salary-PayAmount) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total Blance: ". $row1['SUM(Salary-PayAmount)'];
		echo "<br>";
	}
	
	

	
	}
	
?>


			<table id="customers" class="table table-bordered">
				
	
	
	<tfoot>
	<tr  style="font-weight:bold; text-align: center;" >
	
	<th>
	<h3>
	<span class="different-text-color" style="font-weight:bold;">
	<?php 
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$sql = "SELECT  SUM(Salary) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'AND `PaymentDate` BETWEEN '$date1' AND '$date2'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo "Total Amount : ". $row1['SUM(Salary)'];
		echo "";
	}}
	?></h3></th>
		<th  style="font-weight:bold; text-align: center;"  >	
		<h3>
		<span class="different-text-color" style="font-weight:bold;">
		<?php 
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$sql = "SELECT  SUM(PayAmount) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'AND `PaymentDate` BETWEEN '$date1' AND '$date2'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo "PayAmount : ". $row1['SUM(PayAmount)'];
		echo "";
	}}
	?></span></h3></th>
	
	
		<th  style="font-weight:bold; text-align: center;">
		<h3>
	 <span class="different-text-color" style="font-weight:bold;">
	<?php 
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$sql = "SELECT  SUM(Salary-PayAmount) from employee_transations WHERE EmployeeName='" . $_GET['Id'] . "'AND `PaymentDate` BETWEEN '$date1' AND '$date2'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total (Salary-PayAmount) Blance : ". $row1['SUM(Salary-PayAmount)'];
		echo " ";
	}}
	?></span></h3></th>
		
	</tr>
	</tfoot>
	</table>
	


