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

   include('connection.php');
 
?>
<!DOCTYPE html>
<html lang="en" >
<head>
<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>Project Profile</title>
	
   
      <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>
.card-title {
    color: red;
    font-size: 25px;
    margin-bottom: 20px;
}
.card-box {
    background-color: #fff;
    border-radius: 4px;
    margin-bottom: 30px;
    padding: 0px;
    position: relative;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 10%);
}

#myTable tr:nth-child(even) td{
  background-color: #f2f2f2;
}
.doc-prof{
	background-color: green;
}
.nav-item{
	background-color: #f299e0;
	 border-radius: 10px;
	
}
.show_amt{
	text-align: center;
	}
	.show_amount{
	text-align: center;
	}

.page-header{

	text-align: center;
	background-color: #2780e3;
	width: 100%;
	margin-left: 0%;
	}
  .page-title {
    color: #f7f6f5;
    font-size: 50px;
    font-weight: normal;
    margin-bottom: 10px;
}
	.page {
    color: #2780e3;
    font-size: 50px;
    font-weight: normal;
    margin-bottom: 10px;
}



/*
@media screen and (min-device-width: 600px) {
  td.hhh, th.hhh {display:none; }
  
  
  }
  	.page-header{

	text-align: center;
	background-color: green;
	width: 100%;
	margin-left: 0%;
	}
  

	

  
    @media screen and (max-width: 600px) {
 tbody.ggg, thead.ggg {
    font-size:2.5vw;
  }
}

@media screen and (max-width: 500px) {
  td.kkk, th.kkk {display:none; }
  tbody.ggg, thead.ggg {
    font-size:2.5vw;
  }
	}
	Max width before this PARTICULAR table gets nasty. This query will take effect for any screen smaller than 760px and also iPads specifically.
	*/

	@media
	  only screen 
    and (max-width: 400px), (min-device-width: 600px) 
    and (max-device-width: 500px)  {

		/* Force table to not be like tables anymore */
		table, thead, tbody, th, td, tr {
			display: block;
		}


		/* Hide table headers (but not display: none;, for accessibility) */
		thead tr {
			position: absolute;
			top: -9999px;
			left: -9999px;
		}
.content {
    padding: 0 0px;
}
    tr {
      margin: 0 0 1rem 0;
	  
    }
      
    tr:nth-child(odd) {
      background: #ccc;
    }
    
		td {
			/* Behave  like a "row" */
			border: none;
			border-bottom: 1px solid #eee;
			position: relative;
			padding-left: 50%;
			font-size:2.7vw;
			
		}

		td:before {
			/* Now like a table header */
			position: relative;
			/* Top/left values mimic padding */
			top: 0;
			left: 6px;
			width: 45%;
			padding-right: 20px;
			white-space: nowrap;
			font-size:3vw;
			
		}


		/*
		Label the data
    You could also use a data-* attribute and content for this. That way "bloats" the HTML, this way means you need to keep HTML and CSS in sync. Lea Verou has a clever way to handle with text-shadow.
		*/
		td:nth-of-type(1):before { content: "PaymentDate/তারিখ : ";}
		td:nth-of-type(2):before { content: "Amuount/টাকা :"; }
		td:nth-of-type(3):before { content: "Remarks/মন্তব্য :"; }
		td:nth-of-type(4):before { content: "Tran_Id/নম্বর :"; }
		td:nth-of-type(5):before { content: "Name/নাম :"; }
		td:nth-of-type(6):before { content: "Operation/সংশোধন :"; }
		
	}

</style>
</head>
<body>



<?php

