This commit is contained in:
meusinfirmary
2025-05-29 13:21:59 +07:00
parent 3b9d94620a
commit 77bc5f10a6
29 changed files with 2206 additions and 2247 deletions

View File

@ -6,353 +6,380 @@ use App\Models\OrdersInvoices;
class Helper
{
const EARTH_RADIUS_M = 6371000;
const EARTH_RADIUS_KM = 6371;
const EARTH_RADIUS_MILES = 3959; // 3958.756 || 3959 || 3963
const EARTH_RADIUS_M = 6371000;
const EARTH_RADIUS_KM = 6371;
const EARTH_RADIUS_MILES = 3959; // 3958.756 || 3959 || 3963
/**
* Calculates the great-circle distance between two points, with
* the Haversine formula.
* @param float $latitudeFrom Latitude of start point in [deg decimal]
* @param float $longitudeFrom Longitude of start point in [deg decimal]
* @param float $latitudeTo Latitude of target point in [deg decimal]
* @param float $longitudeTo Longitude of target point in [deg decimal]
* @param float $earthRadius Mean earth radius in [m]
* @return float Distance between points in [m] (same as earthRadius)
* reference: https://stackoverflow.com/questions/14750275/haversine-formula-with-php
* tolak ukur: tarik garis lurus
* miles: 3958.756 || 3959
* km: 6371
* meters: 6371000
* more accurate using km/meters than miles i think
*/
public static function haversineGreatCircleDistance(
$latitudeFrom,
$longitudeFrom,
$latitudeTo,
$longitudeTo,
$earthRadius = self::EARTH_RADIUS_M
) {
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
/**
* Calculates the great-circle distance between two points, with
* the Haversine formula.
* @param float $latitudeFrom Latitude of start point in [deg decimal]
* @param float $longitudeFrom Longitude of start point in [deg decimal]
* @param float $latitudeTo Latitude of target point in [deg decimal]
* @param float $longitudeTo Longitude of target point in [deg decimal]
* @param float $earthRadius Mean earth radius in [m]
* @return float Distance between points in [m] (same as earthRadius)
* reference: https://stackoverflow.com/questions/14750275/haversine-formula-with-php
* tolak ukur: tarik garis lurus
* miles: 3958.756 || 3959
* km: 6371
* meters: 6371000
* more accurate using km/meters than miles i think ~ rafifmulia
*/
public static function haversineGreatCircleDistance(
$latitudeFrom,
$longitudeFrom,
$latitudeTo,
$longitudeTo,
$earthRadius = self::EARTH_RADIUS_M
) {
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle =
2 *
asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
$distance = $angle * $earthRadius;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
$distance = $angle * $earthRadius;
return $distance;
}
return $distance;
}
public static function arccosineGreatCircleDistance(
$latitudeFrom,
$longitudeFrom,
$latitudeTo,
$longitudeTo,
$earthRadius = 6371000
) {
return $earthRadius *
acos(
cos(deg2rad($latitudeFrom)) *
cos(deg2rad($latitudeTo)) *
cos(deg2rad($longitudeTo) - deg2rad($longitudeFrom)) +
sin(deg2rad($latitudeFrom)) * sin(deg2rad($latitudeTo))
);
}
public static function arccosineGreatCircleDistance(
$latitudeFrom,
$longitudeFrom,
$latitudeTo,
$longitudeTo,
$earthRadius = 6371000
) {
return ($earthRadius * acos((cos(deg2rad($latitudeFrom))) * (cos(deg2rad($latitudeTo))) * (cos(deg2rad($longitudeTo) - deg2rad($longitudeFrom))) + ((sin(deg2rad($latitudeFrom))) * (sin(deg2rad($latitudeTo))))));
}
public static function createPayload($array)
{
$string = "";
public static function createPayload($array)
{
$string = '';
foreach ($array as $key => $val) {
if (is_array($val)) {
self::createPayload($val);
continue;
}
$string .= $key . "=" . $val . "&";
}
foreach ($array as $key => $val) {
if (is_array($val)) {
self::createPayload($val);
continue;
}
$string .= $key . '=' . $val . '&';
}
return $string;
}
return $string;
}
static function req_post($url, $headers, $payload)
{
$ch = curl_init();
static function req_post($url, $headers, $payload)
{
$ch = curl_init();
$options = [
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
// CURLOPT_FAILONERROR => true,
];
curl_setopt_array($ch, $options);
$options = [
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
// CURLOPT_FAILONERROR => true,
];
curl_setopt_array($ch, $options);
$resp = curl_exec($ch);
$resp = curl_exec($ch);
if (curl_errno($ch)) {
$result = [
"type" => "error",
"message" => curl_error($ch),
];
return $result;
} else {
$result = ["type" => "success"];
try {
$data = json_decode($resp);
if (curl_errno($ch)) {
if (json_last_error() == JSON_ERROR_NONE) {
$result["data"] = $data;
} else {
$result["data"] = $resp;
}
$result = [
'type' => 'error',
'message' => curl_error($ch)
];
return $result;
} else {
return $result;
} catch (\Exception $e) {
$result["data"] = $resp;
return $result;
}
}
}
$result = ['type' => 'success'];
try {
$data = json_decode($resp);
static function req_get($url, $headers)
{
$ch = curl_init();
if (json_last_error() == JSON_ERROR_NONE) {
$result['data'] = $data;
} else {
$result['data'] = $resp;
}
$options = [
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
// CURLOPT_FAILONERROR => true,
];
curl_setopt_array($ch, $options);
return $result;
} catch (\Exception $e) {
$result['data'] = $resp;
return $result;
}
}
}
$resp = curl_exec($ch);
static function req_get($url, $headers)
{
$ch = curl_init();
if (curl_errno($ch)) {
$result = [
"type" => "error",
"message" => curl_error($ch),
];
return $result;
} else {
$result = ["type" => "success"];
try {
$data = json_decode($resp);
$options = [
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
// CURLOPT_FAILONERROR => true,
];
curl_setopt_array($ch, $options);
if (json_last_error() == JSON_ERROR_NONE) {
$result["data"] = $data;
} else {
$result["data"] = $resp;
}
$resp = curl_exec($ch);
return $result;
} catch (\Exception $e) {
$result["data"] = $resp;
return $result;
}
}
}
if (curl_errno($ch)) {
$result = [
'type' => 'error',
'message' => curl_error($ch)
];
return $result;
} else {
$result = ['type' => 'success'];
try {
$data = json_decode($resp);
public static function listBloods()
{
return [
[
"id" => "A",
"name" => "A",
],
[
"id" => "A+",
"name" => "A+",
],
[
"id" => "B",
"name" => "B",
],
[
"id" => "B+",
"name" => "B+",
],
[
"id" => "O",
"name" => "O",
],
[
"id" => "O+",
"name" => "O+",
],
[
"id" => "AB",
"name" => "AB",
],
[
"id" => "AB+",
"name" => "AB+",
],
];
}
if (json_last_error() == JSON_ERROR_NONE) {
$result['data'] = $data;
} else {
$result['data'] = $resp;
}
public static function countAge($date_ymd)
{
$then = date("Ymd", strtotime($date_ymd));
$diff = date("Ymd") - $then;
return (int) substr($diff, 0, -4);
}
return $result;
} catch (\Exception $e) {
$result['data'] = $resp;
return $result;
}
}
}
public static function terbilang($nilai)
{
function penyebut($nilai)
{
$nilai = abs($nilai);
$huruf = [
"",
"satu",
"dua",
"tiga",
"empat",
"lima",
"enam",
"tujuh",
"delapan",
"sembilan",
"sepuluh",
"sebelas",
];
$temp = "";
if ($nilai < 12) {
$temp = " " . $huruf[$nilai];
} elseif ($nilai < 20) {
$temp = penyebut($nilai - 10) . " belas";
} elseif ($nilai < 100) {
$temp = penyebut($nilai / 10) . " puluh" . penyebut($nilai % 10);
} elseif ($nilai < 200) {
$temp = " seratus" . penyebut($nilai - 100);
} elseif ($nilai < 1000) {
$temp = penyebut($nilai / 100) . " ratus" . penyebut($nilai % 100);
} elseif ($nilai < 2000) {
$temp = " seribu" . penyebut($nilai - 1000);
} elseif ($nilai < 1000000) {
$temp = penyebut($nilai / 1000) . " ribu" . penyebut($nilai % 1000);
} elseif ($nilai < 1000000000) {
$temp = penyebut($nilai / 1000000) . " juta" . penyebut($nilai % 1000000);
} elseif ($nilai < 1000000000000) {
$temp = penyebut($nilai / 1000000000) . " milyar" . penyebut(fmod($nilai, 1000000000));
} elseif ($nilai < 1000000000000000) {
$temp = penyebut($nilai / 1000000000000) . " trilyun" . penyebut(fmod($nilai, 1000000000000));
}
return $temp;
}
public static function listBloods()
{
return [
[
'id' => 'A',
'name' => 'A',
],
[
'id' => 'A+',
'name' => 'A+',
],
[
'id' => 'B',
'name' => 'B',
],
[
'id' => 'B+',
'name' => 'B+',
],
[
'id' => 'O',
'name' => 'O',
],
[
'id' => 'O+',
'name' => 'O+',
],
[
'id' => 'AB',
'name' => 'AB',
],
[
'id' => 'AB+',
'name' => 'AB+',
],
];
}
if ($nilai < 0) {
$hasil = "minus " . trim(penyebut($nilai));
} else {
$hasil = trim(penyebut($nilai));
}
return $hasil;
}
public static function countAge($date_ymd)
{
$then = date('Ymd', strtotime($date_ymd));
$diff = date('Ymd') - $then;
return (int) substr($diff, 0, -4);
}
public static function lastDigitYear()
{
// 2023 => 3
return substr(date("Y"), -1);
}
public static function terbilang($nilai)
{
function penyebut($nilai) {
$nilai = abs($nilai);
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
$temp = "";
if ($nilai < 12) {
$temp = " ". $huruf[$nilai];
} else if ($nilai <20) {
$temp = penyebut($nilai - 10). " belas";
} else if ($nilai < 100) {
$temp = penyebut($nilai/10)." puluh". penyebut($nilai % 10);
} else if ($nilai < 200) {
$temp = " seratus" . penyebut($nilai - 100);
} else if ($nilai < 1000) {
$temp = penyebut($nilai/100) . " ratus" . penyebut($nilai % 100);
} else if ($nilai < 2000) {
$temp = " seribu" . penyebut($nilai - 1000);
} else if ($nilai < 1000000) {
$temp = penyebut($nilai/1000) . " ribu" . penyebut($nilai % 1000);
} else if ($nilai < 1000000000) {
$temp = penyebut($nilai/1000000) . " juta" . penyebut($nilai % 1000000);
} else if ($nilai < 1000000000000) {
$temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000));
} else if ($nilai < 1000000000000000) {
$temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000));
}
return $temp;
}
public static function weekNumOfYear()
{
// 27 jul 2022 => 30
return date("W");
}
if ($nilai < 0) {
$hasil = "minus " . trim(penyebut($nilai));
} else {
$hasil = trim(penyebut($nilai));
}
return $hasil;
}
public static function dayOfWeek()
{
// monday => 01, sunday => 07
return date("N");
}
public static function lastDigitYear()
{
// 2023 => 3
return substr(date('Y'), -1);
}
public static function gnrtOrdCode($type)
{
$ord_code = "";
$ord_code .= $type;
$ord_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . Helper::dayOfWeek();
// above before running number
$likeCode = \App\Models\Orders::getOrderLikeCode($ord_code);
// below after running number
if (count($likeCode) < 1 || $likeCode === false) {
$ord_code .= "001";
} else {
if ($likeCode[0]->total < 1) {
$ord_code .= "001";
} else {
$ord_code .= str_pad($likeCode[0]->total + 1, 3, "0", STR_PAD_LEFT);
}
}
return $ord_code;
}
public static function weekNumOfYear()
{
// 27 jul 2022 => 30
return date('W');
}
public static function gnrtInvcCode($ord_code)
{
$invc_code = "";
$type = substr($ord_code, 0, 1);
$invc_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . $type;
$first_invc_code = $invc_code;
// above before running number
$likeCode = \App\Models\OrdersInvoices::getLikeCode($invc_code);
// below after running number
if (count($likeCode) < 1 || $likeCode === false) {
$invc_code .= "001";
} else {
if ($likeCode[0]->total < 1) {
$invc_code .= "001";
} else {
$invc_code .= str_pad($likeCode[0]->total + 1, 3, "0", STR_PAD_LEFT);
$checkCode = OrdersInvoices::getByCode($invc_code);
if (count($checkCode) > 0) {
$invc_code = $first_invc_code;
$lastRN = OrdersInvoices::getLikeCodeLastRunningNumber($invc_code);
$newRN = (int) substr($lastRN[0]->code, -3);
$invc_code .= str_pad($newRN + 1, 3, "0", STR_PAD_LEFT);
}
}
}
return $invc_code;
}
public static function dayOfWeek()
{
// monday => 01, sunday => 07
return date('N');
}
public static function viewBillFncIsEnableBtn($prev_termin, $curr_termin)
{
if ($curr_termin->termin_ddln_type === \App\Models\OrdersTermins::DDLN_TERMIN_TYPE_ORD_FINISH) {
if ($curr_termin->drop_chk_at === 0) {
// Menunggu Pengantaran Selesai
// return 0;
if ($prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// Termin sebelumnya selesai dan show btn invoice
return 1;
} else {
// Menunggu Pengantaran Selesai
return 0;
}
} else {
if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// invoice close
return 4;
} else {
if (
$prev_termin !== 0 &&
$prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO
) {
// Termin sebelumnya belum terkonfirmasi selesai
return 3;
}
// Pengantaran Selesai pada and show btn invoice
return 2;
}
}
} else {
if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// invoice close
return 4;
} else {
if (
$prev_termin !== 0 &&
$prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO
) {
// Termin sebelumnya belum terkonfirmasi selesai
return 3;
}
// show btn invoice
return 1;
}
}
}
public static function gnrtOrdCode($type) {
$ord_code = '';
$ord_code .= $type;
$ord_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . Helper::dayOfWeek();
// above before running number
$likeCode = \App\Models\Orders::getOrderLikeCode($ord_code);
// below after running number
if (count($likeCode) < 1 || $likeCode === false) {
$ord_code .= '001';
} else {
if ($likeCode[0]->total < 1) {
$ord_code .= '001';
} else {
$ord_code .= str_pad($likeCode[0]->total + 1, 3, '0', STR_PAD_LEFT);
}
}
return $ord_code;
}
public static function gnrtInvcCode($ord_code) {
$invc_code = '';
$type = substr($ord_code, 0, 1);
$invc_code .= Helper::lastDigitYear() . Helper::weekNumOfYear() . $type;
$first_invc_code = $invc_code;
// above before running number
$likeCode = \App\Models\OrdersInvoices::getLikeCode($invc_code);
// below after running number
if (count($likeCode) < 1 || $likeCode === false) {
$invc_code .= '001';
} else {
if ($likeCode[0]->total < 1) {
$invc_code .= '001';
} else {
$invc_code .= str_pad($likeCode[0]->total + 1, 3, '0', STR_PAD_LEFT);
$checkCode = OrdersInvoices::getByCode($invc_code);
if (count($checkCode) > 0) {
$invc_code = $first_invc_code;
$lastRN = OrdersInvoices::getLikeCodeLastRunningNumber($invc_code);
$newRN = (int)substr($lastRN[0]->code, -3);
$invc_code .= str_pad($newRN + 1, 3, '0', STR_PAD_LEFT);
}
}
}
return $invc_code;
}
public static function viewBillFncIsEnableBtn($prev_termin, $curr_termin)
{
if ($curr_termin->termin_ddln_type === \App\Models\OrdersTermins::DDLN_TERMIN_TYPE_ORD_FINISH) {
if ($curr_termin->drop_chk_at === 0) {
// Menunggu Pengantaran Selesai
// return 0;
if ($prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// Termin sebelumnya selesai dan show btn invoice
return 1;
} else {
// Menunggu Pengantaran Selesai
return 0;
}
} else {
if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// invoice close
return 4;
} else {
if ($prev_termin !== 0 && $prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO) {
// Termin sebelumnya belum terkonfirmasi selesai
return 3;
}
// Pengantaran Selesai pada and show btn invoice
return 2;
}
}
} else {
if ($curr_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_YES) {
// invoice close
return 4;
} else {
if ($prev_termin !== 0 && $prev_termin->termin_is_paid === \App\Models\OrdersTermins::IS_PAID_NO) {
// Termin sebelumnya belum terkonfirmasi selesai
return 3;
}
// show btn invoice
return 1;
}
}
}
public static function changeIpToDomain($fullurl)
{
$replace = $fullurl;
if (!strpos($fullurl, env('ORI_IP')) === false) {
$replace = str_replace(env('ORI_IP'), env('ORI_DOMAIN'), $replace);
}
return $replace;
}
public static function changeIpToDomain($fullurl)
{
$replace = $fullurl;
if (!strpos($fullurl, env("ORI_IP")) === false) {
$replace = str_replace(env("ORI_IP"), env("ORI_DOMAIN"), $replace);
}
return $replace;
}
}

View File

@ -11,65 +11,68 @@ use App\Helper;
class LoggerController extends Controller
{
/**
* API
*/
/**
* API
*/
public function logger(Request $req)
{
$now = time();
try {
$input = [
'label' => $req->label,
'level' => $req->level,
'logtype' => $req->logtype,
'keys' => $req->keys,
'act' => 'email',
'to' => ['rafifmreswara@gmail.com'],
'errors' => $req->errors,
'vers' => '1.2.1',
'source' => 'service',
'payloads' => $req->payloads,
];
$rulesInput = [
'label' => 'required|string',
'level' => 'required|numeric',
'logtype' => 'required|string',
'keys' => 'required|array',
'act' => 'required|string',
'to' => 'nullable|array',
'errors' => 'nullable|string',
'vers' => 'required|string',
'source' => 'required|string',
'payloads' => 'nullable|string',
];
public function logger(Request $req)
{
$now = time();
try {
$input = [
"label" => $req->label,
"level" => $req->level,
"logtype" => $req->logtype,
"keys" => $req->keys,
"act" => "email",
"to" => ["emirsyafmun@gmail.com"],
"errors" => $req->errors,
"vers" => "1.2.1",
"source" => "service",
"payloads" => $req->payloads,
];
$rulesInput = [
"label" => "required|string",
"level" => "required|numeric",
"logtype" => "required|string",
"keys" => "required|array",
"act" => "required|string",
"to" => "nullable|array",
"errors" => "nullable|string",
"vers" => "required|string",
"source" => "required|string",
"payloads" => "nullable|string",
];
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp['meta']['code']);
}
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
$payload = Helper::createPayload([
'usnme' => 'rafif',
'paswd' => 12345678
]);
$login = Helper::req_post('https://api.simerahputih.com/logger/login', [
'Content-Type: application/x-www-form-urlencoded',
], $payload);
$payload = Helper::createPayload([
"usnme" => "emrsyf",
"paswd" => 12345678,
]);
$login = Helper::req_post(
"https://api.simerahputih.com/logger/login",
["Content-Type: application/x-www-form-urlencoded"],
$payload
);
// $payload = Helper::createPayload($input);
// dd($payload);
$resp = Helper::req_post('https://api.simerahputih.com/logger/log', [
'Content-Type: application/json',
'x-api-key: ' . $login['data']->data->token
], json_encode($input));
// $payload = Helper::createPayload($input);
// dd($payload);
$resp = Helper::req_post(
"https://api.simerahputih.com/logger/log",
["Content-Type: application/json", "x-api-key: " . $login["data"]->data->token],
json_encode($input)
);
$apiResp = Responses::success('success send log');
return new Response($apiResp, $apiResp['meta']['code']);
} catch (\Exception $e) {
dd($e);
}
}
$apiResp = Responses::success("success send log");
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
dd($e);
}
}
}

View File

