CHANGE_INWARD_RIASE

This commit is contained in:
aadhavan valli 2024-08-29 08:51:04 +05:30
parent 7c1b938ebc
commit 598148a969
13 changed files with 854 additions and 532 deletions

View File

@ -270,6 +270,7 @@ $routes->post('editExpense', 'Expense::editExpense');
$routes->post('getExpenseDetails', 'Expense::getExpenseDetails'); $routes->post('getExpenseDetails', 'Expense::getExpenseDetails');
$routes->get('uploads/(:any)', 'Expense::downloads/$1'); $routes->get('uploads/(:any)', 'Expense::downloads/$1');
$routes->post('deleteFile', 'Expense::deleteFile'); $routes->post('deleteFile', 'Expense::deleteFile');
$routes->get('downloadFile/(:any)', 'Expense::downloads/$1');
// Application OGR Page // Application OGR Page

View File

@ -39,18 +39,21 @@ class Expense extends BaseController
$file->move(WRITEPATH . 'uploads', $fileName); $file->move(WRITEPATH . 'uploads', $fileName);
} }
$status = $this->request->getPost('status');
$paymentMethod = $status === 'Paid' ? $this->request->getPost('payment_method') : 0;
$data = [ $data = [
'transporter_file' => $fileName, 'transporter_file' => $fileName,
'supplier_id' => $this->request->getPost('supplierid'), 'supplier_id' => $this->request->getPost('supplierid'),
'remarks' => $this->request->getPost('remarks'), 'remarks' => $this->request->getPost('remarks'),
'cost' => $this->request->getPost('cost'), 'cost' => $this->request->getPost('cost'),
'gst' => $this->request->getPost('gst'), 'gst' => $this->request->getPost('gst'),
'total' => $this->request->getPost('total'), 'total' => (int)$this->request->getPost('gst') + (int)$this->request->getPost('cost'),
'status' => $this->request->getPost('status'), 'status' => $status,
'payment_method' => $this->request->getPost('payment_method') 'payment_method' => $paymentMethod
]; ];
$insert_id = $this->expense_model->insertExpense($data);
$insert_id = $this->expense_model->insertExpense($data);
if ($insert_id) { if ($insert_id) {
return json_encode('true'); return json_encode('true');
} else { } else {
@ -83,18 +86,23 @@ class Expense extends BaseController
$fileName = $this->request->getPost('existing_file'); // Use existing file if no new file is uploaded $fileName = $this->request->getPost('existing_file'); // Use existing file if no new file is uploaded
} }
$status = $this->request->getPost('status');
$paymentMethod = $status === 'Paid' ? $this->request->getPost('payment_method') : 0;
$data = [ $data = [
'supplier_id' => $this->request->getPost('supplierid'), 'supplier_id' => $this->request->getPost('supplierid'),
'remarks' => $this->request->getPost('remarks'), 'remarks' => $this->request->getPost('remarks'),
'cost' => $this->request->getPost('cost'), 'cost' => $this->request->getPost('cost'),
'gst' => $this->request->getPost('gst'), 'gst' => $this->request->getPost('gst'),
'total' => $this->request->getPost('total'), 'total' => (int)$this->request->getPost('gst') + (int)$this->request->getPost('cost'),
'status' => $this->request->getPost('status'), 'status' => $status,
'payment_method' => $this->request->getPost('payment_method') 'payment_method' => $paymentMethod
]; ];
if(!empty($fileName)){ if(!empty($fileName)){
$data['transporter_file'] = $fileName; $data['transporter_file'] = $fileName;
} }
$data['payment_method'] = $this->request->getPost('payment_method');
if ($id) { if ($id) {
$result = $this->expense_model->updateExpense($id, $data); $result = $this->expense_model->updateExpense($id, $data);

View File

@ -465,7 +465,7 @@ legend {
</b> </b>
</div> </div>
<div class="col-md-5" style="margin-top: 20px;margin-bottom: 10px;text-align:right;"> <div class="col-md-5" style="margin-top: 20px;margin-bottom: 10px;text-align:right;">
<a href="<?php echo base_url() ?>employeeListing" class="btn btn-cancel" value="Back">Back</a> <a href="<?php echo base_url() ?>employeeListing" class="btn btn-dark waves-effect waves-light" value="Back">Back</a>
</div> </div>
<div class="col-md-1"></div> <div class="col-md-1"></div>
</div> </div>

View File

@ -46,7 +46,7 @@
</div> </div>
<div class="col-6 text-right"> <div class="col-6 text-right">
<a class="btn btn-cancel" href="<?php echo base_url(); ?>supplierlisting"><span class="bold">Back</span></a> <a class="btn btn-dark waves-effect waves-light" href="<?php echo base_url(); ?>supplierlisting"><span class="bold">Back</span></a>
</div> </div>
</div> </div>
<!-- end page title --> <!-- end page title -->

View File

@ -10,7 +10,7 @@
</div> </div>
</div> </div>
<div class="col-6 text-right"> <div class="col-6 text-right">
<a class="btn btn-cancel" href="<?php echo base_url(); ?>assetListing"><span class="bold">Back</span></a> <a class="btn btn-dark waves-effect waves-light" href="<?php echo base_url(); ?>assetListing"><span class="bold">Back</span></a>
</div> </div>
</div> </div>
<!-- end page title --> <!-- end page title -->

View File

@ -16,7 +16,7 @@
</div> </div>
</div> </div>
<div class="col-6 text-right"> <div class="col-6 text-right">
<a class="btn btn-cancel" href="<?php echo base_url(); ?>configlisting"><span class="bold">Back</span></a> <a class="btn btn-dark waves-effect waves-light" href="<?php echo base_url(); ?>configlisting"><span class="bold">Back</span></a>
</div> </div>
</div> </div>
<?php <?php

View File

@ -20,7 +20,7 @@
</div> </div>
</div> </div>
<div class="col-6 text-right"> <div class="col-6 text-right">
<a class="btn btn-cancel" href="<?php echo base_url(); ?>departmentListing"><span class="bold">Back</span></a> <a class="btn btn-dark waves-effect waves-light" href="<?php echo base_url(); ?>departmentListing"><span class="bold">Back</span></a>
</div> </div>
</div> </div>
<!-- end page title --> <!-- end page title -->

View File

@ -34,6 +34,19 @@ if (!empty($ReqPOType)) {
$strReqPOType = $ReqPOType; $strReqPOType = $ReqPOType;
} }
?> ?>
<style>
.btn-soft-primary {
color: white;
background-color: rgb(42, 206, 150);
border-color: rgb(42, 206, 150);
}
.btn-soft-primary:hover {
background-color: rgb(32, 176, 130); /* Slightly darker shade for hover */
border-color: rgb(32, 176, 130);
}
</style>
<script type="text/javascript"> <script type="text/javascript">
window.onload = function() { window.onload = function() {
var serviceScheduleType = '<?php echo $serviceSchedule; ?>'; var serviceScheduleType = '<?php echo $serviceSchedule; ?>';
@ -216,13 +229,13 @@ if (!empty($ReqPOType)) {
<div class="form-row float-right"> <div class="form-row float-right">
<?php if ($Status == REQ_DRAFT) { ?> <?php if ($Status == REQ_DRAFT) { ?>
<input type="reset" value="Reset" class="btn btn-secondary waves-effect" onclick="window.location.reload();">&nbsp;&nbsp; <input type="reset" value="Reset" class="btn btn-secondary waves-effect" onclick="window.location.reload();">&nbsp;&nbsp;
<button type="button" class="btn btn-primary waves-effect Save" onclick="Save(0)" id="Save">Save As Draft</button>&nbsp;&nbsp; <button type="button" class="btn btn-primary waves-effect Save" " id="Save">Save As Draft</button>&nbsp;&nbsp;
<button type="button" class="btn btn-primary waves-effect submit" onclick="Save(1)" id="submit">Submit</button>&nbsp;&nbsp; <button type="button" class="btn btn-primary waves-effect submit" id="submit1">Submit</button>&nbsp;&nbsp;
<button type="button" class="btn btn-soft-primary waves-effect waves-light submit" onclick="Save(2)" id="submit">Approve</button>&nbsp;&nbsp; <button type="button" class="btn btn-soft-primary waves-effect waves-light submit" id="submit2">Approve</button>&nbsp;&nbsp;
<?php } else if ($Status == REQ_PENDING_APPROVAL) { ?> <?php } else if ($Status == REQ_PENDING_APPROVAL) { ?>
<input type="reset" value="Reset" class="btn btn-secondary waves-effect" onclick="window.location.reload();">&nbsp;&nbsp; <input type="reset" value="Reset" class="btn btn-secondary waves-effect" onclick="window.location.reload();">&nbsp;&nbsp;
<button type="button" class="btn btn-primary waves-effect submit" onclick="Save(1)" id="submit">Submit</button>&nbsp;&nbsp; <button type="button" class="btn btn-primary waves-effect submit" id="submit1">Submit</button>&nbsp;&nbsp;
<button type="button" class="btn btn-soft-primary waves-effect waves-light submit" onclick="Save(2)" id="submit">Approve</button>&nbsp;&nbsp; <button type="button" class="btn btn-soft-primary waves-effect waves-light submit" id="submit2">Approve</button>&nbsp;&nbsp;
<?php } ?> <?php } ?>
</div> </div>
<?php echo form_close(); ?> <?php echo form_close(); ?>
@ -518,7 +531,16 @@ if (!empty($ReqPOType)) {
userid = ''; userid = '';
} }
} }
$(document).ready(function() {
$('#submit2').on('click', function() {
Save(2);
});
$('#submit1').on('click', function() {
Save(1);
});
$('#Save').on('click', function() {
Save(0);
});
function Save(status) { function Save(status) {
if (status == '0') { if (status == '0') {
stat = '<?php echo REQ_DRAFT; ?>'; stat = '<?php echo REQ_DRAFT; ?>';
@ -584,6 +606,7 @@ if (!empty($ReqPOType)) {
} }
} }
});
function validate() { function validate() {
if ($("option:selected", $("#RequestType")).val() == '-1') { if ($("option:selected", $("#RequestType")).val() == '-1') {

View File

@ -1,3 +1,9 @@
<!-- Include jQuery first -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Include jQuery Validation plugin -->
<script src="https://cdn.jsdelivr.net/jquery.validation/1.19.3/jquery.validate.min.js"></script>
<style> <style>
.form-group { .form-group {
padding-bottom: 0%; padding-bottom: 0%;
@ -79,34 +85,55 @@
<thead style="background-color: #ddd;"> <thead style="background-color: #ddd;">
<tr> <tr>
<th align="right">Created Date</th> <th align="right">Created Date</th>
<th align="right">Expense Id</th> <!-- <th align="right">Expense Id</th> -->
<th align="right">Supplier Name</th> <th align="right">Supplier Name</th>
<th align="right">Cost</th>
<th align="right">GST</th> <th align="right">GST</th>
<th align="right">Cost</th>
<th align="right">Total</th> <th align="right">Total</th>
<th align="right">Status</th> <th align="right">Status</th>
<th align="right">Payment Method</th> <th align="right">Payment Method</th>
<th>Action</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
if (!empty($expense_list)) { if (!empty($expense_list)) {
foreach ($expense_list as $record) { foreach ($expense_list as $record) {
$fileExists = 0;
$fileUrl = '';
if ($record['transporter_file']) {
$fileExists = 1;
$fileUrl = base_url('uploads/') . $record['transporter_file'];
}
// Create download link and delete button
?> ?>
<tr> <tr>
<?php if (date('d-m-Y', strtotime($record['created_on'])) == "30-11--0001") { <?php if (date('d-m-Y', strtotime($record['created_on'])) == "30-11--0001") {
$cdate = '00-00-0000'; $cdate = '00-00-0000';
} else { } else {
$cdate = date('d-m-Y', strtotime($record['created_on'])); $cdate = date('d-m-Y', strtotime($record['created_on']));
} ?> }
?>
<td><?php echo $cdate; ?></td> <td><?php echo $cdate; ?></td>
<td class="edit-button" data-id="<?php echo $record['id']; ?>"><a href="#" data-toggle="modal" data-target="#expenseModal"><?php echo $record['id']; ?></a></td> <!-- <td><?php echo $record['id']; ?></td> -->
<td><?php echo $record['SupplierName']; ?></td> <td><?php echo $record['SupplierName']; ?></td>
<td><?php echo $record['cost']; ?></td>
<td><?php echo $record['gst']; ?></td> <td><?php echo $record['gst']; ?></td>
<td><?php echo $record['cost']; ?></td>
<td><?php echo $record['total']; ?></td> <td><?php echo $record['total']; ?></td>
<td><?php echo $record['status']; ?></td> <td><?php echo $record['status']; ?></td>
<td><?php echo $record['payment_method']; ?></td> <td><?php echo $record['payment_method']; ?></td>
<td>
<?php if($fileExists == 1){ ?>
<button title="Download FIle" class="download_button" onclick="downloadFile('<?php echo $record['id']; ?>', '<?php echo $record['transporter_file']; ?>')" style="border: none;background-color: white;color: #02a8b5;">
<i class="fas fa-file-download"></i>
</button>
<button title="Delete File" id="deleteFile" class="delete_button" data-value="<?php echo $record['id'] ?>" data-id="<?php echo $record['id'] ?>" data-file="<?php echo $record['transporter_file'] ?>"><i class="fas fa-trash"></i></button>
<?php } ?>
<button title="Edit" class="edit-button" data-toggle="modal" data-target="#expenseModal" data-id="<?php echo $record['id']; ?>" style="border: none;background-color: white;color: #02a8b5;" >
<i class="fas fa-pencil-alt"></i>
</button>
</td>
</tr> </tr>
<?php <?php
} }
@ -149,15 +176,15 @@
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
<label for="supplierid" class="col-form-label">Supplier :</label> <label for="supplierid" class="col-form-label">Supplier :</label>
<select name="supplierid" id="supplierid" class="form-control"> <select name="supplierid" id="supplierid" class="form-control" required>
<option value="">Select Supplier</option>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
<label for="remarks" class="col-form-label">Remarks:</label> <label for="gst" class="col-form-label">Tax:</label>
<input type="text" name="remarks" id="remarks" class="form-control"> <input type="number" name="gst" id="gst" class="form-control" >
</div> </div>
<div class="col-md-1"> <div class="col-md-1">
</div> </div>
@ -165,26 +192,16 @@
<label for="cost" class="col-form-label">Cost:</label> <label for="cost" class="col-form-label">Cost:</label>
<input type="number" name="cost" id="cost" class="form-control"> <input type="number" name="cost" id="cost" class="form-control">
</div> </div>
</div>
<div class="form-group row">
<div class="col-md-5">
<label for="gst" class="col-form-label">GST:</label>
<input type="number" name="gst" id="gst" class="form-control">
</div>
<div class="col-md-1">
</div>
<div class="col-md-5">
<label for="total" class="col-form-label">Total:</label>
<input type="number" name="total" id="total" class="form-control">
</div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
<label for="status" class="col-form-label">Status:</label> <label for="status" class="col-form-label">Status:</label>
<select name="status" id="status_id" class="form-control" required> <select name="status" id="status_id" class="form-control" required>
<option >Select Status</option> <option>Select Status</option>
<option value="1">Pending</option> <option value="Payment Pending">Payment Pending</option>
<option value="2">Complete</option> <option value="Paid">Paid</option>
</select> </select>
</div> </div>
<div class="col-md-1"> <div class="col-md-1">
@ -192,12 +209,20 @@
<div class="col-md-5"> <div class="col-md-5">
<label for="payment_method" class="col-form-label">Payment Method:</label> <label for="payment_method" class="col-form-label">Payment Method:</label>
<select name="payment_method" id="payment_method" class="form-control" required> <select name="payment_method" id="payment_method" class="form-control" required>
<option >Select Payment Method</option> <option>Select Payment Method</option>
<option value="1">Cash</option> <option value="Cash">Cash</option>
<option value="2">Online</option> <option value="Online">Online</option>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group row">
<div class="col-md-12">
<label for="remarks" class="col-form-label">Remarks:</label>
<!-- <input type="text" name="remarks" id="remarks" class="form-control"> -->
<textarea name="remarks" id="remarks" class="form-control"></textarea>
</div>
</div>
</form> </form>
</div> </div>
@ -210,7 +235,33 @@
</div><!-- /.modal --> </div><!-- /.modal -->
<script> <script>
function downloadFile(fileId, fileName) {
window.location.href = 'downloadFile/' + fileName;
}
$(document).ready(function() { $(document).ready(function() {
// Function to toggle payment method based on status
function togglePaymentMethod() {
var status = $('#status_id').val();
console.log(status);
if (status === 'Paid') {
$('#payment_method').prop('disabled', false); // Enable payment method
} else {
$('#payment_method').prop('disabled', true).val(''); // Disable payment method and clear value
}
}
// Trigger the toggle function on page load
togglePaymentMethod();
// Trigger the toggle function whenever the status changes
$('#status_id').on('change', function() {
togglePaymentMethod();
});
});
$(document).ready(function() {
$('#supplierid').select2();
var formActionUrl = ''; var formActionUrl = '';
// Event handler for file input change // Event handler for file input change
@ -218,13 +269,23 @@
var fileName = $(this).val().split('\\').pop(); // Get the file name var fileName = $(this).val().split('\\').pop(); // Get the file name
$('#file-name-display').text(fileName); // Display the file name $('#file-name-display').text(fileName); // Display the file name
}); });
function togglePaymentMethodEdit() {
var status = $('#status_id').val();
console.log(status);
if (status === 'Paid') {
$('#payment_method').prop('disabled', false); // Enable payment method
} else {
$('#payment_method').prop('disabled', true).val(''); // Disable payment method and clear value
}
}
$(document).on('click', '.edit-button', function() { $(document).on('click', '.edit-button', function() {
$('.modal-title').html('Edit Expense'); $('.modal-title').html('Edit Expense');
var expenseId = $(this).data('id'); var expenseId = $(this).data('id');
var supplier_list = [<?php echo $supplier_list; ?>]; var supplier_list = [<?php echo $supplier_list; ?>];
$('#supplierid').empty(); // Clear the supplier dropdown $('#supplierid').empty(); // Clear the supplier dropdown
$('#supplierid').append('<option >Select Supplier</option>'); $('#supplierid').append('<option>Select Supplier</option>');
supplier_list[0].forEach(function(supplier) { supplier_list[0].forEach(function(supplier) {
$('#supplierid').append('<option value="' + supplier.SupplierID + '">' + supplier.SupplierName + '</option>'); $('#supplierid').append('<option value="' + supplier.SupplierID + '">' + supplier.SupplierName + '</option>');
}); });
@ -239,21 +300,13 @@
$('#id').val(expense.id); $('#id').val(expense.id);
$('#transporterfile').val(''); // Clear the file input $('#transporterfile').val(''); // Clear the file input
$('#currentFileName').text(''); // Clear the file name display $('#currentFileName').text(''); // Clear the file name display
$('#supplierid').val(expense.supplier_id); $('#supplierid').val(expense.supplier_id).trigger('change');
$('#remarks').val(expense.remarks); $('#remarks').val(expense.remarks);
$('#cost').val(expense.cost); $('#cost').val(expense.cost);
$('#gst').val(expense.gst); $('#gst').val(expense.gst);
$('#total').val(expense.total); $('#total').val(expense.total);
if(expense.status == 1){ $('#status_id').val(expense.status);
$('#status_id').val("Pending"); $('#payment_method').val(expense.payment_method);
}else if(expense.status == 2){
$('#status_id').val("Completed");
}
if(expense.payment_method == 1){
$('#payment_method').val("Cash");
}else if(expense.payment_method == 2){
$('#payment_method').val("Online");
}
// Clear any existing file link and delete button // Clear any existing file link and delete button
$('#transporterfile').next('.download_button').remove(); $('#transporterfile').next('.download_button').remove();
@ -267,7 +320,7 @@
var fileUrl = '<?php echo base_url('uploads/'); ?>' + expense.transporter_file; var fileUrl = '<?php echo base_url('uploads/'); ?>' + expense.transporter_file;
// Create download link and delete button // Create download link and delete button
var fileLink = '<a class="download_button" href="' + fileUrl + '" target="_blank" download="' + expense.transporter_file + '">Download Current File</a>'; var fileLink = '<a class="download_button" href="' + fileUrl + '" target="_blank" download="' + expense.transporter_file + '"><i class=" fas fa-file-download"></i></a>';
var deleteButton = '<button id="deleteFile" class="delete_button" data-value="' + expense.id +'" data-id="' + expense.id + '" data-file="' + expense.transporter_file + '"><i class="fas fa-trash"></i></button>'; var deleteButton = '<button id="deleteFile" class="delete_button" data-value="' + expense.id +'" data-id="' + expense.id + '" data-file="' + expense.transporter_file + '"><i class="fas fa-trash"></i></button>';
// Add the file link and delete button // Add the file link and delete button
@ -275,10 +328,11 @@
} else { } else {
$('#transporterfile_name').val(''); // Clear hidden input if no file $('#transporterfile_name').val(''); // Clear hidden input if no file
} }
togglePaymentMethodEdit();
} }
});
}); });
});
$(document).on('click', '#addExpense', function () { $(document).on('click', '#addExpense', function () {
@ -287,7 +341,7 @@
$('.modal-title').html('Add Expense'); $('.modal-title').html('Add Expense');
$('#transporterfile').val(''); // Clear the file input $('#transporterfile').val(''); // Clear the file input
$('#currentFileName').text(''); // Clear the file name display $('#currentFileName').text(''); // Clear the file name display
$('#supplierid').val(''); $('#supplierid').val('').trigger('change');
$('#remarks').val(''); $('#remarks').val('');
$('#cost').val(''); $('#cost').val('');
$('#gst').val(''); $('#gst').val('');
@ -296,22 +350,26 @@
$('#payment_method').val(''); $('#payment_method').val('');
var supplier_list = [<?php echo $supplier_list; ?>]; var supplier_list = [<?php echo $supplier_list; ?>];
$('#supplierid').empty(); // Clear the supplier dropdown $('#supplierid').empty(); // Clear the supplier dropdown
$('#supplierid').append('<option >Select Supplier</option>'); $('#supplierid').append('<option>Select Supplier</option>');
supplier_list[0].forEach(function(supplier) { supplier_list[0].forEach(function(supplier) {
$('#supplierid').append('<option value="' + supplier.SupplierID + '">' + supplier.SupplierName + '</option>'); $('#supplierid').append('<option value="' + supplier.SupplierID + '">' + supplier.SupplierName + '</option>');
}); });
formActionUrl = '<?php echo base_url().'addExpense' ?>'; // Set action URL for adding formActionUrl = '<?php echo base_url().'addExpense' ?>'; // Set action URL for adding
togglePaymentMethodEdit();
}); });
// Handle form submission // Handle form submission
$('#tempClick').on('click', function(e) { $('#tempClick').on('click', function(e) {
e.preventDefault(); e.preventDefault();
// Native HTML5 form validation
if ($('#expenseForm')[0].checkValidity()) {
var formData = new FormData($('#expenseForm')[0]); // Use FormData to handle file upload var formData = new FormData($('#expenseForm')[0]); // Use FormData to handle file upload
console.log(formActionUrl); console.log(formActionUrl);
$.ajax({ $.ajax({
url: formActionUrl, // Use the correct URL based on the button clicked url: formActionUrl,
type: 'POST', type: 'POST',
data: formData, data: formData,
processData: false, processData: false,
@ -332,7 +390,12 @@
alert('An error occurred: ' + error); alert('An error occurred: ' + error);
} }
}); });
}); } else {
// If form is invalid, show native validation messages
$('#expenseForm')[0].reportValidity();
}
});
// DataTable initialization and date range filter logic (unchanged) // DataTable initialization and date range filter logic (unchanged)
var table = $('#expense_list_table').DataTable({ var table = $('#expense_list_table').DataTable({

View File

@ -59,6 +59,18 @@
<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
<style> <style>
/* Select2 Input Hight Set */
.select2-selection.select2-selection--single{
height: calc(1.5em + .9rem + 2px);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 37px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
top: 7px;
}
/* Select2 Height End */
th{ th{
background-color: #ddd !important; background-color: #ddd !important;
} }
@ -71,7 +83,7 @@
margin-left: -2%; margin-left: -2%;
} }
.form-group { .form-group {
padding-bottom: 4%; /* padding-bottom: 4%; */
} }
.badge { .badge {
color: red; color: red;

View File

@ -2,9 +2,11 @@
<script type="text/javascript" src="<?php echo base_url(); ?>public/assets/Autocomplete/jquery.autocomplete.js"></script> <script type="text/javascript" src="<?php echo base_url(); ?>public/assets/Autocomplete/jquery.autocomplete.js"></script>
<style> <style>
#MaterialRcvdDate, #InvoiceDate { #MaterialRcvdDate,
#InvoiceDate {
text-align: left; text-align: left;
} }
.autocomplete-suggestion { .autocomplete-suggestion {
cursor: pointer; cursor: pointer;
background-color: skyblue; background-color: skyblue;
@ -113,7 +115,7 @@
'PONO', 'PONO',
$options, $options,
set_value('PONO'), set_value('PONO'),
'class="form-control searchabledropdown" id="PONO" data-toggle="select2" required="true"' 'class="form-control searchabledropdown" id="PONO" data-toggle="select2" required="true" onchange="yourFunctionName()"'
); );
?> ?>
<span class="help-block"></span> <span class="help-block"></span>
@ -137,12 +139,13 @@
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label class="col-form-label">Invoice Date<span class="text-danger">*</span></label> <label class="col-form-label">Invoice Date<span class="text-danger">*</span></label>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="InvoiceDate" name="InvoiceDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off"> <input type="date" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="InvoiceDate" name="InvoiceDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off">
<div class="input-group-append"> <!-- <input type="text" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="InvoiceDate" name="InvoiceDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off"> -->
<!-- <div class="input-group-append">
<span class="input-group-text"> <span class="input-group-text">
<i class="ri-calendar-event-fill"></i> <i class="ri-calendar-event-fill"></i>
</span> </span>
</div> </div> -->
</div><!-- input-group --> </div><!-- input-group -->
<!-- <input type="date" class="form-control" id="invoiceDate" name="invoice_date" value="<?= isset($invoice_details['invoice_date']) ? $invoice_details['invoice_date'] : '' ?>" max="<?= date('d/m/Y'); ?>" required> --> <!-- <input type="date" class="form-control" id="invoiceDate" name="invoice_date" value="<?= isset($invoice_details['invoice_date']) ? $invoice_details['invoice_date'] : '' ?>" max="<?= date('d/m/Y'); ?>" required> -->
@ -158,12 +161,13 @@
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label class="col-form-label">Material Received Date<span class="text-danger">*</span></label> <label class="col-form-label">Material Received Date<span class="text-danger">*</span></label>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="MaterialRcvdDate" name="MaterialRcvdDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off"> <input type="date" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="MaterialRcvdDate" name="MaterialRcvdDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off">
<!-- <input type="text" class="form-control" data-provide="datepicker" data-date-format="dd/mm/yyyy" data-date-autoclose="true" id="MaterialRcvdDate" name="MaterialRcvdDate" data-date-end-date="<?= date('d/m/Y'); ?>" required autocomplete="off">
<div class="input-group-append"> <div class="input-group-append">
<span class="input-group-text"> <span class="input-group-text">
<i class="ri-calendar-event-fill"></i> <i class="ri-calendar-event-fill"></i>
</span> </span>
</div> </div> -->
</div> </div>
<?php <?php
// $data = array('name' => 'MaterialRcvdDate', 'value' => set_value('MaterialRcvdDate'), 'id' => 'MaterialRcvdDate', 'class' => 'form-control num', 'required' => 'true', 'autocomplete' => 'off'); // $data = array('name' => 'MaterialRcvdDate', 'value' => set_value('MaterialRcvdDate'), 'id' => 'MaterialRcvdDate', 'class' => 'form-control num', 'required' => 'true', 'autocomplete' => 'off');
@ -172,7 +176,7 @@
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-3"> <div class="form-group col-md-4">
<label class="col-form-label">Vechicle Number</label> <label class="col-form-label">Vechicle Number</label>
<?php <?php
@ -180,7 +184,7 @@
echo form_input($data); echo form_input($data);
?> ?>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-4">
<label class="col-form-label">Transporter Name</label> <label class="col-form-label">Transporter Name</label>
<?php <?php
$option = array(0 => 'Transporter Name'); $option = array(0 => 'Transporter Name');
@ -193,14 +197,14 @@
?> ?>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-4">
<label class="col-form-label">Driver Name</label> <label class="col-form-label">Driver Name</label>
<?php <?php
$data = array('name' => 'DriverName', 'value' => set_value('DriverName'), 'id' => 'DriverName', 'class' => 'form-control', 'maxlength' => '50', 'autocomplete' => 'off'); $data = array('name' => 'DriverName', 'value' => set_value('DriverName'), 'id' => 'DriverName', 'class' => 'form-control', 'maxlength' => '50', 'autocomplete' => 'off');
echo form_input($data); echo form_input($data);
?> ?>
</div> </div>
<div class="form-group col-md-3"> <div class="form-group col-md-4">
<label class="col-form-label">Driver Mobile Number</label> <label class="col-form-label">Driver Mobile Number</label>
<?php <?php
$data = array('name' => 'DriverMobileNumber', 'value' => set_value('DriverMobileNumber'), 'id' => 'DriverMobileNumber', 'class' => 'form-control', 'maxlength' => '50', 'autocomplete' => 'off'); $data = array('name' => 'DriverMobileNumber', 'value' => set_value('DriverMobileNumber'), 'id' => 'DriverMobileNumber', 'class' => 'form-control', 'maxlength' => '50', 'autocomplete' => 'off');
@ -270,7 +274,7 @@
</div> </div>
<div id="weight-calc-modal" class="modal fade" tabindex="-1" role="dialog" <div id="weight-calc-modal" 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"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title">Weight Calculator<span id="WeightTitle"></span></h4> <h4 class="modal-title">Weight Calculator<span id="WeightTitle"></span></h4>
@ -722,6 +726,7 @@
} }
</script> </script>
<script> <script>
$(document).ready(function() {
$("#weight-calc-modal").on("shown.bs.modal", function(e) { $("#weight-calc-modal").on("shown.bs.modal", function(e) {
var inx = $(e.relatedTarget).data('index'); var inx = $(e.relatedTarget).data('index');
var material = $(e.relatedTarget).data('material'); var material = $(e.relatedTarget).data('material');
@ -769,6 +774,7 @@
console.log("No file selected or file input not found."); console.log("No file selected or file input not found.");
} }
}); });
});
function modalSave() { function modalSave() {
var v1 = $("#GrossWeight").val(); var v1 = $("#GrossWeight").val();
@ -779,6 +785,9 @@
var inx = $("#CurrentInx").val(); var inx = $("#CurrentInx").val();
var fileInput = $("#WeightFile")[0]; // Get the file input element var fileInput = $("#WeightFile")[0]; // Get the file input element
console.log("inx");
console.log(inx);
if (inx !== undefined && inx !== '') { if (inx !== undefined && inx !== '') {
console.log("Saving values for index:", inx); console.log("Saving values for index:", inx);
@ -867,4 +876,191 @@
"autoWidth": false "autoWidth": false
}); });
}); });
function yourFunctionName() {
removeHidden();
$("#IGRappend").empty();
$('#txtRowCount').val('');
var id = $('#PONO').val();
var status = '';
var isOpenOrder = 0;
if (id != '-1') {
// $('#content').loader('show');
var y = <?php echo json_encode($PO_NO, JSON_PRETTY_PRINT) ?>;
$.each(y, function(idx, obj) {
if (id == obj.PONO) {
var baseUrl = '<?php echo base_url(); ?>purchaseorder/CreatePOPrint';
var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType;
$('#printLink').attr('href', newUrl);
$("#po").val(obj.PONO);
$("#Sup").val(obj.SupplierName);
$("#hiddenIsOpenOrder").val(obj.IsOpenOrder);
isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2);
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";
$('.help-block').text(formatted_IsOpenOrder);
var button_text_for_IGRDraftLink = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "Save as Draft IGR" : "Save as Open IGR";
$('#IGRDraftLink').text(button_text_for_IGRDraftLink);
//$("#Add").val(obj.Address);
$("#del").val(obj.DeliveryDate);
//$("#ser").val(obj.ServiceDescription);
status = obj.status;
ostatus = obj.OGR_Status;
formatted_PODate = obj.formatted_PODate;
formatted_IsOpenOrder = obj.formatted_IsOpenOrder;
}
});
$.ajax({
data: {
id: id
},
type: "POST",
url: "<?php echo base_url() ?>GetIGRLineItemDetails",
success: function(data) {
// console.log(data);
// $('#content').loader('hide');
// alert(data);
var trHTML = '';
var j = 0;
var showTable = false;
$.each(JSON.parse(data), function(i, item) {
showTable = true;
if (showTable) {
i = i + 1;
j = j + 1;
trHTML += '<tr>' +
'<td align="right">' + j + '</td>' +
'<td name="MaterialName" id="MaterialCode" >' + item.MaterialCode + '</td>' +
'<td>' + item.MaterialName + '</td>' +
'<td name="UOM">' + item.UOM + '</td>' +
'<td name="Quantity1' + i + '" id="Quantity_1' + i + '">' + item.Quantity + '</td>' +
'<td name="ReceivedQuantity' + i + '" id="ReceivedQuantity' + i + '">' + item.ReceivedQuantity + '</td>' +
'<td name="PendingQuantity' + i + '" id="PendingQuantity' + i + '">' + ((isOpenOrder === 0 || isNaN(isOpenOrder)) ? item.PendingQty : 0) + '</td>' +
'<td data-name="sel" ><input type="text" onchange="validateReceivedQuantity(' + i + ')"id="QuantityAsPerInvoice' + i + '" name="QuantityAsPerInvoice' + i + '" value="" onkeypress="return isNumberKey(event);" autocomplete="off"></td>' +
'<td><input type="text" id="Remark' + i + '" name="Remark' + i + '" class="form" onchange="SetRemarks(' + i + ')" autocomplete="off"> </td>' +
'<td><a target="_blank" data-toggle="modal" data-target="#weight-calc-modal" title="Weight Calculator" data-index="' + i + '" data-material="' + item.MaterialName + '"><i class="fa fa-solid fa-truck" style="text-align: center;"></i></a> </td>' +
'</tr>';
$('#txtRowCount').val(i);
$('<input>').attr({
type: 'hidden',
id: 'MaterialCode' + i,
value: item.MaterialCode,
name: 'MaterialCode' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtQuantityAsPerInvoice' + i,
name: 'txtQuantityAsPerInvoice' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'OrderedQuantity' + i,
value: item.Quantity,
name: 'OrderedQuantity' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtReceivedQuantity' + i,
name: 'txtReceivedQuantity' + i,
value: item.ReceivedQuantity
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtRemarks' + i,
name: 'txtRemarks' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtPendingQty' + i,
name: 'txtPendingQty' + i,
value: ((isOpenOrder === 0 || isNaN(isOpenOrder)) ? item.PendingQty : 0)
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtGrossWeight' + i,
value: item.GrossWeight,
name: 'txtGrossWeight' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtGrossWeightDate' + i,
value: item.GrossWeightDate,
name: 'txtGrossWeightDate' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtTareWeight' + i,
value: item.TareWeight,
name: 'txtTareWeight' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtTareWeightDate' + i,
value: item.TareWeightDate,
name: 'txtTareWeightDate' + i
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'txtNetWeight' + i,
value: item.NetWeight,
name: 'txtNetWeight' + i
}).appendTo('form');
$('<input>').attr({
type: 'file',
id: 'txtWeightFile' + i,
value: item.WeightFile,
name: 'txtWeightFile' + i,
style: 'display:none;' // This makes the input hidden
}).appendTo('form'); // Make sure the form has the id 'IGR'
if (item.PendingQty == 0.00) {
$('#QuantityAsPerInvoice' + i).attr('readonly', 'true');
}
$("#IGRLink").show();
} else {
if (JSON.parse(data).length == 1 && item.PendingQty == 0) {
$("#IGRLink").hide();
//alert('The Order is new completed!!');
}
}
});
$("#IGRappend").empty();
$('#IGRappend').append(trHTML);
}
});
if ((status == '<?php echo IGR_CREATED ?>' || status == '<?php echo MRIR_CREATED ?>' || status == '<?php echo MRIR_APPROVED ?>')) {
alert('The Order is completed!!');
$("#IGRLink").hide();
} else {
$("#IGRLink").show();
}
} else {
alert('Please Select the Purchase Order Number to Create IGR');
}
}
</script> </script>

