|
Server IP : 217.21.85.138 / Your IP : 216.73.216.103 Web Server : LiteSpeed System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u915722082 ( 915722082) PHP Version : 7.4.33 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF Directory (0755) : /home/u915722082/public_html/weaving/../greenpack/../at/sae-admin/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
session_start();
require_once"_config.php";
if(!isset($_SESSION["logs"])){
redirect("index.php");
}
if(isset($_POST["submit"])){
try{
$con->autocommit(FALSE);
$pdate = date_db_format($_POST["pdate"]);
$pno = $_POST["pno"];
$sid = $_POST["sid"];
$uid = $_POST["uid"];
$net_total = $_POST["net_total"];
#Logs Insert
$now = date("Y-m-d H:i:s");
$sql1="insert into `{$_SESSION["fyear"]}_tbl_logs` (uid,log_date,log_type,log_mode,log_text) values ('{$_SESSION["logs"]["uid"]}','{$now}','Purchase','Change','{$pno}')";
$con->query($sql1);
#Logs End
$sql="update `{$_SESSION["fyear"]}_tbl_stock` set pno='{$pno}',pdate='{$pdate}',rate='{$net_total}',sup_id='{$sid}',uid='{$uid}' where sid='{$_GET["sid"]}'";
//$sql = "insert into `{$_SESSION["fyear"]}_tbl_stock` (pno,pdate,rate,sup_id,uid) values ('{$pno}','{$pdate}','{$net_total}','{$sid}','{$uid}')";
if($con->query($sql)){
$id=$_GET["sid"];
#delete old products
$sql="delete from `{$_SESSION["fyear"]}_tbl_transactions` where stock_id='{$_GET["sid"]}' and ttype='PURCHASE'";
if(!$con->query($sql)){
throw new Exception('Transaction Details Added Failed');
}
$sql="insert into `{$_SESSION["fyear"]}_tbl_transactions` (tdate,pid,dr,cr,rate,total,ref_id,stock_id,ttype,uid) VALUES ";
$rows=[];
for($i=0;$i<count($_POST["pid"]);$i++){
$pid=mysqli_real_escape_string($con,$_POST["pid"][$i]);
$qty=mysqli_real_escape_string($con,$_POST["qty"][$i]);
$rate=mysqli_real_escape_string($con,$_POST["rate"][$i]);
$row_total=mysqli_real_escape_string($con,$_POST["row_total"][$i]);
$rows[]="('{$pdate}','{$pid}','{$qty}','0','{$rate}','{$row_total}','1','{$id}','PURCHASE','{$uid}')";
}
$sql.=implode(",",$rows);
if(!$con->query($sql)){
throw new Exception('Product Items Updated Failed');
}
}else{
throw new Exception('Purchase Updated Failed');
}
$con->commit();
flashN("msg","Purchase Status","Purchase Updated Successfully.","info");
}catch(Exception $e){
$con->rollback();
flashN("msg","Error",$e->getMessage(),"danger");
}
}
$data["supplier"] = resultSet($con,"select * from tbl_supplier order by sname");
$data["units"] = resultSet($con,"select * from tbl_units order by uname");
$data["info"]=single($con,"select * from `{$_SESSION["fyear"]}_tbl_stock` where sid='{$_GET["sid"]}'");
$data["records"]=resultSet($con,"select * from `{$_SESSION["fyear"]}_tbl_transactions` t inner join tbl_products p on t.pid=p.pid where t.stock_id='{$_GET["sid"]}' and t.ttype='PURCHASE'");
?>
<!DOCTYPE html>
<html lang="en">
<?php include "_header.php"; ?>
<body id="kt_app_body" data-kt-app-layout="dark-sidebar" data-kt-app-header-fixed="true" data-kt-app-sidebar-enabled="true" data-kt-app-sidebar-fixed="true" data-kt-app-sidebar-hoverable="true" data-kt-app-sidebar-push-header="true" data-kt-app-sidebar-push-toolbar="true" data-kt-app-sidebar-push-footer="true" data-kt-app-toolbar-enabled="true" class="app-default">
<script>var defaultThemeMode = "light"; var themeMode; if ( document.documentElement ) { if ( document.documentElement.hasAttribute("data-theme-mode")) { themeMode = document.documentElement.getAttribute("data-theme-mode"); } else { if ( localStorage.getItem("data-theme") !== null ) { themeMode = localStorage.getItem("data-theme"); } else { themeMode = defaultThemeMode; } } if (themeMode === "system") { themeMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; } document.documentElement.setAttribute("data-theme", themeMode); }</script>
<div class="d-flex flex-column flex-root app-root" id="kt_app_root">
<div class="app-page flex-column flex-column-fluid " id="kt_app_page">
<?php include"_navbar.php"; ?>
<div class="app-wrapper flex-column flex-row-fluid" id="kt_app_wrapper">
<?php include"_sidebar.php"; ?>
<div class="app-main flex-column flex-row-fluid" id="kt_app_main">
<div class="d-flex flex-column flex-column-fluid">
<!-- Tool bar -->
<div id="kt_app_toolbar" class="app-toolbar py-3 py-lg-6">
<div id="kt_app_toolbar_container" class="app-container container-xxl d-flex flex-stack">
<div class="page-title d-flex flex-column justify-content-center flex-wrap me-3">
<h1 class="page-heading d-flex text-dark fw-bold fs-3 flex-column justify-content-center my-0">Purchase</h1>
<ul class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1">
<li class="breadcrumb-item text-muted">
<a href="#" class="text-muted text-hover-primary">Home</a>
</li>
<li class="breadcrumb-item">
<span class="bullet bg-gray-400 w-5px h-2px"></span>
</li>
<li class="breadcrumb-item text-muted"><a href='purchase.php'>Purchase</a></li>
</ul>
</div>
</div>
</div>
<style>
.hide{
visibility:hidden!important;
position:absolute!important;
}
</style>
<!-- Page Body -->
<div id="kt_app_content" class="app-content flex-column-fluid">
<div id="kt_app_content_container" class="app-container container-xxl">
<div class="d-flex flex-column flex-lg-row">
<div class="flex-lg-row-fluid mb-10 mb-lg-0 me-lg-7 me-xl-10">
<?php echo flashN("msg");?>
<div class="card">
<div class="card-body p-12">
<form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method='post' >
<div class='frm' >
<div class="d-flex flex-column align-items-start flex-xxl-row">
<div class="d-flex align-items-center flex-equal fw-row me-4 order-2" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Specify Purchase date">
<div class="fs-6 fw-bold text-gray-700 text-nowrap">Date:</div>
<div class="position-relative d-flex align-items-center w-150px">
<input class="form-control form-control-transparent fw-bold pe-5 datepicker" placeholder="Select date" name="pdate" value='<?php echo $data["info"]["pdate"]; ?>' />
<i class="ki-duotone ki-down fs-4 position-absolute ms-4 end-0"></i>
</div>
</div>
<div class="d-flex align-items-center flex-equal fw-row me-4 order-2" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Select Supplier">
<div class="fs-6 fw-bold text-gray-700 text-nowrap">Supplier:</div>
<div class="position-relative d-flex align-items-center w-150px">
<select class="form-select form-select-sm mb-3" placeholder="Select Supplier" name="sid" >
<option value=''>Select Supplier</option>
<?php foreach($data["supplier"] as $row):?>
<?php if($data["info"]["sup_id"]==$row["sid"]): ?>
<option selected value='<?php echo $row["sid"]; ?>'><?php echo $row["sname"]; ?></option>
<?php else:?>
<option value='<?php echo $row["sid"]; ?>'><?php echo $row["sname"]; ?></option>
<?php endif;?>
<?php endforeach;?>
</select>
</div>
</div>
<div class="d-flex align-items-center flex-equal fw-row me-4 order-2" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Select Supplier">
<div class="fs-6 fw-bold text-gray-700 text-nowrap">Unit:</div>
<div class="position-relative d-flex align-items-center w-150px">
<select class="form-select form-select-sm" placeholder="Select Unit" name="uid" >
<option>Select Unit</option>
<?php foreach($data["units"] as $row):?>
<?php if($data["info"]["uid"]==$row["uid"]): ?>
<option selected value='<?php echo $row["uid"]; ?>'><?php echo $row["uname"]; ?></option>
<?php else:?>
<option value='<?php echo $row["uid"]; ?>'><?php echo $row["uname"]; ?></option>
<?php endif;?>
<?php endforeach;?>
</select>
</div>
</div>
<div class="d-flex flex-center flex-equal fw-row text-nowrap order-1 order-xxl-2 me-4" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Enter Purchase number">
<span class="fs-6 fw-bold text-gray-700 text-nowrap">Purchase No #</span>
<input type="text" class="form-control form-control-flush fw-bold text-muted fs-6 w-125px" name='pno' value='<?php echo $data["info"]["pno"]; ?>' placehoder="..." />
</div>
</div>
<div class="separator separator-dashed my-10"></div>
<div class="mb-0">
<div class="table-responsive mb-10">
<?php
$rows=resultSet($con,"select *,round(sum(dr)-sum(cr),2) as avail from `{$_SESSION["fyear"]}_tbl_stock` s inner join tbl_products p on s.pid=p.pid group by s.pid having avail<>0 order by pname");
$options="<option value=''>Select Product</option>";
foreach($rows as $row){
$options.= "<option value='{$row["pid"]}' >{$row["pname"]} [{$row["avail"]} {$row["uom"]}]</option>";
}
?>
<table class="table g-5 gs-0 mb-0 fw-bold text-gray-700" data-kt-element="items">
<thead>
<tr class="border-bottom fs-7 fw-bold text-gray-700 text-uppercase">
<th class="min-w-300px w-475px">Product</th>
<th class="min-w-150px w-150px text-center">Qty</th>
<th class="min-w-150px w-150px text-center">Rate</th>
<th class="min-w-75px w-75px text-end">Action</th>
</tr>
</thead>
<tbody id='tbody'>
<?php foreach($data["records"] as $row):?>
<tr class="border-bottom border-bottom-dashed" data-kt-element="item" >
<td class="pe-7">
<select class="form-select form-select-sm pid" data-placeholder="Select an option" required name='pid[]'>
<?php
foreach($rows as $r){
if($row["pid"]==$r["pid"]){
echo "<option selected value='{$row["pid"]}' >{$row["pname"]} [{$row["avail"]} {$row["uom"]}]</option>";
}else{
echo "<option value='{$row["pid"]}' >{$row["pname"]} [{$row["avail"]} {$row["uom"]}]</option>";
}
}
?>
</select>
</td>
<td>
<input type="text" class="form-control form-control-sm text-end qty" name="qty[]" value='<?php echo $row["dr"]; ?>' required data-kt-element="qty" />
</td>
<td>
<input type="text" class="form-control form-control-sm text-end rate" name="rate[]" value='<?php echo $row["rate"]; ?>' required data-kt-element="rate" />
<input type="hidden" class="form-control form-control-sm text-end total" name="row_total[]" value='<?php echo $row["total"]; ?>' required data-kt-element="total" />
</td>
<td class="pt-5 text-end">
<button type="button" class="btn btn-sm btn-icon btn-active-color-primary btn-remove" data-kt-element="remove-item">
<i class="ki-duotone ki-trash fs-3">
<span class="path1"></span>
<span class="path2"></span>
<span class="path3"></span>
<span class="path4"></span>
<span class="path5"></span>
</i>
</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr class="align-top fw-bold text-gray-700">
<th><button class="btn btn-link py-1" id='add_row' data-kt-element="add-item">Add item</button></th>
<th class='text-right'><button type="button"class="btn btn-primary" id='preview'> <span class="indicator-label">Submit</span> </button> </th>
<th></th>
<th>
<input type="hidden" id='net_total' class="form-control form-control-sm text-end net_total" value='<?php echo $data["info"]["rate"]; ?>' name="net_total" required data-kt-element="net_total" /></th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
<div class='preview hide'>
<div class="table-responsive">
<table class="table align-middle table-row-dashed fs-6 gy-5 table-bordered">
<thead>
<tr class="text-start text-gray-400 fw-bold fs-7 text-uppercase gs-0">
<th class="w-10px pe-2">SNo</th>
<th class="min-w-200px">Product</th>
<th class="min-w-150px">Qty</th>
<th class="min-w-150px">Rate</th>
</tr>
</thead>
<tbody class="fw-semibold text-gray-600" id='tbody2'>
</tbody>
</table>
</div>
<div class='d-flex justify-content-between'>
<button type="button"class="btn btn-info" id='preview_edit'> <span class="indicator-label">Edit</span> </button>
<button type="submit" class="btn btn-primary" name='submit'> <span class="indicator-label">Submit</span> </button>
</div>
</div>
</form>
<!--Clone Table for dynamic row-->
<table class="table d-none" id='row-clone'>
<tr class="border-bottom border-bottom-dashed" data-kt-element="item" >
<td class="pe-7">
<select class="form-select form-select-sm" data-placeholder="Select an option" required name='pid[]'>
<?php echo $options; ?>
</select>
</td>
<td>
<input type="text" class="form-control form-control-sm text-end qty" name="qty[]" required data-kt-element="qty" />
</td>
<td>
<input type="text" class="form-control form-control-sm text-end rate" name="rate[]" required data-kt-element="rate" />
<input type="hidden" class="form-control form-control-sm text-end total" name="row_total[]" required data-kt-element="total" />
</td>
<td class="pt-5 text-end">
<button type="button" class="btn btn-sm btn-icon btn-active-color-primary btn-remove" data-kt-element="remove-item">
<i class="ki-duotone ki-trash fs-3">
<span class="path1"></span>
<span class="path2"></span>
<span class="path3"></span>
<span class="path4"></span>
<span class="path5"></span>
</i>
</button>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include "_footer_content.php"; ?>
</div>
</div>
</div>
</div>
<?php include "_footer.php";?>
<script>
$(document).ready(function(){
var row = $("#row-clone tbody").html();
$(".pid").select2();
//Add row
$("#add_row").click(function(e){
e.preventDefault();
$("#tbody").append(row);
$(".form-select").select2();
$(".pid").select2().trigger("change");
});
//Preview Action
$("#preview").click(function(e){
var isValid = true;
var rows = "";
var i = 1;
$("#tbody tr").each(function(){
if($(this).find(".select2-selection__rendered").text()=="Select an option" || $(this).find(".qty").val()==""){
//alert("Please fill out all the required fields");
Swal.fire({
text: "Please fill out all the required fields",
icon: "error",
buttonsStyling: !1,
confirmButtonText: "Ok, got it!",
customClass: {
confirmButton: "btn fw-bold btn-primary"
}
});
isValid = false;
}
let pname = $(this).find(".select2-selection__rendered").text();
let qty = $(this).find(".qty").val();
let rate = $(this).find(".rate").val();
rows += "<tr><td>"+i+"</td><td>"+pname+"</td><td>"+qty+"</td><td>"+rate+"</td></tr>";
i++;
});
if(isValid){
$(".frm").addClass("hide");
$(".preview").removeClass("hide");
$("#tbody2").html(rows);
}
});
$("#preview_edit").click(function(){
$(".preview").addClass("hide");
$(".frm").removeClass("hide");
});
//Rate Change
$("body").on("keyup",".rate",function(){
var rate = $(this).closest("tr").find(".rate").val();
var qty = $(this).closest("tr").find(".qty").val();
var total = rate * qty;
$(this).closest("tr").find(".total").val(total);
grandTotal();
});
//Qty Change
$("body").on("keyup",".qty",function(){
var rate = $(this).closest("tr").find(".rate").val();
var qty = $(this).closest("tr").find(".qty").val();
var total = rate * qty;
$(this).closest("tr").find(".total").val(total);
grandTotal();
});
//Grand Total
function grandTotal(){
var total = 0;
$(".total").each(function(){
total+= Number($(this).val());
});
$("#net_total").val(total);
}
//Delete row
$("body").on("click",".btn-remove",function(){
$(this).closest("tr").remove();
grandTotal();
});
var currentRow = "";
//Clear Add Modal Inputs
function clearAddModal(){
$("#cname").val("");
$("#btn-submit").text("Submit");
}
//Clear Edit Modal Inputs
function clearEditModal(){
//$("#cname2").val("");
$("#cid2").val("0");
$("#btn-submit2").text("Submit");
}
//Open Edit Modal - in Table edit link
$("body").on("click",".edit",function(e){
e.preventDefault();
var cid = $(this).attr("cid");
var cname = $(this).closest("tr").find('td:eq(1)').text();
$("#cid2").val(cid);
$("#cname2").val(cname);
$("#kt_modal_edit_target").modal('show');
currentRow = $(this).closest("tr");
});
});
</script>
</body>
</html>