Files
gps-frontend/app/Http/Controllers/MenuController.php
meusinfirmary b9891d2f81 Initial commit
2025-04-22 14:33:37 +07:00

901 lines
31 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Validator;
use Carbon\Carbon;
use App\Responses;
use App\Helper;
use App\Models\Users;
use App\Models\Drivers;
use App\Models\Vehicles;
use App\Models\Devices;
use App\Models\Clients;
use App\Models\ConfRates;
use App\Models\ConfTruckTypes;
use App\Models\Zone;
use App\Models\Banks;
use App\Models\Orders;
use App\Models\OrdersVendors;
use App\Models\OrdersItems;
use App\Models\OrdersAItems;
use App\Models\UnitTypes;
use App\Models\AItems;
use App\Models\OrdersRates;
use App\Models\Finance;
use App\Models\OrdersCheckpoints;
use App\Models\OrdersInvoices;
use App\Models\OrdersDriversUploads;
class MenuController extends Controller
{
public function view_dashboard(Request $req)
{
$data = [
"client_group" => Clients::getClientById($req->auth->client_group_id),
];
if (count($data["client_group"]) > 0) {
$data["client_group"] = $data["client_group"][0];
} else {
$data["client_group"] = null;
}
return view("menu_v1.dashboard", $data);
}
public function view_drivers(Request $req)
{
$data = [
"bloods" => Helper::listBloods(),
"relationships" => Drivers::listRelationships(),
"vendors" => Users::listUsersByRole(Users::ROLE_VENDOR),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
];
return view("menu_v1.drivers", $data);
}
public function view_vehicles(Request $req)
{
$data = [
// 'cats' => Vehicles::listCats(), // default Truck
"brands" => Vehicles::listBrands(),
"types" => Vehicles::listTypes(),
"drivers" => Drivers::getDrivers($req->auth),
"vendors" => Users::listUsersByRole(Users::ROLE_VENDOR),
"devices" => Devices::listDevices([
"is_active" => Devices::IS_ACTIVE,
"type" => Devices::TYPE_BUILT_IN,
"is_idle_yes" => 1,
"is_available" => Devices::IS_AVAIL,
]),
];
// dd($data);
return view("menu_v1.vehicles", $data);
}
/**
* ADMIN TRX
*/
public function view_transactions()
{
$data = [
"availOrdToMerge" => Finance::availOrdToMerge(),
];
return view("menu_v1.transactions", $data);
}
public function view_transactions_view__bak(Request $req)
{
$codes = explode(",", $req->code);
$limit = count($codes);
if ($limit > 2) {
return redirect(route("view_transactions"));
}
// dd($codes[0]);
$orders = Orders::showOrder([
"codes" => $codes,
"get_stts_checker" => 1,
"get_checker_data" => 1,
"get_checker_user" => 1,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_accidents" => 1,
"couple_pck_drop" => 1,
"get_user_aprv_pck" => 1,
"group_by" => "ord.id",
"limit" => $limit,
]);
// dd($orders);
if (count($orders) < 1) {
return redirect(route("view_transactions"));
}
// uang saku / pocket money
$checkpoints = OrdersCheckpoints::listCheckpoints([
"ord_id" => $orders[0]->ord_id,
]);
$bladeViewOrders = [];
foreach ($orders as $iOrd => $order) {
// get multiple point (pick,drop)
$adtPoints = Orders::getPoints([
"id" => $order->ord_id,
"limit" => $order->drop_total,
]);
// hilangkan index 0, karena yang didapatkan adalah childnya
array_splice($adtPoints, 0, 1);
$orders[$iOrd]->adtPoints = $adtPoints;
// uang saku / pocket money
$orders[$iOrd]->checkpoints = $checkpoints;
// formated for blade views
$tmpBladeView = clone $order;
if ($order->ord_pck_docs_client_img) {
$tmpBladeView->ord_pck_docs_client_img = json_decode($order->ord_pck_docs_client_img);
}
if ($order->ord_acdnt_imgs) {
$tmpBladeView->ord_acdnt_imgs = json_decode($order->ord_acdnt_imgs);
}
$bladeViewOrders[] = clone $tmpBladeView;
}
$drvs_ups = OrdersDriversUploads::list([
"ord_id" => $orders[0]->ord_id,
"pck_id" => $orders[0]->ord_pck_id,
"drop_id" => $orders[0]->ord_drop_id,
"ord_pck_drop_id" => $orders[0]->ord_pck_drop_id,
]);
$data = [
"orders" => $orders,
"bladeViewOrders" => $bladeViewOrders,
"drvs_ups" => $drvs_ups,
"items" => AItems::listAItems([
"is_active" => AItems::IS_ACTIVE,
"is_adm_price" => AItems::IS_ADM_PRICE_NO,
"crt_type" => AItems::CRT_TYPE_ADMIN,
]),
"unitTypes" => UnitTypes::listUnitTypes([
"is_active" => UnitTypes::IS_ACTIVE,
"is_publish" => UnitTypes::IS_PUBLISH,
]),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
];
return view("menu_v1._viewTransactions", $data);
}
public function view_transactions_view(Request $req)
{
$codes = explode(",", $req->code);
$limit = count($codes);
if ($limit > 2) {
return redirect(route("view_transactions"));
}
$orders = Orders::showOrder([
"codes" => $codes,
"get_stts_checker" => 1,
"get_checker_data" => 1,
"get_checker_user" => 1,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_accidents" => 1,
"group_by" => "ord.id",
"limit" => $limit,
]);
if (count($orders) < 1) {
return redirect(route("view_transactions"));
}
$bladeViewOrders = [];
foreach ($orders as $iOrd => $order) {
// get multiple point (pick,drop)
$adtPoints = Orders::getPoints([
"id" => $order->ord_id,
"limit" => $order->drop_total,
]);
// hilangkan index 0, karena yang didapatkan adalah childnya
array_splice($adtPoints, 0, 1);
$orders[$iOrd]->adtPoints = $adtPoints;
// dd($adtPoints);
// formated for blade views
$tmpBladeView = clone $order;
if ($order->ord_pck_docs_client_img) {
$tmpBladeView->ord_pck_docs_client_img = json_decode($order->ord_pck_docs_client_img);
}
if ($order->ord_acdnt_imgs) {
$tmpBladeView->ord_acdnt_imgs = json_decode($order->ord_acdnt_imgs);
}
$bladeViewOrders[] = clone $tmpBladeView;
}
$rawData = DB::table("t_orders_pck_drop as topd")
->leftJoin("t_orders_pickups as top", "top.id", "topd.pck_id")
->leftJoin("t_orders_drops as tod", "tod.id", "topd.drop_id")
->where("topd.ord_code", $codes)
->selectRaw(
"topd.id,
FROM_UNIXTIME(top.set_pck_at, '%d %M %Y') as pck_date,
FROM_UNIXTIME(top.set_pck_at, '%H:%i:%s') as pck_time,
top.pck_name,
top.pck_addr,
tod.drop_name,
tod.drop_addr"
)
->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();
$data[] = [
"id" => $_data->id,
"pck_date" => $_data->pck_date,
"pck_time" => $_data->pck_time,
"pck_name" => $_data->pck_name,
"pck_addr" => $_data->pck_addr,
"drop_name" => $_data->drop_name,
"drop_addr" => $_data->drop_addr,
"checklist_array" => $ehck,
];
}
// dd($data[0]["checklist_array"]);
// dd($data);
$data = [
"data" => $data,
"orders" => $orders,
"bladeViewOrders" => $bladeViewOrders,
];
// dd($data);
return view("menu_v1._viewTransactions", $data);
}
public function view_transactions_view_bak_single(Request $req)
{
$codes = explode(",", $req->code);
$order = Orders::showOrder([
"code" => $codes[0],
"get_stts_checker" => 1,
"get_checker_data" => 1,
"get_checker_user" => 1,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_accidents" => 1,
]);
if (count($order) < 1) {
return redirect(route("view_transactions"));
}
$cantConfirmPrice = [Orders::STTS_WAIT, Orders::STTS_CONFIRM, Orders::STTS_HAVE_GET_VHC];
$show_confirm_price = 1;
if (in_array($order[0]->status, $cantConfirmPrice)) {
$show_confirm_price = 0;
}
$adtPoints = Orders::getPoints([
"id" => $order[0]->ord_id,
"limit" => $order[0]->drop_total,
]);
array_splice($adtPoints, 0, 1);
$data = [
"order" => $order[0],
"adtPoints" => $adtPoints,
"adtPointsJson" => json_encode($adtPoints),
"items" => AItems::listAItems([
"is_active" => AItems::IS_ACTIVE,
"is_adm_price" => AItems::IS_ADM_PRICE_NO,
"crt_type" => AItems::CRT_TYPE_ADMIN,
]),
"unitTypes" => UnitTypes::listUnitTypes([
"is_active" => UnitTypes::IS_ACTIVE,
"is_publish" => UnitTypes::IS_PUBLISH,
]),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
];
return view("menu_v1._viewTransactions", $data);
}
public function view_transactions_confirm(Request $req)
{
$order = Orders::showOrder([
"code" => $req->code,
"center_pck" => 1,
"get_prefer_type_truck" => 1,
]);
if (count($order) < 1) {
return redirect(route("view_transactions"));
}
if (isset($order[0]->pck_center)) {
$split = explode(" ", $order[0]->pck_center);
$order[0]->pck_center_lat = substr($split[1], 0, -1);
$order[0]->pck_center_lng = substr($split[0], 6);
}
$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,
]),
];
return view("menu_v1._confirmTransactions", $data);
}
/**
* ADMIN CONFIG
*/
public function view_logs_gps()
{
return view("menu_v1.configs.index_logs_gps");
}
/**
* CLIENT TRX
*/
public function view_transactions_add(Request $req)
{
$data = [
"uclients" => Users::listUsers([
"role" => Users::ROLE_CLIENT_ADMIN,
"status" => Users::STATUS_ACTIVE,
]),
"truck_types" => ConfTruckTypes::listTruckTypesRates(
ConfTruckTypes::IS_ACTIVE,
ConfRates::LANE_EARTH
),
];
return view("menu_v2.Clients._addTransactions", $data);
}
public function view_user_client_transaction()
{
return view("menu_v2.Clients.transactions");
}
public function view_user_client_transaction_view(Request $req)
{
$order = Orders::showOrder([
"code" => $req->code,
"get_stts_checker" => 1,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_accidents" => 1,
]);
if (count($order) < 1) {
return redirect(route("view_user_client_transaction"));
}
$adtPoints = Orders::getPoints([
"id" => $order[0]->ord_id,
"limit" => $order[0]->drop_total,
]);
array_splice($adtPoints, 0, 1);
$data = [
"order" => $order[0],
"adtPoints" => $adtPoints,
"adtPointsJson" => json_encode($adtPoints),
];
return view("menu_v2.Clients._viewTransactions", $data);
}
public function view_user_client_transaction_add(Request $req)
{
$client_group_id = $req->auth->client_group_id;
// if ($req->rdl == 1) {
// // $inActive = Orders::getOrdersClientActive($req->auth->uid);
// $haveOrder = Orders::getOrdersByClient($req->auth->uid, 1);
// if (count($haveOrder) > 0) {
// return redirect(route('view_user_client_transaction'));
// }
// }
$data = [
"pickups" => Zone::getActiveZones($client_group_id, 0, Zone::ZONE_WORKFLOW_PICKUP),
"drops" => Zone::getActiveZones($client_group_id, 0, Zone::ZONE_WORKFLOW_DEST),
"truck_types" => ConfTruckTypes::listTruckTypesRates(
ConfTruckTypes::IS_ACTIVE,
ConfRates::LANE_EARTH
),
];
return view("menu_v2.Clients._addTransactions", $data);
}
// public function view_user_client() {
// return view('menu_v2.Clients._addTransactions');
// }
/**
* VENDOR TRX
*/
public function view_user_vendor_transaction()
{
return view("menu_v2.Vendors.transactions");
}
public function view_user_vendor_transaction_view(Request $req)
{
$codes = explode(",", $req->code);
$limit = count($codes);
if ($limit > 2) {
return redirect(route("view_transactions"));
}
$orders = Orders::showOrder([
"codes" => $codes,
"get_stts_checker" => 1,
"get_checker_data" => 1,
"get_checker_user" => 1,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_accidents" => 1,
"group_by" => "ord.id",
"limit" => $limit,
]);
if (count($orders) < 1) {
return redirect(route("view_transactions"));
}
$bladeViewOrders = [];
foreach ($orders as $iOrd => $order) {
// get multiple point (pick,drop)
$adtPoints = Orders::getPoints([
"id" => $order->ord_id,
"limit" => $order->drop_total,
]);
// hilangkan index 0, karena yang didapatkan adalah childnya
array_splice($adtPoints, 0, 1);
$orders[$iOrd]->adtPoints = $adtPoints;
// dd($adtPoints);
// formated for blade views
$tmpBladeView = clone $order;
if ($order->ord_pck_docs_client_img) {
$tmpBladeView->ord_pck_docs_client_img = json_decode($order->ord_pck_docs_client_img);
}
if ($order->ord_acdnt_imgs) {
$tmpBladeView->ord_acdnt_imgs = json_decode($order->ord_acdnt_imgs);
}
$bladeViewOrders[] = clone $tmpBladeView;
}
$rawData = DB::table("t_orders_pck_drop as topd")
->leftJoin("t_orders_pickups as top", "top.id", "topd.pck_id")
->leftJoin("t_orders_drops as tod", "tod.id", "topd.drop_id")
->where("topd.ord_code", $codes)
->selectRaw(
"topd.id,
FROM_UNIXTIME(top.set_pck_at, '%d %M %Y') as pck_date,
FROM_UNIXTIME(top.set_pck_at, '%H:%i:%s') as pck_time,
top.pck_name,
top.pck_addr,
tod.drop_name,
tod.drop_addr"
)
->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();
$data[] = [
"id" => $_data->id,
"pck_date" => $_data->pck_date,
"pck_time" => $_data->pck_time,
"pck_name" => $_data->pck_name,
"pck_addr" => $_data->pck_addr,
"drop_name" => $_data->drop_name,
"drop_addr" => $_data->drop_addr,
"checklist_array" => $ehck,
];
}
// dd($data[0]["checklist_array"]);
// dd($data);
$data = [
"data" => $data,
"orders" => $orders,
"bladeViewOrders" => $bladeViewOrders,
];
// dd($data);
return view("menu_v2.Vendors._viewTransactions", $data);
}
public function view_user_vendor_transaction_view_bak_single(Request $req)
{
$order = Orders::showOrder([
"code" => $req->code,
]);
if (count($order) < 1) {
return redirect(route("view_transactions"));
}
$adtPoints = Orders::getPoints([
"id" => $order[0]->ord_id,
"limit" => $order[0]->drop_total,
]);
array_splice($adtPoints, 0, 1);
$data = [
"order" => $order[0],
"adtPoints" => $adtPoints,
"adtPointsJson" => json_encode($adtPoints),
];
return view("menu_v2.Vendors._viewTransactions", $data);
}
public function view_user_vendor_transaction_new_order(Request $req)
{
// dd($req->code);
$order = Orders::showOrder([
"code" => $req->code,
"get_exp_vendor" => 1,
"vdr_id" => $req->auth->uid,
"get_bid_info" => 1,
]);
// dd($order);
// if (count($order) < 1) {
// return redirect(route("view_user_vendor_transaction"));
// }
// if ($order[0]->vdr_status !== OrdersVendors::STTS_WAIT) {
// return redirect(route("view_user_vendor_transaction"));
// }
// if (
// $order[0]->status === Orders::STTS_WAIT ||
// $order[0]->status === Orders::STTS_CONFIRM
// ) {
// } else {
// return redirect(route("view_user_vendor_transaction"));
// }
// // date('Y-m-d H:i:s', $order[0]->vdr_exp_at);
// if ($order[0]->vdr_is_exp === OrdersVendors::LINK_WILL_EXP) {
// if ($order[0]->vdr_exp_at < time()) {
// return redirect(route("view_user_vendor_transaction"));
// }
// }
// if ($order[0]->is_mailing_bid != OrdersVendors::IS_MAILING_BID_SEND) {
// return redirect(route("view_user_vendor_transaction"));
// }
$haveBeenAcc = OrdersVendors::getByOrdIdByStatus($order[0]->ord_id, OrdersVendors::STTS_ACC);
if (count($haveBeenAcc) > 0) {
return redirect(route("view_user_vendor_transaction"));
}
$vehicles = Vehicles::getVehiclesInIdsActiveNoInOrder($order[0]->find_vhcs);
// $drivers = Drivers::getDriversNoInOrder($req->auth, [
// 'status' => Drivers::STTS_ACTIVE
// ]);
$drivers = Drivers::getDriversNoInOrderNew($req->auth, [
"status" => Drivers::STTS_ACTIVE,
]);
$data = [
"order" => $order[0],
"vehicles" => $vehicles,
"drivers" => $drivers,
];
return view("menu_v2.Vendors._newOrder", $data);
}
/**
* CHECKER TRX
*/
// public function view_user_checker()
// {
// return view('menu_v2.Checker.index');
// }
// public function view_user_checker_view(Request $req)
// {
// $order = Orders::showOrder([
// 'code' => $req->code,
// 'get_stts_checker' => 1,
// ]);
// if (count($order) < 1) {
// return redirect(route('view_user_checker'));
// }
// $filter = [
// 'get_not_deleted' => 1,
// ];
// $items = OrdersItems::getsByOrdId($order[0]->ord_id, $filter);
// $data = [
// 'order' => $order[0],
// 'items' => $items,
// ];
// return view('menu_v2.Checker._view', $data);
// }
public function view_user_checker()
{
return view("menu_v2.Checker.index");
}
public function view_user_checker_view(Request $req)
{
$data = [];
$orders = Orders::showOrder([
"code" => $req->code,
"get_stts_checker" => 1,
"get_prefer_type_truck" => 1,
"get_checker_data" => 1,
"get_client_pt" => 1,
"get_accidents" => 1,
"couple_pck_drop" => 1,
"get_user_aprv_pck" => 1,
"get_user_aprv_pck" => 1,
"join_pockets" => 1,
"group_by" => "ord.id",
]);
if (count($orders) < 1) {
return redirect(route("view_user_checker"));
}
$orderOne = clone $orders[0];
if ($orders[0]->group_merge_code) {
$orders = Orders::showOrder([
"group_merge_code" => $orders[0]->group_merge_code,
"get_stts_checker" => 1,
"get_prefer_type_truck" => 1,
"get_checker_data" => 1,
"get_client_pt" => 1,
"get_accidents" => 1,
"couple_pck_drop" => 1,
"get_user_aprv_pck" => 1,
"join_pockets" => 1,
"group_by" => "ord.id",
"limit" => 2,
]);
}
// uang saku / pocket money
$checkpoints = OrdersCheckpoints::listCheckpoints([
"ord_id" => $orders[0]->ord_id,
]);
$truck_types = ConfTruckTypes::listTruckTypes(ConfTruckTypes::IS_ACTIVE, [
"is_publish" => ConfTruckTypes::IS_PUBLISH,
]);
$bladeViewOrders = [];
foreach ($orders as $iOrd => $order) {
// get multiple point (pick,drop)
$adtPoints = Orders::getPoints([
"id" => $order->ord_id,
"limit" => $order->drop_total,
]);
// hilangkan index 0, karena yang didapatkan adalah childnya
array_splice($adtPoints, 0, 1);
$orders[$iOrd]->adtPoints = $adtPoints;
// uang saku / pocket money
$orders[$iOrd]->checkpoints = $checkpoints;
// formated for blade views
$tmpBladeView = clone $order;
if ($order->ord_pck_docs_client_img) {
$tmpBladeView->ord_pck_docs_client_img = json_decode($order->ord_pck_docs_client_img);
}
if ($order->ord_acdnt_imgs) {
$tmpBladeView->ord_acdnt_imgs = json_decode($order->ord_acdnt_imgs);
}
$bladeViewOrders[] = clone $tmpBladeView;
// special case for checker, karena meskipun merge tapi tampilnya tetap 1-1 per trx
if ($req->code === $order->ord_code) {
$orderOne = clone $order;
}
}
$drvs_ups = OrdersDriversUploads::list([
"ord_id" => $orders[0]->ord_id,
"pck_id" => $orders[0]->ord_pck_id,
"drop_id" => $orders[0]->ord_drop_id,
"ord_pck_drop_id" => $orders[0]->ord_pck_drop_id,
]);
$data = [
"orders" => $orders,
"drvs_ups" => $drvs_ups,
"order" => $orderOne,
"truck_types" => $truck_types,
"adtPoints" => $orders[0]->adtPoints,
"adtPointsJson" => json_encode($orders[0]->adtPoints),
];
return view("menu_v2.Checker._view", $data);
}
/**
* FINANCE
*/
public function view_keuangan_payment()
{
return view("menu_v2.Finance.payment");
}
public function view_keuangan_payment_view(Request $req)
{
$codes = explode(",", $req->code);
$limit = count($codes);
if ($limit > 2) {
return redirect(route("view_transactions"));
}
$orders = Orders::showOrder([
"codes" => $codes,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_pic_zone" => 1,
// 'get_stts_checker' => 1,
// 'get_checker_data' => 1,
// 'get_checker_user' => 1,
// 'get_accidents' => 1,
"couple_pck_drop" => 1,
"get_user_aprv_pck" => 1,
"group_by" => "ord.id",
"limit" => $limit,
]);
if (count($orders) < 1) {
return redirect(route("view_keuangan_payment"));
}
$bladeViewOrders = [];
foreach ($orders as $iOrd => $order) {
// get multiple point (pick,drop)
$adtPoints = Orders::getPoints([
"id" => $order->ord_id,
"limit" => $order->drop_total,
]);
// hilangkan index 0, karena yang didapatkan adalah childnya
array_splice($adtPoints, 0, 1);
$orders[$iOrd]->adtPoints = $adtPoints;
// formated for blade views
$tmpBladeView = clone $order;
// if ($order->ord_pck_docs_client_img) $tmpBladeView->ord_pck_docs_client_img = json_decode($order->ord_pck_docs_client_img);
// if ($order->ord_acdnt_imgs) $tmpBladeView->ord_acdnt_imgs = json_decode($order->ord_acdnt_imgs);
$bladeViewOrders[] = clone $tmpBladeView;
}
$drvs_ups = OrdersDriversUploads::list([
"ord_id" => $orders[0]->ord_id,
"pck_id" => $orders[0]->ord_pck_id,
"drop_id" => $orders[0]->ord_drop_id,
"ord_pck_drop_id" => $orders[0]->ord_pck_drop_id,
]);
$data = [
"orders" => $orders,
"bladeViewOrders" => $bladeViewOrders,
"drvs_ups" => $drvs_ups,
"items" => AItems::listAItems([
"is_active" => AItems::IS_ACTIVE,
"crt_type" => AItems::CRT_TYPE_FINANCE,
]),
"unitTypes" => UnitTypes::listUnitTypes([
"is_active" => UnitTypes::IS_ACTIVE,
"is_publish" => UnitTypes::IS_PUBLISH,
]),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
"availOrdToMerge" => Finance::availOrdToMerge([
"except_ord_id" => $orders[0]->ord_id,
]),
];
return view("menu_v2.Finance._viewPayment", $data);
}
public function view_keuangan_payment_view_single_bak(Request $req)
{
$order = Orders::showOrder([
"code" => $req->code,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_pic_zone" => 1,
// 'get_stts_checker' => 1,
// 'get_checker_data' => 1,
// 'get_checker_user' => 1,
// 'get_accidents' => 1,
]);
if (count($order) < 1) {
return redirect(route("view_keuangan_payment"));
}
$adtPoints = Orders::getPoints([
"id" => $order[0]->ord_id,
"limit" => $order[0]->drop_total,
]);
array_splice($adtPoints, 0, 1);
$data = [
"order" => $order[0],
"adtPoints" => $adtPoints,
"adtPointsJson" => json_encode($adtPoints),
"items" => AItems::listAItems([
"is_active" => AItems::IS_ACTIVE,
"crt_type" => AItems::CRT_TYPE_FINANCE,
]),
"unitTypes" => UnitTypes::listUnitTypes([
"is_active" => UnitTypes::IS_ACTIVE,
"is_publish" => UnitTypes::IS_PUBLISH,
]),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
"availOrdToMerge" => Finance::availOrdToMerge([
"except_ord_id" => $order[0]->ord_id,
]),
];
return view("menu_v2.Finance._viewPayment", $data);
}
public function view_keuangan_billing()
{
return view("menu_v2.Finance.billing");
}
public function view_keuangan_billing_view(Request $req)
{
$order = Orders::showOrder([
"code" => $req->code,
// 'get_prefer_type_truck' => 1,
"get_additional_vehicles_info" => 1,
"get_pic_zone" => 1,
// 'get_stts_checker' => 1,
// 'get_checker_data' => 1,
// 'get_checker_user' => 1,
// 'get_accidents' => 1,
"get_client_pt" => 1,
"couple_pck_drop" => 1,
"get_user_aprv_pck" => 1,
]);
if (count($order) < 1) {
return redirect(route("view_keuangan_billing"));
}
$a_items = Finance::listAdtItemsBillings([
"ord_id" => $order[0]->ord_id,
"group_by" => "ord_a_item.id",
"is_bill_aprv" => OrdersAItems::IS_APRV_YES,
]);
$group_items_by_termin = [];
foreach ($a_items as $i => $row) {
if (!isset($group_items_by_termin[$row->c_group_termin_id])) {
if (
$row->a_item_type === OrdersAItems::A_TYPE_PRIMARY &&
$row->stts_merge !== OrdersAItems::STTS_MERGE_RESULT
) {
$row->previous_termin = OrdersAItems::showAItem([
"ord_id" => $row->ord_id,
"is_active" => OrdersAItems::IS_ACTIVE_YES,
"a_item_type" => OrdersAItems::A_TYPE_PRIMARY,
"prev_main_item_id" => $row->ord_a_item_id,
"c_termin_id_not_zero" => 1,
"limit" => 1,
]);
}
$group_items_by_termin[$row->c_group_termin_id] = [];
$group_items_by_termin[$row->c_group_termin_id][] = $row;
continue;
}
$group_items_by_termin[$row->c_group_termin_id][] = $row;
}
$adtPoints = Orders::getPoints([
"id" => $order[0]->ord_id,
"limit" => $order[0]->drop_total,
]);
array_splice($adtPoints, 0, 1);
$drvs_ups = OrdersDriversUploads::list([
"ord_id" => $order[0]->ord_id,
"pck_id" => $order[0]->ord_pck_id,
"drop_id" => $order[0]->ord_drop_id,
"ord_pck_drop_id" => $order[0]->ord_pck_drop_id,
]);
$data = [
"order" => $order[0],
"adtPoints" => $adtPoints,
"adtPointsJson" => json_encode($adtPoints),
"drvs_ups" => $drvs_ups,
"items" => AItems::listAItems([
"is_active" => AItems::IS_ACTIVE,
"crt_type" => AItems::CRT_TYPE_FINANCE,
]),
"unitTypes" => UnitTypes::listUnitTypes([
"is_active" => UnitTypes::IS_ACTIVE,
"is_publish" => UnitTypes::IS_PUBLISH,
]),
"banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]),
"group_items_by_termin" => $group_items_by_termin,
];
return view("menu_v2.Finance._viewBilling", $data);
}
}