if (isset($_POST['editproject'])){
//if(count($_POST)>0) {
mysqli_query($conn,"UPDATE project set Id='" . $_POST['id'] . "',
 ProjectName='" . $_POST['ProjectName'] . "',
 ContactName='" . $_POST['ContactName'] . "',
 Address='" . $_POST['Address'] . "' ,
 Email='" . $_POST['Email'] . "',
 PhoneNo='" . $_POST['PhoneNo'] . "'
 FileName='" . $_POST['FileName'] . "'
 WHERE Id='" . $_POST['id'] . "'");
$message = "Record Modified Successfully";
}
$result = mysqli_query($conn,"SELECT * FROM project WHERE id='" . $_GET['Id'] . "' and PUserId ='" . $_SESSION['UserId'] . "'");
$row= mysqli_fetch_array($result);

?>

<div id="content">
<div class="table-responsive-md">
<div  id="mob" style="margin-top: 40px">

		<div class="">
            <div class="content">
                <div class="row">
                    <div class="col-sm-7 col-6">
                        <h4 class="page-title"><?php echo $row['ProjectName']; ?></h4>
                    </div>

                    <div class="col-sm-5 col-6 text-right m-b-30">
                        <a href="projectedit.php?Id=<?php echo $row["Id"]; ?>" class="btn btn-primary btn-rounded"><i class="fa fa-plus"></i> Edit project</br>প্রজেক্ট সংশোধন</a>
                    </div>
                </div>
                <div class="card-box profile-header">
                    <div class="row">
                        <div class="col-md-12">
                            <div class="profile-view">
                                <div class="profile-img-wrap">
                                    <div class="profile-img">
                                        <a href="#"><img class="avatar" src='upload/<?php echo $row['FileName']; ?>' alt=""></a>
                                    </div>
                                </div>
                                <div class="profile-basic">
                                    <div class="row">
                                        <div class="col-md-5">
                                            <div class="profile-info-left">
                                                <h4 class="user-name m-t-0 mb-0"><?php echo $row['ProjectName']; ?></h4>
                                                <small class="text-muted"><?php echo $row['ContactName']; ?></small>
                                                
                                                <div class="staff-msg"><a href="chat.html" class="btn btn-primary">Send Message</a></div>
                                            </div>
                                        </div>
                                        <div class="col-md-7">
                                            <ul class="personal-info">
                                                <li>
                                                    <span class="title">Phone:</span>
                                                    <span class="text"><a href="#"><?php echo $row['PhoneNo']; ?></a></span>
                                                </li>
                                                <li>
                                                    <span class="title">Email:</span>
                                                    <span class="text">N/A</a></span>
                                                </li>
                                                <li>
                                                    <span class="title">Project ID:</span>
                                                    <span class="text"><?php echo $row['Id']; ?></span>
                                                </li>
                                                <li>
                                                    <span class="title">Address:</span>
                                                    <span class="text"><?php echo $row['Address']; ?></span>
                                                </li>
                                                
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>                        
                        </div>
                    </div>
                </div>
				<br/>
<hr>

<div class="profile-tabs">
					<ul class="nav nav-tabs">
					
					<li class="nav-item"><a class="nav-link active" href="#Summary" data-toggle="tab">Summary</br>সারসংক্ষেপ</a></li>
				
						<li class="nav-item"><a class="nav-link" href="#Payment" data-toggle="tab">Payment</br>নেওয়া </a></li>
						<li class="nav-item"><a class="nav-link" href="#SalayCost" data-toggle="tab">Salay Cost</br>বেতন খরচ</a></li>
						<li class="nav-item"><a class="nav-link" href="#OthersCost" data-toggle="tab">Others Cost</br>অন্যান্য খরচ</a></li>
					</ul>

  <div class="tab-content">
<div id="Summary" class="tab-pane fade in active">
      <div class="row">
                    <div class="">
                        <div class="card-box">
                            <h3 class="card-title">Summary / সারসংক্ষেপ</h3>
                            <div class="experience-box">
                                <ul class="experience-list">
                                    <li>
                                        <div class="experience-user">
                                            <div class="before-circle"></div>
                                        </div>
                                        <div class="experience-content">
                                            <div class="timeline-content">
                                                <a href="#/" class="name">	<?php
		//sum of amunt filtter project_transations
		$sql = "SELECT  SUM(Amount) from project_transations WHERE ProjectName='" . $_GET['Id'] . "' and PTUserId ='" . $_SESSION['UserId'] . "'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total Pay Amount</br>সর্বমোট নেওয়া : ". $row1['SUM(Amount)'];
		echo "<br>";
		}
	?></a>

                                            </div>
                                        </div>
                                    </li>
                                    <li>
                                        <div class="experience-user">
                                            <div class="before-circle"></div>
                                        </div>
                                        <div class="experience-content">
                                            <div class="timeline-content">
                                                <a href="#/" class="name"><?php
		//sum of amunt filtter project_transations
		$sql = "SELECT  SUM(Salary) from employee_transations WHERE ProjectName='" . $_GET['Id'] . "' and TUserId ='" . $_SESSION['UserId'] . "' ";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total Salary Cost</br>বেতন খরচ : ". $row1['SUM(Salary)'];
		echo "<br>";
		}
	?></a>

                                            </div>
                                        </div>
                                    </li>
                                    <li>
                                        <div class="experience-user">
                                            <div class="before-circle"></div>
                                        </div>
                                        <div class="experience-content">
                                            <div class="timeline-content">
                                                <a href="#" class="name"><?php
		//sum of amunt filtter project_transations
		$sql = "SELECT  SUM(Amount) from expense WHERE ProjectName='" . $_GET['Id'] . "' and EXUserId ='" . $_SESSION['UserId'] . "'";
		$result = $conn->query($sql);
		//display data on web page
		while($row1 = mysqli_fetch_array($result)){
		echo " Total Expense Cost</br>অন্যান্য খরচ : ". $row1['SUM(Amount)'];
		echo "<br>";
		}
	?></a>


                                            </div>
                                        </div>
                                    </li>
                                    
                                    <li>
                                        <div class="experience-user">
                                            <div class="before-circle"></div>
                                        </div>
                                        <div class="experience-content">
                                            <div class="timeline-content">
                                                <a href="#/" class="name">Note /বিঃদ্রঃ : </br><?php echo $row['Note']; ?></a>


                                            </div>
                                        </div>
                                    </li>
                                    
                                    
                                    
                                </ul>
                            </div>
                        </div>
						</div>	
                    </div>
    </div>
