invoice listing

This commit is contained in:
vadivel J 2024-10-25 15:36:48 +05:30
parent fd5690f745
commit 2e9d7a914d
6 changed files with 78 additions and 79 deletions

View File

@ -395,6 +395,7 @@ $routes->get('getInvoiceAttachments', 'Sales::getInvoiceAttachments');
$routes->get('deleteAttachment', 'Sales::deleteAttachment');
$routes->post('saveAttachment', 'Sales::saveAttachment');
$routes->get('sales_invoice', 'Sales::sales_invoice');
$routes->post('sales_invoice', 'Sales::sales_invoice');
// transporter Routes
$routes->get('transporterListing', 'Supplier::transporterListing');

View File

@ -2554,6 +2554,9 @@ class Purchaseorder extends BaseController
function porelease()
{
$fromDate='';
$toDate='';
if ($this->request->getMethod() === 'GET')
{
$currentYear = date('Y');
@ -2568,13 +2571,14 @@ class Purchaseorder extends BaseController
$fromDate = date('Y-m-d', strtotime($fromDate));
$toDate = date('Y-m-d', strtotime($toDate));
}
$q = "RELEASE";
$this->global['pageTitle'] = 'Purchase Order Release';
// $data['Status']= $this->purchaseorder_model->getStatus();
$userID = $this->session->get('userId');
//print_r($data['Status']);echo "CON";
$appList = $this->purchaseorder_model->getPOList($q , $fromDate , $toDate);
$filteredAppList = array_filter($appList, function ($item) {
return $item->Status !== PO_DRAFT;
});

View File

@ -91,10 +91,32 @@ class Sales extends BaseController
// Sales Invoice List
function sales_invoice(){
$fromDate='';
$toDate='';
if ($this->request->getMethod() === 'GET')
{
$currentYear = date('Y');
$currentMonth = date('m');
$startOfMonth = "$currentYear-$currentMonth-01";
$endOfMonth = date('Y-m-t');
$fromDate = $startOfMonth;
$toDate = $endOfMonth;
} elseif ($this->request->getMethod() === 'POST') {
$fromDate = $this->request->getPost('fromDate');
$toDate = $this->request->getPost('toDate');
$fromDate = date('Y-m-d', strtotime($fromDate));
$toDate = date('Y-m-d', strtotime($toDate));
}
$this->global['pageTitle'] = 'Sales Invoice';
$data['sales_invoice'] = $this->ipinvoice_model->saleInvoiceListing();
$data['sales_invoice'] = $this->ipinvoice_model->saleInvoiceListing($fromDate , $toDate);
// echo "<pre>";
// print_r($data);die;
$data['fromDate'] = date('d-m-Y', strtotime($fromDate));
$data['toDate'] = date('d-m-Y', strtotime($toDate));
$this->loadViews("sales_invoice", $this->global, $data, NULL);
}

View File

@ -15,7 +15,7 @@ class Ipinvoice_model extends Model
* @param number $segment : This is pagination limit
* @return array $result : This is result
*/
function saleInvoiceListing()
function saleInvoiceListing($fromDate,$toDate)
{
$builder = $this->db->table('ip_invoices')
->select('ip_invoices.invoice_id, ip_invoices.user_id, ip_invoices.client_id,
@ -30,9 +30,10 @@ class Ipinvoice_model extends Model
->join('ip_users', 'ip_invoices.user_id = ip_users.user_id', 'left')
->join('ip_invoice_items', 'ip_invoices.invoice_id = ip_invoice_items.invoice_id', 'left')
->join('ip_products', 'ip_invoice_items.item_product_id = ip_products.product_id', 'left')
->join('ip_invoice_amounts', 'ip_invoices.invoice_id = ip_invoice_amounts.invoice_id', 'left')
->orderBy('ip_invoices.invoice_number', 'DESC')
->limit(100);
->join('ip_invoice_amounts', 'ip_invoices.invoice_id = ip_invoice_amounts.invoice_id', 'left');
$builder->where('ip_invoices.invoice_date_created >=', $fromDate );
$builder->where('ip_invoices.invoice_date_created <=', $toDate );
$builder->orderBy('ip_invoices.invoice_date_created', 'DESC');
$query = $builder->get();
$result = $query->getResult();

View File

@ -1607,6 +1607,8 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
->join('tbl_users tbl', 'rmast.createdby=tbl.userid', 'left')
->join('t_employee_details as emp', 'emp.empid=tbl.empid', 'left')
->join('t_departmentdetails as Dep', 'Dep.DEPCode=emp.Departmentcode', 'left');
// old Status Don't Delete it.
// if ($type == 'APPROVAL') {
@ -1625,6 +1627,10 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
// $builder->orWhere('mast.Status', PO_RELEASED);
// $builder->orderBy('mast.Status');
// }
$builder->where('mast.CreatedDate >=', $fromDate . '00:00:00');
$builder->where('mast.CreatedDate <=', $toDate .'00:00:00');
$builder->orderBy('mast.CreatedDate', 'DESC');
if ($type == 'RELEASE') {
$builder->orWhere('mast.Status', PO_DRAFT);
$builder->orWhere('mast.Status', PO_CREATED);
@ -1636,10 +1642,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
// $builder->orderBy('mast.Status');
}
$builder->where('mast.CreatedDate >=', $fromDate)
->where('mast.CreatedDate <=', $toDate);
$builder->orderBy('mast.CreatedDate', 'DESC');
$result = $builder->get();

View File

@ -133,18 +133,36 @@
<div class="row">
<div class="col-12">
<div class="card">
<form class="Date-filter-form" id="DateRangeFilter" style="margin-top: 14px;margin-bottom: -11px;margin-left: 33px;">
<input type="hidden" name="table" value="requisition">
<label for="fromDate">From:</label>
<input class="form-control date_range form-date-search" id="fromDate" name="fromDate" placeholder="Select From Date" autocomplete="off" required>
<form class="Date-filter-form" style="margin-top: 14px;margin-bottom: -11px;margin-left: 33px;"
method="post" action="<?= base_url('sales_invoice'); ?>">
<label for="fromDate">From:</label>
<input class="form-control date_range form-date-search"
value="<?= $fromDate?>"
id="fromDate" name="fromDate" placeholder="Select From Date" autocomplete="off" required>
<label for="toDate">To:</label>
<input class="form-control date_range to-date-search"
value="<?= $toDate ?>"
id="toDate" name="toDate" placeholder="Select To Date" autocomplete="off" required>
<button type="submit" class="range_search_button" >
<i class="fe-search" aria-hidden="true" class="icon-button" title="Search"></i>
</button>
<i class="fe-rotate-cw range_reset_button"
style="cursor:pointer;"
aria-hidden="true" class="icon-button" id="resetButton" title="Reset"></i>
<div class="error" id="error"></div>
</form>
<label for="toDate">To:</label>
<input class="form-control date_range to-date-search" id="toDate" name="toDate" placeholder="Select To Date" autocomplete="off" required>
<button type="submit" class="range_search_button" title="Search"><i class="fe-search" aria-hidden="true" class="icon-button" title="Search"></i></button>
<i class="fe-rotate-cw range_reset_button" aria-hidden="true" class="icon-button" id="resetButton" title="Reset"></i>
<div class="error" id="error"></div>
</form>
<div class="card-body">
<table id="datatable-buttosns" class="table dt-responsive nowrap w-100">
<thead>
@ -299,67 +317,14 @@
}
});
// Date range filter function
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var fromDate = $('#fromDate').val();
var toDate = $('#toDate').val();
console.log(fromDate); // e.g., 01-09-2024
console.log(toDate); // e.g., 08-09-2024
if (!fromDate || !toDate) {
return true; // If no dates selected, don't filter
}
// Reset button functionality
$("#resetButton").click(function() {
$("#fromDate").val('');
$("#toDate").val('');
window.location="sales_invoice"
});
// Convert the fromDate and toDate from dd-mm-yyyy to Date objects
var fromParts = fromDate.split("-");
var toParts = toDate.split("-");
var startDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]); // Year, month (0-based), day
var endDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);
// Adjust startDate to include the day before the selected fromDate
startDate.setDate(startDate.getDate() - 1);
// Ensure endDate includes the entire end date by setting time to the end of the day
endDate.setHours(23, 59, 59, 999);
// Get the date from the DataTable row (assuming it's in the first column in dd-mm-yyyy format)
var dateStr = data[0];
var dateParts = dateStr.split("-");
var rowDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
// Return true if the row date is within the range
return rowDate >= startDate && rowDate <= endDate;
}
);
// Handle form submission for the date range filter
$("#DateRangeFilter").submit(function(e) {
e.preventDefault();
table.draw(); // Redraw the table to apply the filter
});
// Reset button functionality
$("#resetButton").click(function() {
$("#fromDate").val('');
$("#toDate").val('');
table.draw(); // Redraw the table to clear the filter
});
// 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;
}
});
});
@ -499,6 +464,9 @@
formData.append('file_name[]', $(input).val());
});
// AJAX request using FormData
$.ajax({
url: '<?php echo base_url() ?>saveAttachment',