<?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, Amount, Date, Remarks, expensetitles.ExpenseType, project.Id, expense.Id from expense INNER JOIN project on expense.ProjectName=project.Id INNER JOIN expensetitles on expense.ExpenseType=expensetitles.Id 
		WHERE EXUserId ='" . $_SESSION['UserId'] . "' 
		and `Date` BETWEEN '$date1' AND '$date2'") or die(mysqli_error());
		$row=mysqli_num_rows($query);
		if($row>0){
			while($expense=mysqli_fetch_array($query)){
?>
	<tr>
									
									<td><?php echo $expense ['Date']; ?></td>
									<td><?php echo $expense ['ProjectName'];?></td>
									<td><?php echo $expense ['Amount']; ?></td>
									<td  class="kkk"><?php echo $expense ['Remarks']; ?></td>
									
									<td class="kkk"><?php echo $expense ['Id']; ?></td>

									
                                           
											<td class="text-right">
											<div class="dropdown dropdown-action">
												<a href="#" class="action-icon dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-ellipsis-v"></i></a>
												<div class="dropdown-menu dropdown-menu-right">
													<li>
													<a class="dropdown-item" href="employee_tran_edit.php?Id=<?php echo $expense["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="employee_tran_display1.php?Id=<?php echo $expense["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-eye-open"></i> view</a>
													
													</li>
													<li>
													<a class="dropdown-item" href="#" data-toggle="modal" data-target="#delete_patient"><i class="fa fa-trash-o m-r-5"></i> Delete</a>
													</li>
												</div>
											</div>
										</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, Amount, Date, Remarks, ExpenseType, project.Id, expense.Id from expense JOIN project on expense.ProjectName=project.Id
		where EXUserId ='" . $_SESSION['UserId'] . "' ") or die(mysqli_error());
		while($expense=mysqli_fetch_array($query)){
?>
		<tr>
									
									<td><?php echo $expense ['Date']; ?></td>
									<td><?php echo $expense ['ProjectName'];?></td>
									<td><?php echo $expense ['Amount']; ?></td>
									<td  class="kkk"><?php echo $expense ['Remarks']; ?></td>
									
									<td class="kkk"><?php echo $expense ['ExpenseType']; ?></td>

									
                                           
											<td class="text-right">
											<div class="dropdown dropdown-action">
												<a href="#" class="action-icon dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-ellipsis-v"></i></a>
												<div class="dropdown-menu dropdown-menu-right">
													<li>
													<a class="dropdown-item" href="employee_tran_edit.php?Id=<?php echo $expense["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="employee_tran_display1.php?Id=<?php echo $expense["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-eye-open"></i> view</a>
													
													</li>
													<li>
													<a class="dropdown-item" href="#" data-toggle="modal" data-target="#delete_patient"><i class="fa fa-trash-o m-r-5"></i> Delete</a>
													</li>
												</div>
											</div>
										</td>
                                        </tr>
<?php
		}
	}
?>
<div><h4>
<?php
include('connection.php');
	if(ISSET($_POST['search'])){
		$date1 = date("Y-m-d", strtotime($_POST['date1']));
		$date2 = date("Y-m-d", strtotime($_POST['date2']));
		$sql = "SELECT  SUM(Amount) from expense WHERE EXUserId ='" . $_SESSION['UserId'] . "' and `Date` BETWEEN '$date1' AND '$date2'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total Amount : ". $row1['SUM(Amount)']." Tk";
		echo " Of Filtter Date From $date1 To $date2";
		}
	}
	
?>
</h4>
</div>
