Merge branch 'new_theme' of bitbucket.org:venbainformationtechnology/ria into new_theme

This commit is contained in:
Gowtham M 2024-12-17 10:14:21 +05:30
commit 7397b907e0
5 changed files with 2314 additions and 9 deletions

View File

@ -275,6 +275,7 @@ $routes->match(['GET', 'POST', 'PUT', 'DELETE'], 'EditStoreRequisition', 'Storer
$routes->get('AddIGR', 'Inwardgateregister::addIGR'); // ADD IGR page - working
$routes->get('ViewIGR', 'Inwardgateregister::viewIGR'); // View IGR PAGE - Working
$routes->post('ViewIGR', 'Inwardgateregister::viewIGR');//for filter purpose
$routes->get('accountsDashboard', 'Inwardgateregister::accountsDashboard'); // View IGR PAGE - Working
$routes->post('ViewIGRDetails', 'Inwardgateregister::viewIGRDetails');
$routes->post('GetIGRLineItemDetails', 'Inwardgateregister::getIGRLineItemDetails');
$routes->post('SaveIGR', 'Inwardgateregister::SaveIGR');// Save IGR PAGE - Working

View File

@ -92,6 +92,43 @@ class Inwardgateregister extends BaseController
$this->loadViews("viewinwardgateregister", $this->global, $data, NULL);
}
function accountsDashboard(){
$toDate = date('Y-m-d');
$fromDate = date('Y-m-d');
$this->global['pageTitle'] = 'Accounts Dashboard';
$result = $this->inwardgateregister_model->ViewigrListing($fromDate, $toDate);
$igrList = $result[0];
foreach ($igrList as &$igr) {
$igrNo = $igr->IGRNO;
$fileDetails = $this->inwardgateregister_model->getAllIgrFileDetails($igrNo);
$igr->isIgrFilePresent = false; // Initialize the key
foreach ($fileDetails as $file) {
if (!empty($file->file)) {
$igr->isIgrFilePresent = true;
break;
}
}
}
// Unset reference to avoid side effects
unset($igr);
$data['IGR'] = $igrList;
$data['IGRDownload'] = $result[1];
$data['userRole'] = $this->session->get('role');
$data['transporter'] = $this->inwardgateregister_model->transporter();
$data['fromDate'] = date('d-m-Y', strtotime($fromDate));
$data['toDate'] = date('d-m-Y', strtotime($toDate));
$this->loadViews("accountsDashboard", $this->global, $data, NULL);
}
function addIGR()
{

File diff suppressed because it is too large Load Diff

View File

@ -52,6 +52,13 @@
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.print.min.js"></script>
<!-- cdn for pdf download -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.4.0/jspdf.umd.min.js"></script>
<!-- !-- cdn for pdf download -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/2.4.3/purify.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
<!-- JSZip for Excel export -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
@ -840,15 +847,20 @@
</div>
</li>
<!-- report list module -->
<!-- <li class="nav-item dropdown">
<a class="nav-link dropdown-toggle arrow-none" href="<?php echo base_url(); ?>reports" role="button"
aria-expanded="false">
<i class="ri-keyboard-line mr-1"></i> Report Lists
</a>
</li> -->
<?php }?>
<!-- Accounts Dashboard -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle arrow-none"
href="<?php echo base_url(); ?>accountsDashboard"
role="button" aria-expanded="false">
<i class="fas fa-cubes mr-1"></i> Accounts Dashboard
</a>
</li>
</ul> <!-- end navbar-->

View File