@ -226,16 +226,16 @@ class MenuController extends Controller
)
->get();
foreach ($rawData as $_data) {
$ehck = DB::table("t_orders_drivers_uploads")
->select(
"id", //
"checklist_name",
"checklist_desc",
"img",
"updt"
)
->where("ord_pck_drop_id", $_data->id)
->get();
// $ehck = DB::table("t_orders_drivers_uploads")
// ->select(
// "id", //
// "checklist_name",
// "checklist_desc",
// "img",
// "updt"
// )
// ->where("ord_pck_drop_id", $_data->id)
// ->get();
$data[] = [
"id" => $_data->id,
"pck_date" => $_data->pck_date,
@ -244,11 +244,9 @@ class MenuController extends Controller
"pck_addr" => $_data->pck_addr,
"drop_name" => $_data->drop_name,
"drop_addr" => $_data->drop_addr,
"checklist_array" => $ehck,
"checklist_array" => [],
];
}
// dd($data[0]["checklist_array"]);
// dd($data);
$data = [
"data" => $data,
"orders" => $orders,
@ -317,11 +315,12 @@ class MenuController extends Controller
$rate = OrdersRates::getById($order[0]->ord_rate_id);
$data = [
"order" => $order[0],
"vendors" => OrdersVendors::searchVendorsByRate([
"active_rates" => $rate[0],
"prefer_truck_type" => $order[0]->prefer_truck_type,
]),
// "vendors" => OrdersVendors::searchVendorsByRate([
// "active_rates" => $rate[0],
// "prefer_truck_type" => $order[0]->prefer_truck_type,
// ]),
];
// dd($data["order"]);
return view("menu_v1._confirmTransactions", $data);
}
@ -340,16 +339,22 @@ class MenuController extends Controller
public function view_transactions_add(Request $req)
{
// dd(Users::ROLE_ADMIN);
$uclients = Users::listUsers([
"role" => Users::ROLE_ADMIN,
"status" => Users::STATUS_ACTIVE,
]);
// dd($uclients);
$data = [
"uclients" => Users::listUsers([
"role" => Users::ROLE_CLIENT_ADMIN,
"status" => Users::STATUS_ACTIVE,
]),
"uclients" => [collect($uclients)->firstWhere("id", 1)],
"truck_types" => ConfTruckTypes::listTruckTypesRates(
ConfTruckTypes::IS_ACTIVE,
ConfRates::LANE_EARTH
),
"vehicle" => Vehicles::listVehicles([]),
"driver" => Drivers::getDrivers([]),
];
// dd($data["vehicle"]);
return view("menu_v2.Clients._addTransactions", $data);
}

View File