<div id="Payment" class="tab-pane fade">
<div class="profile-tabs">
       <ul class="nav nav-tabs">
					
					<li class="nav-item"><a class="nav-link active" href="#home1" data-toggle="tab">List Page</a></li>
				
						<li class="nav-item"><a class="nav-link" href="#home2" data-toggle="tab">All & Search</a></li>
						<li class="nav-item"><a class="nav-link" href="#home3" data-toggle="tab">Last 15</a></li>
						
					</ul>  
<div class="tab-content">
		  <div id="home1" class="tab-pane fade in active">
                        <h1 class="card-title">List Page 10 of 10 All</h1>

				<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">

						
									<table class="table table-border table-striped custom-table datatable mb-0">
                                    <thead class="ggg">
                                        <tr>
                                            <th>PaymentDate</br>তারিখ </th>
											<th>Amount</br>টাকা </th>
                                            <th>Remarks</br>মন্তব্য </th>
                                            <th class="kkk">Tran_Id</br>নম্বর </th>
                                            <th class="kkk">PaymentMethod</br>টাকা পদ্ধতি</th>
                                           
											<th class="text-right">Action</br>সংশোধন </th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter project_transations
		$sqli=$conn->query("Select * from project_transations WHERE ProjectName='" . $_GET['Id'] . "' and PTUserId ='" . $_SESSION['UserId'] . "'");
        foreach ($sqli as $key => $project_transations) { 
		
	?>
                                        <tr>
									<td><?php echo $project_transations ['PaymentDate'];?></td>
									
									<td><?php echo $project_transations ['Amount']; ?></td>
									<td><?php echo $project_transations ['Remarks']; ?></td>
									<td class="kkk"><?php echo $project_transations ['Id']; ?></td>
                                    <td><?php echo $project_transations ['paymentmethod']; ?></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="project_tran-edit.php?Id=<?php echo $project_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $project_transations["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 } ?>        
                                    </tbody>

                                </table>
								</div>
                            </div>
                        </div>
                    </div>			
    <div id="home2" class="tab-pane fade">
      <div class="">
            <div class="content">
			<div class="page-header">
                <div class="row">
                    <div class="col-sm-4 col-3">
                        <h4 class="page-title">Transations List Search</h4>
                    </div>
					
                    <div class="col-sm-3 col-9 text-right m-b-20">
                       <label class="page-title"><h3>search</h3></label>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
