fix dashboard and order ui & fix address select component and added reference to addresses
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\General\Interfaces;
|
||||
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
|
||||
interface Addressable
|
||||
{
|
||||
|
||||
public function addresses(): morphMany;
|
||||
|
||||
}
|
||||
@@ -66,13 +66,13 @@ class CreateAddressLogic extends AbstractControllerLogic
|
||||
|
||||
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
||||
|
||||
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'));
|
||||
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'), $request->input('reference'));
|
||||
|
||||
$this->canCreateAddress->passes($object);
|
||||
|
||||
$query = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
|
||||
$address = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
|
||||
|
||||
return $this->resourceResponse(new AddressResource($query));
|
||||
return $this->resourceResponse(new AddressResource($address));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -50,23 +50,20 @@ class DeleteAddressLogic extends AbstractControllerLogic
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
try {
|
||||
|
||||
$this->canDeleteAddress->passes();
|
||||
$this->canDeleteAddress->passes();
|
||||
|
||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
|
||||
$this->deletesAddress->execute($query);
|
||||
$this->deletesAddress->execute($query);
|
||||
|
||||
return $this->response([]);
|
||||
|
||||
} catch (\Exception $exception){
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
return $this->response([]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -45,21 +45,16 @@ class FetchAddressLogic extends AbstractControllerLogic
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
try {
|
||||
$this->canFetchAddress->passes();
|
||||
|
||||
$this->canFetchAddress->passes();
|
||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
|
||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
|
||||
return $this->resourceResponse(new AddressResource($query));
|
||||
|
||||
} catch (\Exception $exception){
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
return $this->resourceResponse(new AddressResource($query));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -45,21 +45,18 @@ class ListAddressesLogic extends AbstractControllerLogic
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
try {
|
||||
|
||||
$this->canListAddresses->passes();
|
||||
$this->canListAddresses->passes();
|
||||
|
||||
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
|
||||
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
|
||||
|
||||
return $this->collectionResponse(AddressResource::collection($query));
|
||||
|
||||
} catch (\Exception $exception){
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
return $this->collectionResponse(AddressResource::collection($query));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,17 +2,13 @@
|
||||
|
||||
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
||||
|
||||
use App\Classes\General\Interfaces\Addressable;
|
||||
use App\Http\Resources\AddressResource;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||
use App\Classes\Modules\Addresses\Standards\Rules\CanUpdateAddress;
|
||||
use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault;
|
||||
use App\Classes\Modules\Addresses\Services\SetsAddressToDefault;
|
||||
|
||||
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
||||
|
||||
use App\Models\Address;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -31,30 +27,27 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
|
||||
];
|
||||
}
|
||||
|
||||
/** @var ResetsAddressesDefault */
|
||||
private $resetsAddressesDefault;
|
||||
|
||||
/** @var FetchesAddress */
|
||||
private $fetchesAddress;
|
||||
|
||||
/** @var ResetsAddressesDefault */
|
||||
private $resetsAddressesDefault;
|
||||
|
||||
/** @var SetsAddressToDefault*/
|
||||
private $setsAddressToDefault;
|
||||
|
||||
/** @var FetchesCompanyModule*/
|
||||
private $fetchesCompanyModule;
|
||||
|
||||
/**
|
||||
* SetAddressToDefaultLogic constructor.
|
||||
* @param ResetsAddressesDefault $resetsAddressesDefault
|
||||
* @param FetchesAddress $fetchesAddress
|
||||
* @param ResetsAddressesDefault $resetsAddressesDefault
|
||||
* @param SetsAddressToDefault $setsAddressToDefault
|
||||
*/
|
||||
public function __construct(ResetsAddressesDefault $resetsAddressesDefault, FetchesAddress $fetchesAddress, SetsAddressToDefault $setsAddressToDefault , FetchesCompanyModule $fetchesCompanyModule)
|
||||
public function __construct(FetchesAddress $fetchesAddress, ResetsAddressesDefault $resetsAddressesDefault, SetsAddressToDefault $setsAddressToDefault)
|
||||
{
|
||||
$this->resetsAddressesDefault = $resetsAddressesDefault;
|
||||
$this->fetchesAddress = $fetchesAddress;
|
||||
$this->resetsAddressesDefault = $resetsAddressesDefault;
|
||||
$this->setsAddressToDefault = $setsAddressToDefault;
|
||||
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,10 +62,9 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
|
||||
|
||||
$address = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
|
||||
$companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
|
||||
|
||||
$this->resetsAddressesDefault->execute($companyModule);
|
||||
$this->resetsAddressesDefault->execute($address->owner, $address->type);
|
||||
|
||||
return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address)));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ use App\Classes\Modules\Addresses\Services\FetchesDistrict;
|
||||
use App\Classes\Modules\Addresses\Standards\Rules\CanUpdateAddress;
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Http\Resources\AddressResource;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -58,28 +57,23 @@ class UpdateAddressLogic extends AbstractControllerLogic
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws ErrorException
|
||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
try {
|
||||
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
||||
|
||||
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
||||
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'));
|
||||
//$object = new AddressObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing'));
|
||||
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'), $request->input('reference'));
|
||||
|
||||
$this->canUpdateAddress->passes($object);
|
||||
$this->canUpdateAddress->passes($object);
|
||||
|
||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
$address = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||
|
||||
$query = $this->updatesAddress->execute($query, $object);
|
||||
$address = $this->updatesAddress->execute($address, $object);
|
||||
|
||||
return $this->resourceResponse(new AddressResource($query));
|
||||
|
||||
|
||||
} catch (\Exception $exception){
|
||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||
}
|
||||
return $this->resourceResponse(new AddressResource($address));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ class AddressObject implements DataTransferObject
|
||||
/** @var int */
|
||||
private $postCode;
|
||||
|
||||
/** @var string|null */
|
||||
private $reference;
|
||||
|
||||
/**
|
||||
* AddressObject constructor.
|
||||
* @param string $streetOne
|
||||
@@ -33,8 +36,9 @@ class AddressObject implements DataTransferObject
|
||||
* @param int $stateId
|
||||
* @param int $districtId
|
||||
* @param int $postCode
|
||||
* @param null|string $reference
|
||||
*/
|
||||
public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode)
|
||||
public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode, ?string $reference = null)
|
||||
{
|
||||
$this->streetOne = $streetOne;
|
||||
$this->streetTwo = $streetTwo;
|
||||
@@ -42,6 +46,7 @@ class AddressObject implements DataTransferObject
|
||||
$this->stateId = $stateId;
|
||||
$this->districtId = $districtId;
|
||||
$this->postCode = $postCode;
|
||||
$this->reference = $reference;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,5 +97,13 @@ class AddressObject implements DataTransferObject
|
||||
return $this->postCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null|string
|
||||
*/
|
||||
public function getReference(): ?string
|
||||
{
|
||||
return $this->reference;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -22,7 +22,8 @@ class CreateOrderAddressProcessor
|
||||
/**
|
||||
* CreateAddressProcessor constructor.
|
||||
* @param CanCreateAddress $canCreateAddress
|
||||
* @param CreatesAddress $CreatesAddress
|
||||
* @param CreatesOrderAddress $createsOrderAddress
|
||||
* @param FetchesAddress $fetchesAddress
|
||||
*/
|
||||
public function __construct(CanCreateAddress $canCreateAddress, CreatesOrderAddress $createsOrderAddress, FetchesAddress $fetchesAddress)
|
||||
{
|
||||
@@ -38,9 +39,9 @@ class CreateOrderAddressProcessor
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
public function execute(int $address_id, Order $order): Model {
|
||||
public function execute(int $address, Order $order): Model {
|
||||
|
||||
$address = $this->fetchesAddress->getRepository()->whereIn('id',[$address_id])->first();
|
||||
$address = $this->fetchesAddress->execute(['id' => $address_id]);
|
||||
|
||||
|
||||
// $this->canCreateAddress->passes($object);
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Classes\Modules\Addresses\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
|
||||
use App\Classes\General\Interfaces\Addressable;
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Models\Address;
|
||||
use App\Models\CompanyModule;
|
||||
@@ -12,13 +12,16 @@ class CreatesAddress extends AbstractUpdateRelationshipRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Company $company
|
||||
* @param Addressable $addressable
|
||||
* @param AddressObject $object
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(CompanyModule $companyModule, AddressObject $object) {
|
||||
public function execute(Addressable $addressable, AddressObject $object) {
|
||||
|
||||
$model = new Address();
|
||||
|
||||
$model->reference = $object->getReference();
|
||||
$model->street_one = $object->getStreetOne();
|
||||
$model->street_two = $object->getStreetTwo();
|
||||
$model->country_id = $object->getCountryId();
|
||||
@@ -26,7 +29,7 @@ class CreatesAddress extends AbstractUpdateRelationshipRecord
|
||||
$model->district_id = $object->getDistrictId();
|
||||
$model->postcode = $object->getPostCode();
|
||||
|
||||
return $this->handler($companyModule->addresses(), $model);
|
||||
return $this->handler($addressable->addresses(), $model);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Classes\Modules\Addresses\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\General\Interfaces\Addressable;
|
||||
use App\Models\Address;
|
||||
use App\Models\CompanyModule;
|
||||
|
||||
@@ -10,11 +11,12 @@ class ResetsAddressesDefault extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Address $address
|
||||
* @param Addressable $addressable
|
||||
* @param int $type
|
||||
* @return void
|
||||
*/
|
||||
public function execute(CompanyModule $companyModule)
|
||||
public function execute(Addressable $addressable, int $type)
|
||||
{
|
||||
$companyModule->addresses()->update(['default' => false]);
|
||||
$addressable->addresses()->where('type', $type)->update(['default' => false]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,15 +17,13 @@ class UpdatesAddress extends AbstractUpdateRecord
|
||||
*/
|
||||
public function execute(Address $model, AddressObject $object) {
|
||||
|
||||
//$model->company_id = $object->getCompanyId();
|
||||
$model->reference = $object->getReference();
|
||||
$model->street_one = $object->getStreetOne();
|
||||
$model->street_two = $object->getStreetTwo();
|
||||
$model->district_id = $object->getDistrictId();
|
||||
$model->state_id = $object->getStateId();
|
||||
$model->postcode = $object->getPostCode();
|
||||
$model->country_id = $object->getCountryId();
|
||||
//$model->default = $object->getDefault();
|
||||
//$model->billing = $object->getBilling();
|
||||
|
||||
return $this->handler($model);
|
||||
|
||||
|
||||
@@ -2,11 +2,15 @@
|
||||
|
||||
namespace App\Classes\Modules\Orders\Processors;
|
||||
|
||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
||||
use App\Classes\Modules\Orders\Services\CreatesOrder;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanCreateOrder;
|
||||
use App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor;
|
||||
use App\Classes\Modules\OrderSteps\Processors\CreateOrderStepsProcessor;
|
||||
use App\Classes\Modules\Unity\Services\CreatesContract;
|
||||
use App\Classes\ValueObjects\Constants\OrderStatus;
|
||||
use App\Classes\ValueObjects\Constants\OrderSteps;
|
||||
use App\Classes\ValueObjects\Constants\OrderType;
|
||||
@@ -20,42 +24,69 @@ use Illuminate\Http\Request;
|
||||
|
||||
class CreateOrderProcessor
|
||||
{
|
||||
/** @var CanCreateOrder */
|
||||
private $canCreateOrder;
|
||||
|
||||
/** @var CreatesOrder */
|
||||
private $createsOrder;
|
||||
|
||||
/** @var ConfirmOrderProcessor */
|
||||
private $confirmOrderProcessor;
|
||||
|
||||
/** @var CreateOrderStepsProcessor */
|
||||
private $createOrderStepsProcessor;
|
||||
|
||||
/** @var CreatesContract */
|
||||
private $unityCreateContract;
|
||||
|
||||
/** @var AssignContractEntityProcessor */
|
||||
private $unityAssignContractEntity;
|
||||
|
||||
/** @var CreateContractEntityProcessor */
|
||||
private $unityCreateContractEntity;
|
||||
|
||||
/** @var ActivateContractProcessor */
|
||||
private $unityActivateContract;
|
||||
|
||||
/** @var CreateOrderRoleProcessor */
|
||||
private $createOrderRoleProcessor;
|
||||
|
||||
private $createOrderAddressProcessor;
|
||||
/** @var CreatesAddress */
|
||||
private $createAddress;
|
||||
|
||||
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor, CreateOrderRoleProcessor $createOrderRoleProcessor, CreateOrderAddressProcessor $createOrderAddressProcessor, CreateContractProcessor $unityCreateContract, CreateContractEntityProcessor $unityCreateContractEntity, AssignContractEntityProcessor $unityAssignContractEntity, ActivateContractProcessor $unityActivateContract)
|
||||
/** @var FetchesAddress */
|
||||
private $fetchesAddress;
|
||||
|
||||
/**
|
||||
* CreateOrderProcessor constructor.
|
||||
* @param CanCreateOrder $canCreateOrder
|
||||
* @param CreatesOrder $createsOrder
|
||||
* @param \App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor $confirmOrderProcessor
|
||||
* @param CreateOrderStepsProcessor $createOrderStepsProcessor
|
||||
* @param CreatesContract $unityCreateContract
|
||||
* @param AssignContractEntityProcessor $unityAssignContractEntity
|
||||
* @param CreateContractEntityProcessor $unityCreateContractEntity
|
||||
* @param ActivateContractProcessor $unityActivateContract
|
||||
* @param \App\Classes\Modules\Orders\Processors\CreateOrderRoleProcessor $createOrderRoleProcessor
|
||||
* @param CreatesAddress $createAddress
|
||||
* @param FetchesAddress $fetchesAddress
|
||||
*/
|
||||
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, \App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor $confirmOrderProcessor, CreateOrderStepsProcessor $createOrderStepsProcessor, CreatesContract $unityCreateContract, AssignContractEntityProcessor $unityAssignContractEntity, CreateContractEntityProcessor $unityCreateContractEntity, ActivateContractProcessor $unityActivateContract, \App\Classes\Modules\Orders\Processors\CreateOrderRoleProcessor $createOrderRoleProcessor, CreatesAddress $createAddress, FetchesAddress $fetchesAddress)
|
||||
{
|
||||
$this->canCreateOrder = $canCreateOrder;
|
||||
|
||||
$this->createsOrder = $createsOrder;
|
||||
$this->createOrderRoleProcessor = $createOrderRoleProcessor;
|
||||
$this->confirmOrderProcessor = $confirmOrderProcessor;
|
||||
$this->createOrderStepsProcessor = $createOrderStepsProcessor;
|
||||
$this->createOrderAddressProcessor = $createOrderAddressProcessor;
|
||||
|
||||
$this->unityCreateContract = $unityCreateContract;
|
||||
$this->unityActivateContract = $unityActivateContract;
|
||||
$this->unityAssignContractEntity = $unityAssignContractEntity;
|
||||
$this->unityCreateContractEntity = $unityCreateContractEntity;
|
||||
$this->unityActivateContract = $unityActivateContract;
|
||||
$this->createOrderRoleProcessor = $createOrderRoleProcessor;
|
||||
$this->createAddress = $createAddress;
|
||||
$this->fetchesAddress = $fetchesAddress;
|
||||
}
|
||||
|
||||
|
||||
public function execute(Request $request){
|
||||
|
||||
$reference_no = rand(1000000, 9999999);
|
||||
@@ -69,12 +100,16 @@ class CreateOrderProcessor
|
||||
$activated = $this->unityActivateContract->execute($contract_reference_no);
|
||||
|
||||
//Create Order on Shipping Platform
|
||||
$order_object = new OrderObject($request->get('company_module_id'), $contract_reference_no, '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING, 0, $request->get('address_id'), $request->get('warehouse_id'));
|
||||
$order_object = new OrderObject($request->get('company_module_id'), $reference_no, $contract_reference_no, OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING, 0, $request->get('address_id'), $request->get('warehouse_id'));
|
||||
$this->canCreateOrder->passes($order_object);
|
||||
$order = $this->createsOrder->execute($order_object);
|
||||
|
||||
$address = $this->fetchesAddress->execute(['id' => $order_object->getAddressId()]);
|
||||
|
||||
$addressObject = new AddressObject($address->street_one, $address->street_two, $address->country_id, $address->state_id, $address->district_id, $address->postcode,$address->reference);
|
||||
|
||||
//Add address (polymorphic)
|
||||
$this->createOrderAddressProcessor->execute($request->get('address_id'), $order);
|
||||
$this->createAddress->execute($order, $addressObject);
|
||||
|
||||
//Add order roles - Allow entity to process this order
|
||||
//This processor calls Unity to create Contract Entity ID
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\ValueObjects\Constants;
|
||||
|
||||
final class AddressType {
|
||||
|
||||
public const BILLING = 1;
|
||||
|
||||
public const DELIVERY = 2;
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\ValueObjects\Constants;
|
||||
|
||||
final class TransactionStatus {
|
||||
|
||||
public const PENDING_PAYMENT = 0;
|
||||
|
||||
public const PENDING_APPROVAL = 1;
|
||||
|
||||
public const APPROVED = 2;
|
||||
|
||||
public const COMPLETED = 3;
|
||||
|
||||
public const REJECTED = 4;
|
||||
|
||||
public const EXPIRED = 5;
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\ValueObjects\Constants;
|
||||
|
||||
use Config;
|
||||
|
||||
final class UnityConfig {
|
||||
|
||||
|
||||
public const AUTH_METHOD = Config::get('unity.default_auth');
|
||||
|
||||
public const API_BASE_URL = Config::get('unity.url');
|
||||
|
||||
public const CREATE_ENTITY_ENDPOINT = Config::get('unity.create_entity_endpoint');
|
||||
}
|
||||
@@ -16,6 +16,7 @@ class AddressResource extends JsonResource
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'reference' => $this->reference,
|
||||
'street_one' => $this->street_one,
|
||||
'street_two' => $this->street_two,
|
||||
'district' => $this->district,
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Classes\General\Interfaces\Addressable;
|
||||
use App\Classes\General\Interfaces\Documentable;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
@@ -18,7 +20,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
* @property integer type
|
||||
* @property integer status
|
||||
*/
|
||||
class CompanyModule extends AbstractModel
|
||||
class CompanyModule extends AbstractModel implements Addressable, Documentable
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
@@ -66,66 +68,28 @@ class CompanyModule extends AbstractModel
|
||||
return $this->HasMany(Order::class, 'company_module_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return belongsToMany
|
||||
*/
|
||||
public function segments(): belongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Segment::class, (new SegmentCompany())->getTable(), 'company_id', 'segment_id');
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return HasMany
|
||||
// */
|
||||
// public function addresses(): HasMany
|
||||
// {
|
||||
// return $this->HasMany(Address::class, 'company_id');
|
||||
// }
|
||||
/**
|
||||
* @return MorphMany
|
||||
*/
|
||||
public function documents(): morphMany
|
||||
{
|
||||
return $this->morphMany(Document::class, 'owner');
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return belongsToMany
|
||||
// */
|
||||
// public function segments(): belongsToMany
|
||||
// {
|
||||
// return $this->belongsToMany(Segment::class, (new SegmentCompany())->getTable(), 'company_id', 'segment_id');
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * @return MorphMany
|
||||
// */
|
||||
// public function documents(): morphMany
|
||||
// {
|
||||
// return $this->morphMany(Document::class, 'owner');
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * @return HasMany
|
||||
// */
|
||||
// public function banks(): HasMany
|
||||
// {
|
||||
// return $this->HasMany(Bank::class, 'company_id');
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * @return HasMany
|
||||
// */
|
||||
// public function bookings(): HasMany
|
||||
// {
|
||||
// return $this->HasMany(Booking::class, 'company_id');
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * @return Builder
|
||||
// */
|
||||
// public function services(): Builder {
|
||||
// return ServiceType::where('status', ApprovalStatus::APPROVED)->whereHas('constants', function($query) {
|
||||
// $query->Where(function($query){
|
||||
// $query->where('reference', SegmentConstants::SERVICE_TYPE)->where('detail->is_active', true);
|
||||
// })->orWhere(function($query) {
|
||||
// $query->where('reference', SegmentConstants::CUSTOM_SERVICE_TYPE)->where('detail->is_active', true)->whereIn('segment_id', $this->segments->pluck('id'));
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
// public function servicesConfigurations(): Collection {
|
||||
// return $this->services()->get()->map(function($service) {
|
||||
// return new ServiceConfigurationsObject($service,
|
||||
// $service->constants->where('reference', SegmentConstants::SERVICE_TYPE)->first(),
|
||||
// $service->constants->where('reference', SegmentConstants::CUSTOM_SERVICE_TYPE)->whereIn('segment_id', $this->segments->pluck('id')));
|
||||
// });
|
||||
// }
|
||||
/**
|
||||
* @return HasMany
|
||||
*/
|
||||
public function banks(): HasMany
|
||||
{
|
||||
return $this->HasMany(Bank::class, 'company_id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Classes\General\Interfaces\Addressable;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
|
||||
class Order extends AbstractModel
|
||||
class Order extends AbstractModel implements Addressable
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Classes\ValueObjects\Constants\AddressType;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@@ -16,12 +17,14 @@ class CreateAddressesTable extends Migration
|
||||
Schema::create('addresses', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->morphs('owner');
|
||||
$table->string('street_one', '45');
|
||||
$table->string('street_two', '45')->nullable();
|
||||
$table->string('reference')->nullable();
|
||||
$table->string('street_one');
|
||||
$table->string('street_two')->nullable();
|
||||
$table->foreignId('district_id')->constrained();
|
||||
$table->foreignId('state_id')->constrained();
|
||||
$table->foreignId('country_id')->constrained();
|
||||
$table->string('postcode', '45');
|
||||
$table->integer('type')->default(AddressType::DELIVERY);
|
||||
$table->integer('default')->default(false);
|
||||
$table->softDeletes();
|
||||
$table->timestamps();
|
||||
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 29 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128.534" height="102" viewBox="0 0 128.534 102"><defs><style>.a{fill:#d3b875;}.b{fill:#b78c58;}.c{fill:#f2d08b;}.d,.e{fill:#846b3d;}.d{opacity:0.6;}.f{fill:#fff;}.g{fill:#4c402c;}</style></defs><g transform="translate(-889.514 -181.288)"><path class="a" d="M969.68,350.98l-80.167-25.186v-59.74l80.167,17.067Z" transform="translate(0 -67.692)"/><path class="b" d="M1335.882,298.869l-48.367,27.5V258.505l48.367-23.276Z" transform="translate(-317.834 -43.077)"/><path class="c" d="M889.514,198.362l48.93-17.074,79.6,10.865L969.68,215.429Z" transform="translate(0 0)"/><path class="d" d="M1005.032,216.528l75.553,16.545,1.552,27.052,2.661,3.88,1.316-4.989,1.788,1.552,1.774-3.548,1.33,2-1.712-30.471-77.6-14.343Z" transform="translate(-92.25 -26.286)"/><path class="d" d="M1053.026,222.277l47.231-19.822,8.036,1.1L1062.978,224.4Z" transform="translate(-130.577 -16.903)"/><path class="e" d="M1053.026,300.865V363.94l9.952,3.127V302.983Z" transform="translate(-130.577 -95.491)"/><path class="f" d="M1332.646,546.092c0,.735-.548.986-1.33,1.33l-8.2,4.142c-1.109.551-1.331-.6-1.331-1.331V537.595c0-.735.48-.909,1.331-1.33l8.2-4.142c1.737-.887,1.216.916,1.33,4.324Z" transform="translate(-345.199 -279.989)"/><path class="g" d="M1325.959,550.674l8.142-3.957v.455l-8.142,4.094Z" transform="translate(-348.535 -291.823)"/><path class="g" d="M1325.959,558.408l8.142-3.957v.455L1325.959,559Z" transform="translate(-348.535 -298)"/><path class="g" d="M1325.959,567.091l8.142-3.957v.455l-8.142,4.094Z" transform="translate(-348.535 -304.933)"/><path class="g" d="M1326.912,596.677l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -329.722)"/><path class="g" d="M1326.912,602.548l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -334.411)"/><path class="g" d="M1326.912,608.536l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -339.193)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,378 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 500 380" style="enable-background:new 0 0 500 380;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#D3B975;}
|
||||
.st1{fill:#B78C58;}
|
||||
.st2{fill:#F2D08B;}
|
||||
.st3{fill:#4D412D;}
|
||||
.st4{fill:#FFFFFF;}
|
||||
.st5{fill:#010101;}
|
||||
.st6{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
|
||||
.st7{fill:none;stroke:#000000;stroke-width:10;stroke-miterlimit:10;}
|
||||
.st8{fill:none;stroke:#000000;stroke-width:8;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<g id="XMLID_348_">
|
||||
<g id="XMLID_2_">
|
||||
<rect id="XMLID_15_" x="46.8" y="56.5" class="st0" width="290" height="323.5"/>
|
||||
<rect id="XMLID_14_" x="336.8" y="56.5" class="st1" width="113.1" height="323.5"/>
|
||||
<polygon id="XMLID_13_" class="st0" points="496.8,113.5 453.2,57 336.8,56.5 383.7,113.5 "/>
|
||||
<polygon id="XMLID_12_" class="st2" points="162,57 214.1,0 500,0 453.2,57 "/>
|
||||
<g id="XMLID_4_">
|
||||
<path id="XMLID_11_" class="st3" d="M207.6,320.2v-19.3h-25.2v19.3c0,6.3,4.7,11.6,10.8,12.5V350c-3.3,0.4-6.3,2-8.4,4.4h20.6
|
||||
c-2.2-2.3-5.1-3.9-8.4-4.4v-17.4C202.9,331.7,207.6,326.5,207.6,320.2z"/>
|
||||
<path id="XMLID_10_" class="st3" d="M243.4,304.6v-4.7h-1.2v4.7c-10.7,0.3-19.8,7.8-23.2,18.1h0.1c0.6-1.4,2-2.3,3.6-2.3
|
||||
c1.6,0,3,0.9,3.6,2.3h0.8c0.6-1.4,2-2.3,3.6-2.3s3,0.9,3.6,2.3h0.8c0.6-1.4,2-2.3,3.6-2.3c1.5,0,2.8,0.8,3.5,2v21.8l-0.6,0
|
||||
c0,0-0.7,7.6,2,9.5c1.8,1.3,5.1,0.8,6.2-1.1c1.2-2.1,1.3-4.1,0.2-3.8c-1.1,0.2-0.5,2.8-2,3.5c-1.9,0.9-3.6,0.2-3.8-2.1
|
||||
c-0.2-2.3-0.1-6-0.1-6l-0.7,0v-22c0.7-1.1,1.9-1.8,3.3-1.8c1.6,0,3,0.9,3.6,2.3h0.6c0.6-1.4,2-2.3,3.6-2.3c1.6,0,3,0.9,3.6,2.3
|
||||
h0.8c0.6-1.4,2-2.3,3.6-2.3c1.6,0,3,0.9,3.6,2.3h0.4C263.1,312.3,254.1,304.9,243.4,304.6z"/>
|
||||
<g id="XMLID_5_">
|
||||
<g id="XMLID_7_">
|
||||
<polygon id="XMLID_9_" class="st3" points="294.3,312.2 284.2,300 274.1,312.2 280.4,312.2 280.4,347.7 287.9,347.7
|
||||
287.9,312.2 "/>
|
||||
<polygon id="XMLID_8_" class="st3" points="316.6,312.2 306.4,300 296.3,312.2 302.7,312.2 302.7,347.7 310.2,347.7
|
||||
310.2,312.2 "/>
|
||||
</g>
|
||||
<rect id="XMLID_6_" x="275.2" y="351.2" class="st3" width="40.2" height="3"/>
|
||||
</g>
|
||||
</g>
|
||||
<polygon id="XMLID_3_" class="st1" points="46.8,56.5 0,113.5 46.8,113.5 "/>
|
||||
</g>
|
||||
<g id="XMLID_16_" transform="translate(-36.425 -36.309)">
|
||||
<rect id="XMLID_342_" x="98.9" y="158.9" class="st4" width="87.3" height="88.2"/>
|
||||
<g id="XMLID_17_" transform="translate(42.691 42.637)">
|
||||
<rect id="XMLID_341_" x="61.7" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_340_" x="64.7" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_339_" x="67.8" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_338_" x="70.8" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_337_" x="73.9" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_336_" x="76.9" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_335_" x="80" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_334_" x="86.1" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_333_" x="89.2" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_332_" x="92.2" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_331_" x="95.3" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_330_" x="116.7" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_329_" x="119.7" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_328_" x="122.8" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_327_" x="125.8" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_326_" x="128.9" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_325_" x="132" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_324_" x="135" y="121.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_323_" x="61.7" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_322_" x="80" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_321_" x="95.3" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_320_" x="98.3" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_319_" x="101.4" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_318_" x="104.4" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_317_" x="110.6" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_316_" x="116.7" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_315_" x="135" y="124.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_314_" x="61.7" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_313_" x="67.8" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_312_" x="70.8" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_311_" x="73.9" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_310_" x="80" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_309_" x="89.2" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_308_" x="95.3" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_307_" x="101.4" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_306_" x="107.5" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_305_" x="110.6" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_304_" x="116.7" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_303_" x="122.8" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_302_" x="125.8" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_301_" x="128.9" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_300_" x="135" y="127.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_299_" x="61.7" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_298_" x="67.8" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_297_" x="70.8" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_296_" x="73.9" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_295_" x="80" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_294_" x="92.2" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_293_" x="95.3" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_292_" x="101.4" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_291_" x="107.5" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_290_" x="110.6" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_289_" x="116.7" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_288_" x="122.8" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_287_" x="125.8" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_286_" x="128.9" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_285_" x="135" y="131" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_284_" x="61.7" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_283_" x="67.8" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_282_" x="70.8" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_281_" x="73.9" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_280_" x="80" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_279_" x="92.2" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_278_" x="95.3" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_277_" x="98.3" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_276_" x="104.4" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_275_" x="110.6" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_274_" x="116.7" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_273_" x="122.8" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_272_" x="125.8" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_271_" x="128.9" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_270_" x="135" y="134.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_269_" x="61.7" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_268_" x="80" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_267_" x="89.2" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_266_" x="95.3" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_265_" x="104.4" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_264_" x="110.6" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_263_" x="116.7" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_262_" x="135" y="137.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_261_" x="61.7" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_260_" x="64.7" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_259_" x="67.8" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_258_" x="70.8" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_257_" x="73.9" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_256_" x="76.9" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_255_" x="80" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_254_" x="86.1" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_253_" x="92.2" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_252_" x="98.3" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_251_" x="104.4" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_250_" x="110.6" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_249_" x="116.7" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_248_" x="119.7" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_247_" x="122.8" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_246_" x="125.8" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_245_" x="128.9" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_244_" x="132" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_243_" x="135" y="140.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_242_" x="86.1" y="143.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_241_" x="89.2" y="143.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_240_" x="98.3" y="143.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_239_" x="101.4" y="143.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_238_" x="61.7" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_237_" x="64.7" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_236_" x="70.8" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_235_" x="73.9" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_234_" x="80" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_233_" x="89.2" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_232_" x="98.3" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_231_" x="104.4" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_230_" x="107.5" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_229_" x="116.7" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_228_" x="135" y="146.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_227_" x="61.7" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_226_" x="64.7" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_225_" x="67.8" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_224_" x="73.9" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_223_" x="76.9" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_222_" x="83.1" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_221_" x="92.2" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_220_" x="101.4" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_219_" x="104.4" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_218_" x="107.5" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_217_" x="113.6" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_216_" x="119.7" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_215_" x="122.8" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_214_" x="125.8" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_213_" x="128.9" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_212_" x="132" y="149.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_211_" x="61.7" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_210_" x="67.8" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_209_" x="73.9" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_208_" x="80" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_207_" x="83.1" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_206_" x="86.1" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_205_" x="89.2" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_204_" x="98.3" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_203_" x="107.5" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_202_" x="110.6" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_201_" x="116.7" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_200_" x="119.7" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_199_" x="125.8" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_198_" x="135" y="152.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_197_" x="61.7" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_196_" x="64.7" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_195_" x="83.1" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_194_" x="86.1" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_193_" x="107.5" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_192_" x="119.7" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_191_" x="125.8" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_190_" x="128.9" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_189_" x="132" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_188_" x="135" y="155.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_187_" x="67.8" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_186_" x="70.8" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_185_" x="80" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_184_" x="86.1" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_183_" x="89.2" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_182_" x="92.2" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_181_" x="104.4" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_180_" x="107.5" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_179_" x="116.7" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_178_" x="135" y="158.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_177_" x="61.7" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_176_" x="67.8" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_175_" x="70.8" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_174_" x="76.9" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_173_" x="83.1" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_172_" x="92.2" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_171_" x="98.3" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_170_" x="104.4" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_169_" x="107.5" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_168_" x="110.6" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_167_" x="113.6" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_166_" x="122.8" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_165_" x="132" y="161.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_164_" x="61.7" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_163_" x="64.7" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_162_" x="70.8" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_161_" x="73.9" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_160_" x="76.9" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_159_" x="80" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_158_" x="83.1" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_157_" x="89.2" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_156_" x="104.4" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_155_" x="107.5" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_154_" x="113.6" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_153_" x="116.7" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_152_" x="122.8" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_151_" x="125.8" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_150_" x="128.9" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_149_" x="132" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_148_" x="135" y="164.9" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_147_" x="61.7" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_146_" x="76.9" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_145_" x="83.1" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_144_" x="89.2" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_143_" x="98.3" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_142_" x="104.4" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_141_" x="110.6" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_140_" x="113.6" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_139_" x="119.7" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_138_" x="125.8" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_137_" x="128.9" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_136_" x="135" y="168" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_135_" x="61.7" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_134_" x="67.8" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_133_" x="70.8" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_132_" x="73.9" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_131_" x="80" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_130_" x="83.1" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_129_" x="92.2" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_128_" x="95.3" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_127_" x="98.3" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_126_" x="101.4" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_125_" x="107.5" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_124_" x="110.6" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_123_" x="113.6" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_122_" x="116.7" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_121_" x="119.7" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_120_" x="122.8" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_119_" x="128.9" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_118_" x="132" y="171.1" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_117_" x="86.1" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_116_" x="89.2" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_115_" x="95.3" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_114_" x="110.6" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_113_" x="122.8" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_112_" x="128.9" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_111_" x="132" y="174.2" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_110_" x="61.7" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_109_" x="64.7" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_108_" x="67.8" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_107_" x="70.8" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_106_" x="73.9" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_105_" x="76.9" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_104_" x="80" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_103_" x="92.2" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_102_" x="98.3" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_101_" x="104.4" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_100_" x="110.6" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_99_" x="116.7" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_98_" x="122.8" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_97_" x="135" y="177.3" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_96_" x="61.7" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_95_" x="80" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_94_" x="95.3" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_93_" x="101.4" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_92_" x="107.5" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_91_" x="110.6" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_90_" x="122.8" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_89_" x="135" y="180.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_88_" x="61.7" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_87_" x="67.8" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_86_" x="70.8" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_85_" x="73.9" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_84_" x="80" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_83_" x="86.1" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_82_" x="92.2" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_81_" x="95.3" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_80_" x="98.3" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_79_" x="104.4" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_78_" x="107.5" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_77_" x="110.6" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_76_" x="113.6" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_75_" x="116.7" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_74_" x="119.7" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_73_" x="122.8" y="183.4" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_72_" x="61.7" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_71_" x="67.8" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_70_" x="70.8" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_69_" x="73.9" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_68_" x="80" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_67_" x="86.1" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_66_" x="89.2" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_65_" x="98.3" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_64_" x="101.4" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_63_" x="104.4" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_62_" x="116.7" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_61_" x="132" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_60_" x="135" y="186.5" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_59_" x="61.7" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_58_" x="67.8" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_57_" x="70.8" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_56_" x="73.9" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_55_" x="80" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_54_" x="89.2" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_53_" x="95.3" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_52_" x="101.4" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_51_" x="107.5" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_50_" x="113.6" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_49_" x="122.8" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_48_" x="125.8" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_47_" x="128.9" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_46_" x="132" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_45_" x="135" y="189.6" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_44_" x="61.7" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_43_" x="80" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_42_" x="86.1" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_41_" x="92.2" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_40_" x="95.3" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_39_" x="104.4" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_38_" x="107.5" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_37_" x="119.7" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_36_" x="122.8" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_35_" x="128.9" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_34_" x="132" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_33_" x="135" y="192.7" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_32_" x="61.7" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_31_" x="64.7" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_30_" x="67.8" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_29_" x="70.8" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_28_" x="73.9" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_27_" x="76.9" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_26_" x="80" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_25_" x="86.1" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_24_" x="89.2" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_23_" x="92.2" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_22_" x="98.3" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_21_" x="110.6" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_20_" x="113.6" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_19_" x="125.8" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
<rect id="XMLID_18_" x="135" y="195.8" class="st5" width="3.1" height="3.1"/>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="XMLID_1_" x="149.8" y="122.5" class="st4" width="171.7" height="88.2"/>
|
||||
<line id="XMLID_344_" class="st6" x1="162" y1="155.4" x2="290.4" y2="155.4"/>
|
||||
<line id="XMLID_343_" class="st7" x1="162" y1="141.2" x2="290.4" y2="141.2"/>
|
||||
<line id="XMLID_345_" class="st8" x1="162" y1="166.6" x2="194.4" y2="166.6"/>
|
||||
<line id="XMLID_347_" class="st8" x1="162" y1="193" x2="218.5" y2="193"/>
|
||||
<line id="XMLID_346_" class="st8" x1="162" y1="178.8" x2="284.9" y2="178.8"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -2179,3 +2179,49 @@ select2-dropdown,
|
||||
background : radial-gradient(#fff 1px, transparent 2px);
|
||||
background-size : 12px 12px;
|
||||
}
|
||||
|
||||
.peelable-corner {
|
||||
cursor: pointer;
|
||||
&::before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
background: $color-white;
|
||||
-webkit-transition: 0.5s;
|
||||
transition: 0.5s;
|
||||
box-shadow: 0 0.5rem 0.5rem rgba(0,0,0,.15)!important;
|
||||
}
|
||||
&::after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 30px*1.4;
|
||||
height: 30px*1.4;
|
||||
position: absolute;
|
||||
left: 30px*-0.7;
|
||||
top: 30px*-0.7;
|
||||
background: $color-master-lightest;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
-webkit-transition: 0.5s;
|
||||
transition: 0.5s;
|
||||
}
|
||||
&:hover {
|
||||
&::before {
|
||||
width: 50px*1.3;
|
||||
height: 50px*1.3;
|
||||
}
|
||||
&::after {
|
||||
width: 50px*1.8;
|
||||
height: 50px*1.8;
|
||||
top: 50px*-0.9;
|
||||
left: 50px*-0.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="col">
|
||||
|
||||
<div class="shadow p-3 bg-white rounded">
|
||||
<div class="d-flex flex-row align-items-center">
|
||||
<input type="radio" name="answer" id="answer-2"
|
||||
v-model="computeAddressId"
|
||||
:value='-1'
|
||||
:checked="new_address == true"
|
||||
>
|
||||
<label for="answer-2" data-question-number="2" class="mb-0 pl-2 pl-md-2 bold">Add New Address</label>
|
||||
</div>
|
||||
<div class="col-0" v-if="computeAddressId==-1">
|
||||
<div class="d-flex flex-column flex-sm-row">
|
||||
<div class="col px-0 pr-sm-2">
|
||||
<validation-wrapper-component selecatable :validator="$v.parameters.district_id">
|
||||
<label class="text-primary fs-12">District</label>
|
||||
<div class="controls">
|
||||
<selectable-component :endpoint="route('api.address.district.list')" section="districtListSection" valueColumn="id" :labelColumn="['city']" v-model="parameters.district_id"></selectable-component>
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col px-0 pl-sm-2">
|
||||
<validation-wrapper-component :validator="$v.parameters.post_code">
|
||||
<label class="text-primary fs-12">Post Code</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control fs-12" v-model="parameters.post_code">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-column flex-sm-row">
|
||||
<div class="col px-0 pr-sm-2">
|
||||
<validation-wrapper-component :validator="$v.parameters.street_one">
|
||||
<label class="text-primary fs-12">Street one</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control fs-12"
|
||||
v-model="parameters.street_one"
|
||||
>
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col px-0 pl-sm-2">
|
||||
<validation-wrapper-component :validator="$v.parameters.street_two">
|
||||
<label class="text-primary fs-12">Street two</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control fs-12"
|
||||
v-model="parameters.street_two"
|
||||
>
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-t-25">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col text-right">
|
||||
<button type="button" class="btn btn-sm btn-primary b-rad-none" @click="submitForm()">New Address</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { required ,requiredIf } from "vuelidate/lib/validators";
|
||||
export default {
|
||||
props: {
|
||||
address_id: null
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
parameters : {
|
||||
company_module_id:this.$store.getters.getCompanyModuleId,
|
||||
street_one: '',
|
||||
street_two: '',
|
||||
district_id: '',
|
||||
post_code: '',
|
||||
},
|
||||
new_address:false
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
computeAddressId:{
|
||||
get() {
|
||||
return this.address_id;
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('input', val);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
validations: {
|
||||
parameters: {
|
||||
street_one: { required:requiredIf(function () { return this.computeAddressId === -1 }) },
|
||||
street_two: {},
|
||||
district_id: { required },
|
||||
post_code: { required },
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
submitForm(){
|
||||
if(!this.validate()){
|
||||
return;
|
||||
}
|
||||
this.isLoading = true;
|
||||
this.submit((this.route('api.address.create')), 'post', 'addressList', true, true);
|
||||
},
|
||||
successHandler(response){
|
||||
this.$emit('input', response.payload.data.id);
|
||||
this.resetForm();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div class="row m-b-10 parentContainer">
|
||||
<div class="col b-a p-t-15 p-b-15 pointer" :class="{ 'b-primary': value === item.id, 'b-grey': value !== item.id}" @click="$emit('input', item.id)">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-0">
|
||||
<i class="fa fs-20 p-t-5" :class="{'fa-circle-o': value !== item.id, 'fa-check-circle': value === item.id, 'text-primary': value === item.id}"></i>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<h6 class="no-margin bold fs-12">{{item.reference}}</h6>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h6 class="no-margin fs-12">{{item.street_one}} {{item.street_two}}, {{item.district.name}}, {{item.post_code}} {{item.state.name}}, {{item.country.name}}</h6>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-5">
|
||||
<i class="fa m-r-10" data-type="defaultAddress" :class="{'fa-star': item.default, 'requestModal': !item.default, 'fa-star-o': !item.default, 'pointer': !item.default, 'text-warning': item.default}" ></i>
|
||||
</div>
|
||||
<div class="col-auto no-padding p-r-5 p-l-5">
|
||||
<i class="fa fa-pencil-square-o text-complete m-r-10" @click="expanded = !expanded"></i>
|
||||
</div>
|
||||
<div class="col-auto p-l-5">
|
||||
<i class="fa fa-trash-o text-danger requestModal" data-type="deleteAddress"></i>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="expanded">
|
||||
<div class="col">
|
||||
<address-form-component :id="$store.getters.getCompanyModuleId" :data="item" section="addressList" @input="updateAddress($event)"></address-form-component>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteAddress">
|
||||
<delete-address-form-component :data="item" section="addressList" class="text-center"></delete-address-form-component>
|
||||
</modal-component>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="defaultAddress">
|
||||
<set-default-address-form-component :data="item" section="addressList" class="text-center"></set-default-address-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
required: false
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
expanded: false
|
||||
}
|
||||
},
|
||||
created(){
|
||||
if(this.item.default){
|
||||
this.$emit('input', this.item.id);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value: function(value){
|
||||
this.value = value;
|
||||
if(value !== this.item.id){
|
||||
this.expanded = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateAddress(id){
|
||||
this.expanded = false;
|
||||
this.$emit('input', id);
|
||||
}
|
||||
},
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.reference">
|
||||
<label>Label</label>
|
||||
<input class="form-control" name="reference" v-model="parameters.reference">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.street_one">
|
||||
<label>Address Line 1</label>
|
||||
<input class="form-control" name="street_one" v-model="parameters.street_one">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.parameters.street_two">
|
||||
<label>Address Line 2</label>
|
||||
<input class="form-control" name="street_two" v-model="parameters.street_two">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-15">
|
||||
<div class="col p-r-5">
|
||||
<validation-wrapper-component selecatable :validator="$v.parameters.district_id">
|
||||
<label>District</label>
|
||||
<selectable-component :endpoint="route('api.address.district.list')" section="districtListSection" valueColumn="id" :labelColumn="['city']" v-model="parameters.district_id"></selectable-component>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<validation-wrapper-component :validator="$v.parameters.post_code">
|
||||
<label>Post Code</label>
|
||||
<input class="form-control" name="post_code" v-model="parameters.post_code">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col text-right">
|
||||
<button type="button" class="btn btn-sm btn-complete b-rad-none" @click="submitForm()">{{ this.data ? "Update" : "Save" }} Address</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import addressFormValidation from "../../../general/mixins/addresses/validation/addressFormValidation";
|
||||
export default {
|
||||
props: {
|
||||
id: {
|
||||
type: Number,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
parameters : {
|
||||
company_module_id: this.id,
|
||||
reference: '',
|
||||
street_one: '',
|
||||
street_two: '',
|
||||
district_id: '',
|
||||
post_code: '',
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
created(){
|
||||
if(this.data){
|
||||
this.parameters.reference = this.data.reference;
|
||||
this.parameters.street_one = this.data.street_one;
|
||||
this.parameters.street_two = this.data.street_two;
|
||||
this.parameters.district_id = this.data.district.id;
|
||||
this.parameters.post_code = this.data.post_code;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'id': function () {
|
||||
this.parameters.company_module_id = this.id;
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
submitForm(){
|
||||
this.submit(this.data ? (this.route('api.address.update', this.data.id)) : (this.route('api.address.create')), this.data ? 'put' : 'post', 'addressList', true, true);
|
||||
},
|
||||
},
|
||||
mixins: [addressFormValidation]
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,33 @@
|
||||
<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 delete this address?</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.address.delete', item.id), 'delete', section, true, true)">Delete</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]
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -1,21 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<h1>Dashboard</h1>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
created(){
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<transition-component group enter-class="animate__animated animate__fadeInUp animate__delay-1 animate__faster p-r-30" leave-class="animate__animated animate__fadeOutDown animate__faster p-r-30" style="min-height: 300px;width:100%">
|
||||
<transition-component group enter-class="animate__animated animate__fadeInRight animate__delay-1 animate__faster p-r-30" leave-class="animate__animated animate__fadeOutLeft animate__faster p-r-30" style="min-height: 300px;width:100%">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
|
||||
<div class="row" key="2" v-show="!$store.getters.isLoading(section)">
|
||||
<div class="col">
|
||||
@@ -29,8 +29,8 @@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="list disable-text-selection" data-check-all="checkAll">
|
||||
<div class="row" ref="list" v-for="item in $store.getters.getListData(section)" v-bind:key="item.id" :data="item">
|
||||
<div class="col">
|
||||
<div class="row" v-for="group in Math.ceil($store.getters.getListData(section).length / columns)">
|
||||
<div class="col-12" :class="'col-md-'+(12/columns)" v-for="item in $store.getters.getListData(section).slice((group - 1) * columns, group * columns)" v-bind:key="item.id" :data="item">
|
||||
<slot name="list" :data="item"></slot>
|
||||
</div>
|
||||
</div>
|
||||
@@ -68,6 +68,11 @@
|
||||
emptyListSection: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
columns: {
|
||||
type: Number,
|
||||
validator: (prop) => [1, 2, 3, 4, 6, 12].includes(prop),
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
data(){
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
return '#912873';
|
||||
case 'success':
|
||||
return '#912873';
|
||||
case 'info':
|
||||
return '#503C93';
|
||||
case 'danger':
|
||||
return '#F3201F';
|
||||
case 'white':
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="animate__animated" :class="[{'animate__shake': validator.$error}]">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="form-group no-margin" :class="[{' has-error': validator.$error}, {'form-group-default-select2': selecatable}, {'p-b-5': selecatable}]">
|
||||
<div class="form-group no-margin form-group-default" :class="[{' has-error': validator.$error}, {'form-group-default-select2': selecatable}, {'p-b-5': selecatable}]">
|
||||
<slot></slot>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-18 text-primary all-caps m-b-50">
|
||||
Order instruction
|
||||
</div>
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<div class="card" style="width: 18rem">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Step 1</h5>
|
||||
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
|
||||
<p class="card-text">
|
||||
Some quick example text to build on the card title and
|
||||
make up the bulk of the card's content.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card" style="width: 18rem">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Step 2</h5>
|
||||
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
|
||||
<p class="card-text">
|
||||
Some quick example text to build on the card title and
|
||||
make up the bulk of the card's content.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card" style="width: 18rem">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Step 3</h5>
|
||||
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
|
||||
<p class="card-text">
|
||||
Some quick example text to build on the card title and
|
||||
make up the bulk of the card's content.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
};
|
||||
},
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,169 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col ">
|
||||
<div class="row" v-if="step === 1">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="row m-b-20 text-info">
|
||||
<div class="col text-center">
|
||||
<h5 class="m-b-0">We currently support two major cities in china.</h5>
|
||||
<h3 class="m-t-0">Which warehouse is more suitable for you?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row text-center justify-content-center">
|
||||
<div class="col-3 p-r-5">
|
||||
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-primary': parameters.warehouse_id === 2, 'b-grey': parameters.warehouse_id !== 2 }" @click="parameters.warehouse_id = 2">
|
||||
<div class="row m-b-15 justify-content-center">
|
||||
<div class="col-8">
|
||||
<img src="/images/guangzhou-map.png" class="w-100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="no-margin" :class="{ 'text-primary': parameters.warehouse_id === 2, 'semi-bold': parameters.warehouse_id === 2 }">Guangzhou</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 p-l-5">
|
||||
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-primary': parameters.warehouse_id === 3, 'b-grey': parameters.warehouse_id !== 3 }" @click="parameters.warehouse_id = 3">
|
||||
<div class="row m-b-15 justify-content-center">
|
||||
<div class="col-8">
|
||||
<img src="/images/yiwu-map.png" class="w-100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="no-margin" :class="{ 'text-primary': parameters.warehouse_id === 3, 'semi-bold': parameters.warehouse_id === 3}">Yiwu</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-6">
|
||||
<div class="row">
|
||||
<div class="col-auto p-r-0">
|
||||
<button type="button" class="btn btn-lg btn-default b-rad-none" @click="cancelOrder()">Cancel</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-lg btn-block btn-primary b-rad-none" @click="step++" v-if="parameters.warehouse_id">Next</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center" v-if="step === 2">
|
||||
<div class="col-10">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="row m-b-20 text-info">
|
||||
<div class="col text-center">
|
||||
<h3>Please select the address where you want to receive this order</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-10">
|
||||
<list-component style="min-height: 50px;" section="addressList" :emptyListSection=false :endpoint="route('api.address.list')" :options="{per_page: 10, HasMorphCompanyModule: $store.getters.getCompanyModuleId}">
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<select-address-component :data="data" :value="parameters.address_id" v-model="parameters.address_id"></select-address-component>
|
||||
</template>
|
||||
</list-component>
|
||||
<div class="row m-b-10">
|
||||
<div class="col b-a p-t-15 p-b-15 pointer" :class="{ 'b-primary': !parameters.address_id, 'b-grey': parameters.address_id}" @click="parameters.address_id = null">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-0">
|
||||
<i class="fa fs-20 p-t-5" :class="{'fa-circle-o': parameters.address_id, 'fa-check-circle': !parameters.address_id, 'text-primary': !parameters.address_id}"></i>
|
||||
</div>
|
||||
<div class="col-auto semi-bold">New Address</div>
|
||||
</div>
|
||||
<div class="row" v-show="!parameters.address_id">
|
||||
<div class="col">
|
||||
<address-form-component :id="$store.getters.getCompanyModuleId" section="addressList" @input="parameters.address_id = $event"></address-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8 no-padding">
|
||||
<div class="row">
|
||||
<div class="col-auto p-r-5">
|
||||
<button type="button" class="btn btn-lg btn-default b-rad-none" @click="step--">back</button>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<button type="button" class="btn btn-lg btn-block btn-primary b-rad-none" @click="createOrder()" v-if="parameters.address_id">Create Order</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center" v-if="step === 3">
|
||||
<div class="col-8 p-t-50 p-b-50 text-center">
|
||||
<div class="row justify-content-center m-b-35">
|
||||
<div class="col-6">
|
||||
<img src="/images/qr.svg" class="w-25 animate__animated animate__flip animate__infinite animate__slower">
|
||||
</div>
|
||||
</div>
|
||||
<loading-component class="m-l-0" style="height: 50px; top: 0;" color="info"></loading-component>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4 class="text-info">We are generating the <b>QR code</b> that you need to <b>send to your supplier</b> to print to <b>stick to your packages</b>, this QR code is required for us to identify your packages when they arrives at our warehouse!</h4>
|
||||
<p>Please wait...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center" v-if="step === 4">
|
||||
<div class="col-8 p-t-50 p-b-50 text-center">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-6">
|
||||
<img src="/images/qr.svg" class="w-50">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
section: 'createOrderForm',
|
||||
step: 1,
|
||||
parameters : {
|
||||
warehouse_id: '',
|
||||
address_id: '',
|
||||
company_module_id: this.$store.getters.getCompanyModuleId,
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
createOrder(){
|
||||
this.step++;
|
||||
this.submit((this.route('api.order.create')), 'post', 'bookingDetailSection', true, true)
|
||||
},
|
||||
cancelOrder(){
|
||||
this.parameters.warehouse_id = '';
|
||||
this.parameters.address_id = '';
|
||||
this.$store.dispatch('toggleSection', {name: this.section, status: false})
|
||||
},
|
||||
successHandler(){
|
||||
let vm = this;
|
||||
setTimeout(function(){
|
||||
vm.step++;
|
||||
}, 5000);
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,86 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-18 text-primary all-caps m-b-50">Select Address</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
|
||||
<list-component v-show="!isLoading" key="2" section="addressList" :endpoint="route('api.address.list')" :options="{per_page: 10, HasMorphCompanyModule :company_module_id}">
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<div class="shadow p-3 mb-3 bg-white rounded">
|
||||
<div class="d-flex flex-column flex-md-row align-items-center">
|
||||
<div class="flex-row align-self-start pb-2 pb-sm-0">
|
||||
<input type="radio" name="answer" id="answer-1"
|
||||
v-model="computeAddress"
|
||||
:value="data.id"
|
||||
>
|
||||
<label for="answer-1" data-question-number="1" class="mb-0 pl-2 pl-md-2 bold">[name]</label>
|
||||
</div>
|
||||
<div>
|
||||
<span class="fs-12 pl-sm-3 pl-lg-5" style="color: #a6a6a6;">{{data.country.name}} {{data.street_one}} {{data.street_two}} {{data.post_code}} {{data.district.name}} {{data.state.name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</list-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<slot name="addressForm" :data="item"></slot>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
company_module_id: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
address_id:null
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
isLoading: false,
|
||||
createAddress: false,
|
||||
selectedAddress: null,
|
||||
item:{
|
||||
id:null
|
||||
},
|
||||
status:{
|
||||
error:false,
|
||||
message:null,
|
||||
direction:null,
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
computeAddress:{
|
||||
get() {
|
||||
return this.address_id;
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('input', val);
|
||||
}
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
created(){
|
||||
},
|
||||
methods: {
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -1,79 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-18 text-primary all-caps m-b-50">Select Warehouse</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<list-component key="2" section="purchaseOrderSection" :endpoint="route('api.company.list')" :options="{per_page: 10, status: 2 ,WithCompanyModuleType :4}">
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<div class="shadow p-3 mb-3 bg-white rounded">
|
||||
<div class="d-flex flex-column flex-md-row align-items-center">
|
||||
<div class="flex-row align-self-start pb-2 pb-sm-0">
|
||||
<input type="radio" name="warehouse"
|
||||
v-model="computeWarehouse"
|
||||
:value="data.id"
|
||||
>
|
||||
<label for="answer-1" data-question-number="1" class="mb-0 pl-2 pl-md-2 bold">{{data.name}}</label>
|
||||
</div>
|
||||
<div>
|
||||
<span class="fs-12 pl-sm-3 pl-lg-5" style="color: #a6a6a6;">GuangZhou, China </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</list-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props: {
|
||||
warehouse: null,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isLoading: true,
|
||||
billingAddress: [],
|
||||
createAddress: false,
|
||||
addressDropdownLaunch: {
|
||||
status: false,
|
||||
},
|
||||
selectedAddress: null,
|
||||
item: {
|
||||
id: null,
|
||||
},
|
||||
status: {
|
||||
error: false,
|
||||
message: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
computeWarehouse: {
|
||||
get() {
|
||||
return this.warehouse;
|
||||
},
|
||||
set(val) {
|
||||
this.$emit("input", val);
|
||||
},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,151 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col ">
|
||||
<div class="col">
|
||||
|
||||
<section v-if="step === 1" class="m-b-20">
|
||||
<order-instruction-component v-if="step === 1" :section="section" v-show="$store.getters.getOrder == 0" v-on:updateStatus="updateStatus($event)"></order-instruction-component>
|
||||
</section>
|
||||
|
||||
<section v-if="step === 2" class="m-b-20">
|
||||
<validation-wrapper-component :validator="$v.parameters.warehouse_id" class="m-b-15">
|
||||
<select-warehouse-component
|
||||
:section="section"
|
||||
:warehouse="parameters.warehouse_id"
|
||||
@input="parameters.warehouse_id = $event"
|
||||
>
|
||||
</select-warehouse-component>
|
||||
</validation-wrapper-component>
|
||||
</section>
|
||||
|
||||
<section v-if="step === 3" class="m-b-20">
|
||||
<validation-wrapper-component :validator="$v.parameters.address_id">
|
||||
<select-address-component
|
||||
:section="section"
|
||||
:key="parameters.address_id"
|
||||
:company_module_id="parameters.company_module_id"
|
||||
:address_id="parameters.address_id"
|
||||
@input="parameters.address_id = $event"
|
||||
>
|
||||
|
||||
<template slot="addressForm">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<address-form-component
|
||||
:address_id="parameters.address_id"
|
||||
@input="parameters.address_id = $event"
|
||||
></address-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</select-address-component>
|
||||
</validation-wrapper-component>
|
||||
</section>
|
||||
|
||||
<section v-if="step === 4" class="m-b-20">
|
||||
<order-list-component :section="section"
|
||||
:company_module_id="parameters.company_module_id"
|
||||
:completedOrder="completedOrder"
|
||||
></order-list-component>
|
||||
</section>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col text-center" v-if="step === 1">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('next')">Next</button>
|
||||
</div>
|
||||
<div class="col text-center" v-if="step === 2">
|
||||
<button v-show="!this.$store.getters.orderExist" type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('back')">Back</button>
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('next')">Next</button>
|
||||
</div>
|
||||
<div class="col text-center" v-if="step === 3">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('back')">Back</button>
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="createOrder">Next(create order)</button>
|
||||
</div>
|
||||
<div class="col text-center" v-if="step === 4">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('reset')">Done</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import CreateOrderformValitaion from '../../../general/mixins/accounts/validation/createOrderFormValidation';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
section: 'createOrderSection',
|
||||
error: '',
|
||||
step: this.$store.getters.orderExist==0?1:2,
|
||||
parameters : {
|
||||
email: '',
|
||||
warehouse_id:'',
|
||||
address_id:'',
|
||||
company_module_id:this.$store.getters.getCompanyModuleId,
|
||||
street_one:'',
|
||||
street_two:'',
|
||||
district_id:'',
|
||||
post_code:'',
|
||||
},
|
||||
completedOrder:null,
|
||||
status:{
|
||||
error:false,
|
||||
message:null,
|
||||
direction:null,
|
||||
},
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
},
|
||||
methods:{
|
||||
changeStep(direction){
|
||||
|
||||
if(direction === 'next'){
|
||||
if(!this.validate()){
|
||||
return;
|
||||
}
|
||||
|
||||
this.step += 1;
|
||||
this.status.direction = direction;
|
||||
this.$emit('updateStatus',this.status);
|
||||
this.$v.$reset();
|
||||
return;
|
||||
|
||||
}else if(direction === 'reset'){
|
||||
this.$store.dispatch('showOrderList');
|
||||
this.step = this.$store.getters.orderExist==0?1:2;
|
||||
this.resetForm();
|
||||
return;
|
||||
}
|
||||
this.step -= 1;
|
||||
return;
|
||||
},
|
||||
|
||||
createOrder(){
|
||||
if(!this.validate()){
|
||||
return;
|
||||
}
|
||||
this.step += 1;
|
||||
this.submit((this.route('api.order.create')), 'post', 'bookingDetailSection', true, true);
|
||||
},
|
||||
successHandler(response){
|
||||
this.completedOrder = response.payload.data;
|
||||
this.$store.dispatch('updateIfCreateNewOrder','1');
|
||||
},
|
||||
updateStatus(event){
|
||||
console.log("receive event bus" ,event);
|
||||
if(event.direction === 'next'){
|
||||
this.step += 1;
|
||||
}else if(event.direction === 'back'){
|
||||
this.step -= 1;
|
||||
}
|
||||
},
|
||||
},
|
||||
mixins: [CreateOrderformValitaion]
|
||||
}
|
||||
</script>
|
||||
@@ -1,14 +0,0 @@
|
||||
import { required, email, numeric, sameAs, requiredUnless, requiredIf } from "vuelidate/lib/validators";
|
||||
import authenticationHandler from '../authenticationHandler'
|
||||
export default {
|
||||
validations: {
|
||||
parameters: {
|
||||
warehouse_id: {
|
||||
required: requiredIf(function () { return this.step === 2 })
|
||||
},
|
||||
address_id: {
|
||||
required:requiredIf(function () { return this.step === 3})
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import errorMessageHandler from "../errorMessageHandler";
|
||||
import formHandler from "../formHandler";
|
||||
|
||||
export default {
|
||||
methods: {
|
||||
successHandler(response){
|
||||
this.$emit('input', response.payload.data.id);
|
||||
this.formHandler('');
|
||||
},
|
||||
errorHandler(error){
|
||||
this.formHandler(error.message);
|
||||
}
|
||||
},
|
||||
mixins: [errorMessageHandler, formHandler]
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
import addressFormHandler from '../addressFormHandler'
|
||||
export default {
|
||||
validations: {
|
||||
parameters: {
|
||||
reference: { required },
|
||||
street_one: { required },
|
||||
street_two: {},
|
||||
district_id: { required },
|
||||
post_code: { required },
|
||||
}
|
||||
},
|
||||
mixins: [addressFormHandler]
|
||||
}
|
||||
@@ -12,17 +12,6 @@ export default {
|
||||
default: null
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if(this.data){
|
||||
this.parameters = this.data;
|
||||
}
|
||||
|
||||
},
|
||||
watch: {
|
||||
'data': function() {
|
||||
this.parameters = this.data;
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isLoading: false,
|
||||
|
||||
@@ -10,7 +10,6 @@ export default {
|
||||
getters: {
|
||||
isAuthenticated: state => !!state.authentication.access_token,
|
||||
getAccessToken: state => state.authentication.access_token,
|
||||
|
||||
isSuperAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1,
|
||||
isAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1 || getters.getDecodedAccessToken.user.type === 2,
|
||||
getUserName: (state, getters) => getters.getUpdatedFullname || getters.getDecodedAccessToken.user.name,
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
export default {
|
||||
state: {
|
||||
orderExist:localStorage.getItem('new-order') || 0,
|
||||
},
|
||||
getters: {
|
||||
orderExist: (state, getters) => getters.getOrder > 0 || state.orderExist,
|
||||
},
|
||||
mutations: {
|
||||
UPDATE_IF_NEW_ORDER(state){
|
||||
state.orderExist = 0;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
updateIfCreateNewOrder(store ,order){
|
||||
localStorage.setItem('new-order', order);
|
||||
store.commit('UPDATE_IF_NEW_ORDER');
|
||||
},
|
||||
showCreateOrderForm(store){
|
||||
store.dispatch('toggleSection', {name: 'createOrderForm', status: true})
|
||||
},
|
||||
showOrderList(store){
|
||||
store.dispatch('toggleSection', {name: 'orderList', status: true})
|
||||
store.dispatch('toggleSection', {name: 'createOrderForm', status: false})
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import createNotification from './modules/createNotification'
|
||||
import crudRequest from './modules/crudRequest'
|
||||
import authentication from './modules/authentication'
|
||||
import loadRequestQueue from './modules/loadRequestQueue'
|
||||
import order from './modules/order'
|
||||
|
||||
Vue.use(Vuex);
|
||||
|
||||
@@ -17,7 +16,6 @@ export default new Vuex.Store({
|
||||
loadRequestQueue,
|
||||
createNotification,
|
||||
crudRequest,
|
||||
authentication,
|
||||
order
|
||||
authentication
|
||||
}
|
||||
})
|
||||
@@ -13,8 +13,8 @@
|
||||
</div>
|
||||
<div class="col">
|
||||
@include('partials.header')
|
||||
<div class="row no-margin">
|
||||
<div class="col">
|
||||
<div class="row no-margin p-b-50">
|
||||
<div class="col p-t-15 p-b-25">
|
||||
@yield('inner_content')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,94 +1,4 @@
|
||||
@extends('layouts.base_portal')
|
||||
@section('inner_content')
|
||||
@include('pages.dashboards.customer')
|
||||
<template v-if="$store.getters.orderExist">
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
<h1>TEWTASE</h1>
|
||||
</template>
|
||||
@endsection
|
||||
@@ -1,96 +1,99 @@
|
||||
<div class="col-0">
|
||||
<!-- QR Code Structure -->
|
||||
<div class="row">
|
||||
<div class="d-flex flex-row align-items-center">
|
||||
<div class="col">
|
||||
<img class="p-2 border" style="width: 100px; height: 100px;" src="http://eslkidsgames.com/Flash/QR%20Code%20Maker/eslkidsgames.com.png">
|
||||
</div>
|
||||
<div class="d-flex flex-column pl-3">
|
||||
<span class="fs-16" style="color: #a6a6a6;">Order #00012558</span>
|
||||
<span class="py-2 fs-20 bold">Your order(s) are ready for shipment</span>
|
||||
<span class="fs-14" style="color: #a6a6a6;">Ordered at 1:54PM on 12 August, 2021</span>
|
||||
@extends('layouts.base_portal')
|
||||
@section('inner_content')
|
||||
<div class="col-0">
|
||||
<!-- QR Code Structure -->
|
||||
<div class="row">
|
||||
<div class="d-flex flex-row align-items-center">
|
||||
<div class="col">
|
||||
<img class="p-2 border" style="width: 100px; height: 100px;" src="http://eslkidsgames.com/Flash/QR%20Code%20Maker/eslkidsgames.com.png">
|
||||
</div>
|
||||
<div class="d-flex flex-column pl-3">
|
||||
<span class="fs-16" style="color: #a6a6a6;">Order #00012558</span>
|
||||
<span class="py-2 fs-20 bold">Your order(s) are ready for shipment</span>
|
||||
<span class="fs-14" style="color: #a6a6a6;">Ordered at 1:54PM on 12 August, 2021</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Banner Component -->
|
||||
<div class="py-3">
|
||||
<div class="p-3 card b-rad-2 no-border" style="background-color: #f6f6f6;">
|
||||
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fs-14 bold" style="color: #5c5c5c;">Latest Update</span>
|
||||
<span class="fs-12 bold" style="color: #5c5c5c;">Today <span class="fs-12" style="color: #a6a6a6;">at 3:04PM</span></span>
|
||||
<div>
|
||||
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
|
||||
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
|
||||
<!-- Banner Component -->
|
||||
<div class="py-3">
|
||||
<div class="p-3 card b-rad-2 no-border" style="background-color: #f6f6f6;">
|
||||
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fs-14 bold" style="color: #5c5c5c;">Latest Update</span>
|
||||
<span class="fs-12 bold" style="color: #5c5c5c;">Today <span class="fs-12" style="color: #a6a6a6;">at 3:04PM</span></span>
|
||||
<div>
|
||||
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
|
||||
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row">
|
||||
<div class="d-none d-md-inline">
|
||||
<div class="col-6 border-right" style="height: 50px;"></div>
|
||||
</div>
|
||||
<div class="pl-md-4 d-flex flex-column">
|
||||
<span class="fs-14 text-right" style="color: #a6a6a6;">Carrier Tracking Number</span>
|
||||
<span class="fs-14 bold text-right text-underline" style="color: #5c5c5c">#1ZYBR067TW403742920</span>
|
||||
<div class="d-flex flex-row">
|
||||
<div class="d-none d-md-inline">
|
||||
<div class="col-6 border-right" style="height: 50px;"></div>
|
||||
</div>
|
||||
<div class="pl-md-4 d-flex flex-column">
|
||||
<span class="fs-14 text-right" style="color: #a6a6a6;">Carrier Tracking Number</span>
|
||||
<span class="fs-14 bold text-right text-underline" style="color: #5c5c5c">#1ZYBR067TW403742920</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Stepper Bar -->
|
||||
<!-- Stepper Bar -->
|
||||
@include('partials.tab')
|
||||
|
||||
<!-- Order List Item -->
|
||||
<div class="w-100">
|
||||
<div class="border-top border-bottom" style="border-color: #e6e6e6;">
|
||||
<div class="py-3">
|
||||
<div clas="row">
|
||||
<div class="d-flex flex-column flex-sm-row">
|
||||
<div class="col-0">
|
||||
<!-- Placeholder, We Can Simply Remove It Once We Have Another Design -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="100.181" height="79.5" viewBox="0 0 100.181 79.5">
|
||||
<g id="Group_1383" data-name="Group 1383" transform="translate(-889.514 -181.288)">
|
||||
<path id="Path_4020" data-name="Path 4020" d="M952,332.246l-62.483-19.631V266.054L952,279.356Z" transform="translate(0 -71.459)" fill="#d3b875"/>
|
||||
<path id="Path_4021" data-name="Path 4021" d="M1325.213,284.831l-37.7,21.43v-52.89l37.7-18.141Z" transform="translate(-335.518 -45.473)" fill="#b78c58"/>
|
||||
<path id="Path_4022" data-name="Path 4022" d="M889.514,194.6l38.136-13.308,62.045,8.468L952,207.9Z" transform="translate(0 0)" fill="#f2d08b"/>
|
||||
<path id="Path_4023" data-name="Path 4023" d="M1005.032,216.015l58.887,12.9,1.21,21.085,2.074,3.024,1.026-3.889,1.394,1.21,1.383-2.765,1.037,1.555-1.334-23.749L1010.224,214.2Z" transform="translate(-97.383 -27.748)" fill="#846b3d" opacity="0.6"/>
|
||||
<path id="Path_4024" data-name="Path 4024" d="M1053.026,217.9l36.813-15.45,6.263.855-35.319,16.246Z" transform="translate(-137.842 -17.844)" fill="#846b3d" opacity="0.6"/>
|
||||
<path id="Path_4025" data-name="Path 4025" d="M1053.026,300.865v49.162l7.757,2.437V302.516Z" transform="translate(-137.842 -100.804)" fill="#846b3d"/>
|
||||
<path id="Path_4026" data-name="Path 4026" d="M1330.25,542.961c0,.573-.427.769-1.037,1.037l-6.394,3.228c-.864.43-1.037-.464-1.037-1.037v-9.851c0-.573.374-.708,1.037-1.037l6.394-3.228c1.354-.691.948.714,1.037,3.37Z" transform="translate(-364.405 -295.567)" fill="#fff"/>
|
||||
<path id="Path_4027" data-name="Path 4027" d="M1325.959,549.8l6.346-3.084v.354l-6.346,3.191Z" transform="translate(-367.927 -308.06)" fill="#4c402c"/>
|
||||
<path id="Path_4028" data-name="Path 4028" d="M1325.959,557.536l6.346-3.084v.355L1325.959,558Z" transform="translate(-367.927 -314.58)" fill="#4c402c"/>
|
||||
<path id="Path_4029" data-name="Path 4029" d="M1325.959,566.218l6.346-3.084v.355l-6.346,3.191Z" transform="translate(-367.927 -321.899)" fill="#4c402c"/>
|
||||
<path id="Path_4030" data-name="Path 4030" d="M1326.912,596.125l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -348.067)" fill="#4c402c"/>
|
||||
<path id="Path_4031" data-name="Path 4031" d="M1326.912,602l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -353.017)" fill="#4c402c"/>
|
||||
<path id="Path_4032" data-name="Path 4032" d="M1326.912,607.985l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -358.065)" fill="#4c402c"/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="w-100 d-flex flex-column">
|
||||
<div class="d-flex">
|
||||
<div class="col pl-4">
|
||||
<div class="row">
|
||||
<div class="d-flex flex-column pl-3">
|
||||
<span class="fs-12 bold" style="color: #5c5c5c;">MY55899874</span>
|
||||
<span class="py-2 fs-14 bold">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor</span>
|
||||
<div class="w-100">
|
||||
<div class="border-top border-bottom" style="border-color: #e6e6e6;">
|
||||
<div class="py-3">
|
||||
<div clas="row">
|
||||
<div class="d-flex flex-column flex-sm-row">
|
||||
<div class="col-0">
|
||||
<!-- Placeholder, We Can Simply Remove It Once We Have Another Design -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="100.181" height="79.5" viewBox="0 0 100.181 79.5">
|
||||
<g id="Group_1383" data-name="Group 1383" transform="translate(-889.514 -181.288)">
|
||||
<path id="Path_4020" data-name="Path 4020" d="M952,332.246l-62.483-19.631V266.054L952,279.356Z" transform="translate(0 -71.459)" fill="#d3b875"/>
|
||||
<path id="Path_4021" data-name="Path 4021" d="M1325.213,284.831l-37.7,21.43v-52.89l37.7-18.141Z" transform="translate(-335.518 -45.473)" fill="#b78c58"/>
|
||||
<path id="Path_4022" data-name="Path 4022" d="M889.514,194.6l38.136-13.308,62.045,8.468L952,207.9Z" transform="translate(0 0)" fill="#f2d08b"/>
|
||||
<path id="Path_4023" data-name="Path 4023" d="M1005.032,216.015l58.887,12.9,1.21,21.085,2.074,3.024,1.026-3.889,1.394,1.21,1.383-2.765,1.037,1.555-1.334-23.749L1010.224,214.2Z" transform="translate(-97.383 -27.748)" fill="#846b3d" opacity="0.6"/>
|
||||
<path id="Path_4024" data-name="Path 4024" d="M1053.026,217.9l36.813-15.45,6.263.855-35.319,16.246Z" transform="translate(-137.842 -17.844)" fill="#846b3d" opacity="0.6"/>
|
||||
<path id="Path_4025" data-name="Path 4025" d="M1053.026,300.865v49.162l7.757,2.437V302.516Z" transform="translate(-137.842 -100.804)" fill="#846b3d"/>
|
||||
<path id="Path_4026" data-name="Path 4026" d="M1330.25,542.961c0,.573-.427.769-1.037,1.037l-6.394,3.228c-.864.43-1.037-.464-1.037-1.037v-9.851c0-.573.374-.708,1.037-1.037l6.394-3.228c1.354-.691.948.714,1.037,3.37Z" transform="translate(-364.405 -295.567)" fill="#fff"/>
|
||||
<path id="Path_4027" data-name="Path 4027" d="M1325.959,549.8l6.346-3.084v.354l-6.346,3.191Z" transform="translate(-367.927 -308.06)" fill="#4c402c"/>
|
||||
<path id="Path_4028" data-name="Path 4028" d="M1325.959,557.536l6.346-3.084v.355L1325.959,558Z" transform="translate(-367.927 -314.58)" fill="#4c402c"/>
|
||||
<path id="Path_4029" data-name="Path 4029" d="M1325.959,566.218l6.346-3.084v.355l-6.346,3.191Z" transform="translate(-367.927 -321.899)" fill="#4c402c"/>
|
||||
<path id="Path_4030" data-name="Path 4030" d="M1326.912,596.125l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -348.067)" fill="#4c402c"/>
|
||||
<path id="Path_4031" data-name="Path 4031" d="M1326.912,602l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -353.017)" fill="#4c402c"/>
|
||||
<path id="Path_4032" data-name="Path 4032" d="M1326.912,607.985l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -358.065)" fill="#4c402c"/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="w-100 d-flex flex-column">
|
||||
<div class="d-flex">
|
||||
<div class="col pl-4">
|
||||
<div class="row">
|
||||
<div class="d-flex flex-column pl-3">
|
||||
<span class="fs-12 bold" style="color: #5c5c5c;">MY55899874</span>
|
||||
<span class="py-2 fs-14 bold">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row">
|
||||
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
|
||||
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row">
|
||||
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
|
||||
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fs-12 all-caps text-right" style="color: #912873;">To Be Shipped</span>
|
||||
<span class="py-2 fs-12 text-right bold">52x65x35 CM / 10KG</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fs-12 all-caps text-right" style="color: #912873;">To Be Shipped</span>
|
||||
<span class="py-2 fs-12 text-right bold">52x65x35 CM / 10KG</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-3 d-flex align-items-center">
|
||||
<span class="col pl-4 fs-12" style="color: #a6a6a6;">Date: 12 August, 2021</span>
|
||||
<div class="d-flex flex-row justify-content-between" style="width: 295px;">
|
||||
<div class="btn btn-primary b-rad-2" style="width: 145px;">Ship Now</div>
|
||||
<div class="btn btn-secondary b-rad-2" style="width: 145px;">Details</div>
|
||||
<div class="pt-3 d-flex align-items-center">
|
||||
<span class="col pl-4 fs-12" style="color: #a6a6a6;">Date: 12 August, 2021</span>
|
||||
<div class="d-flex flex-row justify-content-between" style="width: 295px;">
|
||||
<div class="btn btn-primary b-rad-2" style="width: 145px;">Ship Now</div>
|
||||
<div class="btn btn-secondary b-rad-2" style="width: 145px;">Details</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -99,4 +102,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -2,7 +2,9 @@
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-10 p-t-15 p-b-15">
|
||||
<img class="w-50" src="https://www.izyim.com/images/logo.png">
|
||||
<a href="{{route('dashboard')}}">
|
||||
<img class="w-50" src="https://www.izyim.com/images/logo.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -85,7 +87,7 @@
|
||||
<div class="row no-margin">
|
||||
<div class="absolute hint-text dotted-grid" style="width: 80px;height: 80px; right: 27px; bottom: 28px; z-index: 1; opacity: 0.3;"></div>
|
||||
<div class="absolute hint-text dotted-grid" style="width: 80px;height: 80px; z-index: 1; opacity: 0.3;"></div>
|
||||
<div class="col bg-info-primary-gradient text-white padding-25">
|
||||
<div class="col bg-info text-white padding-25">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h6 class="text-white m-t-0 semi-bold">Got Problems?</h6>
|
||||
@@ -94,7 +96,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="btn btn-sm btn-block bg-white text-primary b-rad-sm pointer">Contact Us</div>
|
||||
<div class="btn btn-sm btn-block bg-white text-info b-rad-sm pointer">Contact Us</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
|
||||
Route::group(['prefix' => 'address', 'as' => 'address.', 'namespace' => 'Addresses'], function () {
|
||||
Route::group(['prefix' => 'address', 'as' => 'address.', 'namespace' => 'Addresses'], function () {
|
||||
|
||||
Route::get('/{id}/show', 'FetchAddressController@fetch')->name('show');
|
||||
|
||||
Route::get('/list', 'ListAddressesController@list')->name('list');
|
||||
|
||||
Route::get('district/list', 'ListDistrictsController@list')->name('district.list');
|
||||
|
||||
Route::post('/create', 'CreateAddressController@create')->name('create');
|
||||
|
||||
@@ -48,6 +48,10 @@ Route::get('/order', function () {
|
||||
return view('pages.orders.index');
|
||||
})->name('order');
|
||||
|
||||
Route::get('/order/show', function () {
|
||||
return view('pages.order_details');
|
||||
})->name('order.show');
|
||||
|
||||
Route::get('/address', function () {
|
||||
return view('pages.addresses.index');
|
||||
})->name('address');
|
||||
|
||||