mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-21 13:34:08 +00:00
Vt sync update
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanApproveChangeOrderAddress;
|
||||
use App\Classes\Modules\Orders\Services\UpdatesOrdersAddress;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -26,11 +27,12 @@ class ApproveChangeOrderAddressProcessor
|
||||
* @param FetchesAddress $fetchesAddress
|
||||
* @param UpdatesOrdersAddress $updatesOrdersAddress
|
||||
*/
|
||||
public function __construct(CanApproveChangeOrderAddress $canApproveChangeOrderAddress, FetchesAddress $fetchesAddress, UpdatesOrdersAddress $updatesOrdersAddress)
|
||||
public function __construct(CanApproveChangeOrderAddress $canApproveChangeOrderAddress, FetchesAddress $fetchesAddress, UpdatesOrdersAddress $updatesOrdersAddress, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor)
|
||||
{
|
||||
$this->canApproveChangeOrderAddress = $canApproveChangeOrderAddress;
|
||||
$this->fetchesAddress = $fetchesAddress;
|
||||
$this->updatesOrdersAddress = $updatesOrdersAddress;
|
||||
$this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +45,6 @@ class ApproveChangeOrderAddressProcessor
|
||||
*/
|
||||
public function execute(Request $request)
|
||||
{
|
||||
|
||||
$status = (int) $request->route('status');
|
||||
|
||||
$this->canApproveChangeOrderAddress->passes();
|
||||
@@ -54,7 +55,9 @@ class ApproveChangeOrderAddressProcessor
|
||||
$address->owner->addresses()->update(['status' => ApprovalStatus::EXPIRED]);
|
||||
}
|
||||
|
||||
$this->updatesOrdersAddress->execute($address, $status);
|
||||
$address = $this->updatesOrdersAddress->execute($address, $status);
|
||||
|
||||
$vt_do_update = $this->updateDoFromVTPortalProcessor->execute($address);
|
||||
|
||||
return $address;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@ use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||
use App\Classes\Modules\Addresses\Services\DeletesAddress;
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
||||
use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject;
|
||||
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
||||
use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -29,6 +33,12 @@ class RequestChangeOrderAddressProcessor
|
||||
/** @var DeletesAddress */
|
||||
private $deletesAddress;
|
||||
|
||||
/** @var CreateContactProcessor */
|
||||
private $createContactProcessor;
|
||||
|
||||
/** @var CreateRemarkProcessor */
|
||||
private $createRemarkProcessor;
|
||||
|
||||
/**
|
||||
* ChangeOrderAddressProcessor constructor.
|
||||
* @param FetchesOrder $fetchesOrder
|
||||
@@ -36,7 +46,7 @@ class RequestChangeOrderAddressProcessor
|
||||
* @param FetchesAddress $fetchesAddress
|
||||
* @param DeletesAddress $deletesAddress
|
||||
*/
|
||||
public function __construct(CanChangeOrderAddress $canChangeOrderAddress, FetchesOrder $fetchesOrder, CreatesAddress $createsAddress, FetchesAddress $fetchesAddress, DeletesAddress $deletesAddress)
|
||||
public function __construct(CanChangeOrderAddress $canChangeOrderAddress, FetchesOrder $fetchesOrder, CreatesAddress $createsAddress, FetchesAddress $fetchesAddress, DeletesAddress $deletesAddress, CreateContactProcessor $createContactProcessor, CreateRemarkProcessor $createRemarkProcessor)
|
||||
{
|
||||
|
||||
$this->canChangeOrderAddress = $canChangeOrderAddress;
|
||||
@@ -44,12 +54,13 @@ class RequestChangeOrderAddressProcessor
|
||||
$this->createsAddress = $createsAddress;
|
||||
$this->fetchesAddress = $fetchesAddress;
|
||||
$this->deletesAddress = $deletesAddress;
|
||||
$this->createContactProcessor = $createContactProcessor;
|
||||
$this->createRemarkProcessor = $createRemarkProcessor;
|
||||
}
|
||||
|
||||
|
||||
public function execute(Request $request)
|
||||
{
|
||||
|
||||
$this->canChangeOrderAddress->passes();
|
||||
|
||||
$order = $this->fetchesOrder->execute(['id' => $request->get('order_id')]);
|
||||
@@ -59,7 +70,30 @@ class RequestChangeOrderAddressProcessor
|
||||
|
||||
$address = $this->fetchesAddress->execute(['id' => $request->get('address_id')]);
|
||||
$addressObject = new AddressObject($address->street_one, $address->street_two, $address->country_id, $address->state_id, $address->district_id, $address->postcode, $address->reference, ApprovalStatus::PENDING_VERIFICATION);
|
||||
$this->createsAddress->execute($order, $addressObject);
|
||||
$order_address = $this->createsAddress->execute($order, $addressObject);
|
||||
|
||||
$contact = $address->contacts()->first();
|
||||
$contactObject = new ContactObject(
|
||||
$contact->reference,
|
||||
$contact->phone,
|
||||
'',
|
||||
''
|
||||
);
|
||||
|
||||
if($contactObject->getPhone()){
|
||||
$order_remark = $this->createContactProcessor->execute($contactObject, $order_address);
|
||||
}
|
||||
|
||||
$remark = $address->remarks()->first();
|
||||
|
||||
$remarkObject = new RemarkObject(
|
||||
$remark->content,
|
||||
Auth()->user()->id
|
||||
);
|
||||
|
||||
if($remarkObject->getContent()){
|
||||
$this->createRemarkProcessor->execute($order_address, $remarkObject);
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Processors;
|
||||
|
||||
use App\Classes\Modules\Orders\Services\FetchesDataFromVTPortal;
|
||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||
|
||||
use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject;
|
||||
use App\Classes\Modules\Schedules\Services\CreatesSchedule;
|
||||
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
|
||||
use App\Classes\Modules\Transports\Services\CreatesTransport;
|
||||
use App\Classes\Modules\Unity\Services\UpdatesContractObligation;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\OrderRoleTypes;
|
||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
||||
use App\Classes\ValueObjects\Constants\TransportType;
|
||||
use App\Models\PackingList;
|
||||
use App\Models\Transport;
|
||||
use Carbon\Carbon;
|
||||
use GuzzleHttp\Exception\GuzzleException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UpdateDoFromVTPortalProcessor
|
||||
{
|
||||
/** @var FetchesDataFromVTPortal */
|
||||
private $fetchesDataFRomVTPortal;
|
||||
|
||||
/** @var FetchesAddress */
|
||||
private $fetchesAddress;
|
||||
|
||||
/**
|
||||
* FetchDeliveryListFromVTPortalProcessor constructor.
|
||||
* @param FetchesDataFromVTPortal $fetchesDataFRomVTPortal
|
||||
* @param CreatesTransport $createsTransport
|
||||
* @param CreatesSchedule $createsSchedule
|
||||
* @param UpdatesContractObligation $updatesContractObligations
|
||||
*/
|
||||
public function __construct(FetchesDataFromVTPortal $fetchesDataFRomVTPortal, FetchesAddress $fetchesAddress)
|
||||
{
|
||||
$this->fetchesDataFRomVTPortal = $fetchesDataFRomVTPortal;
|
||||
$this->fetchesAddress = $fetchesAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function execute($address) {
|
||||
|
||||
try {
|
||||
$order = $address->owner()->orderBy('id', 'desc')->first();
|
||||
$packing_list = $order->packingLists()->orderBy('id', 'desc')->first();
|
||||
|
||||
if ($packing_list) {
|
||||
$contact = $address->contacts()->first();
|
||||
$remark = $address->remarks()->first();
|
||||
|
||||
$status = 'Release';
|
||||
|
||||
if ($packing_list->status == ApprovalStatus::PENDING_VERIFICATION) {
|
||||
$status = 'Release';
|
||||
}
|
||||
else if($packing_list->status == ApprovalStatus::SUSPENDED) {
|
||||
$status = 'On Hold';
|
||||
|
||||
}
|
||||
|
||||
$vt_do = $this->fetchesDataFRomVTPortal->clientRequest(
|
||||
'http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage',
|
||||
'POST',
|
||||
json_decode('{
|
||||
"controller": "Do",
|
||||
"view": "grid1",
|
||||
"request": {
|
||||
"PageIndex": -2,
|
||||
"PageSize": 10,
|
||||
"PageOffset": 0,
|
||||
"SortExpression": "",
|
||||
"GroupExpression": "",
|
||||
"Filter": [
|
||||
"FullMarking:$contains$%js%\"' . $order->reference . '\"\u0000"
|
||||
],
|
||||
"ContextKey": "view2",
|
||||
"FilterIsExternal": true,
|
||||
"LookupContextFieldName": null,
|
||||
"LookupContextController": null,
|
||||
"LookupContextView": null,
|
||||
"LookupContext": null,
|
||||
"Inserting": false,
|
||||
"LastCommandName": null,
|
||||
|
||||
"DoesNotRequireData": false,
|
||||
"LastView": "grid1",
|
||||
"Tag": null,
|
||||
"RequiresFirstLetters": false,
|
||||
"ViewType": "Grid",
|
||||
"SupportsCaching": true,
|
||||
"SystemFilter": null,
|
||||
"RequiresRowCount": true,
|
||||
"QuickFindHint": null,
|
||||
"RequiresPivot": false,
|
||||
"PivotDefinitions": null,
|
||||
"RequiresMetaData": true
|
||||
}
|
||||
}'
|
||||
), '');
|
||||
|
||||
$vt_do = $this->fetchesDataFRomVTPortal->getResponseBody($vt_do);
|
||||
|
||||
if ($vt_do) {
|
||||
foreach ($vt_do->Rows as $key => $row) {
|
||||
|
||||
$vt_do_update = $this->fetchesDataFRomVTPortal->clientRequest(
|
||||
'http://portal.vtnation.com.my/Services/DataControllerService.asmx/Execute',
|
||||
'POST',
|
||||
json_decode('{
|
||||
"controller": "Do",
|
||||
"view": "editForm1",
|
||||
"args": {
|
||||
"CommandName": "Update",
|
||||
"CommandArgument": "Save",
|
||||
"Path": "ag2/a4",
|
||||
"LastCommandName": "Edit",
|
||||
"Values": [
|
||||
{
|
||||
"Name": "ShippingAddress",
|
||||
"NewValue": "' . $address->street_one . ' ' . $address->street_two . '",
|
||||
"Modified": true,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "Attn",
|
||||
"NewValue": "' . $contact->reference . '",
|
||||
"Modified": true,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "Tel",
|
||||
"NewValue": "' . $contact->phone . '",
|
||||
"Modified": true,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "Status",
|
||||
"NewValue": "' . $status . '",
|
||||
"Modified": true,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "Doremarks",
|
||||
"NewValue": "' . $remark->content . '",
|
||||
"Modified": true,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "ModifiedBy",
|
||||
"OldValue": "CIEF",
|
||||
"NewValue": "CIEF",
|
||||
"Modified": false,
|
||||
"ReadOnly": false,
|
||||
"Error": null
|
||||
},
|
||||
{
|
||||
"Name": "DoID",
|
||||
"OldValue": 1471,
|
||||
"NewValue": ' . $row[0] . ',
|
||||
"Modified": false,
|
||||
"ReadOnly": true,
|
||||
"Error": null
|
||||
}
|
||||
],
|
||||
"ContextKey": "do",
|
||||
"Controller": "Do",
|
||||
"View": "editForm1",
|
||||
"LastView": "grid1",
|
||||
"Tag": null,
|
||||
"Filter": [
|
||||
"DoID:=%js%' . $row[0] . '",
|
||||
"ContainerID:=%js%' . $row[1] . '"
|
||||
],
|
||||
"SortExpression": "",
|
||||
"GroupExpression": "",
|
||||
"SelectedValues": []
|
||||
}
|
||||
}'), '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (\Exception $exception){
|
||||
Log::error($exception);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\PackingLists\Services\UpdatesPackingListStatus;
|
||||
use App\Classes\Modules\PackingLists\Standards\Rules\CanUpdatePackingList;
|
||||
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
|
||||
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
|
||||
use App\Http\Resources\PackingListResource;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -34,15 +35,19 @@ class UpdatePackingListStatusLogic extends AbstractControllerLogic
|
||||
/** @var UpdatesPackingListStatus */
|
||||
private $updatesPackingListStatus;
|
||||
|
||||
/** @var UpdateDoFromVTPortalProcessor */
|
||||
private $updateDoFromVTPortalProcessor;
|
||||
|
||||
/**
|
||||
* UpdatePackingListStatusLogic constructor.
|
||||
* @param FetchesPackingList $fetchesPackingList
|
||||
* @param UpdatesPackingListStatus $updatesPackingListStatus
|
||||
*/
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, UpdatesPackingListStatus $updatesPackingListStatus)
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, UpdatesPackingListStatus $updatesPackingListStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor)
|
||||
{
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
$this->updatesPackingListStatus = $updatesPackingListStatus;
|
||||
$this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,9 +59,12 @@ class UpdatePackingListStatusLogic extends AbstractControllerLogic
|
||||
{
|
||||
$packingList = $this->fetchesPackingList->execute(['id' => $request->route('id')]);
|
||||
|
||||
$query = $this->updatesPackingListStatus->execute($packingList, $request->route('status'));
|
||||
$packing_list = $this->updatesPackingListStatus->execute($packingList, $request->route('status'));
|
||||
$address = $packing_list->owner()->first()->addresses()->first();
|
||||
|
||||
return $this->resourceResponse(new PackingListResource($query));
|
||||
$vt_do_update = $this->updateDoFromVTPortalProcessor->execute($address);
|
||||
|
||||
return $this->resourceResponse(new PackingListResource($packing_list));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user