@ -36,6 +36,7 @@ class TrackController extends Controller
];
if ($req->cptid) {
$filter["company"] = $req->cptid;
// $filter["company"] = 1;
}
if ($req->auth->is_tracking === Users::IS_TRACK_VHC_YES) {
@ -84,6 +85,7 @@ class TrackController extends Controller
}
$list = Tracks::listCurrentTracks($filter);
// dd($list);
foreach ($list as $key => $row) {
$list[$key]->DT_RowIndex = $key + 1;
// $list[$key]->mileage_km = '-';

View File

@ -248,7 +248,7 @@ class TransactionController extends Controller
$pdfPath = "",
$pdfTitle = "",
$imgName = "",
$outputPdfFile = "",
$outputPdfFile = ""
) {
if (empty($imgPathFile)) {
return false;
@ -317,7 +317,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Seal",
"ord_pck_seal_img",
"ord_pck_seal_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -328,7 +328,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Seal",
"ord_pck_seal_img",
"ord_pck_seal_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -340,7 +340,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Pengemudi + Armada",
"ord_pck_drv_armd_img",
"ord_pck_drv_armd_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -351,7 +351,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Pengemudi + Armada",
"ord_pck_drv_armd_img",
"ord_pck_drv_armd_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -363,7 +363,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Nomor Polisi Kendaraan",
"ord_pck_nopol_img",
"ord_pck_nopol_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -374,7 +374,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Nomor Polisi Kendaraan",
"ord_pck_nopol_img",
"ord_pck_nopol_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -389,7 +389,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Dokumen Kelengkapan dari Client",
"ord_pck_doc_client_img_" . $i,
"ord_pck_doc_client_img_" . $i
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -400,7 +400,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Dokumen Kelengkapan dari Client",
"ord_pck_doc_client_img_" . $i,
"ord_pck_doc_client_img_" . $i
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -413,7 +413,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Pemasangan Seal",
"ord_pck_seal_install_img",
"ord_pck_seal_install_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -424,7 +424,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Pemasangan Seal",
"ord_pck_seal_install_img",
"ord_pck_seal_install_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -436,7 +436,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Barang",
"ord_pck_goods_img",
"ord_pck_goods_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -447,7 +447,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Penjemputan",
"Foto Barang",
"ord_pck_goods_img",
"ord_pck_goods_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -461,7 +461,7 @@ class TransactionController extends Controller
if (count($availToMergers) > 0) {
$pdfMerge->merge(
"file",
storage_path("app/public/" . $pdfPath . "download_report_pickup.pdf"),
storage_path("app/public/" . $pdfPath . "download_report_pickup.pdf")
);
}
@ -579,7 +579,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto mobil tiba di tujuan",
"ord_drop_arrived_img",
"ord_drop_arrived_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -590,7 +590,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto mobil tiba di tujuan",
"ord_drop_arrived_img",
"ord_drop_arrived_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -602,7 +602,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto serah terima",
"ord_drop_handover_img",
"ord_drop_handover_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -613,7 +613,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto serah terima",
"ord_drop_handover_img",
"ord_drop_handover_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -625,7 +625,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto DO yg sudah di TTD",
"ord_drop_do_ttd_img",
"ord_drop_do_ttd_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -636,7 +636,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto DO yg sudah di TTD",
"ord_drop_do_ttd_img",
"ord_drop_do_ttd_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -648,7 +648,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto surat jalan di TTD",
"ord_drop_spk_img",
"ord_drop_spk_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -659,7 +659,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Pengantaran",
"Foto surat jalan di TTD",
"ord_drop_spk_img",
"ord_drop_spk_img"
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -768,7 +768,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Kecelakaan",
"Foto Pendukung",
"ord_acdnt_img_" . $i,
"ord_acdnt_img_" . $i
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -779,7 +779,7 @@ class TransactionController extends Controller
$pdfPath,
"Data Kecelakaan",
"Foto Pendukung",
"ord_acdnt_img_" . $i,
"ord_acdnt_img_" . $i
);
if ($onePagePdf) {
$availToMergers[] = $onePagePdf;
@ -794,7 +794,7 @@ class TransactionController extends Controller
if (count($availToMergers) > 0) {
$pdfMerge->merge(
"file",
storage_path("app/public/" . $pdfPath . "download_report_acdnt.pdf"),
storage_path("app/public/" . $pdfPath . "download_report_acdnt.pdf")
);
}
@ -1021,7 +1021,7 @@ class TransactionController extends Controller
tod.drop_name,
tod.drop_addr,
tod.pic_name as drp_pic_name,
tod.pic_phone_val as drp_pic_phone",
tod.pic_phone_val as drp_pic_phone"
);
if (isset($req->point_id)) {
$rawData->where("topd.id", $req->point_id);
@ -1035,7 +1035,7 @@ class TransactionController extends Controller
"checklist_name",
"checklist_desc",
"img",
"updt",
"updt"
)
->where("ord_pck_drop_id", $_data->id)
->get();
@ -1185,7 +1185,7 @@ class TransactionController extends Controller
foreach ($req->packing_list as $k => $v) {
if (count(OrdersItems::getOrderItemByCode($v["Item Code"])) > 0) {
$apiResp = Responses::bad_request(
"Item Code: " . $v["Item Code"] . " not uniq, please reupload your packing list",
"Item Code: " . $v["Item Code"] . " not uniq, please reupload your packing list"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1255,7 +1255,7 @@ class TransactionController extends Controller
// }
if ($calc_weight === 0 && $calc_cbm === 0) {
$apiResp = Responses::bad_request(
"You must fill in at least 1 of weight / dimension / volume on packing list.",
"You must fill in at least 1 of weight / dimension / volume on packing list."
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1330,7 +1330,7 @@ class TransactionController extends Controller
}
if ($pck[0]->prid == 0) {
$apiResp = Responses::bad_request(
"Pickup zone province not filled, please recheck input province zone",
"Pickup zone province not filled, please recheck input province zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1342,13 +1342,13 @@ class TransactionController extends Controller
}
if ($drop[0]->ktid == 0) {
$apiResp = Responses::bad_request(
"Drop zone city not filled, please recheck input city zone",
"Drop zone city not filled, please recheck input city zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
if ($drop[0]->kcid == 0) {
$apiResp = Responses::bad_request(
"Drop zone district not filled, please recheck input district zone",
"Drop zone district not filled, please recheck input district zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1380,7 +1380,7 @@ class TransactionController extends Controller
} else {
$truck_types = ConfTruckTypes::listTruckTypesRates(
ConfTruckTypes::IS_ACTIVE,
ConfRates::LANE_EARTH,
ConfRates::LANE_EARTH
);
if (count($truck_types) < 1) {
$apiResp = Responses::bad_request("No vehicle available");
@ -1481,15 +1481,15 @@ class TransactionController extends Controller
"pickup_at" => $req->pickup_at,
"pickup_zone_id" => $req->pickup_zone_id,
"drop_zone_id" => $req->drop_zone_id,
"truck_type_id" => $req->truck_type_id,
"truck_type_name" => $req->truck_type_name,
// "truck_type_id" => $req->truck_type_id,
// "truck_type_name" => $req->truck_type_name,
];
$rulesInput = [
"pickup_at" => "required|integer",
"pickup_zone_id" => "required|integer",
"drop_zone_id" => "required|integer",
"truck_type_id" => "required|numeric",
"truck_type_name" => "nullable|string",
// "truck_type_id" => "required|numeric",
// "truck_type_name" => "nullable|string",
];
// validasi input
@ -1530,7 +1530,7 @@ class TransactionController extends Controller
}
if ($pck[0]->prid == 0) {
$apiResp = Responses::bad_request(
"Pickup zone province not filled, please recheck input province zone",
"Pickup zone province not filled, please recheck input province zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1542,27 +1542,28 @@ class TransactionController extends Controller
}
if ($drop[0]->ktid == 0) {
$apiResp = Responses::bad_request(
"Drop zone city not filled, please recheck input city zone",
"Drop zone city not filled, please recheck input city zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
if ($drop[0]->kcid == 0) {
$apiResp = Responses::bad_request(
"Drop zone district not filled, please recheck input district zone",
"Drop zone district not filled, please recheck input district zone"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
$rates = ConfRates::getRateByDestDistrict($pck[0]->prid, $drop[0]->kcid);
// dd($rates);
if (count($rates) < 1) {
$rates = ConfRates::getRateByDestCity($pck[0]->prid, $drop[0]->ktid);
}
// $rates = ConfRates::getRateByDestDistrict($pck[0]->prid, $drop[0]->kcid);
// // dd($rates);
// if (count($rates) < 1) {
// $rates = ConfRates::getRateByDestCity($pck[0]->prid, $drop[0]->ktid);
// }
if (count($rates) < 1) {
$apiResp = Responses::bad_request("No service available going to drop zone");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
// if (count($rates) < 1) {
// $apiResp = Responses::bad_request("No service available going to drop zone");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
$rates = 0;
$client = Clients::getClientById($req->auth->client_group_id);
@ -1574,59 +1575,59 @@ class TransactionController extends Controller
}
$opts = [];
foreach ($rates as $k => $v) {
if ($check_truck_type) {
if ($v->vhc_type !== $ttid) {
continue;
}
}
// foreach ($rates as $k => $v) {
// if ($check_truck_type) {
// if ($v->vhc_type !== $ttid) {
// continue;
// }
// }
$opt = [
"is_best" => 0,
];
if ($k === 0) {
$opt["is_best"] = 1;
}
$opt["lead_time_id"] = $v->id;
// $center_time = $v->long_time - $v->fast_time;
$opt["lead_time"] = $v->long_time;
$price = $v->sell_ftl ?? 0;
// $opt = [
// "is_best" => 0,
// ];
// if ($k === 0) {
// $opt["is_best"] = 1;
// }
// $opt["lead_time_id"] = $v->id;
// // $center_time = $v->long_time - $v->fast_time;
// $opt["lead_time"] = $v->long_time;
// $price = $v->sell_ftl ?? 0;
// TRIGER JIKA HARGA 0
// if ($price < 1) {
// $apiResp = Responses::bad_request("No service provided");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
$opt["price"] = $price;
$opt["real_price"] = $price;
$opt["disc_price"] = 0;
$opt["disc_type"] = $client[0]->disc_type;
$opt["disc_percent"] = 0;
if ($client[0]->disc_type === Clients::DISC_TYPE_FIX) {
$opt["disc_price"] = $client[0]->disc_amount;
$opt["price"] = $opt["price"] - $opt["disc_price"];
} elseif ($client[0]->disc_type === Clients::DISC_TYPE_PERCENT) {
$opt["disc_percent"] = $client[0]->disc_amount;
$opt["disc_price"] = ($opt["price"] * $client[0]->disc_amount) / 100;
$opt["price"] = $opt["price"] - $opt["disc_price"];
}
// group by lead_time and sell_price
$isSame = 0;
foreach ($opts as $key => $val) {
if ($val["price"] == $opt["price"] && $val["lead_time"] == $opt["lead_time"]) {
$isSame = 1;
}
}
if ($isSame === 1) {
continue;
}
array_push($opts, $opt);
}
// // TRIGER JIKA HARGA 0
// // if ($price < 1) {
// // $apiResp = Responses::bad_request("No service provided");
// // return new Response($apiResp, $apiResp["meta"]["code"]);
// // }
// $opt["price"] = $price;
// $opt["real_price"] = $price;
// $opt["disc_price"] = 0;
// $opt["disc_type"] = $client[0]->disc_type;
// $opt["disc_percent"] = 0;
// if ($client[0]->disc_type === Clients::DISC_TYPE_FIX) {
// $opt["disc_price"] = $client[0]->disc_amount;
// $opt["price"] = $opt["price"] - $opt["disc_price"];
// } elseif ($client[0]->disc_type === Clients::DISC_TYPE_PERCENT) {
// $opt["disc_percent"] = $client[0]->disc_amount;
// $opt["disc_price"] = ($opt["price"] * $client[0]->disc_amount) / 100;
// $opt["price"] = $opt["price"] - $opt["disc_price"];
// }
// // group by lead_time and sell_price
// $isSame = 0;
// foreach ($opts as $key => $val) {
// if ($val["price"] == $opt["price"] && $val["lead_time"] == $opt["lead_time"]) {
// $isSame = 1;
// }
// }
// if ($isSame === 1) {
// continue;
// }
// array_push($opts, $opt);
// }
// dd(count($opts));
if (count($opts) < 1 && $check_truck_type) {
$apiResp = Responses::bad_request("No truck type available going to drop zone");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
// if (count($opts) < 1 && $check_truck_type) {
// $apiResp = Responses::bad_request("No truck type available going to drop zone");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
$apiResp = Responses::success("checkout success");
$apiResp["data"] = $opts;
@ -2028,6 +2029,7 @@ class TransactionController extends Controller
public function api_create_order_v2(Request $req)
{
// dd($req->all());
try {
// $apiResp = Responses::bad_request("Service on maintenance");
// return new Response($apiResp, $apiResp["meta"]["code"]);
@ -2037,25 +2039,29 @@ class TransactionController extends Controller
"pickup_at" => $req->pickup_at,
"pickup_zone_id" => $req->pickup_zone_id,
"drop_zone_id" => $req->drop_zone_id,
"lead_time" => $req->lead_time,
"price" => $req->price,
"real_price" => $req->real_price,
"disc_price" => $req->disc_price,
"lead_time_id" => $req->lead_time_id,
"truck_type_id" => $req->truck_type_id,
"truck_type_name" => $req->truck_type_name,
// "lead_time" => $req->lead_time,
// "price" => $req->price,
// "real_price" => $req->real_price,
// "disc_price" => $req->disc_price,
// "lead_time_id" => $req->lead_time_id,
"vehicle_id" => $req->vehicle_id,
"vehicle_name" => $req->vehicle_name,
"driver_id" => $req->driver_id,
"driver_name" => $req->driver_name,
];
$rulesInput = [
"pickup_at" => "required|integer",
"pickup_zone_id" => "required|integer",
"drop_zone_id" => "required|integer",
"lead_time" => "required|numeric",
"price" => "required|numeric",
"real_price" => "required|numeric",
"disc_price" => "required|numeric",
"lead_time_id" => "required|integer|not_in:0",
"truck_type_id" => "nullable|numeric",
"truck_type_name" => "nullable|string",
// "lead_time" => "required|numeric",
// "price" => "required|numeric",
// "real_price" => "required|numeric",
// "disc_price" => "required|numeric",
// "lead_time_id" => "required|integer|not_in:0",
"vehicle_id" => "nullable|numeric",
"vehicle_name" => "nullable|string",
"driver_id" => "nullable|numeric",
"driver_name" => "nullable|string",
];
// validasi input
@ -2089,11 +2095,11 @@ class TransactionController extends Controller
$crt_type_order = Orders::CRT_TYPE_ORDER_ADMIN;
}
$type_truck_name = $req->truck_type_name;
if ($req->truck_type_id && $req->truck_type_id != 0) {
$type_truck_name = $req->truck_type_name;
$vehicle_name = $req->vehicle_name;
if ($req->vehicle_id && $req->vehicle_id != 0) {
$vehicle_name = $req->vehicle_name;
} else {
$type_truck_name = "";
$vehicle_name = "";
$req->truck_type_id = 0;
}
@ -2110,7 +2116,7 @@ class TransactionController extends Controller
} while ($doWhile);
$client = Clients::getClientById($req->auth->client_group_id);
$rate = ConfRates::getRateById($req->lead_time_id);
// $rate = ConfRates::getRateById(0);
$pck = Zone::getZoneById($req->pickup_zone_id);
// $pck_pic = Clients::getClientById($pck[0]->client_group_id);
$drop = Zone::getZoneById($req->drop_zone_id);
@ -2142,16 +2148,16 @@ class TransactionController extends Controller
"type" => Orders::TYPE_FCL,
"pck_total" => 1,
"drop_total" => 1,
"est_lead_time" => $req->lead_time,
"lead_time" => $req->lead_time,
"est_price" => $req->price,
"price" => $req->price,
"est_real_price" => $req->real_price,
"real_price" => $req->real_price,
"est_disc_price" => $req->disc_price,
"disc_price" => $req->disc_price,
"est_rate_id" => $req->lead_time_id,
"rate_id" => $req->lead_time_id,
"est_lead_time" => 0,
"lead_time" => 0,
"est_price" => 0,
"price" => 0,
"est_real_price" => 0,
"real_price" => 0,
"est_disc_price" => 0,
"disc_price" => 0,
"est_rate_id" => 0,
"rate_id" => 0,
"crt_type_order" => $crt_type_order,
"crt" => $now,
"crt_by" => $req->auth->uid,
@ -2161,13 +2167,6 @@ class TransactionController extends Controller
];
$ord_id = Orders::addOrder($insOrd);
// if ($pck[0]->boundary_bounds) {
// // $pck[0]->boundary_bounds = json_encode($pck[0]->boundary_bounds);
// }
// if ($pck[0]->boundary_latlngs) {
// // $pck[0]->boundary_latlngs = json_encode($pck[0]->boundary_latlngs);
// }
$insPck = [
"ord_id" => $ord_id,
"ord_code" => $code,
@ -2205,13 +2204,6 @@ class TransactionController extends Controller
$pck_id = OrdersPickups::add($insPck);
// if ($drop[0]->boundary_bounds) {
// // $drop[0]->boundary_bounds = json_encode($drop[0]->boundary_bounds);
// }
// if ($drop[0]->boundary_latlngs) {
// // $drop[0]->boundary_latlngs = json_encode($drop[0]->boundary_latlngs);
// }
$insDrop = [
"ord_id" => $ord_id,
"ord_code" => $code,
@ -2271,44 +2263,10 @@ class TransactionController extends Controller
"c_pt_pic_phone_val" => $client[0]->pic_phone,
"c_pt_pic_mail" => $client[0]->pic_mail,
"c_pt_pic_addr" => null,
"prefer_truck_type" => $req->truck_type_id,
"prefer_truck_type" => 1,
];
$ord_client_id = OrdersClients::add($insClient);
$insRate = [
"ord_id" => $ord_id,
"ord_code" => $code,
"rate_id" => $rate[0]->id,
"rate_code" => $rate[0]->code,
"origin_prov" => $rate[0]->origin_prov,
"origin_city" => $rate[0]->origin_city,
"origin_district" => $rate[0]->origin_district,
"origin_village" => $rate[0]->origin_village,
"lane" => $rate[0]->lane,
"dest_prov" => $rate[0]->dest_prov,
"dest_city" => $rate[0]->dest_city,
"dest_district" => $rate[0]->dest_district,
"dest_village" => $rate[0]->dest_village,
"fast_time" => $rate[0]->fast_time,
"long_time" => $rate[0]->long_time,
"unit_time" => $rate[0]->unit_time,
"sell_kg" => $rate[0]->sell_kg,
"buy_kg" => $rate[0]->buy_kg,
"margin_kg" => $rate[0]->margin_kg,
"percent_kg" => $rate[0]->percent_kg,
"sell_cbm" => $rate[0]->sell_cbm,
"buy_cbm" => $rate[0]->buy_cbm,
"margin_cbm" => $rate[0]->margin_cbm,
"percent_cbm" => $rate[0]->percent_cbm,
"sell_ftl" => $rate[0]->sell_ftl,
"buy_ftl" => $rate[0]->buy_ftl,
"margin_ftl" => $rate[0]->margin_ftl,
"percent_ftl" => $rate[0]->percent_ftl,
"vdr_id" => $rate[0]->vdr_id,
"vhc_type" => $rate[0]->vhc_type,
];
OrdersRates::add($insRate);
if (count($insurance) > 0) {
$insInsurance = [
"ord_id" => $ord_id,
@ -2322,45 +2280,106 @@ class TransactionController extends Controller
];
OrdersInsurances::add($insInsurance);
}
Orders::updateOrder($ord_id, [
"status" => Orders::STTS_HAVE_GET_VHC,
]);
Vehicles::updateVehicle($req->vehicle_id, [
"is_in_ord" => Vehicles::IN_ORD_YES,
"ord_id" => $ord_id,
"ord_code" => $code,
"c_did" => $req->driver_id,
"a_did" => $req->driver_id,
]);
Drivers::updateDriver($req->driver_id, [
"is_in_ord" => Drivers::IN_ORD_YES,
"ord_id" => $ord_id,
"ord_code" => $code,
]);
$order = Orders::showOrder([
"id" => $ord_id,
"get_exp_vendor" => 1,
// "vdr_id" => $req->auth->uid,
]);
$driver = Drivers::getDriverByIdAllData($req->driver_id);
$vehicle = Vehicles::getVehicleByIdAllData($req->vehicle_id);
OrdersDrivers::add([
"ord_id" => $order[0]->ord_id,
"ord_code" => $order[0]->ord_code,
"vdr_id" => $driver[0]->vendor_id,
"drv_id" => $driver[0]->drv_id,
"drv_name" => $driver[0]->fullname,
"drv_mail" => $driver[0]->email,
"drv_name2" => $driver[0]->fullname2,
"drv_phone_code" => $driver[0]->phone_code,
"drv_phone_val" => $driver[0]->phone,
"drv_phone2_code" => $driver[0]->phone2_code,
"drv_phone2_val" => $driver[0]->phone2,
"drv_addr" => $driver[0]->fulladdress,
"drv_cgroup_id" => $driver[0]->client_group_id,
"drv_nik" => $driver[0]->nik,
"drv_dob" => $driver[0]->dob,
"drv_age" => Helper::countAge($driver[0]->dob),
"drv_gender" => $driver[0]->gender,
"drv_blood" => $driver[0]->blood,
"em_fullname" => $driver[0]->em_fullname,
"em_phone_code" => $driver[0]->em_phone_code,
"em_phone_val" => $driver[0]->em_phone,
"em_relationship" => $driver[0]->em_relationship,
"drv_ktp_img" => $driver[0]->ktp_img,
"drv_npwp_img" => $driver[0]->npwp_img,
"drv_npwp_number" => $driver[0]->npwp_number,
"drv_npwp_string" => $driver[0]->npwp_string,
"drv_license_img" => $driver[0]->license_img,
"drv_license_number" => $driver[0]->license_number,
"drv_license_exp" => $driver[0]->license_exp,
]);
OrdersVehicles::add([
"ord_id" => $order[0]->ord_id,
"ord_code" => $order[0]->ord_code,
"vhc_id" => $vehicle[0]->vhc_id,
"vhc_name" => $vehicle[0]->name,
"vhc_device_id" => $vehicle[0]->device_id,
"vhc_cat_id" => $vehicle[0]->cat_id,
"vhc_brand_id" => $vehicle[0]->brand_id,
"vhc_type_id" => $vehicle[0]->type_id,
"vhc_model_id" => $vehicle[0]->model_id,
"vhc_c_did" => $vehicle[0]->c_did,
"vhc_a_did" => $vehicle[0]->a_did,
"vhc_nopol1" => $vehicle[0]->nopol1,
"vhc_nopol2" => $vehicle[0]->nopol2,
"vhc_nopol3" => $vehicle[0]->nopol3,
"vhc_is_track_holiday" => $vehicle[0]->is_track_holiday,
"vhc_track_sch_d" => $vehicle[0]->track_sch_d,
"vhc_track_sch_h" => $vehicle[0]->track_sch_h,
"vhc_cgroup_id" => $vehicle[0]->client_group_id,
"vhc_vdr_id" => $vehicle[0]->vendor_id,
"vhc_speed_limit" => $vehicle[0]->speed_limit,
"vhc_fuel_capacity" => $vehicle[0]->fuel_capacity,
"vhc_fuel_drop_treshold" => $vehicle[0]->fuel_drop_treshold,
"vhc_max_pressure" => $vehicle[0]->max_pressure,
"vhc_fvhc_img" => $vehicle[0]->fvhc_img,
"vhc_stnk_img" => $vehicle[0]->stnk_img,
"vhc_stnk_exp" => $vehicle[0]->stnk_exp,
"vhc_vyear" => $vehicle[0]->vyear,
"vhc_cc" => $vehicle[0]->cc,
"vhc_vin" => $vehicle[0]->vin,
"vhc_en" => $vehicle[0]->en,
"vhc_vcolor" => $vehicle[0]->vcolor,
"vhc_fuel_type" => $vehicle[0]->fuel_type,
"vhc_tnkb_color" => $vehicle[0]->tnkb_color,
"vhc_regis_year" => $vehicle[0]->regis_year,
"vhc_tax_exp" => $vehicle[0]->tax_exp,
]);
// JIKA PAKAI DANA
// $url = env("API_URL_NODE") . "/order/create";
// $guzReq = new GuzzleClient();
// $respNode = $guzReq->request("POST", $url, [
// "headers" => [
// "Host" => $_SERVER["SERVER_ADDR"],
// "User-Agent" => "curl/7.65.3",
// "Accept" => "*/*",
// "Accept-Encoding" => "gzip, deflate, br",
// // 'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
// // 'Connection' => 'keep-alive',
// ],
// "json" => [
// "trx_code" => $code,
// "trx_at" => $now,
// "client_id" => $req->auth->uid,
// "client_name" => $req->auth->first_name,
// "client_phone" =>
// $req->auth->phone_code .
// " " .
// implode(" ", str_split($req->auth->phone, 4)),
// "client_mail" => $req->auth->email,
// "client_addr" => "",
// "client_prefer_type_truck" => $type_truck_name,
// "pickup_zone_title" => $pck[0]->name,
// "pickup_zone_addr" => $pck[0]->fulladdress,
// "pickup_at" => $req->pickup_at,
// "drop_zone_title" => $drop[0]->name,
// "drop_zone_addr" => $drop[0]->fulladdress,
// "admins" => $admins_data,
// ],
// ]);
// if ($respNode->getStatusCode() != 200) {
// DB::rollBack();
// $apiResp = Responses::bad_request("fail create order 0");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
// $body = json_decode($respNode->getBody()->getContents());
$dt_inst_pck_drop = [
"ord_id" => $order[0]->ord_id,
"ord_code" => $order[0]->ord_code,
"pck_id" => $pck_id,
"drop_id" => $drop_id,
"is_active" => 1,
"stts" => 1,
];
DB::table("t_orders_pck_drop")->insert($dt_inst_pck_drop);
$apiResp = Responses::created("success create order");
@ -2666,7 +2685,7 @@ class TransactionController extends Controller
if ($found_prefer === 0) {
// $tt = ConfTruckTypes::getTypeById($order[0]->prefer_truck_type);
$apiResp = Responses::not_found(
"no vehicle available with prefered type truck " . $order[0]->prefer_truck_type_name,
"no vehicle available with prefered type truck " . $order[0]->prefer_truck_type_name
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -2893,7 +2912,7 @@ class TransactionController extends Controller
$vhcs = Vehicles::getVehiclesInVendorIdsActiveNoInOrder(
"" . $vendor[0]->id,
$order[0]->prefer_truck_type,
$order[0]->prefer_truck_type
);
foreach ($vhcs as $vhc) {
if ($vhc->type_id === $order[0]->prefer_truck_type) {
@ -2906,7 +2925,7 @@ class TransactionController extends Controller
if ($found_prefer === 0) {
// $tt = ConfTruckTypes::getTypeById($order[0]->prefer_truck_type);
$apiResp = Responses::not_found(
"no vehicle available with prefered type truck " . $order[0]->prefer_truck_type_name,
"no vehicle available with prefered type truck " . $order[0]->prefer_truck_type_name
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -3108,11 +3127,11 @@ class TransactionController extends Controller
// validate if another vendor want this order
$otherVendorsWantThisOrder = OrdersVendors::getOtherVendorsWantThisOrder(
$order[0]->ord_id,
$req->auth->uid,
$req->auth->uid
);
if (count($otherVendorsWantThisOrder) > 0) {
$apiResp = Responses::bad_request(
"There other vendor want this order, if next 10 minutes the vendor not take the order, we will send email again to you",
"There other vendor want this order, if next 10 minutes the vendor not take the order, we will send email again to you"
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -3338,7 +3357,6 @@ class TransactionController extends Controller
"vhc_regis_year" => $vehicle[0]->regis_year,
"vhc_tax_exp" => $vehicle[0]->tax_exp,
]);
// $url = env("API_URL_NODE") . "/order/email_vendor_acc_order";
// $guzReq = new GuzzleClient();
// $respNode = $guzReq->request("POST", $url, [
@ -3795,7 +3813,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->seal_img_base64,
$req->seal_img_base64
);
$type = "jpeg";
if (strpos($req->seal_img_base64, "application/pdf") !== false) {
@ -3818,7 +3836,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->drv_armd_img_base64,
$req->drv_armd_img_base64
);
$type = "jpeg";
if (strpos($req->drv_armd_img_base64, "application/pdf") !== false) {
@ -3842,7 +3860,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->nopol_img_base64,
$req->nopol_img_base64
);
$type = "jpeg";
if (strpos($req->nopol_img_base64, "application/pdf") !== false) {
@ -3872,7 +3890,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$img,
$img
);
$type = "jpeg";
if (strpos($img, "application/pdf") !== false) {
@ -3903,7 +3921,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->install_seal_img_base64,
$req->install_seal_img_base64
);
$type = "jpeg";
if (strpos($req->install_seal_img_base64, "application/pdf") !== false) {
@ -3932,7 +3950,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->goods_img_base64,
$req->goods_img_base64
);
$type = "jpeg";
if (strpos($req->goods_img_base64, "application/pdf") !== false) {
@ -4079,7 +4097,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->arrived_img_base64,
$req->arrived_img_base64
);
$type = "jpeg";
if (strpos($req->arrived_img_base64, "application/pdf") !== false) {
@ -4102,7 +4120,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->handover_img_base64,
$req->handover_img_base64
);
$type = "jpeg";
if (strpos($req->handover_img_base64, "application/pdf") !== false) {
@ -4127,7 +4145,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->do_ttd_img_base64,
$req->do_ttd_img_base64
);
$type = "jpeg";
if (strpos($req->do_ttd_img_base64, "application/pdf") !== false) {
@ -4170,7 +4188,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$req->spk_img_base64,
$req->spk_img_base64
);
$type = "jpeg";
if (strpos($req->spk_img_base64, "application/pdf") !== false) {
@ -4388,7 +4406,7 @@ class TransactionController extends Controller
$clearBase64 = preg_replace(
"/^data:(image|application)\/(png|jpg|jpeg|pdf);base64,/",
"",
$img,
$img
);
$type = "jpeg";
if (strpos($img, "application/pdf") !== false) {
@ -4582,12 +4600,12 @@ class TransactionController extends Controller
$drvAppInsideCircle = Zone::insideOrdZoneCircle(
$lastLocDriverAps[0]->latitude,
$lastLocDriverAps[0]->longitude,
["zid" => $order[0]->ord_pck_zone_id],
["zid" => $order[0]->ord_pck_zone_id]
);
$drvAppInsideShape = Zone::insideOrdZoneShape(
$lastLocDriverAps[0]->latitude,
$lastLocDriverAps[0]->longitude,
["zid" => $order[0]->ord_pck_zone_id],
["zid" => $order[0]->ord_pck_zone_id]
);
if (count($drvAppInsideCircle) < 1 && count($drvAppInsideShape) < 1) {
$apiResp = Responses::bad_request("Lokasi GPS App Tracker tidak didalam zona pickup");
@ -5159,7 +5177,7 @@ class TransactionController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
} elseif ($order[0]->pck_chk_stts != OrdersPickups::CHK_STTS_SUBMIT) {
$apiResp = Responses::bad_input(
'can\'t confirm price, checker pickup has not submitted data',
'can\'t confirm price, checker pickup has not submitted data'
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -5229,7 +5247,7 @@ class TransactionController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
} elseif ($order[0]->pck_chk_stts != OrdersPickups::CHK_STTS_SUBMIT) {
$apiResp = Responses::bad_input(
'can\'t generate invoice, checker pickup has not submitted data',
'can\'t generate invoice, checker pickup has not submitted data'
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -5306,7 +5324,7 @@ class TransactionController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
} elseif ($order[0]->pck_chk_stts != OrdersPickups::CHK_STTS_SUBMIT) {
$apiResp = Responses::bad_input(
'can\'t confirm payment, checker pickup has not submitted data',
'can\'t confirm payment, checker pickup has not submitted data'
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -5389,7 +5407,7 @@ class TransactionController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
} elseif ($order[0]->drop_chk_stts != OrdersDrops::CHK_STTS_SUBMIT) {
$apiResp = Responses::bad_input(
'can\'t generate instruction payment, checker drop has not submitted data',
'can\'t generate instruction payment, checker drop has not submitted data'
);
return new Response($apiResp, $apiResp["meta"]["code"]);
}

View File

@ -131,7 +131,7 @@ class VehiclesController extends Controller
"regis_year" => $req->regis_year,
"tax_exp" => $req->tax_exp,
"kir_exp" => $req->kir_exp,
"vendor_id" => $req->vendor_id,
// "vendor_id" => $req->vendor_id,
];
$rulesInput = [
"front_vehicle_photo" => "required|string",
@ -163,7 +163,7 @@ class VehiclesController extends Controller
"regis_year" => "required|digits:4",
"tax_exp" => "required|date_format:Y-m-d",
"kir_exp" => "required|date_format:Y-m-d",
"vendor_id" => "nullable|integer|not_in:0",
// "vendor_id" => "nullable|integer|not_in:0",
];
if ($req->auth->role == Users::ROLE_VENDOR) {
@ -221,11 +221,13 @@ class VehiclesController extends Controller
"track_sch_d" => Vehicles::DEFAULT_TRACK_SCH_D,
"track_sch_h" => Vehicles::DEFAULT_TRACK_SCH_H,
"client_group_id" => $req->auth->client_group_id ?? null,
"vendor_id" => $req->auth->client_group_id ?? 1,
"crt" => $now,
"crt_by" => $req->auth->uid,
"updt" => $now,
"updt_by" => $req->auth->uid,
];
// dd($insVhc);
if ($req->model_id) {
$insVhc["model_id"] = $req->model_id;
}
@ -233,7 +235,7 @@ class VehiclesController extends Controller
$insVhc["vendor_id"] = $req->auth->uid;
$insVhc["simcard"] = 0;
} else {
$insVhc["vendor_id"] = $req->vendor_id ?? 0;
$insVhc["vendor_id"] = $req->vendor_id ?? 1;
}
$vid = Vehicles::addVehicle($insVhc);
@ -316,7 +318,7 @@ class VehiclesController extends Controller
$device_id = str_pad($req->device_id, Vehicles::MAX_DEVICE_ID, "0", STR_PAD_LEFT);
$input = [
"vid" => $vid,
"vid" => 1,
"front_vehicle_photo" => $req->fvhc_base64,
"dvc_id" => $req->dvc_id ?? 0,
"simcard" => $req->simcard,
@ -346,7 +348,7 @@ class VehiclesController extends Controller
"regis_year" => $req->regis_year,
"tax_exp" => $req->tax_exp,
"kir_exp" => $req->kir_exp,
"vendor_id" => $req->vendor_id,
// "vendor_id" => $req->vendor_id,
];
$rulesInput = [
"vid" => "required|integer|not_in:0",
@ -379,7 +381,7 @@ class VehiclesController extends Controller
"regis_year" => "required|digits:4",
"tax_exp" => "required|date_format:Y-m-d",
"kir_exp" => "required|date_format:Y-m-d",
"vendor_id" => "nullable|integer|not_in:0",
// "vendor_id" => "nullable|integer|not_in:0",
];
if ($req->auth->role == Users::ROLE_VENDOR) {
@ -471,6 +473,7 @@ class VehiclesController extends Controller
"is_track_holiday" => Vehicles::DEFAULT_TRACK_HOLIDAY,
"track_sch_d" => Vehicles::DEFAULT_TRACK_SCH_D,
"track_sch_h" => Vehicles::DEFAULT_TRACK_SCH_H,
"vendor_id" => 1,
"updt" => $now,
"updt_by" => $req->auth->uid,
];
@ -481,7 +484,7 @@ class VehiclesController extends Controller
$updtVhc["vendor_id"] = $req->auth->uid;
// $updtVhc["simcard"] = (int) $uniqDeviceId[0]->simcard;
} else {
$updtVhc["vendor_id"] = $req->vendor_id ?? 0;
$updtVhc["vendor_id"] = $req->vendor_id ?? 1;
}
Vehicles::updateVehicle($vid, $updtVhc);

View File

@ -78,9 +78,7 @@ class ZoneController extends Controller
$zone[0]->boundary_bounds = json_decode($zone[0]->boundary_bounds);
}
if ($zone[0]->boundary_latlngs) {
$zone[0]->boundary_latlngs = json_decode(
$zone[0]->boundary_latlngs
);
$zone[0]->boundary_latlngs = json_decode($zone[0]->boundary_latlngs);
}
unset($zone[0]->boundary_points);
@ -136,9 +134,7 @@ class ZoneController extends Controller
$zone[0]->boundary_bounds = json_decode($zone[0]->boundary_bounds);
}
if ($zone[0]->boundary_latlngs) {
$zone[0]->boundary_latlngs = json_decode(
$zone[0]->boundary_latlngs
);
$zone[0]->boundary_latlngs = json_decode($zone[0]->boundary_latlngs);
}
unset($zone[0]->boundary_points);
@ -233,9 +229,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -307,9 +301,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -336,16 +328,13 @@ class ZoneController extends Controller
"boundary_type" => $req->boundary_type,
"boundary_hex_color" => strtoupper($req->boundary_hex_color),
"boundary_latlngs" => json_encode($req->boundary_latlngs),
"boundary_bounds" => $req->boundary_bounds
? json_encode($req->boundary_bounds)
: null, // $req->boundary_bounds ?? null,
"boundary_bounds" => $req->boundary_bounds ? json_encode($req->boundary_bounds) : null, // $req->boundary_bounds ?? null,
"boundary_radius" => $req->boundary_radius ?? 0,
"boundary_diameter" => $req->boundary_diameter ?? 0,
"boundary_area" => $req->boundary_area ?? 0,
"boundary_ha" => $req->boundary_ha ?? 0,
"status" => $req->status,
"client_group_id" =>
$req->zone_client ?? ($user[0]->client_group_id ?? null),
"client_group_id" => $req->zone_client ?? ($user[0]->client_group_id ?? null),
"crt" => $now,
"crt_by" => $req->auth->uid,
"updt" => $now,
@ -356,14 +345,9 @@ class ZoneController extends Controller
$insZone["boundary_points"] = "ST_GeomFromText('MULTIPOINT(";
foreach ($req->boundary_latlngs as $key => $val) {
$insZone["boundary_points"] .=
$val["lng"] . " " . $val["lat"] . ", ";
$insZone["boundary_points"] .= $val["lng"] . " " . $val["lat"] . ", ";
}
$insZone["boundary_points"] = substr(
$insZone["boundary_points"],
0,
-2
); // remove 2 last character
$insZone["boundary_points"] = substr($insZone["boundary_points"], 0, -2); // remove 2 last character
$insZone["boundary_points"] .= ")')";
$insZone["boundary_points"] = DB::raw($insZone["boundary_points"]);
@ -433,9 +417,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -454,9 +436,7 @@ class ZoneController extends Controller
}
}
if ($notSameUser) {
$apiResp = Responses::bad_request(
"zone name has been used"
);
$apiResp = Responses::bad_request("zone name has been used");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
@ -478,16 +458,13 @@ class ZoneController extends Controller
"boundary_type" => $req->boundary_type,
"boundary_hex_color" => strtoupper($req->boundary_hex_color),
"boundary_latlngs" => json_encode($req->boundary_latlngs),
"boundary_bounds" => $req->boundary_bounds
? json_encode($req->boundary_bounds)
: null, // $req->boundary_bounds ?? null,
"boundary_bounds" => $req->boundary_bounds ? json_encode($req->boundary_bounds) : null, // $req->boundary_bounds ?? null,
"boundary_radius" => $req->boundary_radius ?? 0,
"boundary_diameter" => $req->boundary_diameter ?? 0,
"boundary_area" => $req->boundary_area ?? 0,
"boundary_ha" => $req->boundary_ha ?? 0,
"status" => $req->status,
"client_group_id" =>
$req->zone_client ?? ($user[0]->client_group_id ?? null),
"client_group_id" => $req->zone_client ?? ($user[0]->client_group_id ?? null),
"updt" => $now,
"updt_by" => $req->auth->uid,
];
@ -496,18 +473,11 @@ class ZoneController extends Controller
$updtZone["boundary_points"] = "ST_GeomFromText('MULTIPOINT(";
foreach ($req->boundary_latlngs as $key => $val) {
$updtZone["boundary_points"] .=
$val["lng"] . " " . $val["lat"] . ", ";
$updtZone["boundary_points"] .= $val["lng"] . " " . $val["lat"] . ", ";
}
$updtZone["boundary_points"] = substr(
$updtZone["boundary_points"],
0,
-2
); // remove 2 last character
$updtZone["boundary_points"] = substr($updtZone["boundary_points"], 0, -2); // remove 2 last character
$updtZone["boundary_points"] .= ")')";
$updtZone["boundary_points"] = DB::raw(
$updtZone["boundary_points"]
);
$updtZone["boundary_points"] = DB::raw($updtZone["boundary_points"]);
Zone::updateZone($zid, $updtZone);
@ -537,9 +507,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -585,9 +553,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -599,15 +565,14 @@ class ZoneController extends Controller
}
}
// $zones = Zone::getActiveZones($req->cptid, Zone::ZONE_TYPE_WAREHOUSE, $req->workflow_type);
$zones = Zone::getActiveZones(
$req->cptid,
Zone::ZONE_TYPE_WAREHOUSE,
[Zone::ZONE_TYPE_WAREHOUSE, Zone::ZONE_TYPE_AREA],
$req->workflow_type
);
if (count($zones) < 1) {
$apiResp = Responses::not_found(
"no available zones for client " . $client[0]->c_name
);
$apiResp = Responses::not_found("no available zones for client " . $client[0]->c_name);
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -643,9 +608,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -727,9 +690,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -748,9 +709,7 @@ class ZoneController extends Controller
}
}
if ($notSameUser) {
$apiResp = Responses::bad_request(
"zone name has been used"
);
$apiResp = Responses::bad_request("zone name has been used");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
@ -791,16 +750,13 @@ class ZoneController extends Controller
"boundary_type" => $req->boundary_type,
"boundary_hex_color" => strtoupper($req->boundary_hex_color),
"boundary_latlngs" => json_encode($req->boundary_latlngs),
"boundary_bounds" => $req->boundary_bounds
? json_encode($req->boundary_bounds)
: null, // $req->boundary_bounds ?? null,
"boundary_bounds" => $req->boundary_bounds ? json_encode($req->boundary_bounds) : null, // $req->boundary_bounds ?? null,
"boundary_radius" => $req->boundary_radius ?? 0,
"boundary_diameter" => $req->boundary_diameter ?? 0,
"boundary_area" => $req->boundary_area ?? 0,
"boundary_ha" => $req->boundary_ha ?? 0,
"status" => $req->status,
"client_group_id" =>
$req->zone_client ?? ($user[0]->client_group_id ?? null),
"client_group_id" => $req->zone_client ?? ($user[0]->client_group_id ?? null),
"updt" => $now,
"updt_by" => $req->auth->uid,
];
@ -809,18 +765,11 @@ class ZoneController extends Controller
$updtZone["boundary_points"] = "ST_GeomFromText('MULTIPOINT(";
foreach ($req->boundary_latlngs as $key => $val) {
$updtZone["boundary_points"] .=
$val["lng"] . " " . $val["lat"] . ", ";
$updtZone["boundary_points"] .= $val["lng"] . " " . $val["lat"] . ", ";
}
$updtZone["boundary_points"] = substr(
$updtZone["boundary_points"],
0,
-2
); // remove 2 last character
$updtZone["boundary_points"] = substr($updtZone["boundary_points"], 0, -2); // remove 2 last character
$updtZone["boundary_points"] .= ")')";
$updtZone["boundary_points"] = DB::raw(
$updtZone["boundary_points"]
);
$updtZone["boundary_points"] = DB::raw($updtZone["boundary_points"]);
Zone::updateZone($req->zid, $updtZone);
@ -830,25 +779,16 @@ class ZoneController extends Controller
$drops = Zone::getZoneById($req->zid, ["region_name" => 1]);
if (count($drops) < 1) {
$apiResp = Responses::not_found(
"Lokasi pengantaran tidak ditemukan"
);
$apiResp = Responses::not_found("Lokasi pengantaran tidak ditemukan");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
if (empty($drops[0]->boundary_points)) {
$apiResp = Responses::bad_request(
"Lokasi pengantaran tidak valid"
);
$apiResp = Responses::bad_request("Lokasi pengantaran tidak valid");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
foreach ($drops as $iDrop => $drop) {
if (
$drop->prid == 0 ||
$drop->ktid == 0 ||
$drop->kcid == 0 ||
$drop->klid == 0
) {
if ($drop->prid == 0 || $drop->ktid == 0 || $drop->kcid == 0 || $drop->klid == 0) {
$apiResp = Responses::bad_request(
"Zonasi wilayah(provinsi, kecamatan, ...) lokasi pengantaran " .
$drop->name .
@ -858,8 +798,7 @@ class ZoneController extends Controller
}
$drops[$iDrop]->inpt_pic_name = $order->drop_pic_name;
$drops[$iDrop]->inpt_pic_phone_code = 62;
$drops[$iDrop]->inpt_pic_phone_val =
(int) $order->drop_pic_phone_val;
$drops[$iDrop]->inpt_pic_phone_val = (int) $order->drop_pic_phone_val;
$drops[$iDrop]->inpt_pic_mail = null;
$updtDrop = [
@ -973,9 +912,7 @@ class ZoneController extends Controller
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input(
$isValidInput->messages()->first()
);
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
@ -1014,25 +951,16 @@ class ZoneController extends Controller
$drops = Zone::getZoneById($req->drop_zid, ["region_name" => 1]);
if (count($drops) < 1) {
$apiResp = Responses::not_found(
"Lokasi pengantaran tidak ditemukan"
);
$apiResp = Responses::not_found("Lokasi pengantaran tidak ditemukan");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
if (empty($drops[0]->boundary_points)) {
$apiResp = Responses::bad_request(
"Lokasi pengantaran tidak valid"
);
$apiResp = Responses::bad_request("Lokasi pengantaran tidak valid");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
foreach ($drops as $iDrop => $drop) {
if (
$drop->prid == 0 ||
$drop->ktid == 0 ||
$drop->kcid == 0 ||
$drop->klid == 0
) {
if ($drop->prid == 0 || $drop->ktid == 0 || $drop->kcid == 0 || $drop->klid == 0) {
$apiResp = Responses::bad_request(
"Zonasi wilayah(provinsi, kecamatan, ...) lokasi pengantaran " .
$drop->name .
@ -1042,8 +970,7 @@ class ZoneController extends Controller
}
$drops[$iDrop]->inpt_pic_name = $order->drop_pic_name;
$drops[$iDrop]->inpt_pic_phone_code = 62;
$drops[$iDrop]->inpt_pic_phone_val =
(int) $order->drop_pic_phone_val;
$drops[$iDrop]->inpt_pic_phone_val = (int) $order->drop_pic_phone_val;
$drops[$iDrop]->inpt_pic_mail = null;
$updtDrop = [

View File

@ -24,214 +24,214 @@ class AuthUser
if ($request->auth->role == Users::ROLE_ADMIN) {
// views
if ($request->is("gps/home/*")) {
} elseif ($request->is("gps/home")) {
} elseif ($request->is("gps/dashboard/*")) {
} elseif ($request->is("gps/dashboard")) {
} elseif ($request->is("gps/drivers/*")) {
} elseif ($request->is("gps/drivers")) {
} elseif ($request->is("gps/transactions/*")) {
} elseif ($request->is("gps/transactions")) {
} elseif ($request->is("gps/vehicles/*")) {
} elseif ($request->is("gps/vehicles")) {
} elseif ($request->is("gps/clients/*")) {
} elseif ($request->is("gps/clients")) {
} elseif ($request->is("gps/zone/*")) {
} elseif ($request->is("gps/zone")) {
} elseif ($request->is("gps/users/*")) {
} elseif ($request->is("gps/users")) {
} elseif ($request->is("gps/profile/*")) {
} elseif ($request->is("gps/profile")) {
} elseif ($request->is("gps/config/*")) {
} elseif ($request->is("gps/config")) {
} elseif ($request->is("gps/pocket/*")) {
} elseif ($request->is("gps/pocket")) {
} elseif ($request->is("gps/lgb_types/*")) {
} elseif ($request->is("gps/lgb_types")) {
} elseif ($request->is("gps/lgb_masters/*")) {
} elseif ($request->is("gps/lgb_masters")) {
} elseif ($request->is("gps/insurances/*")) {
} elseif ($request->is("gps/static_insurances/*")) {
if ($request->is("home/*")) {
} elseif ($request->is("home")) {
} elseif ($request->is("dashboard/*")) {
} elseif ($request->is("dashboard")) {
} elseif ($request->is("drivers/*")) {
} elseif ($request->is("drivers")) {
} elseif ($request->is("transactions/*")) {
} elseif ($request->is("transactions")) {
} elseif ($request->is("vehicles/*")) {
} elseif ($request->is("vehicles")) {
} elseif ($request->is("clients/*")) {
} elseif ($request->is("clients")) {
} elseif ($request->is("zone/*")) {
} elseif ($request->is("zone")) {
} elseif ($request->is("users/*")) {
} elseif ($request->is("users")) {
} elseif ($request->is("profile/*")) {
} elseif ($request->is("profile")) {
} elseif ($request->is("config/*")) {
} elseif ($request->is("config")) {
} elseif ($request->is("pocket/*")) {
} elseif ($request->is("pocket")) {
} elseif ($request->is("lgb_types/*")) {
} elseif ($request->is("lgb_types")) {
} elseif ($request->is("lgb_masters/*")) {
} elseif ($request->is("lgb_masters")) {
} elseif ($request->is("insurances/*")) {
} elseif ($request->is("static_insurances/*")) {
}
// api
elseif ($request->is("gps/api/conf/*")) {
} elseif ($request->is("gps/api/conf")) {
} elseif ($request->is("gps/api/osm/*")) {
} elseif ($request->is("gps/api/osm")) {
} elseif ($request->is("gps/api/region/*")) {
} elseif ($request->is("gps/api/region")) {
} elseif ($request->is("gps/api/zones/*")) {
} elseif ($request->is("gps/api/zones")) {
} elseif ($request->is("gps/api/vehicles/*")) {
} elseif ($request->is("gps/api/vehicles")) {
} elseif ($request->is("gps/api/drivers/*")) {
} elseif ($request->is("gps/api/drivers")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/clients/*")) {
} elseif ($request->is("gps/api/clients")) {
} elseif ($request->is("gps/api/tracks/*")) {
} elseif ($request->is("gps/api/tracks")) {
} elseif ($request->is("gps/api/transactions/*")) {
} elseif ($request->is("gps/api/transactions")) {
} elseif ($request->is("gps/api/transactions_spc/*")) {
} elseif ($request->is("gps/api/transactions_spc")) {
} elseif ($request->is("gps/api/insurances/*")) {
} elseif ($request->is("gps/api/insurances")) {
} elseif ($request->is("gps/api/devices/*")) {
} elseif ($request->is("gps/api/devices")) {
} elseif ($request->is("gps/api/user/clients/*")) {
} elseif ($request->is("gps/api/user/clients")) {
} elseif ($request->is("gps/api/a_items/*")) {
} elseif ($request->is("gps/api/a_items")) {
} elseif ($request->is("gps/api/admin/*")) {
} elseif ($request->is("gps/api/admin")) {
} elseif ($request->is("gps/api/static_insurances/*")) {
} elseif ($request->is("gps/api/static_insurances")) {
} elseif ($request->is("gps/api/menu_permissions/*")) {
} elseif ($request->is("gps/api/menu_permissions")) {
} elseif ($request->is("gps/api/pocket/*")) {
} elseif ($request->is("gps/api/pocket")) {
} elseif ($request->is("gps/api/lgb_types/*")) {
} elseif ($request->is("gps/api/lgb_types")) {
} elseif ($request->is("gps/api/lgb_keys/*")) {
} elseif ($request->is("gps/api/lgb_keys")) {
} elseif ($request->is("gps/api/dtypes/*")) {
} elseif ($request->is("gps/api/dtypes")) {
} elseif ($request->is("gps/api/dana/*")) {
} elseif ($request->is("gps/api/dana")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/conf/*")) {
} elseif ($request->is("api/conf")) {
} elseif ($request->is("api/osm/*")) {
} elseif ($request->is("api/osm")) {
} elseif ($request->is("api/region/*")) {
} elseif ($request->is("api/region")) {
} elseif ($request->is("api/zones/*")) {
} elseif ($request->is("api/zones")) {
} elseif ($request->is("api/vehicles/*")) {
} elseif ($request->is("api/vehicles")) {
} elseif ($request->is("api/drivers/*")) {
} elseif ($request->is("api/drivers")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/clients/*")) {
} elseif ($request->is("api/clients")) {
} elseif ($request->is("api/tracks/*")) {
} elseif ($request->is("api/tracks")) {
} elseif ($request->is("api/transactions/*")) {
} elseif ($request->is("api/transactions")) {
} elseif ($request->is("api/transactions_spc/*")) {
} elseif ($request->is("api/transactions_spc")) {
} elseif ($request->is("api/insurances/*")) {
} elseif ($request->is("api/insurances")) {
} elseif ($request->is("api/devices/*")) {
} elseif ($request->is("api/devices")) {
} elseif ($request->is("api/user/clients/*")) {
} elseif ($request->is("api/user/clients")) {
} elseif ($request->is("api/a_items/*")) {
} elseif ($request->is("api/a_items")) {
} elseif ($request->is("api/admin/*")) {
} elseif ($request->is("api/admin")) {
} elseif ($request->is("api/static_insurances/*")) {
} elseif ($request->is("api/static_insurances")) {
} elseif ($request->is("api/menu_permissions/*")) {
} elseif ($request->is("api/menu_permissions")) {
} elseif ($request->is("api/pocket/*")) {
} elseif ($request->is("api/pocket")) {
} elseif ($request->is("api/lgb_types/*")) {
} elseif ($request->is("api/lgb_types")) {
} elseif ($request->is("api/lgb_keys/*")) {
} elseif ($request->is("api/lgb_keys")) {
} elseif ($request->is("api/dtypes/*")) {
} elseif ($request->is("api/dtypes")) {
} elseif ($request->is("api/dana/*")) {
} elseif ($request->is("api/dana")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}
} elseif ($request->auth->role == Users::ROLE_VENDOR) {
// views
if ($request->is("gps/home/*")) {
} elseif ($request->is("gps/home")) {
} elseif ($request->is("gps/dashboard/*")) {
} elseif ($request->is("gps/dashboard")) {
} elseif ($request->is("gps/checklist/*")) {
} elseif ($request->is("gps/checklist")) {
} elseif ($request->is("gps/zone/*")) {
} elseif ($request->is("gps/zone")) {
} elseif ($request->is("gps/drivers/*")) {
} elseif ($request->is("gps/drivers")) {
} elseif ($request->is("gps/vehicles/*")) {
} elseif ($request->is("gps/vehicles")) {
} elseif ($request->is("gps/profile/*")) {
} elseif ($request->is("gps/transactions/*")) {
} elseif ($request->is("gps/transactions")) {
} elseif ($request->is("gps/profile")) {
} elseif ($request->is("gps/user/vendor/*")) {
} elseif ($request->is("gps/user/vendor")) {
if ($request->is("home/*")) {
} elseif ($request->is("home")) {
} elseif ($request->is("dashboard/*")) {
} elseif ($request->is("dashboard")) {
} elseif ($request->is("checklist/*")) {
} elseif ($request->is("checklist")) {
} elseif ($request->is("zone/*")) {
} elseif ($request->is("zone")) {
} elseif ($request->is("drivers/*")) {
} elseif ($request->is("drivers")) {
} elseif ($request->is("vehicles/*")) {
} elseif ($request->is("vehicles")) {
} elseif ($request->is("profile/*")) {
} elseif ($request->is("transactions/*")) {
} elseif ($request->is("transactions")) {
} elseif ($request->is("profile")) {
} elseif ($request->is("user/vendor/*")) {
} elseif ($request->is("user/vendor")) {
}
// api
elseif ($request->is("gps/api/conf")) {
} elseif ($request->is("gps/api/osm/*")) {
} elseif ($request->is("gps/api/osm")) {
} elseif ($request->is("gps/api/region/*")) {
} elseif ($request->is("gps/api/region")) {
} elseif ($request->is("gps/api/tracks/*")) {
} elseif ($request->is("gps/api/tracks")) {
} elseif ($request->is("gps/api/vehicles/*")) {
} elseif ($request->is("gps/api/vehicles")) {
} elseif ($request->is("gps/api/drivers/*")) {
} elseif ($request->is("gps/api/drivers")) {
} elseif ($request->is("gps/api/user/vendor/*")) {
} elseif ($request->is("gps/api/user/vendor")) {
} elseif ($request->is("gps/api/transactions_spc/*")) {
} elseif ($request->is("gps/api/transactions_spc")) {
} elseif ($request->is("gps/api/zones/*")) {
} elseif ($request->is("gps/api/zones")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/conf")) {
} elseif ($request->is("api/osm/*")) {
} elseif ($request->is("api/osm")) {
} elseif ($request->is("api/region/*")) {
} elseif ($request->is("api/region")) {
} elseif ($request->is("api/tracks/*")) {
} elseif ($request->is("api/tracks")) {
} elseif ($request->is("api/vehicles/*")) {
} elseif ($request->is("api/vehicles")) {
} elseif ($request->is("api/drivers/*")) {
} elseif ($request->is("api/drivers")) {
} elseif ($request->is("api/user/vendor/*")) {
} elseif ($request->is("api/user/vendor")) {
} elseif ($request->is("api/transactions_spc/*")) {
} elseif ($request->is("api/transactions_spc")) {
} elseif ($request->is("api/zones/*")) {
} elseif ($request->is("api/zones")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}
} elseif ($request->auth->role == Users::ROLE_CLIENT_ADMIN) {
// views
if ($request->is("gps/home/*")) {
} elseif ($request->is("gps/home")) {
} elseif ($request->is("gps/dashboard/*")) {
} elseif ($request->is("gps/dashboard")) {
} elseif ($request->is("gps/zone/*")) {
} elseif ($request->is("gps/zone")) {
} elseif ($request->is("gps/profile/*")) {
} elseif ($request->is("gps/profile")) {
} elseif ($request->is("gps/user/clients/*")) {
} elseif ($request->is("gps/user/clients")) {
if ($request->is("home/*")) {
} elseif ($request->is("home")) {
} elseif ($request->is("dashboard/*")) {
} elseif ($request->is("dashboard")) {
} elseif ($request->is("zone/*")) {
} elseif ($request->is("zone")) {
} elseif ($request->is("profile/*")) {
} elseif ($request->is("profile")) {
} elseif ($request->is("user/clients/*")) {
} elseif ($request->is("user/clients")) {
}
// api
elseif ($request->is("gps/api/conf")) {
} elseif ($request->is("gps/api/osm/*")) {
} elseif ($request->is("gps/api/osm")) {
} elseif ($request->is("gps/api/region/*")) {
} elseif ($request->is("gps/api/region")) {
} elseif ($request->is("gps/api/zones/*")) {
} elseif ($request->is("gps/api/zones")) {
} elseif ($request->is("gps/api/tracks/*")) {
} elseif ($request->is("gps/api/tracks")) {
} elseif ($request->is("gps/api/user/clients/*")) {
} elseif ($request->is("gps/api/user/clients")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/conf")) {
} elseif ($request->is("api/osm/*")) {
} elseif ($request->is("api/osm")) {
} elseif ($request->is("api/region/*")) {
} elseif ($request->is("api/region")) {
} elseif ($request->is("api/zones/*")) {
} elseif ($request->is("api/zones")) {
} elseif ($request->is("api/tracks/*")) {
} elseif ($request->is("api/tracks")) {
} elseif ($request->is("api/user/clients/*")) {
} elseif ($request->is("api/user/clients")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}
} elseif ($request->auth->role == Users::ROLE_CHECKER) {
// views
if ($request->is("gps/user/checker/*")) {
} elseif ($request->is("gps/user/checker")) {
} elseif ($request->is("gps/profile/*")) {
} elseif ($request->is("gps/profile")) {
if ($request->is("user/checker/*")) {
} elseif ($request->is("user/checker")) {
} elseif ($request->is("profile/*")) {
} elseif ($request->is("profile")) {
}
// api
elseif ($request->is("gps/api/user/checker/*")) {
} elseif ($request->is("gps/api/user/checker")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/user/checker/*")) {
} elseif ($request->is("api/user/checker")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}
} elseif ($request->auth->role == Users::ROLE_FINANCE) {
// views
if ($request->is("gps/finance/*")) {
} elseif ($request->is("gps/profile/*")) {
} elseif ($request->is("gps/profile")) {
if ($request->is("finance/*")) {
} elseif ($request->is("profile/*")) {
} elseif ($request->is("profile")) {
}
// api
elseif ($request->is("gps/api/finance/*")) {
} elseif ($request->is("gps/api/finance")) {
} elseif ($request->is("gps/api/a_items/*")) {
} elseif ($request->is("gps/api/a_items")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/dana/*")) {
} elseif ($request->is("gps/api/dana")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/finance/*")) {
} elseif ($request->is("api/finance")) {
} elseif ($request->is("api/a_items/*")) {
} elseif ($request->is("api/a_items")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/dana/*")) {
} elseif ($request->is("api/dana")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}
} elseif ($request->auth->role == Users::ROLE_SPECIAL_TRACKING) {
// views
if ($request->is("gps/dashboard/*")) {
} elseif ($request->is("gps/dashboard")) {
if ($request->is("dashboard/*")) {
} elseif ($request->is("dashboard")) {
}
// api
elseif ($request->is("gps/api/tracks/*")) {
} elseif ($request->is("gps/api/tracks")) {
} elseif ($request->is("gps/api/users/*")) {
} elseif ($request->is("gps/api/users")) {
} elseif ($request->is("gps/api/universal/*")) {
} elseif ($request->is("gps/api/universal")) {
elseif ($request->is("api/tracks/*")) {
} elseif ($request->is("api/tracks")) {
} elseif ($request->is("api/users/*")) {
} elseif ($request->is("api/users")) {
} elseif ($request->is("api/universal/*")) {
} elseif ($request->is("api/universal")) {
} else {
return abort(403, "Unauthorized action.");
}

View File

@ -68,19 +68,14 @@ class Drivers extends Model
$params = [];
$where_vendor = "";
$join_vendor = "";
if ($auth->role != Users::ROLE_ADMIN) {
$where_vendor .= " AND d.vendor_id = " . $auth->uid;
}
// if ($auth->role != Users::ROLE_ADMIN) {
// $where_vendor .= " AND d.vendor_id = " . $auth->uid;
// }
if (isset($filter["status"])) {
$where_vendor .= " AND d.status = ?";
array_push($params, $filter["status"]);
}
return DB::select(
"SELECT * FROM t_drivers as d WHERE dlt is null " .
$where_vendor .
";",
$params
);
return DB::select("SELECT * FROM t_drivers as d WHERE dlt is null " . $where_vendor . ";", $params);
}
public static function showDriverById($did)
@ -99,34 +94,22 @@ class Drivers extends Model
public static function getDriverById($did)
{
return DB::select(
"SELECT * FROM t_drivers WHERE dlt is null AND id = ? LIMIT 1;",
[$did]
);
return DB::select("SELECT * FROM t_drivers WHERE dlt is null AND id = ? LIMIT 1;", [$did]);
}
public static function getDriverByEmail($email)
{
return DB::select(
"SELECT * FROM t_drivers WHERE dlt is null AND email = ? LIMIT 2;",
[$email]
);
return DB::select("SELECT * FROM t_drivers WHERE dlt is null AND email = ? LIMIT 2;", [$email]);
}
public static function getDriverByPhone($phone)
{
return DB::select(
"SELECT * FROM t_drivers WHERE dlt is null AND phone = ? LIMIT 2;",
[$phone]
);
return DB::select("SELECT * FROM t_drivers WHERE dlt is null AND phone = ? LIMIT 2;", [$phone]);
}
public static function getDriverByNik($nik)
{
return DB::select(
"SELECT * FROM t_drivers WHERE dlt is null AND nik = ? LIMIT 2;",
[$nik]
);
return DB::select("SELECT * FROM t_drivers WHERE dlt is null AND nik = ? LIMIT 2;", [$nik]);
}
public static function getDriverByIdAllData($did)

View File

@ -20,12 +20,16 @@ class Dummy extends Model
public static function updateDummyTrack($data)
{
return DB::table("t_dummy_tracks")->where("id", $data['id'])->update($data);
return DB::table("t_dummy_tracks")
->where("id", $data["id"])
->update($data);
}
public static function deleteDummyTrack($data)
{
return DB::table("t_dummy_tracks")->where("id", $data['id'])->delete();
return DB::table("t_dummy_tracks")
->where("id", $data["id"])
->delete();
}
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -39,9 +43,9 @@ class Dummy extends Model
/**
* https://stackoverflow.com/questions/574691/mysql-great-circle-distance-haversine-formula
* miles: 3958.756 || 3959
* km: 6371
* meters: 6371000
* more accurate using km/meters than miles i think ~ rafifmulia
* km: 6371
* meters: 6371000
* more accurate using km/meters than miles i think ~
*/
public static function nearestHubInCircle($lat, $lng)
{
@ -51,9 +55,9 @@ class Dummy extends Model
HAVING distance <= 800
ORDER BY distance;";
$params = [
'lat1' => $lat,
'lat2' => $lat,
'lng' => $lng,
"lat1" => $lat,
"lat2" => $lat,
"lng" => $lng,
];
return DB::select($query, $params);
}

View File

@ -65,6 +65,7 @@ class Orders extends Model
,ord_pck.pck_name,ord_pck.stts_pck,ord_pck.pck_addr
,ord_drop.drop_name,ord_drop.stts_drop,ord_drop.drop_addr
,ord_c.c_name
,ord_c.c_pt_name
,ord_vdr.vdr_name
,ord_drv.drv_name
,ord_vhc.vhc_id,ord_vhc.vhc_name,ord_vhc.vhc_nopol1,ord_vhc.vhc_nopol2,ord_vhc.vhc_nopol3
@ -140,7 +141,7 @@ class Orders extends Model
Orders::STTS_GO,
Orders::STTS_PCK,
Orders::STTS_ARV,
Orders::STTS_DROP,
Orders::STTS_DROP
);
}
@ -155,7 +156,7 @@ class Orders extends Model
Orders::STTS_DROP,
Orders::STTS_CLIENT_PAY,
Orders::STTS_VENDOR_PAYED,
Orders::STTS_CLOSE,
Orders::STTS_CLOSE
);
}
@ -168,7 +169,7 @@ class Orders extends Model
Orders::STTS_GO,
Orders::STTS_PCK,
Orders::STTS_ARV,
Orders::STTS_DROP,
Orders::STTS_DROP
);
}
if (isset($filter["is_accident"])) {
@ -239,7 +240,7 @@ class Orders extends Model
$order_by .
"
;",
$params,
$params
);
}
@ -459,7 +460,7 @@ class Orders extends Model
LIMIT " .
$filter["limit"] .
";",
$params,
$params
);
}
@ -491,7 +492,7 @@ class Orders extends Model
FROM t_orders as ord
INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
WHERE ord.dlt is null AND ord.status IN (?) AND ord_c.c_id = ?;",
[$stts, $client_id],
[$stts, $client_id]
);
}
@ -505,7 +506,7 @@ class Orders extends Model
INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
WHERE ord.dlt is null AND ord_c.c_id = ?
LIMIT ?;",
[$client_id, $limit],
[$client_id, $limit]
);
}
@ -609,7 +610,7 @@ class Orders extends Model
$limit .
"
",
$params,
$params
);
}
@ -632,4 +633,4 @@ class Orders extends Model
->where("id", $ordid)
->delete();
}
}
}

View File

@ -300,6 +300,7 @@ class Tracks extends Model
$_query = DB::select($_query, [$_list->vid]);
$_list->lst_heartbeat = count($_query) == 0 ? "" : $_query[0]->lst_heartbeat;
}
// em
return $list;
}
@ -552,4 +553,4 @@ class Tracks extends Model
$params
);
}
}
}

View File

@ -37,9 +37,9 @@ class Vehicles extends Model
$select = "";
$where = "";
if ($auth->role == Users::ROLE_VENDOR) {
$where .= " AND v.vendor_id = " . $auth->uid;
}
// if ($auth->role == Users::ROLE_VENDOR) {
// $where .= " AND v.vendor_id = " . $auth->uid;
// }
if (isset($filter["company"])) {
$where .= " AND client.id = ?";
@ -106,10 +106,7 @@ class Vehicles extends Model
public static function getVehicleById($vid)
{
return DB::select(
"SELECT * FROM t_vehicles WHERE dlt is null AND id = ? LIMIT 1;",
[$vid]
);
return DB::select("SELECT * FROM t_vehicles WHERE dlt is null AND id = ? LIMIT 1;", [$vid]);
}
public static function getVehicleByDeviceId($device_id)
@ -122,10 +119,7 @@ class Vehicles extends Model
public static function getVehicleBySimcard($simcard)
{
return DB::select(
"SELECT * FROM t_vehicles WHERE dlt is null AND simcard = ? LIMIT 1;",
[$simcard]
);
return DB::select("SELECT * FROM t_vehicles WHERE dlt is null AND simcard = ? LIMIT 1;", [$simcard]);
}
public static function getVehicleByPlatNo($nopol1, $nopol2, $nopol3)
@ -177,9 +171,7 @@ class Vehicles extends Model
$where_in = substr($where_in, 0, -1);
}
return DB::select(
"SELECT * FROM t_vehicles WHERE dlt is null AND id IN (" .
$where_in .
");",
"SELECT * FROM t_vehicles WHERE dlt is null AND id IN (" . $where_in . ");",
$params
);
}
@ -227,10 +219,8 @@ class Vehicles extends Model
);
}
public static function getVehiclesInVendorIdsActiveNoInOrder(
$vendorIds,
$prefer_truck_type = 0
) {
public static function getVehiclesInVendorIdsActiveNoInOrder($vendorIds, $prefer_truck_type = 0)
{
$params = [];
$where_in = "";
$where_where = "";
@ -305,30 +295,22 @@ class Vehicles extends Model
// default 1: truck
public static function listCats()
{
return DB::select(
"SELECT * FROM t_vehicles_cats WHERE dlt is null AND is_active = 1;"
);
return DB::select("SELECT * FROM t_vehicles_cats WHERE dlt is null AND is_active = 1;");
}
// default 1: unknown
public static function listBrands()
{
return DB::select(
"SELECT * FROM t_vehicles_brands WHERE dlt is null AND is_active = 1;"
);
return DB::select("SELECT * FROM t_vehicles_brands WHERE dlt is null AND is_active = 1;");
}
public static function listTypes()
{
return DB::select(
"SELECT * FROM t_vehicles_types WHERE dlt is null AND is_active = 1;"
);
return DB::select("SELECT * FROM t_vehicles_types WHERE dlt is null AND is_active = 1;");
}
public static function listModels()
{
return DB::select(
"SELECT * FROM t_vehicles_models WHERE dlt is null AND is_active = 1;"
);
return DB::select("SELECT * FROM t_vehicles_models WHERE dlt is null AND is_active = 1;");
}
}

View File

@ -107,33 +107,70 @@ class Zone extends Model
// ;");
}
// public static function getActiveZones($client_group_id = 0, $type = 0, $workflow_type = 0)
// {
// $where_client_group_id = "";
// if ($client_group_id != 0) {
// $where_client_group_id = " AND z.client_group_id = " . $client_group_id;
// }
// $where_type = "";
// if ($type != 0) {
// $where_type = " AND z.type = " . $type;
// }
// $where_workflow_type = "";
// if ($workflow_type != 0) {
// $where_workflow_type = " AND z.workflow_type = " . $workflow_type;
// }
// return DB::select(
// "SELECT
// z.*
// FROM t_zones as z WHERE z.dlt is null AND z.status = " .
// Zone::STATUS_ACTIVE .
// $where_client_group_id .
// $where_type .
// $where_workflow_type .
// " ;"
// );
// }
public static function getActiveZones($client_group_id = 0, $type = 0, $workflow_type = 0)
{
$where_client_group_id = "";
if ($client_group_id != 0) {
$where_client_group_id = " AND z.client_group_id = " . $client_group_id;
$where_client_group_id = " AND z.client_group_id = " . intval($client_group_id);
}
$where_type = "";
if ($type != 0) {
$where_type = " AND z.type = " . $type;
if (is_array($type)) {
$type_list = implode(",", array_map("intval", $type));
$where_type = " AND z.type IN (" . $type_list . ")";
} else {
$where_type = " AND z.type = " . intval($type);
}
}
$where_workflow_type = "";
if ($workflow_type != 0) {
$where_workflow_type = " AND z.workflow_type = " . $workflow_type;
$where_workflow_type = " AND z.workflow_type = " . intval($workflow_type);
}
return DB::select(
$sql =
"SELECT
z.*
FROM t_zones as z WHERE z.dlt is null AND z.status = " .
Zone::STATUS_ACTIVE .
$where_client_group_id .
$where_type .
$where_workflow_type .
" ;"
);
FROM t_zones as z
WHERE z.dlt IS NULL
AND z.status = " .
Zone::STATUS_ACTIVE .
$where_client_group_id .
$where_type .
$where_workflow_type .
";";
return DB::select($sql);
}
public static function showZoneById($zid)

View File

@ -391,7 +391,7 @@
if (!AllowRouteSegment1.includes(AppState.route_segment1)) {
const AllowRouteSegment2 = ['pocket'];
if (!AllowRouteSegment2.includes(AppState.route_segment2)) {
$('#subNav').addClass('d-none');
// $('#subNav').addClass('d-none');
return false;
}
}

View File

@ -12,7 +12,7 @@
<div class="card-header">
<div class="row d-flex align-items-center">
<div class="col">
<p class="card-title text-bold mb-0">Detail Pesanan</p>
<p class="card-title text-bold mb-0">Detail Job</p>
</div>
<div class="col text-end">
<button class="btn btn-secondary btn-sm" onclick="location.href='{{ route('view_transactions') }}'">Kembali</button>
@ -24,11 +24,11 @@
<div class="row d-flex">
<div class="col-5 mb-3">
<div class="row">
<div class="col-sm-12 mb-3">
{{-- <div class="col-sm-12 mb-3">
<p class="text-danger text-bold mb-0">Penjemputan dan Pengantaran</p>
</div>
</div> --}}
<div class="col-sm-12 mb-3">
<label for="" class="form-label">Tanggal Penjemputan</label>
<label for="" class="form-label">Date</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p class="mb-0"><span id="view-pickup_date_at"></span></p>
@ -36,7 +36,7 @@
</div>
</div>
<div class="col-sm-12 mb-3">
<label for="" class="form-label">Waktu Penjemputan</label>
<label for="" class="form-label">Time</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p class="mb-0"><span id="view-pickup_time_at"></span></p>
@ -48,10 +48,10 @@
<div class="col-sm-2"></div>
<div class="col-sm-5 mb-3">
<div class="row">
<div class="col-sm-12 col-12 mb-3">
{{-- <div class="col-sm-12 col-12 mb-3">
<p class="text-danger text-bold mb-0">Layanan Yang Dipilih</p>
</div>
<div class="col-sm-12 col-6 mb-3">
</div> --}}
{{-- <div class="col-sm-12 col-6 mb-3">
<label for="" class="form-label">Durasi Pengantaran</label>
<div class="card bg-light border mb-0 w-100">
<div class="card-body d-flex justify-content-between">
@ -61,9 +61,9 @@
</p>
</div>
</div>
</div>
</div> --}}
<div class="col-sm-12 col-6 mb-3">
<label for="" class="form-label">Tipe Kendaraan</label>
<label for="" class="form-label">Vehicle</label>
<div class="card bg-light border mb-0 w-100">
<div class="card-body d-flex justify-content-between">
<p class="mb-0">{{ $order->prefer_truck_type_name }}</p>
@ -75,7 +75,7 @@
</div>
<div class="row mb-3 d-flex align-items-center">
<div class="col-5 mb-3">
<label for="" class="form-label">Lokasi Penjemputan</label>
<label for="" class="form-label">Origin</label>
<div class="card bg-light border mb-0">
<div class="card-body">
{{-- <p class="text-bold mb-2">Gudang Pluit SiCepat (Jakarta)</p> --}}
@ -91,7 +91,7 @@
<span class="ion-arrow-right-c text-danger" style="font-size: 15px"></span>
</div>
<div class="col-5 mb-3">
<label for="" class="form-label">Lokasi Pengantaran</label>
<label for="" class="form-label">Destination</label>
<div class="card bg-light border mb-0">
<div class="card-body">
{{-- <p class="text-bold mb-2">Kantor Pusat SiCepat (yogyakarta)</p> --}}
@ -105,36 +105,7 @@
</div>
</div>
</div>
<div class="col-sm-6">
@if ($order->confirm_at === 0)
<div class="card">
{{-- <div class="card-header">
<div class="row d-flex align-items-center">
<div class="col">
<p class="card-title text-bold mb-0">Order History</p>
</div>
</div>
</div> --}}
<div class="card-body">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Pencarian Vendor Otomatis</p>
</div>
<div id="mapsOrder" class="mb-3"></div>
<div class="col-12">
<div class="text-end">
{{-- <button class="btn btn-danger btn-sm"
onclick="location.href='{{ route('view_transactions') }}'">Submit</button> --}}
<button id="btnSearchDriver" class="btn btn-danger btn-sm">Cari Otomatis</button>
<div id="group_btnSearchDrvSpinner" class="d-none">
<div class="spinner-border" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
</div>
</div>
</div>
@endif
{{-- <div class="col-sm-6">
<div class="card">
<div class="card-body">
<div class="col-12 mb-3">
@ -150,8 +121,6 @@
</select>
</div>
<div class="text-end">
{{-- <button class="btn btn-danger btn-sm"
onclick="location.href='{{ route('view_transactions') }}'">Pilih</button> --}}
<button id="btnChooseVendor" class="btn btn-danger btn-sm">Pilih</button>
<div id="group_btnChooseVdrSpinner" class="d-none">
<div class="spinner-border" role="status">
@ -161,7 +130,7 @@
</div>
</div>
</div>
</div>
</div> --}}
</div>
</div>
</div>
@ -178,8 +147,8 @@
}
/* .leaflet-control-container .leaflet-left {
display: none;
} */
display: none;
} */
.leaflet-left .leaflet-draw-edit-remove {
display: none;
@ -268,10 +237,7 @@
rectangle: "{{ App\Models\Zone::ZONE_BOUNDARY_RECTANGLE }}",
},
boundary_type_choose: "{{ App\Models\Zone::ZONE_BOUNDARY_CIRCLE }}",
boundary_latlngs: [{
lat: "{{ $order->pck_center_lat }}",
lng: "{{ $order->pck_center_lng }}",
}], // [{lat,lng}].
boundary_radius: 2000, // in meters. only circle
boundary_bounds: null, // {northEast:{lat,lng},southWest:{lat,lng}}. only polygon,rectangle
default_boundary_hex: '#f26e6f',

View File

@ -76,16 +76,13 @@
</div>
<div class="col-2 text-center d-flex align-items-center justify-content-center">
<label for="" class="form-label mb-0 mt-0">&nbsp;</label>
{{-- <p class="mb-0">to</p> --}}
<span class="ion-arrow-right-c text-danger" style="font-size: 15px"></span>
</div>
<div class="col-5">
<label for="" class="form-label">Lokasi Pengantaran</label>
<div class="card bg-light border mb-0">
<div class="card-body">
{{-- <p class="text-bold mb-2">Kantor Pusat SiCepat (yogyakarta)</p> --}}
<p class="text-bold mb-2">{{ $_order['drop_name'] }}</p>
{{-- <p class="mb-0">Jl. Prof. Herman Yohanes No.989, Terban, Gondokusuman, Kota Yogyakarta, Daerah Istimewa Yogyakarta 55223, Indonesia</p> --}}
<p class="mb-0">{{ $_order['drop_addr'] }}</p>
</div>
</div>

View File

@ -11,8 +11,8 @@
}
/* .select2-container {
z-index: 99999;
} */
z-index: 99999;
} */
</style>
@endsection
@ -29,7 +29,7 @@
</div>
<div class="col text-end">
{{-- <a href="#" class="btn btn-sm btn-danger" data-bs-toggle="modal" data-bs-target="#addNewClientModal">Add New Client</a> --}}
<a href="#" class="btn btn-sm btn-danger" id="btnAddNewClientModal">Tambah Client</a>
{{-- <a href="#" class="btn btn-sm btn-danger" id="btnAddNewClientModal">Tambah Client</a> --}}
</div>
<div class="col-auto text-end ps-0">
{{-- <button class="btn btn-sm btn-danger">Upload</button> --}}

