ria/app/Views/accountsDashboard.php

1847 lines
68 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style>
.modal {
/* padding-right: 25% ! important; */
}
.num {
text-align: right;
}
.modal-content {
/* width: 800px ! important; */
}
th {
white-space: nowrap;
}
.Date-filter-form {
display: flex;
align-items: center;
gap: 10px;
/* Adjust the gap as needed */
}
.Date-filter-form input,
.Date-filter-form button {
padding: 5px;
font-size: 14px;
}
.Date-filter-form button {
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
}
.Date-filter-form button:hover {
background-color: #0056b3;
}
.icon-button {
background: none;
border: none;
cursor: pointer;
color: #007bff;
font-size: 18px;
}
.icon-button:hover {
color: #0056b3;
}
</style>
<style>
th,
td {
white-space: nowrap;
}
</style>
<style>
.dataTables_wrapper .top {
display: flex;
justify-content: space-between;
align-items: center;
}
.dataTables_wrapper .dataTables_length {
float: left;
}
/* .dataTables_wrapper .dt-buttons,
.dataTables_wrapper .dataTables_filter {
float: right;
margin-left: 10px;
}
.dataTables_wrapper .dt-buttons {
margin-top: 10px;
margin-bottom: 10px;
} */
/* .dataTables_wrapper .dataTables_filter {
margin-top: 10px;
margin-bottom: 10px;
} */
</style>
<script>
$(function() {
var d = new Date();
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();
var SIAStartYear = year - 2015;
var mindt = year - 70;
var maxdt = year - 15;
// $("#Invoice_Date , #MaterialRcvdDate").datepicker({
// minDate: new Date(year - SIAStartYear, 1, 1),
// maxDate: 'now',
// dateFormat: 'dd-mm-yy',
// changeMonth: true,
// changeYear: true,
// yearRange: '-100:+0'
// });
// $('#Driver_Name').autocomplete({
// onSearchStart: function(query) {
// //alert(query);
// $('#Driver_Name').autocomplete("option", "minLength", 0);
// },
// serviceUrl: "<?php echo base_url(); ?>drivernameautocomplete",
// onSelect: function(suggestion) {
// var data = suggestion.DriverName;
// }
// });
// $('#DriverMobileNumber').autocomplete({
// serviceUrl: "<?php echo base_url(); ?>drivermobileautocomplete",
// params: {
// driverName: function() {
// return $('#Driver_Name').val(); // Pass the value of the DriverName input field
// }
// },
// onSearchStart: function(query) {
// $('#DriverMobileNumber').autocomplete("option", "minLength", 0);
// },
// onSelect: function(suggestion) {
// var data = suggestion.DriverMobileNumber;
// }
// });
});
</script>
<style>
.autocomplete-suggestion {
cursor: pointer;
background-color: skyblue;
/* background-color: darkgrey; */
outline: 1px solid slategrey;
}
</style>
<script type="text/javascript" src="<?php echo base_url(); ?>public/assets/Autocomplete/jquery.autocomplete.js"></script>
<div class="content-page">
<div class="content">
<!-- Start Content-->
<div class="container-fluid">
<!-- start page title -->
<div>
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Inward</a></li>
<li class="breadcrumb-item active">
<h4 class="page-title">Accounts Dashboard</h4>
</li>
</ol>
</div>
</div>
</div>
</div>
<?php if (session()->getFlashdata('message')): ?>
<div class="alert alert-warning" role="alert">
<?= esc(session()->getFlashdata('message')); ?>
</div>
<?php endif; ?>
<div class="row">
<div class="col-12">
<div class="card">
<br><br>
<div class="card-body" style="overflow-x:scroll;">
<table id="view_inward_gate_register" class="table table-bordered table-hover">
<thead>
<tr>
<th>Create Date</th>
<th>IGR No</th>
<th>PO No</th>
<th>Supplier Name</th>
<th>Invoice No</th>
<th>Invoice Date </th>
<th>Item Count</th>
<th>Rec Qty</th>
<th>Net Weight</th>
<th>Vechicle No</th>
<th>Driver</th>
<th>Transporter</th>
<th>IGR Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
if(!empty($IGR))
{ $index = 0;
foreach($IGR as $record)
{ $index = $index +1;
$createddate = new DateTime($record->CreatedDate);
$date = $createddate->format('d-m-Y');
$time = $createddate->format('h:i A');
$draft = [];
$record->IGRStatus == 'ST074' || 'ST027' ? $draft [] = $record:'';
if(!empty($draft)){
?>
<tr id="<?php echo $index ?>" >
<td align="right"><?php echo $date; ?></td>
<td style="cursor:pointer; color:#0bb2b5" ><a data-toggle="modal" data-target="#Igrshow" data-id="<?php echo $index;?>" data-inx="<?php echo $index;?>" data-userid="<?php echo $record->IGRNO ?>" data-igrstatus="<?php echo $record->IGRStatus ?>">
<?php echo $record->IGRNO ?></a>
</td>
<td style="cursor:pointer; color:#0bb2b5" ><a data-toggle="modal" data-target="#CostCentershow" data-id="<?php echo $index;?>" data-igno="<?php echo $record->IGRNO;?>" data-pono="<?php echo $record->PONO ?>" target="_blank">
<?php echo $record->PONO ?></a>
</td>
<td><?php echo $record->SupplierName ?></td>
<td><?php echo $record->DeliveryChellanOrInvoiceNo ?></td>
<td align="right"><?php
$invdate = $record->DeliveryChellanDate;
if(!$invdate || $invdate == 'null' || $invdate === '0000-00-00 00:00:00'){
echo "";
}else{
$date = new DateTime($invdate);
echo $date->format('d-m-Y'); }
?></td>
<td align="center"><?php echo $record->itemCount ?></td>
<td align="right"><?php echo $record->ReceivedQuantity ?></td>
<td align="center"><?php echo $record->NetWeight ?></td>
<td><?php echo $record->VehicleNo ?></td>
<td><?php echo $record->DriverName ?></td>
<td><?php echo $record->TransporterName ?></td>
<?php
if($record->IGRStatus == 'ST027' || 'ST040')
{
$igrStatusUpdate = "Created";
}
else if($record->IGRStatus == 'ST028')
{
$igrStatusUpdate = "Closed";
}else if($record->IGRStatus == 'ST029')
{
$igrStatusUpdate = "Cancelled";
}else if($record->IGRStatus == 'ST042')
{
$igrStatusUpdate = "Partial Igr Created";
}else if($record->IGRStatus == 'ST074')
{
$igrStatusUpdate = "Draft";
}
?>
<td><?php echo $igrStatusUpdate; ?></td>
<td>
<a target="_blank" data-toggle="modal" data-target="#Historyshow" data-id="<%=index%>" title="IGR History" data-igrno="<?php echo $record->IGRNO ?>" data-pono="<?php echo $record->PONO ?>">
<i class="fa fa-history" style="text-align: center;"></i>
</a>
&nbsp;
<!-- <a class="a_tag_for_mrir" href="<?php echo base_url().'MRIRcontroller/igrdatavalues?IGRNO='.$record->IGRNO; ?>" target="_blank" data-id="<%=index%>" title="Generate MRIR"><i class="fa fa-external-link" style="text-align: center;"></i></a> -->
<?php if(($record->isIgrFilePresent)){ ?>
<a target="_blank" href="<?php echo base_url('download-files/' . $record->IGRNO); ?>">
<i class="fa fa-download" style="text-align: center;"></i>
</a>
&nbsp;
<?php } ?>
</td>
</tr>
<?php
}
}
}
?>
</tbody>
</table>
</div> <!-- end card body-->
</div> <!-- end card -->
</div><!-- end col-->
</div>
</div>
</div> <!-- container -->
</div> <!-- content -->
</div>
<!-- box closed here -->
<!-- Igr modal fade -->
<div id="Igrshow" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Inward Gate Register Details <span id="IgrshowTitle"></span></h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<div class="pull-right hidden-xs">
<b>
<div id="clock"></div>
</b>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class="d-flex justify-content-between align-items-center">
<label class="col-form-label">Purchase Order Number <span class="text-danger">*</span></label>
<a id="printLink" data-toggle="tooltip" href="" target="new" style="text-align: right;">
<i class="fa fa-print" data-toggle="tooltip" title="Click here to Print the Purchase Order details"></i>
</a>
</div>
<?php $data = array('name' => 'PurchaseOrderNumber', 'value' => set_value('PurchaseOrderNumber'), 'id' => 'PONo', 'class' => 'form-control', 'required=>"true"', 'readonly' => 'true');
echo form_input($data);
?>
<span class="help-block"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-form-label">Supplier Name <span class="text-danger">*</span></label>
<?php $data = array('name' => 'SupplierName', 'value' => set_value('SupplierName'), 'id' => 'Supplier', 'class' => 'form-control', 'required=>"true"', 'readonly' => 'true');
echo form_input($data);
?>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Invoice Number <span class="text-danger">*</span></label>
<?php $data = array('name' => 'InvoiceNO', 'value' => set_value('InvoiceNO'), 'id' => 'Invoice_No', 'class' => 'form-control', 'required=>"true"');
echo form_input($data);
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Invoice Date <span class="text-danger">*</span></label>
<?php
$data = array('name' => 'InvoiceDate', 'value' => set_value('InvoiceDate'), 'id' => 'Invoice_Date', 'class' => 'form-control', 'required=>"true"');
echo form_input($data);
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Material Received Date <span class="text-danger">*</span></label>
<?php
$data = array('name' => 'MaterialRcvdDate', 'value' => set_value('MaterialRcvdDate'), 'id' => 'MaterialRcvdDate', 'class' => 'form-control');
echo form_input($data);
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Vehicle Number </label>
<?php $data = array('name' => 'VehicleNo', 'value' => set_value('VehicleNo'), 'id' => 'Vehicle_No', 'class' => 'form-control');
echo form_input($data);
?>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Transporter Name</label>
<?php
$dropdown = '<select name="TransporterId" id="Transporter_Id" class="form-control select2">';
$dropdown .= '<option value=0>Transporter Name</option>';
if (!empty($transporter)) {
foreach ($transporter as $opt) {
$selected = set_value('TransporterId') == $opt->id ? 'selected' : '';
$disabled = $opt->isactive == 0 ? 'disabled' : '';
$label = $opt->isactive == 0 ? $opt->name . ' (Inactive)' : $opt->name;
$dropdown .= "<option value='{$opt->id}' $selected $disabled>{$label}</option>";
}
}
$dropdown .= '</select>';
echo $dropdown;
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Driver Name </label>
<?php $data = array('name' => 'DriverName', 'value' => set_value('DriverName'), 'id' => 'Driver_Name', 'class' => 'form-control');
echo form_input($data);
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Driver Mobile Number </label>
<?php $data = array('name' => 'DriverMobileNumber', 'value' => set_value('DriverMobileNumber'), 'id' => 'DriverMobileNumber', 'class' => 'form-control');
echo form_input($data);
?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="col-form-label">Remark</label>
<?php
$data = array('name' => 'MasterRemarks', 'value' => set_value('MasterRemarks'), 'id' => 'MasterRemarks', 'class' => 'form-control', 'autocomplete' => 'off','rows' => 3);
echo form_textarea($data);
?>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="table-responsive">
<!-- <table id="Inwardgateregistertable1" class="table table-striped table-hover mb-0 editabletable IGR_Line" style="font-size:12px;"> -->
<table id="Inwardgateregistertable1" class="table table-bordered table-hover mb-0 editabletable IGR_Line" style="font-size:12px;">
<thead style="background-color:#ddd !important">
<tr>
<th style="width: 50px;">SNo</th>
<th style="width: 100px;">Item Code</th>
<th style="width: 150px; word-wrap: break-word; word-break: break-all; white-space: normal;">Item Description</th>
<th style="width: 50px;">UOM</th>
<th style="width: 100px;">Ordered Qty</th>
<th style="width: 100px;">Received Qty</th>
<th id="pendingQuantityHeader" style="display:none; width: 100px;">Pending Qty</th>
<th style="width: 50px;">Rate</th>
<th style="width: 50px;">Tax (%)</th>
<th style="width: 50px;">Taxable Amt</th>
<th style="width: 50px;">Total Amt</th>
<th style="width: 150px;">Remarks</th>
<th style="width: 50px;"></th>
</tr>
</thead>
<tbody id="tbleIGRAppend">
<!-- <tr>
<td>1</td>
<td>RM002</td>
<td>Raw sand</td>
<td>Kgs</td>
<td>10000</td>
<td>10000</td>
<td>Received</td>
</tr> -->
</tbody>
</table>
</div>
</div>
</div>
<br><br>
<div class="row text-left">
<br>
<div class="form-group col-md-12">
<label> Master IGR file</label>
<br>
<input type="file" name="MasterFile" id="MasterFile" onchange="filenames(this.name); ">
<label id="MasterFileLabel" style="display:none;">
<a><span></span><small></small></a>
</label>
</div>
</div>
<div class="files ">
<div class="form-row float-right">
<div class="form-group">
<button type="button" class="btn btn-primary waves-effect btn-sm a1"
onclick="appendFilesFileds()" id="additionalfilebtn">
Add Additional File
</button>
</div>
</div>
<div class="form-row">
<div class="col-md-12" id="existingContainer"></div>
</div>
<div class="form-row">
<div class="col-md-12" id="filesContainer"></div>
</div>
</div><br>
<div class="row">
<div class="col-md-12">
<input type="hidden" name="hiddenIsOpenOrder" id="hiddenIsOpenOrder" />
<input type="hidden" id="IGRNO1" name="IGRNumber" readonly>
<input type="hidden" id="PONO1" name="PONumber" readonly>
</div>
</div>
</div>
<div class="modal-footer">
<div class="buttonContainer">
<a class="btn btn-secondary" data-dismiss="modal" value="Close">Close</a>
<a class="btn btn-primary" id="generateIGR" value="generateIGR">Generate IGR</a>
<a class="btn btn-primary" id="draftIGR" value="draftIGR">Save as Draft IGR</a>
</div>
</div>
</div>
</div>
</div>
<!-- /.modal Igr modal fade closed-->
<!-- WeightCalculator modal fade -->
<div id="WeightCalculator" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog modal-lg">
<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">Weight Calculator <span id="WeightTitle"></span></h4>
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<div class="text-right">
<b>
<div id="clock"></div>
</b>
</div>
<div class="form-group row">
<label for="GrossWeight" class="col-md-2 col-form-label">Gross Weight</label>
<div class="col-md-5">
<?php
$data = array('name' => 'GrossWeight', 'value' => set_value('GrossWeight'), 'id' => 'GrossWeight', 'class' => 'form-control', 'onkeypress' => 'return isNumberKey(event);', 'maxlength' => '50', 'onchange' => 'WeightDiffer(this);', 'placeholder' => 'Gross Weight Value (A)');
echo form_input($data);
?>
</div>
<div class="col-md-5">
<?php
$data = array('name' => 'GrossWeightDate', 'value' => set_value('GrossWeightDate'), 'id' => 'GrossWeightDate', 'class' => 'form-control', 'readonly' => true, 'placeholder' => 'Gross Weight Date/Timing');
echo form_input($data);
?>
</div>
</div>
<div class="form-group row">
<label for="TareWeight" class="col-md-2 col-form-label">Tare Weight</label>
<div class="col-md-5">
<?php
$data = array('name' => 'TareWeight', 'value' => set_value('TareWeight'), 'id' => 'TareWeight', 'class' => 'form-control', 'onkeypress' => 'return isNumberKey(event);', 'maxlength' => '50', 'onchange' => 'validateTareWeight(this);', 'placeholder' => 'Tare Weight Value (B)');
echo form_input($data);
?>
</div>
<div class="col-md-5">
<?php
$data = array('name' => 'TareWeightDate', 'value' => set_value('TareWeightDate'), 'id' => 'TareWeightDate', 'class' => 'form-control', 'readonly' => true, 'placeholder' => 'Tare Weight Date/Timing',);
echo form_input($data);
?>
</div>
</div>
<div class="form-group row">
<label for="NetWeight" class="col-md-2 col-form-label">Net Weight</label>
<div class="col-md-5">
<input type="hidden" id="CurrentInx" name="CurrentInx" readonly>
<?php
$data = array('name' => 'NetWeight', 'value' => set_value('NetWeight'), 'id' => 'NetWeight', 'class' => 'form-control', 'maxlength' => '50', 'readonly' => true, 'placeholder' => 'Net Weight Value (A-B)');
echo form_input($data);
?>
</div>
<div class="col-md-5">
<input type="file" name="WeightFile" id="WeightFile" onchange="Copyfilenames(this.name); ">
<label id="WeightFileLabel" style="display:none;">
<a><span></span><small></small></a>
</label>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect"
data-dismiss="modal" value="Cancel">Cancel</button>
<button type="button"
class="btn btn-info waves-effect waves-light" onclick="modalSave()">Save</button>
</div>
</div>
</div>
</div><!-- /.modal -->
<!-- WeightCalculator modal fade closed-->
<div id="Historyshow" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">IGR History Details <span id="HisTitle"></span></h4>
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<div class="row">
<div class="col-md-12">
<div id="HisStatement"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect"
data-dismiss="modal" value="Close">Close</button>
</div>
</div>
</div>
</div><!-- /.modal -->
<!-- History modal fade closed-->
<div id="CostCentershow" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Cost Center List <span id="CCTitle"></span></h4>
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<div class="row">
<div class="col-md-12">
<div id="CCStatement"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect"
data-dismiss="modal" value="Close">Close</button>
</div>
</div>
</div>
</div><!-- /.modal -->
<!-- History modal fade closed-->
<script>
$(document).ready(function() {
$("#Igrshow").on("shown.bs.modal", function(e) {
$('#loader').show();
console.log("hello");
var inx = $(e.relatedTarget).data('id');
var igr = $(e.relatedTarget).data('userid');
var igrstatus = $(e.relatedTarget).data('igrstatus');
// alert(igrstatus);
var buttonContainer = $(".buttonContainer");
var modal = $(this); // Reference to the modal itself
var invoiceDateInput = modal.find('#Invoice_Date');
var invoiceNoInput = modal.find('#Invoice_No');
var MaterialRcvdDateInput = modal.find('#MaterialRcvdDate');
var VehicleNoInput = modal.find('#Vehicle_No');
var TransporterIdInput = modal.find('#Transporter_Id');
var DriverInput = modal.find('#Driver_Name');
var DriverMobileNumberInput = modal.find('#DriverMobileNumber');
var MasterRemarksInput = modal.find('#MasterRemarks');
var MasterFileInput = modal.find('#MasterFile');
modal.find('#MasterFileLabel').hide();
var userRole = "<?php echo (int)$userRole; ?>";
if (userRole != 1) {
if (igrstatus == "ST074") {
buttonContainer.find("#draftIGR, #generateIGR").css("display", "inline-block");
$(".a_tag_for_mrir").css("display", "block");
VehicleNoInput.prop('readonly', false);
DriverInput.prop('readonly', false);
DriverMobileNumberInput.prop('readonly', false);
MaterialRcvdDateInput.prop('readonly', false);
invoiceDateInput.prop('readonly', false);
invoiceNoInput.prop('readonly', false);
MasterRemarksInput.prop('readonly',false);
} else {
buttonContainer.find("#draftIGR, #generateIGR").css("display", "none");
$(".a_tag_for_mrir").css("display", "none");
VehicleNoInput.prop('readonly', true);
DriverInput.prop('readonly', true);
DriverMobileNumberInput.prop('readonly', true);
MaterialRcvdDateInput.prop('readonly', true);
invoiceDateInput.prop('readonly', true);
invoiceNoInput.prop('readonly', true);
MasterRemarksInput.prop('readonly',true);
}
} else {
$(".a_tag_for_mrir").css("display", "none");
if (igrstatus == "ST074") {
buttonContainer.find("#draftIGR, #generateIGR").css("display", "inline-block");
} else {
buttonContainer.find("#draftIGR").css("display", "none");
}
}
$("#tbleIGRAppend").empty();
// $('#content').loader('show');
$.ajax({
data: {
id: igr
},
type: "POST",
url: "<?php echo base_url() ?>ViewIGRDetails",
success: function(data) {
var parsedData = JSON.parse(data);
console.log(parsedData);
if (parsedData['details'].length === 0) {
console.log("No data available");
// Reset all relevant fields and table
$('#IgrshowTitle').text('');
$("#IGRNO1").val('');
$("#PONO1").val('');
$("#txtIGRLineItem").val('');
$('#printLink').attr('href', '#');
$('.help-block').text('');
$("#Vehicle_No").val('');
$("#Transporter_Id").val('');
$("#Driver_Name").val('');
$("#DriverMobileNumber").val('');
$("#IGRStatus").val('');
$("#PONo").val('');
$("#Supplier").val('');
$("#Add1").val('');
$("#Invoice_No").val('');
$("#Invoice_Date").val('');
$("#MaterialRcvdDate").val('');
$("#MasterRemarks").val('');
$("#ser").val('');
$("#tbleIGRAppend").empty(); // Clear the table
// Hide the MasterFileLabel if no data
modal.find('#MasterFileLabel').hide();
return; // Exit the function early
}
var trIGRHTML = '';
$.each(parsedData['details'], function(i, item) {
if (igr == item.IGRNO) {
console.log(item);
$('#IgrshowTitle').text(" ( " + item.IGRNO + " ) ");
$("#IGRNO1").val(item.IGRNO);
$("#PONO1").val(item.PONO);
$("#txtIGRLineItem").val(item.IGRItemNo);
var baseUrl = '<?php echo base_url(); ?>purchaseorder/CreatePOPrint';
var newUrl = baseUrl + '?PONO=' + item.PONO + '&ReqType=' + item.POType;
$('#printLink').attr('href', newUrl);
var isOpenOrder = parseInt(item.IsOpenOrder ? item.IsOpenOrder : "0", 2);
console.log(item.IsOpenOrder);
console.log(isOpenOrder);
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";
$('.help-block').text(formatted_IsOpenOrder);
var button_text_for_IGRDraft = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "Save as Draft IGR" : "Save as Open IGR";
$('#draftIGR').text(button_text_for_IGRDraft);
$("#hiddenIsOpenOrder").val(isOpenOrder);
$("#Vehicle_No").val(item.VehicleNo);
$("#Transporter_Id").val(item.TransporterId);
$("#Driver_Name").val(item.DriverName);
$("#DriverMobileNumber").val(item.DriverMobileNumber);
$("#IGRStatus").val(item.IGRStatus);
$("#PONo").val(item.PONO);
$("#Supplier").val(item.SupplierName);
$("#Add1").val(item.Address);
$("#Invoice_No").val(item.DeliveryChellanOrInvoiceNo);
$("#MasterRemarks").val(item.Remark);
console.log(typeof item.MasterFile);
modal.find('#MasterFileLabel').hide();
if (typeof item.MasterFile == 'string') {
if (item.MasterFile !== null && item.MasterFile !== undefined && item.MasterFile.trim() !== "") {
modal.find('#MasterFileLabel a').attr('href', '<?php echo base_url() ?>' + 'public/uploads/Igrfiles/' + item.MasterFile);
modal.find('#MasterFileLabel a').attr('title', 'previously uploaded IGR Master File');
modal.find('#MasterFileLabel a').attr('target', '_blank');
modal.find('#MasterFileLabel a span').text('previously uploaded - ');
modal.find('#MasterFileLabel a small').text(item.MasterFile);
modal.find('#MasterFileLabel').show();
}
} else {
modal.find('#MasterFileLabel').hide();
}
// Format dates
if(item.DeliveryChellanDate !== '0000-00-00 00:00:00' ){
var dcd = new Date(item.DeliveryChellanDate);
var dcd2 = (String(dcd.getDate()).padStart(2, '0') + '-' + (String(dcd.getMonth() + 1).padStart(2, '0')) + '-' + dcd.getFullYear());
$("#Invoice_Date").val(dcd2);
}
console.log(item.MaterialRcvdDate)
var Mat_rcv_date = (item.MaterialRcvdDate == 'null') ? ' ' : formatDateTime(item.MaterialRcvdDate, 1);
$("#MaterialRcvdDate").val(Mat_rcv_date);
console.log(item.MaterialRcvdDate)
var gross_rcv_date = (item.GrossWeightDate == 'null') ? ' ' : formatDateTime(item.GrossWeightDate, 2);
$("#ser").val(item.ServiceDescription);
var amount = item.Rate*item.QuantityAsPerInvoice;
var tax_percentage = item.TaxInPercentage;
var tax_amount = (amount * tax_percentage) / 100;
var grand_total_amount = amount + tax_amount;
i = i + 1;
// userrole is system admin also know as admin (if)
if (userRole == 1) {
$("#pendingQuantityHeader").css("display", "table-cell");
trIGRHTML += '<tr>' +
'<td style="width: 50px;" align="right">' + i + '</td>' +
'<td style="width: 100px;" name="MaterialName" onchange="test(' + i + ')">' + item.MaterialCode + '</td>' +
'<td style="width: 200px; word-wrap: break-word; word-break: break-all; white-space: normal;">' + item.MaterialName + '</td>' +
'<td style="width: 50px;" name="UOM">' + item.UOM + '</td>' +
'<td style="width: 100px;" align="right" id="Quantity' + i + '" name="Quantity">' + parseInt(item.Quantity) + '</td>' +
'<td style="width: 100px;" align="right" data-name="sel" ><input type="text" onchange="validateReceivedQuantity(' + i + ',' + isOpenOrder + ')"id="QuantityAsPerInvoice' + i + '" name="QuantityAsPerInvoice' + i + '" value="' + parseInt(item.QuantityAsPerInvoice) + '" onkeypress="return isNumberKey(event);" style="width: 75px;"></td>' +
'<td style="width: 100px;" name="PendingQuantity' + i + '" id="PendingQuantity' + i + '">' + ((isOpenOrder) ? 0 : parseInt(item.Quantity - item.QuantityAsPerInvoice)) + '</td>' +
'<td style="width: 50px;" id="Rate' + i + '" >' + Number(item.Rate).toFixed(2) + '</td>' +
'<td style="width: 50px;" id="tax_percentage' + i + '">' + tax_percentage + '</td>' +
'<td style="width: 50px;" id="amount' + i + '">' + amount + '</td>' +
'<td style="width: 50px;" id="grand_total_amount' + i + '">' + grand_total_amount + '</td>' +
'<td style="width: 150px;"><input type="text" id="Remark' + i + '" name="Remark' + i + '" class="form" onchange="SetRemarks(' + i + ')" style="width: 75px;"> </td>' +
'<td style="width: 50px;"><a target="_blank" data-toggle="modal" data-target="#WeightCalculator" title="Weight Calculator" data-index="' + i + '" data-material="' + item.MaterialName + '" data-igrstatus = "' + igrstatus + '"><i class="fa fa-solid fa-truck" style="text-align: center;"></i></a> </td>' +
'<input type="hidden" id="IGRNO' + i + '" name="IGRNO' + i + '" value="' + item.IGRNO + '">' +
'<input type="hidden" id="MaterialCode' + i + '" name="MaterialCode' + i + '" value="' + item.MaterialCode + '">' +
'<input type="hidden" id="txtQuantityAsPerInvoice' + i + '" name="txtQuantityAsPerInvoice' + i + '" value="' + item.QuantityAsPerInvoice + '">' +
'<input type="hidden" id="txtOrderedQuantity' + i + '" name="txtOrderedQuantity' + i + '" value="' + item.Quantity + '">' +
'<input type="hidden" id="txtGrossWeight' + i + '" name="txtGrossWeight' + i + '" value="' + item.GrossWeight + '">' +
'<input type="hidden" id="txtGrossWeightDate' + i + '" name="txtGrossWeightDate' + i + '" value="' + item.GrossWeightDate + '">' +
'<input type="hidden" id="txtTareWeight' + i + '" name="txtTareWeight' + i + '" value="' + item.TareWeight + '">' +
'<input type="hidden" id="txtTareWeightDate' + i + '" name="txtTareWeightDate' + i + '" value="' + item.TareWeightDate + '">' +
'<input type="hidden" id="txtNetWeight' + i + '" name="txtNetWeight' + i + '"value="' + item.NetWeight + '">' +
'<input type="hidden" id="txtRemarks' + i + '" name="txtRemarks' + i + '"value="' + item.Remarks + '">' +
'<input type="hidden" id="txtIGRLineItem' + i + '" name="txtIGRLineItem' + i + '"value="' + item.IGRItemNo + '">' +
'<input type="file" id="txtWeightFile' + i + '" name="txtWeightFile' + i + '"value="' + item.WeightFile + '" style="display:none;">' +
'<input type="hidden" id="txtWeightFileName' + i + '" name="txtWeightFileName' + i + '"value="' + item.WeightFile + '">' +
'</tr>';
if ((item.Quantity - item.QuantityAsPerInvoice) == 0.00) {
$('#QuantityAsPerInvoice' + i).attr('readonly', 'true');
}
}
// userrole is security based on status we show and here (else if)
else if (userRole !== 1) {
if (igrstatus === "ST074") {
$("#pendingQuantityHeader").css("display", "table-cell");
trIGRHTML += '<tr>' +
'<td style="width: 50px;" align="right">' + i + '</td>' +
'<td style="width: 100px;" name="MaterialName" onchange="test(' + i + ')">' + item.MaterialCode + '</td>' +
'<td style="width: 200px; word-wrap: break-word; word-break: break-all; white-space: normal;">' + item.MaterialName + '</td>' +
'<td style="width: 50px;" name="UOM">' + item.UOM + '</td>' +
'<td style="width: 100px;" align="right" id="Quantity' + i + '" name="Quantity">' + parseInt(item.Quantity) + '</td>' +
'<td style="width: 100px;" align="right" data-name="sel" ><input type="text" onchange="validateReceivedQuantity(' + i + ',' + isOpenOrder + ')"id="QuantityAsPerInvoice' + i + '" name="QuantityAsPerInvoice' + i + '" value="' + parseInt(item.QuantityAsPerInvoice) + '" onkeypress="return isNumberKey(event);" style="width: 75px;"></td>' +
'<td style="width: 100px;" name="PendingQuantity' + i + '" id="PendingQuantity' + i + '">' + ((isOpenOrder) ? 0 : parseInt(item.Quantity - item.QuantityAsPerInvoice)) + '</td>' +
'<td style="width: 50px;" id="Rate' + i + '" >' + Number(item.Rate).toFixed(2) + '</td>' +
'<td style="width: 50px;" id="tax_percentage' + i + '">' + tax_percentage + '</td>' +
'<td style="width: 50px;" id="amount' + i + '">' + amount + '</td>' +
'<td style="width: 50px;" id="grand_total_amount' + i + '">' + grand_total_amount + '</td>' +
'<td style="width: 150px;"><input type="text" id="Remark' + i + '" name="Remark' + i + '" class="form" onchange="SetRemarks(' + i + ')" style="width: 75px;"> </td>' +
'<td style="width: 50px;"><a target="_blank" data-toggle="modal" data-target="#WeightCalculator" title="Weight Calculator" data-index="' + i + '" data-material="' + item.MaterialName + '" data-igrstatus = "' + igrstatus + '"><i class="fa fa-solid fa-truck" style="text-align: center;"></i></a> </td>' +
'<input type="hidden" id="IGRNO' + i + '" name="IGRNO' + i + '" value="' + item.IGRNO + '">' +
'<input type="hidden" id="MaterialCode' + i + '" name="MaterialCode' + i + '" value="' + item.MaterialCode + '">' +
'<input type="hidden" id="txtQuantityAsPerInvoice' + i + '" name="txtQuantityAsPerInvoice' + i + '" value="' + item.QuantityAsPerInvoice + '">' +
'<input type="hidden" id="txtOrderedQuantity' + i + '" name="txtOrderedQuantity' + i + '" value="' + item.Quantity + '">' +
'<input type="hidden" id="txtGrossWeight' + i + '" name="txtGrossWeight' + i + '" value="' + item.GrossWeight + '">' +
'<input type="hidden" id="txtGrossWeightDate' + i + '" name="txtGrossWeightDate' + i + '" value="' + item.GrossWeightDate + '">' +
'<input type="hidden" id="txtTareWeight' + i + '" name="txtTareWeight' + i + '" value="' + item.TareWeight + '">' +
'<input type="hidden" id="txtTareWeightDate' + i + '" name="txtTareWeightDate' + i + '" value="' + item.TareWeightDate + '">' +
'<input type="hidden" id="txtNetWeight' + i + '" name="txtNetWeight' + i + '"value="' + item.NetWeight + '">' +
'<input type="hidden" id="txtRemarks' + i + '" name="txtRemarks' + i + '"value="' + item.Remarks + '">' +
'<input type="hidden" id="txtIGRLineItem' + i + '" name="txtIGRLineItem' + i + '"value="' + item.IGRItemNo + '">' +
'<input type="file" id="txtWeightFile' + i + '" name="txtWeightFile' + i + '"value="' + item.WeightFile + '" style="display:none;">' +
'<input type="hidden" id="txtWeightFileName' + i + '" name="txtWeightFileName' + i + '"value="' + item.WeightFile + '">' +
'</tr>';
if ((item.Quantity - item.QuantityAsPerInvoice) == 0.00) {
$('#QuantityAsPerInvoice' + i).attr('readonly', 'true');
}
} else {
$("#pendingQuantityHeader").css("display", "none");
trIGRHTML += '<tr>' +
'<td style="width: 50px;" align="right">' + i + '</td>' +
'<td style="width: 100px;" name="MaterialName" id="MaterialCode" onchange="test(' + i + ')">' + item.MaterialCode + '</td>' +
'<td style="width: 200px; word-wrap: break-word; word-break: break-all; white-space: normal;">' + item.MaterialName + '</td>' +
'<td style="width: 50px;" name="UOM">' + item.UOM + '</td>' +
'<td style="width: 100px;" align="right" name="Quantity">' + item.Quantity + '</td>' +
'<td style="width: 100px;" align="right" data-name="sel" >' + item.QuantityAsPerInvoice + '</td>' +
'<td style="width: 50px;" id="Rate' + i + '" >' + Number(item.Rate).toFixed(2) + '</td>' +
'<td style="width: 50px;" id="tax_percentage' + i + '">' + tax_percentage + '</td>' +
'<td style="width: 50px;" id="amount' + i + '">' + amount + '</td>' +
'<td style="width: 50px;" id="grand_total_amount' + i + '">' + grand_total_amount + '</td>' +
'<td style="width: 150px;">' + item.Remarks + '</td>' +
'<td style="width: 50px;"><a target="_blank" data-toggle="modal" data-target="#WeightCalculator" title="Weight Calculator" data-index="' + i + '" data-material="' + item.MaterialName + '" data-igrstatus = "' + igrstatus + '"><i class="fa fa-solid fa-truck" style="text-align: center;"></i></a> </td>' +
'<input type="hidden" id="IGRNO' + i + '" name="IGRNO' + i + '" value="' + item.IGRNO + '">' +
'<input type="hidden" id="MaterialCode' + i + '" name="MaterialCode' + i + '" value="' + item.MaterialCode + '">' +
'<input type="hidden" id="txtQuantityAsPerInvoice' + i + '" name="txtQuantityAsPerInvoice' + i + '" value="' + item.QuantityAsPerInvoice + '">' +
'<input type="hidden" id="txtOrderedQuantity' + i + '" name="txtOrderedQuantity' + i + '" value="' + item.Quantity + '">' +
'<input type="hidden" id="txtGrossWeight' + i + '" name="txtGrossWeight' + i + '" value="' + item.GrossWeight + '">' +
'<input type="hidden" id="txtGrossWeightDate' + i + '" name="txtGrossWeightDate' + i + '" value="' + item.GrossWeightDate + '">' +
'<input type="hidden" id="txtTareWeight' + i + '" name="txtTareWeight' + i + '" value="' + item.TareWeight + '">' +
'<input type="hidden" id="txtTareWeightDate' + i + '" name="txtTareWeightDate' + i + '" value="' + item.TareWeightDate + '">' +
'<input type="hidden" id="txtNetWeight' + i + '" name="txtNetWeight' + i + '"value="' + item.NetWeight + '">' +
'<input type="hidden" id="txtRemarks' + i + '" name="txtRemarks' + i + '"value="' + item.Remarks + '">' +
'<input type="hidden" id="txtIGRLineItem' + i + '" name="txtIGRLineItem' + i + '"value="' + item.IGRItemNo + '">' +
'<input type="file" id="txtWeightFile' + i + '" name="txtWeightFile' + i + '"value="' + item.WeightFile + '">' +
'<input type="hidden" id="txtWeightFileName' + i + '" name="txtWeightFileName' + i + '"value="' + item.WeightFile + '">' +
'</tr>';
}
}
}
});
$("#tbleIGRAppend").empty();
$("#tbleIGRAppend").append(trIGRHTML);
if (parsedData['files'].length != 0) {
$.each(parsedData['files'], function(i, item) {
if(parseInt(item.Isactive)){
console.log(item);
appendExistingFilesFileds(item)
}
});
}
},
error: function(xhr, status, error) { // Error callback
console.error('AJAX Error:', status, error);
alert("An error occurred: " + error);
// Additional error handling (e.g., showing a custom message)
},
complete: function() { // Complete callback
$('#loader').hide();
console.log('AJAX request completed.');
// Any cleanup or final actions after success/error
}
});
});
});
</script>
<script>
$(document).ready(function(){
$('#Igrshow').on("hide.bs.modal", function(e){
$('#existingContainer').empty();
});
});
</script>
<script>
$('#update').click(function() {
// $('#content').loader('show');
var igrno = $("#IGRNO1").val();
var materialrcv_date = $("#MaterialRcvdDate").val();
var inv_date = $("#Invoice_Date").val();
$.ajax({
data: {
igr: igrno,
mrc: materialrcv_date,
invdate: inv_date
},
type: "POST",
url: "<?php echo base_url() ?>UpdateIGR",
success: function(data) {
alert(data);
}
});
});
$('#draftIGR').click(function() {
// $('#content').loader('show');
var igrno = $("#IGRNO1").val();
var pono = $("#PONO1").val();
var status = 0;
var tableData = [];
$('#tbleIGRAppend tr').each(function(index) {
var row = $(this);
++index;
var rowData = {
Quantity: row.find('#txtOrderedQuantity' + index).val(),
QuantityAsPerInvoice: row.find('#txtQuantityAsPerInvoice' + index).val(),
Remarks: row.find('#txtRemarks' + index).val(),
GrossWeight: row.find('#txtGrossWeight' + index).val(),
GrossWeightDate: row.find('#txtGrossWeightDate' + index).val(),
TareWeight: row.find('#txtTareWeight' + index).val(),
TareWeightDate: row.find('#txtTareWeightDate' + index).val(),
NetWeight: row.find('#txtNetWeight' + index).val(),
IGRItemNo: row.find('#txtIGRLineItem' + index).val(),
WeightFile: row.find('#txtWeightFile' + index).val()
};
tableData.push(rowData);
});
var formData = new FormData();
// file_name[]
// emp_file[]
formData.append('igr', igrno);
formData.append('po', pono);
formData.append('mrc', $("#MaterialRcvdDate").val());
formData.append('invno', $("#Invoice_No").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
formData.append('Transporter_Id', $('#Transporter_Id').val());
formData.append('driver', $('#Driver_Name').val());
formData.append('driver_mobile', $('#DriverMobileNumber').val());
formData.append('status', status);
formData.append('tableData', JSON.stringify(tableData));
formData.append('isOpenOrder', $("#hiddenIsOpenOrder").val());
formData.append('MasterFile', $('#MasterFile')[0].files[0]);
formData.append('file_name[]', $('#file_name').val());
var empFiles = $('#emp_file')[0] ? $('#emp_file')[0].files : null;
if (empFiles) {
for (var i = 0; i < empFiles.length; i++) {
formData.append('emp_file[]', empFiles[i]);
console.log(empFiles[i]);
}
} else {
console.log("ajax call");
}
$.ajax({
data: formData,
type: "POST",
url: "<?php echo base_url() ?>UpdateIGR",
processData: false,
contentType: false,
success: function(data) {
alert(data);
location.reload();
}
});
});
$('#generateIGR').click(function() {
var igrno = $("#IGRNO1").val();
var pono = $("#PONO1").val();
var status = 1;
var tableData = [];
$('#tbleIGRAppend tr').each(function(index) {
var row = $(this);
++index;
var rowData = {
Quantity: row.find('#txtOrderedQuantity' + index).val(),
QuantityAsPerInvoice: row.find('#txtQuantityAsPerInvoice' + index).val(),
Remarks: row.find('#txtRemarks' + index).val(),
GrossWeight: row.find('#txtGrossWeight' + index).val(),
GrossWeightDate: row.find('#txtGrossWeightDate' + index).val(),
TareWeight: row.find('#txtTareWeight' + index).val(),
TareWeightDate: row.find('#txtTareWeightDate' + index).val(),
NetWeight: row.find('#txtNetWeight' + index).val(),
IGRItemNo: row.find('#txtIGRLineItem' + index).val(),
WeightFile: row.find('#txtWeightFile' + index).val()
};
tableData.push(rowData);
});
var formData = new FormData();
formData.append('igr', igrno);
formData.append('po', pono);
formData.append('mrc', $("#MaterialRcvdDate").val());
formData.append('invno', $("#Invoice_No").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
formData.append('Transporter_Id', $('#Transporter_Id').val());
formData.append('driver', $('#Driver_Name').val());
formData.append('driver_mobile', $('#DriverMobileNumber').val());
formData.append('status', status);
formData.append('tableData', JSON.stringify(tableData));
formData.append('isOpenOrder', $("#hiddenIsOpenOrder").val());
formData.append('MasterFile', $('#MasterFile')[0].files[0]);
$('input[name="file_name[]"]').each(function() {
formData.append('file_name[]', $(this).val());
});
$('input[name="emp_file[]"]').each(function() {
var empFiles = this.files;
for (var i = 0; i < empFiles.length; i++) {
formData.append('emp_file[]', empFiles[i]);
console.log(empFiles[i]);
}
});
//return false;
$('#loader').show();
$.ajax({
data: formData,
type: "POST",
url: "<?php echo base_url() ?>UpdateIGR",
processData: false,
contentType: false,
success: function(data) {
alert(data);
location.reload();
},
error: function(xhr, status, error) { // Error callback
console.error('AJAX Error:', status, error);
alert("An error occurred: " + error);
// Additional error handling (e.g., showing a custom message)
},
complete: function() { // Complete callback
$('#loader').hide();
console.log('AJAX request completed.');
// Any cleanup or final actions after success/error
}
});
});
</script>
<script>
$(document).ready(function() {
$("#Historyshow").on("shown.bs.modal", function(e) {
var igr = $(e.relatedTarget).data('igrno');
$('#HisTitle').text(" (" + igr + ") ");
$("#HisStatement").empty();
if (igr !== "") {
$.ajax({
data: {
igr: igr
},
type: "POST",
url: "<?php echo base_url() ?>ViewIGRHistory",
success: function(data) {
var output = '';
if (data && data.length > 0) {
data.forEach(function(record) {
var sentence = constructSentence(record);
console.log(sentence);
output += '<p>' + sentence + '</p>';
});
} else {
output = '<p style="text-align: center;">No History Data Available</p>';
}
$("#HisStatement").html(output);
},
error: function(xhr, status, error) {
var output = '<p style="text-align: center;">No History Data Available</p>';
$("#HisStatement").html(output);
console.error('AJAX Error: ' + status + error);
}
});
} else {
var output = '<p style="text-align: center;">No History Data Available</p>';
$("#HisStatement").html(output);
}
});
$("#CostCentershow").on("shown.bs.modal", function(e) {
var pono = $(e.relatedTarget).data('pono');
$('#CCTitle').text(" (" + pono + ") ");
$("#CCStatement").empty();
if (pono !== "") {
$.ajax({
data: {
pono: pono
},
type: "POST",
url: "<?php echo base_url() ?>getCostCenterData",
success: function(data) {
var output = '';
if (data && data.length > 0) {
data.forEach(function(record) {
output += '<p style="font-size:16px;"> <strong>' + record.ReqNo + '</strong> : ' + record.CostCenterName + '-' + record.CostCenterCode + ' </p>';
});
} else {
output = '<p style="text-align: center;">No Cost Center Data Available</p>';
}
$("#CCStatement").html(output);
},
error: function(xhr, status, error) {
var output = '<p style="text-align: center;">No Data Available</p>';
$("#CCStatement").html(output);
console.error('AJAX Error: ' + status + error);
}
});
} else {
var output = '<p style="text-align: center;">No Data Available</p>';
$("#CCStatement").html(output);
}
});
});
function constructSentence(record) {
// let str = record.field;
// let fieldName = str.replace(/([a-z])([A-Z])/g, '$1 $2');
let sentence = " ";
if (parseInt(record.is_add) === 1) {
sentence += record.IGR_No + " was Created by "+record.FullName+ " on "+record.indian_date+" at "+record.indian_time;
} else if (parseInt(record.is_edit) === 1) {
let str = record.field;
if (str !== "UpdateBY" && str !== "MaterialRcvdDate" && str !== "DeliveryChellanDate") {
let fieldName = str.replace(/([a-z])([A-Z])/g, '$1 $2');
sentence += ((record.IGRItem_No) ? record.MaterialName+" ( "+ record.MaterialCode + " ) - " : "")+fieldName+" "+record.old_data + " was Updated into " + record.new_data + " by "+record.FullName+ " on "+record.indian_date+" at "+record.indian_time;
}
} else if (parseInt(record.is_delete) === 1) {
let str = record.field;
let fieldName = str.replace(/([a-z])([A-Z])/g, '$1 $2');
sentence += fieldName+" "+record.new_data + " was deleted by "+record.FullName+ " on "+record.indian_date+" at "+record.indian_time;
}
return sentence;
}
</script>
<script>
function filecheck() {
var sizef = document.getElementById('billimag').files[0].size;
var file = $('#billimag').val();
if (file != '' && sizef < 2100000) { // alert('Your file added successfully');
} else {
alert('Sorry Your File is Large To 2MB');
$('#billimag').val('');
}
}
</script>
<script>
function validateTareWeight(element) {
var grossWeight = parseFloat(document.getElementById('GrossWeight').value);
var tareWeight = parseFloat(document.getElementById('TareWeight').value);
if (tareWeight > grossWeight) {
alert("Tare Weight must be less than or equal to Gross Weight.");
document.getElementById('TareWeight').value = '';
document.getElementById('TareWeightDate').value = '';
return false;
}
WeightDiffer(element)
return true;
}
function updateTime() {
const now = new Date();
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const todaydate = now.getDate().toString().padStart(2, '0');
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
const dateString = todaydate + '-' + month + '-' + year;
const timeString = hours + ":" + minutes + ":" + seconds;
document.getElementById('clock').textContent = dateString + " " + timeString;
}
setInterval(updateTime, 1000); // Update every second
updateTime(); // Initial call to display time immediately
function WeightDiffer(element) {
// console.log(element);
var v1 = $("#GrossWeight").val();
var v2 = $("#TareWeight").val();
var v3 = v1 - v2;
$("#NetWeight").val(v3);
if (element.id === 'GrossWeight') {
$("#GrossWeightDate").val($("#clock").text());
}
if (element.id === 'TareWeight') {
$("#TareWeightDate").val($("#clock").text());
}
}
$(document).ready(function() {
$("#WeightCalculator").on("shown.bs.modal", function(e) {
var inx = $(e.relatedTarget).data('index');
console.log(inx);
var material = $(e.relatedTarget).data('material');
var modal = $(this);
$('#WeightTitle').text(" ( " + material + " )");
// Clear the modal inputs
$("#GrossWeight").val('');
$("#GrossWeightDate").val('');
$("#TareWeight").val('');
$("#TareWeightDate").val('');
$("#NetWeight").val('');
$("#WeightFile").val('');
// Retrieve values from hidden inputs
var v1 = $("#txtGrossWeight" + inx).val();
var v2 = $("#txtGrossWeightDate" + inx).val();
var v3 = $("#txtTareWeight" + inx).val();
var v4 = $("#txtTareWeightDate" + inx).val();
var v5 = $("#txtNetWeight" + inx).val();
var fileInput = $("#txtWeightFile" + inx)[0];
var fileName = $("#txtWeightFileName" + inx).val();
modal.find('#WeightFileLabel').hide();
console.log(typeof fileName);
if (fileName !== 'null' && fileName !== undefined && fileName.trim() !== "") {
modal.find('#WeightFileLabel a').attr('title', 'previously uploaded IGR Weight File');
modal.find('#WeightFileLabel a').attr('href', '<?php echo base_url() ?>' + 'public/uploads/Igrfiles/' + fileName);
modal.find('#WeightFileLabel a').attr('target', '_blank');
modal.find('#WeightFileLabel a span').text('previously uploaded - ');
modal.find('#WeightFileLabel a small').text(fileName);
modal.find('#WeightFileLabel').show();
}
console.log(fileInput);
console.log("Selected values for index:", typeof inx, inx);
// Set modal inputs with the retrieved values
$("#GrossWeight").val(v1);
$("#GrossWeightDate").val(v2);
$("#TareWeight").val(v3);
$("#TareWeightDate").val(v4);
$("#NetWeight").val(v5);
$("#CurrentInx").val(inx);
fileName
if (fileInput && fileInput.files.length > 0) {
var targetInput = $("#WeightFile")[0];
var file = fileInput.files[0];
// Create a new DataTransfer object
var dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
// Set the file to the target input
targetInput.files = dataTransfer.files;
} else {
console.log("No file selected or file input not found.");
}
});
});
function modalSave() {
var v1 = $("#GrossWeight").val();
var v2 = $("#GrossWeightDate").val();
var v3 = $("#TareWeight").val();
var v4 = $("#TareWeightDate").val();
var v5 = $("#NetWeight").val();
var inx = $("#CurrentInx").val();
var IGRNO1 = $("#IGRNO1").val();
var fileInput = $("#WeightFile")[0]; // Get the file input element
if (inx !== undefined && inx !== '') {
console.log("Saving values for index:", inx);
// Set the values back to the hidden inputs
$("#txtGrossWeight" + inx).val(v1);
$("#txtGrossWeightDate" + inx).val(v2);
$("#txtTareWeight" + inx).val(v3);
$("#txtTareWeightDate" + inx).val(v4);
$("#txtNetWeight" + inx).val(v5);
var txtIGRLineItem = $("#txtIGRLineItem" + inx).val();
// Prepare FormData
var formData = new FormData();
formData.append('GrossWeight', v1);
formData.append('GrossWeightDate', v2);
formData.append('TareWeight', v3);
formData.append('TareWeightDate', v4);
formData.append('NetWeight', v5);
formData.append('IGR', IGRNO1);
formData.append('IGRlineitem', txtIGRLineItem);
if (fileInput && fileInput.files.length > 0) {
var file = fileInput.files[0];
formData.append('WeightFile', file);
} else {
console.log("No file selected or file input not found.");
}
// if (fileInput && fileInput.files.length > 0) {
// var targetInput = $("#txtWeightFile" + inx)[0];
// var file = fileInput.files[0];
// // Create a new DataTransfer object
// var dataTransfer = new DataTransfer();
// dataTransfer.items.add(file);
// // Set the file to the target input
// targetInput.files = dataTransfer.files;
// formData.append('WeightFile', file);
// } else {
// console.log("No file selected or file input not found.");
// }
$.ajax({
url: "<?php echo base_url() ?>updateIGRWeight",
type: "POST",
data: formData,
contentType: false, // Don't set content type header
processData: false,
success: function(data) {
if (data) {
alert(data);
}
}
});
// Clear modal inputs
$("#GrossWeight").val('');
$("#GrossWeightDate").val('');
$("#TareWeight").val('');
$("#TareWeightDate").val('');
$("#NetWeight").val('');
$("#WeightFile").val('');
// Close the modal
$("#WeightCalculator").modal('hide');
} else {
console.log("Saving values for index: " + inx + " undefined");
}
}
</script>
<script>
function formatDateTime(dateString, flag) {
console.log("ff",dateString);
// Note 1 means DATE only
// 2 means DATE and Time
// Check if the date string is null or empty
if (!dateString || dateString == 'null' || dateString === '0000-00-00 00:00:00') {
return '';
} else {
console.log("Received date string:", dateString);
// Split the date string into date and time components
var dateTimeParts = dateString.split(' ');
var dateParts = dateTimeParts[0].split('-');
var timeParts = dateTimeParts[1].split(':');
// Extract individual components
var year = parseInt(dateParts[0], 10);
var month = parseInt(dateParts[1], 10) - 1; // Months are zero-based in JavaScript
var day = parseInt(dateParts[2], 10);
var hours = parseInt(timeParts[0], 10);
var minutes = parseInt(timeParts[1], 10);
var seconds = parseInt(timeParts[2], 10);
// Create a new Date object
var date = new Date(year, month, day, hours, minutes, seconds);
// Extract date components
var day = date.getDate().toString().padStart(2, '0');
var month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are zero-based
var year = date.getFullYear();
// Extract time components
var hours = date.getHours().toString().padStart(2, '0');
var minutes = date.getMinutes().toString().padStart(2, '0');
var seconds = date.getSeconds().toString().padStart(2, '0');
var formattedDate = '';
// Format the date and time in DD-MM-YYYY HH:MM:SS format
if (flag == 1) {
formattedDate = `${day}-${month}-${year}`;
} else if (flag == 2) {
formattedDate = `${day}-${month}-${year} ${hours}:${minutes}:${seconds}`;
}
return formattedDate;
}
}
</script>
<script>
function SetRemarks(RowId) {
var remks = $("#Remark" + RowId).val();
if (remks != '') {
$("#txtRemarks" + RowId).val(remks);
}
}
function validateReceivedQuantity(Rowid, isOpenOrder) {
var InvoiceQty = parseFloat($('#QuantityAsPerInvoice' + Rowid).val() || '0.00'); // working fine
var OrderedQty = parseFloat($("#Quantity" + Rowid).text());
if (isOpenOrder == 1) {
var PendingQty = 0;
$('#PendingQuantity' + Rowid).text(PendingQty.toFixed(0));
$('#txtPendingQty' + Rowid).val(PendingQty.toFixed(0));
$('#txtQuantityAsPerInvoice' + Rowid).val(InvoiceQty.toFixed(2));
return true;
} else {
if (parseInt(OrderedQty) !== 0) {
if ((InvoiceQty) > OrderedQty) {
alert("Pending Quantity is exceeding the Ordered Quantity. Please contact the Purchase Team for further process.");
$("#QuantityAsPerInvoice" + Rowid).focus().val('');
return false;
} else if ((InvoiceQty) - OrderedQty > 0.00) {
alert("Order is completed.");
$("#QuantityAsPerInvoice" + Rowid).focus().val('');
return false;
} else {
var PendingQty = OrderedQty - (InvoiceQty);
$('#PendingQuantity' + Rowid).text(PendingQty.toFixed(0));
$('#txtPendingQty' + Rowid).val(PendingQty.toFixed(0));
$('#txtQuantityAsPerInvoice' + Rowid).val(InvoiceQty.toFixed(2));
return true;
}
} else {
var PendingQty = OrderedQty - (InvoiceQty);
$('#PendingQuantity' + Rowid).text(PendingQty.toFixed(0));
$('#txtPendingQty' + Rowid).val(PendingQty.toFixed(0));
$('#txtQuantityAsPerInvoice' + Rowid).val(InvoiceQty.toFixed(2));
return true;
}
}
}
</script>
<script>
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
<script>
var counter = 0;
$("#addmorebutton").click(function() {
$('#newdiv').empty();
var file_count = $("#hidegrandcounter").val();
counter++;
var bil_count = +counter + +file_count;
if (bil_count >= 6) {
alert("You have to upload five files only"); //this allows only 5 files;
$('#addmorebutton').hide();
return false;
}
var div = document.createElement('div');
div.id = "divid";
div.className = "row";
div.innerHTML = '<div class="col-md-12">' +
'<div class="col-md-3">' +
'<label class="col-form-label"><br></label>' +
'<input type="file" name="browseFiles" id="images' + counter + '" ><br>' +
'</div>' +
'<div class="col-md-2">' +
'<label class="col-form-label"><br><br></label>' +
'<button class="btn btn-success" type ="button" id="addbtn" onclick="addRow(' + counter + ')">ADD</button></div>' +
'</div>' +
'</div>';
$('#newdiv').append(div);
$('#hidecounter').val(counter);
if (counter > 1) {
alert("Add button click here");
return false;
} else {
$('#addmorebutton').hide();
}
});
function addRow(counter) {
var file = $('#images' + counter).val();
if (file == '') {
alert('File not found');
} else {
fileupload(counter);
}
}
function fileupload(counter) {
var formData = new FormData();
var file = document.getElementById('images' + counter).files[0];
var PONO = $('#hiddenPONO').val();
var igr = $('#hiddenIGRNO').val();
formData.append('file', file);
formData.append('PONO', PONO);
formData.append('count', counter);
formData.append('igr', igr);
// $('.content').loader('show');
$.ajax({
data: formData,
type: "POST",
url: "<?php echo base_url() ?>inwardgateregister/addloadfile",
cache: false,
contentType: false,
processData: false,
success: function(data) {
if (data) {
const chars = data.split("-");
billNo = chars[1] != undefined ? chars[1] : "";
alert('File uploaded successfully.');
addToTable(counter, billNo, file.name);
// $('.content').loader('hide');
$('#billModel').modal('hide');
}
}
});
}
function addToTable(counter, billNo, fileName) {
var hidecounter = $("#hidecounter").val();
var file_count = $("#hidegrandcounter").val();
var newRow = '<tr id="row' + counter + '">' +
'<td>' + counter + '</td>' +
'<td>' + billNo + '</td>' +
'<td>' + $('#hiddenPONO').val() + '</td>' +
'<td>' + fileName + '</td>' +
'<td>' + '<a href="#" onclick="openbillmodel(' + counter + ')">' +
'<i class="fa fa-edit" style="margin-right: 10px;"></i>' +
'</a>' +
'<a href="#" onclick="deleteBill(' + billNo + ',' + counter + ')">' +
'<i class="fa fa-trash"></i>' +
'</a>' +
'</td>' +
'</tr>';
$('#tblefile').append(newRow);
}
function filenames(id) {
var size = $('input[name=' + id + ']')[0].files[0].size;
if (size > 2100000) {
alert('Sorry Your File is Large To 2MB');
} else {
var name = $('input[name=' + id + ']')[0].files[0].name;
}
}
</script>
<script src="https://cdn.datatables.net/plug-ins/1.10.11/sorting/date-eu.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.4/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.4/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.4/js/buttons.print.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/plug-ins/1.13.6/sorting/datetime-moment.js"></script>
<script>
// $(document).ready(function() {
// $.fn.dataTable.ext.type.order['date-eu-pre'] = function(date) {
// var dateSplit = date.split('-');
// return (dateSplit[2] + dateSplit[1] + dateSplit[0]) * 1;
// };
// });
function appendExistingFilesFileds(data) {
const base_url = '<?php echo base_url(); ?>';
var filePath = data != null && data != '' ? data.FilePath : '';
var fileName = data != null && data != '' ? data.Remarks : '';
var billNo = data != null && data != '' ? data.BillNo : '';
var downloadUrl = `${base_url}public/uploads/Igrfiles/${filePath}`;
var newRowHtml = `<div class="form-row pad mt-2 ">
<div class="col-md-4">
<span><b>File Name</b></span>
<input type="text" maxlength="255" class="form-control"
value="${fileName}" readonly>
</div>
<div class="col-md-1" style="margin-top: 25px;">
<a href="${downloadUrl}" download>
<i class="fa fa-download" aria-hidden="true"
style="font-size: 25px;"></i>
</a>
</div>
<div class="col-md-5" style="margin-top: 23px;">
<button type="button" class="btn btn-danger btn-sm"
value="${billNo}" onclick="removeContact(this)">Delete</button>
</div>
</div>`;
$('#existingContainer').append(newRowHtml);
}
function appendFilesFileds(data) {
var newRowHtml = `
<div class="form-row pad mt-2">
<div class=" col-md-4">
<label class="col-form-label">File name</label>
<input type="text" id="file_name" name="file_name[]" maxlength="255" class="form-control" value="${data != null && data != '' ? data.file_name : ''}">
</div>
<div class=" col-md-4">
<label class="col-form-label" for="emp_file">File</label>
<input type="file" id="emp_file" name="emp_file[]" multiple class="form-control">
</div>
<div class=" col-md-4" style="margin-top: 40px;">
<button type="button" class="btn btn-danger btn-sm" onclick="removeContact(this)">Remove</button>
<button type="button" class="btn btn-primary btn-sm a1" onclick="appendFilesFileds()">Add</button>
</div>
</div>`;
$('#filesContainer').append(newRowHtml);
$('.a1').hide();
$('#filesContainer .pad:last .a1').show();
}
function removeContact(button) {
if ( button.value != '') {
let deleteConfirmation=confirm("Do you wish to Delete the Selected File?");
if(deleteConfirmation){
$('#loader').show();
$.ajax({
data: {
id: button.value
},
type: "POST",
url: "<?php echo base_url(); ?>deleteAdditionalIGRFile",
success: function(data) {
if (data.status === 'success' && data.data === true)
{
$(button).closest('.pad').remove();
$('#filesContainer .a1').hide();
$('#filesContainer .pad:last .a1').show();
var filesContainer = $('#filesContainer .pad:last .a1');
filesContainer.length === 0 ? $('#additionalfilebtn').show() : $('#additionalfilebtn').hide();
return true;
} else {
console.log('Failed to delete: Check server response.');
}
},
error: function(xhr, status, error) {
console.error('AJAX Error:', status, error);
alert("An error occurred: " + error);
},
complete: function() {
$('#loader').hide();
console.log('AJAX request completed.');
}
});
}
}else{
$(button).closest('.pad').remove();
$('#filesContainer .a1').hide();
$('#filesContainer .pad:last .a1').show();
var len = $('#filesContainer .pad:last .a1')
var length = len.length;
if (length == 0) {
$('#additionalfilebtn').show()
} else {
$('#additionalfilebtn').hide()
}
}
}
$(document).ready(function() {
table = $('#view_inward_gate_register').DataTable({
dom: 'Blfrtip',
buttons: [
{
extend: 'excel',
text: 'Excel',
exportOptions: {
columns: ':not(:last-child)' // Exclude the last column
}
},
{
extend: 'pdf',
text: 'PDF',
exportOptions: {
columns: ':not(:last-child)' // Exclude the last column
}
}
],
pageLength: 10,
lengthMenu: [
[10, 20, 30, 50, -1],
[10, 20, 30, 50, "All"]
],
responsive: false,
ordering:false,
language: {
paginate: {
next: '<i class="fas fa-angle-right"></i>', // Next button icon
previous: '<i class="fas fa-angle-left"></i>' // Previous button icon
}
}
});
// Reset button functionality
$("#resetButton").click(function() {
$("#fromDate").val('');
$("#toDate").val('');
window.location="ViewIGR"
});
// Automatically focus and open the To Date picker when From Date is selected
document.getElementById('fromDate').addEventListener('change', function() {
var fromDate = this.value;
var toDateInput = document.getElementById('toDate');
// Set the min attribute of the To Date input to the selected From Date
toDateInput.min = fromDate;
// Optionally reset the To Date input if the current value is before the new min date
if (toDateInput.value < fromDate) {
toDateInput.value = fromDate;
}
});
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.full.min.js"></script>
<script>
// document.getElementById('downloadExcel').addEventListener('click', function() {
// var table = document.getElementById('InwardgateregistertableForDownload');
// var wb = XLSX.utils.table_to_book(table, { sheet: "Inward Gate Register" });
// XLSX.writeFile(wb, 'InwardGateRegister.xlsx');
// });
</script>
<script>
$(document).ready(function() {
$('#fromDate , #toDate').change(function() {
let fromDate = $('#fromDate').val();
let toDate = $('#toDate').val();
let fromDateObj = new Date(fromDate.split('-').reverse().join('-'));
let toDateObj = new Date(toDate.split('-').reverse().join('-'));
if (fromDateObj > toDateObj) {
alert('Incorrect Date Applied For Filter..!!');
$('#toDate').attr('min', fromDate);
$('#toDate').val('');
}
});
});
</script>