<?php
require('includes/header.php');

   include('connection.php');
 
?>
<!DOCTYPE html>
<html>
<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>Expense Add</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">

<?php

	 //include('includes/checklogin.php');
$sqlQuery = "SELECT Id, ProjectName ,ContactName,SortAddress, status FROM project where status=1 AND PUserId ='" . $_SESSION['UserId'] . "'";
$resultSet = mysqli_query($conn, $sqlQuery)
?>

<head>

   <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 name="viewport" content="width=device-width, initial-scale=1">
<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=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: 20%;
  margin-left:10%;
  margin-top:5px;
  border-radius: 15px;
  background-color: green;
  padding: 20px 20px 20px 20px;
}
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: green;
	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: red;
  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">
<div class="row">
	    					<div class="col-md-12">
						<div class="table-responsive">

									<table id="#" class="table table-bordered" style="font-size:2vw;">
                                    <thead class="ggg">
                                        <tr class="alert-info">
										<th>Project Name</th>
                                            <th>Expense Type</th>
											<th>Amount</th>
                                           
                                            <th class="kkk">Remarks</th>

                                           
											<th class="text-right">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody class="ggg">
		<?php $sqli=$conn->query("SELECT project.ProjectName, Remarks, ExpenseType, Amount, Date, project.Id, expense.Id from expense JOIN project on expense.ProjectName=project.Id  WHERE `Date` = CURDATE() and EXUserId ='" . $_SESSION['UserId'] . "'");
        foreach ($sqli as $key => $project_transations) {
		?>
								<tr>
									
									<td><?php echo $project_transations ['ProjectName']; ?></td>
									<td><?php echo $project_transations ['ExpenseType'];?></td>
									<td class="cal_amt"><?php echo $project_transations ['Amount']; ?></td>
									
									
									<td class="kkk"><?php echo $project_transations ['Remarks']; ?></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-edit.php?Id=<?php echo $project_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-eye-open"></i> view</a>
													
													</li>
													<li>
													<a target="_blank" class="dropdown-item" href="MoneyRecpeit.php?Id=<?php echo $project_transations["Id"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-eye-open"></i> MoneyRecpeit</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 class="row">
        <form class="from" action="ExpenseAction.php" method="post" enctype="multipart/form-data" >
	<h2 class="page-header">Add Expense</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">Date :</label>
		</div>
		<div class="col-75">
			<input type="date" name="Date"  required placeholder="dd-mm-yyyy">
		</div>
	</div>

					<div class="row">
					<div class="col-25">
						<label for="fname">ExpenseType Name :</label>
					</div>
					<div class="project"> 
						<select name="ExpenseType" id="expense" 
									class="form-control" required placeholder >
							<?php 
									$sql = "SELECT * FROM expensetitles where ETUserId ='" . $_SESSION['UserId'] . "'";
									$query = mysqli_query($conn,$sql);
									while($row = mysqli_fetch_assoc($query)){
							?>
								<option  value="">Choose A Expense</option>
								<option class="red" id="<?php echo $row['Id']; ?>" value="<?php echo $row['Id']; ?>"  class="expense custom-select">
									<?php echo $row['ExpenseType']; ?> 
								</option>
							<?php  }?>   
						</select>
					</div>
				</div>
	<div class="row">
		<div class="col-25">
			<label for="lname">Amount :</label>
		</div>
		<div class="col-75">
			<input type="Amount" class="red" name="Amount" required placeholder="Amount....">
		</div>
	</div>
 		<div class="row">
		<div class="col-25">
			<label for="lname">Project Name :</label>
		</div>
		<div class="project">
			<select type="text"  id="project" name="ProjectName" class="form-control" required placeholder>
				<option  value="">Choose A Project</option>
				<?php while($rows = mysqli_fetch_array($resultSet)){
				?>
				<option class="red" value="<?php echo $rows['Id'];?>"><?php echo $rows['ProjectName'];?>!!  Address = <?php echo $rows['SortAddress'];?>!!  ContactName = <?php echo $rows['ContactName'];?></option>
				
				<?php
				}
				?>
			</select>
		</div>
	</div>
	<div class="row">
		<div class="col-25">
			<label for="number_format">Remarks</label>
		</div>
		<div class="col-75"> 
			<input  type="text" name="Remarks" placeholder="Remarks....">
		</div>
	</div>
	<div class="row">
      <div class="col-25">							
  
			<label for="lname">Received By :</label>
		</div>
		 <div class="col-75"> 
			<input   type="text" name="ReceivedBy" placeholder="Received By....">
		</div>
	</div>
	<div class="row">
		<div class="col-25">
			<label  for="lname">Payment By :</label>
		</div>
		<div class="col-75"> 
			<input  type="text" name="PaymentBy" placeholder="Payment By....">
		</div>
	</div>
	<div class="m-t-20 text-center">
			<button class="btn btn-primary submit-btn btn-rounded" type="submit" name="AddExpenes">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="project_tran-display.php">Cancel</a></button>
	</div>
        </form>
</div>
</div>
</div>

</body>
</html>



<script>
$("#project").select2( {
	placeholder: "Choose A Payment Project",
	allowClear: true
	} );
</script>
<script>
$("#expense").select2( {
	placeholder: "Choose A Payment expense",
	allowClear: true
	} );
</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>

