bbone/application/modules/Asset/models/Asset_model.php
2023-06-24 16:02:54 +05:30

268 lines
10 KiB
PHP

<?php
class Asset_model extends MY_Model {
public function get_category_wise_assets($business_id)
{
$this->db->select('A.* , A.category as category_value , SUM(A.cost) as total , SUM(A.current_cost) as total_current_cost , categories.name as category_name ');
$this->db->group_by('A.category');
$this->db->from('asset A');
$this->db->join('categories', 'categories.id = A.category', 'left');
$this->db->where('A.business_id', $business_id);
$this->db->order_by('A.id','ASC');
$this->db->where('A.is_active', 1);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function get_assets($business_id , $category , $purchase_date_from = null , $purchase_date_to = null)
{
$this->db->select('A.* , categories.name as category_name , third_parties.name as manufacturer_name ,tp.name as supplier_name , locations.location as location_name , status.display_name as status_display_name');
$this->db->from('asset A');
$this->db->join('categories', 'categories.id = A.category', 'left');
$this->db->join('third_parties', 'third_parties.id = A.manufacturer', 'left');
$this->db->join('third_parties as tp', 'tp.id = A.supplier', 'left');
$this->db->join('locations', 'locations.id = A.location', 'left');
$this->db->join('status', 'status.id = A.status', 'left');
$this->db->where('A.business_id', $business_id);
$this->db->where('md5(A.category)', $category);
if($purchase_date_from != null && $purchase_date_to != null)
{
$this->db->where('A.purchase_date >=', $purchase_date_from);
$this->db->where('A.purchase_date <=', $purchase_date_to);
}
$this->db->order_by('A.id','ASC');
$this->db->where('A.is_active', 1);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function get_asset_by_md5_id($id,$business_id)
{
$this->db->select('A.* , categories.name as category_name , third_parties.name as manufacturer_name ,tp.name as supplier_name , locations.location as location_name, status.display_name as status_display_name ');
$this->db->from('asset A');
$this->db->join('categories', 'categories.id = A.category', 'left');
$this->db->join('third_parties', 'third_parties.id = A.manufacturer', 'left');
$this->db->join('third_parties as tp', 'tp.id = A.supplier', 'left');
$this->db->join('locations', 'locations.id = A.location', 'left');
$this->db->join('status', 'status.id = A.status', 'left');
$this->db->where('A.business_id', $business_id);
$this->db->where('md5(A.id)', $id);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function get_by_category_id($id)
{
$this->db->select();
$this->db->from('categories');
$this->db->where('id', $id);
$this->db->where('is_active', 1);
$query = $this->db->get();
$query = $query->result_array();
return $query;
}
public function get_by_asset_id($id,$table,$business_id)
{
$this->db->select();
$this->db->from($table);
$this->db->where('business_id', $business_id);
$this->db->where('md5(asset_id)', $id);
$this->db->where('is_active', 1);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function get_asset__id($id,$table,$business_id)
{
$this->db->select();
$this->db->from($table);
$this->db->where('business_id', $business_id);
$this->db->where('md5(id)', $id);
$this->db->where('is_active', 1);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function get_amc_with_join($id,$business_id)
{
$this->db->select('A.* , third_parties.name as service_provider_name ');
$this->db->from('amc A');
$this->db->join('third_parties', 'third_parties.id = A.service_provider', 'left');
$this->db->where('A.business_id', $business_id);
$this->db->where('md5(A.asset_id)', $id);
$this->db->where('A.is_active', 1);
$this->db->where('A.type', 3);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function get_amc_by_id_with_join($id)
{
$this->db->select('A.* , third_parties.name as service_provider_name ');
$this->db->from('amc A');
$this->db->join('third_parties', 'third_parties.id = A.service_provider', 'left');
$this->db->where('md5(A.id)', $id);
$this->db->where('A.is_active', 1);
$this->db->where('A.type', 3);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function get_insurance_with_join($id,$business_id)
{
$this->db->select('A.* , third_parties.name as insurance_company_name ');
$this->db->from('amc A');
$this->db->join('third_parties', 'third_parties.id = A.insurance_company', 'left');
$this->db->where('A.business_id', $business_id);
$this->db->where('md5(A.asset_id)', $id);
$this->db->where('A.is_active', 1);
$this->db->where('A.type', 4);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function get_insurance_by_id_with_join($id)
{
$this->db->select('A.* , third_parties.name as insurance_company_name ');
$this->db->from('amc A');
$this->db->join('third_parties', 'third_parties.id = A.insurance_company', 'left');
$this->db->where('md5(A.id)', $id);
$this->db->where('A.is_active', 1);
$this->db->where('A.type', 4);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function delete_by_md5_id($id,$business_id,$table)
{
$this->db->where('md5(id)', $id);
$this->db->where('business_id', $business_id);
$this->db->set('is_active',0);
$this->db->update($table);
return;
}
public function get_asset_id($id,$table,$business_id)
{
$this->db->select();
$this->db->from($table);
$this->db->where('business_id', $business_id);
$this->db->where('md5(id)', $id);
$this->db->where('is_active', 1);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function get_latest_asset_value($asset_id,$business_id)
{
$this->db->select();
$this->db->from('asset_value');
$this->db->where('asset_id', $asset_id);
$this->db->where('business_id', $business_id);
$this->db->where('is_active', 1);
$this->db->order_by('id', 'DESC');
$this->db->limit(1);
$query = $this->db->get();
$query = $query->row();
return $query;
}
public function amc_insurance_report($type,$business_id)
{
$query = $this->db->query("SELECT amc.*,service_provider.name as service_provider_name,insurance_company.name as insurance_company_name,
asset.id,asset.name as asset_name,asset.tag,asset.serial,asset.model,asset.purchase_date,asset.cost as purchase_cost,status.display_name as status , categories.name as category,locations.location as location,manufacturer.name as manufacturer, Supplier.name as Supplier
FROM asset
LEFT JOIN amc ON asset.id = amc.asset_id AND amc.created_at = (SELECT MAX(amc.created_at) FROM amc
WHERE asset.id = amc.asset_id and amc.is_active=1 and amc.type=".$type.")
LEFT JOIN third_parties as service_provider ON amc.service_provider = service_provider.id
LEFT JOIN third_parties as insurance_company ON amc.insurance_company = insurance_company.id
LEFT JOIN status ON asset.status = status.id
LEFT JOIN categories ON asset.category = categories.id
LEFT JOIN locations ON asset.location = locations.id
LEFT JOIN third_parties as manufacturer ON asset.manufacturer = manufacturer.id
LEFT JOIN third_parties as Supplier ON asset.Supplier = Supplier.id
where asset.business_id =".$business_id." and asset.is_active=1");
$result =$query->result_array();
return $result;
}
public function depreciation_report($business_id)
{
$query = $this->db->query("SELECT asset_value.*,
asset.id,asset.name as asset_name,asset.tag,asset.serial,asset.current_cost,asset.model,asset.purchase_date,asset.cost as purchase_cost,status.display_name as status , categories.name as category,locations.location as location,manufacturer.name as manufacturer, Supplier.name as Supplier
FROM asset
LEFT JOIN asset_value ON asset.id = asset_value.asset_id AND asset_value.created_at = (SELECT MAX(asset_value.created_at) FROM asset_value WHERE asset.id = asset_value.asset_id and asset_value.is_active=1)
LEFT JOIN status ON asset.status = status.id
LEFT JOIN categories ON asset.category = categories.id
LEFT JOIN locations ON asset.location = locations.id
LEFT JOIN third_parties as manufacturer ON asset.manufacturer = manufacturer.id
LEFT JOIN third_parties as Supplier ON asset.Supplier = Supplier.id
where asset.business_id =".$business_id." and asset.is_active=1");
$result =$query->result_array();
return $result;
}
public function get_third_party_value_by_md5_id($business_id , $type)
{
$this->db->select('B.* , state.name as state ');
$this->db->from('third_parties B');
$this->db->join('state', 'state.id = B.state', 'left');
$this->db->where('B.type', $type);
$this->db->where('business_id', $business_id);
$this->db->where('is_active', 1);
$query = $this->db->get();
$query = $query->result();
return $query;
}
public function delete_user_by_md5_id($id,$business_id)
{
$this->db->where('md5(id)', $id);
if ($business_id != NULL) {
$this->db->where('business_id', $business_id);
}
$this->db->set('is_active',0);
$this->db->update('users');
return;
}
public function get_third_party_by_md5_id($id)
{
$this->db->select('B.* , state.id as state_id , state.name as state_name');
$this->db->from('third_parties B');
$this->db->join('state', 'state.id = B.state', 'left');
$this->db->where('md5(B.id)', $id);
$query = $this->db->get();
$query = $query->row();
return $query;
}
function get_by_id($id,$table)
{
$this->db->select();
$this->db->from($table);
$this->db->where('md5(id)', $id);
$query = $this->db->get();
$query = $query->row();
return $query;
}
}