@ -153,6 +153,16 @@
height: 20px;
}
#invoice-logo {
max-width: 10em !important;
max-height: 8em !important;
margin-top: 1em;
text-align: right
}
@ -275,6 +285,7 @@
<th class="celda_encabezado_general" style="display:none;">MaterialCode</th>
<th class="celda_encabezado_general" style="padding: 10px;">Update Lab Report</th>
<th class="celda_encabezado_general" style="display:none">id</th>
<th class="celda_encabezado_general" style="padding: 10px;">Download Report</th>
@ -301,12 +312,12 @@
</td>
<!-- 'td:eq(2)' -->
<td class="celda_normal" >
<td class="celda_normal">
<?php echo $record['invoiceNo']??''; ?>
</td>
<!-- 'td:eq(3)' -->
<td class="celda_normal" >
<td class="celda_normal">
<?php
$dateString = $record['invoiceDate'];
$date = new DateTime($dateString);
@ -499,6 +510,12 @@
<td style="display: none;">
<?php echo $record['id'] ?? ''; ?>
</td>
<!-- 'td:eq(36)' -->
<td class="celda_normal" style="color:#02d0eb; background:white;">
<i
class="fas fa-download download-lab-report" style="cursor:pointer;"></i>
</td>
</tr>
<?php } ?>
@ -538,6 +555,8 @@
<!-- modal section -->
<div class="modal fade" id="labReportModel" tabindex="-1" role="dialog" aria-labelledby="labReportModelLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
@ -689,10 +708,315 @@
<div class="modal fade" id="downloadLabReportModel" tabindex="-1" role="dialog" aria-labelledby="downloadLabReportModelLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="downloadLabReportModelLabel">Download Sand Lab Report</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body p-4" id="content">
<div style="text-align: right;"><small>REF:RIPL/DAD/R02</small></div>
<form>
<header class="clearfix">
<div class="row">
<div class="col-3" width="100px;">
<div id="logo" style="margin:0 !important;"><?php echo invoice_logo_pdf(); ?></div>
</div>
<div class="col-9">
<h2 style="font-family: 'Times New Roman', Georgia, serif; color:maroon;">RESICO (INDIA) PVT.LTD.</h>
</div>
</div>
<div class="row">
<div class="col-3" width="100px;">
</div>
<div class="col-9">
<h4 style="margin-left: 75px; text-decoration:underline;">INCOMING TEST REPORT</h4>
</div>
</div>
</header>
<main>
<table class="side-table" border="1" width="100%">
<thead>
</thead>
<tbody >
<tr>
<td style="text-align: left !important; width:25%;"><b>Supplier Name</b></td>
<td id="dwnldSupplierNameId"></td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Invoice No</b></td>
<td id="dwnldInvoiceNoId">8946551665</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Invoice Date</b></td>
<td id="dwnldInvoiceDateId">2/12/1996</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Vehicle No</b></td>
<td id="dwnldVehicleNoId">Tn 25 bb 6919</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>IGR No</b></td>
<td id="dwnldIgrNoId">25126919</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Igr Date</b></td>
<td id="dwnldIgrDateId">10/12/2024</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Quantity</b></td>
<td id="dwnldQtyId">69199</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Time</b></td>
<td contenteditable="true"
id="dwnldTimeId"></td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Grade</b></td>
<td contenteditable="true"
id="dwnldGradeId">50-60</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Clay %</b></td>
<td contenteditable="true"
id="dwnldClayId">20</td>
</tr>
<tr>
<td style="text-align: left !important; width:25%;"><b>Moisture %</b></td>
<td contenteditable="true"
id="dwnldMoistureId">10</td>
</tr>
</tbody>
</table>
<table id="meshTableId" border="1" width="100%">
<thead>
<tr>
<th>
<center><?php _trans('MESH SIZE'); ?></center>
</th>
<th>
<center><?php _trans('SIZE IN M.M'); ?><br /></center>
</th>
<th >
<center><?php _trans('SIZE IN MICRANS'); ?></center>
</th>
<th>
<center><?php _trans('WEIGH OF SAND'); ?></center>
</th>
<th>
<center><?php _trans('FACTOR'); ?><br /></center>
</th>
<th>
<center><?php _trans('TOTAL'); ?><br /></center>
</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">10</td>
<td align="center">2.0</td>
<td align="center">2000</td>
<td align="right" id="dwnld10MmId"></td>
<td align="center">5</td>
<td align="right" id="dwnld10MmFId"> </td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">0.85</td>
<td align="center">0850</td>
<td align="right" id="dwnld20MmId"></td>
<td align="center">10</td>
<td align="right" id="dwnld20MmFId"></td>
</tr>
<tr>
<td align="center">30</td>
<td align="center">0.60</td>
<td align="center">0600</td>
<td align="right" id="dwnld30MmId"></td>
<td align="center">20</td>
<td align="right" id="dwnld30MmFId"></td>
</tr>
<tr>
<td align="center">40</td>
<td align="center">0.42</td>
<td align="center">0425</td>
<td align="right" id="dwnld40MmId"></td>
<td align="center">30</td>
<td align="right" id="dwnld40MmFId"></td>
</tr>
<tr>
<td align="center">50</td>
<td align="center">0.30</td>
<td align="center">0300</td>
<td align="right" id="dwnld50MmId"></td>
<td align="center">40</td>
<td align="right" id="dwnld50MmFId"></td>
</tr>
<tr>
<td align="center">70</td>
<td align="center">0.21</td>
<td align="center">0212</td>
<td align="right" id="dwnld70MmId"></td>
<td align="center">50</td>
<td align="right" id="dwnld70MmFId"></td>
</tr>
<tr>
<td align="center">100</td>
<td align="center">0.15</td>
<td align="center">0150</td>
<td align="right" id="dwnld100MmId"></td>
<td align="center">70</td>
<td align="right" id="dwnld100MmFId"></td>
</tr>
<tr>
<td align="center">140</td>
<td align="center">0.106</td>
<td align="center">0106</td>
<td align="right" id="dwnld140MmId"></td>
<td align="center">100</td>
<td align="right" id="dwnld140MmFId"></td>
</tr>
<tr>
<td align="center">200</td>
<td align="center">0.075</td>
<td align="center">0075</td>
<td align="right" id="dwnld200MmId"></td>
<td align="center">140</td>
<td align="right" id="dwnld200MmFId"></td>
</tr>
<tr>
<td align="center">300</td>
<td align="center">0.053</td>
<td align="center">0053</td>
<td align="right" id="dwnld300MmId"></td>
<td align="center">200</td>
<td align="right" id="dwnld300MmFId"></td>
</tr>
<tr>
<td align="center">PAN</td>
<td align="center"></td>
<td align="center">PAN</td>
<td align="right" id="dwnldPanId"></td>
<td align="center">300</td>
<td align="right" id="dwnldPanFId"></td>
</tr>
</tbody>
<tfoot>
<tr>&nbsp;
<td style="text-align: right;" colspan="3"><strong>&nbsp;TOTAL </strong></td>
<td class="text-right" id="dwnldWeighOfSand"></td>
<td class="text-right" id="dwnldTotalId" colspan="2"><b></b></td>
</tr>
<tr>&nbsp;
<td class="text-right" colspan="4"><b>AFS </b></td>
<td class="text-right" id="dwnldAfsId" colspan="2"><b></b></td>
</tr>
</tfoot>
</table>
<br>
<table class="side-table " border="1" width="100%">
<tbody >
<tr>
<td style="text-align: left !important; width:25%;"><b>Accepted</b></td>
<td id="dwnldAcceptedId">OK</td>
</tr>
<tr>
<td style="text-align: left !important;"><b>Accepted Under Deviation</b></td>
<td id="dwnldAcceptedUnderDeviationId"></td>
</tr>
<tr>
<td style="text-align: left !important;"><b>Rejected</b></td>
<td id="dwnldRejectedId"></td>
</tr>
<tr>
<td style="text-align: left !important; height: 50px;"><b>Remarks</b></td>
<td contenteditable="true"></td>
</tr>
</tbody>
</table>
<br>
<table class="side-table " border="1" width="100%">
<tbody >
<tr >
<th contenteditable="true"
style="text-align: center !important; height: 50px;">&nbsp;&nbsp;</th>
<th contenteditable="true"
style="text-align: center !important; height: 50px;">&nbsp;&nbsp;</th>
</tr>
<tr >
<th style="text-align: center !important;">Tested By</th>
<th style="text-align: center !important;">Approved By</th>
</tr>
</tbody>
</table>
<b><small> * This is a system generated </small></b>
</main>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" id="pdfGenerateId" class="btn btn-primary">Download</button>
</div>
</form>
</div>
</div>
</div>
<script>
document.getElementById('pdfGenerateId').addEventListener('click', function () {
// Get the content
const content = document.getElementById("content").innerHTML;
// Sanitize with DOMPurify
const cleanContent = DOMPurify.sanitize(content);
// Convert to PDF
const element = document.createElement('div');
element.innerHTML = cleanContent;
const opt = {
margin: 1,
filename: 'report.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'A4', orientation: 'portrait' }
};
html2pdf().from(element).set(opt).save();
});
</script>
<script>
$(document).ready(function(){
@ -767,6 +1091,145 @@
})
</script>
<script>
$(document).ready(function(){
$('#incomingSilicaSandDetailsTable tbody').on('click', '.download-lab-report', function () {
var row = $(this).closest('tr');
// Get values from the row
let igrNo = row.find('td:eq(1)').text().trim();
let invoiceNo = row.find('td:eq(2)').text().trim();
let invoiceDate = row.find('td:eq(3)').text().trim();
let igrDate = row.find('td:eq(4)').text().trim();
let supplierName = row.find('td:eq(5)').text().trim();
let vehicleNo = row.find('td:eq(8)').text().trim();
let qty = row.find('td:eq(9)').text().trim();
let _10Mm = row.find('td:eq(10)').text().trim();
let _20Mm = row.find('td:eq(11)').text().trim();
let _30Mm = row.find('td:eq(12)').text().trim();
let _40Mm = row.find('td:eq(13)').text().trim();
let _50Mm = row.find('td:eq(14)').text().trim();
let _70Mm = row.find('td:eq(15)').text().trim();
let _100Mm = row.find('td:eq(16)').text().trim();
let _140Mm = row.find('td:eq(17)').text().trim();
let _200Mm = row.find('td:eq(18)').text().trim();
let _300Mm = row.find('td:eq(19)').text().trim();
let pan = row.find('td:eq(20)').text().trim();
let total = row.find('td:eq(21)').text().trim();
let moistureLoss = row.find('td:eq(28)').text().trim();
let remark = row.find('.sand-status').val();
let materialCode = row.find('td:eq(33)').text().trim();
// Fill the modal fields with the values
$('#dwnldIgrNoId').text(igrNo);
$('#dwnldInvoiceNoId').text(invoiceNo);
$('#dwnldInvoiceDateId').text(invoiceDate);
$('#dwnldIgrDateId').text(igrDate);
$('#dwnldSupplierNameId').text(supplierName);
$('#dwnldVehicleNoId').text(vehicleNo);
$('#dwnldQtyId').text(qty);
let dwnld10MmFId = parseFloat(_10Mm * 5).toFixed(2);
$('#dwnld10MmId').text(_10Mm);
$('#dwnld10MmFId').text(dwnld10MmFId);
let dwnld20MmFId = parseFloat(_20Mm * 10).toFixed(2);
$('#dwnld20MmId').text(_20Mm);
$('#dwnld20MmFId').text(dwnld20MmFId);
let dwnld30MmFId = parseFloat(_30Mm * 20).toFixed(2);
$('#dwnld30MmId').text(_30Mm);
$('#dwnld30MmFId').text(dwnld30MmFId);
let dwnld40MmFId = parseFloat(_40Mm * 30).toFixed(2);
$('#dwnld40MmId').text(_40Mm);
$('#dwnld40MmFId').text(dwnld40MmFId);
let dwnld50MmFId = parseFloat(_50Mm * 40).toFixed(2);
$('#dwnld50MmId').text(_50Mm);
$('#dwnld50MmFId').text(dwnld50MmFId);
let dwnld70MmFId = parseFloat(_70Mm * 50).toFixed(2);
$('#dwnld70MmId').text(_70Mm);
$('#dwnld70MmFId').text(dwnld70MmFId);
let dwnld100MmFId = parseFloat(_100Mm * 70).toFixed(2);
$('#dwnld100MmId').text(_100Mm);
$('#dwnld100MmFId').text(dwnld100MmFId);
let dwnld140MmFId = parseFloat(_140Mm * 100).toFixed(2);
$('#dwnld140MmId').text(_140Mm);
$('#dwnld140MmFId').text(dwnld140MmFId);
let dwnld200MmFId = parseFloat(_200Mm * 140).toFixed(2);
$('#dwnld200MmId').text(_200Mm);
$('#dwnld200MmFId').text(dwnld200MmFId);
let dwnld300MmFId = parseFloat(_300Mm * 200).toFixed(2);
$('#dwnld300MmId').text(_300Mm);
$('#dwnld300MmFId').text(dwnld300MmFId);
let dwnldPanFId = parseFloat(pan * 300).toFixed(2);
$('#dwnldPanId') .text(pan);
$('#dwnldPanFId') .text(dwnldPanFId);
let fTotal =
(parseFloat(dwnld10MmFId)+
parseFloat(dwnld20MmFId)+
parseFloat(dwnld30MmFId)+
parseFloat(dwnld40MmFId) +
parseFloat(dwnld50MmFId) +
parseFloat(dwnld70MmFId) +
parseFloat(dwnld100MmFId) +
parseFloat(dwnld140MmFId) +
parseFloat(dwnld200MmFId) +
parseFloat(dwnld300MmFId)+
parseFloat(dwnldPanFId) ).toFixed(2);
let dwnldAfsId;
if(total == 0){
dwnldAfsId = "0.00";
}else{
dwnldAfsId = parseFloat(fTotal/total).toFixed(2);
}
$('#dwnldWeighOfSand').text(total);
$('#dwnldMoistureId').text(moistureLoss);
$('#dwnldAcceptedId').text("");
$('#dwnldAcceptedUnderDeviationId').text("");
$('#dwnldRejectedId').text("");
$('#dwnldTotalId').text(fTotal);
$('#dwnldAfsId').text(dwnldAfsId);
if(remark == "accepted"){
$('#dwnldAcceptedId').text("Ok");
}else if(remark == "conditionallyAccepted"){
$('#dwnldAcceptedUnderDeviationId').text("Ok");
}else if(remark == "rejected"){
$('#dwnldRejectedId').text("Ok");
}
// Show the modal
$('#downloadLabReportModel').modal('show');
let someValue = $("#meshTableId").tableToJSON();
console.log(someValue);
})
})
</script>
<script>
$(document).ready(function(){
$('#10Mm , #20Mm, #30Mm, #40Mm, #50Mm, #70Mm, #100Mm, #1400Mm, #200Mm, #300Mm , #pan , #moistureSpec ,#moistureActual').change(function(){