Non-igr : GWM

This commit is contained in:
Gowtham M 2024-12-25 12:53:11 +05:30
parent 5a97a6ebeb
commit e6739be31c
4 changed files with 115 additions and 29 deletions

View File

@ -48,8 +48,17 @@ class Expense extends BaseController
$this->loadViews("expense_list", $this->global, $data, NULL); $this->loadViews("expense_list", $this->global, $data, NULL);
} }
private function generateSerialNumber($financialYear, $lastSerial)
{
// If no last serial number exists, start with 00001
$lastNumber = $lastSerial ? (int)explode('/', $lastSerial)[1] : 0;
$newNumber = str_pad($lastNumber + 1, 5, '0', STR_PAD_LEFT);
return "$financialYear/$newNumber";
}
public function addExpense() public function addExpense()
{ {
try{
$file = $this->request->getFile('transporterfile'); $file = $this->request->getFile('transporterfile');
$fileName = ''; $fileName = '';
if ($file->isValid() && !$file->hasMoved()) { if ($file->isValid() && !$file->hasMoved()) {
@ -59,6 +68,28 @@ class Expense extends BaseController
$status = $this->request->getPost('status'); $status = $this->request->getPost('status');
$paymentMethod = $status === 'Paid' ? $this->request->getPost('payment_method') : 0; $paymentMethod = $status === 'Paid' ? $this->request->getPost('payment_method') : 0;
// Fetch the current month
$currentMonth = date('n'); // 'n' gives the month without leading zeros (1-12)
// Calculate the current financial year
if ($currentMonth >= 4) { // If it's April or later
$startYear = date('Y'); // Current year
$endYear = $startYear + 1; // Next year
} else { // If it's January, February, or March
$endYear = date('Y'); // Current year
$startYear = $endYear - 1; // Previous year
}
// Format the financial year as "yy-yy"
$financialYear = substr($startYear, -2) . '-' . substr($endYear, -2);
// Fetch the last serial number for the financial year
$lastSerial = $this->expense_model->getLastSerialNumber($financialYear);
// Generate the next serial number
$newSerialNumber = $this->generateSerialNumber($financialYear, $lastSerial);
$data = [ $data = [
'transporter_file' => $fileName, 'transporter_file' => $fileName,
@ -70,14 +101,21 @@ class Expense extends BaseController
'sgst' => $this->request->getPost('sgst'), 'sgst' => $this->request->getPost('sgst'),
'igst' => $this->request->getPost('igst'), 'igst' => $this->request->getPost('igst'),
'total' => $this->request->getPost('total'), 'total' => $this->request->getPost('total'),
'bill_no' => $this->request->getPost('bill_no'),
'bill_date' => $this->request->getPost('bill_date'),
'serial_number' => $newSerialNumber,
]; ];
$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 {
return json_encode('false'); return json_encode('false');
} }
} catch (\Exception $e) {
// Handle the exception
echo "Error: " . $e->getMessage();
}
} }
public function getExpenseDetails() public function getExpenseDetails()
@ -117,6 +155,8 @@ class Expense extends BaseController
'sgst' => $this->request->getPost('sgst'), 'sgst' => $this->request->getPost('sgst'),
'igst' => $this->request->getPost('igst'), 'igst' => $this->request->getPost('igst'),
'total' => $this->request->getPost('total'), 'total' => $this->request->getPost('total'),
'bill_no' => $this->request->getPost('bill_no'),
'bill_date' => $this->request->getPost('bill_date'),
]; ];
if(!empty($fileName)){ if(!empty($fileName)){
$data['transporter_file'] = $fileName; $data['transporter_file'] = $fileName;

View File

@ -9,9 +9,20 @@ class Expense_model extends Model
protected $primaryKey = 'id'; // Primary key protected $primaryKey = 'id'; // Primary key
protected $allowedFields = [ protected $allowedFields = [
'transporter_file', 'supplier_id', 'remarks', 'item_description', 'cost', 'cgst', 'sgst', 'igst', 'total', 'serial_number' , 'transporter_file', 'supplier_id', 'remarks', 'item_description', 'cost', 'cgst', 'sgst', 'igst', 'total', 'bill_no' ,'bill_date'
]; ];
public function getLastSerialNumber($financialYear)
{
return $this->db->table('t_expense')
->select('serial_number')
->like('serial_number', "$financialYear/", 'after')
->orderBy('serial_number', 'DESC')
->limit(1)
->get()
->getRow('serial_number');
}
// Retrieve all active expenses // Retrieve all active expenses
public function getAllExpense($fromDate,$toDate) { public function getAllExpense($fromDate,$toDate) {
return $this->join('t_supplierdetailsn', 't_expense.supplier_id = t_supplierdetailsn.SupplierID') return $this->join('t_supplierdetailsn', 't_expense.supplier_id = t_supplierdetailsn.SupplierID')

View File

@ -47,25 +47,7 @@
align-items: center; 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> </style>
@ -267,7 +249,13 @@
var table = $('#po_list').DataTable({ var table = $('#po_list').DataTable({
dom: 'Blfrtip', dom: 'Blfrtip',
buttons: [ buttons: [
'excel', 'pdf' {
extend: 'excel',
text: 'Excel',
exportOptions: {
columns: ':not(:last-child)' // Exclude the last column
}
}
], ],
pageLength: 10, pageLength: 10,
lengthMenu: [ lengthMenu: [

View File

@ -55,6 +55,11 @@
background-color: white; background-color: white;
color: red; color: red;
} }
th,
td {
white-space: nowrap;
}
</style> </style>
<div class="content-page"> <div class="content-page">
<div class="content"> <div class="content">
@ -108,8 +113,11 @@
<thead> <thead>
<tr> <tr>
<th align="left" style="width: 10%;">Created Date</th> <th align="left" style="width: 10%;">Created Date</th>
<th align="left" style="width: 10%;">Non-IGRNO</th>
<th align="left" style="width: 20%;">Supplier Name</th> <th align="left" style="width: 20%;">Supplier Name</th>
<th align="left" style="width: 25%;">Item Description</th> <th align="left" style="width: 25%;">Item Description</th>
<th align="left" style="width: 20%;">Bill No</th>
<th align="left" style="width: 20%;">Bill Date</th>
<th align="left" style="width: 7%;">Cost</th> <th align="left" style="width: 7%;">Cost</th>
<th align="left" style="width: 5%;">CGST</th> <th align="left" style="width: 5%;">CGST</th>
<th align="left" style="width: 5%;">SGST</th> <th align="left" style="width: 5%;">SGST</th>
@ -138,7 +146,7 @@
} }
?> ?>
<td><?php echo $cdate; ?></td> <td><?php echo $cdate; ?></td>
<!-- <td><?php echo $record['id']; ?></td> --> <td><?php echo $record['serial_number']; ?></td>
<td class="expandable-td"> <td class="expandable-td">
<div class="text-container" style="max-height: 20px; overflow: hidden;"> <div class="text-container" style="max-height: 20px; overflow: hidden;">
<?php echo $record['SupplierName']; ?> <?php echo $record['SupplierName']; ?>
@ -151,6 +159,13 @@
<?php echo $record['item_description']; ?> <?php echo $record['item_description']; ?>
</div> </div>
</td> </td>
<td><?php echo $record['bill_no']; ?></td>
<td>
<?php
$date = new DateTime($record['bill_date']);
echo $date->format('d-m-Y');
?>
</td>
<td><?php echo $record['cost']; ?></td> <td><?php echo $record['cost']; ?></td>
<td><?php echo $record['cgst']; ?></td> <td><?php echo $record['cgst']; ?></td>
<td><?php echo $record['sgst']; ?></td> <td><?php echo $record['sgst']; ?></td>
@ -214,12 +229,29 @@
<textarea name="item_description" id="item_description" class="form-control"></textarea> <textarea name="item_description" id="item_description" class="form-control"></textarea>
</div> </div>
</div> </div>
<div class="form-group row">
<div class="col-md-3">
<label for="bill_no" class="col-form-label">Bill No</label>
</div>
<div class="col">
<input type="text" name="bill_no" id="bill_no" class="form-control">
</div>
</div>
<div class="form-group row">
<div class="col-md-3">
<label for="bill_date" class="col-form-label">Bill Date</label>
</div>
<div class="col">
<input type="date" name="bill_date" id="bill_date" class="form-control" required>
</div>
</div>
<div class="form-group row"> <div class="form-group row">
<div class="col-md-3"> <div class="col-md-3">
<label for="cost" class="col-form-label">Cost</label> <label for="cost" class="col-form-label">Cost</label>
</div> </div>
<div class="col"> <div class="col">
<input type="number" name="cost" id="cost" class="form-control" required onchange="totalCalculate()"> <input type="text" name="cost" id="cost" class="form-control" required onchange="totalCalculate()">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
@ -227,7 +259,7 @@
<label for="cost" class="col-form-label">CGST</label> <label for="cost" class="col-form-label">CGST</label>
</div> </div>
<div class="col"> <div class="col">
<input type="number" name="cgst" id="cgst" class="form-control" onchange="totalCalculate()"> <input type="text" name="cgst" id="cgst" class="form-control" onchange="totalCalculate()">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
@ -235,7 +267,7 @@
<label for="cost" class="col-form-label">SGST</label> <label for="cost" class="col-form-label">SGST</label>
</div> </div>
<div class="col"> <div class="col">
<input type="number" name="sgst" id="sgst" class="form-control" onchange="totalCalculate()"> <input type="text" name="sgst" id="sgst" class="form-control" onchange="totalCalculate()">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
@ -243,7 +275,7 @@
<label for="igst" class="col-form-label">IGST</label> <label for="igst" class="col-form-label">IGST</label>
</div> </div>
<div class="col"> <div class="col">
<input type="number" name="igst" id="igst" class="form-control" onchange="totalCalculate()"> <input type="text" name="igst" id="igst" class="form-control" onchange="totalCalculate()">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
@ -251,7 +283,7 @@
<label for="cost" class="col-form-label">Total</label> <label for="cost" class="col-form-label">Total</label>
</div> </div>
<div class="col"> <div class="col">
<input type="number" name="total" id="total" class="form-control"> <input type="text" name="total" id="total" class="form-control">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
@ -287,6 +319,13 @@
</div><!-- /.modal --> </div><!-- /.modal -->
<script> <script>
const dateInput = document.getElementById('bill_date');
dateInput.addEventListener('change', function () {
const date = new Date(dateInput.value);
const formattedDate = date.toLocaleDateString('en-GB').split('/').join('-');
console.log('Formatted Date:', formattedDate);
});
function downloadFile(fileId, fileName) { function downloadFile(fileId, fileName) {
window.location.href = 'downloadFile/' + fileName; window.location.href = 'downloadFile/' + fileName;
} }
@ -365,6 +404,8 @@
$('#igst').val(expense.igst); $('#igst').val(expense.igst);
$('#total').val(expense.total); $('#total').val(expense.total);
$('#status_id').val(expense.status); $('#status_id').val(expense.status);
$('#bill_no').val(expense.bill_no);
$('#bill_date').val(expense.bill_date);
// 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();
@ -470,7 +511,13 @@
var table = $('#expense_list_table').DataTable({ var table = $('#expense_list_table').DataTable({
dom: 'Blfrtip', dom: 'Blfrtip',
buttons: [ buttons: [
'excel', 'pdf' {
extend: 'excel',
text: 'Excel',
exportOptions: {
columns: ':not(:last-child)' // Exclude the last column
}
}
], ],
pageLength: 10, pageLength: 10,
lengthMenu: [ lengthMenu: [