View File

@ -13,6 +13,19 @@ if (!empty($Emp)) {
} }
} }
?> ?>
<style>
.btn-soft-primary {
color: white;
background-color: rgb(42, 206, 150);
border-color: rgb(42, 206, 150);
}
.btn-soft-primary:hover {
background-color: rgb(32, 176, 130); /* Slightly darker shade for hover */
border-color: rgb(32, 176, 130);
}
</style>
<div class="content-page"> <div class="content-page">
<div class="content"> <div class="content">
<!-- Start Content--> <!-- Start Content-->

View File

@ -1,6 +1,6 @@
<style> <style>
.modal { .modal {
padding-right: 25% ! important; /* padding-right: 25% ! important; */
} }
.num { .num {
@ -8,7 +8,7 @@
} }
.modal-content { .modal-content {
width: 800px ! important; /* width: 800px ! important; */
} }
th { th {
@ -250,7 +250,7 @@
<!-- box closed here --> <!-- box closed here -->
<!-- Igr modal fade --> <!-- Igr modal fade -->
<div id="Igrshow" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="Igrshow" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog modal-xl">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
@ -443,8 +443,8 @@
<!-- WeightCalculator modal fade --> <!-- WeightCalculator modal fade -->
<div id="WeightCalculator" class="modal fade" tabindex="-1" role="dialog" <div id="WeightCalculator" 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"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <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">Weight Calculator <span id="WeightTitle"></span></h4> <h4 class="modal-title">Weight Calculator <span id="WeightTitle"></span></h4>
<button type="button" class="close" data-dismiss="modal" <button type="button" class="close" data-dismiss="modal"
@ -570,7 +570,10 @@
<script> <script>
$(document).ready(function() {
$("#Igrshow").on("shown.bs.modal", function(e) { $("#Igrshow").on("shown.bs.modal", function(e) {
console.log("hello");
var inx = $(e.relatedTarget).data('id'); var inx = $(e.relatedTarget).data('id');
var igr = $(e.relatedTarget).data('userid'); var igr = $(e.relatedTarget).data('userid');
var igrstatus = $(e.relatedTarget).data('igrstatus'); var igrstatus = $(e.relatedTarget).data('igrstatus');
@ -619,7 +622,7 @@
} }
$("#tbleIGRAppend").empty(); $("#tbleIGRAppend").empty();
$('#content').loader('show'); // $('#content').loader('show');
$.ajax({ $.ajax({
data: { data: {
@ -629,7 +632,7 @@
url: "<?php echo base_url() ?>ViewIGRDetails", url: "<?php echo base_url() ?>ViewIGRDetails",
success: function(data) { success: function(data) {
// success:function(data) { // success:function(data) {
$('#content').loader('hide'); // $('#content').loader('hide');
var parsedData = JSON.parse(data); var parsedData = JSON.parse(data);
console.log(parsedData); console.log(parsedData);
if (parsedData['details'].length === 0) { if (parsedData['details'].length === 0) {
@ -825,11 +828,12 @@
} }
}); });
}); });
</script> });
</script>
<script> <script>
$('#update').click(function() { $('#update').click(function() {
$('#content').loader('show'); // $('#content').loader('show');
var igrno = $("#IGRNO1").val(); var igrno = $("#IGRNO1").val();
var materialrcv_date = $("#MaterialRcvdDate").val(); var materialrcv_date = $("#MaterialRcvdDate").val();
var inv_date = $("#Invoice_Date").val(); var inv_date = $("#Invoice_Date").val();
@ -843,13 +847,13 @@
type: "POST", type: "POST",
url: "<?php echo base_url() ?>UpdateIGR", url: "<?php echo base_url() ?>UpdateIGR",
success: function(data) { success: function(data) {
$('#content').loader('hide'); // $('#content').loader('hide');
alert(data); alert(data);
} }
}); });
}); });
$('#draftIGR').click(function() { $('#draftIGR').click(function() {
$('#content').loader('show'); // $('#content').loader('show');
var igrno = $("#IGRNO1").val(); var igrno = $("#IGRNO1").val();
var pono = $("#PONO1").val(); var pono = $("#PONO1").val();
var status = 0; var status = 0;
@ -905,14 +909,14 @@
processData: false, processData: false,
contentType: false, contentType: false,
success: function(data) { success: function(data) {
$('#content').loader('hide'); // $('#content').loader('hide');
alert(data); alert(data);
location.reload(); location.reload();
} }
}); });
}); });
$('#generateIGR').click(function() { $('#generateIGR').click(function() {
$('#content').loader('show'); // $('#content').loader('show');
var igrno = $("#IGRNO1").val(); var igrno = $("#IGRNO1").val();
var pono = $("#PONO1").val(); var pono = $("#PONO1").val();
var status = 1; var status = 1;
@ -965,7 +969,7 @@
processData: false, processData: false,
contentType: false, contentType: false,
success: function(data) { success: function(data) {
$('#content').loader('hide'); // $('#content').loader('hide');
alert(data); alert(data);
location.reload(); location.reload();
} }
@ -1122,6 +1126,7 @@
$("#TareWeightDate").val($("#clock").text()); $("#TareWeightDate").val($("#clock").text());
} }
} }
$(document).ready(function() {
$("#WeightCalculator").on("shown.bs.modal", function(e) { $("#WeightCalculator").on("shown.bs.modal", function(e) {
var inx = $(e.relatedTarget).data('index'); var inx = $(e.relatedTarget).data('index');
console.log(inx); console.log(inx);
@ -1185,7 +1190,7 @@
console.log("No file selected or file input not found."); console.log("No file selected or file input not found.");
} }
}); });
});
function modalSave() { function modalSave() {
var v1 = $("#GrossWeight").val(); var v1 = $("#GrossWeight").val();
@ -1427,7 +1432,7 @@
formData.append('count', counter); formData.append('count', counter);
formData.append('igr', igr); formData.append('igr', igr);
$('.content').loader('show'); // $('.content').loader('show');
$.ajax({ $.ajax({
data: formData, data: formData,
type: "POST", type: "POST",
@ -1441,7 +1446,7 @@
billNo = chars[1] != undefined ? chars[1] : ""; billNo = chars[1] != undefined ? chars[1] : "";
alert('File uploaded successfully.'); alert('File uploaded successfully.');
addToTable(counter, billNo, file.name); addToTable(counter, billNo, file.name);
$('.content').loader('hide'); // $('.content').loader('hide');
$('#billModel').modal('hide'); $('#billModel').modal('hide');
} }
} }
@ -1600,6 +1605,7 @@ function appendExistingFilesFileds(data){
[10, 20, 30, 50, "All"] [10, 20, 30, 50, "All"]
], // Rows per page options ], // Rows per page options
responsive: true, // Responsive table responsive: true, // Responsive table
order: [ order: [
[0, 'desc'] [0, 'desc']
], // Default ordering (column index 0, ascending) ], // Default ordering (column index 0, ascending)