stock module - 03-04-2025
This commit is contained in:
parent
663e526f29
commit
81d569dc01
@ -1525,6 +1525,10 @@ function updateIGRWeight(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
********************************************************* sec_gas_shortage_starts **************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
public function gasCylinderEntered(){
|
public function gasCylinderEntered(){
|
||||||
|
|
||||||
$this->global['pageTitle'] = 'Gas Cylinder Entered';
|
$this->global['pageTitle'] = 'Gas Cylinder Entered';
|
||||||
@ -1533,7 +1537,7 @@ function updateIGRWeight(){
|
|||||||
|
|
||||||
$gasMaterialCodes = array_column($gasMaterialCodes,'MaterialCode');
|
$gasMaterialCodes = array_column($gasMaterialCodes,'MaterialCode');
|
||||||
|
|
||||||
$igrDetailsListByMcatGas = $this->inwardgateregister_model->getIgrDetailsListByMcatGas($gasMaterialCodes);
|
$igrDetailsListByMcatGas = $this->inwardgateregister_model->getIgrDetailsListByMcatGas($gasMaterialCodes,"gas_entered");
|
||||||
|
|
||||||
$data['gasCylinderEnteredList'] = $igrDetailsListByMcatGas;
|
$data['gasCylinderEnteredList'] = $igrDetailsListByMcatGas;
|
||||||
|
|
||||||
@ -1544,9 +1548,16 @@ function updateIGRWeight(){
|
|||||||
|
|
||||||
public function gasCylinderPending(){
|
public function gasCylinderPending(){
|
||||||
|
|
||||||
$this->global['pageTitle'] = 'Gas Shortage List';
|
|
||||||
|
|
||||||
$data['gasShortageList'] = $this->gasShortage_model->findAll();
|
$this->global['pageTitle'] = 'Gas Cylinder Pending';
|
||||||
|
|
||||||
|
$gasMaterialCodes = $this->rawMaterialDetails_model->getAllGasMaterialCode();
|
||||||
|
|
||||||
|
$gasMaterialCodes = array_column($gasMaterialCodes,'MaterialCode');
|
||||||
|
|
||||||
|
$igrDetailsListByMcatGas = $this->inwardgateregister_model->getIgrDetailsListByMcatGas($gasMaterialCodes,"gas_pending");
|
||||||
|
|
||||||
|
$data['gasCylinderPendingList'] = $igrDetailsListByMcatGas;
|
||||||
|
|
||||||
$this->loadViews("gasCylinderPending", $this->global, $data, NULL);
|
$this->loadViews("gasCylinderPending", $this->global, $data, NULL);
|
||||||
|
|
||||||
@ -1555,58 +1566,125 @@ function updateIGRWeight(){
|
|||||||
|
|
||||||
public function gasCylinderReturned(){
|
public function gasCylinderReturned(){
|
||||||
|
|
||||||
$this->global['pageTitle'] = 'Gas Shortage List';
|
$this->global['pageTitle'] = 'Gas Cylinder Returned';
|
||||||
|
|
||||||
$data['gasShortageList'] = $this->gasShortage_model->findAll();
|
$gasMaterialCodes = $this->rawMaterialDetails_model->getAllGasMaterialCode();
|
||||||
|
|
||||||
|
$gasMaterialCodes = array_column($gasMaterialCodes,'MaterialCode');
|
||||||
|
|
||||||
|
$igrDetailsListByMcatGas = $this->inwardgateregister_model->getIgrDetailsListByMcatGas($gasMaterialCodes,"gas_returned");
|
||||||
|
|
||||||
|
$data['gasCylinderReturnedList'] = $igrDetailsListByMcatGas;
|
||||||
|
|
||||||
$this->loadViews("gasCylinderReturned", $this->global, $data, NULL);
|
$this->loadViews("gasCylinderReturned", $this->global, $data, NULL);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getGasShortageDetail(){
|
|
||||||
|
|
||||||
$postData = $this->request->getPost();
|
|
||||||
|
|
||||||
$shortage = $this->gasShortage_model->where('id',$postData['id'])->find();
|
|
||||||
|
|
||||||
return $this->response->setJSON(['status' => 'success', 'data' => $shortage]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function updateGasShortage()
|
public function updateGasShortage()
|
||||||
{
|
{
|
||||||
$postData = $this->request->getPost();
|
try {
|
||||||
|
|
||||||
// Validate required data
|
$postData = $this->request->getJSON(true); // Convert JSON to an associative array
|
||||||
|
|
||||||
|
// Validate if any data is received
|
||||||
if (!$postData) {
|
if (!$postData) {
|
||||||
return $this->response->setJSON(['status' => 'error', 'message' => 'Invalid request. No data received.']);
|
return $this->response->setJSON([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Invalid request. No data received.'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate required fields for adding
|
// Validate required fields
|
||||||
if ( !isset($postData['invoiceNo']) ) {
|
if (empty($postData['invoiceNo']) ) {
|
||||||
return $this->response->setJSON(['status' => 'error', 'message' => 'Missing required fields: invoice No.']);
|
return $this->response->setJSON([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Missing invoiceNo data.'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle update (edit)
|
$updates = [];
|
||||||
if (isset($postData["id"])) {
|
$inserts = [];
|
||||||
return $this->gasShortage_model->update($postData["id"], $postData)
|
|
||||||
? $this->response->setJSON(['status' => 'success', 'message' => 'Gas shortage details updated successfully.'])
|
|
||||||
: $this->response->setJSON(['status' => 'error', 'message' => 'Failed to update gas shortage details.']);
|
if(isset($postData['id'])){ //update operation
|
||||||
|
|
||||||
|
$cylinderData = [
|
||||||
|
'id' => $postData['id'],
|
||||||
|
'IGRNO' => $postData['IGRNO'] ?? '',
|
||||||
|
'fullCylinderDate' => $postData['fullCylinderDate'] ?? '',
|
||||||
|
'emptyCylinderDate' => $postData['emptyCylinderDate'] ?? '',
|
||||||
|
'invoiceNo' => $postData['invoiceNo'] ?? '',
|
||||||
|
'cylinderNo' => $postData['cylinderNo'],
|
||||||
|
'grossWeight' => $postData['grossWeight'],
|
||||||
|
'tareWeight' => $postData['tareWeight'] ?? '',
|
||||||
|
'netWeight' => $postData['netWeight'] ?? '',
|
||||||
|
'actualWeight' => $postData['actualWeight'],
|
||||||
|
'shortage' => $postData['shortage'] ?? '',
|
||||||
|
'gas_cylinder_status' => "gas_returned"
|
||||||
|
];
|
||||||
|
|
||||||
|
$updates[] = $cylinderData ;
|
||||||
|
|
||||||
|
}else{//Insert Operation
|
||||||
|
|
||||||
|
// Process each cylinder entry
|
||||||
|
foreach ($postData['cylinders'] as $cylinder) {
|
||||||
|
|
||||||
|
// Ensure cylinder data is valid
|
||||||
|
if (!isset($cylinder['cylinderNo'], $cylinder['grossWeight'], $cylinder['actualWeight'])) {
|
||||||
|
continue; // Skip incomplete data
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert new shortage (add)
|
$cylinderData = [
|
||||||
return ($insertId = $this->gasShortage_model->insert($postData))
|
'IGRNO' => $postData['IGRNO'] ?? '',
|
||||||
? $this->response->setJSON(['status' => 'success', 'message' => 'Gas shortage details added successfully.', 'data' => ['id' => $insertId]])
|
'fullCylinderDate' => $postData['fullCylinderDate'] ?? '',
|
||||||
: $this->response->setJSON(['status' => 'error', 'message' => 'Failed to save gas shortage details.']);
|
'emptyCylinderDate' => $postData['emptyCylinderDate'] ?? '',
|
||||||
|
'invoiceNo' => $postData['invoiceNo'] ?? '',
|
||||||
|
'cylinderNo' => $cylinder['cylinderNo'],
|
||||||
|
'grossWeight' => $cylinder['grossWeight'],
|
||||||
|
'tareWeight' => $cylinder['tareWeight'] ?? '',
|
||||||
|
'netWeight' => $cylinder['netWeight'] ?? '',
|
||||||
|
'actualWeight' => $cylinder['actualWeight'],
|
||||||
|
'shortage' => $cylinder['shortage'] ?? '',
|
||||||
|
'gas_cylinder_status' => 'gas_pending'
|
||||||
|
];
|
||||||
|
|
||||||
|
$inserts[] = $cylinderData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($updates)) {
|
||||||
|
$this->gasShortage_model->updateBatch($updates, 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($inserts)) {
|
||||||
|
$this->gasShortage_model->insertBatch($inserts);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->response->setJSON([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Gas shortage details processed successfully.'
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
// Log the error for debugging
|
||||||
|
log_message('error', 'Gas Shortage Update Error: ' . $th->getMessage());
|
||||||
|
|
||||||
|
return $this->response->setJSON([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'An unexpected error occurred while processing gas shortage details.',
|
||||||
|
'error' => $th->getMessage()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
********************************************************* sec_gas_shortage_ends **************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -13,8 +13,18 @@ class GasShortageModel extends Model
|
|||||||
protected $useSoftDeletes = false;
|
protected $useSoftDeletes = false;
|
||||||
protected $protectFields = true;
|
protected $protectFields = true;
|
||||||
protected $allowedFields =
|
protected $allowedFields =
|
||||||
['fullCylinderDate','emptyCylinderDate','invoiceNo',
|
['id',
|
||||||
'cylinderNo','grossWeight','tareWeight','netWeight','actualWeight','shortage'
|
'IGRNO',
|
||||||
|
'fullCylinderDate',
|
||||||
|
'emptyCylinderDate',
|
||||||
|
'invoiceNo',
|
||||||
|
'cylinderNo',
|
||||||
|
'grossWeight',
|
||||||
|
'tareWeight',
|
||||||
|
'netWeight',
|
||||||
|
'actualWeight',
|
||||||
|
'shortage',
|
||||||
|
'gas_cylinder_status'
|
||||||
];
|
];
|
||||||
|
|
||||||
protected bool $allowEmptyInserts = false;
|
protected bool $allowEmptyInserts = false;
|
||||||
|
|||||||
@ -1380,26 +1380,42 @@ $builder = $this->db->table('t_igr_history')
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Mcat -materialCategory
|
//Mcat -materialCategory
|
||||||
public function getIgrDetailsListByMcatGas($gasMaterialCodes){
|
public function getIgrDetailsListByMcatGas($gasMaterialCodes,$gas_status){
|
||||||
|
|
||||||
$result = $this->db->table('t_igr_details as t_igrd')
|
$builder = $this->db->table('t_igr_details as t_igrd')
|
||||||
->select("
|
->select("
|
||||||
t_igrd.IGRNO,
|
t_igrd.IGRNO as IGRNO-,
|
||||||
SUM(t_igrd.QuantityAsPerInvoice) as gasCylinderCount,
|
(t_igrd.QuantityAsPerInvoice) as gasCylinderCount,
|
||||||
t_sd.SupplierName,
|
t_sd.SupplierName,
|
||||||
t_igrm.*,
|
t_igrm.*,
|
||||||
'gas entered' AS status
|
t_mm.MaterialName,
|
||||||
|
t_gsd.*
|
||||||
")
|
")
|
||||||
->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO')
|
->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO')
|
||||||
->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left')
|
->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left')
|
||||||
->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID')
|
->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID')
|
||||||
->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrd.IGRNO', 'left')
|
->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrd.IGRNO', 'left')
|
||||||
->whereIn('MaterialCode', $gasMaterialCodes)
|
->join('t_materialmaster t_mm','t_mm.MaterialCode = t_igrd.MaterialCode','left')
|
||||||
->where("DATE(t_igrd.CreatedDate) BETWEEN '2025-01-01' AND '2025-01-31' ")
|
->whereIn('t_igrd.MaterialCode', $gasMaterialCodes)
|
||||||
->where('t_gsd.IGRNO IS NULL')
|
->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ");
|
||||||
->groupBy('t_igrd.IGRNO')
|
|
||||||
->get()
|
|
||||||
->getResultArray();
|
switch ($gas_status) {
|
||||||
|
case "gas_entered":
|
||||||
|
$builder->where('t_gsd.gas_cylinder_status IS NULL');
|
||||||
|
break;
|
||||||
|
case "gas_pending":
|
||||||
|
$builder->where('t_gsd.gas_cylinder_status','gas_pending');
|
||||||
|
break;
|
||||||
|
case "gas_returned":
|
||||||
|
$builder->where('t_gsd.gas_cylinder_status','gas_returned');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$builder->where('t_gsd.gas_cylinder_status IS NULL');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$result = $builder->get()->getResultArray();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -203,22 +203,27 @@
|
|||||||
<table id="view_inward_gate_register" class="table table-bordered table-hover">
|
<table id="view_inward_gate_register" class="table table-bordered table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<!-- basic details -->
|
||||||
<th>Full Cylinder Date</th>
|
<th>Full Cylinder Date</th>
|
||||||
<th>IGR No</th>
|
<th>IGR No</th>
|
||||||
<th>Supplier</th>
|
<th>Supplier</th>
|
||||||
<th>Bill/Invoice No</th>
|
<th>Bill/Invoice No</th>
|
||||||
|
<th>Cylinder Name</th>
|
||||||
|
|
||||||
|
<!-- cylinderdetails -->
|
||||||
|
|
||||||
|
<!-- least details -->
|
||||||
<th>Bill Date</th>
|
<th>Bill Date</th>
|
||||||
<th>Driver Name</th>
|
<th>Driver Name</th>
|
||||||
<th>Vehicle No</th>
|
<th>Vehicle No</th>
|
||||||
<th>Cylinder Count</th>
|
<th>Cylinder Count</th>
|
||||||
<th>Status</th>
|
|
||||||
<th>Gas Details</th>
|
<th>Gas Details</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<?php if(empty($gasCylinderEnteredList)){?>
|
<?php if(empty($gasCylinderEnteredList)){?>
|
||||||
<p> No Gas Cylinder Entered in the Given Dates..!!</p>
|
<p align="center"> No Gas Cylinder Entered in the Given Dates..!!</p>
|
||||||
<?php }else{ ?>
|
<?php }else{ ?>
|
||||||
|
|
||||||
<?php foreach($gasCylinderEnteredList as $index => $gasCylinder):
|
<?php foreach($gasCylinderEnteredList as $index => $gasCylinder):
|
||||||
@ -228,22 +233,39 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
|
<!-- basic details -->
|
||||||
|
|
||||||
|
<!-- td:eq(0) -->
|
||||||
<td><?=$gasCylinder['MaterialRcvdDate']?></td>
|
<td><?=$gasCylinder['MaterialRcvdDate']?></td>
|
||||||
<td><?=$gasCylinder['IGRNO']?></td>
|
<!-- td:eq(1) -->
|
||||||
|
<td><?=$gasCylinder['IGRNO-']?></td>
|
||||||
|
<!-- td:eq(2) -->
|
||||||
<td><?=$gasCylinder['SupplierName']?></td>
|
<td><?=$gasCylinder['SupplierName']?></td>
|
||||||
|
<!-- td:eq(3) -->
|
||||||
<td><?=$gasCylinder['DeliveryChellanOrInvoiceNo']?></td>
|
<td><?=$gasCylinder['DeliveryChellanOrInvoiceNo']?></td>
|
||||||
|
<!-- td:eq(4) -->
|
||||||
|
<td><?=$gasCylinder['MaterialName']?></td>
|
||||||
|
|
||||||
|
<!-- cylinderdetails -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- least details -->
|
||||||
|
|
||||||
|
<!-- td:eq(5) -->
|
||||||
<td><?=$gasCylinder['DeliveryChellanDate']?></td>
|
<td><?=$gasCylinder['DeliveryChellanDate']?></td>
|
||||||
|
<!-- td:eq(6) -->
|
||||||
<td><?=$gasCylinder['DriverName']?></td>
|
<td><?=$gasCylinder['DriverName']?></td>
|
||||||
|
<!-- td:eq(7) -->
|
||||||
<td><?=$gasCylinder['VehicleNo']?></td>
|
<td><?=$gasCylinder['VehicleNo']?></td>
|
||||||
|
<!-- td:eq(8) -->
|
||||||
<td><?=$gasCylinder['gasCylinderCount']?></td>
|
<td><?=$gasCylinder['gasCylinderCount']?></td>
|
||||||
<td><?=$gasCylinder['status']?></td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- #gasEnteredDetails modal will open when clicking this button -->
|
<!-- #gasEnteredDetails modal will open when clicking this button -->
|
||||||
<td>
|
<td>
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fa fa-edit enter-gas-details" ></i>
|
<i class="fa fa-edit gas-entered-details" ></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@ -277,7 +299,7 @@
|
|||||||
<div class="modal-dialog modal-xl">
|
<div class="modal-dialog modal-xl">
|
||||||
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">Enter Gas Cylinder Details </h4>
|
<h4 class="modal-title">Gas Cylinder Details </h4>
|
||||||
|
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
aria-hidden="true">×</button>
|
aria-hidden="true">×</button>
|
||||||
@ -340,6 +362,11 @@
|
|||||||
<input type="text" class="form-control" id="vehicleNo" name="vehicleNo" value="" readonly>
|
<input type="text" class="form-control" id="vehicleNo" name="vehicleNo" value="" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="cylinderCount"> Cylinder Name </label>
|
||||||
|
<input type="text" class="form-control" id="cylinderName" name="cylinderName" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="cylinderCount"> Cylinder Count </label>
|
<label for="cylinderCount"> Cylinder Count </label>
|
||||||
<input type="text" class="form-control" id="cylinderCount" name="cylinderCount" value="" readonly>
|
<input type="text" class="form-control" id="cylinderCount" name="cylinderCount" value="" readonly>
|
||||||
@ -485,7 +512,7 @@
|
|||||||
$("#resetButton").click(function() {
|
$("#resetButton").click(function() {
|
||||||
$("#fromDate").val('');
|
$("#fromDate").val('');
|
||||||
$("#toDate").val('');
|
$("#toDate").val('');
|
||||||
window.location="ViewIGR"
|
window.location="gasCylinderEntered"
|
||||||
});
|
});
|
||||||
|
|
||||||
// Automatically focus and open the To Date picker when From Date is selected
|
// Automatically focus and open the To Date picker when From Date is selected
|
||||||
@ -533,7 +560,7 @@
|
|||||||
<!-- while Opening gasEnteredDetails modal -->
|
<!-- while Opening gasEnteredDetails modal -->
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(document).on('click', '.enter-gas-details', function() {
|
$(document).on('click', '.gas-entered-details', function() {
|
||||||
|
|
||||||
|
|
||||||
let row = $(this).closest("tr");
|
let row = $(this).closest("tr");
|
||||||
@ -542,10 +569,13 @@
|
|||||||
let igrNo = row.find("td:eq(1)").text().trim();
|
let igrNo = row.find("td:eq(1)").text().trim();
|
||||||
let supplierName = row.find("td:eq(2)").text().trim();
|
let supplierName = row.find("td:eq(2)").text().trim();
|
||||||
let invoiceNo = row.find("td:eq(3)").text().trim();
|
let invoiceNo = row.find("td:eq(3)").text().trim();
|
||||||
let billDate = row.find("td:eq(4)").text().trim();
|
let cylinderName = row.find("td:eq(4)").text().trim();
|
||||||
let driverName = row.find("td:eq(5)").text().trim();
|
|
||||||
let vehicleNo = row.find("td:eq(6)").text().trim();
|
|
||||||
let cylinderCount = parseInt(row.find("td:eq(7)").text().trim(), 10);
|
let billDate = row.find("td:eq(5)").text().trim();
|
||||||
|
let driverName = row.find("td:eq(6)").text().trim();
|
||||||
|
let vehicleNo = row.find("td:eq(7)").text().trim();
|
||||||
|
let cylinderCount = parseInt(row.find("td:eq(8)").text().trim(), 10);
|
||||||
|
|
||||||
// Convert fullCylinderDate to YYYY-MM-DD
|
// Convert fullCylinderDate to YYYY-MM-DD
|
||||||
if (fullCylinderDate) {
|
if (fullCylinderDate) {
|
||||||
@ -567,6 +597,7 @@
|
|||||||
$('#billDate').val(billDate);
|
$('#billDate').val(billDate);
|
||||||
$('#driverName').val(driverName);
|
$('#driverName').val(driverName);
|
||||||
$('#vehicleNo').val(vehicleNo);
|
$('#vehicleNo').val(vehicleNo);
|
||||||
|
$('#cylinderName').val(cylinderName);
|
||||||
$('#cylinderCount').val(cylinderCount);
|
$('#cylinderCount').val(cylinderCount);
|
||||||
|
|
||||||
// Clear previous cylinder inputs
|
// Clear previous cylinder inputs
|
||||||
@ -618,6 +649,7 @@
|
|||||||
$('#billDate').val(" ");
|
$('#billDate').val(" ");
|
||||||
$('#driverName').val(" ");
|
$('#driverName').val(" ");
|
||||||
$('#vehicleNo').val(" ");
|
$('#vehicleNo').val(" ");
|
||||||
|
$('#cylinderName').val(" ");
|
||||||
$('#cylinderCount').val(" ");
|
$('#cylinderCount').val(" ");
|
||||||
$('#cylinderDiv').html("");
|
$('#cylinderDiv').html("");
|
||||||
});
|
});
|
||||||
@ -644,12 +676,13 @@ $(document).ready(function () {
|
|||||||
// Collecting form data
|
// Collecting form data
|
||||||
let formData = {
|
let formData = {
|
||||||
fullCylinderDate: $("#fullCylinderDate").val(),
|
fullCylinderDate: $("#fullCylinderDate").val(),
|
||||||
igrNo: $("#IGRNO").val(),
|
IGRNO: $("#IGRNO").val(),
|
||||||
supplierName: $("#supplierName").val(),
|
supplierName: $("#supplierName").val(),
|
||||||
invoiceNo: $("#invoiceNo").val(),
|
invoiceNo: $("#invoiceNo").val(),
|
||||||
billDate: $("#billDate").val(),
|
billDate: $("#billDate").val(),
|
||||||
driverName: $("#driverName").val(),
|
driverName: $("#driverName").val(),
|
||||||
vehicleNo: $("#vehicleNo").val(),
|
vehicleNo: $("#vehicleNo").val(),
|
||||||
|
cylinderName: $('#cylinderName').val(),
|
||||||
cylinderCount: $("#cylinderCount").val(),
|
cylinderCount: $("#cylinderCount").val(),
|
||||||
cylinders: [] // Array to store cylinder details
|
cylinders: [] // Array to store cylinder details
|
||||||
};
|
};
|
||||||
@ -666,8 +699,6 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
console.log(formData); // Debugging - Check if data is correct
|
console.log(formData); // Debugging - Check if data is correct
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
$('#loader').show(); // Show loader
|
$('#loader').show(); // Show loader
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -203,9 +203,14 @@
|
|||||||
<table id="view_inward_gate_register" class="table table-bordered table-hover">
|
<table id="view_inward_gate_register" class="table table-bordered table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<!-- basic details -->
|
||||||
<th>Full Cylinder Date</th>
|
<th>Full Cylinder Date</th>
|
||||||
<th>IGR No</th>
|
<th>IGR No</th>
|
||||||
<th>Supplier</th>
|
<th>Supplier</th>
|
||||||
|
<th>Bill/Invoice No</th>
|
||||||
|
<th>Cylinder Name</th>
|
||||||
|
|
||||||
|
<!-- cylinderdetails -->
|
||||||
|
|
||||||
<th>Cylinder No</th>
|
<th>Cylinder No</th>
|
||||||
<th>Gross Weight</th>
|
<th>Gross Weight</th>
|
||||||
@ -213,21 +218,68 @@
|
|||||||
<th>Tare Weight</th>
|
<th>Tare Weight</th>
|
||||||
<th>Net Weight</th>
|
<th>Net Weight</th>
|
||||||
<th>Actual Weight</th>
|
<th>Actual Weight</th>
|
||||||
<th>shortage</th>
|
<th>Shortage</th>
|
||||||
|
|
||||||
<th>Bill/Invoice No</th>
|
|
||||||
|
<!-- least details -->
|
||||||
<th>Bill Date</th>
|
<th>Bill Date</th>
|
||||||
<th>Driver Name</th>
|
<th>Driver Name</th>
|
||||||
<th>Vehicle No</th>
|
<th>Vehicle No</th>
|
||||||
|
<th>Gas Details</th>
|
||||||
<th>Status</th>
|
|
||||||
<th>Action</th>
|
|
||||||
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
|
<?php if(empty($gasCylinderReturnedList)){?>
|
||||||
|
<p align="center" > No Gas Cylinder Entered in the Given Dates..!!</p>
|
||||||
|
<?php }else{ ?>
|
||||||
|
|
||||||
|
<?php foreach($gasCylinderReturnedList as $index => $gasCylinder):
|
||||||
|
$gasCylinder['MaterialRcvdDate'] = date('d-m-Y',strtotime($gasCylinder['MaterialRcvdDate']));
|
||||||
|
$gasCylinder['DeliveryChellanDate'] = date('d-m-Y',strtotime($gasCylinder['DeliveryChellanDate']));
|
||||||
|
$gasCylinder['emptyCylinderDate'] = date('d-m-Y',strtotime($gasCylinder['emptyCylinderDate']));
|
||||||
|
?>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<!-- basic details -->
|
||||||
|
<td><?=$gasCylinder['MaterialRcvdDate']?></td>
|
||||||
|
<td><?=$gasCylinder['IGRNO-']?></td>
|
||||||
|
<td><?=$gasCylinder['SupplierName']?></td>
|
||||||
|
<td><?=$gasCylinder['DeliveryChellanOrInvoiceNo']?></td>
|
||||||
|
<td><?=$gasCylinder['MaterialName']?></td>
|
||||||
|
|
||||||
|
<!-- cylinderdetails -->
|
||||||
|
<td><?=$gasCylinder['cylinderNo']?></td>
|
||||||
|
<td><?=$gasCylinder['grossWeight']?></td>
|
||||||
|
<td><?=$gasCylinder['emptyCylinderDate']?></td>
|
||||||
|
<td><?=$gasCylinder['tareWeight']?></td>
|
||||||
|
<td><?=$gasCylinder['netWeight']?></td>
|
||||||
|
<td><?=$gasCylinder['actualWeight']?></td>
|
||||||
|
<td><?=$gasCylinder['shortage']?></td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- least details -->
|
||||||
|
<td><?=$gasCylinder['DeliveryChellanDate']?></td>
|
||||||
|
<td><?=$gasCylinder['DriverName']?></td>
|
||||||
|
<td><?=$gasCylinder['VehicleNo']?></td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- #gasEnteredDetails modal will open when clicking this button -->
|
||||||
|
<td>
|
||||||
|
<a href="#">
|
||||||
|
<i class="fa fa-edit gas-entered-details" ></i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<?php endforeach ?>
|
||||||
|
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@ -246,68 +298,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- gas shortage list gasShortageList-->
|
<!-- gas Entered modal -->
|
||||||
|
<div id="gasEnteredDetails" data-form="add" class="modal fade" tabindex="-1" role="dialog"
|
||||||
<!-- Modal -->
|
|
||||||
<div id="gasShortageList" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gasShortageListLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-xl " role="document">
|
|
||||||
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title" id="gasShortageListLabel" align="center">List of Gas Shortages</h5>
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary btn-sm" id="exportGasShortage" style="margin-left: 10px;">
|
|
||||||
Export
|
|
||||||
<i class="fa fa-download" style="color:white;"></i>
|
|
||||||
</button>
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body" >
|
|
||||||
|
|
||||||
<table id="gasShortageTable" class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Full Cylinder Date</th>
|
|
||||||
<th>Empty Cylinder Date</th>
|
|
||||||
<th>Invoice No</th>
|
|
||||||
<th>Cylinder No</th>
|
|
||||||
<th>Gross Weight</th>
|
|
||||||
<th>Tare Weight</th>
|
|
||||||
<th>Net Weight</th>
|
|
||||||
<th>Actual Weight</th>
|
|
||||||
<th>Shortage</th>
|
|
||||||
<th style="display:none">ID</th>
|
|
||||||
<th>Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- end of gas shortage list -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- gas Shortage Calculator modal addGasShortageCalculator -->
|
|
||||||
<div id="gasShortageCalculator" data-form="add" class="modal fade" tabindex="-1" role="dialog"
|
|
||||||
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
|
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
|
||||||
<div class="modal-dialog modal-large">
|
<div class="modal-dialog modal-xl">
|
||||||
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">Add Gas Shortage </h4>
|
<h4 class="modal-title">Gas Cylinder Details </h4>
|
||||||
|
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
aria-hidden="true">×</button>
|
aria-hidden="true">×</button>
|
||||||
</div>
|
</div>
|
||||||
@ -317,78 +315,81 @@
|
|||||||
|
|
||||||
<form action="#">
|
<form action="#">
|
||||||
|
|
||||||
<!-- first row full cylinder date and empty cylinder date -->
|
<!-- first row -->
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<label for="fullCylinderDateId"> Full Cylinder Date</label>
|
<label for="fullCylinderDate"> Full Cylinder Date</label>
|
||||||
<input type="date" class="form-control" id="fullCylinderDateId" name="fullCylinderDate" value="" required>
|
<input type="date" class="form-control" id="fullCylinderDate" name="fullCylinderDate" value="" readonly>
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="emptyCylinderDateId"> Empty Cylinder Date</label>
|
|
||||||
<input type="date" class="form-control" id="emptyCylinderDateId" name="emptyCylinderDate" value="" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- second row cylinder no and Invoice No-->
|
<div class="col-md-4">
|
||||||
|
<label for="IGRNO"> IGRNO</label>
|
||||||
|
<input type="text" class="form-control" id="IGRNO" name="IGRNO" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="supplierName"> Supplier Name</label>
|
||||||
|
<input type="text" class="form-control" id="supplierName" name="supplierName" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- second row -->
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<label for="invoiceNoId"> Invoice No / Bill No</label>
|
<label for="invoiceNo"> Bill No/Invoice No </label>
|
||||||
<input type="text" class="form-control" id="invoiceNoId" name="invoiceNo" value="" readonly>
|
<input type="text" class="form-control" id="invoiceNo" name="invoiceNo" value="" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<label for="cylinderNoId"> Cylinder No </label>
|
<label for="billDate"> Bill Date</label>
|
||||||
<input type="text" class="form-control" id="cylinderNoId" name="cylinderNo" value="" required>
|
<input type="date" class="form-control" id="billDate" name="billDate" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="driverName"> Driver Name</label>
|
||||||
|
<input type="text" class="form-control" id="driverName" name="driverName" value="" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- third row gross weight and tare weight -->
|
<!-- third row -->
|
||||||
<div class="form-group row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="grossWeightId"> Gross Weight </label>
|
|
||||||
<input type="text" class="form-control" id="grossWeightId" name="grossWeight" value="" required>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="tareWeightId"> Tare Weight </label>
|
|
||||||
<input type="text" class="form-control" id="tareWeightId" name="tareWeight" value="" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- fourth row NetWeight and actual weight -->
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<label for="actualWeightId"> Actual Weight </label>
|
<label for="vehicleNo"> Vehicle No</label>
|
||||||
<input type="text" class="form-control" id="actualWeightId" name="actualWeight" value="" required>
|
<input type="text" class="form-control" id="vehicleNo" name="vehicleNo" value="" readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<label for="netWeightId"> Net Weight (Gross-Tare)</label>
|
<label for="cylinderCount"> Cylinder Name </label>
|
||||||
<input type="text" class="form-control" id="netWeightId" name="netWeight" value="" readonly>
|
<input type="text" class="form-control" id="cylinderName" name="cylinderName" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="cylinderCount"> Cylinder Count </label>
|
||||||
|
<input type="text" class="form-control" id="cylinderCount" name="cylinderCount" value="" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<!-- fourth row -->
|
||||||
|
<div id="cylinderDiv">
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- fifth row Gas Shortage -->
|
|
||||||
<div class="form-group row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="shortageId"> Gas Shortage(Actual-Net)</label>
|
|
||||||
<input type="text" class="form-control" id="shortageId" name="shortage" value="" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary waves-effect"
|
<button type="button" class="btn btn-secondary waves-effect"
|
||||||
data-dismiss="modal" value="Cancel">Cancel</button>
|
data-dismiss="modal" value="Cancel">Cancel</button>
|
||||||
@ -404,102 +405,6 @@
|
|||||||
<!-- end gas shortage calculator modal -->
|
<!-- end gas shortage calculator modal -->
|
||||||
|
|
||||||
|
|
||||||
<!-- Edit gas Shortage Calculator modal editgasShortageCalculator -->
|
|
||||||
<div id="editGasShortageCalculator" data-form="edit" class="modal fade" tabindex="-1" role="dialog"
|
|
||||||
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-large">
|
|
||||||
<div class="modal-content" style="border: 1px solid #ddd; margin-top: 73px; box-shadow: 0 0 40px rgb(0 0 0 / 43%);">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h4 class="modal-title">Update Gas Shortage </h4>
|
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
|
||||||
aria-hidden="true">×</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<form action="#">
|
|
||||||
<div class="modal-body p-4">
|
|
||||||
<!-- first row full cylinder date and empty cylinder date -->
|
|
||||||
<div class="form-group row">
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editFullCylinderDateId"> Full Cylinder Date</label>
|
|
||||||
<input type="date" class="form-control" id="editFullCylinderDateId" name="fullCylinderDate" value="" required>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editEmptyCylinderDateId"> Empty Cylinder Date</label>
|
|
||||||
<input type="date" class="form-control" id="editEmptyCylinderDateId" name="emptyCylinderDate" value="" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- second row cylinder no and Invoice No-->
|
|
||||||
<div class="form-group row">
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editInvoiceNoId"> Invoice No / Bill No</label>
|
|
||||||
<input type="text" class="form-control" id="editInvoiceNoId" name="invoiceNo" value="" readonly>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editCylinderNoId"> Cylinder No </label>
|
|
||||||
<input type="text" class="form-control" id="editCylinderNoId" name="cylinderNo" value="" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- third row gross weight and tare weight -->
|
|
||||||
<div class="form-group row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editGrossWeightId"> Gross Weight </label>
|
|
||||||
<input type="text" class="form-control" id="editGrossWeightId" name="grossWeight" value="" required>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editTareWeightId"> Tare Weight </label>
|
|
||||||
<input type="text" class="form-control" id="editTareWeightId" name="tareWeight" value="" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- fourth row NetWeight and actual weight -->
|
|
||||||
<div class="form-group row">
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editActualWeightId"> Actual Weight </label>
|
|
||||||
<input type="text" class="form-control" id="editActualWeightId" name="actualWeight" value="" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editNetWeightId"> Net Weight (Gross-Tare)</label>
|
|
||||||
<input type="text" class="form-control" id="editNetWeightId" name="netWeight" value="" readonly>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- fifth row Gas Shortage -->
|
|
||||||
<div class="form-group row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label for="editShortageId"> Gas Shortage(Actual-Net)</label>
|
|
||||||
<input type="text" class="form-control" id="editShortageId" name="shortage" value="" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- hidden fields -->
|
|
||||||
<input type="hidden" id="editId" name="id" value="" >
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect"
|
|
||||||
data-dismiss="modal" value="Cancel">Cancel</button>
|
|
||||||
<button type="submit"
|
|
||||||
class="btn btn-info waves-effect waves-light" >Save</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- end gas shortage calculator modal -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -612,7 +517,7 @@
|
|||||||
$("#resetButton").click(function() {
|
$("#resetButton").click(function() {
|
||||||
$("#fromDate").val('');
|
$("#fromDate").val('');
|
||||||
$("#toDate").val('');
|
$("#toDate").val('');
|
||||||
window.location="ViewIGR"
|
window.location="gasCylinderReturned"
|
||||||
});
|
});
|
||||||
|
|
||||||
// Automatically focus and open the To Date picker when From Date is selected
|
// Automatically focus and open the To Date picker when From Date is selected
|
||||||
@ -657,95 +562,99 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- while Opening gasEnteredDetails modal -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 02-04-2025 new gas shortage calculator -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- add gas shortage calculator -->
|
|
||||||
<script>
|
<script>
|
||||||
$('#grossWeightId, #tareWeightId,#actualWeightId').change(function() {
|
|
||||||
|
|
||||||
console.log("fine here ");
|
$(document).on('click', '.gas-entered-details', function() {
|
||||||
|
|
||||||
let grossWeightVal = $('#grossWeightId').val().trim();
|
|
||||||
let tareWeightVal = $('#tareWeightId').val().trim();
|
|
||||||
|
|
||||||
// Ensure both fields have values before calculation
|
let row = $(this).closest("tr");
|
||||||
if (grossWeightVal === '' || tareWeightVal === '') {
|
|
||||||
return;
|
let fullCylinderDate = row.find("td:eq(0)").text().trim();
|
||||||
|
let igrNo = row.find("td:eq(1)").text().trim();
|
||||||
|
let supplierName = row.find("td:eq(2)").text().trim();
|
||||||
|
let invoiceNo = row.find("td:eq(3)").text().trim();
|
||||||
|
let billDate = row.find("td:eq(4)").text().trim();
|
||||||
|
let driverName = row.find("td:eq(5)").text().trim();
|
||||||
|
let vehicleNo = row.find("td:eq(6)").text().trim();
|
||||||
|
let cylinderName = row.find("td:eq(7)").text().trim();
|
||||||
|
let cylinderCount = parseInt(row.find("td:eq(8)").text().trim(), 10);
|
||||||
|
|
||||||
|
// Convert fullCylinderDate to YYYY-MM-DD
|
||||||
|
if (fullCylinderDate) {
|
||||||
|
let dateParts = fullCylinderDate.split("-");
|
||||||
|
fullCylinderDate = `${dateParts[2]}-${dateParts[1]}-${dateParts[0]}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
let grossWeight = validateNumber(grossWeightVal);
|
// Convert billDate to YYYY-MM-DD
|
||||||
let tareWeight = validateNumber(tareWeightVal);
|
if (billDate) {
|
||||||
|
let dateParts = billDate.split("-");
|
||||||
let netWeight = grossWeight - tareWeight;
|
billDate = `${dateParts[2]}-${dateParts[1]}-${dateParts[0]}`;
|
||||||
$('#netWeightId').val(netWeight);
|
|
||||||
|
|
||||||
let actualWeightVal = $('#actualWeightId').val().trim();
|
|
||||||
|
|
||||||
// Ensure both fields have values before calculation
|
|
||||||
if (actualWeightVal === '' || netWeight === '') {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let actualWeight = validateNumber(actualWeightVal);
|
// Assign values to modal inputs
|
||||||
|
$('#fullCylinderDate').val(fullCylinderDate);
|
||||||
|
$('#IGRNO').val(igrNo);
|
||||||
|
$('#supplierName').val(supplierName);
|
||||||
|
$('#invoiceNo').val(invoiceNo);
|
||||||
|
$('#billDate').val(billDate);
|
||||||
|
$('#driverName').val(driverName);
|
||||||
|
$('#vehicleNo').val(vehicleNo);
|
||||||
|
$('#cylinderName').val(cylinderName);
|
||||||
|
$('#cylinderCount').val(cylinderCount);
|
||||||
|
|
||||||
let shortage = actualWeight - netWeight;
|
// Clear previous cylinder inputs
|
||||||
$('#shortageId').val(shortage);
|
$('#cylinderDiv').html("");
|
||||||
});
|
|
||||||
|
|
||||||
|
// Generate cylinder input fields dynamically
|
||||||
|
if (cylinderCount > 0) {
|
||||||
|
let inputFields = `
|
||||||
|
|
||||||
function validateNumber(givenValue) {
|
<div class="form-group row">
|
||||||
givenValue = givenValue.trim();
|
<div class="col-md-4"><label>Cylinder Number</label> <span class="text-danger">*</span> </div>
|
||||||
|
<div class="col-md-4"><label>Gross Weight</label> <span class="text-danger">*</span> </div>
|
||||||
|
<div class="col-md-4"><label>Actual Weight</label> <span class="text-danger">*</span> </div>
|
||||||
|
</div>`;
|
||||||
|
|
||||||
if (/^\d+$/.test(givenValue)) {
|
for (let i = 1; i <= cylinderCount; i++) {
|
||||||
return parseInt(givenValue, 10); // Convert string to number
|
inputFields += `
|
||||||
} else {
|
<div class="form-group row dynamicField">
|
||||||
alert('Please Enter a Valid Number..!!');
|
<div class="col-md-4">
|
||||||
return 0; // Invalid number
|
<input type="text" class="form-control" name="cylinderNumber[]" placeholder="Cylinder ${i}" required>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<input type="number" class="form-control" name="grossWeight[]" placeholder="Gross Weight ${i}" required>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<input type="number" class="form-control" name="actualWeight[]" placeholder="Actual Weight ${i}" required>
|
||||||
|
</div>
|
||||||
|
</div>`;
|
||||||
}
|
}
|
||||||
|
$('#cylinderDiv').html(inputFields);
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- while opening add gas shortage modal -->
|
// Show the modal
|
||||||
<script>
|
$('#gasEnteredDetails').modal('show');
|
||||||
$(document).ready(function(){
|
|
||||||
$('#gasShortageCalculator').on("shown.bs.modal", function(e){
|
|
||||||
|
|
||||||
//invoice needed to store it in the shortage table ,
|
|
||||||
// coz based on this we can limit the addition of shortage must not exceed than given qty
|
|
||||||
let invoiceNo = $('#Invoice_No').val();
|
|
||||||
|
|
||||||
|
|
||||||
let materialReceivedDate = $('#MaterialRcvdDate').val().split("-");
|
|
||||||
|
|
||||||
//converting it to y-m-d format;
|
|
||||||
console.log(`${materialReceivedDate[2]}-${materialReceivedDate[1]}-${materialReceivedDate[0]}`);
|
|
||||||
|
|
||||||
$('#invoiceNoId').val(invoiceNo);
|
|
||||||
$('#fullCylinderDateId').val(`${materialReceivedDate[2]}-${materialReceivedDate[1]}-${materialReceivedDate[0]}`);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- while closing add gas shortage modal -->
|
|
||||||
|
|
||||||
|
<!-- while closing gasEnteredDetails modal -->
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$('#gasShortageCalculator').on("hide.bs.modal", function(e){
|
$('#gasEnteredDetails').on("hide.bs.modal", function(e){
|
||||||
|
|
||||||
$('#invoiceNoId').val(' ');
|
|
||||||
$('#fullCylinderDateId').val(" ");
|
|
||||||
$('#emptyCylinderDateId').val(" ");
|
|
||||||
$('#cylinderNoId').val(" ");
|
|
||||||
$('#grossWeightId').val(" ");
|
|
||||||
$('#tareWeightId').val(" ");
|
|
||||||
$('#actualWeightId').val(" ");
|
|
||||||
$('#netWeightId').val(" ");
|
|
||||||
$('#shortageId').val(" ");
|
|
||||||
|
|
||||||
|
$('#fullCylinderDate').val(" ");
|
||||||
|
$('#IGRNO').val(" ");
|
||||||
|
$('#supplierName').val(" ");
|
||||||
|
$('#invoiceNo').val(" ");
|
||||||
|
$('#billDate').val(" ");
|
||||||
|
$('#driverName').val(" ");
|
||||||
|
$('#vehicleNo').val(" ");
|
||||||
|
$('#cylinderName').val(" ");
|
||||||
|
$('#cylinderCount').val(" ");
|
||||||
|
$('#cylinderDiv').html("");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@ -753,228 +662,58 @@
|
|||||||
<!-- end of add gas shortage calculator -->
|
<!-- end of add gas shortage calculator -->
|
||||||
|
|
||||||
|
|
||||||
<!-- edit gasShortageCalculator -->
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$('#editGrossWeightId,#editTareWeightId,#editActualWeightId').change(function() {
|
|
||||||
let grossWeightVal = $('#editGrossWeightId').val().trim();
|
|
||||||
let tareWeightVal = $('#editTareWeightId').val().trim();
|
|
||||||
|
|
||||||
// Ensure both fields have values before calculation
|
|
||||||
if (grossWeightVal === '' || tareWeightVal === '') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let grossWeight = validateNumber(grossWeightVal);
|
|
||||||
let tareWeight = validateNumber(tareWeightVal);
|
|
||||||
|
|
||||||
let netWeight = grossWeight - tareWeight;
|
|
||||||
$('#editNetWeightId').val(netWeight);
|
|
||||||
|
|
||||||
let actualWeightVal = $('#editActualWeightId').val().trim();
|
|
||||||
|
|
||||||
// Ensure both fields have values before calculation
|
|
||||||
if (actualWeightVal === '' || netWeight === '') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let actualWeight = validateNumber(actualWeightVal);
|
|
||||||
|
|
||||||
let shortage = actualWeight - netWeight;
|
|
||||||
$('#editShortageId').val(shortage);
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- while opening edit gas shortage modal -->
|
|
||||||
<script>
|
|
||||||
$(document).ready(function(){
|
|
||||||
$('#editGasShortageCalculator').on("shown.bs.modal", function(e){
|
|
||||||
|
|
||||||
|
|
||||||
//invoice needed to store it in the shortage table ,
|
|
||||||
// coz based on this we can limit the addition of shortage must not exceed than given qty
|
|
||||||
let invoiceNo = $('#Invoice_No').val();
|
|
||||||
|
|
||||||
|
|
||||||
let materialReceivedDate = $('#MaterialRcvdDate').val().split("-");
|
|
||||||
|
|
||||||
//converting it to y-m-d format;
|
|
||||||
console.log(`${materialReceivedDate[2]}-${materialReceivedDate[1]}-${materialReceivedDate[0]}`);
|
|
||||||
|
|
||||||
$('#editInvoiceNoId').val(invoiceNo);
|
|
||||||
$('#editFullCylinderDateId').val(`${materialReceivedDate[2]}-${materialReceivedDate[1]}-${materialReceivedDate[0]}`);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- while closing edit gas shortage modal -->
|
|
||||||
<script>
|
|
||||||
$(document).ready(function(){
|
|
||||||
$('#editGasShortageCalculator').on("hide.bs.modal", function(e){
|
|
||||||
$('#editInvoiceNoId').val(' ');
|
|
||||||
$('#editFullCylinderDateId').val(" ");
|
|
||||||
$('#editEmptyCylinderDateId').val(" ");
|
|
||||||
$('#editCylinderNoId').val(" ");
|
|
||||||
$('#editGrossWeightId').val(" ");
|
|
||||||
$('#editTareWeightId').val(" ");
|
|
||||||
$('#editActualWeightId').val(" ");
|
|
||||||
$('#editNetWeightId').val(" ");
|
|
||||||
$('#editShortageId').val(" ");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- end of edit gasShortageCalculator -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- while opening gasShortageList -->
|
|
||||||
<script>
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
|
|
||||||
$('#gasShortageList').on("shown.bs.modal",function(e){
|
|
||||||
|
|
||||||
let invoiceNo = $('#Invoice_No').val();
|
|
||||||
|
|
||||||
console.log("invoice no", invoiceNo);
|
|
||||||
|
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: "<?php echo base_url()?>/gasShortageList", // 🔹 Change this to your actual backend endpoint
|
|
||||||
data: {invoiceNo},
|
|
||||||
dataType: "json",
|
|
||||||
success: function (response) {
|
|
||||||
if (response.status === "success") {
|
|
||||||
|
|
||||||
let data = response.data ;
|
|
||||||
|
|
||||||
let tableData = '';
|
|
||||||
|
|
||||||
data.forEach((val) => {
|
|
||||||
|
|
||||||
let fullCylinderDate = val.fullCylinderDate.split("-").reverse().join("-");
|
|
||||||
let emptyCylinderDate = val.emptyCylinderDate.split("-").reverse().join('-');
|
|
||||||
|
|
||||||
tableData += `
|
|
||||||
<tr>
|
|
||||||
<td>${fullCylinderDate}</td>
|
|
||||||
<td>${emptyCylinderDate}</td>
|
|
||||||
<td>${val.invoiceNo}</td>
|
|
||||||
<td>${val.cylinderNo}</td>
|
|
||||||
<td>${val.grossWeight}</td>
|
|
||||||
<td>${val.tareWeight}</td>
|
|
||||||
<td>${val.netWeight}</td>
|
|
||||||
<td>${val.actualWeight}</td>
|
|
||||||
<td>${val.shortage}</td>
|
|
||||||
<td style="display:none">${val.id}</td>
|
|
||||||
<td style="width: 25px; cursor: pointer;">
|
|
||||||
<i class="fa fa-solid fa-edit btnEditGasShortageCalculator"
|
|
||||||
style="text-align: center;"
|
|
||||||
data-toggle="modal"
|
|
||||||
data-target="#editGasShortageCalculator"
|
|
||||||
data-id="${val.id}"
|
|
||||||
title="Edit Gas Shortage List">
|
|
||||||
</i>
|
|
||||||
</td>
|
|
||||||
</tr>`;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Assuming you have a table with ID "gasShortageTable"
|
|
||||||
$("#gasShortageTable tbody").html(tableData);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
alert("Error: " + response.message);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function (xhr, status, error) {
|
|
||||||
console.log(xhr.responseText);
|
|
||||||
alert("Something went wrong! Please try again.");
|
|
||||||
},
|
|
||||||
complete:function(){
|
|
||||||
console.log("ajax call is completed..!!");
|
|
||||||
$('#loader').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- while closing gasShortageList -->
|
|
||||||
<script>
|
|
||||||
$(document).ready(function(){
|
|
||||||
|
|
||||||
$('#gasShortageList').on("hide.bs.modal",function(){
|
|
||||||
$("#gasShortageTable tbody").html(" ");
|
|
||||||
})
|
|
||||||
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ajax call for gas Shortage -->
|
<!-- ajax call for gas Shortage -->
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
$("#gasShortageCalculator, #editGasShortageCalculator").submit(function (event) {
|
$(document).ready(function () {
|
||||||
|
$("#gasEnteredDetails form").submit(function (event) {
|
||||||
event.preventDefault(); // Prevent form reload
|
event.preventDefault(); // Prevent form reload
|
||||||
|
|
||||||
let formData;
|
let method = $("#gasEnteredDetails").data("form"); // Get form type
|
||||||
|
|
||||||
let method = $(this).closest(".modal").data("form");
|
// Collecting form data
|
||||||
|
let formData = {
|
||||||
// Prepare form data
|
fullCylinderDate: $("#fullCylinderDate").val(),
|
||||||
let addFormData = {
|
IGRNO: $("#IGRNO").val(),
|
||||||
fullCylinderDate: $('#fullCylinderDateId').val(),
|
supplierName: $("#supplierName").val(),
|
||||||
emptyCylinderDate: $('#emptyCylinderDateId').val(),
|
invoiceNo: $("#invoiceNo").val(),
|
||||||
invoiceNo: $('#invoiceNoId').val(),
|
billDate: $("#billDate").val(),
|
||||||
cylinderNo: $('#cylinderNoId').val(),
|
driverName: $("#driverName").val(),
|
||||||
grossWeight: $('#grossWeightId').val(),
|
vehicleNo: $("#vehicleNo").val(),
|
||||||
tareWeight: $('#tareWeightId').val(),
|
cylinderName: $('#cylinderName').val(),
|
||||||
actualWeight: $('#actualWeightId').val(),
|
cylinderCount: $("#cylinderCount").val(),
|
||||||
netWeight: $('#netWeightId').val(),
|
cylinders: [] // Array to store cylinder details
|
||||||
shortage: $('#shortageId').val()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let editFormData = {
|
// Loop through dynamically generated cylinder inputs
|
||||||
fullCylinderDate: $('#editFullCylinderDateId').val(),
|
$("#cylinderDiv .form-group.row.dynamicField").each(function () {
|
||||||
emptyCylinderDate: $('#editEmptyCylinderDateId').val(),
|
let cylinderData = {
|
||||||
invoiceNo: $('#editInvoiceNoId').val(),
|
cylinderNo : $(this).find("input[name='cylinderNumber[]']").val(),
|
||||||
cylinderNo: $('#editCylinderNoId').val(),
|
grossWeight : $(this).find("input[name='grossWeight[]']").val(),
|
||||||
grossWeight: $('#editGrossWeightId').val(),
|
actualWeight: $(this).find("input[name='actualWeight[]']").val(),
|
||||||
tareWeight: $('#editTareWeightId').val(),
|
|
||||||
actualWeight: $('#editActualWeightId').val(),
|
|
||||||
netWeight: $('#editNetWeightId').val(),
|
|
||||||
shortage: $('#editShortageId').val(),
|
|
||||||
id : $('#editId').val()
|
|
||||||
};
|
};
|
||||||
|
formData.cylinders.push(cylinderData);
|
||||||
|
});
|
||||||
|
|
||||||
if(method == "add"){ formData = addFormData ;}
|
console.log(formData); // Debugging - Check if data is correct
|
||||||
if(method == "edit"){ formData = editFormData ;}
|
|
||||||
|
|
||||||
|
$('#loader').show(); // Show loader
|
||||||
$('#loader').show();
|
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "<?php echo base_url()?>/updateGasShortage", // 🔹 Change this to your actual backend endpoint
|
url: "<?php echo base_url()?>/updateGasShortage", // Adjust endpoint as needed
|
||||||
data: formData,
|
data: JSON.stringify(formData), // Send data as JSON
|
||||||
|
contentType: "application/json",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
if (response.status === "success") {
|
if (response.status === "success") {
|
||||||
alert("Gas Shortage Data Saved Successfully!");
|
alert("Gas Shortage Data Saved Successfully!");
|
||||||
$('#gasShortageCalculator').modal('hide'); // Close modal
|
$('#gasEnteredDetails').modal('hide'); // Close modal
|
||||||
$('#editGasShortageCalculator').modal('hide');
|
|
||||||
} else {
|
} else {
|
||||||
alert("Error: " + response.message);
|
alert("Error: " + response.message);
|
||||||
}
|
}
|
||||||
@ -984,126 +723,14 @@ $("#gasShortageCalculator, #editGasShortageCalculator").submit(function (event)
|
|||||||
alert("Something went wrong! Please try again.");
|
alert("Something went wrong! Please try again.");
|
||||||
},
|
},
|
||||||
complete: function () {
|
complete: function () {
|
||||||
console.log("ajax call is completed..!!");
|
console.log("AJAX request completed.");
|
||||||
$('#loader').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- when edit modal of #editGasShortageCalculator clicked..!!-->
|
|
||||||
<script>
|
|
||||||
$(document).on("click", ".btnEditGasShortageCalculator", function () {
|
|
||||||
console.log("Edit modal opening place");
|
|
||||||
|
|
||||||
let id = $(this).data("id");
|
|
||||||
console.log("Editing ID:", id);
|
|
||||||
|
|
||||||
// Smooth transition: First hide, then show after 300ms
|
|
||||||
$("#gasShortageList").modal("hide");
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
$("#editGasShortageCalculator").modal("show");
|
|
||||||
}, 300);
|
|
||||||
|
|
||||||
$('#loader').show();
|
|
||||||
// AJAX request to fetch data
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: "<?php echo base_url()?>/getGasShortageDetail",
|
|
||||||
data: { id: id },
|
|
||||||
dataType: "json",
|
|
||||||
success: function (response) {
|
|
||||||
if (response.status === "success") {
|
|
||||||
let data = response.data;
|
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
if(data.length > 0){
|
|
||||||
|
|
||||||
data = data[0];
|
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
// Populate the modal fields
|
|
||||||
$("#editFullCylinderDateId").val(data.fullCylinderDate);
|
|
||||||
$("#editEmptyCylinderDateId").val(data.emptyCylinderDate);
|
|
||||||
$("#editInvoiceNoId").val(data.invoiceNo);
|
|
||||||
$("#editCylinderNoId").val(data.cylinderNo);
|
|
||||||
$("#editGrossWeightId").val(data.grossWeight);
|
|
||||||
$("#editTareWeightId").val(data.tareWeight);
|
|
||||||
$("#editNetWeightId").val(data.netWeight);
|
|
||||||
$("#editActualWeightId").val(data.actualWeight);
|
|
||||||
$("#editShortageId").val(data.shortage);
|
|
||||||
$("#editId").val(data.id); // Hidden field for ID
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
alert("Error: " + response.message);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function (xhr, status, error) {
|
|
||||||
console.log(xhr.responseText);
|
|
||||||
alert("Something went wrong! Please try again.");
|
|
||||||
},
|
|
||||||
complete:function(){
|
|
||||||
console.log("ajax call is completed..!!");
|
|
||||||
$('#loader').hide();
|
$('#loader').hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- this script is to export the shortage list in excel format -->
|
|
||||||
<script>
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
|
|
||||||
function exportTableToExcel(tableID, filename = '') {
|
|
||||||
let table = document.getElementById(tableID);
|
|
||||||
|
|
||||||
let cloneTable = table.cloneNode(true); // Clone the table to modify
|
|
||||||
|
|
||||||
// Remove hidden rows
|
|
||||||
$(cloneTable).find('tr').filter(function () {
|
|
||||||
return $(this).css('display') === 'none';
|
|
||||||
}).remove();
|
|
||||||
|
|
||||||
// Remove hidden columns
|
|
||||||
$(cloneTable).find('th, td').each(function () {
|
|
||||||
if ($(this).css('display') === 'none') {
|
|
||||||
$(this).remove();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
let ws = XLSX.utils.table_to_sheet(cloneTable); // Convert modified table to sheet
|
|
||||||
let wb = XLSX.utils.book_new(); // Create a new workbook
|
|
||||||
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // Append sheet to workbook
|
|
||||||
XLSX.writeFile(wb, filename || 'export.xlsx'); // Save the file
|
|
||||||
}
|
|
||||||
|
|
||||||
let tableId = 'gasShortageTable';
|
|
||||||
|
|
||||||
document.getElementById('exportGasShortage').addEventListener('click',function(){
|
|
||||||
|
|
||||||
exportTableToExcel(tableId, 'gas_shortage.xlsx');
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user