150 lines
4.2 KiB
PHP
Executable File
150 lines
4.2 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class PocketMoney extends Model
|
|
{
|
|
|
|
const IS_INACTIVE = 0;
|
|
const IS_ACTIVE = 1;
|
|
|
|
const TYPE_BUNDLE = 1;
|
|
const TYPE_BUNDLE_TEXT = 'Bundle';
|
|
const TYPE_CHECKPOINTS = 2;
|
|
const TYPE_CHECKPOINTS_TEXT = 'Checkpoints';
|
|
|
|
const FLOW_DEPARTURE = 1;
|
|
const FLOW_DEPARTURE_TEXT = 'Departure';
|
|
const FLOW_ARRIVAL = 2;
|
|
const FLOW_ARRIVAL_TEXT = 'Arrival';
|
|
const FLOW_HYBRID = 3;
|
|
const FLOW_HYBRID_TEXT = 'Hybpocket_id';
|
|
|
|
const defaultSelectedPockets = "
|
|
pm.*
|
|
,pck.name as pck_name,pck.fulladdress as pck_fulladdress
|
|
,drp.name as drop_name,drp.fulladdress as drop_fulladdress
|
|
";
|
|
|
|
public static function listPockets($filter = [])
|
|
{
|
|
$select = '';
|
|
$where = '';
|
|
$params = [];
|
|
|
|
if (isset($filter['pck_id'])) {
|
|
$where .= ' AND pm.pck_id = ?';
|
|
$params[] = $filter['pck_id'];
|
|
}
|
|
if (isset($filter['drop_id'])) {
|
|
$where .= ' AND pm.drop_id = ?';
|
|
$params[] = $filter['drop_id'];
|
|
}
|
|
if (isset($filter['is_active'])) {
|
|
$where .= ' AND pm.is_active = ?';
|
|
$params[] = $filter['is_active'];
|
|
}
|
|
if (isset($filter['cptid'])) {
|
|
$where .= ' AND pck.client_group_id = ?';
|
|
$params[] = $filter['cptid'];
|
|
$where .= ' AND drp.client_group_id = ?';
|
|
$params[] = $filter['cptid'];
|
|
}
|
|
|
|
return DB::select("SELECT "
|
|
. PocketMoney::defaultSelectedPockets . "
|
|
$select
|
|
FROM t_pocket_money as pm
|
|
INNER JOIN t_zones as pck ON pm.pck_id = pck.id
|
|
INNER JOIN t_zones as drp ON pm.drop_id = drp.id
|
|
WHERE pm.dlt is null
|
|
$where
|
|
;", $params);
|
|
}
|
|
|
|
public static function showPocketById($pocket_id)
|
|
{
|
|
return DB::select("SELECT "
|
|
. PocketMoney::defaultSelectedPockets . "
|
|
FROM t_pocket_money as pm
|
|
INNER JOIN t_zones as pck ON pm.pck_id = pck.id
|
|
INNER JOIN t_zones as drp ON pm.drop_id = drp.id
|
|
WHERE pm.dlt is null AND pm.id = ?
|
|
LIMIT 1;", [$pocket_id]);
|
|
}
|
|
|
|
public static function getPockets()
|
|
{
|
|
return DB::select("SELECT * FROM t_pocket_money WHERE dlt is null;");
|
|
}
|
|
|
|
public static function getPocketById($pocket_id)
|
|
{
|
|
return DB::select("SELECT * FROM t_pocket_money WHERE dlt is null AND id = ? LIMIT 1;", [$pocket_id]);
|
|
}
|
|
|
|
public static function getPocketByCode($code)
|
|
{
|
|
return DB::select("SELECT * FROM t_pocket_money WHERE dlt is null AND code = ? LIMIT 1;", [$code]);
|
|
}
|
|
|
|
public static function getPocketByPckDrop($pck_id, $drop_id)
|
|
{
|
|
return DB::select("SELECT * FROM t_pocket_money WHERE dlt is null AND pck_id = ? AND drop_id = ? LIMIT 1;", [$pck_id, $drop_id]);
|
|
}
|
|
|
|
public static function addPocket($data)
|
|
{
|
|
$pocket_id = DB::table("t_pocket_money")->insertGetId($data);
|
|
return $pocket_id;
|
|
}
|
|
|
|
public static function updatePocket($pocket_id, $data)
|
|
{
|
|
return DB::table("t_pocket_money")->where("id", $pocket_id)->update($data);
|
|
}
|
|
|
|
public static function deletePocket($pocket_id)
|
|
{
|
|
return DB::table("t_pocket_money")->where("id", $pocket_id)->delete();
|
|
}
|
|
|
|
public static function getTypes()
|
|
{
|
|
$datas = [];
|
|
for ($i=0; $i<2; $i++) {
|
|
$datas[$i] = new \stdClass();
|
|
if ($i === 0) {
|
|
$datas[$i]->id = PocketMoney::TYPE_BUNDLE;
|
|
$datas[$i]->name = PocketMoney::TYPE_BUNDLE_TEXT;
|
|
} else if ($i === 1) {
|
|
$datas[$i]->id = PocketMoney::TYPE_CHECKPOINTS;
|
|
$datas[$i]->name = PocketMoney::TYPE_CHECKPOINTS_TEXT;
|
|
}
|
|
}
|
|
return $datas;
|
|
}
|
|
|
|
public static function getFlows()
|
|
{
|
|
$datas = [];
|
|
for ($i=0; $i<3; $i++) {
|
|
$datas[$i] = new \stdClass();
|
|
if ($i === 0) {
|
|
$datas[$i]->id = PocketMoney::FLOW_DEPARTURE;
|
|
$datas[$i]->name = PocketMoney::FLOW_DEPARTURE_TEXT;
|
|
} else if ($i === 1) {
|
|
$datas[$i]->id = PocketMoney::FLOW_ARRIVAL;
|
|
$datas[$i]->name = PocketMoney::FLOW_ARRIVAL_TEXT;
|
|
} else if ($i === 2) {
|
|
$datas[$i]->id = PocketMoney::FLOW_HYBRID;
|
|
$datas[$i]->name = PocketMoney::FLOW_HYBRID_TEXT;
|
|
}
|
|
}
|
|
return $datas;
|
|
}
|
|
}
|