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

This commit is contained in:
vadivelJ96 2025-01-29 09:30:16 +05:30
commit 24037def97
10 changed files with 81 additions and 33 deletions

View File

@ -18,6 +18,7 @@ class Expense extends BaseController
$this->expense_model = new Expense_model(); $this->expense_model = new Expense_model();
$this->supplier_model = new Supplier_model(); $this->supplier_model = new Supplier_model();
$this->session = session(); $this->session = session();
$this->session = session();
helper('form'); helper('form');
$this->isLoggedIn(); $this->isLoggedIn();
} }
@ -86,8 +87,9 @@ class Expense extends BaseController
// Generate the next serial number // Generate the next serial number
$newSerialNumber = $this->generateSerialNumber($financialYear, $lastSerial); $newSerialNumber = $this->generateSerialNumber($financialYear, $lastSerial);
$sesn_uid = $this->session->get('userId');
$data = [ $data = [
'created_by' => $sesn_uid,
'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'),
@ -141,9 +143,9 @@ 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
} }
$sesn_uid = $this->session->get('userId');
$data = [ $data = [
'updated_by' =>$sesn_uid,
'supplier_id' => $this->request->getPost('supplierid'), 'supplier_id' => $this->request->getPost('supplierid'),
'remarks' => $this->request->getPost('remarks'), 'remarks' => $this->request->getPost('remarks'),
'item_description' => $this->request->getPost('item_description'), 'item_description' => $this->request->getPost('item_description'),

View File

@ -156,7 +156,7 @@ class Inwardgateregister extends BaseController
}); });
$data['emp_data'] = []; $data['emp_data'] = [];
// $data['emp_data'] = $this->inwardgateregister_model->getAdditionalIGRFile(); // $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); $this->loadViews("inwardgateregister", $this->global, $data, NULL);
} }

View File

@ -410,18 +410,24 @@ class Rawmaterialdetails extends BaseController
$query = $this->rawmaterialdetails_model->insertvalueintoconfig($config); $query = $this->rawmaterialdetails_model->insertvalueintoconfig($config);
} }
// on 28/jan/2025. both add and edit. category condition added.
function checkmaterial() function checkmaterial()
{ {
$data = $this->request->getPost(); $data = $this->request->getPost();
$materialCode = $data['materialCode'] ?? ''; $materialCode = $data['materialCode'] ?? '';
$materialName = str_replace(' ', '', $data['materialName']); $materialName = str_replace(' ', '', $data['materialName']);
$materialCategory = $data['materialCategory'] ?? '';
$this->rawmaterialdetails_model = new rawmaterialdetails_model();; $query = $this->rawmaterialdetails_model->checkMaterialExists($materialCode , $materialName , $materialCategory);
$query = $this->rawmaterialdetails_model->checkMaterialExists($materialCode , $materialName);
return $this->response->setJSON($query); return $this->response->setJSON($query);
// if (!empty($query)) {
// foreach ((array)$query as $q) {
// $text .= $q['MaterialName'] . " " . ($q['IsActive'] == 1 ? '' : ' ( Inactive ) ') . "<br>";
// }
// }
} }

View File

