81 lines
2.3 KiB
PHP
Executable File
81 lines
2.3 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class Checkpoints extends Model
|
|
{
|
|
const defaultSelectedCheckpoints = "
|
|
point.*
|
|
,pck.name as pck_name,pck.fulladdress as pck_fulladdress
|
|
,drp.name as drop_name,drp.fulladdress as drop_fulladdress
|
|
";
|
|
|
|
public static function listCheckpoints($filter = [])
|
|
{
|
|
$where = '';
|
|
$params = [];
|
|
|
|
if (isset($filter['pocket_id'])) {
|
|
$where .= ' AND point.pocket_id = ?';
|
|
$params[] = $filter['pocket_id'];
|
|
}
|
|
|
|
return DB::select("SELECT "
|
|
. Checkpoints::defaultSelectedCheckpoints . "
|
|
FROM t_checkpoints as point
|
|
INNER JOIN t_zones as pck ON point.pck_id = pck.id
|
|
LEFT JOIN t_zones as drp ON point.drop_id = drp.id
|
|
WHERE point.dlt is null $where;", $params);
|
|
}
|
|
|
|
public static function showCheckpointById($pocket_id)
|
|
{
|
|
return DB::select("SELECT "
|
|
. Checkpoints::defaultSelectedCheckpoints . "
|
|
FROM t_checkpoints as point
|
|
LEFT JOIN t_zones as pck ON point.pck_id = pck.id
|
|
LEFT JOIN t_zones as drp ON point.drop_id = drp.id
|
|
WHERE point.dlt is null AND point.id = ?
|
|
LIMIT 1;", [$pocket_id]);
|
|
}
|
|
|
|
public static function getCheckpoints()
|
|
{
|
|
return DB::select("SELECT * FROM t_checkpoints WHERE dlt is null;");
|
|
}
|
|
|
|
public static function getCheckpointById($id)
|
|
{
|
|
return DB::select("SELECT * FROM t_checkpoints WHERE dlt is null AND id = ? LIMIT 1;", [$id]);
|
|
}
|
|
|
|
public static function getCheckpointByPckDrop($pck_id, $drop_id)
|
|
{
|
|
return DB::select("SELECT * FROM t_checkpoints WHERE dlt is null AND pck_id = ? AND drop_id = ? LIMIT 1;", [$pck_id, $drop_id]);
|
|
}
|
|
|
|
public static function addCheckpoint($data)
|
|
{
|
|
$pid = DB::table("t_checkpoints")->insertGetId($data);
|
|
return $pid;
|
|
}
|
|
|
|
public static function updateCheckpoint($id, $data)
|
|
{
|
|
return DB::table("t_checkpoints")->where("id", $id)->update($data);
|
|
}
|
|
|
|
public static function deleteCheckpoint($id)
|
|
{
|
|
return DB::table("t_checkpoints")->where("id", $id)->delete();
|
|
}
|
|
|
|
public static function deleteCheckpointByPocketId($pocket_id)
|
|
{
|
|
return DB::table("t_checkpoints")->where("pocket_id", $pocket_id)->delete();
|
|
}
|
|
}
|