150 lines
5.4 KiB
PHP
Executable File
150 lines
5.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class ConfRates extends Model
|
|
{
|
|
|
|
const IS_ACTIVE = 1;
|
|
const IS_INACTIVE = 2;
|
|
|
|
const UNIT_DAY = 1;
|
|
|
|
const LANE_EARTH = 1;
|
|
const LANE_SEA = 2;
|
|
|
|
const CRT_TYPE_SYSTEM = 0;
|
|
const CRT_TYPE_ADMIN = 1;
|
|
|
|
const defaultSelectedRates = "
|
|
rates.*
|
|
,(SELECT name FROM t_conf_lanes WHERE id = rates.lane LIMIT 1) as lane_name
|
|
,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = rates.origin_prov LIMIT 1) as origin_prov_name
|
|
,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = rates.origin_city LIMIT 1) as origin_city_name
|
|
,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = rates.dest_prov LIMIT 1) as dest_prov_name
|
|
,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = rates.dest_city LIMIT 1) as dest_city_name
|
|
,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = rates.dest_district LIMIT 1) as dest_district_name
|
|
,u.first_name as vdr_name,u.email as vdr_mail,vt.name as vhc_type_name
|
|
";
|
|
|
|
public static function listRates()
|
|
{
|
|
return DB::select("SELECT "
|
|
. ConfRates::defaultSelectedRates . "
|
|
FROM t_conf_rates as rates
|
|
LEFT JOIN t_users as u ON rates.vdr_id = u.id
|
|
LEFT JOIN t_vehicles_types as vt ON rates.vhc_type = vt.id
|
|
WHERE rates.dlt is null;");
|
|
}
|
|
|
|
public static function showRateById($rid)
|
|
{
|
|
return DB::select("SELECT "
|
|
. ConfRates::defaultSelectedRates . "
|
|
FROM t_conf_rates as rates
|
|
LEFT JOIN t_users as u ON rates.vdr_id = u.id
|
|
LEFT JOIN t_vehicles_types as vt ON rates.vhc_type = vt.id
|
|
WHERE rates.dlt is null AND rates.id = ?
|
|
LIMIT 1;", [$rid]);
|
|
}
|
|
|
|
public static function getRates()
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null;");
|
|
}
|
|
|
|
public static function getRateById($rid)
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND id = ? LIMIT 1;", [$rid]);
|
|
}
|
|
|
|
public static function getRateByCode($code)
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND code = ? LIMIT 1;", [$code]);
|
|
}
|
|
|
|
// // start packing list data
|
|
// public static function getRateByDestCity($ori_prid, $dest_ktid)
|
|
// {
|
|
// return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND is_active = " . ConfRates::IS_ACTIVE . " AND vdr_id != 0 AND vhc_type != 0 AND origin_prov = ? AND dest_city = ? GROUP BY long_time,sell_cbm,sell_kg ORDER BY fast_time ASC;", [$ori_prid, $dest_ktid]);
|
|
// }
|
|
|
|
// public static function getRateByDestDistrict($ori_prid, $dest_kcid)
|
|
// {
|
|
// return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND is_active = " . ConfRates::IS_ACTIVE . " AND vdr_id != 0 AND vhc_type != 0 AND origin_prov = ? AND dest_district = ? GROUP BY long_time,sell_cbm,sell_kg ORDER BY fast_time ASC;", [$ori_prid, $dest_kcid]);
|
|
// }
|
|
// // end packing list data
|
|
|
|
// // start without packing list data
|
|
public static function getRateByDestCity($ori_prid, $dest_ktid)
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND is_active = " . ConfRates::IS_ACTIVE . " AND vdr_id != 0 AND vhc_type != 0 AND origin_prov = ? AND dest_city = ? GROUP BY long_time,sell_ftl ORDER BY fast_time ASC;", [$ori_prid, $dest_ktid]);
|
|
}
|
|
|
|
public static function getRateByDestDistrict($ori_prid, $dest_kcid)
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND is_active = " . ConfRates::IS_ACTIVE . " AND vdr_id != 0 AND vhc_type != 0 AND origin_prov = ? AND dest_district = ? GROUP BY long_time,sell_ftl ORDER BY fast_time ASC;", [$ori_prid, $dest_kcid]);
|
|
}
|
|
// // end without packing list data
|
|
|
|
public static function getUniqRate($filter = [])
|
|
{
|
|
$params = [];
|
|
$select = '';
|
|
$where = '';
|
|
$join = '';
|
|
|
|
if (isset($filter['origin_prov_dest_ktid_dest_kcid_vhc_type_sell_ftl_long_time'])) {
|
|
$where .= ' AND ((origin_prov = ? AND dest_city = ?) OR (origin_prov = ? AND dest_district = ?)) AND vhc_type = ? AND sell_ftl = ? AND long_time = ?';
|
|
array_push($params, $filter['origin_prov'], $filter['dest_city'], $filter['origin_prov'], $filter['dest_district'], $filter['vhc_type'], $filter['sell_ftl'], $filter['long_time']);
|
|
}
|
|
|
|
if (isset($filter['is_active'])) {
|
|
$where .= ' AND rate.is_active = ?';
|
|
$params[] = $filter['is_active'];
|
|
}
|
|
|
|
return DB::select("SELECT
|
|
rate.*
|
|
$select
|
|
FROM t_conf_rates as rate
|
|
$join
|
|
WHERE rate.dlt is null
|
|
$where
|
|
ORDER BY fast_time ASC;", $params);
|
|
}
|
|
|
|
public static function checkVhcType($type_id)
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_rates WHERE dlt is null AND vhc_type = ? LIMIT 1;", [$type_id]);
|
|
}
|
|
|
|
public static function addRate($data)
|
|
{
|
|
$rid = DB::table("t_conf_rates")->insertGetId($data);
|
|
return $rid;
|
|
}
|
|
|
|
public static function updateRate($rid, $data)
|
|
{
|
|
return DB::table("t_conf_rates")->where("id", $rid)->update($data);
|
|
}
|
|
|
|
public static function deleteRate($rid)
|
|
{
|
|
return DB::table("t_conf_rates")->where("id", $rid)->delete();
|
|
}
|
|
|
|
/**
|
|
* t_conf_lane
|
|
*/
|
|
|
|
public static function getLanesActive()
|
|
{
|
|
return DB::select("SELECT * FROM t_conf_lanes WHERE dlt is null AND is_active = 1;");
|
|
}
|
|
}
|