@ -9,7 +9,7 @@ class Expense_model extends Model
protected $primaryKey = 'id'; // Primary key protected $primaryKey = 'id'; // Primary key
protected $allowedFields = [ 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) public function getLastSerialNumber($financialYear)
@ -24,9 +24,16 @@ class Expense_model extends Model
// Retrieve all active expenses // Retrieve all active expenses
public function getAllExpense($fromDate,$toDate) { 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('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.isactive', 1)
->where('t_expense.created_on >=',"$fromDate") ->where('t_expense.created_on >=',"$fromDate")
->orderBy('t_expense.created_on', 'DESC') ->orderBy('t_expense.created_on', 'DESC')

View File

@ -372,18 +372,42 @@ class Inwardgateregister_model extends Model
function ViewigrListing($fromDate,$toDate) function ViewigrListing($fromDate,$toDate)
{ {
$subQuery = $this->db->table('t_igr_remarkes') $subQuery1 = $this->db->table('t_igr_remarkes')
->select('COUNT(id)') ->select('COUNT(id)')
->where('igr_no = igr.IGRNo') ->where('igr_no = igr.IGRNo')
->getCompiledSelect(); ->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') $builder = $this->db->table('t_igr_master igr')
->select("igr.*, PO.IsOpenOrder, PO.DeliveryDate, sup.SupplierName, PO.POType, ->select("igr.*, PO.IsOpenOrder, PO.DeliveryDate, sup.SupplierName, PO.POType,
trans.name as TransporterName, trans.name as TransporterName,
SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity, SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity,
SUM(IGRD.NetWeight) as NetWeight, SUM(IGRD.NetWeight) as NetWeight,
COUNT(IGRD.IGRNo) as itemCount, 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_purchaseorder_master PO', 'igr.PONO = PO.PONO')
->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID')
->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left') ->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left')
@ -391,13 +415,15 @@ class Inwardgateregister_model extends Model
->where('igr.IGRStatus !=', MRIR_CREATED) ->where('igr.IGRStatus !=', MRIR_CREATED)
->where('Date(igr.CreatedDate) >=', "$fromDate") ->where('Date(igr.CreatedDate) >=', "$fromDate")
->where('Date(igr.CreatedDate) <=', "$toDate") ->where('Date(igr.CreatedDate) <=', "$toDate")
// ->where('igr.IGRNo', "IGRNO-1627")
->groupBy('IGRD.IGRNo') ->groupBy('IGRD.IGRNo')
->orderBy('igr.CreatedDate', 'desc'); ->orderBy('igr.CreatedDate', 'desc');
$query = $builder->get(); $query = $builder->get();
$result = $query->getResult(); $result = $query->getResult();
// echo $this->db->getLastQuery()->getQuery();die;
// dd($result);
// old - issue in t_igr_remarkes join // old - issue in t_igr_remarkes join

View File

@ -327,17 +327,20 @@ class Rawmaterialdetails_model extends Model
// $this->db->update('T_PurchaseOrderDetails', $POInfo); // $this->db->update('T_PurchaseOrderDetails', $POInfo);
// return $this->db->affectedRows(); // 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') $builder = $this->db->table('t_materialmaster')
->select('MaterialCode,MaterialName,MaterialType,Category,IsActive'); ->select('MaterialCode,MaterialName,MaterialType,Category,IsActive');
if(!empty($materialCode)){ if(!empty($materialCode)){
$builder = $builder->where('MaterialCode !=' , $materialCode); $builder = $builder->where('MaterialCode !=' , $materialCode);
} }
$builder->where('Category' , $materialCategory);
$builder->where('REPLACE(MaterialName, " ", "")' , $materialName); $builder->where('REPLACE(MaterialName, " ", "")' , $materialName);
$query = $builder->get(); $query = $builder->get();
if ($query->getNumRows() > 0) { if ($query->getNumRows() > 0) {
return $query->getResultArray(); return $query->getResultArray();
} else { } else {

View File

@ -304,7 +304,7 @@
var materialName = $('#MaterialName').val().trim(); var materialName = $('#MaterialName').val().trim();
var materialCode = ''; var materialCode = '';
var materialCategory = $('#MatCate').val();
if(materialName == ''){ if(materialName == ''){
return; return;
} }
@ -315,7 +315,7 @@
$.ajax({ $.ajax({
data: { data: {
materialCode, materialCode,
materialName materialName,materialCategory
}, },
type: "POST", type: "POST",
url: "<?php echo base_url(); ?>materialExist", url: "<?php echo base_url(); ?>materialExist",

View File

@ -442,6 +442,7 @@ if ($total <= $reorder) {
var materialName = $('#MaterialName').val(); var materialName = $('#MaterialName').val();
var materialCode = $('#RMcode').val(); var materialCode = $('#RMcode').val();
var materialCategory = $('#MaterialCategory').val();
if(materialName == ''){ if(materialName == ''){
return; return;
@ -453,7 +454,8 @@ if ($total <= $reorder) {
$.ajax({ $.ajax({
data: { data: {
materialCode, materialCode,
materialName materialName,
materialCategory
}, },
type: "POST", type: "POST",
url: "<?php echo base_url(); ?>materialExist", url: "<?php echo base_url(); ?>materialExist",

View File

@ -119,11 +119,12 @@
<th align="left" style="width: 20%;">Bill No</th> <th align="left" style="width: 20%;">Bill No</th>
<th align="left" style="width: 20%;">Bill Date</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: 2%;">CGST</th>
<th align="left" style="width: 5%;">SGST</th> <th align="left" style="width: 2%;">SGST</th>
<th align="left" style="width: 5%;">IGST</th> <th align="left" style="width: 2%;">IGST</th>
<th align="left" style="width: 7%;">Total</th> <th align="left" style="width: 7%;">Total</th>
<th align="left" style="width: 7%;">Status</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> <th align="left" style="width: 8%;">Action</th>
</tr> </tr>
</thead> </thead>
@ -177,6 +178,7 @@
<td><?php echo $record['igst']; ?></td> <td><?php echo $record['igst']; ?></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['created_name']; ?></td>
<td> <td>
<?php if ($fileExists == 1) { ?> <?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;"> <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;">

View File

@ -131,8 +131,8 @@
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label class="col-form-label">Supplier Name</label> <label class="col-form-label">Supplier Name</label>
<?php <?php
$data = array('name' => 'SupplierName', 'value' => set_value('SupplierName'), 'id' => 'Sup', 'class' => 'form-control', 'readonly' => 'true'); $data = array('name' => 'SupplierName', 'value' => set_value('SupplierName'), 'id' => 'Sup', 'class' => 'form-control', 'readonly' => 'true','rows' => 3);
echo form_input($data); echo form_textarea($data);
?> ?>
</div> </div>
</div> </div>
@ -482,7 +482,7 @@
var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType; var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType;
$('#printLink').attr('href', newUrl); $('#printLink').attr('href', newUrl);
$("#po").val(obj.PONO); $("#po").val(obj.PONO);
$("#Sup").val(obj.SupplierName); $("#Sup").val(obj.SupplierName + "\n" + obj.Address);
$("#hiddenIsOpenOrder").val(obj.IsOpenOrder); $("#hiddenIsOpenOrder").val(obj.IsOpenOrder);
isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2); isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2);
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open"; var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";
@ -911,7 +911,7 @@
var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType; var newUrl = baseUrl + '?PONO=' + obj.PONO + '&ReqType=' + obj.POType;
$('#printLink').attr('href', newUrl); $('#printLink').attr('href', newUrl);
$("#po").val(obj.PONO); $("#po").val(obj.PONO);
$("#Sup").val(obj.SupplierName); $("#Sup").val(obj.SupplierName + "\n" + obj.Address);
$("#hiddenIsOpenOrder").val(obj.IsOpenOrder); $("#hiddenIsOpenOrder").val(obj.IsOpenOrder);
isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2); isOpenOrder = parseInt(obj.IsOpenOrder ? obj.IsOpenOrder : "0", 2);
var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open"; var formatted_IsOpenOrder = (isOpenOrder === 0 || isNaN(isOpenOrder)) ? "" : "Open";