</div>
<div class="doc-prof"><a style="padding: 10px; font-weight:bold;"  href="project_tran_print.php?Id=<?php echo $row["Id"]; ?>" target="_blank"  class="btn btn-primary btn-rounded glyphicon glyphicon-print"> Invice Print</a></div>
                    </div>
                    </div>
                </div>
			<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">
 
						
									<table class="table table-bordered" style="font-size:1.5vw;">
                                    <thead class="ggg">
                                        <tr class="alert-info">
                                            <th>PaymentDate</br>তারিখ</th>
											<th>Amount</br>টাকা </th>
                                            <th>Remarks</br>মন্তব্য</th>
                                            <th class="kkk">Tran_Id</br>নম্বর</th>
                                            <th class="kkk">PaymentMethod</br>টাকা পদ্ধতি</th
                                           
											<th class="text-right">Action</br>সংশোধন</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter project_transations
		$sqli=$conn->query("Select * from project_transations WHERE ProjectName='" . $_GET['Id'] . "' and PTUserId ='" . $_SESSION['UserId'] . "'");
        foreach ($sqli as $key => $project_transations) { 
		
	?>
                                        <tr>
									<td><?php echo $project_transations ['PaymentDate'];?></td>
									
									<td><?php echo $project_transations ['Amount']; ?></td>
									<td><?php echo $project_transations ['Remarks']; ?></td>
									<td class="kkk"><?php echo $project_transations ['Id']; ?></td>
                                    <td><?php echo $project_transations ['paymentmethod']; ?></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="project_tran-edit.php?Id=<?php echo $project_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $project_transations["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 } ?>        
                                    </tbody>

                                </table>
								</div>
                            </div>
                        </div>
                    </div>
    </div>
    <div id="home3" class="tab-pane fade">
  		<div class="row">
		<h1 class="card-title">Transations Last 15</h1>
					<div class="col-md-12">
						<div class="table-responsive">
 									<table class="table table-bordered" style="font-size:1.5vw;">
                                    <thead class="ggg">
                                        <tr class="alert-info">
                                            <th>PaymentDate</br>তারিখ </th>
											<th>Amount</br>টাকা </th>
                                            <th>Remarks</br>মন্তব্য </th>
                                            <th class="kkk">Tran_Id</br>নম্বর </th>
                                            <th class="kkk">PaymentMethod</br>টাকা পদ্ধতি</th
                                           
											<th class="text-right">Action</br>সংশোধন</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter project_transations
		$sqli=$conn->query("Select * from project_transations WHERE ProjectName='" . $_GET['Id'] . "' and PTUserId ='" . $_SESSION['UserId'] . "' ORDER BY `project_transations`.`PaymentDate` DESC LIMIT 15");
        foreach ($sqli as $key => $project_transations) { 
		
	?>
                                        <tr>
									<td><?php echo $project_transations ['PaymentDate'];?></td>
									
									<td ><?php echo $project_transations ['Amount']; ?></td>
									<td><?php echo $project_transations ['Remarks']; ?></td>
									<td class="kkk"><?php echo $project_transations ['Id']; ?></td>
                                    <td><?php echo $project_transations ['paymentmethod']; ?></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="project_tran-edit.php?Id=<?php echo $project_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $project_transations["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 } ?>        
                                    </tbody>
<tr class="alert-info">
          
          <td colspan = "5" >Total Amount :</td>
          
       </tr>
                                </table>
								</div>
                            </div>
                        </div></div>
    </div>
  </div>
  </div>
<div id="SalayCost" class="tab-pane fade">
<div class="profile-tabs">
       <ul class="nav nav-tabs">
					
					<li class="nav-item"><a class="nav-link active" href="#salary1" data-toggle="tab">List Page</a></li>
				
						<li class="nav-item"><a class="nav-link" href="#salary2" data-toggle="tab">All & Search</a></li>
						<li class="nav-item"><a class="nav-link" href="#salary3" data-toggle="tab">Last 100</a></li>
						<li class="nav-item"><a class="nav-link" href="#salary4" data-toggle="tab">Date Filter</a></li>
						
					</ul>  
