mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-29 09:24:26 +00:00
update packinglists from vt portal jobs and schedule
This commit is contained in:
@@ -1,94 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class CurlWarehouseListJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
private $page;
|
||||
|
||||
public function __construct($page = -2)
|
||||
{
|
||||
$this->page = $page;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$cookies = $this->getCookie();
|
||||
|
||||
$headers = [
|
||||
'Content-Type' => 'application/json',
|
||||
'Cookie' => $cookies,
|
||||
];
|
||||
|
||||
$yesterday = Carbon::now()->subDays(1)->format('Y-m-d');
|
||||
|
||||
$client = new \GuzzleHttp\Client(['headers' => $headers]);
|
||||
$res = $client->post('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', [\GuzzleHttp\RequestOptions::JSON => json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":' . $this->page . ',"PageSize":100,"PageOffset":0,"SortExpression":"ParcelDate DESC,FullMarking DESC","GroupExpression":"","Filter":["ParcelDate:=%js%\"' . $yesterday . 'T00:00:00.000\"\u0000"],"ContextKey":"view1","FilterIsExternal":false,"LookupContextFieldName":null,"LookupContextController":null,"LookupContextView":null,"LookupContext":null,"Inserting":false,"LastCommandName":null,"ExternalFilter":[],"DoesNotRequireData":false,"LastView":"grid1","Tag":null,"RequiresFirstLetters":false,"ViewType":"Grid","SupportsCaching":true,"SystemFilter":null,"RequiresRowCount":true,"QuickFindHint":null,"RequiresPivot":false,"PivotDefinitions":null,"RequiresMetaData":true}}')]);
|
||||
|
||||
$data = json_decode($res->getBody()->getContents());
|
||||
|
||||
if (!empty($data->d->Row)) {
|
||||
// insert data here
|
||||
|
||||
// next page
|
||||
$this->page = $this->page > 0 ? $this->page + 1 : 1;
|
||||
CurlWarehouseListJob::dispatch($this->page + 1)
|
||||
->delay(Carbon::now()->addSeconds(10));
|
||||
}
|
||||
}
|
||||
|
||||
public function getCookie()
|
||||
{
|
||||
// get latest cookies
|
||||
$client = new \GuzzleHttp\Client(['cookies' => true]);
|
||||
$r = $client->request('GET', 'https://portalvt.azurewebsites.net');
|
||||
$call_cookie = $client->getConfig('cookies');
|
||||
$call_cookie = $call_cookie->toArray();
|
||||
$latest_cookie = [];
|
||||
|
||||
foreach ($call_cookie as $key => $row) {
|
||||
$latest_cookie[] = $row['Name'] . '=' . $row['Value'];
|
||||
}
|
||||
$latest_cookie = implode(';', $latest_cookie);
|
||||
|
||||
// get access token
|
||||
$headers = [
|
||||
'Content-Type' => 'application/json',
|
||||
'Cookie' => $latest_cookie,
|
||||
];
|
||||
$client = new \GuzzleHttp\Client(['headers' => $headers]);
|
||||
$res = $client->post('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/Login', [\GuzzleHttp\RequestOptions::JSON => [
|
||||
"username" => "CIEF",
|
||||
"password" => "0122120880",
|
||||
"createPersistentCookie" => true,
|
||||
]]);
|
||||
|
||||
$token = json_decode($res->getBody()->getContents());
|
||||
$token = $token->d->AccessToken;
|
||||
|
||||
$latest_cookie = $latest_cookie . ';AppVTCC=' . $token;
|
||||
return $latest_cookie;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchContainersStatusUpdateFromVTPortalProcessor;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class FetchContainersStatusUpdateFromVTPortalJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/** @var FetchContainersStatusUpdateFromVTPortalProcessor */
|
||||
private $fetchContainersStatusUpdateFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* FetchContainersStatusUpdateFromVTPortalJob constructor.
|
||||
* @param FetchContainersStatusUpdateFromVTPortalProcessor $fetchContainersStatusUpdateFromVTPortalProcessor
|
||||
*/
|
||||
public function __construct(FetchContainersStatusUpdateFromVTPortalProcessor $fetchContainersStatusUpdateFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchContainersStatusUpdateFromVTPortalProcessor = $fetchContainersStatusUpdateFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$this->fetchContainersStatusUpdateFromVTPortalProcessor->execute();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchDeliveryListFromVTPortalProcessor;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class FetchDeliveryListFromVTPortalJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/** @var FetchDeliveryListFromVTPortalProcessor */
|
||||
private $fetchDeliveryListFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* FetchDeliveryListFromVTPortalJob constructor.
|
||||
* @param FetchDeliveryListFromVTPortalProcessor $fetchDeliveryListFromVTPortalProcessor
|
||||
*/
|
||||
public function __construct(FetchDeliveryListFromVTPortalProcessor $fetchDeliveryListFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchDeliveryListFromVTPortalProcessor = $fetchDeliveryListFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$this->fetchDeliveryListFromVTPortalProcessor->execute();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchLoadedContainersFromVTPortalProcessor;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class FetchLoadedContainersFromVTPortalJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/** @var FetchLoadedContainersFromVTPortalProcessor */
|
||||
private $fetchLoadedContainersFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* FetchLoadedContainersFromVTPortalJob constructor.
|
||||
* @param FetchLoadedContainersFromVTPortalProcessor $fetchLoadedContainersFromVTPortalProcessor
|
||||
*/
|
||||
public function __construct(FetchLoadedContainersFromVTPortalProcessor $fetchLoadedContainersFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchLoadedContainersFromVTPortalProcessor = $fetchLoadedContainersFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @param Carbon|null $start
|
||||
* @param Carbon|null $end
|
||||
* @return void
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public function handle(?Carbon $start = null, ?Carbon $end = null)
|
||||
{
|
||||
$this->fetchLoadedContainersFromVTPortalProcessor->execute($start, $end);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchPackingListFromVTPortalProcessor;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class FetchPackingListFromVTPortalJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/** @var FetchPackingListFromVTPortalProcessor */
|
||||
private $fetchPackingListFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* FetchPackingListFromVTPortalJob constructor.
|
||||
* @param FetchPackingListFromVTPortalProcessor $fetchPackingListFromVTPortalProcessor
|
||||
*/
|
||||
public function __construct(FetchPackingListFromVTPortalProcessor $fetchPackingListFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchPackingListFromVTPortalProcessor = $fetchPackingListFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$this->fetchPackingListFromVTPortalProcessor->execute();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs;
|
||||
|
||||
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchWarehouseReceiveListFromVTPortalProcessor;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class FetchWarehouseReceiveListFromVTPortalJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/** @var FetchWarehouseReceiveListFromVTPortalProcessor */
|
||||
private $fetchWarehouseReceiveListFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* FetchWarehouseReceiveListFromVTPortalJob constructor.
|
||||
* @param FetchWarehouseReceiveListFromVTPortalProcessor $fetchWarehouseReceiveListFromVTPortalProcessor
|
||||
*/
|
||||
public function __construct(FetchWarehouseReceiveListFromVTPortalProcessor $fetchWarehouseReceiveListFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchWarehouseReceiveListFromVTPortalProcessor = $fetchWarehouseReceiveListFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @param Carbon|null $start
|
||||
* @param Carbon|null $end
|
||||
* @return void
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public function handle(?Carbon $start = null, ?Carbon $end = null)
|
||||
{
|
||||
$this->fetchWarehouseReceiveListFromVTPortalProcessor->execute($start, $end);
|
||||
}
|
||||
}
|
||||
+10
-1
@@ -2,6 +2,11 @@
|
||||
|
||||
namespace App\Console;
|
||||
|
||||
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 Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
|
||||
@@ -24,7 +29,11 @@ class Kernel extends ConsoleKernel
|
||||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
// $schedule->command('inspire')->hourly();
|
||||
$schedule->job(FetchWarehouseReceiveListFromVTPortalJob::class)->dailyAt('21:00');
|
||||
$schedule->job(FetchLoadedContainersFromVTPortalJob::class)->dailyAt('21:15');
|
||||
$schedule->job(FetchPackingListFromVTPortalJob::class)->dailyAt('21:30');
|
||||
$schedule->job(FetchContainersStatusUpdateFromVTPortalJob::class)->dailyAt('21:45');
|
||||
$schedule->job(FetchDeliveryListFromVTPortalJob::class)->dailyAt('22:00');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Classes\Jobs\FetchDeliveryListFromVTPortalJob;
|
||||
use App\Classes\Jobs\FetchLoadedContainersFromVTPortalJob;
|
||||
use App\Classes\Jobs\FetchPackingListFromVTPortalJob;
|
||||
use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob;
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchContainersStatusUpdateFromVTPortalProcessor;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class OrdersTableSeeder extends Seeder
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
|
||||
FetchWarehouseReceiveListFromVTPortalJob::dispatch()->chain([
|
||||
FetchLoadedContainersFromVTPortalJob::class,
|
||||
FetchPackingListFromVTPortalJob::class,
|
||||
FetchContainersStatusUpdateFromVTPortalProcessor::class,
|
||||
FetchDeliveryListFromVTPortalJob::class,
|
||||
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user