Merge branch 'new_theme' of bitbucket.org:venbainformationtechnology/ria into new_theme
This commit is contained in:
commit
24037def97
@ -18,6 +18,7 @@ class Expense extends BaseController
|
||||
$this->expense_model = new Expense_model();
|
||||
$this->supplier_model = new Supplier_model();
|
||||
$this->session = session();
|
||||
$this->session = session();
|
||||
helper('form');
|
||||
$this->isLoggedIn();
|
||||
}
|
||||
@ -86,8 +87,9 @@ class Expense extends BaseController
|
||||
// Generate the next serial number
|
||||
$newSerialNumber = $this->generateSerialNumber($financialYear, $lastSerial);
|
||||
|
||||
|
||||
$sesn_uid = $this->session->get('userId');
|
||||
$data = [
|
||||
'created_by' => $sesn_uid,
|
||||
'transporter_file' => $fileName,
|
||||
'supplier_id' => $this->request->getPost('supplierid'),
|
||||
'remarks' => $this->request->getPost('remarks'),
|
||||
@ -141,9 +143,9 @@ class Expense extends BaseController
|
||||
$fileName = $this->request->getPost('existing_file'); // Use existing file if no new file is uploaded
|
||||
}
|
||||
|
||||
|
||||
|
||||
$sesn_uid = $this->session->get('userId');
|
||||
$data = [
|
||||
'updated_by' =>$sesn_uid,
|
||||
'supplier_id' => $this->request->getPost('supplierid'),
|
||||
'remarks' => $this->request->getPost('remarks'),
|
||||
'item_description' => $this->request->getPost('item_description'),
|
||||
|
||||
@ -156,7 +156,7 @@ class Inwardgateregister extends BaseController
|
||||
});
|
||||
$data['emp_data'] = [];
|
||||
// $data['emp_data'] = $this->inwardgateregister_model->getAdditionalIGRFile();
|
||||
// print_r($data['PO_NO']);die;
|
||||
// dd($data['PO_NO']);die;
|
||||
|
||||
$this->loadViews("inwardgateregister", $this->global, $data, NULL);
|
||||
}
|
||||
|
||||
@ -410,18 +410,24 @@ class Rawmaterialdetails extends BaseController
|
||||
$query = $this->rawmaterialdetails_model->insertvalueintoconfig($config);
|
||||
}
|
||||
|
||||
// on 28/jan/2025. both add and edit. category condition added.
|
||||
function checkmaterial()
|
||||
{
|
||||
|
||||
$data = $this->request->getPost();
|
||||
$materialCode = $data['materialCode'] ?? '';
|
||||
$materialName = str_replace(' ', '', $data['materialName']);
|
||||
$materialCategory = $data['materialCategory'] ?? '';
|
||||
|
||||
$this->rawmaterialdetails_model = new rawmaterialdetails_model();;
|
||||
$query = $this->rawmaterialdetails_model->checkMaterialExists($materialCode , $materialName);
|
||||
|
||||
$query = $this->rawmaterialdetails_model->checkMaterialExists($materialCode , $materialName , $materialCategory);
|
||||
|
||||
return $this->response->setJSON($query);
|
||||
|
||||
// if (!empty($query)) {
|
||||
// foreach ((array)$query as $q) {
|
||||
// $text .= $q['MaterialName'] . " " . ($q['IsActive'] == 1 ? '' : ' ( Inactive ) ') . "<br>";
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ class Expense_model extends Model
|
||||
protected $primaryKey = 'id'; // Primary key
|
||||
|
||||
protected $allowedFields = [
|
||||
'serial_number' , 'transporter_file', 'supplier_id', 'remarks', 'item_description', 'cost', 'cgst', 'sgst', 'igst', 'total', 'bill_no' ,'bill_date','status'
|
||||
'serial_number' , 'transporter_file', 'supplier_id', 'remarks', 'item_description', 'cost', 'cgst', 'sgst', 'igst', 'total', 'bill_no' ,'bill_date','status','created_by','updated_by'
|
||||
];
|
||||
|
||||
public function getLastSerialNumber($financialYear)
|
||||
@ -24,9 +24,16 @@ class Expense_model extends Model
|
||||
|
||||
// Retrieve all active expenses
|
||||
public function getAllExpense($fromDate,$toDate) {
|
||||
|
||||
return $this->db->table('t_expense')
|
||||
|
||||
return $this->db->table('t_expense')
|
||||
->select([
|
||||
"t_expense.id","t_expense.serial_number","t_expense.transporter_file","t_expense.supplier_id","t_expense.item_description","t_expense.cost","t_expense.cgst","t_expense.sgst","t_expense.igst","t_expense.total","t_expense.remarks","t_expense.status","t_expense.payment_method","t_expense.created_on","t_expense.created_by","t_expense.updated_on","t_expense.updated_by","t_expense.isactive","t_expense.bill_no","t_expense.bill_date",
|
||||
"t_supplierdetailsn.SupplierName",
|
||||
"CONCAT_WS(' ', emp.FirstName, emp.LastName) as created_name"
|
||||
])
|
||||
->join('t_supplierdetailsn', 't_expense.supplier_id = t_supplierdetailsn.SupplierID', 'left')
|
||||
->join('tbl_users as creator', ' t_expense.created_by = creator.userid', 'left')
|
||||
->join('t_employee_details as emp', 'emp.empid=creator.empid', 'left')
|
||||
->where('t_expense.isactive', 1)
|
||||
->where('t_expense.created_on >=',"$fromDate")
|
||||
->orderBy('t_expense.created_on', 'DESC')
|
||||
|
||||
@ -372,18 +372,42 @@ class Inwardgateregister_model extends Model
|
||||
|
||||
function ViewigrListing($fromDate,$toDate)
|
||||
{
|
||||
$subQuery = $this->db->table('t_igr_remarkes')
|
||||
->select('COUNT(id)')
|
||||
->where('igr_no = igr.IGRNo')
|
||||
->getCompiledSelect();
|
||||
$subQuery1 = $this->db->table('t_igr_remarkes')
|
||||
->select('COUNT(id)')
|
||||
->where('igr_no = igr.IGRNo')
|
||||
->getCompiledSelect();
|
||||
|
||||
// Build subQuery2 dynamically for rate and tax based on POType
|
||||
$subQuery2 = "(CASE
|
||||
WHEN PO.POType = 'revenue' THEN (
|
||||
SELECT JSON_OBJECT('total_rate', SUM(POL.Rate), 'total_tax', AVG(tax.CGST + tax.SGST + tax.IGST))
|
||||
FROM t_igr_details IGRD
|
||||
LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode
|
||||
LEFT JOIN t_revenue_tax tax ON tax.LineItemNo = POL.LineItemNo
|
||||
WHERE IGRD.IGRNO = igr.IGRNO
|
||||
)
|
||||
WHEN PO.POType = 'service' THEN (
|
||||
SELECT JSON_OBJECT('total_rate', SUM(POL.Rate), 'total_tax', AVG(tax.CGST + tax.SGST + tax.IGST))
|
||||
FROM t_igr_details IGRD
|
||||
LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode
|
||||
LEFT JOIN t_service_tax tax ON tax.LineItemNo = POL.LineItemNo
|
||||
WHERE IGRD.IGRNO = igr.IGRNO
|
||||
)
|
||||
|
||||
ELSE NULL
|
||||
END)";
|
||||
|
||||
|
||||
// Main query
|
||||
$builder = $this->db->table('t_igr_master igr')
|
||||
->select("igr.*, PO.IsOpenOrder, PO.DeliveryDate, sup.SupplierName, PO.POType,
|
||||
trans.name as TransporterName,
|
||||
SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity,
|
||||
SUM(IGRD.NetWeight) as NetWeight,
|
||||
COUNT(IGRD.IGRNo) as itemCount,
|
||||
COALESCE(($subQuery), 0) as remark_count") // COALESCE to handle no matches
|
||||
COALESCE(($subQuery1), 0) as remark_count,
|
||||
JSON_EXTRACT(($subQuery2), '$.total_rate') as total_rate,
|
||||
JSON_EXTRACT(($subQuery2), '$.total_tax') as total_tax")
|
||||
->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO')
|
||||
->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID')
|
||||
->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left')
|
||||
@ -391,13 +415,15 @@ class Inwardgateregister_model extends Model
|
||||
->where('igr.IGRStatus !=', MRIR_CREATED)
|
||||
->where('Date(igr.CreatedDate) >=', "$fromDate")
|
||||
->where('Date(igr.CreatedDate) <=', "$toDate")
|
||||
// ->where('igr.IGRNo', "IGRNO-1627")
|
||||
->groupBy('IGRD.IGRNo')
|
||||
->orderBy('igr.CreatedDate', 'desc');
|
||||
|
||||
$query = $builder->get();
|
||||
$result = $query->getResult();
|
||||
|
||||
|
||||
$query = $builder->get();
|
||||
$result = $query->getResult();
|
||||
|
||||
|
||||
// echo $this->db->getLastQuery()->getQuery();die;
|
||||
// dd($result);
|
||||
|
||||
|
||||
// old - issue in t_igr_remarkes join
|
||||
|
||||
@ -327,17 +327,20 @@ class Rawmaterialdetails_model extends Model
|
||||
// $this->db->update('T_PurchaseOrderDetails', $POInfo);
|
||||
// return $this->db->affectedRows();
|
||||
// }
|
||||
function checkMaterialExists($materialCode , $materialName)
|
||||
{
|
||||
|
||||
|
||||
// on 28/jan/2025. both add and edit. category condition added.
|
||||
function checkMaterialExists($materialCode , $materialName ,$materialCategory)
|
||||
{
|
||||
$builder = $this->db->table('t_materialmaster')
|
||||
->select('MaterialCode,MaterialName,MaterialType,Category,IsActive');
|
||||
if(!empty($materialCode)){
|
||||
$builder = $builder->where('MaterialCode !=' , $materialCode);
|
||||
}
|
||||
$builder->where('Category' , $materialCategory);
|
||||
$builder->where('REPLACE(MaterialName, " ", "")' , $materialName);
|
||||
|
||||
$query = $builder->get();
|
||||
|
||||
if ($query->getNumRows() > 0) {
|
||||
return $query->getResultArray();
|
||||
} else {
|
||||
|
||||
@ -304,7 +304,7 @@
|
||||
|
||||
var materialName = $('#MaterialName').val().trim();
|
||||
var materialCode = '';
|
||||
|
||||
var materialCategory = $('#MatCate').val();
|
||||
if(materialName == ''){
|
||||
return;
|
||||
}
|
||||
@ -315,7 +315,7 @@
|
||||
$.ajax({
|
||||
data: {
|
||||
materialCode,
|
||||
materialName
|
||||
materialName,materialCategory
|
||||
},
|
||||
type: "POST",
|
||||
url: "<?php echo base_url(); ?>materialExist",
|
||||
|
||||
@ -442,6 +442,7 @@ if ($total <= $reorder) {
|
||||
|
||||
var materialName = $('#MaterialName').val();
|
||||
var materialCode = $('#RMcode').val();
|
||||
var materialCategory = $('#MaterialCategory').val();
|
||||
|
||||
if(materialName == ''){
|
||||
return;
|
||||
@ -453,7 +454,8 @@ if ($total <= $reorder) {
|
||||
$.ajax({
|
||||
data: {
|
||||
materialCode,
|
||||
materialName
|
||||
materialName,
|
||||
materialCategory
|
||||
},
|
||||
type: "POST",
|
||||
url: "<?php echo base_url(); ?>materialExist",
|
||||
|
||||
@ -119,11 +119,12 @@
|
||||
<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: 5%;">CGST</th>
|
||||
<th align="left" style="width: 5%;">SGST</th>
|
||||
<th align="left" style="width: 5%;">IGST</th>
|
||||
<th align="left" style="width: 2%;">CGST</th>
|
||||
<th align="left" style="width: 2%;">SGST</th>
|
||||
<th align="left" style="width: 2%;">IGST</th>
|
||||
<th align="left" style="width: 7%;">Total</th>
|
||||
<th align="left" style="width: 7%;">Status</th>
|
||||
<th align="left" style="width: 6%;">Created By</th>
|
||||
<th align="left" style="width: 8%;">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -177,6 +178,7 @@
|
||||
<td><?php echo $record['igst']; ?></td>
|
||||
<td><?php echo $record['total']; ?></td>
|
||||
<td><?php echo $record['status']; ?></td>
|
||||
<td><?php echo $record['created_name']; ?></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;">
|
||||
|
||||
@ -131,8 +131,8 @@
|
||||
<div class="form-group col-md-6">
|
||||
<label class="col-form-label">Supplier Name</label>
|
||||
<?php
|
||||
$data = array('name' => 'SupplierName', 'value' => set_value('SupplierName'), 'id' => 'Sup', 'class' => 'form-control', 'readonly' => 'true');
|
||||
echo form_input($data);
|
||||
$data = array('name' => 'SupplierName', 'value' => set_value('SupplierName'), 'id' => 'Sup', 'class' => 'form-control', 'readonly' => 'true','rows' => 3);
|
||||
echo form_textarea($data);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@ -482,7 +482,7 @@
|
||||
var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType;
|
||||
$('#printLink').attr('href', newUrl);
|
||||
$("#po").val(obj.PONO);
|
||||
$("#Sup").val(obj.SupplierName);
|
||||
$("#Sup").val(obj.SupplierName + "\n" + obj.Address);
|
||||
$("#hiddenIsOpenOrder").val(obj.IsOpenOrder);
|
||||
isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2);
|
||||
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";
|
||||
@ -911,7 +911,7 @@
|
||||
var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType;
|
||||
$('#printLink').attr('href', newUrl);
|
||||
$("#po").val(obj.PONO);
|
||||
$("#Sup").val(obj.SupplierName);
|
||||
$("#Sup").val(obj.SupplierName + "\n" + obj.Address);
|
||||
$("#hiddenIsOpenOrder").val(obj.IsOpenOrder);
|
||||
isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2);
|
||||
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user