<div class="tab-content">
	<div id="salary1" class="tab-pane fade in active">
                        <h1 class="card-title">List Page 10 of 10 All</h1>

				<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">

						
									<table class="table table-border table-striped custom-table datatable mb-0">
                                    <thead class="ggg">
                                        <tr>
                                            <th>PaymentDate</th>
											<th>Salary</th>
											
                                            <th>Remarks</th>
                                            <th >Tran_Id</th>
											<th class="kkk">EmployeeName</th>
                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter employee_transations
		$sqli=$conn->query("SELECT * from employee_transations
										WHERE ProjectName ='" . $_GET['Id'] . "' and TUserId ='" . $_SESSION['UserId'] . "'");
       foreach ($sqli as $key => $employee_transations) {
		
	?>
                                        <tr>
									<td><?php echo $employee_transations ['PaymentDate'];?></td>
									<td><?php echo $employee_transations ['Salary']; ?></td>
									
									<td><?php echo $employee_transations ['Remarks']; ?></td>
									<td><?php echo $employee_transations ['Id']; ?></td>
									<td class="kkk"><?php echo $employee_transations ['EmployeeName']; ?></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 $employee_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $employee_transations["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 } ?>        
                                    </tbody>

                                </table>
								</div>
                            </div>
                        </div>
                    </div>		
    <div id="salary2" class="tab-pane fade">
      <div class="">
            <div class="content">
			<div class="page-header">
                <div class="row">
                    <div class="col-sm-4 col-3">
                        <h4 class="page-title">Transations List Search</h4>
                    </div>
					
                    <div class="col-sm-3 col-9 text-right m-b-20">
                       <label class="page-title"><h3>search</h3></label>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
</div>
<div class="doc-prof"><a style="padding: 10px; font-weight:bold;"  href="project_tran_print.php?Id=<?php echo $row["Id"]; ?>" target="_blank"  class="btn btn-primary btn-rounded glyphicon glyphicon-print"> Invice Print</a></div>
                    </div>
                    </div>
                </div>
			<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">
 
						
									<table class="table table-bordered" style="font-size:1.5vw;">
                                    <thead class="ggg">
                                        <tr class="alert-info">
                                            <th>PaymentDate</th>
											<th>Salary</th>
                                            <th>Remarks</th>
                                            <th class="kkk">Tran_Id</th>
											<th>EmployeeName</th>
                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter employee_transations
		$sqli=$conn->query("Select * from employee_transations WHERE ProjectName='" . $_GET['Id'] . "' and TUserId ='" . $_SESSION['UserId'] . "'");
        foreach ($sqli as $key => $employee_transations) { 
		
	?>
                                        <tr>
									<td><?php echo $employee_transations ['PaymentDate'];?></td>
									<td><?php echo $employee_transations ['Salary']; ?></td>

									<td><?php echo $employee_transations ['Remarks']; ?></td>
									<td class="kkk"><?php echo $employee_transations ['Id']; ?></td>
									<td><?php echo $employee_transations ['EmployeeName']; ?></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 $employee_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $employee_transations["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 } ?>        
                                    </tbody>

                                </table>
								</div>
                            </div>
                        </div>
                    </div>
    </div>
	
							    <div id="salary3" class="tab-pane fade">
  		<div class="row">
		<h1 class="card-title">Transations Last 100</h1>
					<div class="col-md-12">
						<div class="table-responsive">
 
						
									<table class="table table-bordered" style="font-size:1.5vw;">
                                    <thead class="ggg">
                                        <tr class="alert-info">
                                            <th>PaymentDate</th>
											<th>Salary</th>

                                            <th>Remarks</th>
                                            <th class="kkk">Tran_Id</th>
											<th>EmployeeName</th>
                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter employee_transations
		$sqli=$conn->query("Select * from employee_transations WHERE ProjectName='" . $_GET['Id'] . "' and TUserId ='" . $_SESSION['UserId'] . "' ORDER BY `employee_transations`.`PaymentDate` DESC LIMIT 100");
        foreach ($sqli as $key => $employee_transations) { 
		
	?>
                                        <tr>
									<td><?php echo $employee_transations ['PaymentDate'];?></td>
									
									<td class="cal_amt"><?php echo $employee_transations ['Salary']; ?></td>

									<td><?php echo $employee_transations ['Remarks']; ?></td>
									<td class="kkk"><?php echo $employee_transations ['Id']; ?></td>
									<td ><?php echo $employee_transations ['EmployeeName']; ?></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 $employee_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="project_tran_display1.php?Id=<?php echo $employee_transations["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 } ?>        
                                    </tbody>
<tr class="alert-info">
          
          <td colspan = "6" class="show_amt">Total Amount :</td>
          
       </tr>
                                </table>
								</div>
                            </div>
                        </div></div>

    <div id="salary4" class="tab-pane fade">
  		
		      <h3>Date Filtter</h3>
		<div class="col-lg-8 ">
		<form class="no-print" method="POST" action="">
		<div class="col-md-4 ">
			<label >Date:</label>
			<input type="date" value="<?php if(isset($_POST["search"])){echo $_POST["date1"];}else{}?>" id="textfrom" name="date1" class="datepicker" >
			
			</div>
			<div class="col-md-4 ">
		
			<label>To</label>
			<input type="date" value="<?php if(isset($_POST["search"])){echo $_POST["date2"];}else{}?>" id="textfrom1" name="date2" class="datepicker" >
			
			</div>
			<button class="btn btn-primary" name="search"><span class="glyphicon glyphicon-search"></span></button> <a href="displayproject.php" type="button" class="btn btn-success"><span class = "glyphicon glyphicon-refresh"><span></a>
			<button class="btn btn-primary glyphicon glyphicon-print" onclick="window.print()">  Print</button>
		</form>
		
	</div>
					<div class="col-md-12">
						<div class="table-responsive">
 
						
												<table id="" class="table table-bordered">
				<thead class="alert-info">
				<th role="columnheader" style="font-weight:bold; text-align: center;"  class="alert-info" colspan="6" >Salary Transations</th>
                                        <tr class="alert-info">
                                            <th>PaymentDate</th>
											<th>Salary</th>

                                            <th>Remarks</th>
                                            <th class="kkk">Tran_Id</th>
											<th>EmployeeName</th>
                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php include'date_filter_Salary.php'?>       
                                    </tbody>
<tr class="alert-info">
          
          <td colspan = "6" class="#">***********</td>
          
       </tr>
                                </table>
								</div>
                            </div>
                        </div></div>
						

						
						
						
    </div>
  </div>

<div id="OthersCost" class="tab-pane fade">
<div class="">
         

                        <h1 class="card-title">List Page 10 of 10 All</h1>

				<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">

						
									<table class="table table-border table-striped custom-table datatable mb-0">
                                    <thead class="ggg">
                                        <tr>
                                            <th>Date</th>
											<th>Amount</th>
                                            <th>ExpenseType</th>
                                            <th class="kkk">Remarks</th>
											<th class="kkk">Id</th>
                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
	// filtter expense
		$sqli=$conn->query("Select * from expense JOIN expensetitles on expense.ExpenseType=expensetitles.Id WHERE ProjectName='" . $_GET['Id'] . "'");
        foreach ($sqli as $key => $expense) { 
		
	?>
                                        <tr>
									<td><?php echo $expense ['Date'];?></td>
									
									<td><?php echo $expense ['Amount']; ?></td>
									<td><?php echo $expense ['ExpenseType']; ?></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="project_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="project_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 } ?>        
                                    </tbody>

                                </table>
								</div>
                            </div>
                        </div>
                    </div>
				</div>

</div>
</div>
</div>
</div>
</div>
</div>
</div>




    <div class="sidebar-overlay" data-reff=""></div>
    <script src="assets/js/jquery-3.2.1.min.js"></script>
	<script src="assets/js/popper.min.js"></script>
    <script src="assets/js/bootstrap.min.js"></script>
    <script src="assets/js/jquery.dataTables.min.js"></script>
    <script src="assets/js/dataTables.bootstrap4.min.js"></script>
    <script src="assets/js/jquery.slimscroll.js"></script>
    <script src="assets/js/app.js"></script>
	
<script src="jquery/jquery.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script>
$(document).ready(function(){
  $("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});
</script>
<script>
$(document).ready(function () {
  $('.date').datetimepicker({
    format: 'MM/DD/YYYY',
    locale: 'en'
  });
</script>
<script>
    $(document).ready(function() {
        $('table thead th').each(function(i) {
            calculateColumn('.cal_amt');
        });
    });

    function calculateColumn(index) {
        var total = 0;
        $(index).each(function() {
            var value = parseInt($(this).text());
            if (!isNaN(value)) {
                total += value;
                console.log(total);
            }
        });
        $('.show_amt').text('Total: ' + total);
    }
</script>
<script>
$(function() {
    $( "#textfrom" ).datepicker({
        dateFormat: "yy-mm-dd",                 
        changeMonth: true,
        changeYear: true
    });
});

</script>
<script>
$(function() {
    $( "#textfrom1" ).datepicker({
        dateFormat: "yy-mm-dd",                 
        changeMonth: true,
        changeYear: true
    });
});

</script>

</body>
</html>