View File

@ -22,8 +22,8 @@
}
/* .cLogoGroup {
display: inherit;
} */
display: inherit;
} */
#openLeftSideBar1Mobile {
display: none;
}
@ -35,11 +35,11 @@
@media (max-width: 425px) {
/* .cLogoGroup {
display: none;
}
.cNameGroup {
margin-bottom: 0!important;
} */
display: none;
}
.cNameGroup {
margin-bottom: 0!important;
} */
#openLeftSideBar1 {
display: none !important;
}
@ -234,10 +234,10 @@
</div>
<div class="form-group mb-3 w-100">
<select name="" class="form-control select2" style="width: 100%;" id="selectFiter">
<option value="3">Pekerjaan</option>
<option value="1">Kendaraan</option>
<option value="2">Pengemudi</option>
<option value="4">Riwayat Perjalanan</option>
<option value="1">Vehicle</option>
<option value="2">Driver</option>
<option value="3">Job</option>
<option value="4">Travel History</option>
</select>
</div>
<ul class="list-group" id="infoVehicles">
@ -249,7 +249,7 @@
<p id="infoVehicles-crt" class="text-muted mb-0">20-Jan-2022 23:16:18</p>
</li>
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Lokasi saat ini</p>
<p class="text-bold mb-0">Current Location</p>
<p id="infoVehicles-addr" class="text-muted mb-0">Kebon Baru - Tebet</p>
</li>
<li class="list-group-item p-1 px-2">
@ -257,7 +257,7 @@
<p id="infoVehicles-lat_lng" class="text-muted mb-0">-6.27013, 106.731371</p>
</li>
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Jarak tempuh kendaraan (km)</p>
<p class="text-bold mb-0">Vehicle Mileage (km)</p>
<p id="infoVehicles-mileage" class="text-muted mb-0">45080.83</p>
</li>
{{-- <li class="list-group-item p-1 px-2">
@ -273,7 +273,7 @@
<p id="infoVehicles-ignition" class="text-muted mb-0">ON</p>
</li> --}}
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Status Mesin</p>
<p class="text-bold mb-0">Engine Status</p>
<p id="infoVehicles-engineStatus" class="text-muted mb-0">Idling</p>
</li>
{{-- <li class="list-group-item p-1 px-2">
@ -305,15 +305,15 @@
</ul>
<ul class="list-group" id="infoDriver">
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Informasi Pengemudi</p>
<p class="text-bold mb-0">Driver Information</p>
<p id="infoDrv-updt" class="text-muted mb-0">20-Jan-2022 23:16:18</p>
</li>
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Nama Pengemudi</p>
<p id="infoDrv-name" class="text-muted mb-0">Rafif</p>
<p class="text-bold mb-0">Driver Name</p>
<p id="infoDrv-name" class="text-muted mb-0">Emrsyf</p>
</li>
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Phone 1</p>
<p class="text-bold mb-0">Phone</p>
<p class="mb-0">
<a href="tel:0" id="infoDrv-phone1-tel">
<i class="text-dark ion-ios-telephone"></i>&nbsp;
@ -326,7 +326,7 @@
</a>
</p>
</li>
<li class="list-group-item p-1 px-2">
{{-- <li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Phone 2</p>
<p class="mb-0">
<a href="tel:0" id="infoDrv-phone2-tel">
@ -339,7 +339,7 @@
<span class="infoDrv-phone2-text"></span>
</a>
</p>
</li>
</li> --}}
</ul>
<div id="infoJob">
{{-- @for ($i = 0; $i < 20; $i++)
@ -356,9 +356,8 @@
</div>
</li>
@endfor --}}
<ul class="list-group mb-3">
{{-- <ul class="list-group mb-3">
<li class="list-group-item p-1 px-2">
{{-- <p class="text-bold mb-0">#902192102910</p> --}}
<div class="row d-flex align-items-center justify-content-between">
<div class="col-12">
<small class="text-muted">Client</small>
@ -366,13 +365,13 @@
</div>
</div>
</li>
</ul>
</ul> --}}
<ul class="list-group mb-3">
<li class="list-group-item p-1 px-2">
{{-- <p class="text-bold mb-0">#902192102910</p> --}}
<div class="row d-flex align-items-center justify-content-between">
<div class="col-12">
<small class="text-muted">Dari</small>
<small class="text-muted">Origin</small>
<p id="infoJob-pck_city" class="">Jakarta</p>
<p id="infoJob-pck_name" class="mb-0">JKT-01</p>
<p id="infoJob-pck_addr" class="mb-0">Jl. Pancoran Timur Raya No.9, RT.8/RW.9, Pancoran, Kec. Pancoran, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12780</p>
@ -383,7 +382,7 @@
{{-- <p class="text-bold mb-0">#902192102910</p> --}}
<div class="row d-flex align-items-center justify-content-between">
<div class="col-12">
<small class="text-muted">Tujuan</small>
<small class="text-muted">Destination</small>
<p id="infoJob-drop_city" class="">Indramayu</p>
<p id="infoJob-drop_name" class="mb-0">IND-01</p>
<p id="infoJob-drop_addr" class="mb-0">Jl. Jend. Sudirman, Karanganyar, Kec. Indramayu, Kabupaten Indramayu, Jawa Barat</p>
@ -404,17 +403,17 @@
</ul>
</div>
<ul class="list-group" id="infoMovement">
<li class="list-group-item p-1 px-2">
<p class="text-bold mb-0">Riwayat Perjalanan</p>
<p id="infoVehicles-infoMove" class="text-muted mb-0">Terbaru</p>
<li class="list-group-item p-1 px-2 mb-2" style="border-radius: 0.25rem;">
<p class="text-bold mb-0">Trip History</p>
<p id="infoVehicles-infoMove" class="text-muted mb-0">Most Recent</p>
</li>
<div>
<div>
<label class="text-muted">Dari</label>
<div class="mb-2">
<label class="text-muted">From</label>
<input class="form-control" type="date" id="historyStartDate">
</div>
<div>
<label class="text-muted">Sampai</label>
<div class="mb-3">
<label class="text-muted">To</label>
<input class="form-control" type="date" id="historyEndDate">
</div>
</div>
@ -1225,7 +1224,7 @@
Menu.showViewDetailVehicle($(this).val());
});
Menu.showViewDetailVehicle(State.stts_filterDetail.assignJob);
Menu.showViewDetailVehicle(State.stts_filterDetail.vehicles);
Menu.eventListVehicle();
Menu.eventListMovement();
@ -1280,8 +1279,8 @@
}, State.delay_hideTruckNotSelected);
});
Leaflet.clearLayer('eventRemoveDetailPlotMovement');
$('#selectFiter').val(State.stts_filterDetail.assignJob).trigger('change');
$('#selectFiter').val(State.stts_filterDetail.assignJob).trigger('select2:select');
$('#selectFiter').val(State.stts_filterDetail.vehicles).trigger('change');
$('#selectFiter').val(State.stts_filterDetail.vehicles).trigger('select2:select');
$('#rightSideBar2').removeClass('d-none');
if (Trucks.lists[i]?.lst_lat == null || Trucks.lists[i]?.lst_lng == null) {
Helper.toast('Warning', 'just now',
@ -2424,7 +2423,7 @@
// driver
$('#infoDrv-updt').text((truck?.ord_crt) ? moment.unix(truck?.ord_crt).format('DD MMM YYYY HH:mm') : '-');
$('#infoDrv-name').text(truck?.ord_drv_name ?? 'Tidak dalam order');
$('#infoDrv-name').text(truck?.ord_drv_name ?? 'Off Duty');
$('.infoDrv-phone1-text').text((truck?.ord_drv_phone_val) ? Helper.splitEvery4Char('0' + truck?.ord_drv_phone_val) : '-');
$('#infoDrv-phone1-tel').attr('tel:0' + (truck?.ord_drv_phone_val ?? ''));
$('#infoDrv-phone1-wa').attr('https://api.whatsapp.com/send/?phone=62' + (truck?.ord_drv_phone_val ?? '') + '&text=Halo&app_absent=0');

View File

@ -11,8 +11,8 @@
@section('customcss')
<style>
/* .select2-container {
z-index: 99999;
} */
z-index: 99999;
} */
</style>
@endsection
@ -25,7 +25,8 @@
<div class="col-3">
<p class="card-title text-bold mb-0">List Driver</p>
</div>
@if ($user_role === \App\Models\Users::ROLE_VENDOR)
{{-- @if ($user_role === \App\Models\Users::ROLE_VENDOR) --}}
@if ($user_role === \App\Models\Users::ROLE_ADMIN)
<div class="col text-end">
<button id="btnMdlNewDrv" class="btn btn-sm btn-danger">Add New Driver</button>
</div>

View File

@ -19,18 +19,18 @@
<div class="card-header">
<div class="row d-flex align-items-center">
<div class="col">
<p class="card-title text-bold mb-0">Transaksi</p>
<p class="card-subtitle text-muted">Daftar Transaksi</p>
<p class="card-title text-bold mb-0">Transaction</p>
<p class="card-subtitle text-muted">Transaction List</p>
</div>
{{-- <div class="col-auto text-end ps-0">
<a href="#" id="btnMdlMrgTrx" class="btn btn-sm btn-danger">Merge Transaksi</a>
</div>
<div class="col-auto text-end ps-0">
<a href="{{ route('view_transactions_spc_add') }}" class="btn btn-sm btn-warning">Transaksi Khusus</a>
</div>
<div class="col-auto text-end ps-0">
<a href="{{ route('view_transactions_add') }}" class="btn btn-sm btn-danger">Tambah Transaksi</a>
</div> --}}
<div class="col-auto text-end ps-0">
<a href="{{ route('view_transactions_add') }}" class="btn btn-sm btn-danger">Add New Job</a>
</div>
</div>
</div>
<div class="card-body">
@ -39,20 +39,20 @@
<thead>
<tr class="">
<th class="">#</th>
<th class="text-nowrap text-center">Tindakan</th>
<th class="text-nowrap">Kode Order</th>
<th class="text-nowrap">Nama Client</th>
<th class="text-nowrap">Waktu Pemesanan</th>
<th class="text-nowrap">Vendor</th>
<th class="text-nowrap">Kendaraan</th>
<th class="text-nowrap">Pengemudi</th>
<th class="text-nowrap">Lokasi Penjemputan</th>
<th class="text-nowrap">Lokasi Pengantaran</th>
<th class="text-nowrap text-center">Action</th>
<th class="text-nowrap">Order Code</th>
<th class="text-nowrap">Company</th>
<th class="text-nowrap">Order Time</th>
{{-- <th class="text-nowrap">Vendor</th> --}}
<th class="text-nowrap">Vehicle</th>
<th class="text-nowrap">Driver</th>
<th class="text-nowrap">Origin</th>
<th class="text-nowrap">Destination</th>
<th class="text-nowrap text-center">Status</th>
</tr>
</thead>
<tbody>
<tr class="">
{{-- <tr class="">
<td class="text-nowrap">1</td>
<td class="text-nowrap">SiCepat</td>
<td class="text-nowrap">Feb 20, 2022 17:29:50</td>
@ -75,7 +75,7 @@
<span class="icon ion-eye text-danger fz-16"></span>
</a>
</td>
</tr>
</tr> --}}
</tbody>
</table>
</div>
@ -434,29 +434,71 @@
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
console.log("rows: ", row)
let action = ``;
// if (row.confirm_at === 0) {
if (!row.vdr_name) {
action += `<a href="${State.url_conf_order}?code=${row.ord_code}"
class="text-decoration-none me-1" data-bs-toggle="tooltip"
data-bs-placement="bottom" title="Tindak Lanjuti">
<span class="icon ion-forward text-danger fz-16"></span>
</a>`;
} else {
let ord_codes = row.ord_code;
if (typeof row.childs != 'undefined' && row.childs.length > 0) {
for (const child of row.childs) {
ord_codes += ',' + child.ord_code;
}
// if (!row.vdr_name) {
// action += `<a href="${State.url_conf_order}?code=${row.ord_code}"
// class="text-decoration-none me-1" data-bs-toggle="tooltip"
// data-bs-placement="bottom" title="Tindak Lanjuti">
// <span class="icon ion-forward text-danger fz-16"></span>
// </a>`;
// } else {
// let ord_codes = row.ord_code;
// if (typeof row.childs != 'undefined' && row.childs.length > 0) {
// for (const child of row.childs) {
// ord_codes += ',' + child.ord_code;
// }
// }
// action += `
// <a href="${State.url_view_order}?code=${ord_codes}"
// class="text-decoration-none me-1" data-bs-toggle="tooltip"
// data-bs-placement="bottom" title="Lihat">
// <span class="icon ion-eye text-danger fz-16"></span>
// </a>
// `;
// action += `
// <a href="#"
// class="text-decoration-none me-1 btnTrackOrder" data-bs-toggle="tooltip"
// data-bs-placement="bottom" title="Tracking #${row.ord_code}"
// data-id="${row.ord_id}" data-code="${row.ord_code}">
// <span class="icon ion-map text-danger fz-16"></span>
// </a>
// `;
// // data-bs-toggle="modal" data-bs-target="#mdlPantau"
// for (const child of row.childs) {
// action += `
// <a href="#"
// class="text-decoration-none me-1 btnTrackOrder" data-bs-toggle="tooltip"
// data-bs-placement="bottom" title="Tracking #${child.ord_code}"
// data-id="${child.ord_id}" data-code="${child.ord_code}">
// <span class="icon ion-map text-danger fz-16"></span>
// </a>
// `;
// }
// }
// action += `
// <a href="#"
// class="text-decoration-none me-1 btnDelOrder" data-bs-toggle="tooltip"
// data-bs-placement="bottom" title="Delete Order"
// data-id="${row.ord_id}" data-code="${row.ord_code}">
// <span class="icon ion-ios-trash text-danger fz-16"></span>
// </a>
// `;
let ord_codes = row.ord_code;
if (typeof row.childs != 'undefined' && row.childs.length > 0) {
for (const child of row.childs) {
ord_codes += ',' + child.ord_code;
}
action += `
}
action += `
<a href="${State.url_view_order}?code=${ord_codes}"
class="text-decoration-none me-1" data-bs-toggle="tooltip"
data-bs-placement="bottom" title="Lihat">
<span class="icon ion-eye text-danger fz-16"></span>
</a>
`;
action += `
action += `
<a href="#"
class="text-decoration-none me-1 btnTrackOrder" data-bs-toggle="tooltip"
data-bs-placement="bottom" title="Tracking #${row.ord_code}"
@ -464,9 +506,9 @@
<span class="icon ion-map text-danger fz-16"></span>
</a>
`;
// data-bs-toggle="modal" data-bs-target="#mdlPantau"
for (const child of row.childs) {
action += `
// data-bs-toggle="modal" data-bs-target="#mdlPantau"
for (const child of row.childs) {
action += `
<a href="#"
class="text-decoration-none me-1 btnTrackOrder" data-bs-toggle="tooltip"
data-bs-placement="bottom" title="Tracking #${child.ord_code}"
@ -474,7 +516,6 @@
<span class="icon ion-map text-danger fz-16"></span>
</a>
`;
}
}
action += `
<a href="#"
@ -506,7 +547,7 @@
},
},
{
data: 'c_name',
data: 'c_pt_name',
className: 'text-start',
visible: true,
orderable: true,
@ -520,8 +561,9 @@
// },
render: function(data, type, row, meta) {
let txt = data;
console.log("row:", row);
for (const child of row.childs) {
txt += '<br>' + child.c_name;
txt += '<br>' + child.c_pt_name;
}
return txt;
},
@ -540,29 +582,29 @@
return txt;
},
},
{
data: 'vdr_name',
className: 'text-start',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
let txt = '';
if (data) {
txt += data;
} else {
txt += `<span class="text-danger">belum ditugaskan</span>`;
}
for (const child of row.childs) {
if (child.vdr_name) {
txt += '<br>' + child.vdr_name;
} else {
txt += `<br><span class="text-danger">belum ditugaskan</span>`;
}
}
return txt;
},
},
// {
// data: 'vdr_name',
// className: 'text-start',
// visible: true,
// orderable: true,
// searchable: true,
// render: function(data, type, row, meta) {
// let txt = '';
// if (data) {
// txt += data;
// } else {
// txt += `<span class="text-danger">belum ditugaskan</span>`;
// }
// for (const child of row.childs) {
// if (child.vdr_name) {
// txt += '<br>' + child.vdr_name;
// } else {
// txt += `<br><span class="text-danger">belum ditugaskan</span>`;
// }
// }
// return txt;
// },
// },
{
data: 'vhc_nopol1',
className: 'text-start',

View File

@ -7,8 +7,8 @@
@section('customcss')
<style>
/* .select2-container {
z-index: 99999;
} */
z-index: 99999;
} */
</style>
@endsection
@ -52,7 +52,7 @@
<tbody>
<tr class="">
<td class="">1</td>
<td class="">Rafif</td>
<td class="">Emrsyf</td>
<td class="">Jl. Letjen Mt. Haryono No.Kav. 20, RW.1, Cawang, Kec.
Kramat jati, Kota Jakarta Timur, Daerah Khusus Ibukota Jakarta 13630</td>
<td class="text-nowrap">021 83782235</td>

View File

@ -11,18 +11,18 @@
@section('customcss')
<style>
/* .select2-container {
z-index: 99999;
} */
z-index: 99999;
} */
/* .landscape-photo {
max-height: max(21vh, 210px);
} */
max-height: max(21vh, 210px);
} */
/* .thumb-img-table {
width: max(4vw, 75px);
height: max(4vh, 55px);
object-fit: cover;
} */
width: max(4vw, 75px);
height: max(4vh, 55px);
object-fit: cover;
} */
</style>
@endsection
@ -321,7 +321,7 @@
</div>
</div>
{{-- Other Data --}}
@if ($user_role != \App\Models\Users::ROLE_VENDOR)
{{-- @if ($user_role != \App\Models\Users::ROLE_VENDOR)
<div class="mb-3">
<div class="border-bottom">
<h6>Other Data</h6>
@ -340,7 +340,7 @@
</div>
</div>
</div>
@endif
@endif --}}
</form>
</div>
<div class="modal-footer">
@ -578,7 +578,7 @@
</div>
</div>
{{-- Other Data --}}
@if ($user_role != \App\Models\Users::ROLE_VENDOR)
{{-- @if ($user_role != \App\Models\Users::ROLE_VENDOR)
<div class="mb-3">
<div class="border-bottom">
<h6>Other Data</h6>
@ -597,7 +597,7 @@
</div>
</div>
</div>
@endif
@endif --}}
</form>
</div>
<div class="modal-footer">

