mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
large commit
This commit is contained in:
@@ -15,11 +15,13 @@ use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
|
||||
use App\Classes\Modules\Companies\Services\ApprovesCompanyConnection;
|
||||
use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
|
||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
||||
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
||||
use App\Classes\Modules\Documents\Processors\UploadIdentityDocumentProcessor;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||
use App\Classes\ValueObjects\Constants\RoleTypes;
|
||||
|
||||
use App\Models\Company;
|
||||
@@ -115,9 +117,11 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
||||
$user = $this->createUserProcessor->execute($request, RoleTypes::USER, !App::environment(['production']) ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION);
|
||||
|
||||
/** @var Company $company */
|
||||
$company = $this->createCompanyProcessor->execute($request, $request->input('type'), ApprovalStatus::PENDING_SUBMISSION);
|
||||
$company = $this->createCompanyProcessor->execute($request->input('type') === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name'), $request->input('type'), ApprovalStatus::PENDING_SUBMISSION);
|
||||
|
||||
$this->createContactProcessor->execute($request, $company);
|
||||
$contactObject = new ContactObject($request->input('name'), $request->input('phone'), $request->input('contact_email'), $request->input('wechat_id'));
|
||||
|
||||
$this->createContactProcessor->execute($contactObject, $company);
|
||||
|
||||
/** @var CompanyModule $companyModule */
|
||||
$companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::IMPORTER);
|
||||
|
||||
@@ -6,7 +6,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||
use App\Http\Resources\CompanyResource;
|
||||
use App\Models\Company;
|
||||
@@ -54,7 +53,7 @@ class CreateCompanyLogic extends AbstractControllerLogic
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
/** @var Company $company */
|
||||
$company = $this->createCompanyProcessor->execute($request, $request->input('type'), ApprovalStatus::PENDING_SUBMISSION);
|
||||
$company = $this->createCompanyProcessor->execute($request->input('type') === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name'), $request->input('type'), ApprovalStatus::PENDING_SUBMISSION);
|
||||
|
||||
$this->createCompanyModuleProcessor->execute($company , $request->input('business_type'));
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class CreateCompanyProcessor
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param string $name
|
||||
* @param int $companyType
|
||||
* @param int|null $status
|
||||
* @return Model
|
||||
@@ -50,11 +50,9 @@ class CreateCompanyProcessor
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function execute(Request $request, int $companyType = CompanyType::COMPANY_BUSINESS, ?int $status = ApprovalStatus::PENDING_SUBMISSION): Model {
|
||||
public function execute(string $name, int $companyType = CompanyType::COMPANY_BUSINESS, ?int $status = ApprovalStatus::PENDING_SUBMISSION): Model {
|
||||
|
||||
$companyName = $companyType === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name');
|
||||
|
||||
$company_object = new CompanyObject($companyName, $this->generatesUniqueAccountNumber->execute(), $companyType, $status);
|
||||
$company_object = new CompanyObject($name, $this->generatesUniqueAccountNumber->execute(), $companyType, $status);
|
||||
|
||||
$this->canCreateCompany->passes($company_object);
|
||||
|
||||
|
||||
@@ -27,25 +27,18 @@ class CreateContactProcessor
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param ContactObject $object
|
||||
* @param Company $company
|
||||
* @return Model
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function execute(Request $request, Company $company): Model
|
||||
public function execute(ContactObject $object, Company $company): Model
|
||||
{
|
||||
|
||||
$contact_object = new ContactObject(
|
||||
$request->input('name'),
|
||||
$request->input('phone'),
|
||||
$request->input('contact_email'),
|
||||
$request->input('wechat_id'),
|
||||
);
|
||||
$this->canCreateContact->passes($object);
|
||||
|
||||
$this->canCreateContact->passes($contact_object);
|
||||
|
||||
return $this->createsContact->execute($company,$contact_object);
|
||||
return $this->createsContact->execute($company,$object);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Classes\Modules\Documents\Processors;
|
||||
|
||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyStatus;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
||||
use App\Classes\Modules\Documents\Services\CreatesFiles;
|
||||
@@ -19,17 +20,22 @@ class UploadIdentityDocumentProcessor
|
||||
/** @var CreatesDocument */
|
||||
private $createsDocument;
|
||||
|
||||
/** @var UpdatesCompanyStatus */
|
||||
private $updatesCompanyStatus;
|
||||
|
||||
/** @var CreatesFiles */
|
||||
private $createsFiles;
|
||||
|
||||
/**
|
||||
* UploadIdentityDocumentProcessor constructor.
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param UpdatesCompanyStatus $updatesCompanyStatus
|
||||
* @param CreatesFiles $createsFiles
|
||||
*/
|
||||
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFiles)
|
||||
public function __construct(CreatesDocument $createsDocument, UpdatesCompanyStatus $updatesCompanyStatus, CreatesFiles $createsFiles)
|
||||
{
|
||||
$this->createsDocument = $createsDocument;
|
||||
$this->updatesCompanyStatus = $updatesCompanyStatus;
|
||||
$this->createsFiles = $createsFiles;
|
||||
}
|
||||
|
||||
@@ -37,10 +43,9 @@ class UploadIdentityDocumentProcessor
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Company $company
|
||||
* @return array
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(Request $request, Company $company): array {
|
||||
public function execute(Request $request, Company $company) {
|
||||
|
||||
$object = new DocumentObject($company->type === CompanyType::COMPANY_BUSINESS ?
|
||||
DocumentType::SSM_REGISTRATION : DocumentType::IDENTITY_CARD, $request->input('files'),
|
||||
@@ -49,7 +54,9 @@ class UploadIdentityDocumentProcessor
|
||||
/** @var Document $document */
|
||||
$document = $this->createsDocument->execute($company, $object);
|
||||
|
||||
return $this->createsFiles->execute($document, $object);
|
||||
$this->createsFiles->execute($document, $object);
|
||||
|
||||
$this->updatesCompanyStatus->execute($company, ApprovalStatus::PENDING_VERIFICATION);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\ControllersLogic;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\Services\CancelsOrder;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Http\Resources\OrderResource;
|
||||
use App\Models\Order;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CancelOrderLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Cancelled Order',
|
||||
'message' => 'You have successfully cancelled an order'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var CancelsOrder */
|
||||
private $cancelsOrder;
|
||||
|
||||
/** @var FetchesOrder */
|
||||
private $fetchesOrder;
|
||||
|
||||
/**
|
||||
* CancelOrderLogic constructor.
|
||||
* @param CancelsOrder $cancelsOrder
|
||||
* @param FetchesOrder $fetchesOrder
|
||||
*/
|
||||
public function __construct(CancelsOrder $cancelsOrder, FetchesOrder $fetchesOrder)
|
||||
{
|
||||
$this->cancelsOrder = $cancelsOrder;
|
||||
$this->fetchesOrder = $fetchesOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
|
||||
/** @var Order $order */
|
||||
$order = $this->fetchesOrder->execute(['id' => $request->route('id')]);
|
||||
|
||||
return $this->resourceResponse(new OrderResource($this->cancelsOrder->execute($order)));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\ControllersLogic;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\Services\RestoresOrder;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Http\Resources\OrderResource;
|
||||
use App\Models\Order;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RestoreOrderLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Cancelled Order',
|
||||
'message' => 'You have successfully cancelled an order'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var RestoresOrder */
|
||||
private $restoresOrder;
|
||||
|
||||
/** @var FetchesOrder */
|
||||
private $fetchesOrder;
|
||||
|
||||
/**
|
||||
* CancelOrderLogic constructor.
|
||||
* @param RestoresOrder $restoresOrder
|
||||
* @param FetchesOrder $fetchesOrder
|
||||
*/
|
||||
public function __construct(RestoresOrder $restoresOrder, FetchesOrder $fetchesOrder)
|
||||
{
|
||||
$this->restoresOrder = $restoresOrder;
|
||||
$this->fetchesOrder = $fetchesOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
|
||||
/** @var Order $order */
|
||||
$order = $this->fetchesOrder->execute(['id' => $request->route('id')]);
|
||||
|
||||
return $this->resourceResponse(new OrderResource($this->restoresOrder->execute($order)));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Models\Order;
|
||||
|
||||
class CancelsOrder extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Order $model
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(Order $model)
|
||||
{
|
||||
$model->status = ApprovalStatus::SUSPENDED;
|
||||
|
||||
return $this->handler($model);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Models\Order;
|
||||
|
||||
class RestoresOrder extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Order $model
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(Order $model)
|
||||
{
|
||||
$model->status = $model->companyModule->company->status === ApprovalStatus::APPROVED ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION;
|
||||
|
||||
return $this->handler($model);
|
||||
}
|
||||
}
|
||||
+161
-23
@@ -2,53 +2,191 @@
|
||||
|
||||
namespace App\Classes\Modules\PackingLists\Processors;
|
||||
|
||||
use App\Classes\General\Services\GeneratesInitials;
|
||||
use App\Classes\Modules\Accounts\Processors\CreateUserProcessor;
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyConnectionObject;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
||||
use App\Classes\Modules\Companies\Services\ApprovesCompanyConnection;
|
||||
use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
|
||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyStatus;
|
||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
||||
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||
use App\Models\Company;
|
||||
use App\Models\CompanyModule;
|
||||
use App\Models\District;
|
||||
use App\Models\OldAddress;
|
||||
use App\Models\OldCompany;
|
||||
use Carbon\Carbon;
|
||||
use GuzzleHttp\Exception\GuzzleException;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use phpDocumentor\Reflection\Types\Collection;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
class FetchWarehouseReceiveListFromVTPortalProcessor
|
||||
{
|
||||
|
||||
/** @var CreateUserProcessor */
|
||||
private $createUserProcessor;
|
||||
|
||||
/** @var CreateCompanyProcessor */
|
||||
private $createCompanyProcessor;
|
||||
|
||||
/** @var UpdatesCompanyStatus*/
|
||||
private $updatesCompanyStatus;
|
||||
|
||||
/** @var CreateCompanyModuleProcessor */
|
||||
private $createCompanyModuleProcessor;
|
||||
|
||||
/** @var CreateContactProcessor */
|
||||
private $createContactProcessor;
|
||||
|
||||
/** @var CreatesCompanyConnection */
|
||||
private $createsCompanyConnection;
|
||||
|
||||
/** @var ApprovesCompanyConnection */
|
||||
private $approvesCompanyConnection;
|
||||
|
||||
/** @var CreatesAddress */
|
||||
private $createsAddress;
|
||||
|
||||
/**
|
||||
* FetchWarehouseReceiveListFromVTPortalProcessor constructor.
|
||||
* @param CreateUserProcessor $createUserProcessor
|
||||
* @param CreateCompanyProcessor $createCompanyProcessor
|
||||
* @param UpdatesCompanyStatus $updatesCompanyStatus
|
||||
* @param CreateCompanyModuleProcessor $createCompanyModuleProcessor
|
||||
* @param CreateContactProcessor $createContactProcessor
|
||||
* @param CreatesCompanyConnection $createsCompanyConnection
|
||||
* @param ApprovesCompanyConnection $approvesCompanyConnection
|
||||
* @param CreatesAddress $createsAddress
|
||||
*/
|
||||
public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, UpdatesCompanyStatus $updatesCompanyStatus, CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreateContactProcessor $createContactProcessor, CreatesCompanyConnection $createsCompanyConnection, ApprovesCompanyConnection $approvesCompanyConnection, CreatesAddress $createsAddress)
|
||||
{
|
||||
$this->createUserProcessor = $createUserProcessor;
|
||||
$this->createCompanyProcessor = $createCompanyProcessor;
|
||||
$this->updatesCompanyStatus = $updatesCompanyStatus;
|
||||
$this->createCompanyModuleProcessor = $createCompanyModuleProcessor;
|
||||
$this->createContactProcessor = $createContactProcessor;
|
||||
$this->createsCompanyConnection = $createsCompanyConnection;
|
||||
$this->approvesCompanyConnection = $approvesCompanyConnection;
|
||||
$this->createsAddress = $createsAddress;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @throws GuzzleException
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function execute(){
|
||||
|
||||
// $addresses = OldAddress::whereIn('id', [2, 3, 4, 9, 11, 12, 17, 18, 19, 22, 23, 27, 28, 30, 31, 33, 36, 38, 40, 42, 45, 50, 51, 52, 53, 54, 58, 59, 61, 67, 68, 70, 72, 78, 80, 82, 83, 85, 86, 89, 93, 94, 97, 100, 102, 103, 104, 106, 107, 111, 115, 120, 125, 126, 128, 130, 131, 132, 133, 134, 135, 136, 137, 140, 142, 144, 145, 155, 156, 159, 170, 172, 173, 175, 177, 178, 180, 181, 182, 183, 185, 186, 187, 190, 199, 200, 202, 204, 207, 210, 213, 214, 215, 217, 218, 220, 222, 228, 231, 232, 234, 237, 242, 244, 245, 251, 252, 255, 258, 259, 261, 262, 266, 268, 273, 274, 275, 278, 281, 282, 285, 287, 292, 294, 295, 296, 297, 299, 303, 306, 307, 308, 311, 315, 316, 317, 319, 320, 321, 328, 329, 330, 332, 333, 334, 336, 339, 341]);
|
||||
$companies = OldCompany::has('orders')->get();
|
||||
|
||||
foreach($companies as $company){
|
||||
|
||||
$marking = explode("CIEF/", $company->marking);
|
||||
if(count($marking) < 2){
|
||||
continue;
|
||||
}
|
||||
|
||||
/** @var Company $newCompany */
|
||||
$newCompany = $this->createCompanyProcessor->execute($company->name, CompanyType::COMPANY_BUSINESS, ApprovalStatus::PENDING_SUBMISSION);
|
||||
|
||||
$this->updatesCompanyStatus->execute($newCompany, ApprovalStatus::APPROVED);
|
||||
|
||||
/** @var CompanyModule $companyModule */
|
||||
$companyModule = $this->createCompanyModuleProcessor->execute($newCompany, BusinessType::IMPORTER);
|
||||
|
||||
$connectionObject = new CompanyConnectionObject($companyModule, 'CIEF', $marking[1]);
|
||||
|
||||
$connection = $this->createsCompanyConnection->execute($connectionObject);
|
||||
$this->approvesCompanyConnection->execute($connection);
|
||||
|
||||
$i = 0;
|
||||
foreach($company->addresses as $address){
|
||||
if($address->street_one === '' && $address->street_two === ''){
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!$address->post_code){
|
||||
continue;
|
||||
}
|
||||
|
||||
$district = District::where('postcode', 'like', '%'. $address->post_code .'%')->first();
|
||||
|
||||
if(!$district) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$street_one = str_replace($district->name, '',str_replace($district->state->name, '', $address->street_one));
|
||||
$street_two = str_replace($district->name, '',str_replace($district->state->name, '', $address->street_two));
|
||||
|
||||
$object = new AddressObject($street_one, $street_two, $district->country_id, $district->state_id, $district->id, $address->post_code, 'Business Address');
|
||||
$this->createsAddress->execute($companyModule, $object);
|
||||
|
||||
if($address->contact){
|
||||
$i++;
|
||||
if($i === 1) {
|
||||
$contactObject = new ContactObject('', $address->contact, $company->email, '',);
|
||||
$this->createContactProcessor->execute($contactObject, $newCompany);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
dd('done');
|
||||
|
||||
return '';
|
||||
Cache::forget('VT_COOKIE_CACHE');
|
||||
$loginRequest = $this->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":1000,"SortExpression":"ModifiedOn DESC"}}'), '');
|
||||
$loginRequest = $this->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC"}}'), '');
|
||||
$response = $this->getResponseBody($loginRequest);
|
||||
$orders = [];
|
||||
$unknown = 0;
|
||||
|
||||
|
||||
foreach ($response->Rows as $parcel){
|
||||
$marking = explode('/', explode('CIEF/', $parcel[5])[1]);
|
||||
$customerMarking = $marking[0];
|
||||
if(!array_key_exists(1, $marking)){
|
||||
$unknown++;
|
||||
echo "found and order without order number";
|
||||
continue;
|
||||
}
|
||||
$orderNumber = $marking[1];
|
||||
$ctn = $parcel[9];
|
||||
if(!array_key_exists($customerMarking, $orders)){
|
||||
$orders[$customerMarking] = [
|
||||
$orderNumber => [
|
||||
'ctn' => $ctn,
|
||||
'cbm' => $parcel[10],
|
||||
]
|
||||
];
|
||||
continue;
|
||||
}
|
||||
if($customerMarking === '2752CHG'){
|
||||
if(!array_key_exists(1, $marking)){
|
||||
$unknown++;
|
||||
echo "found and order without order number";
|
||||
continue;
|
||||
}
|
||||
$orderNumber = $marking[1];
|
||||
$ctn = $parcel[9];
|
||||
if(!array_key_exists($customerMarking, $orders)){
|
||||
$orders[$customerMarking] = [
|
||||
$orderNumber => [
|
||||
'ctn' => $ctn,
|
||||
'cbm' => $parcel[10],
|
||||
]
|
||||
];
|
||||
continue;
|
||||
}
|
||||
//
|
||||
|
||||
if(!array_key_exists($orderNumber, $orders[$customerMarking])){
|
||||
$orders[$customerMarking][$orderNumber]['ctn'] = 0;
|
||||
$orders[$customerMarking][$orderNumber]['cbm'] = 0;
|
||||
if(!array_key_exists($orderNumber, $orders[$customerMarking])){
|
||||
$orders[$customerMarking][$orderNumber]['ctn'] = 0;
|
||||
$orders[$customerMarking][$orderNumber]['cbm'] = 0;
|
||||
}
|
||||
|
||||
$orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
|
||||
$orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
|
||||
}
|
||||
|
||||
$orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
|
||||
$orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
|
||||
// $orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
|
||||
// $orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
|
||||
// if(!$orders->contains($customerMarking)){
|
||||
|
||||
@@ -19,6 +19,7 @@ class FileType
|
||||
'image/png' => 'png',
|
||||
'image/jpeg' => 'jpeg',
|
||||
'application/pdf' => 'pdf',
|
||||
'application/octet-stream' => 'pdf',
|
||||
];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Orders;
|
||||
|
||||
use App\Classes\Modules\Orders\ControllersLogic\CancelOrderLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CancelOrderController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param CancelOrderLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function cancel(Request $request, CancelOrderLogic $logic): JsonResponse
|
||||
{
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ class DownloadOrderQrPdfController
|
||||
'margin_top' => '40px',
|
||||
]);
|
||||
|
||||
return $pdf->download('CIEF_ORDER_NO_'.$order->reference.'.pdf');
|
||||
return $pdf->stream('CIEF_ORDER_NO_'.$order->reference.'.pdf');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Orders;
|
||||
|
||||
use App\Classes\Modules\Orders\ControllersLogic\RestoreOrderLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RestoreOrderController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param RestoreOrderLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function restore(Request $request, RestoreOrderLogic $logic): JsonResponse
|
||||
{
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -34,8 +34,7 @@ class CompanyResource extends JsonResource
|
||||
'employee' => new UserResource($companyModule->employees()->first()),
|
||||
'company_module' => new CompanyModuleResource($companyModule),
|
||||
'last_order' => new OrderResource($companyModule ? $companyModule->orders()->orderBy('id', 'DESC')->first(): null),
|
||||
// 'employee' => new UserResource($this->employees->first()),
|
||||
// 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()),
|
||||
'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()),
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
|
||||
class OldAddress extends Model
|
||||
{
|
||||
protected $connection = 'old_izyim_db';
|
||||
|
||||
protected $table = 'address_book';
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Classes\General\Interfaces\Documentable;
|
||||
use App\Classes\General\Interfaces\Contactable;
|
||||
use App\Classes\Modules\ServiceTypes\DataTransferObjects\ServiceConfigurationsObject;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Classes\ValueObjects\Constants\SegmentConstants;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
|
||||
class OldCompany extends Model
|
||||
{
|
||||
protected $connection = 'old_izyim_db';
|
||||
|
||||
protected $table = 'companies';
|
||||
|
||||
/**
|
||||
* @return hasMany
|
||||
*/
|
||||
public function addresses(): hasMany
|
||||
{
|
||||
return $this->hasMany(OldAddress::class, 'reference_id', 'id')->where('type', '=', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return hasMany
|
||||
*/
|
||||
public function orders(): hasMany
|
||||
{
|
||||
return $this->hasMany(OldOrders::class, 'company_id', 'id');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
|
||||
class OldOrders extends Model
|
||||
{
|
||||
protected $connection = 'old_izyim_db';
|
||||
|
||||
protected $table = 'orders';
|
||||
|
||||
}
|
||||
@@ -63,6 +63,26 @@ return [
|
||||
]) : [],
|
||||
],
|
||||
|
||||
'old_izyim_db' => [
|
||||
'driver' => 'mysql',
|
||||
'url' => env('DATABASE_URL_IZYIM'),
|
||||
'host' => env('DB_HOST_IZYIM', '127.0.0.1'),
|
||||
'port' => env('DB_PORT_IZYIM', '3306'),
|
||||
'database' => env('DB_DATABASE_IZYIM', 'forge'),
|
||||
'username' => env('DB_USERNAME_IZYIM', 'forge'),
|
||||
'password' => env('DB_PASSWORD_IZYIM', ''),
|
||||
'unix_socket' => env('DB_SOCKET_IZYIM', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
'pgsql' => [
|
||||
'driver' => 'pgsql',
|
||||
'url' => env('DATABASE_URL'),
|
||||
|
||||
@@ -4,16 +4,24 @@ namespace Database\Seeders;
|
||||
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyConnectionObject;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
||||
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
||||
use App\Classes\Modules\Companies\Services\ApprovesCompanyConnection;
|
||||
use App\Classes\Modules\Companies\Services\CreatesCompany;
|
||||
use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
|
||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyStatus;
|
||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
||||
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
||||
use App\Classes\Modules\Contacts\Services\CreatesContact;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
|
||||
use App\Models\CompanyModule;
|
||||
use App\Models\District;
|
||||
use App\Models\OldCompany;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
use App\Models\Company;
|
||||
@@ -21,30 +29,55 @@ use App\Models\Company;
|
||||
class CompaniesTableSeeder extends Seeder
|
||||
{
|
||||
|
||||
/** @var CreatesCompany */
|
||||
private $createsCompany;
|
||||
/** @var CreateCompanyProcessor */
|
||||
private $createCompanyProcessor;
|
||||
|
||||
/** @var UpdatesCompanyStatus*/
|
||||
private $updatesCompanyStatus;
|
||||
|
||||
/** @var CreateCompanyModuleProcessor */
|
||||
private $createCompanyModuleProcessor;
|
||||
|
||||
/** @var CreateContactProcessor */
|
||||
private $createContactProcessor;
|
||||
|
||||
/** @var CreatesCompanyConnection */
|
||||
private $createsCompanyConnection;
|
||||
|
||||
/** @var ApprovesCompanyConnection */
|
||||
private $approvesCompanyConnection;
|
||||
|
||||
/** @var CreatesAddress */
|
||||
private $createsAddress;
|
||||
|
||||
/** @var CreatesCompany */
|
||||
private $createsCompany;
|
||||
|
||||
/** @var CreatesContact */
|
||||
private $createsContact;
|
||||
|
||||
/**
|
||||
* CompaniesTableSeeder constructor.
|
||||
* @param CreatesCompany $createsCompany
|
||||
* @param CreateCompanyProcessor $createCompanyProcessor
|
||||
* @param UpdatesCompanyStatus $updatesCompanyStatus
|
||||
* @param CreateCompanyModuleProcessor $createCompanyModuleProcessor
|
||||
* @param CreateContactProcessor $createContactProcessor
|
||||
* @param CreatesCompanyConnection $createsCompanyConnection
|
||||
* @param ApprovesCompanyConnection $approvesCompanyConnection
|
||||
* @param CreatesAddress $createsAddress
|
||||
* @param CreatesCompany $createsCompany
|
||||
* @param CreatesContact $createsContact
|
||||
*/
|
||||
public function __construct(CreatesCompany $createsCompany, CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreatesAddress $createsAddress, CreatesContact $createsContact)
|
||||
public function __construct(CreateCompanyProcessor $createCompanyProcessor, UpdatesCompanyStatus $updatesCompanyStatus, CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreateContactProcessor $createContactProcessor, CreatesCompanyConnection $createsCompanyConnection, ApprovesCompanyConnection $approvesCompanyConnection, CreatesAddress $createsAddress, CreatesCompany $createsCompany, CreatesContact $createsContact)
|
||||
{
|
||||
$this->createsCompany = $createsCompany;
|
||||
$this->createCompanyProcessor = $createCompanyProcessor;
|
||||
$this->updatesCompanyStatus = $updatesCompanyStatus;
|
||||
$this->createCompanyModuleProcessor = $createCompanyModuleProcessor;
|
||||
$this->createContactProcessor = $createContactProcessor;
|
||||
$this->createsCompanyConnection = $createsCompanyConnection;
|
||||
$this->approvesCompanyConnection = $approvesCompanyConnection;
|
||||
$this->createsAddress = $createsAddress;
|
||||
$this->createsCompany = $createsCompany;
|
||||
$this->createsContact = $createsContact;
|
||||
}
|
||||
|
||||
@@ -132,6 +165,65 @@ class CompaniesTableSeeder extends Seeder
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
$companies = OldCompany::all();
|
||||
|
||||
foreach($companies as $company){
|
||||
|
||||
$marking = explode("CIEF/", $company->marking);
|
||||
if(count($marking) < 2){
|
||||
continue;
|
||||
}
|
||||
|
||||
/** @var Company $newCompany */
|
||||
$newCompany = $this->createCompanyProcessor->execute($company->name, CompanyType::COMPANY_BUSINESS, ApprovalStatus::PENDING_SUBMISSION);
|
||||
|
||||
$this->updatesCompanyStatus->execute($newCompany, ApprovalStatus::APPROVED);
|
||||
|
||||
/** @var CompanyModule $companyModule */
|
||||
$companyModule = $this->createCompanyModuleProcessor->execute($newCompany, BusinessType::IMPORTER);
|
||||
|
||||
$connectionObject = new CompanyConnectionObject($companyModule, 'CIEF', $marking[1]);
|
||||
|
||||
$connection = $this->createsCompanyConnection->execute($connectionObject);
|
||||
$this->approvesCompanyConnection->execute($connection);
|
||||
|
||||
$i = 0;
|
||||
foreach($company->addresses as $address){
|
||||
if($address->street_one === '' && $address->street_two === ''){
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!$address->post_code){
|
||||
continue;
|
||||
}
|
||||
|
||||
$district = District::where('postcode', 'like', '%'. $address->post_code .'%')->first();
|
||||
|
||||
if(!$district) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$street_one = str_replace($district->name, '',str_replace($district->state->name, '', $address->street_one));
|
||||
$street_two = str_replace($district->name, '',str_replace($district->state->name, '', $address->street_two));
|
||||
|
||||
$object = new AddressObject($street_one, $street_two, $district->country_id, $district->state_id, $district->id, $address->post_code, 'Business Address');
|
||||
$this->createsAddress->execute($companyModule, $object);
|
||||
|
||||
if($address->contact){
|
||||
$i++;
|
||||
if($i === 1) {
|
||||
$contactObject = new ContactObject('', preg_replace("/[^0-9.]/", "", $address->contact), $company->email, '',);
|
||||
$this->createContactProcessor->execute($contactObject, $newCompany);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 222 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 184 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 104 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 186 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 186 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -53,8 +53,12 @@
|
||||
/* Tool Tip
|
||||
--------------------------------------------------
|
||||
*/
|
||||
.tooltip .arrow {
|
||||
top: 1px;
|
||||
}
|
||||
.tooltip-inner{
|
||||
font-size: 12px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* Notification popup
|
||||
|
||||
Vendored
+7
@@ -28,6 +28,13 @@ import Avatar from 'vue-avatar';
|
||||
Vue.use(vuelidate);
|
||||
Vue.use(VueTheMask);
|
||||
Vue.directive('closable', closable);
|
||||
Vue.directive('tooltip', function(el, binding){
|
||||
$(el).tooltip({
|
||||
title: binding.value,
|
||||
placement: binding.arg,
|
||||
trigger: 'hover'
|
||||
})
|
||||
})
|
||||
Vue.mixin({
|
||||
methods: {
|
||||
route: route
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -67,7 +67,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<order-form-component v-show="$store.getters.isShowing('createOrderForm')" :company="company" section="orderListSection"></order-form-component>
|
||||
<order-form-component v-show="$store.getters.isShowing('createOrderForm')" :company="company" :section="section"></order-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="col p-t-10 p-b-25 p-l-25 p-r-25 bg-master-lightest b-r b-grey">
|
||||
<div class="row m-b-15">
|
||||
<div class="col text-center">
|
||||
<img src="/images/qr.svg" width="100" height="150">
|
||||
<img src="/images/qr-box.svg" width="150" height="150">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
@@ -38,7 +38,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="no-margin">Place an order with us, and send the QR Code label to your supplier to attach to your order's packages</p>
|
||||
<p class="no-margin">Place an order with us, and send the QR Code label document to your supplier to attach to your order's packages</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<span v-if="object.type === 'minLength'">{{object.min}} characters</span>
|
||||
<span v-if="object.type === 'minValue'">{{object.min}}</span>
|
||||
<span v-if="object.type === 'sameAs'">{{object.eq}} field</span>
|
||||
<span v-if="object.type === 'numeric'">this field only accepts numbers</span>
|
||||
</small>
|
||||
</div>
|
||||
</template>
|
||||
@@ -23,6 +24,7 @@
|
||||
minLength: 'this field must have at least',
|
||||
sameAs: 'this field must match the',
|
||||
minValue: 'this field must at least be',
|
||||
numeric: 'this field only accepts numbers',
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div class="row m-l-0 m-r-0 m-b-30">
|
||||
<div class="row m-l-0 m-r-0 m-b-30 parentContainer">
|
||||
<div class="col bg-white">
|
||||
<div class="row align-items-center">
|
||||
<div class="col no-padding">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a :href="route('order.qr.download', item.id)">
|
||||
<a :href="route('order.qr.download', item.id)" target="_blank">
|
||||
<div class="peelable-corner overflow-hidden relative">
|
||||
<img :src="'https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl={id:'+item.id+'}'" class="w-100">
|
||||
</div>
|
||||
@@ -23,13 +23,13 @@
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<small class="fs-10 all-caps muted">Warehouse</small>
|
||||
<h6 class="no-margin small">{{item.warehouse === 3 ? 'Guang Zhou' : 'Yiwu'}}</h6>
|
||||
<h6 class="no-margin small">{{item.warehouse.id === 3 ? 'Guang Zhou' : 'Yiwu'}}</h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<small class="fs-10 all-caps muted">Delivery Address</small>
|
||||
<h6 class="no-margin small">{{item.address.reference}}</h6>
|
||||
<h6 class="no-margin small">{{item.address.reference}} <i class="fa fa-info-circle m-l-5" v-tooltip:right="item.address.street_one+' '+(item.address.street_two ? item.address.street_two : '')+', '+ item.address.district.name+', '+item.address.post_code+' '+item.address.state.name+', '+item.address.country.name" ></i></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -55,9 +55,11 @@
|
||||
<div class="row p-t-5 p-b-15 b-t b-grey">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<div class="col-auto" v-if="$store.getters.isAdmin">
|
||||
<small class="fs-10 all-caps muted">Marking</small>
|
||||
<h6 class="no-margin small">{{item.company_module.marking}}</h6>
|
||||
<a :href="route('customer.profile', item.company_module.marking)">
|
||||
<h6 class="no-margin small">{{item.company_module.marking}}</h6>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<small class="fs-10 all-caps muted">Date</small>
|
||||
@@ -94,23 +96,42 @@
|
||||
<div class="absolute w-50" style="bottom: 32px; right: 15px;" key="1" v-if="expanded">
|
||||
<div class="row">
|
||||
<div class="col bg-master-lightest b-a b-grey">
|
||||
<div class="row p-t-15 p-b-15 b-b b-grey pointer">
|
||||
<div class="row p-t-15 p-b-15 b-b b-grey pointer requestModal" v-if="item.status !== 5" data-type="cancelOrder">
|
||||
<div class="col">
|
||||
<a :href="route('order.qr.download', item.id)" target="_blank">
|
||||
<h6 class="light no-margin fs-13"><i class="fa fa-cloud-download m-r-10"></i>Download QR Cod PDF</h6>
|
||||
</a>
|
||||
<h6 class="light no-margin fs-13 text-danger"><i class="fa fa-times m-r-10"></i>Cancel Order</h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row p-t-15 p-b-15 b-b b-grey pointer requestModal" v-if="item.status === 5" data-type="restoreOrder">
|
||||
<div class="col">
|
||||
<h6 class="light no-margin fs-13 text-success"><i class="fa fa-history m-r-10"></i>Restore Order</h6>
|
||||
</div>
|
||||
</div>
|
||||
<a :href="route('order.qr.download', item.id)" target="_blank">
|
||||
<div class="row p-t-15 p-b-15 b-b b-grey pointer">
|
||||
<div class="col">
|
||||
<h6 class="light no-margin fs-13"><i class="fa fa-cloud-download m-r-10"></i>Download QR Cod PDF</h6>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition-component>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="cancelOrder">
|
||||
<cancel-order-form-component :data="item" section="oderList" class="text-center"></cancel-order-form-component>
|
||||
</modal-component>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="restoreOrder">
|
||||
<restore-order-form-component :data="item" section="oderList" class="text-center"></restore-order-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
created(){
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
expanded: false
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="no-margin bold">{{item.last_order.address.reference}}</p>
|
||||
<p class="no-margin bold">{{item.last_order.address.reference}} <i class="fa fa-info-circle m-l-5" v-tooltip:right="item.last_order.address.street_one+' '+(item.last_order.address.street_two ? item.last_order.address.street_two : '')+', '+ item.last_order.address.district.name+', '+item.last_order.address.post_code+' '+item.last_order.address.state.name+', '+item.last_order.address.country.name" ></i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -42,7 +42,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md mt-sm-3 mt-3 my-sm-0 ">
|
||||
<div class="col-sm-12 col-md">
|
||||
<div class="btn btn-sm btn-primary bg-primary-darker no-padding btn-rounded fs-12 no-border">
|
||||
<div class="row align-items-center no-margin" @click="createOrder()">
|
||||
<div class="col-auto" v-show="$store.getters.isLoading('quickOrderSection')" style="width: 172px; height: 20px;">
|
||||
@@ -77,7 +77,7 @@
|
||||
},
|
||||
successHandler(){
|
||||
this.$store.dispatch('reloadList', {'name': 'orderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'PendingOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'pendingOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'activeOrderListSection'});
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<loading-component style="height: 300px; top: 0;" key="1" color="success" v-show="isLoading" ></loading-component>
|
||||
<div class="row justify-content-center" v-show="!isLoading">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<h3 class="all-caps">Are you Sure?</h3>
|
||||
<div class="fs-11">Are you sure you want to cancel this order?</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div class="btn btn-sm btn-success btn-block b-rad-none" data-dismiss="modal">Cancel</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div class="btn btn-sm btn-danger btn-block b-rad-none" @click="submit(route('api.order.cancel', item.id), 'put', section, true, true)">Confirm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
import ModalFormHandler from '../../../general/mixins/modalFormHandler';
|
||||
export default {
|
||||
mixins: [componentHandler, ModalFormHandler],
|
||||
methods: {
|
||||
successHandler(){
|
||||
this.closeModal();
|
||||
this.$store.dispatch('reloadList', {'name': 'pendingOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'activeOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'cancelledOrderListSection'});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,41 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<loading-component style="height: 300px; top: 0;" key="1" color="success" v-show="isLoading" ></loading-component>
|
||||
<div class="row justify-content-center" v-show="!isLoading">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<h3 class="all-caps">Are you Sure?</h3>
|
||||
<div class="fs-11">Are you sure you want to restore this order?</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div class="btn btn-sm btn-default btn-block b-rad-none" data-dismiss="modal">Cancel</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div class="btn btn-sm btn-success btn-block b-rad-none" @click="submit(route('api.order.restore', item.id), 'put', section, true, true)">Restore</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
import modalFormHandler from '../../../general/mixins/modalFormHandler';
|
||||
export default {
|
||||
mixins: [componentHandler, modalFormHandler],
|
||||
methods: {
|
||||
successHandler(){
|
||||
this.closeModal();
|
||||
this.$store.dispatch('reloadList', {'name': 'pendingOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'activeOrderListSection'});
|
||||
this.$store.dispatch('reloadList', {'name': 'cancelledOrderListSection'});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
File diff suppressed because one or more lines are too long
@@ -6,7 +6,7 @@
|
||||
<div class="row justify-content-end">
|
||||
<div class="col">
|
||||
<div class="row fs-12 text-center">
|
||||
<div class="col p-t-20 p-b-20 bg-master-lighter tabButton active" tab-name="active">
|
||||
<div class="col p-t-20 p-b-20 bg-master-lighter tabButton" :class="{'active': item ? item.status === 2 : true }" tab-name="active">
|
||||
<div class="row justify-content-center m-b-5">
|
||||
<div class="col-auto">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
@@ -25,33 +25,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-md-2 ml-auto m-r-5 mr-md-1">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col">
|
||||
<div class="row fs-12 text-center">
|
||||
<div class="col p-t-20 p-b-20 bg-master-lighter tabButton" tab-name="pending">
|
||||
<div class="row justify-content-center m-b-5">
|
||||
<div class="col-auto">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="35" height="35"
|
||||
viewBox="0 0 172 172"
|
||||
style=" fill:#000000;"><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,172v-172h172v172z" fill="none"></path><g fill="#000000"><path d="M39.81699,21.5l-18.31699,22.89414v106.10586h129v-2.15v-103.95586l-18.31699,-22.89414zM41.88301,25.8h88.23398l13.75664,17.2h-47.12363v2.15c0,5.96338 -4.78662,10.75 -10.75,10.75c-5.96338,0 -10.75,-4.78662 -10.75,-10.75v-2.15h-47.12363zM25.8,47.3h45.58672c1.08865,7.23076 7.08802,12.9 14.61328,12.9c7.52526,0 13.52463,-5.66924 14.61328,-12.9h45.58672v98.9h-120.4zM86,68.8c-15.41089,0 -27.95,12.53911 -27.95,27.95c0,15.41089 12.53911,27.95 27.95,27.95c15.41089,0 27.95,-12.53911 27.95,-27.95c0,-15.41089 -12.53911,-27.95 -27.95,-27.95zM86,73.1c13.087,0 23.65,10.563 23.65,23.65c0,13.087 -10.563,23.65 -23.65,23.65c-13.087,0 -23.65,-10.563 -23.65,-23.65c0,-13.087 10.563,-23.65 23.65,-23.65zM85.96641,77.37061c-1.18576,0.01854 -2.13264,0.9936 -2.11641,2.17939v16.125l-7.73916,5.80332c-0.95086,0.71198 -1.1445,2.05998 -0.43252,3.01084c0.71198,0.95086 2.05998,1.1445 3.01084,0.43252l9.46084,-7.09668v-18.275c0.00796,-0.58115 -0.21968,-1.14076 -0.63105,-1.55134c-0.41137,-0.41057 -0.97142,-0.63714 -1.55255,-0.62806zM38.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM47.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM55.9,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM64.5,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM73.1,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM81.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM90.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM98.9,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM107.5,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM116.1,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM124.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM133.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15z"></path></g></g></svg>
|
||||
<div class="absolute animate__animated animate__pulse animate__infinite " style="top: -3px;right: 13px;" v-if="$store.getters.isCompletedQueue('pendingOrderListSection')">
|
||||
<i class="fa fa-circle fs-16 text-danger" v-show="$store.getters.getListData('pendingOrderListSection').length"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="fs-12 m-t-5 all-caps">Pending Verification</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 d-none d-md-inline m-r-5">
|
||||
<div class="col-2 d-none ml-auto d-md-inline m-r-5">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col">
|
||||
<div class="row fs-12 text-center">
|
||||
@@ -74,6 +48,32 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-md-3 mr-0 mr-md-1" >
|
||||
<div class="row justify-content-end">
|
||||
<div class="col">
|
||||
<div class="row fs-12 text-center">
|
||||
<div class="col p-t-20 p-b-20 bg-master-lighter tabButton" :class="{'active': item ? item.status !== 2 : false}" tab-name="pending">
|
||||
<div class="row justify-content-center m-b-5">
|
||||
<div class="col-auto">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="35" height="35"
|
||||
viewBox="0 0 172 172"
|
||||
style=" fill:#000000;"><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,172v-172h172v172z" fill="none"></path><g fill="#000000"><path d="M39.81699,21.5l-18.31699,22.89414v106.10586h129v-2.15v-103.95586l-18.31699,-22.89414zM41.88301,25.8h88.23398l13.75664,17.2h-47.12363v2.15c0,5.96338 -4.78662,10.75 -10.75,10.75c-5.96338,0 -10.75,-4.78662 -10.75,-10.75v-2.15h-47.12363zM25.8,47.3h45.58672c1.08865,7.23076 7.08802,12.9 14.61328,12.9c7.52526,0 13.52463,-5.66924 14.61328,-12.9h45.58672v98.9h-120.4zM86,68.8c-15.41089,0 -27.95,12.53911 -27.95,27.95c0,15.41089 12.53911,27.95 27.95,27.95c15.41089,0 27.95,-12.53911 27.95,-27.95c0,-15.41089 -12.53911,-27.95 -27.95,-27.95zM86,73.1c13.087,0 23.65,10.563 23.65,23.65c0,13.087 -10.563,23.65 -23.65,23.65c-13.087,0 -23.65,-10.563 -23.65,-23.65c0,-13.087 10.563,-23.65 23.65,-23.65zM85.96641,77.37061c-1.18576,0.01854 -2.13264,0.9936 -2.11641,2.17939v16.125l-7.73916,5.80332c-0.95086,0.71198 -1.1445,2.05998 -0.43252,3.01084c0.71198,0.95086 2.05998,1.1445 3.01084,0.43252l9.46084,-7.09668v-18.275c0.00796,-0.58115 -0.21968,-1.14076 -0.63105,-1.55134c-0.41137,-0.41057 -0.97142,-0.63714 -1.55255,-0.62806zM38.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM47.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM55.9,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM64.5,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM73.1,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM81.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM90.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM98.9,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM107.5,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM116.1,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM124.7,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15zM133.3,135.45c-1.18741,0 -2.15,0.96259 -2.15,2.15c0,1.18741 0.96259,2.15 2.15,2.15c1.18741,0 2.15,-0.96259 2.15,-2.15c0,-1.18741 -0.96259,-2.15 -2.15,-2.15z"></path></g></g></svg>
|
||||
<div class="absolute animate__animated animate__pulse animate__infinite " style="top: -3px;right: 13px;" v-if="$store.getters.isCompletedQueue('pendingOrderListSection')">
|
||||
<i class="fa fa-circle fs-16 text-danger" v-show="$store.getters.getListData('pendingOrderListSection').length"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="fs-12 m-t-5 all-caps">Pending Verification</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 d-none d-md-inline">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col">
|
||||
@@ -100,8 +100,55 @@
|
||||
</div>
|
||||
<div class="row no-margin">
|
||||
<div class="col bg-master-lightest padding-30">
|
||||
<div class="row tabsContainer tabContent hide" tab-name="pending">
|
||||
<div class="row tabsContainer tabContent" :class="{'hide': item ? item.status === 2 : true, 'active': item ? item.status !== 2 : false}" tab-name="pending">
|
||||
<div class="col">
|
||||
<div class="row parentContainer" v-if="item ? item.status !== 2 && item.last_order : false">
|
||||
<div class="col">
|
||||
<div class="row no-margin align-items-end">
|
||||
<div class="col-4 d-none d-md-inline">
|
||||
<img src="/images/on-hold.png" class="w-100" alt="">
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="row m-l-0">
|
||||
<div class="col m-b-20" :class="[{'bg-danger-lighter': item.status !== 1}, {'bg-master-lighter': item.status === 1}]">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-0 p-t-15 p-b-15">
|
||||
<div class="icon-thumbnail fs-20 icon-35 btn-rounded" :class="[{'bg-danger-light': item.status !== 1}, {'bg-master-light': item.status === 1}]">
|
||||
<i class="fa fs-20" :class="[{'fa-times': item.status !== 1}, {'text-white': item.status !== 1}, {'fa-spinner': item.status === 1}]"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col p-l-0">
|
||||
<div class="font-heading bold fs-10" :class="[{'text-danger': item.status !== 1}]">Identification Verification</div>
|
||||
<div class="font-heading fs-10" :class="[{'text-danger': item.status !== 1}, {'muted': item.status === 1}]" v-text="item.status !== 1 ? 'Verification request rejected':'Approval in progress...'"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-b-15">
|
||||
<div class="font-heading text-danger fs-10" v-if="item.status !== 1">Our warehouse will accept your parcel but your goods will be on hold for delivery until you have successfully verified your identity!</div>
|
||||
<div class="font-heading fs-11" v-if="item.status === 1">Our warehouse will accept your parcel but your goods will be on hold for delivery until your identification is approved!</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="item.status === 1">
|
||||
<div class="col no-padding">
|
||||
<div class="progress m-b-0">
|
||||
<div class="progress-bar progress-bar-primary" style="width:75%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="item.status !== 1">
|
||||
<div class="col no-padding">
|
||||
<button class="btn btn-sm btn-danger btn-block b-rad-none requestModal" data-type="identificationVerificationModal">Re-submit Identification</button>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component type="identificationVerificationModal" v-if="item.status !== 1">
|
||||
<identification-verification-form-component section="orderListSection" :data="item"></identification-verification-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
@@ -117,7 +164,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row tabsContainer tabContent active" tab-name="active">
|
||||
<div class="row tabsContainer tabContent" :class="{'hide': item ? item.status !== 2 : false, 'active': item ? item.status === 2 : true}" tab-name="active">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
@include('vendor/head')
|
||||
</head>
|
||||
<body class="horizontal-menu horizontal-app-menu bg-white overflow-hidden">
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T3XCNMB"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<div id="app" style="min-height: 100%;">
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
<div class="col">
|
||||
<div class="carousel-item active">
|
||||
<div class="row">
|
||||
<div class="col bg-white">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img class="w-100" src="https://image.freepik.com/free-vector/transportation-parcel-carton-box-container-qr-code-closed-parcel-box-package-paper-box-package-service_257312-49.jpg" alt="">
|
||||
<div class="col">
|
||||
<img class="w-100" src="{{asset('images/about_us.png')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -48,10 +48,10 @@
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="row">
|
||||
<div class="col bg-white">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img class="w-100" src="https://image.freepik.com/free-vector/transportation-parcel-carton-box-container-qr-code-closed-parcel-box-package-paper-box-package-service_257312-49.jpg" alt="">
|
||||
<div class="col">
|
||||
<img class="w-100" src="{{asset('images/What_we_provide.png')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -65,10 +65,10 @@
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="row">
|
||||
<div class="col bg-white">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img class="w-100" src="https://image.freepik.com/free-vector/transportation-parcel-carton-box-container-qr-code-closed-parcel-box-package-paper-box-package-service_257312-49.jpg" alt="">
|
||||
<div class="col">
|
||||
<img class="w-100" src="{{asset('images/Why_CIEF.png')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -82,10 +82,10 @@
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="row">
|
||||
<div class="col bg-white">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img class="w-100" src="https://image.freepik.com/free-vector/transportation-parcel-carton-box-container-qr-code-closed-parcel-box-package-paper-box-package-service_257312-49.jpg" alt="">
|
||||
<div class="col">
|
||||
<img class="w-100" src="{{asset('images/Vision.png')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -99,10 +99,10 @@
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="row">
|
||||
<div class="col bg-white">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img class="w-100" src="https://image.freepik.com/free-vector/transportation-parcel-carton-box-container-qr-code-closed-parcel-box-package-paper-box-package-service_257312-49.jpg" alt="">
|
||||
<div class="col">
|
||||
<img class="w-100" src="{{asset('images/Mission.png')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
@extends('layouts.base_pdf')
|
||||
@section('inner_content')
|
||||
<table style="width: 100%; border-collapse:separate; border-spacing:0 20px;">
|
||||
<style>
|
||||
.scissors {
|
||||
font-size: 30px;
|
||||
position: absolute;
|
||||
top: 47.1%;
|
||||
}
|
||||
</style>
|
||||
<table style="width: 100%; border-spacing: 0;">
|
||||
<tbody>
|
||||
@for ($i = 0; $i < 2; $i++)
|
||||
<tr style="padding-bottom: 2em;">
|
||||
<td align="center" width="25%" style="border: 2px solid #000000; border-right: none">
|
||||
<tr style="border-spacing: 2em;">
|
||||
<td align="center" width="25%" style="border: 2px solid #000000; border-right: none;">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr align="center">
|
||||
@@ -20,18 +27,17 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="75%" style="border: 2px solid #000000; ">
|
||||
<table style="border-spacing:20px 20px;">
|
||||
<td width="75%" style="border: 2px solid #000000; border-left: none;">
|
||||
<table style="border-spacing:10px 10px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border-bottom: solid 2px #000000;">
|
||||
<h1 style="margin-top: 0px !important; margin-bottom: 10px !important; font-size: 70px;">@if(strtolower($delivery_address->state->name) === 'sabah') SB/ @elseif(strtolower($delivery_address->state->name) === 'sarawak') SRW/ @endif CIEF/{{$marking}}/{{$order->reference}}</h1>
|
||||
<h1 style="font-size: 50px; line-height: 70px">{{(strtolower($delivery_address->state->name) === 'sabah' || strtolower($delivery_address->state->name) === 'labuan') ? 'SB/' : (strtolower($delivery_address->state->name) === 'sarawak' ? 'SRW/':'')}}CIEF/{{$marking}}/{{$order->reference}}</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p style="font-size: 30px; margin-bottom: 0 !important; margin-top: 10px !important;">仓库地址:</p>
|
||||
|
||||
<p style="margin-top: 5px !important; margin-bottom: 5px !important; word-wrap: break-word; font-size: 30px;">{{$warehouse_address->street_one.' '.$warehouse_address->street_two.' '.$warehouse_address->district->name.' '.$warehouse_address->state->name.' 邮编:'.$warehouse_address->postcode}}</p>
|
||||
<p style="margin-top: 5px !important; margin-bottom: 0px !important; font-size: 30px;">联系:@foreach($warehouse_contacts as $contact){{ $loop->first ? '' : ' / ' }}{{ $contact->phone.' '.$contact->reference }}@endforeach</p>
|
||||
</td>
|
||||
@@ -40,6 +46,33 @@
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@if($i === 0)
|
||||
<tr>
|
||||
<td style="padding-top: 2em; padding-bottom: 2em;">
|
||||
<table style="width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="position: relative; border-bottom: 2px dashed;">
|
||||
<div class="scissors" style="left: 100px;">✂</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td style="padding-top: 2em; padding-bottom: 2em;">
|
||||
<table style="width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="position: relative; border-bottom: 2px dashed;">
|
||||
<div class="scissors" style="left: 500px;">✂</div>
|
||||
<div class="scissors" style="left: 900px;">✂</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
+8
@@ -1,3 +1,11 @@
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-T3XCNMB');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>IZYIM Shipping</title>
|
||||
|
||||
@@ -7,4 +7,6 @@ Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], f
|
||||
Route::get('/list', 'ListOrdersController@list')->name('list');
|
||||
Route::post('/create', 'CreateOrderController@create')->name('create');
|
||||
Route::put('/confirm/{id}', 'ConfirmOrderController@confirm')->name('confirm');
|
||||
Route::put('/cancel/{id}', 'CancelOrderController@cancel')->name('cancel');
|
||||
Route::put('/restore/{id}', 'RestoreOrderController@restore')->name('restore');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user