ria/app/Models/Driver_model.php
2025-02-05 11:59:39 +00:00

97 lines
3.8 KiB
PHP
Executable File

<?php
namespace App\Models;
use CodeIgniter\Model;
class Driver_model extends Model
{
protected $table;
protected $primaryKey;
protected $allowedFields;
public function useDriverTable()
{
$this->table = 't_driver';
$this->primaryKey = 'driver_id';
$this->allowedFields = ['driver_id', 'driver_name', 'driver_mobile','created_on','created_by','updated_on','updated_by','isactive'];
return $this;
}
public function useDriverAttendanceTable()
{
$this->table = 't_driver_attendance';
$this->primaryKey = 'driver_attendance_id';
$this->allowedFields = ['driver_attendance_id','date','driver_id','invoice_number','vehicle_number','load_type','salary_amount','food_amount','created_on','created_by','updated_on','updated_by','isactive'];
return $this;
}
public function getDriverList()
{
if (empty($this->allowedFields)) { return []; }
$fields = implode(', ', array_map(function($field) {
return $this->table . '.' . $field;
}, $this->allowedFields));
$selectFields = "CONCAT_WS(' ', t_employee_details.FirstName, t_employee_details.LastName) AS FullName, t_employee_details.IsActive as employee_isactive, " . $fields;
return $this->select($selectFields)
->join('tbl_users', 'tbl_users.userId = ' . $this->table . '.created_by', 'left')
->join('t_employee_details', 'tbl_users.EmpID = t_employee_details.EmpID', 'left')
->findAll();
}
public function getDriverAttendanceList($driver_id,$from,$to){
if (empty($this->allowedFields)) { return []; }
$fields = implode(', ', array_map(function($field) {
return $this->table . '.' . $field;
}, $this->allowedFields));
$selectFields = "CONCAT_WS(' ', t_employee_details.FirstName, t_employee_details.LastName) AS FullName, t_employee_details.IsActive as employee_isactive, t_driver.driver_name,ip_clients.client_name as customer,ip_invoices.received_qty as quantity," . $fields;
return $this->select($selectFields)
->join('t_driver', 't_driver.driver_id = ' . $this->table . '.driver_id', 'left')
->join('tbl_users', 'tbl_users.userId = ' . $this->table . '.created_by', 'left')
->join('t_employee_details', 'tbl_users.EmpID = t_employee_details.EmpID', 'left')
->join('ip_invoices', 'ip_invoices.invoice_number = ' . $this->table . '.invoice_number', 'left')
->join('ip_clients', 'ip_clients.client_id = ip_invoices.client_id', 'left')
->where($this->table.'.date BETWEEN "'.$from.'" AND "'.$to.'"')
->where($this->table . '.driver_id', $driver_id)
->findAll();
}
function getInvoiceInfo()
{
$builder = $this->db->table('ip_invoices')
->select('invoice_number,invoice_id');
$query = $builder->get();
return $query->getResult();
}
function getDriverName($id)
{
$builder = $this->db->table('t_driver')
->select('driver_name')
->where('driver_id', $id);
$query = $builder->get()->getRow();
$driver_name = $query ? $query->driver_name : null;
return $driver_name;
}
function gatheredCustAndQty($invoice){
$builder = $this->db->table('ip_invoices')
->select('invoice_number,received_qty as quantity,ip_clients.client_name as customer')
->join('ip_clients', 'ip_clients.client_id = ip_invoices.client_id', 'left')
->where('invoice_number', $invoice);
$query = $builder->get();
return $query->getRowArray() ?: [];
}
}
?>