View File

@ -29,8 +29,8 @@
<div class="col">
<p class="card-title text-bold mb-0">Zona (<span id="count_zones"></span>)</p>
</div>
{{-- @if ($user_role === \App\Models\Users::ROLE_ADMIN || \App\Models\Users::ROLE_VENDOR) --}}
@if ($user_role === \App\Models\Users::ROLE_VENDOR)
@if ($user_role === \App\Models\Users::ROLE_ADMIN || \App\Models\Users::ROLE_VENDOR)
{{-- @if ($user_role === \App\Models\Users::ROLE_VENDOR) --}}
<div class="col text-end">
{{-- <a href="#" class="btn btn-sm btn-danger" data-bs-toggle="modal" data-bs-target="#addNewZoneModal">Add New Zone</a> --}}
<a href="{{ route('view_zone_add') }}" class="btn btn-sm btn-danger">Tambah Zona</a>

View File

@ -1,9 +1,9 @@
@php
if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
$route_list_trx = route('view_transactions');
} else {
$route_list_trx = route('view_user_client_transaction');
}
if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
$route_list_trx = route('view_transactions');
} else {
$route_list_trx = route('view_user_client_transaction');
}
@endphp
@extends('app.app')
@ -20,28 +20,23 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
{{-- Form Order --}}
<div class="col-sm-6">
<div class="card">
<div class="card-header">
{{-- <div class="card-header">
<div class="row d-flex align-items-center">
<div class="col">
<p class="card-title text-bold mb-0">Tambah Pengiriman Baru</p>
<p class="card-title text-bold mb-0">Add new job</p>
</div>
</div>
</div>
<div class="card-body">
</div> --}}
<div class="card-body pb-0">
@if (Auth::user()->role == \App\Models\Users::ROLE_ADMIN)
<div class="row mb-3 d-flex align-items-center">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Pengiriman Untuk Client</p>
{{-- <small>Masukkan tanggal, jam, lokasi penjemputan, dan lokasi pengantaran yang ada pada daftar zona yang telah didaftarkan</small> --}}
</div>
<div class="row mb-3 d-flex align-items-center d-none">
<div class="col-sm-5 col-5 mb-3">
<label for="add-client" class="form-label text-nowrap">Pilih Client</label>
<label for="add-client" class="form-label text-nowrap">Company</label>
<select name="add-client" id="add-client" class="select2 form-control">
<option value="" selected disabled>Belum ada Client yang dipilih</option>
@foreach ($uclients as $uclient)
<option value="{{ $uclient->id }}" data-uid="{{ $uclient->id }}"
data-cptid="{{ $uclient->client_group_id }}">
{{ $uclient->first_name." ($uclient->client_group_name)" }}</option>
<option value="{{ $uclient->id }}" data-uid="{{ $uclient->id }}" data-cptid="{{ $uclient->client_group_id }}">
{{ $uclient->client_group_name }}</option>
@endforeach
</select>
</div>
@ -49,34 +44,33 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
@endif
<div class="row mb-3 d-flex align-items-center">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Penjemputan dan Pengantaran</p>
<p class="text-danger text-bold mb-0">Orign & Destination</p>
{{-- <small>select time, pickup and drop zone from your zone list. Can't find your zone? <a href="{{ route('view_zone') }}">Add new zone</a></small> --}}
<small>Masukkan tanggal, jam, lokasi penjemputan, dan lokasi pengantaran yang ada pada
daftar zona yang telah didaftarkan</small>
<small>Enter the date, time, origin location, and destination location from<br>the list of registered zones.</small>
</div>
<div class="col-sm-5 col-5 mb-3">
<label for="add-pickup_date" class="form-label text-nowrap">Tanggal Penjemputan</label>
<label for="add-pickup_date" class="form-label text-nowrap">Date</label>
<input type="date" name="add-pickup_date" id="add-pickup_date" class="form-control">
</div>
<div class="col-2"></div>
<div class="col-sm-5 col-5 mb-3">
<label for="add-pickup_time" class="form-label text-nowrap">Waktu Penjemputan</label>
<label for="add-pickup_time" class="form-label text-nowrap">Time</label>
{{-- <input type="time" name="add-pickup_time" id="add-pickup_time" class="form-control"
min="23:30"> --}}
<div class="row">
<div class="col-md-4 col-lg-3" style="padding:0 0 0 0.75rem;">
<select name="add-pickup_time_hour" id="add-pickup_time_hour" class="form-control">
<option value="" selected disabled hidden>--</option>
@for ($i=0; $i<24; $i++)
<option value="{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}">{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}</option>
@for ($i = 0; $i < 24; $i++)
<option value="{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}">{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}</option>
@endfor
</select>
</div>
<div class="col-md-4 col-lg-3" style="padding:0 0 0 0.75rem;">
<select name="add-pickup_time_minute" id="add-pickup_time_minute" class="form-control">
<option value="" selected disabled hidden>--</option>
@for ($i=0; $i<60; $i++)
<option value="{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}">{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}</option>
@for ($i = 0; $i < 60; $i++)
<option value="{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}">{{ str_pad($i, 2, '0', STR_PAD_LEFT) }}</option>
@endfor
</select>
</div>
@ -85,13 +79,12 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
</div>
<div class="row mb-3 d-flex align-items-center">
<div class="col-5 mb-3">
<label for="add-pickup_zone" class="form-label">Lokasi Penjemputan</label>
<label for="add-pickup_zone" class="form-label">Origin</label>
<select name="add-pickup_zone" id="add-pickup_zone" class="select2 form-control">
<option value="" selected disabled>Belum ada lokasi yang dipilih</option>
<option value="" selected disabled>No origin location selected</option>
@if (Auth::user()->role === \App\Models\Users::ROLE_CLIENT_ADMIN)
@foreach ($pickups as $pickup)
<option value="{{ $pickup->id }}" data-id="{{ $pickup->id }}"
data-title="{{ $pickup->name }}" data-addr="{{ $pickup->fulladdress }}">
<option value="{{ $pickup->id }}" data-id="{{ $pickup->id }}" data-title="{{ $pickup->name }}" data-addr="{{ $pickup->fulladdress }}">
{{ $pickup->name }}</option>
@endforeach
@endif
@ -103,20 +96,19 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<span class="ion-arrow-right-c text-danger" style="font-size: 15px"></span>
</div>
<div class="col-5 mb-3">
<label for="add-drop_zone" class="form-label">Lokasi Pengantaran</label>
<label for="add-drop_zone" class="form-label">Destination</label>
<select name="add-drop_zone" id="add-drop_zone" class="select2 form-control">
<option value="" selected disabled>Belum ada lokasi yang dipilih</option>
<option value="" selected disabled>No destination location selected</option>
@if (Auth::user()->role === \App\Models\Users::ROLE_CLIENT_ADMIN)
@foreach ($drops as $drop)
<option value="{{ $drop->id }}" data-id="{{ $drop->id }}"
data-title="{{ $drop->name }}" data-addr="{{ $drop->fulladdress }}">
<option value="{{ $drop->id }}" data-id="{{ $drop->id }}" data-title="{{ $drop->name }}" data-addr="{{ $drop->fulladdress }}">
{{ $drop->name }}</option>
@endforeach
@endif
</select>
</div>
</div>
<div class="row d-flex align-items-center mb-3">
<div class="row d-flex align-items-center justify-content-between">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Informasi Kendaraan</p>
{{-- <small>You must fill in at least 1 of the package information.</small> --}}
@ -138,21 +130,37 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="col-5 mb-3 d-flex align-items-center">
<input type="number" name="add-koli" id="add-koli" class="form-control w-75 me-2">pcs
</div> --}}
<div class="col-5 mb-3">
{{-- <div class="col-5 mb-3">
<label for="add-truck_type" class="form-label">Jenis Kendaraan</label>
<select name="add-truck_type" id="add-truck_type" class="select2 form-control">
{{-- <option value="" data-name="Let system choose automatically" selected>Let system
choose automatically
</option> --}}
<option value="" selected disabled>Pilih kendaraan</option>
@foreach ($truck_types as $tt)
<option value="{{ $tt->type_id }}" data-id="{{ $tt->id }}" data-type_id="{{ $tt->type_id }}"
data-name="{{ $tt->type_name }}" data-weight="{{ $tt->max_kg }}"
data-cbm="{{ $tt->max_cbm }}" data-koli="{{ $tt->max_koli }}">
<option value="{{ $tt->type_id }}" data-id="{{ $tt->id }}" data-type_id="{{ $tt->type_id }}" data-name="{{ $tt->type_name }}" data-weight="{{ $tt->max_kg }}" data-cbm="{{ $tt->max_cbm }}" data-koli="{{ $tt->max_koli }}">
{{ $tt->type_name }}</option>
@endforeach
</select>
</div> --}}
<div class="col-5 mb-3">
<label for="add-truck_type" class="form-label">Select Vehicle</label>
<select name="add-truck_type" id="add-truck_type" class="select2 form-control">
<option value="" selected disabled>Select Vehicle</option>
@foreach ($vehicle as $_vehicle)
<option value="{{ $_vehicle->vid }}" data-id="{{ $_vehicle->vid }}" data-type_id="{{ $_vehicle->vid }}" data-name="{{ $_vehicle->name }}">
{{ $_vehicle->name }}</option>
@endforeach
</select>
</div>
<div class="col-5 mb-3">
<label for="add-driver" class="form-label">Driver</label>
<select name="add-driver" id="add-driver" class="select2 form-control">
<option value="" selected disabled>Select Driver</option>
@foreach ($driver as $_driver)
<option value="{{ $_driver->id }}" data-id="{{ $_driver->id }}" data-driver_id="{{ $_driver->id }}" data-name="{{ $_driver->fullname }}">
{{ $_driver->fullname }}</option>
@endforeach
</select>
</div>
</div>
{{-- <div class="row d-flex align-items-center">
<div class="col-12 mb-3">
@ -172,7 +180,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
</div>
</div>
</div> --}}
<div class="row d-flex align-items-center mb-3">
<div class="row d-flex align-items-center mb-3 d-none">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Asuransi</p>
<small>Apakah Anda ingin menambahkan Asuransi untuk pengiriman ini?</small>
@ -198,12 +206,11 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="row d-flex align-items-center">
<div class="col-8">
<p class="mb-0">
Sudahkah Anda mengisi semua kolom yang ada?
Have you filled in all the required fields?
</p>
</div>
<div class="col-4 text-end">
<button class="btn btn-warning btn-block btn-sm" id="btnCalculate">Kalkulasi
Sekarang</button>
<button class="btn btn-warning btn-block btn-sm" id="btnCalculate">&nbsp;&nbsp;&nbsp;&nbsp;Next&nbsp;&nbsp;&nbsp;&nbsp;</button>
</div>
</div>
</div>
@ -211,6 +218,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
</div>
{{-- Checkout --}}
<div class="col-sm-6 d-none" id="checkOutView">
{{-- <div class="col-sm-6"> --}}
<div class="card">
<div class="card-header">
<div class="row d-flex align-items-center">
@ -231,10 +239,10 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="card-body pb-0 checkoutBody">
<div class="row d-flex align-items-center">
<div class="col-12 mb-3">
<p class="text-danger text-bold mb-0">Penjemputan dan Pengantaran</p>
<p class="text-danger text-bold mb-0">Orign & Destination</p>
</div>
<div class="col-sm-5 mb-3">
<label for="" class="form-label">Tanggal Penjemputan</label>
<label for="" class="form-label">Date</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p id="checkout-pickup_at" class="mb-0">Feb 22, 2022 23:59:00</p>
@ -243,17 +251,18 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
</div>
<div class="col-sm-2"></div>
<div class="col-sm-5 mb-3">
<label for="" class="form-label">Jenis Kendaraan</label>
<label for="" class="form-label">Vehicle</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p id="checkout-truck_type" class="mb-0">CDD Long</p>
<p id="checkout-driver" class="mb-0">CDD Long</p>
</div>
</div>
</div>
</div>
<div class="row d-flex align-items-center">
<div class="col-5 mb-3">
<label for="" class="form-label">Lokasi Penjemputan</label>
<label for="" class="form-label">Origin</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p id="checkout-pickup_zone_title" class="text-bold mb-2">Gudang Pluit SiCepat
@ -270,7 +279,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<span class="ion-arrow-right-c text-danger" style="font-size: 15px"></span>
</div>
<div class="col-5 mb-3">
<label for="" class="form-label">Lokasi Pengantaran</label>
<label for="" class="form-label">Destination</label>
<div class="card bg-light border mb-0">
<div class="card-body">
<p id="checkout-drop_zone_title" class="text-bold mb-2">Kantor Pusat SiCepat
@ -318,12 +327,12 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
</div>
</div>
</div> --}}
<div class="row">
<div class="row d-none">
<div class="col-12">
<hr>
</div>
</div>
<div class="row d-flex align-items-center">
<div class="row d-flex align-items-center d-none">
<div class="col-12 mb-3 mt-3">
<p class="text-danger text-bold mb-0">Pilih Layanan</p>
<small>Berikut layanan yang tersedia untuk pesanan Anda</small>
@ -378,11 +387,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="row mb-3 d-flex align-items-center">
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="chooseFleet"
data-lead_time_id="${opt.lead_time_id}"
data-lead_time="${opt.lead_time}" data-price="${opt.price}"
data-real_price="${opt.real_price}"
data-disc_price="${opt.disc_price}">
<input class="form-check-input" type="radio" name="chooseFleet" data-lead_time_id="${opt.lead_time_id}" data-lead_time="${opt.lead_time}" data-price="${opt.price}" data-real_price="${opt.real_price}" data-disc_price="${opt.disc_price}">
<label class="form-check-label text-success">
1 Hari <span class="badge bg-success ms-2">Best services</span>
</label>
@ -397,11 +402,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="row mb-3 d-flex align-items-center">
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="chooseFleet"
data-lead_time_id="${opt.lead_time_id}"
data-lead_time="${opt.lead_time}" data-price="${opt.price}"
data-real_price="${opt.real_price}"
data-disc_price="${opt.disc_price}">
<input class="form-check-input" type="radio" name="chooseFleet" data-lead_time_id="${opt.lead_time_id}" data-lead_time="${opt.lead_time}" data-price="${opt.price}" data-real_price="${opt.real_price}" data-disc_price="${opt.disc_price}">
<label class="form-check-label text-dark">
2 Hari
</label>
@ -427,15 +428,13 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
<div class="card-footer checkoutBody">
<div class="row d-flex align-items-center">
<div class="col-8">
<p class="text-danger mb-0">Harga layanan yang tercantum adalah harga perkiraan, bukan
harga Final.</p>
<p class="mb-0">
Sudahkah Anda memeriksa ulang informasi pesanan?
Have you reviewed the job information?
</p>
</div>
<div class="col-4 text-end">
<button class="btn btn-danger btn-block btn-sm" id="btnOrder" {{-- onclick="location.href='{{ route('view_user_client_transaction') }}'" --}}
disabled>Pesan Sekarang</button>
{{-- <button class="btn btn-danger btn-block btn-sm" id="btnOrder" disabled>Pesan Sekarang</button> --}}
<button class="btn btn-danger btn-block btn-sm" id="btnOrder">Submit</button>
<div id="btnOrderSpinner" class="d-none">
<div class="spinner-border" role="status">
<span class="visually-hidden">Loading...</span>
@ -452,9 +451,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
@endsection
@section('customjs')
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.2/xlsx.full.min.js"
integrity="sha512-oCjkwxjURabnte5K4Zeoc+hZ/G5pQE7GI4DYl+0wl6WaJIkBjb9FvUIaMU3lOPoBMSRZZ7QrczpGQoBFAKKB1Q=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.2/xlsx.full.min.js" integrity="sha512-oCjkwxjURabnte5K4Zeoc+hZ/G5pQE7GI4DYl+0wl6WaJIkBjb9FvUIaMU3lOPoBMSRZZ7QrczpGQoBFAKKB1Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
$("#insuranceCheck").change(function() {
$("#insurancePrice").toggleClass("d-none")
@ -464,6 +461,12 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
$("#insuranceInput").prop('required', true);
}
})
$(document).ready(function() {
setTimeout(function() {
$('select[name=add-client]').val('1').change();
}, 100);
});
</script>
<script>
'use strict';
@ -495,14 +498,13 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
TrxNew.activate();
},
event: function() {
$('#checkout-group_pricing').on('click', 'input[name=chooseFleet]', function() {
$('#btnOrder').prop("disabled", false);
});
// $('#checkout-group_pricing').on('click', 'input[name=chooseFleet]', function() {
// $('#btnOrder').prop("disabled", false);
// });
// min date is today
let TimeISOString = moment().toISOString().split('T');
let time = TimeISOString[1].split('.')[0].split(':');
$('#add-pickup_date').attr('min', TimeISOString[0]);
// $('#add-pickup_time').attr('min', time[0] + ':' + time[1]);
},
};
@ -745,8 +747,8 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
TrxNew.hideCheckout();
let selected = $('#add-client :selected');
$('#add-pickup_zone').html('<option value="" selected disabled>Belum ada lokasi yang dipilih</option>');
$('#add-drop_zone').html('<option value="" selected disabled>Belum ada lokasi yang dipilih</option>');
$('#add-pickup_zone').html('<option value="" selected disabled>No location has been selected.</option>');
$('#add-drop_zone').html('<option value="" selected disabled>No location has been selected.</option>');
const listPickupZones = await Req.list_client_zone({
cptid: selected.data('cptid'),
@ -844,8 +846,12 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
// data.koli = Number($('#add-koli').val() || 'n');
let truck_type = $('#add-truck_type :selected');
data.truck_type_id = truck_type.data('type_id');
data.truck_type_name = truck_type.data('name')?.trim();
data.vehicle_id = truck_type.data('type_id');
data.vehicle_name = truck_type.data('name')?.trim();
let driver = $('#add-driver :selected');
data.driver_id = driver.data('driver_id');
data.driver_name = driver.data('name')?.trim();
// data.truck_type_weight = truck_type.data('weight');
// data.truck_type_cbm = truck_type.data('cbm');
// data.truck_type_koli = truck_type.data('koli');
@ -872,25 +878,26 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
},
checkData: function(data, isAlert = false) {
if (data.pickup_at < 1 || isNaN(data.pickup_at)) {
if (isAlert) Helper.toast('Warning', 'just now', 'Pickup date / time not valid');
if (isAlert) Helper.toast('Warning', 'just now', 'Date / time not valid');
return false;
}
if (data.pickup_at < moment().unix()) {
if (isAlert) Helper.toast('Warning', 'just now',
'Pickup date / time is less than the current date / time');
'Date / time is less than the current date / time');
return false;
}
if (data.pickup_at < moment().add(3, 'hours').unix()) {
// if (data.pickup_at < moment().add(3, 'hours').unix()) {
if (data.pickup_at < moment().add(5, 'minutes').unix()) {
if (isAlert) Helper.toast('Warning', 'just now',
'Pickup time minimum 3 hours from now');
'The selected time is too soon. Minimum is 5 minutes from now.');
return false;
}
if (typeof data.pickup_zone_id == 'undefined') {
if (isAlert) Helper.toast('Warning', 'just now', 'Pickup zone not valid');
if (isAlert) Helper.toast('Warning', 'just now', 'Origin zone not valid');
return false;
}
if (typeof data.drop_zone_id == 'undefined') {
if (isAlert) Helper.toast('Warning', 'just now', 'Drop zone not valid');
if (isAlert) Helper.toast('Warning', 'just now', 'Destination zone not valid');
return false;
}
@ -900,23 +907,23 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
// 'weight / volume / koli must be provided at least 1 of them');
// return false;
// }
// if (typeof data.truck_type_id != 'undefined') {
// if (typeof data.vehicle_id != 'undefined') {
// if (!isNaN(data.weight) && data.truck_type_weight != 0 && data.weight > data
// .truck_type_weight) {
// if (isAlert) Helper.toast('Warning', 'just now',
// `maximum weight for type truck ${data.truck_type_name} is ${data.truck_type_weight} Kg`
// `maximum weight for type truck ${data.vehicle_name} is ${data.truck_type_weight} Kg`
// );
// return false;
// }
// if (!isNaN(data.cbm) && data.truck_type_cbm != 0 && data.cbm > data.truck_type_cbm) {
// if (isAlert) Helper.toast('Warning', 'just now',
// `maximum volume for type truck ${data.truck_type_name} is ${data.truck_type_cbm} m³`
// `maximum volume for type truck ${data.vehicle_name} is ${data.truck_type_cbm} m³`
// );
// return false;
// }
// if (!isNaN(data.koli) && data.truck_type_koli != 0 && data.koli > data.truck_type_koli) {
// if (isAlert) Helper.toast('Warning', 'just now',
// `maximum koli for type truck ${data.truck_type_name} is ${data.truck_type_koli} Pcs`
// `maximum koli for type truck ${data.vehicle_name} is ${data.truck_type_koli} Pcs`
// );
// return false;
// }
@ -959,39 +966,39 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
// $('#checkout-unit').html('');
// if (!isNaN(data.weight)) {
// $('#checkout-unit').append(`
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Berat</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.weight} Kg</p>
// </div>
// </div>
// </div>
// `);
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Berat</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.weight} Kg</p>
// </div>
// </div>
// </div>
// `);
// }
// if (!isNaN(data.cbm)) {
// $('#checkout-unit').append(`
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Volume</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.cbm} m&sup3;</p>
// </div>
// </div>
// </div>
// `);
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Volume</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.cbm} m&sup3;</p>
// </div>
// </div>
// </div>
// `);
// }
// if (!isNaN(data.koli)) {
// $('#checkout-unit').append(`
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Koli</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.koli} Pcs</p>
// </div>
// </div>
// </div>
// `);
// <div class="col-sm-4 mb-0 d-flex align-items-center">
// <label for="" class="form-label">Koli</label>
// <div class="card bg-light border mb-0 w-100">
// <div class="card-body">
// <p class="mb-0">${data.koli} Pcs</p>
// </div>
// </div>
// </div>
// `);
// }
// // end packing list data
@ -1048,7 +1055,9 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
`);
}
$('#checkout-truck_type').text(data.truck_type_name);
$('#checkout-truck_type').text(data.vehicle_name);
console.log("driver:", data.driver_name);
$('#checkout-driver').text(data.driver_name);
$('#checkOutView').removeClass('d-none');
$('#checkOutView').addClass('d-block');
@ -1056,7 +1065,7 @@ if (Auth::user()->role === \App\Models\Users::ROLE_ADMIN) {
hideCheckout: function() {
$('#checkOutView').addClass('d-none');
$('#checkOutView').removeClass('d-block');
$('#btnOrder').attr('disabled', true);
$('#btnOrder').attr('disabled', false);
},
downloadTemplatePackingList: function() {
const fileName = 'template_packing_list.xlsx';

View File

@ -7,14 +7,14 @@
<div class="container-fluid">
<div class="content">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<p class="card-title text-bold mb-0">Riwayat Transfer Uang Saku</p>
<p class="card-subtitle text-muted">Daftar Transfer</p>
</div>
<div class="card-body">
<div class="table-responsive">
<div class="col-12">
<div class="card">
<div class="card-header">
<p class="card-title text-bold mb-0">Riwayat Transfer Uang Saku</p>
<p class="card-subtitle text-muted">Daftar Transfer</p>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="tTable" class="table table-hover dataTable w-100">
<thead>
<tr class="">
@ -46,7 +46,7 @@
<p class="mb-0">BCA (014)</p>
<p class="mb-0">Bank Central Asia</p>
</td>
<td class="text-start">Rafif</td>
<td class="text-start">Emrsyf</td>
<td class="text-center">0101010100101</td>
<td class="text-center">2.500.000</td>
<td class="text-center"><span class="text-danger">Fail</span></td>
@ -55,16 +55,15 @@
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- modal resend pocket money tf --}}
<div class="modal fade" id="mdlResendPocket" data-bs-backdrop="static" data-bs-keyboard="false"
aria-labelledby="mdlResendPocketLabel" aria-hidden="true">
<div class="modal fade" id="mdlResendPocket" data-bs-backdrop="static" data-bs-keyboard="false" aria-labelledby="mdlResendPocketLabel" aria-hidden="true">
<div class="modal-dialog modal-md modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
@ -103,299 +102,299 @@
@endsection
@section('customjs')
<script>
'use strict'
<script>
'use strict'
const State = {
stts: {
unpaid: "{{ \App\Models\OrdersLogsTf::STTS_UNPAID }}",
paid: "{{ \App\Models\OrdersLogsTf::STTS_PAID }}",
fail: "{{ \App\Models\OrdersLogsTf::STTS_FAIL }}",
pending: "{{ \App\Models\OrdersLogsTf::STTS_PENDING }}",
},
checkpoint_paid: {
unpaid: "{{ \App\Models\OrdersCheckpoints::IS_UNPAID }}",
paid: "{{ \App\Models\OrdersCheckpoints::IS_PAID }}",
fail: "{{ \App\Models\OrdersCheckpoints::IS_TF_FAIL }}",
},
delay_type_number: 1000,
storage_lara: "{{ asset('storage') }}/",
file_jimp_worker: "{{ asset('assets/js/worker/jimp.js') }}",
};
const State = {
stts: {
unpaid: "{{ \App\Models\OrdersLogsTf::STTS_UNPAID }}",
paid: "{{ \App\Models\OrdersLogsTf::STTS_PAID }}",
fail: "{{ \App\Models\OrdersLogsTf::STTS_FAIL }}",
pending: "{{ \App\Models\OrdersLogsTf::STTS_PENDING }}",
},
checkpoint_paid: {
unpaid: "{{ \App\Models\OrdersCheckpoints::IS_UNPAID }}",
paid: "{{ \App\Models\OrdersCheckpoints::IS_PAID }}",
fail: "{{ \App\Models\OrdersCheckpoints::IS_TF_FAIL }}",
},
delay_type_number: 1000,
storage_lara: "{{ asset('storage') }}/",
file_jimp_worker: "{{ asset('assets/js/worker/jimp.js') }}",
};
const Wrapper = {
activate: function() {
DTable.activate();
ResendPocket.activate();
},
};
const Wrapper = {
activate: function() {
DTable.activate();
ResendPocket.activate();
},
};
const DTable = {
activate: function() {
DTable.reload();
},
reload: function() {
// $('#tTable').DataTable();
// if (Driver.Table.firstInitDataTable == 1) { loadTableSkeletonLoading() } else { Driver.Table.firstInitDataTable = 1; }
$('#tTable').DataTable({
processing: true,
serverSide: false,
bLengthChange: true,
deferRender: true,
destroy: true,
// fixedColumns: {
// left: 3,
// },
ajax: {
url: "{{ route('api_finance_list_pocket_tf_history') }}",
type: 'GET',
complete: function() {
// removeTableSkeletonLoading()
const DTable = {
activate: function() {
DTable.reload();
},
reload: function() {
// $('#tTable').DataTable();
// if (Driver.Table.firstInitDataTable == 1) { loadTableSkeletonLoading() } else { Driver.Table.firstInitDataTable = 1; }
$('#tTable').DataTable({
processing: true,
serverSide: false,
bLengthChange: true,
deferRender: true,
destroy: true,
// fixedColumns: {
// left: 3,
// },
ajax: {
url: "{{ route('api_finance_list_pocket_tf_history') }}",
type: 'GET',
complete: function() {
// removeTableSkeletonLoading()
},
},
},
deferRender: true,
columns: [{
data: 'DT_RowIndex',
className: 'text-end',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'action',
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
let action = '';
if (row.pocket_is_paid == State.checkpoint_paid.fail) {
action += `
deferRender: true,
columns: [{
data: 'DT_RowIndex',
className: 'text-end',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'action',
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
let action = '';
if (row.pocket_is_paid == State.checkpoint_paid.fail) {
action += `
<a href="#" class="btnResendPocket text-decoration-none me-1" data-bs-toggle="tooltip" data-bs-placement="top" title="Kirim Ulang">
<span class="icon ion-refresh text-danger fz-16"></span>
</a>
`;
}
// <a href="#" class="text-decoration-none text-danger btnDelDrv">
// <span class="icon ion-trash-b fz-16"></span>
// </a>
return action;
}
// <a href="#" class="text-decoration-none text-danger btnDelDrv">
// <span class="icon ion-trash-b fz-16"></span>
// </a>
return action;
}
},
{
data: 'ord_code',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
createdCell: function(td, cellData, rowData, row, col) {
// $(td).attr('data-id', rowData.id);
$(td).attr('data-ord_id', rowData.ord_id);
$(td).attr('data-ord_code', rowData.ord_code);
$(td).attr('data-checkpoint_id', rowData.ord_checkpoint_id);
},
render: function(data, type, row, meta) {
return '#'+data;
{
data: 'ord_code',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
createdCell: function(td, cellData, rowData, row, col) {
// $(td).attr('data-id', rowData.id);
$(td).attr('data-ord_id', rowData.ord_id);
$(td).attr('data-ord_code', rowData.ord_code);
$(td).attr('data-checkpoint_id', rowData.ord_checkpoint_id);
},
render: function(data, type, row, meta) {
return '#' + data;
},
},
},
// {
// data: 'ref_code',
// className: 'text-nowrap',
// visible: true,
// orderable: true,
// searchable: true,
// render: function(data, type, row, meta) {
// return '#'+data;
// },
// },
{
data: 'pck_name',
className: 'text-start',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'bank_id',
className: 'text-start text-nowrap',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
return `
// {
// data: 'ref_code',
// className: 'text-nowrap',
// visible: true,
// orderable: true,
// searchable: true,
// render: function(data, type, row, meta) {
// return '#'+data;
// },
// },
{
data: 'pck_name',
className: 'text-start',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'bank_id',
className: 'text-start text-nowrap',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
return `
<p class="mb-0">${row.bank_short_name} (${row.bank_code})</p>
<p class="mb-0">${row.bank_name}</p>
`;
},
},
{
data: 'bank_acc_name',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'bank_acc_number',
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
},
},
{
data: 'bank_acc_name',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'bank_acc_number',
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
},
{
data: 'pocket_total',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
return (new Intl.NumberFormat('id-ID')).format(data);
{
data: 'pocket_total',
className: 'text-nowrap',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
return (new Intl.NumberFormat('id-ID')).format(data);
},
},
},
// {
// data: 'stts', // log.stts
// className: 'text-center',
// visible: true,
// orderable: true,
// searchable: true,
// render: function(data, type, row, meta) {
// if (data == State.stts.unpaid) {
// return '<span class="text-dark">Unpaid</span>';
// } else if (data == State.stts.paid) {
// return '<span class="text-success">Success</span>';
// } else if (data == State.stts.fail) {
// return '<span class="text-danger">Fail</span>';
// } else if (data == State.stts.pending) {
// return '<span class="text-warning">Pending</span>';
// }
// return '<span class="text-danger">Fail</span>';
// },
// },
{
data: 'pocket_is_paid', // checkpoint.is_paid
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
if (data == State.checkpoint_paid.unpaid) {
return '<span class="text-dark">Unpaid</span>';
} else if (data == State.checkpoint_paid.paid) {
return '<span class="text-success">Success</span>';
} else if (data == State.checkpoint_paid.fail) {
// {
// data: 'stts', // log.stts
// className: 'text-center',
// visible: true,
// orderable: true,
// searchable: true,
// render: function(data, type, row, meta) {
// if (data == State.stts.unpaid) {
// return '<span class="text-dark">Unpaid</span>';
// } else if (data == State.stts.paid) {
// return '<span class="text-success">Success</span>';
// } else if (data == State.stts.fail) {
// return '<span class="text-danger">Fail</span>';
// } else if (data == State.stts.pending) {
// return '<span class="text-warning">Pending</span>';
// }
// return '<span class="text-danger">Fail</span>';
// },
// },
{
data: 'pocket_is_paid', // checkpoint.is_paid
className: 'text-center',
visible: true,
orderable: true,
searchable: true,
render: function(data, type, row, meta) {
if (data == State.checkpoint_paid.unpaid) {
return '<span class="text-dark">Unpaid</span>';
} else if (data == State.checkpoint_paid.paid) {
return '<span class="text-success">Success</span>';
} else if (data == State.checkpoint_paid.fail) {
return '<span class="text-danger">Fail</span>';
} else if (data == State.checkpoint_paid.pending) {
return '<span class="text-warning">Pending</span>';
}
return '<span class="text-danger">Fail</span>';
} else if (data == State.checkpoint_paid.pending) {
return '<span class="text-warning">Pending</span>';
}
return '<span class="text-danger">Fail</span>';
},
},
},
{
data: 'tf_note',
className: 'text-start',
visible: true,
orderable: true,
searchable: true,
},
],
});
},
};
{
data: 'tf_note',
className: 'text-start',
visible: true,
orderable: true,
searchable: true,
},
],
});
},
};
const ResendPocket = {
activate: function () {
$('#tTable').on('click', '.btnResendPocket', async function(e) {
let checkpoint_id = $(e.target).closest('tr').find('td[data-checkpoint_id]').data('checkpoint_id');
console.log(checkpoint_id);
// let resp = await ResendPocket.reqData({
// checkpoint_id
// });
// if (resp.type != 'success') {
// Helper.toast('Riwayat tidak ditemukan', 'just now', 'please try again');
// return false;
// }
// ResendPocket.passDataToView(resp.data);
$('#mdlResendPocket').data('checkoint_id', checkpoint_id);
$('#mdlResendPocket').modal('show');
});
const ResendPocket = {
activate: function() {
$('#tTable').on('click', '.btnResendPocket', async function(e) {
let checkpoint_id = $(e.target).closest('tr').find('td[data-checkpoint_id]').data('checkpoint_id');
console.log(checkpoint_id);
// let resp = await ResendPocket.reqData({
// checkpoint_id
// });
// if (resp.type != 'success') {
// Helper.toast('Riwayat tidak ditemukan', 'just now', 'please try again');
// return false;
// }
// ResendPocket.passDataToView(resp.data);
$('#mdlResendPocket').data('checkoint_id', checkpoint_id);
$('#mdlResendPocket').modal('show');
});
$('#btnSubmitResendPocket').on('click', async function() {
let data = ResendPocket.getData();
let isValid = ResendPocket.checkData(data, true);
if (!isValid) return false;
let submitItems = await ResendPocket.submitResendPocket(data);
});
},
getData: function() {
let data = {};
$('#btnSubmitResendPocket').on('click', async function() {
let data = ResendPocket.getData();
let isValid = ResendPocket.checkData(data, true);
if (!isValid) return false;
let submitItems = await ResendPocket.submitResendPocket(data);
});
},
getData: function() {
let data = {};
data.ord_checkpoint_id = $('#mdlResendPocket').data('checkoint_id');
data.ord_checkpoint_id = $('#mdlResendPocket').data('checkoint_id');
return data;
},
checkData: function(data, isAlert = false) {
if (!data.ord_checkpoint_id) {
if (isAlert) Helper.toast('Warning', 'just now', 'Riwayat transfer tidak valid');
return false;
}
return true;
},
submitResendPocket: async function(data) {
return new Promise((resolve, reject) => {
if (typeof $('#btnSubmitResendPocket').attr('disabed') != 'undefined') {
resolve({
type: 'fail'
});
return data;
},
checkData: function(data, isAlert = false) {
if (!data.ord_checkpoint_id) {
if (isAlert) Helper.toast('Warning', 'just now', 'Riwayat transfer tidak valid');
return false;
}
$('#btnSubmitResendPocket').attr('disabed', true);
$('#btnSubmitResendPocketSpinner').removeClass('d-none');
$.ajax({
url: "{{ route('api_finance_resend_pocket') }}",
method: 'POST',
crossDomain: true,
processData: true,
headers: {
'x-csrf-token': $('meta[name="csrf-token"]').attr('content'),
'x-api-key': Helper.getCookie('_trtk'),
},
data: data,
success: (data, textStatus, jqXHR) => {
$('#btnSubmitResendPocket').removeAttr('disabed');
$('#btnSubmitResendPocketSpinner').addClass('d-none');
if (data.meta.type != 'success') {
resolve({
type: 'fail'
});
Helper.toast('Warning', 'just now', data.meta.message);
return false;
}
Helper.toast('Success', 'just now', 'success transfer ulang');
$('#mdlResendPocket').modal('hide');
DTable.reload();
return true;
},
submitResendPocket: async function(data) {
return new Promise((resolve, reject) => {
if (typeof $('#btnSubmitResendPocket').attr('disabed') != 'undefined') {
resolve({
type: 'success'
});
},
error: (jqXHR, textStatus, error) => {
$('#btnSubmitResendPocket').removeAttr('disabed');
$('#btnSubmitResendPocketSpinner').addClass('d-none');
if (jqXHR.status >= 500) {
Helper.toast('Error', 'just now', 'please try again');
} else {
Helper.toast('Error', 'just now', jqXHR.responseJSON.meta
.message);
}
resolve({
type: 'error'
type: 'fail'
});
return false;
}
})
});
},
}
$('#btnSubmitResendPocket').attr('disabed', true);
$('#btnSubmitResendPocketSpinner').removeClass('d-none');
$.ajax({
url: "{{ route('api_finance_resend_pocket') }}",
method: 'POST',
crossDomain: true,
processData: true,
headers: {
'x-csrf-token': $('meta[name="csrf-token"]').attr('content'),
'x-api-key': Helper.getCookie('_trtk'),
},
data: data,
success: (data, textStatus, jqXHR) => {
$('#btnSubmitResendPocket').removeAttr('disabed');
$('#btnSubmitResendPocketSpinner').addClass('d-none');
if (data.meta.type != 'success') {
resolve({
type: 'fail'
});
Helper.toast('Warning', 'just now', data.meta.message);
return false;
}
Helper.toast('Success', 'just now', 'success transfer ulang');
$('#mdlResendPocket').modal('hide');
DTable.reload();
resolve({
type: 'success'
});
},
error: (jqXHR, textStatus, error) => {
$('#btnSubmitResendPocket').removeAttr('disabed');
$('#btnSubmitResendPocketSpinner').addClass('d-none');
if (jqXHR.status >= 500) {
Helper.toast('Error', 'just now', 'please try again');
} else {
Helper.toast('Error', 'just now', jqXHR.responseJSON.meta
.message);
}
resolve({
type: 'error'
});
}
})
});
},
}
Wrapper.activate();
</script>
@endsection
Wrapper.activate();
</script>
@endsection

View File

@ -18,26 +18,26 @@
@if ($user_role === \App\Models\Users::ROLE_ADMIN || $user_role === \App\Models\Users::ROLE_VENDOR || $user_role === \App\Models\Users::ROLE_CLIENT_ADMIN || $user_role === \App\Models\Users::ROLE_SPECIAL_TRACKING)
<li class="nav-item {{ Request::segment(1) == 'dashboard' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_dashboard') }}">
Beranda
Dashboard
</a>
</li>
@endif
@if ($user_role === \App\Models\Users::ROLE_VENDOR)
{{-- <li class="nav-item {{ Request::path() == 'user/vendor/transactions' || Request::path() == 'user/vendor/transactions/newOrder' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ url('user/vendor/transactions/newOrder') }}">
Transaksi
Transaction
</a>
</li> --}}
<li class="nav-item {{ Request::path() == 'user/vendor/transactions' || Request::path() == 'transactions/add/special' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ url('user/vendor/transactions') }}">
Transaksi
Transaction
</a>
</li>
@endif
@if ($user_role === \App\Models\Users::ROLE_VENDOR)
<li class="nav-item {{ Request::segment(1) == 'zone' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_zone') }}">
Zona
Zone
</a>
</li>
@endif
@ -52,27 +52,22 @@
@if ($user_role === \App\Models\Users::ROLE_ADMIN)
<li class="nav-item {{ Request::segment(1) == 'transactions' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_transactions') }}">
Transaksi
Job
</a>
</li>
<li class="nav-item {{ Request::segment(1) == 'clients' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_clients') }}">
Perusahaan
Company
</a>
</li>
<li class="nav-item {{ Request::segment(1) == 'zone' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_zone') }}">
Zona
</a>
</li>
<li class="nav-item {{ Request::segment(1) == 'users' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_users') }}">
Pengguna
Zone
</a>
</li>
<li class="nav-item dropdown {{ Request::segment(1) == 'config' ? 'active' : '' }}">
<a class="nav-link dropdown-toggle" href="#" id="dropdownConfig" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Konfigurasi
Configuration
</a>
<ul class="dropdown-menu" style="right: 0; left: auto;" aria-labelledby="dropdownConfig">
{{-- <li>
@ -114,15 +109,20 @@
{{-- @if ($user_role === \App\Models\Users::ROLE_ADMIN) --}}
<li class="nav-item {{ Request::segment(1) == 'drivers' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_drivers') }}">
Pengemudi
Driver
</a>
</li>
<li class="nav-item {{ Request::segment(1) == 'vehicles' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_vehicles') }}">
Kendaraan
Vehicle
</a>
</li>
@endif
<li class="nav-item {{ Request::segment(1) == 'users' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_users') }}">
User
</a>
</li>
{{-- only admin and client --}}
{{-- @if ($user_role === \App\Models\Users::ROLE_ADMIN || $user_role === \App\Models\Users::ROLE_CLIENT_ADMIN)
@ -137,7 +137,7 @@
@if ($user_role === \App\Models\Users::ROLE_CLIENT_ADMIN)
<li class="nav-item {{ Request::path() == 'user/clients/transactions' || Request::path() == 'user/clients/transactions/addNew' || Request::path() == 'user/clients/transactions/view' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_user_client_transaction') }}">
Transaksi
Transaction
</a>
</li>
{{-- <li class="nav-item {{ Request::segment(1) == 'zone' ? 'active' : '' }}">
@ -167,7 +167,7 @@
@if ($user_role === \App\Models\Users::ROLE_FINANCE)
<li class="nav-item {{ Request::segment(1) == 'dashboard' ? 'active' : '' }}">
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="#">
Beranda
Dashboard
</a>
</li>
<li class="nav-item {{ Request::segment(3) == 'ledgerBalanceList' ? 'active' : '' }}">
@ -237,22 +237,10 @@
<div class="col-auto">
<p class="text-bold mb-0">FLEET MANAGER</p>
</div>
<div class="col-5 d-flex align-items-center">
<span class="me-2">Perusahaan</span>
{{-- <div class="col-5 d-flex align-items-center">
<span class="me-2">Company</span>
<select name="filter-company" class="select2 form-control" id="filter-company" style="width:100%;">
<option value="all">Semua Perusahaan</option>
</select>
</div>
{{-- <div class="col-2 d-flex align-items-center">
<span class="me-2">Divisi</span>
<select name="" class="select2 form-control" id="">
<option value="">Semua Divisi</option>
</select>
</div>
<div class="col-2 d-flex align-items-center">
<span class="me-2">Grup</span>
<select name="" class="select2 form-control" id="">
<option value="">Semua Grup</option>
<option value="all">Semua Company</option>
</select>
</div> --}}
</div>

View File

@ -18,22 +18,22 @@ use App\Http\Controllers\Api\AuthController;
// Route::middleware('auth:api')->get('/user', function (Request $request) {
// return $request->user();
// });
Route::prefix("gps")->group(function () {
Route::post("/v1/dummy/haversineGreatCircleDistance", "DummyController@api_haversineGreatCircleDistance");
Route::post("/v1/dummy/addBatchDummyTracks", "DummyController@api_addBatchDummyTracks");
Route::get("/v1/dummy/getTracksBySeconds", "DummyController@api_getTracksBySeconds");
Route::post("/v1/dummy/addDummyHub", "DummyController@api_addDummyHub");
Route::post("/v1/dummy/nearestHub", "DummyController@api_nearestHub");
// Route::prefix("gps")->group(function () {
Route::post("/v1/dummy/haversineGreatCircleDistance", "DummyController@api_haversineGreatCircleDistance");
Route::post("/v1/dummy/addBatchDummyTracks", "DummyController@api_addBatchDummyTracks");
Route::get("/v1/dummy/getTracksBySeconds", "DummyController@api_getTracksBySeconds");
Route::post("/v1/dummy/addDummyHub", "DummyController@api_addDummyHub");
Route::post("/v1/dummy/nearestHub", "DummyController@api_nearestHub");
Route::post("/v1/login", "AuthController@api_login")->name("api_login");
Route::post("/v1/logout", "AuthController@api_logout")->name("api_logout");
// Route::post('/v1/profile', 'AuthController@api_profile')->name('api_profile');
Route::post("/v1/login", "AuthController@api_login")->name("api_login");
Route::post("/v1/logout", "AuthController@api_logout")->name("api_logout");
// Route::post('/v1/profile', 'AuthController@api_profile')->name('api_profile');
Route::post("/v1/inject/add_gps_zones_v1", "InjectController@add_gps_zones_v1");
Route::post("/v1/inject/add_vhc_tracks_v1", "InjectController@add_vhc_tracks_v1");
Route::post("/v1/inject/add_conf_rate_v1", "InjectController@add_conf_rate_v1");
Route::post("/v1/inject/add_gps_zones_v1", "InjectController@add_gps_zones_v1");
Route::post("/v1/inject/add_vhc_tracks_v1", "InjectController@add_vhc_tracks_v1");
Route::post("/v1/inject/add_conf_rate_v1", "InjectController@add_conf_rate_v1");
Route::post("/v1/storage/save_photos", "StorageController@save_photos")->name("api_storage_save_photos");
Route::post("/v1/storage/save_photos", "StorageController@save_photos")->name("api_storage_save_photos");
Route::post("auth/login", [AuthController::class, "login"]);
});
Route::post("auth/login", [AuthController::class, "login"]);
// });

File diff suppressed because it is too large Load Diff