Files
shipping-portal/routes/web.php
T

158 lines
5.6 KiB
PHP

<?php
use App\Classes\Jobs\FetchContainersStatusUpdateFromVTPortalJob;
use App\Classes\Jobs\FetchDeliveryListFromVTPortalJob;
use App\Classes\Jobs\FetchLoadedContainersFromVTPortalJob;
use App\Classes\Jobs\FetchPackingListFromVTPortalJob;
use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob;
use App\Classes\Modules\Orders\Services\FetchesDataFromVTPortal;
use App\Models\CompanyConnection;
use Illuminate\Support\Facades\Crypt;
use App\Models\Container;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
require __DIR__ . '/template.php';
Route::get('', function () {
return view('pages.accounts.login');
})->name('login');
Route::group(['prefix' => 'swagger'], function () {
Route::get('/', function () {
return view('swagger.index');
});
Route::get('/json', function () {
return view('swagger.json');
});
});
Route::get('/business/claim/{hash}', function ($hash) {
return view('pages.accounts.claim_business', ['id' => Crypt::decryptString($hash)]);
})->name('company.claim');
Route::get('/account/email/verification/{token}', function ($token) {
return view('pages.accounts.email_verified', ['token' => $token]);
})->name('account.email.verification');
Route::get('/account/password/reset/{token}', function ($token) {
return view('pages.accounts.reset_password', ['token' => $token]);
})->name('account.password.reset');
Route::get('/dashboard', function () {
return view('pages.dashboard');
})->name('dashboard');
Route::get('/orders', function () {
return view('pages.orders.index');
})->name('orders');
Route::get('/order/show/{order_number}', function ($orderNumber) {
return view('pages.orders.profile', ['id' => $orderNumber]);
})->name('order.show');
Route::get('/address', function () {
return view('pages.addresses.index');
})->name('address');
Route::get('/warehouse-list', function () {
return view('pages.warehouse_list');
})->name('warehouse.list');
Route::get('/containers', function () {
return view('pages.containers');
})->name('containers');
Route::get('/container/show/{reference}', function ($reference) {
$container = Container::where('reference', $reference)->first();
return view('pages.templates.warehouseFlow', ['id' => $container->id]);
})->name('container.show');
Route::get('/customer/{marking}', function ($marking) {
$connection = CompanyConnection::where('invitee_reference', $marking)->first();
$id = $connection->invitee->company->id;
return view('pages.customers.profile', ['id' => $id]);
})->name('customer.profile');
Route::get('/orders/refresh', function(){
FetchWarehouseReceiveListFromVTPortalJob::withChain([
new FetchLoadedContainersFromVTPortalJob,
new FetchPackingListFromVTPortalJob,
new FetchContainersStatusUpdateFromVTPortalJob,
new FetchDeliveryListFromVTPortalJob
])->dispatch();
return redirect('orders');
})->name('orders.refresh');
Route::get('/containers/refresh', function(){
FetchContainersStatusUpdateFromVTPortalJob::dispatch();
return redirect('orders');
})->name('containers.refresh');
Route::get('/deliveries/refresh', function(){
FetchDeliveryListFromVTPortalJob::dispatch();
return redirect('orders');
})->name('deliveries.refresh');
Route::get('/order/{id}/download', 'Orders\DownloadOrderQrPdfController@download')->name('order.qr.download');
Route::get('/report/customclearance', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance');
Route::get('/report/customclearance/{orderid}', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance');
Route::group(['prefix' => 'template', 'as' => 'template.'], function () {
Route::get('/payments-and-billing', function () {
return view('pages.templates.paymentsBilling');
})->name('payments-and-billing');
Route::get('/shipping-queue', function () {
return view('pages.templates.shippingQueue');
})->name('shipping-queue');
});
Route::get('/report', function(){
$fetchesDataFRomVTPortal = App()->make(FetchesDataFromVTPortal::class);
foreach(Container::all() as $container) {
$filter = '["RefNo:=%js%\"'.$container->reference.'\"\u0000"]';
$containerDetailsRequest = $fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), '');
$containerDetails = $fetchesDataFRomVTPortal->getResponseBody($containerDetailsRequest);
$containerDetails = $containerDetails->Rows[0];
$container->loading_date = $containerDetails[5];
$container->save();
}
// $shipping_packing_lists = \App\Models\PackingList::where('type', '=', \App\Classes\ValueObjects\Constants\PackingListType::SHIPPING_PACKING_LIST)->get();
//
// $totalCbm = $shipping_packing_lists->sum(function($packing_list){
// return $packing_list->packages->sum(function ($package){
// return (( (float) $package->width / 100) * ( (float) $package->length / 100) * ( (float) $package->height / 100));
// });
// });
//
// echo 'total cbm: '.$totalCbm;
});