mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 12:34:18 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d53e2fe19a | |||
| fcf3d24ae4 |
@@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\General\Eloquent\Filters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class DoesNotHaveTransactionType implements Filter
|
||||
{
|
||||
/**
|
||||
* @param Builder $builder
|
||||
* @param $value
|
||||
* @return mixed
|
||||
*/
|
||||
public static function apply(Builder $builder, $value)
|
||||
{
|
||||
return $builder->whereDoesntHave('transactions', function (Builder $query) use($value) {
|
||||
$query->where('type', $value);
|
||||
})->whereHas('containers', function ($query){
|
||||
return $query->whereDate('loading_date', '>=', Carbon::parse('08-08-2022'));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\General\Eloquent\Filters;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class HasInvoiceStatusIn implements Filter
|
||||
{
|
||||
/**
|
||||
* @param Builder $builder
|
||||
* @param $value
|
||||
* @return mixed
|
||||
*/
|
||||
public static function apply(Builder $builder, $value)
|
||||
{
|
||||
return $builder->whereHas('transactions', function (Builder $query) use($value) {
|
||||
$query->where('type', 1)->whereIn('status', $value);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\General\Eloquent\Filters;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class HasTransactionType implements Filter
|
||||
{
|
||||
/**
|
||||
* @param Builder $builder
|
||||
* @param $value
|
||||
* @return mixed
|
||||
*/
|
||||
public static function apply(Builder $builder, $value)
|
||||
{
|
||||
return $builder->whereHas('transactions', function (Builder $query) use($value) {
|
||||
$query->where('type', $value);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\General\Eloquent\Filters;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class SegmentIdIn implements Filter
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Builder $builder
|
||||
* @param $value
|
||||
* @return Builder|mixed
|
||||
*/
|
||||
public static function apply(Builder $builder, $value)
|
||||
{
|
||||
return $builder->whereIn('segment_id', $value);
|
||||
}
|
||||
|
||||
}
|
||||
+9
-9
@@ -97,15 +97,15 @@ class ApproveIdentificationDocumentLogic extends AbstractControllerLogic
|
||||
|
||||
$this->updatesCompanyStatus->execute($document->owner, $status === 'approve' ? ApprovalStatus::APPROVED : ApprovalStatus::REJECTED);
|
||||
|
||||
// $object = new NotificationObject(
|
||||
// 'ID Verification ' . ( $status === 'approve' ? 'Approved' : 'Rejected' ),
|
||||
// ( $status === 'approve' ? 'Dear user, congratulations that your ' : 'Dear user, we are sorry to inform you that your ' ) . ( $document->type === 'IDENTITY_CARD' ? 'IC' : 'SSM' ) . ( $status === 'approve' ? ' has been approved. Start your first order now!' : ' has been rejected due to ' . ( $request->input('rejectRemark') ?? '' ) . ', please resubmit it for further action.' ),
|
||||
// $document->owner,
|
||||
// $document->owner->companyModules()->first()->employees()->first(),
|
||||
// $document,
|
||||
// );
|
||||
//
|
||||
// $this->createNotificationProcessor->execute($object);
|
||||
$object = new NotificationObject(
|
||||
'ID Verification ' . ( $status === 'approve' ? 'Approved' : 'Rejected' ),
|
||||
( $status === 'approve' ? 'Dear user, congratulations that your ' : 'Dear user, we are sorry to inform you that your ' ) . ( $document->type === 'IDENTITY_CARD' ? 'IC' : 'SSM' ) . ( $status === 'approve' ? ' has been approved. Start your first order now!' : ' has been rejected due to ' . ( $request->input('rejectRemark') ?? '' ) . ', please resubmit it for further action.' ),
|
||||
$document->owner,
|
||||
$document->owner->companyModules()->first()->employees()->first(),
|
||||
$document,
|
||||
);
|
||||
|
||||
$this->createNotificationProcessor->execute($object);
|
||||
|
||||
if($status === 'approve'){
|
||||
$orders = $this->updatesOrdersStatus->execute($document->owner, ApprovalStatus::APPROVED);
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Classes\Modules\Companies\Services;
|
||||
|
||||
use App\Classes\Exceptions\MalformedRequestException;
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Models\Company;
|
||||
use App\Models\Segment;
|
||||
use Illuminate\Database\QueryException;
|
||||
@@ -20,9 +19,8 @@ class AssignsCompanyToSegment extends AbstractUpdateRecord
|
||||
public function execute(Company $company, Segment $segment)
|
||||
{
|
||||
try {
|
||||
$companyModule = $company->companyModules()->where('type', BusinessType::IMPORTER)->first();
|
||||
$connection = $companyModule->connections()->where('inviter_reference', 'CIEF');
|
||||
$connection->segments()->attach($segment);
|
||||
|
||||
$company->segments()->attach($segment);
|
||||
|
||||
return $company;
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Classes\Modules\Exports\Services;
|
||||
|
||||
use App\Models\Order;
|
||||
use App\Models\PackingList;
|
||||
use Carbon\Carbon;
|
||||
use Maatwebsite\Excel\Concerns\Exportable;
|
||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Classes\Modules\Exports\Services;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Models\Order;
|
||||
use App\Models\PackingList;
|
||||
use Maatwebsite\Excel\Concerns\Exportable;
|
||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
||||
@@ -47,7 +46,6 @@ class ExportsOnHoldPackingList implements FromQuery, WithHeadings, WithHeadingRo
|
||||
$container = $packingList->containers()->first();
|
||||
$ContainerTransport = $container->transports()->first();
|
||||
$order = $packingList->owner;
|
||||
if(!$order instanceof Order)return [];
|
||||
$marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference;
|
||||
|
||||
return [
|
||||
|
||||
@@ -57,8 +57,7 @@ class ExportsPendingArrangementDeliveryList implements FromQuery, WithHeadings,
|
||||
$container = $packingList->containers()->first();
|
||||
$ContainerTransport = $container->transports()->first();
|
||||
$order = $packingList->owner;
|
||||
$inviter = $order->companyModule ? $order->companyModule->inviters()->withPivot('invitee_reference')->first() : null;
|
||||
$marking = $inviter ? $inviter->pivot->invitee_reference : 'Unclaimed';
|
||||
$marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference;
|
||||
$address = $order->addresses()->where('status', ApprovalStatus::APPROVED)->first();
|
||||
$contacts = $address->contacts->first() ? $address->contacts->first(): '';
|
||||
$originalPackingList = $packingList->owner instanceof PackingList ? $packingList->owner : $packingList;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Classes\Modules\PackingLists\ControllersLogic;
|
||||
|
||||
use App\Classes\Exceptions\ResourceNotFoundException;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
@@ -135,25 +134,20 @@ class AssignPackingListOrderLogic extends AbstractControllerLogic
|
||||
|
||||
$this->unityAssignContractEntity->execute($supervisorContractEntity->hash_id, $contractObligations);
|
||||
|
||||
try {
|
||||
$packing_list = $this->fetchesPackingList->execute([
|
||||
'reference' => $warehouse_packing_list->reference,
|
||||
'type' => PackingListType::SHIPPING_PACKING_LIST
|
||||
]);
|
||||
$packing_list = $this->fetchesPackingList->execute([
|
||||
'reference' => $warehouse_packing_list->reference,
|
||||
'type' => PackingListType::SHIPPING_PACKING_LIST
|
||||
]);
|
||||
|
||||
$warehouse_packing_list = $this->updatesPackingListOwner->execute($packing_list, $order);
|
||||
|
||||
$this->updatesPackingListContractReference->execute($packing_list, $contractReference);
|
||||
|
||||
foreach($contractObligations as $obligation) {
|
||||
$stepObject = new StepsObject($order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->id, $obligation->reference, $obligation->sequence, $obligation->hash_id);
|
||||
$this->createsStep->execute($packing_list, $stepObject);
|
||||
}
|
||||
} catch (ResourceNotFoundException $exception) {
|
||||
$warehouse_packing_list = $this->updatesPackingListOwner->execute($packing_list, $order);
|
||||
|
||||
$this->updatesPackingListContractReference->execute($packing_list, $contractReference);
|
||||
|
||||
foreach($contractObligations as $obligation) {
|
||||
$stepObject = new StepsObject($order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->id, $obligation->reference, $obligation->sequence, $obligation->hash_id);
|
||||
$this->createsStep->execute($packing_list, $stepObject);
|
||||
}
|
||||
|
||||
|
||||
return $this->resourceResponse(new PackingListResource($warehouse_packing_list));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\PackingLists\Services\DeletesPackingList;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\PackingLists\Standards\Rules\CanDeletePackingList;
|
||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -59,11 +58,9 @@ class DeletePackingListLogic extends AbstractControllerLogic
|
||||
|
||||
$this->canDeletePackingList->passes();
|
||||
|
||||
$warehouseList = $this->fetchesPackingList->execute(['id' => $request->route('id')]);
|
||||
$packingList = $this->fetchesPackingList->execute(['reference' => $warehouseList->reference, 'type' => PackingListType::SHIPPING_PACKING_LIST]);
|
||||
$query = $this->fetchesPackingList->execute(['id' => $request->route('id')]);
|
||||
|
||||
$this->deletesPackingList->execute($warehouseList);
|
||||
$this->deletesPackingList->execute($packingList);
|
||||
$this->deletesPackingList->execute($query);
|
||||
|
||||
return $this->response([]);
|
||||
|
||||
|
||||
@@ -7,13 +7,9 @@ use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\Schedules\Services\CreatesSchedule;
|
||||
use App\Classes\Modules\Schedules\Services\UpdatesScheduleStatus;
|
||||
use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject;
|
||||
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
|
||||
use App\Classes\Modules\Transports\Services\CreatesTransport;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\TransportType;
|
||||
use App\Http\Resources\PackingListResource;
|
||||
use App\Models\Transport;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -21,8 +17,6 @@ use Carbon\Carbon;
|
||||
|
||||
class ReschedulePackingListLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
@@ -39,31 +33,26 @@ class ReschedulePackingListLogic extends AbstractControllerLogic
|
||||
/** @var UpdatesScheduleStatus */
|
||||
private $updatesScheduleStatus;
|
||||
|
||||
/** @var CreatesTransport */
|
||||
private $createsTransport;
|
||||
|
||||
/** @var CreatesSchedule */
|
||||
private $createsSchedule;
|
||||
|
||||
/**
|
||||
* ReschedulePackingListLogic constructor.
|
||||
* DeleteContainerControllersLogic constructor.
|
||||
* @param FetchesPackingList $fetchesPackingList
|
||||
* @param UpdatesScheduleStatus $updatesScheduleStatus
|
||||
* @param CreatesTransport $createsTransport
|
||||
* @param CreatesSchedule $createsSchedule
|
||||
*/
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, UpdatesScheduleStatus $updatesScheduleStatus, CreatesTransport $createsTransport, CreatesSchedule $createsSchedule)
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, UpdatesScheduleStatus $updatesScheduleStatus, CreatesSchedule $createsSchedule)
|
||||
{
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
$this->updatesScheduleStatus = $updatesScheduleStatus;
|
||||
$this->createsTransport = $createsTransport;
|
||||
$this->createsSchedule = $createsSchedule;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
* @throws ErrorException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
@@ -71,15 +60,9 @@ class ReschedulePackingListLogic extends AbstractControllerLogic
|
||||
|
||||
$transport = $packing_list->transports()->first();
|
||||
|
||||
if(!$transport) {
|
||||
$object = new TransportObject(TransportType::LAND, null, '', Carbon::parse($request->input('etd')), Carbon::parse($request->input('eta')),ApprovalStatus::APPROVED);
|
||||
/** @var Transport $transport */
|
||||
$transport = $this->createsTransport->execute($object, $packing_list);
|
||||
}
|
||||
$old_sechedule = $transport->schedules()->first();
|
||||
|
||||
$transport->schedules()->update([
|
||||
'status' => ApprovalStatus::REJECTED
|
||||
]);
|
||||
$this->updatesScheduleStatus->execute($old_sechedule, ApprovalStatus::REJECTED);
|
||||
|
||||
$scheduleObject = new ScheduleObject(
|
||||
Carbon::parse($request->input('eta')),
|
||||
|
||||
@@ -91,6 +91,7 @@ class FetchDeliveryListFromVTPortalProcessor
|
||||
$deliveryStep->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
|
||||
} catch (GuzzleException $exception) {
|
||||
dd($exception);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
+43
-128
@@ -7,15 +7,12 @@ use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
||||
use App\Classes\Modules\Orders\Services\FetchesDataFromVTPortal;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Classes\Modules\PackingLists\DataTransferObjects\ContainerObject;
|
||||
use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject;
|
||||
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
|
||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject;
|
||||
use App\Classes\Modules\Schedules\Services\CreatesSchedule;
|
||||
use App\Classes\Modules\Steps\DataTransferObjects\StepsObject;
|
||||
use App\Classes\Modules\Steps\Services\CreatesStep;
|
||||
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
|
||||
use App\Classes\Modules\Transports\Services\CreatesTransport;
|
||||
use App\Classes\Modules\Unity\Processors\ActivateContractProcessor;
|
||||
use App\Classes\Modules\Unity\Processors\AssignContractEntityProcessor;
|
||||
@@ -24,13 +21,10 @@ use App\Classes\Modules\Unity\Services\CreatesContract;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\ContainerTypes;
|
||||
use App\Classes\ValueObjects\Constants\OrderRoleTypes;
|
||||
use App\Classes\ValueObjects\Constants\PackageType;
|
||||
use App\Classes\ValueObjects\Constants\RoleTypes;
|
||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
||||
use App\Classes\ValueObjects\Constants\TransportType;
|
||||
use App\Models\Order;
|
||||
use App\Models\PackingList;
|
||||
use App\Models\Transport;
|
||||
use Carbon\Carbon;
|
||||
use GuzzleHttp\Exception\GuzzleException;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -130,8 +124,9 @@ class FetchLoadedContainersFromVTPortalProcessor
|
||||
*/
|
||||
public function execute(?Carbon $start = null, ?Carbon $end = null){
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$start = $start ? $start : Carbon::today()->subDays(5);
|
||||
$start = $start ? $start : Carbon::now()->subDays(10);
|
||||
|
||||
$startLimit = Carbon::parse('11-08-2021');
|
||||
|
||||
@@ -139,162 +134,80 @@ class FetchLoadedContainersFromVTPortalProcessor
|
||||
$start = $startLimit;
|
||||
}
|
||||
|
||||
$end = $end ? $end : Carbon::today()->addDay();
|
||||
$end = $end ? $end : Carbon::now();
|
||||
$filter = '["LoadedTime:$between$%js%\"'.$start->format('Y-m-d').'T00:00:00.000\"$and$%js%\"'.$end->format('Y-m-d').'T00:00:00.000\"\u0000"]';
|
||||
|
||||
$containersRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"LoadedTime asc","Filter":'.$filter.'}}'), '');
|
||||
|
||||
$containers = $this->fetchesDataFRomVTPortal->getResponseBody($containersRequest);
|
||||
|
||||
foreach ($containers->Rows as $container){
|
||||
$filter = '["ContainerID:=%js%'.$container[12].'"]';
|
||||
$containerDetailRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"ParcelInContainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":null,"Filter":'.$filter.'}}'), '');
|
||||
$filter = '["ContainerID:=%js%'.$container[11].'"]';
|
||||
$containerDetailRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), '');
|
||||
|
||||
$containerDetail = $this->fetchesDataFRomVTPortal->getResponseBody($containerDetailRequest);
|
||||
|
||||
$containerObject = new ContainerObject($container[0], str_replace(' ', '', $container[24]), str_replace(' ', '', $container[16]), ContainerTypes::FORTY_FEET_DRY_CONTAINER, Carbon::parse($container[6]), ApprovalStatus::PENDING_VERIFICATION);
|
||||
$containerInfo = $container;
|
||||
$containerObject = new ContainerObject($container[0], str_replace(' ', '', $container[24]), str_replace(' ', '', $container[15]), ContainerTypes::FORTY_FEET_DRY_CONTAINER, Carbon::parse($container[5]), ApprovalStatus::PENDING_VERIFICATION);
|
||||
|
||||
try {
|
||||
$container = $this->fetchesContainer->execute(['reference' => $containerObject->getReference()]);
|
||||
} catch (ResourceNotFoundException $exception){
|
||||
$warehouseId = $container[13];
|
||||
$warehouseId = $container[12];
|
||||
$originWarehouse = $this->fetchesCompanyModule->execute(['id' => $warehouseId === 11 ? 3 : 4]);
|
||||
$container = $this->createContainerProcessor->execute($containerObject, $originWarehouse);
|
||||
}
|
||||
|
||||
$eta = Carbon::parse($containerInfo[4]);
|
||||
$etd = Carbon::parse($eta)->subDays(5);
|
||||
|
||||
$delayDate = $containerInfo[7];
|
||||
|
||||
$containerStatus = $containerInfo[10];
|
||||
|
||||
$unstuffingDate = $containerInfo[8];
|
||||
|
||||
$transport = $container->transports()->first();
|
||||
|
||||
if(!$transport || $eta !== $transport->eta){
|
||||
$container->transports()->delete();
|
||||
|
||||
$transportObject = new TransportObject(TransportType::SEA, null, null, $etd, null, ApprovalStatus::APPROVED);
|
||||
/** @var Transport $transport */
|
||||
$transport = $this->createsTransport->execute($transportObject, $container);
|
||||
$this->createsSchedule->execute($transport, new ScheduleObject($etd, $eta, ApprovalStatus::APPROVED));
|
||||
}
|
||||
|
||||
if($delayDate){
|
||||
$delayDate = Carbon::parse($delayDate);
|
||||
$transport = $container->transports()->first();
|
||||
|
||||
if(!$transport->schedules()->where('eta', '=', $delayDate)->first()) {
|
||||
$etd = $transport->schedules()->where('status', '=', ApprovalStatus::APPROVED)->first()->etd;
|
||||
$transport->schedules()->update(['status' => ApprovalStatus::EXPIRED]);
|
||||
$this->createsSchedule->execute($transport, new ScheduleObject($etd, $delayDate, ApprovalStatus::APPROVED));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if($containerStatus === 'Unstuffing'){
|
||||
$container->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
$container->transports()->first()->update(['drop_date' => Carbon::parse($unstuffingDate)->subDay(), 'status' => ApprovalStatus::COMPLETED]);
|
||||
|
||||
/** @var PackingList $packingList */
|
||||
foreach($container->packingLists as $packingList){
|
||||
|
||||
if($packingList->status === ApprovalStatus::PENDING_VERIFICATION){
|
||||
$packingList->status = ApprovalStatus::APPROVED;
|
||||
$packingList->save();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
foreach($containerDetail->Rows as $packingList){
|
||||
$marking = preg_split('(-|\(|\)|\/)', str_replace("/YW","", $packingList[39]));
|
||||
$marking = preg_split('(-|\(|\)|\/)', str_replace("/YW","", $packingList[13]));
|
||||
|
||||
$orderNumber = $marking[array_key_last($marking)];
|
||||
|
||||
if(!$packingList[11]){
|
||||
if(!$packingList[22]){
|
||||
continue;
|
||||
}
|
||||
|
||||
$allow_contract = true;
|
||||
|
||||
try {
|
||||
$warehousePackingList = $this->fetchesPackingList->execute(['reference' => $packingList[3]]);
|
||||
if(!$warehousePackingList->owner instanceof Order) throw new ResourceNotFoundException;
|
||||
$order = $warehousePackingList->owner;
|
||||
} catch (ResourceNotFoundException $exception) {
|
||||
try {
|
||||
$order = $this->fetchesOrder->execute(['reference' => $orderNumber]);
|
||||
} catch (ResourceNotFoundException $exception) {
|
||||
try {
|
||||
$order = $this->fetchesOrder->execute(['reference' => substr($orderNumber, -9)]);
|
||||
} catch (ResourceNotFoundException $exception) {
|
||||
$order = $this->fetchesCompanyModule->execute(['id' => 1]);
|
||||
$allow_contract = false;
|
||||
}
|
||||
|
||||
}
|
||||
/** @var Order $order */
|
||||
$order = $this->fetchesOrder->execute(['reference' => $orderNumber]);
|
||||
} catch (ResourceNotFoundException $exception){
|
||||
continue;
|
||||
}
|
||||
|
||||
$packingListReference = $packingList[16];
|
||||
|
||||
$packingListReference = $packingList[3];
|
||||
$package = $packingList;
|
||||
$deliveryDate = $package[1] ? Carbon::parse($package[1]) : null;
|
||||
|
||||
try {
|
||||
$packingList = $this->fetchesPackingList->execute(['reference' => $packingListReference, 'type' => PackingListType::SHIPPING_PACKING_LIST]);
|
||||
try{
|
||||
$this->fetchesPackingList->execute(['reference' => $packingListReference]);
|
||||
} catch (ResourceNotFoundException $exception){
|
||||
if ($allow_contract) {
|
||||
$appointee_id = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id;
|
||||
// $contract = $this->unityCreateContract->execute();
|
||||
// $contractReference = $contract->hash_id;
|
||||
// $contractObligations = $contract->contract_obligation_list;
|
||||
//
|
||||
// $this->unityActivateContract->execute($contractReference);
|
||||
//
|
||||
// $supervisorHashId = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->unity_hash_id;
|
||||
//
|
||||
// $supervisorContractEntity = $this->unityCreateContractEntity->execute($contractReference, $supervisorHashId);
|
||||
// $order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->update(['entity_hash_id' => $supervisorContractEntity->hash_id, 'entity_signature' => $supervisorContractEntity->entity_signature_hash_id]);
|
||||
//
|
||||
// $importerContractEntity = $this->unityCreateContractEntity->execute($contractReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::IMPORTER)->first()->appointee->unity_hash_id);
|
||||
// $order->orderRoles()->where('role_id', '=', OrderRoleTypes::IMPORTER)->first()->update(['entity_hash_id' => $importerContractEntity->hash_id, 'entity_signature' => $importerContractEntity->entity_signature_hash_id]);
|
||||
//
|
||||
// $this->unityAssignContractEntity->execute($supervisorContractEntity->hash_id, $contractObligations);
|
||||
} else {
|
||||
$appointee_id = 2037;
|
||||
}
|
||||
$contract = $this->unityCreateContract->execute();
|
||||
$contractReference = $contract->hash_id;
|
||||
$contractObligations = $contract->contract_obligation_list;
|
||||
|
||||
$packingListObject = new PackingListObject($packingListReference, $appointee_id, PackingListType::SHIPPING_PACKING_LIST, ApprovalStatus::SUSPENDED, null);
|
||||
$this->unityActivateContract->execute($contractReference);
|
||||
|
||||
$supervisorHashId = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->unity_hash_id;
|
||||
|
||||
$supervisorContractEntity = $this->unityCreateContractEntity->execute($contractReference, $supervisorHashId);
|
||||
$order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->update(['entity_hash_id' => $supervisorContractEntity->hash_id, 'entity_signature' => $supervisorContractEntity->entity_signature_hash_id]);
|
||||
|
||||
$importerContractEntity = $this->unityCreateContractEntity->execute($contractReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::IMPORTER)->first()->appointee->unity_hash_id);
|
||||
$order->orderRoles()->where('role_id', '=', OrderRoleTypes::IMPORTER)->first()->update(['entity_hash_id' => $importerContractEntity->hash_id, 'entity_signature' => $importerContractEntity->entity_signature_hash_id]);
|
||||
|
||||
$this->unityAssignContractEntity->execute($supervisorContractEntity->hash_id, $contractObligations);
|
||||
|
||||
$connection = $order->companyModule->connections()->first();
|
||||
$marking = $connection->invitee_reference;
|
||||
|
||||
$packingListObject = new PackingListObject($packingListReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id, PackingListType::SHIPPING_PACKING_LIST, ApprovalStatus::SUSPENDED, $contractReference);
|
||||
|
||||
/** @var PackingList $packingList */
|
||||
$packingList = $this->createPackingListProcessor->execute($packingListObject, $order);
|
||||
}
|
||||
$container->packingLists()->attach($packingList);
|
||||
|
||||
$container->packingLists()->detach($packingList);
|
||||
$container->packingLists()->attach($packingList);
|
||||
$packingList->packages()->delete();
|
||||
|
||||
$replica = $packingList->packingLists()->where('type', PackingListType::SHIPPING_PACKING_LIST_REPLICA)->first();
|
||||
if($replica) $replica->packages()->delete();
|
||||
|
||||
$packageObject = new PackageObject(PackageType::CARTON, $package[8], $package[21], $package[22], $package[20], 0, $package[11], ApprovalStatus::APPROVED);
|
||||
$this->createPackageProcessor->execute($packageObject, $packingList);
|
||||
if($containerStatus === 'Unstuffing'){
|
||||
$packingList->transports()->delete();
|
||||
|
||||
if($deliveryDate) {
|
||||
// && !$packingList->transports()->exists()
|
||||
$packingList->status = ApprovalStatus::COMPLETED;
|
||||
$packingList->save();
|
||||
|
||||
$transportObject = new TransportObject(TransportType::LAND, null, null, $deliveryDate, $deliveryDate, ApprovalStatus::APPROVED);
|
||||
/** @var Transport $transport */
|
||||
$transport = $this->createsTransport->execute($transportObject, $packingList);
|
||||
$this->createsSchedule->execute($transport, new ScheduleObject($deliveryDate, $deliveryDate, ApprovalStatus::APPROVED));
|
||||
foreach($contractObligations as $obligation) {
|
||||
$stepObject = new StepsObject($order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->id, $obligation->reference, $obligation->sequence, $obligation->hash_id);
|
||||
$this->createsStep->execute($packingList, $stepObject);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -304,6 +217,8 @@ class FetchLoadedContainersFromVTPortalProcessor
|
||||
Log::error($exception);
|
||||
}
|
||||
|
||||
|
||||
DB::commit();
|
||||
return [];
|
||||
|
||||
}
|
||||
|
||||
+17
-41
@@ -132,12 +132,11 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
* @param Carbon|null $start
|
||||
* @param Carbon|null $end
|
||||
* @return void
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public function execute(?Carbon $start = null, ?Carbon $end = null)
|
||||
{
|
||||
try {
|
||||
$start = $start ? $start : Carbon::today()->subMonths(1);
|
||||
$start = $start ? $start : Carbon::now()->subMonths(2);
|
||||
|
||||
$startLimit = Carbon::parse('01-12-2021');
|
||||
|
||||
@@ -145,7 +144,7 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
$start = $startLimit;
|
||||
}
|
||||
|
||||
$end = $end ? $end : Carbon::today()->addDay();
|
||||
$end = $end ? $end : Carbon::now();
|
||||
|
||||
$orderRequest = $this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/GetOrderList.ashx', 'GET', [
|
||||
'begintime' => $start->timestamp,
|
||||
@@ -155,7 +154,6 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
$rows = $this->fetchesDataFRomYDPortal->getResponseBody($orderRequest);
|
||||
|
||||
foreach($rows->data as $row){
|
||||
|
||||
$containerReference = null;
|
||||
$loadingDate = null;
|
||||
$unstuffingDate = null;
|
||||
@@ -171,6 +169,7 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
$rows = $this->fetchesDataFRomYDPortal->getResponseBody($trackingRequest);
|
||||
|
||||
if(!$rows){
|
||||
Log::debug($row->expressno);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -203,7 +202,6 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
}
|
||||
|
||||
$rescheduleDate = $dates->sortDesc()->first();
|
||||
|
||||
if(!$delayDate || $rescheduleDate > $delayDate){
|
||||
/** @var Carbon $delayDate */
|
||||
$delayDate = $rescheduleDate;
|
||||
@@ -215,38 +213,20 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
|
||||
}
|
||||
|
||||
if ($trackingRow->tracking === '到港') {
|
||||
$delayDate = Carbon::parse($trackingRow->trackingtime);
|
||||
}
|
||||
|
||||
if ($trackingRow->tracking === '已开船') {
|
||||
$delayDate = Carbon::parse($trackingRow->trackingtime)->addDays('5');
|
||||
}
|
||||
|
||||
|
||||
if ($trackingRow->tracking === '货物已进目的港仓库') {
|
||||
$unstuffingDate = Carbon::parse($trackingRow->trackingtime);
|
||||
}
|
||||
|
||||
if (Str::contains($trackingRow->tracking, ['派送中', '签收完成', ' 第三方提货', '货物已派送完成'])) {
|
||||
if (Str::contains($trackingRow->tracking, ['派送中'])) {
|
||||
$deliveryDate = Carbon::parse($trackingRow->trackingtime);
|
||||
}
|
||||
}
|
||||
|
||||
$client = new \GuzzleHttp\Client(['cookies' => true, 'headers' => ['Cookie' => 'utc_offset=480']]);
|
||||
|
||||
$request = $client->request('get', 'https://main.universe.com.my/Tracking/User/Paging?sEcho=1&sTrackingNo='.$row->expressno.'&sOrgId=sti');
|
||||
$deliveryTracking = json_decode($request->getBody()->getContents());
|
||||
foreach (array_reverse($deliveryTracking->aaData) as $trackingRow) {
|
||||
$trackingDate = Carbon::createFromFormat('d/m/y H:i', $trackingRow->LocalDateTime);
|
||||
if (Str::contains($trackingRow->PublicDescription, ['accepted/picked'])){
|
||||
$unstuffingDate = $trackingDate;
|
||||
}
|
||||
|
||||
if (Str::contains($trackingRow->PublicDescription, ['delivered'])) {
|
||||
$deliveryDate = $trackingDate;
|
||||
}
|
||||
}
|
||||
|
||||
$customerno = preg_split('(-|\(|\)|\/)', $row->customerno);
|
||||
|
||||
$orderNumber = $customerno[array_key_last($customerno)];
|
||||
@@ -264,6 +244,8 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
|
||||
$packingListReference = $row->expressno;
|
||||
|
||||
try{
|
||||
@@ -351,7 +333,7 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
|
||||
if($order instanceof Order){
|
||||
$marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference;
|
||||
if(!in_array($marking, ['2192KAA', '2353GFE', '6866DTR', '153DSR', '1291NSC', '8288MIB', '1152AAT', '962LOW', '3992WHE', '1290CSW', '9493TYS', '3397GSH'])){
|
||||
if(!in_array($marking, ['2192KAA', '2353GFE', '6866DTR', '153DSR', '1291NSC', '8288MIB'])){
|
||||
$this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/confirmsendorder.ashx', 'GET', [
|
||||
'expressno' => $row->expressno
|
||||
]);
|
||||
@@ -416,14 +398,11 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
$packingList->save();
|
||||
}
|
||||
|
||||
if ($allow_contract) {
|
||||
$signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture;
|
||||
foreach($packingList->steps()->where('reference', '!=', 'DELIVERY')->get() as $step){
|
||||
$this->updatesContractObligations->execute($signature, $step->obligation_hash_id);
|
||||
$step->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
}
|
||||
$signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture;
|
||||
foreach($packingList->steps()->where('reference', '!=', 'DELIVERY')->get() as $step){
|
||||
$this->updatesContractObligations->execute($signature, $step->obligation_hash_id);
|
||||
$step->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -438,16 +417,13 @@ class FetchOrderListsFromYdPortalProcessor
|
||||
$transport = $this->createsTransport->execute($transportObject, $packingList);
|
||||
$this->createsSchedule->execute($transport, new ScheduleObject($deliveryDate, $deliveryDate, ApprovalStatus::APPROVED));
|
||||
|
||||
|
||||
if ($allow_contract) {
|
||||
$deliveryStep = $packingList->steps()->where('reference', '=', 'LAST_MILE_DELIVERY')->first();
|
||||
$signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture;
|
||||
$this->updatesContractObligations->execute($signature, $deliveryStep->obligation_hash_id);
|
||||
$deliveryStep->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
}
|
||||
|
||||
$deliveryStep = $packingList->steps()->where('reference', '=', 'LAST_MILE_DELIVERY')->first();
|
||||
$signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture;
|
||||
$this->updatesContractObligations->execute($signature, $deliveryStep->obligation_hash_id);
|
||||
$deliveryStep->update(['status' => ApprovalStatus::COMPLETED]);
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
echo 'successful';
|
||||
|
||||
}
|
||||
|
||||
+19
-9
@@ -46,32 +46,42 @@ class FetchPackingListFromVTPortalProcessor
|
||||
*/
|
||||
public function execute(){
|
||||
|
||||
$packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST)->where('reference', 'not like', '%PO%')->whereIn('claimant_id', [2])->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::SUSPENDED])->whereDoesntHave('containers', function($query){
|
||||
$packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::SUSPENDED])->whereDoesntHave('containers', function($query){
|
||||
$query->where('status', '=', ApprovalStatus::COMPLETED);
|
||||
})->limit(10)->get();
|
||||
})->get();
|
||||
|
||||
DB::beginTransaction();
|
||||
foreach($packingLists as $packingList){
|
||||
try {
|
||||
|
||||
$filter = '["PoID:=%js%'.$packingList->reference.'"]';
|
||||
|
||||
$shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"Po","view":"grid1","request":{"PageIndex":-1,"PageSize":1000,"Filter":'.$filter.'}}'), '');
|
||||
$filter = '["PoNumber:=%js%\"'.$packingList->reference.'\"\u0000"]';
|
||||
|
||||
$shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), '');
|
||||
|
||||
$shippingPackingLists = $this->fetchesDataFRomVTPortal->getResponseBody($shippingPackingListsRequest);
|
||||
|
||||
if(count($shippingPackingLists->Rows)) {
|
||||
$packingList->packages()->delete();
|
||||
|
||||
} else {
|
||||
dump($packingList->reference);
|
||||
$replica = $packingList->packingLists()->where('type', PackingListType::SHIPPING_PACKING_LIST_REPLICA)->first();
|
||||
if($replica) $replica->packages()->delete();
|
||||
|
||||
foreach($shippingPackingLists->Rows as $shippingPackingList){
|
||||
if(!$shippingPackingList[22]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$packageObject = new PackageObject(PackageType::CARTON, $shippingPackingList[19], $shippingPackingList[31], $shippingPackingList[30], $shippingPackingList[29], 0, $shippingPackingList[22], ApprovalStatus::APPROVED);
|
||||
$this->createPackageProcessor->execute($packageObject, $packingList);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (GuzzleException $exception) {
|
||||
dd($exception);
|
||||
Log::error($exception);
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
DB::commit();
|
||||
|
||||
return [];
|
||||
|
||||
|
||||
+53
-17
@@ -116,7 +116,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
|
||||
|
||||
try {
|
||||
|
||||
$start = $start ? $start : Carbon::today()->subDays(5);
|
||||
$start = $start ? $start : Carbon::now()->subMonth();
|
||||
|
||||
$startLimit = Carbon::parse('11-08-2021');
|
||||
|
||||
@@ -124,40 +124,76 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
|
||||
$start = $startLimit;
|
||||
}
|
||||
|
||||
$end = $end ? $end : Carbon::today()->addDay();
|
||||
$end = $end ? $end : Carbon::now();
|
||||
|
||||
$filter = '["ParcelDate:$between$%js%\"'.$start->format('Y-m-d').'T00:00:00.000\"$and$%js%\"'.$end->format('Y-m-d').'T00:00:00.000\"\u0000"]';
|
||||
|
||||
$warehouseListRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"Parcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ParcelDate asc","Filter":'.$filter.'}}'), '');
|
||||
$warehouseListRequest = $this->fetchesDataFRomVTPortal->clientRequest('http://portal.vtnation.com.my/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ParcelDate asc","Filter":'.$filter.'}}'), '');
|
||||
|
||||
$response = $this->fetchesDataFRomVTPortal->getResponseBody($warehouseListRequest);
|
||||
|
||||
foreach ($response->Rows as $parcel){
|
||||
$allow_contract = true;
|
||||
$marking = preg_split('(-|\(|\)|\/)', str_replace("/YW","", $parcel[11]));
|
||||
|
||||
$marking = preg_split('(-|\(|\)|\/)', str_replace("/YW","", $parcel[5]));
|
||||
$orderNumber = $marking[array_key_last($marking)];
|
||||
|
||||
$quantity = $parcel[16];
|
||||
if(!$quantity){
|
||||
if(!$parcel[9]){
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
$order = $this->fetchesOrder->execute(['reference' => $orderNumber]);
|
||||
$appointee_id = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id;
|
||||
} catch (ResourceNotFoundException $exception) {
|
||||
$allow_contract = false;
|
||||
$order = $this->fetchesCompanyModule->execute(['id' => 1]);
|
||||
$appointee_id = 2037;
|
||||
|
||||
$oldOrder = OldOrders::where('marking', '=', $orderNumber)->first();
|
||||
|
||||
if(!$oldOrder){
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$customerMarking = str_replace('/', '', str_replace(' ', '', explode('CIEF/', $oldOrder->company->marking)[1]));
|
||||
|
||||
$companyModule = CompanyModule::whereHas('inviters', function($query) use ($customerMarking) {
|
||||
return $query->where('invitee_reference', '=', $customerMarking);
|
||||
})->first();
|
||||
|
||||
|
||||
if(!$companyModule){
|
||||
log::error('unknown customer: '.$customerMarking);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!$oldOrder->address) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/** @var Address $address */
|
||||
$address = $this->createAddressFromOldAddressProcessor->execute($oldOrder->address, $companyModule);
|
||||
|
||||
if(!$address){
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$warehouseId = $parcel[0];
|
||||
$originWarehouse = $this->fetchesCompanyModule->execute(['id' => $warehouseId === 11 ? 3 : 4]);
|
||||
|
||||
$order = $this->createOrderProcessor->execute($companyModule->company, $originWarehouse, $address, $orderNumber);
|
||||
|
||||
$order->created_at = Carbon::parse($parcel[1]);
|
||||
$order->save();
|
||||
|
||||
}
|
||||
|
||||
$packingListReference = $parcel[0];
|
||||
// $measurement = round(($parcel[10]/$quantity) ** (1/3) * 100, 2);
|
||||
$description = $parcel[13];
|
||||
$tracking = $parcel[37];
|
||||
$packingListReference = $parcel[17];
|
||||
$quantity = $parcel[9];
|
||||
$measurement = round(($parcel[10]/$quantity) ** (1/3) * 100, 2);
|
||||
$description = $parcel[7];
|
||||
$tracking = $parcel[6];
|
||||
$receiveDate = $parcel[1];
|
||||
|
||||
$packingListObject = new PackingListObject($packingListReference, $appointee_id, PackingListType::WAREHOUSE_RECEIVE_LIST, $allow_contract ? ApprovalStatus::APPROVED : ApprovalStatus::REJECTED);
|
||||
$packingListObject = new PackingListObject($packingListReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee->id, PackingListType::WAREHOUSE_RECEIVE_LIST, ApprovalStatus::APPROVED);
|
||||
|
||||
/** @var PackingList $packingList */
|
||||
$packingList = $order->packingLists()->where('reference', '=', $packingListReference)->first();
|
||||
@@ -180,7 +216,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
|
||||
$packingList->packages()->delete();
|
||||
if($replica) $replica->packages()->delete();
|
||||
|
||||
$packageObject = new PackageObject(PackageType::CARTON, $description, $parcel[23], $parcel[22], $parcel[21], 0, $quantity, ApprovalStatus::APPROVED);
|
||||
$packageObject = new PackageObject(PackageType::CARTON, $description, $measurement, $measurement, $measurement, 0, $quantity, ApprovalStatus::APPROVED);
|
||||
$this->createPackageProcessor->execute($packageObject, $packingList);
|
||||
}
|
||||
} catch (\Exception $exception){
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Segments\ControllersLogic;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Segments\Services\ListsSegments;
|
||||
use App\Http\Resources\AirShipmentItemPriceResource;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ListAirShipmentPriceLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Retrieved Air Shipment Price List',
|
||||
'message' => 'You have successfully retrieved a list of Air Shipment Price'
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/** @var ListsSegments */
|
||||
private $listsSegments;
|
||||
|
||||
/**
|
||||
* ListSegmentLogic constructor.
|
||||
* @param ListsSegments $listsSegments
|
||||
*/
|
||||
public function __construct(ListsSegments $listsSegments)
|
||||
{
|
||||
$this->listsSegments = $listsSegments;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
|
||||
// $query = $this->listsSegments->execute($this->listsSegments->deserializeFilters($request->input('filters')));
|
||||
|
||||
// category - Dimension / perKg
|
||||
$price = array(
|
||||
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Sound system speakers - MINI',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '50',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Sound system speakers - SMALL',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '200',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Sound system speakers - LARGE',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '400',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Washing Machine - Dimension',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => 'true',
|
||||
'tax' => '',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Oven, Balnder - perPcs',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '20',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Perfume - perKg',
|
||||
'pricePerKg' => '33',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Gold - Prohibited',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => 'true',
|
||||
'hasGram' => '',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'Food - hasGram',
|
||||
'pricePerKg' => '',
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => 'true',
|
||||
'hasDimensionCharges' => '',
|
||||
'tax' => '',
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'TV 30" - 36"',
|
||||
'pricePerKg' => 28,
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => 'true',
|
||||
'hasDimensionCharges' => "true",
|
||||
'tax' => 500,
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'TV 37" - 42"',
|
||||
'pricePerKg' => 28,
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => 'true',
|
||||
'hasDimensionCharges' => "true",
|
||||
'tax' => 1000,
|
||||
])
|
||||
],
|
||||
[
|
||||
'details' => json_encode([
|
||||
'name' => 'TV 43"+"',
|
||||
'pricePerKg' => 28,
|
||||
'pricePerPcs' => '',
|
||||
'isProhibited' => '',
|
||||
'hasGram' => 'true',
|
||||
'hasDimensionCharges' => "true",
|
||||
'tax' => 1500,
|
||||
])
|
||||
]
|
||||
);
|
||||
|
||||
return $this->collectionResponse(AirShipmentItemPriceResource::collection($price));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -102,7 +102,7 @@ class UpdateConstantLogic extends AbstractControllerLogic
|
||||
|
||||
$constant = $this->fetchesConstant->execute(['segment_id' => $segment->id, 'reference' => $request->input('reference')]);
|
||||
|
||||
$constantValue = $this->updatesConstantValue->execute($constant->value, $request->input('id'), $request->input('value'));
|
||||
$constantValue = $this->updatesConstantValue->execute($constant->value, $request->input('id'), $request->input('rate'));
|
||||
|
||||
$object = new ConstantObject($request->input('reference'), $constantValue);
|
||||
|
||||
@@ -112,7 +112,7 @@ class UpdateConstantLogic extends AbstractControllerLogic
|
||||
|
||||
$constantObject = [];
|
||||
|
||||
$constantObject[$request->input('id')] = $request->input('value');
|
||||
$constantObject[$request->input('id')] = $request->input('rate');
|
||||
|
||||
$object = new ConstantObject(
|
||||
$request->input('reference'),
|
||||
|
||||
@@ -7,9 +7,9 @@ class UpdatesConstantValue
|
||||
|
||||
/**
|
||||
* @param $json
|
||||
* @param int $state_id
|
||||
* @param array $rate
|
||||
* @return array
|
||||
* @param int $status_id
|
||||
* @param Array $rate
|
||||
* @return Array
|
||||
*/
|
||||
public function execute($json, int $state_id, Array $rate) {
|
||||
|
||||
|
||||
-94
@@ -1,94 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Meneses\LaravelMpdf\Facades\LaravelMpdf;
|
||||
use App\Classes\ValueObjects\Constants\DocumentType;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Classes\Modules\Documents\Services\CreatesFiles;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
|
||||
use App\Classes\Modules\Transactions\ControllersLogic\Document;
|
||||
|
||||
class ApproveShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Shipping Invoice Status',
|
||||
'message' => 'You have successfully updated the shipping invoice status'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var FetchesPackingList */
|
||||
private $fetchesPackingList;
|
||||
|
||||
/** @var UpdatesTransactionStatus */
|
||||
private $updatesTransactionStatus;
|
||||
|
||||
/** @var CreatesDocument */
|
||||
private $createsDocument;
|
||||
|
||||
/** @var CreatesFiles */
|
||||
private $createsFiles;
|
||||
|
||||
/**
|
||||
* ApprovePaymentVerificationLogic constructor.
|
||||
* @param FetchesPackingList $fetchesPackingList
|
||||
* @param UpdatesTransactionStatus $updatesTransactionStatus
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param CreatesFiles $createsFiles
|
||||
* @param CreateInvoiceTransactionProcessor $createInvoiceTransactionProcessor
|
||||
*/
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, UpdatesTransactionStatus $updatesTransactionStatus, CreatesDocument $createsDocument, CreatesFiles $createsFiles)
|
||||
{
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
$this->updatesTransactionStatus = $updatesTransactionStatus;
|
||||
$this->createsDocument = $createsDocument;
|
||||
$this->createsFiles = $createsFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$packing_list = $this->fetchesPackingList->execute(['id' => $request->route('id')]);
|
||||
|
||||
$invoice_transaction = $packing_list->transactions->where('type', TransactionType::SHIPPING_INVOICE)->first();
|
||||
|
||||
$this->updatesTransactionStatus->execute($invoice_transaction, ApprovalStatus::APPROVED);
|
||||
|
||||
$transaction_invoice_pdf = LaravelMpdf::loadView('pages.pdfs.shipping_invoice', ['invoice_transaction' => $invoice_transaction]);
|
||||
|
||||
$document_object = new DocumentObject(
|
||||
DocumentType::SHIPPING_INVOICE,
|
||||
[chunk_split('data:application/pdf;base64,'.base64_encode($transaction_invoice_pdf->output()))],
|
||||
'',
|
||||
ApprovalStatus::COMPLETED,
|
||||
'shipping_invoice'
|
||||
);
|
||||
|
||||
/** @var Document $document */
|
||||
$document = $this->createsDocument->execute($invoice_transaction, $document_object);
|
||||
|
||||
$this->createsFiles->execute($document, $document_object);
|
||||
|
||||
return $this->response([]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -84,11 +84,8 @@ class CreatePaymentTransactionLogic extends AbstractControllerLogic
|
||||
$billPlzBill = $this->createsBillplzBill->execute(
|
||||
$company_module->name,
|
||||
$company_module->employees()->first()->email,
|
||||
'This payment is for the invoice number . ' . $invoice_transaction->bill_no,
|
||||
$amount,
|
||||
$billNumber,
|
||||
$request->input('bank_code'),
|
||||
true
|
||||
'This payment is credit topup for company ref. ' . $company_module->reference, $amount, $billNumber,
|
||||
$request->input('bank_code'), true
|
||||
);
|
||||
|
||||
$payment_reference = $billPlzBill->id;
|
||||
|
||||
+39
-49
@@ -6,8 +6,6 @@ namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\SegmentConstants\Services\FetchesSegmentConstant;
|
||||
use App\Classes\Modules\Segments\Services\ListsConstants;
|
||||
use App\Classes\Modules\Segments\Services\ListsSegments;
|
||||
use App\Classes\Modules\Transactions\Services\GeneratesTransactionBillNumber;
|
||||
use App\Classes\Modules\Transactions\Services\CreatesTransaction;
|
||||
use App\Classes\Modules\Transactions\Services\CreatesTransactionDetail;
|
||||
@@ -26,9 +24,7 @@ use App\Classes\ValueObjects\Constants\PackageType;
|
||||
use App\Classes\ValueObjects\Constants\SegmentConstants;
|
||||
use App\Classes\ValueObjects\Constants\TransactionDetailType;
|
||||
|
||||
use App\Http\Resources\PackingListResource;
|
||||
use App\Models\Document;
|
||||
use App\Models\PackingList;
|
||||
use App\Models\Transaction;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -40,6 +36,7 @@ use Meneses\LaravelMpdf\Facades\LaravelMpdf;
|
||||
class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
@@ -56,9 +53,6 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
/** @var FetchesSegmentConstant */
|
||||
private $fetchesSegmentConstant;
|
||||
|
||||
/** @var ListsConstants */
|
||||
private $listsConstants;
|
||||
|
||||
/** @var GeneratesTransactionBillNumber */
|
||||
private $generatesTransactionBillNumber;
|
||||
|
||||
@@ -73,24 +67,20 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
|
||||
/** @var CreatesFiles */
|
||||
private $createsFile;
|
||||
|
||||
|
||||
/**
|
||||
* CreateShippingInvoiceTransactionLogic constructor.
|
||||
* @param FetchesPackingList $fetchesPackingList
|
||||
* @param FetchesSegmentConstant $fetchesSegmentConstant
|
||||
* @param ListsConstants $listsConstants
|
||||
* @param GeneratesTransactionBillNumber $generatesTransactionBillNumber
|
||||
* @param CreatesTransaction $createsTransaction
|
||||
* @param CreatesTransactionDetail $createsTransactionDetail
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param CreatesFiles $createsFile
|
||||
*/
|
||||
public function __construct(FetchesPackingList $fetchesPackingList, FetchesSegmentConstant $fetchesSegmentConstant, ListsConstants $listsConstants, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, CreatesTransactionDetail $createsTransactionDetail, CreatesDocument $createsDocument, CreatesFiles $createsFile)
|
||||
|
||||
public function __construct(
|
||||
FetchesPackingList $fetchesPackingList,
|
||||
FetchesSegmentConstant $fetchesSegmentConstant,
|
||||
GeneratesTransactionBillNumber $generatesTransactionBillNumber,
|
||||
CreatesTransaction $createsTransaction,
|
||||
CreatesTransactionDetail $createsTransactionDetail,
|
||||
CreatesDocument $createsDocument,
|
||||
CreatesFiles $createsFile
|
||||
)
|
||||
{
|
||||
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
$this->fetchesSegmentConstant = $fetchesSegmentConstant;
|
||||
$this->listsConstants = $listsConstants;
|
||||
$this->generatesTransactionBillNumber = $generatesTransactionBillNumber;
|
||||
$this->createsTransaction = $createsTransaction;
|
||||
$this->createsTransactionDetail = $createsTransactionDetail;
|
||||
@@ -98,7 +88,6 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
$this->createsFile = $createsFile;
|
||||
}
|
||||
|
||||
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$packing_list = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]);
|
||||
@@ -111,33 +100,22 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
return ($package->width / 100) * ($package->height / 100) *($package->length / 100) * ($package->quantity);
|
||||
});
|
||||
|
||||
$minimum_charges = ($cbm + $over_weight_cbm) < 0.3 ? (0.3 - ($cbm + $over_weight_cbm)) : 0;
|
||||
|
||||
$order = $packing_list->owner;
|
||||
$address = $order->addresses()->first();
|
||||
|
||||
$segments = $order->companyModule->connections->first()->segments->pluck('id');
|
||||
|
||||
$segment_price = 0;
|
||||
$base_price_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::BASE_PRICE]);
|
||||
|
||||
if(count($segments)){
|
||||
$segment_price_constants = $this->listsConstants->execute(['segment_id_in' => $segments, 'reference' => SegmentConstants::CUSTOM_PRICE]);
|
||||
$segment_price_constant = $segment_price_constants->sortBy(function ($constant){
|
||||
return $constant->value[0];
|
||||
})->first();
|
||||
$segment_price = $segment_price_constant->value[0];
|
||||
|
||||
}
|
||||
|
||||
$warehouse_rate_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::WAREHOUSE_RATE]);
|
||||
$state_rate_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::STATE_RATE]);
|
||||
$center_postcode_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::CENTER_POSTCODE]);
|
||||
$outstation_postcode_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::OUTSTATION_POSTCODE]);
|
||||
|
||||
$base_price = 0;
|
||||
$warehouse_rate = 0;
|
||||
$state_rate = 0;
|
||||
$state_select = '';
|
||||
|
||||
$packing_list_drop_date = Carbon::parse(PackingList::where('reference', $packing_list->reference)->where('type', 1)->first()->transports->first()->drop_date)->format('Y-m-d');
|
||||
$base_price = $this->getConstantByKey($base_price_constant, $packing_list_drop_date);
|
||||
$base_price = $this->getConstantByKey($base_price_constant, date('Y-m-d'));
|
||||
|
||||
$warehouseId = $order->orderRoles()->where('role_id', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->company_module_id;
|
||||
$selected_warehouse_rate = $this->getConstantByKey($warehouse_rate_constant, $warehouseId);
|
||||
$warehouse_rate = is_object($selected_warehouse_rate) ? $selected_warehouse_rate->amount : 0;
|
||||
@@ -150,15 +128,12 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
$this->checkPostcodeExistInConstant($center_postcode_constant, $postcode) === true ? $state_select = 'center' : '' ;
|
||||
$this->checkPostcodeExistInConstant($outstation_postcode_constant, $postcode) === true ? $state_select = 'outstation' : '' ;
|
||||
$state_rate_constant = (array)$state_rate_constant;
|
||||
$state_rate = $state_select == '' ? 0 : $state_rate_constant['center'] + ($state_select === 'outstation' ? $state_rate_constant['outstation'] : 0);
|
||||
|
||||
$price_cbm = $base_price + $segment_price + $warehouse_rate + $state_rate;
|
||||
$state_rate = $state_select == '' ? 0 : $state_rate_constant[$state_select];
|
||||
|
||||
$price_cbm = $base_price + $warehouse_rate + $state_rate;
|
||||
$total_cbm = $price_cbm * ($cbm + $over_weight_cbm);
|
||||
|
||||
|
||||
|
||||
$billNumber = $this->generatesTransactionBillNumber->execute('SI-');
|
||||
$billNumber = $this->generatesTransactionBillNumber->execute('SHIP-');
|
||||
|
||||
$object = new TransactionObject(
|
||||
$billNumber,
|
||||
@@ -175,7 +150,7 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
ApprovalStatus::PENDING_SUBMISSION
|
||||
ApprovalStatus::PENDING_VERIFICATION
|
||||
);
|
||||
|
||||
/** @var Transaction $invoice_transaction */
|
||||
@@ -183,7 +158,7 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
|
||||
$object_detail = new TransactionDetailObject(
|
||||
'SHIPPING_FEE',
|
||||
TransactionDetailType::SHIPPING_FEE.'<br>'.round($packing_list->packages->sum('quantity'), 3).' CTNS - '.$cbm.' CBM',
|
||||
TransactionDetailType::SHIPPING_FEE,
|
||||
$cbm,
|
||||
$price_cbm
|
||||
);
|
||||
@@ -201,7 +176,22 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
$this->createsTransactionDetail->execute($invoice_transaction, $object_detail);
|
||||
}
|
||||
|
||||
return $this->resourceResponse(new PackingListResource($packing_list));
|
||||
$transaction_invoice_pdf = LaravelMpdf::loadView('pages.pdfs.shipping_invoice', ['invoice_transaction' => $invoice_transaction]);
|
||||
|
||||
$document_object = new DocumentObject(
|
||||
DocumentType::SHIPPING_INVOICE,
|
||||
[chunk_split('data:application/pdf;base64,'.base64_encode($transaction_invoice_pdf->output()))],
|
||||
'',
|
||||
ApprovalStatus::COMPLETED,
|
||||
'shipping_invoice'
|
||||
);
|
||||
|
||||
/** @var Document $document */
|
||||
$document = $this->createsDocument->execute($invoice_transaction, $document_object);
|
||||
|
||||
$this->createsFile->execute($document, $document_object);
|
||||
|
||||
return $this->response([]);
|
||||
}
|
||||
|
||||
function getConstantByKey($segmentConstantObject, $key) {
|
||||
|
||||
-92
@@ -1,92 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\SegmentConstants\Services\FetchesSegmentConstant;
|
||||
use App\Classes\ValueObjects\Constants\SegmentConstants;
|
||||
|
||||
use App\Models\District;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Classes\General\Helper;
|
||||
|
||||
class ShippingEstimationCalculatorLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
/** @var FetchesSegmentConstant */
|
||||
private $fetchesSegmentConstant;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Shipping estimation',
|
||||
'message' => 'You have successfully calculate the Shipping Estimation'
|
||||
];
|
||||
}
|
||||
|
||||
public function __construct(
|
||||
FetchesSegmentConstant $fetchesSegmentConstant
|
||||
){
|
||||
$this->fetchesSegmentConstant = $fetchesSegmentConstant;
|
||||
}
|
||||
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$base_price = $warehouse_rate = $state_rate = 0;
|
||||
|
||||
$width = $request->input('width') / 100; // metre
|
||||
$length = $request->input('length') / 100; // metre
|
||||
$height = $request->input('height') / 100; // metre
|
||||
|
||||
$cbm = (float) ($width * $length * $height);
|
||||
|
||||
// calculate base price
|
||||
$base_prices = $this->getSegmentConstantData(SegmentConstants::BASE_PRICE);
|
||||
$base_price = $this->getConstantDataUsingKey($base_prices, date('Y-m-d'));
|
||||
|
||||
// calculate warehouse rate
|
||||
$warehouse_prices = $this->getSegmentConstantData(SegmentConstants::WAREHOUSE_RATE);
|
||||
$warehouse_rate = $this->getConstantDataUsingKey($warehouse_prices, $request->input('warehouse_id'), 'amount');
|
||||
|
||||
// calculate applied state rate
|
||||
$state_prices = $this->getSegmentConstantData(SegmentConstants::STATE_RATE);
|
||||
$outstation_postcodes = $this->getSegmentConstantData(SegmentConstants::OUTSTATION_POSTCODE);
|
||||
|
||||
$district = District::where('postcode','LIKE','%'.$request->input('postcode').'%')->first();
|
||||
if(array_search($request->input('postcode'), $outstation_postcodes)!==false){
|
||||
$state_rate = $this->getConstantDataUsingKey($state_prices, $district->state_id, 'outstation');
|
||||
}
|
||||
|
||||
$price_cbm = $base_price + $warehouse_rate + $state_rate;
|
||||
$total_price_cbm = $price_cbm * $cbm;
|
||||
|
||||
return $this->response([
|
||||
'cbm' => $cbm, 'base_price' => $base_price, 'warehouse_rate' => $warehouse_rate,
|
||||
'state_rate' => $state_rate, 'total_price_cbm' => $total_price_cbm
|
||||
]);
|
||||
}
|
||||
|
||||
private function getConstantDataUsingKey($data, $search_key, $field='')
|
||||
{
|
||||
if(array_key_exists($search_key, $data) !== true) {
|
||||
return 0;
|
||||
} else {
|
||||
if($field!=''){
|
||||
return $data[$search_key]->$field;
|
||||
} else {
|
||||
return $data[$search_key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function getSegmentConstantData($reference)
|
||||
{
|
||||
$data = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => $reference]);
|
||||
return (array) $data->value;
|
||||
}
|
||||
|
||||
}
|
||||
-149
@@ -1,149 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||
|
||||
use App\Models\Transaction;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Meneses\LaravelMpdf\Facades\LaravelMpdf;
|
||||
use App\Classes\ValueObjects\Constants\DocumentType;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Classes\ValueObjects\Constants\PaymentMethodType;
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\ValueObjects\Constants\TransactionDetailType;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\FileObject;
|
||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||
use App\Classes\Modules\Transactions\Services\UpdatesTransaction;
|
||||
|
||||
use App\Classes\Modules\Transactions\Services\CreatesTransactionDetail;
|
||||
use App\Classes\Modules\Transactions\Services\FetchesTransactionDetail;
|
||||
use App\Classes\Modules\Transactions\Services\UpdatesTransactionDetail;
|
||||
use App\Classes\Modules\Transactions\Services\DeletesTransactionDetails;
|
||||
use App\Classes\Modules\Transactions\DataTransferObjects\TransactionObject;
|
||||
use App\Classes\Modules\Transactions\DataTransferObjects\TransactionDetailObject;
|
||||
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
|
||||
|
||||
class UpdateShippingInvoiceTransactionLogic extends AbstractControllerLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Update Shipping Invoice Transaction',
|
||||
'message' => 'You have successfully update shipping invoice transaction'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var FetchesPackingList */
|
||||
private $fetchesPackingList;
|
||||
|
||||
/** @var FetchesTransaction */
|
||||
private $fetchesTransaction;
|
||||
|
||||
/** @var UpdatesTransaction */
|
||||
private $updatesTransaction;
|
||||
|
||||
/** @var FetchesTransactionDetail */
|
||||
private $fetchesTransactionDetail;
|
||||
|
||||
/** @var CreatesTransactionDetail */
|
||||
private $createsTransactionDetail;
|
||||
|
||||
/** @var UpdatesTransactionDetail */
|
||||
private $updatesTransactionDetail;
|
||||
|
||||
/** @var DeletesTransactionDetails */
|
||||
private $deletesTransactionDetails;
|
||||
|
||||
public function __construct(
|
||||
FetchesPackingList $fetchesPackingList,
|
||||
FetchesTransaction $fetchesTransaction,
|
||||
UpdatesTransaction $updatesTransaction,
|
||||
FetchesTransactionDetail $fetchesTransactionDetail,
|
||||
CreatesTransactionDetail $createsTransactionDetail,
|
||||
UpdatesTransactionDetail $updatesTransactionDetail,
|
||||
DeletesTransactionDetails $deletesTransactionDetails
|
||||
)
|
||||
{
|
||||
|
||||
$this->fetchesPackingList = $fetchesPackingList;
|
||||
$this->fetchesTransaction = $fetchesTransaction;
|
||||
$this->updatesTransaction = $updatesTransaction;
|
||||
$this->fetchesTransactionDetail = $fetchesTransactionDetail;
|
||||
$this->createsTransactionDetail = $createsTransactionDetail;
|
||||
$this->updatesTransactionDetail = $updatesTransactionDetail;
|
||||
$this->deletesTransactionDetails = $deletesTransactionDetails;
|
||||
}
|
||||
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
$invoice_transaction = $this->fetchesTransaction->execute(['id' => $request->route('id')]);
|
||||
|
||||
$old_transaction_details = $invoice_transaction->transactionDetails->whereNotIn('reference', ['SHIPPING_FEE', 'OVER_WEIGHT_CHARGES'])->pluck('id')->toArray();
|
||||
|
||||
$new_transaction_details = collect($request->input('transaction_details'));
|
||||
|
||||
$total_cbm = $invoice_transaction->amount;
|
||||
|
||||
foreach($old_transaction_details as $old_transaction_detail_id){
|
||||
$old_transaction_detail = $this->fetchesTransactionDetail->execute(['id' => $old_transaction_detail_id]);
|
||||
|
||||
$total_cbm -= $old_transaction_detail->price;
|
||||
|
||||
if(!$new_transaction_details->contains('id', $old_transaction_detail_id)){
|
||||
$this->deletesTransactionDetails->execute($old_transaction_detail);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($new_transaction_details as $transaction_detail){
|
||||
$transaction_detail = (object) $transaction_detail;
|
||||
|
||||
if(!in_array($transaction_detail->reference, ['SHIPPING_FEE', 'OVER_WHEIGHT_CHARGES'])){
|
||||
$object_detail = new TransactionDetailObject(
|
||||
'CUSTOM_CHARGES',
|
||||
isset($transaction_detail->name) ? $transaction_detail->name : TransactionDetailType::CUSTOM_CHARGES,
|
||||
$transaction_detail->quantity,
|
||||
$transaction_detail->price
|
||||
);
|
||||
|
||||
if(isset($transaction_detail->id)){
|
||||
$new_transaction_detail = $this->updatesTransactionDetail->execute($this->fetchesTransactionDetail->execute(['id' => $transaction_detail->id]), $object_detail);
|
||||
}else{
|
||||
$new_transaction_detail = $this->createsTransactionDetail->execute($invoice_transaction, $object_detail);
|
||||
}
|
||||
|
||||
$total_cbm += $new_transaction_detail->amount;
|
||||
}
|
||||
}
|
||||
|
||||
$object = new TransactionObject(
|
||||
$invoice_transaction->bill_no,
|
||||
TransactionType::SHIPPING_INVOICE,
|
||||
1,
|
||||
$invoice_transaction->issuer,
|
||||
1,
|
||||
PaymentMethodType::CASH,
|
||||
$total_cbm,
|
||||
$total_cbm,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
ApprovalStatus::PENDING_VERIFICATION
|
||||
);
|
||||
|
||||
/** @var Transaction $invoice_transaction */
|
||||
$invoice_transaction = $this->updatesTransaction->execute($invoice_transaction, $object);
|
||||
|
||||
return $this->response([]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,17 +3,17 @@
|
||||
namespace App\Classes\Modules\Transactions\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractDeleteRecord;
|
||||
use App\Models\TransactionDetail;
|
||||
use App\Models\Transaction;
|
||||
|
||||
class DeletesTransactionDetails extends AbstractDeleteRecord
|
||||
{
|
||||
|
||||
/**
|
||||
* @param TransactionDetail $model
|
||||
* @param Transaction $model
|
||||
* @return mixed
|
||||
*/
|
||||
public function execute(TransactionDetail $model) {
|
||||
return $model->delete();
|
||||
public function execute(Transaction $model) {
|
||||
return $model->transactionDetails()->delete();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Transactions\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\Modules\Transactions\DataTransferObjects\TransactionDetailObject;
|
||||
use App\Models\TransactionDetail;
|
||||
|
||||
class UpdatesTransactionDetail extends AbstractUpdateRecord
|
||||
{
|
||||
/**
|
||||
* @param TransactionDetail $transactionDetail
|
||||
* @param TransactionDetailObject $object
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
public function execute(TransactionDetail $transactionDetail, TransactionDetailObject $object) {
|
||||
$transactionDetail->reference = $object->getReference();
|
||||
$transactionDetail->name = $object->getName();
|
||||
$transactionDetail->quantity = $object->getQuantity();
|
||||
$transactionDetail->price = $object->getPrice();
|
||||
$transactionDetail->amount = $object->getAmount();
|
||||
|
||||
return $this->handler($transactionDetail);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -11,8 +11,6 @@ class SegmentConstants
|
||||
|
||||
public const BASE_PRICE = 'BASE_PRICE';
|
||||
|
||||
public const CUSTOM_PRICE = 'CUSTOM_PRICE';
|
||||
|
||||
public const WAREHOUSE_RATE = 'WAREHOUSE_RATE';
|
||||
|
||||
public const STATE_RATE = 'STATE_RATE';
|
||||
|
||||
@@ -4,9 +4,7 @@ namespace App\Classes\ValueObjects\Constants;
|
||||
|
||||
final class TransactionDetailType {
|
||||
|
||||
public const SHIPPING_FEE = 'X1 Freight Service Charge';
|
||||
public const SHIPPING_FEE = 'Shipping Fee';
|
||||
|
||||
public const OVER_WEIGHT_CHARGES = 'Overweight Charges';
|
||||
|
||||
public const CUSTOM_CHARGES = 'Custom charges';
|
||||
public const OVER_WEIGHT_CHARGES = 'Over weight charges';
|
||||
}
|
||||
|
||||
@@ -43,9 +43,7 @@ final class WarehouseReferences {
|
||||
|
||||
public const YD_DESTINATION_WAREHOUSE = self::YD_KLANG;
|
||||
|
||||
public const YD_EXEMPT_LIST = [230, 294, 320, 652, 1248, 1726, 2349, 2574, 652];
|
||||
|
||||
public const MIN_CBM_EXEMPT_LIST = [230, 294, 320, 652, 1248, 1726, 2349, 2574];
|
||||
public const YD_EXEMPT_LIST = [230, 294, 320, 652, 1248, 1726];
|
||||
|
||||
public const REPLICA_WHITE_LIST = [502];
|
||||
|
||||
|
||||
@@ -49,6 +49,9 @@ class CurlVTCommand extends Command
|
||||
{
|
||||
return FetchWarehouseReceiveListFromVTPortalJob::withChain([
|
||||
new FetchLoadedContainersFromVTPortalJob,
|
||||
new FetchPackingListFromVTPortalJob,
|
||||
new FetchContainersStatusUpdateFromVTPortalJob,
|
||||
new FetchDeliveryListFromVTPortalJob
|
||||
])->dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class Kernel extends ConsoleKernel
|
||||
{
|
||||
|
||||
$schedule->command('command:curlVTCommand')
|
||||
->cron('0 8 * * *')
|
||||
->cron('0 9-18/3 * * *')
|
||||
->withoutOverlapping()
|
||||
->appendOutputTo (storage_path().'/logs/curlvt.log');
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ class AssignCompanyConnectionToConnectionSegmentController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param AssignCompanyConnectionToConnectionSegmentLogic $logic
|
||||
* @param AssignCompanyToSegmentLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function assign(Request $request, AssignCompanyConnectionToConnectionSegmentLogic $logic): JsonResponse {
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Segments;
|
||||
|
||||
use App\Classes\Modules\Segments\ControllersLogic\ListAirShipmentPriceLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ListAirShipmentPriceController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param ListSegmentLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function list(Request $request, ListAirShipmentPriceLogic $logic): JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Transactions;
|
||||
|
||||
use App\Classes\Modules\Transactions\ControllersLogic\ApproveShippingInvoiceTransactionLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ApproveShippingInvoiceTransactionController
|
||||
{
|
||||
|
||||
public function approve(Request $request, ApproveShippingInvoiceTransactionLogic $logic): JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Transactions;
|
||||
|
||||
use App\Classes\Modules\Transactions\ControllersLogic\ShippingEstimationCalculatorLogic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ShippingEstimationCalculatorController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param ShippingEstimationCalculatorLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function calculate(Request $request, ShippingEstimationCalculatorLogic $logic): JsonResponse
|
||||
{
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers\Transactions;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Classes\Modules\Transactions\ControllersLogic\UpdateShippingInvoiceTransactionLogic;
|
||||
|
||||
|
||||
class UpdateShippingInvoiceTransactionController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param UpdateShippingInvoiceTransactionLogic $logic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(Request $request, UpdateShippingInvoiceTransactionLogic $logic) : JsonResponse {
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class AirShipmentItemPriceResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$object = $this->resource;
|
||||
$detailsArray = (array)json_decode($object['details']);
|
||||
|
||||
return [
|
||||
'name' => $detailsArray['name'],
|
||||
'details' => $object['details'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,6 @@ class CompanyModuleResource extends JsonResource
|
||||
'remarks' => RemarkResource::collection($this->remarks),
|
||||
'marking' => $marking,
|
||||
'warehouseCharges' => array_key_exists($this->id, $segmentConstant) ? $segmentConstant[$this->id] : null,
|
||||
'connections' => $this->connections,
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ class CompanyResource extends JsonResource
|
||||
'type' => (int) $this->type,
|
||||
'business_type' => (int) $this->business_type,
|
||||
'status' => (int) $this->status,
|
||||
'segments' => SegmentResource::collection($companyModule->connections()->first()->segments),
|
||||
'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())),
|
||||
'employee' => new UserResource($companyModule->employees()->first()),
|
||||
'company_module' => new CompanyModuleResource($companyModule),
|
||||
|
||||
@@ -30,7 +30,7 @@ class ContainerResource extends JsonResource
|
||||
'remarks' => RemarkResource::collection($this->remarks),
|
||||
'status' => $this->status,
|
||||
'packing_lists' => $this->whenLoaded('packingLists', PackingListResource::collection($this->whenLoaded('packingLists', function(){
|
||||
return $this->packingLists()->get()->sortBy(function ($packingList) {
|
||||
return $this->packingLists()->whereHas('packages')->get()->sortBy(function ($packingList) {
|
||||
return $packingList->owner->company_module_id;
|
||||
});
|
||||
})))
|
||||
|
||||
@@ -29,23 +29,23 @@ class OrderResource extends JsonResource
|
||||
'warehouse' => new CompanyModuleResource($this->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee),
|
||||
'address' => new AddressResource($this->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first()),
|
||||
'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()),
|
||||
// 'parcels' => $this->whenLoaded('packingLists', function() {
|
||||
// return [
|
||||
// 'origin_warehouse_packages' => PackingListResource::collection(
|
||||
// $this->originWarehousePackages()->get()
|
||||
// ),
|
||||
// 'in_transit_packages' => PackingListResource::collection(
|
||||
// $this->inTransitPackages()->get()
|
||||
// ),
|
||||
// 'destination_warehouse_packages' => PackingListResource::collection(
|
||||
// $this->destinationWarehousePackages()->get()
|
||||
// ),
|
||||
// 'delivered_packages' => PackingListResource::collection(
|
||||
// $this->deliveredPackages()->get()
|
||||
// ),
|
||||
// 'received_packages' => PackingListResource::collection($this->packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('packages')->get()),
|
||||
// ];
|
||||
// }),
|
||||
'parcels' => $this->whenLoaded('packingLists', function() {
|
||||
return [
|
||||
'origin_warehouse_packages' => PackingListResource::collection(
|
||||
$this->originWarehousePackages()->get()
|
||||
),
|
||||
'in_transit_packages' => PackingListResource::collection(
|
||||
$this->inTransitPackages()->get()
|
||||
),
|
||||
'destination_warehouse_packages' => PackingListResource::collection(
|
||||
$this->destinationWarehousePackages()->get()
|
||||
),
|
||||
'delivered_packages' => PackingListResource::collection(
|
||||
$this->deliveredPackages()->get()
|
||||
),
|
||||
'received_packages' => PackingListResource::collection($this->packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('packages')->get()),
|
||||
];
|
||||
}),
|
||||
'remarks' => RemarkResource::collection($this->remarks),
|
||||
'created_at' => $this->created_at->format('d-m-Y')
|
||||
];
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Classes\ValueObjects\Constants\RoleTypes;
|
||||
use App\Models\Order;
|
||||
use App\Models\PackingList;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class PackingListResource extends JsonResource
|
||||
@@ -29,17 +27,14 @@ class PackingListResource extends JsonResource
|
||||
'claimant_id' => $this->claimant_id,
|
||||
'reference' => $this->reference,
|
||||
'status' => $this->status,
|
||||
// 'transport' => new TransportResource($this->transports()->first()),
|
||||
'transport' => new TransportResource($this->transports()->first()),
|
||||
'type' => $this->type,
|
||||
// 'receive_packing_list' => $this->when($this->type === PackingListType::SHIPPING_PACKING_LIST, new PackingListResource(PackingList::where('reference', $this->reference)->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->first())),
|
||||
'receive_packing_list' => $this->when($this->type === PackingListType::SHIPPING_PACKING_LIST, new PackingListResource(PackingList::where('reference', $this->reference)->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->first())),
|
||||
'packages' => PackageResource::collection($packages),
|
||||
$this->mergeWhen($this->owner instanceof Order, [
|
||||
'order' => New OrderResource($this->owner)
|
||||
]),
|
||||
'shippng_transaction' => new TransactionResource($this->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->whereNotIn('status', [ApprovalStatus::SUSPENDED, ApprovalStatus::EXPIRED])->first()),
|
||||
'suspended_invoice' => new TransactionResource($this->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->whereIn('status', [ApprovalStatus::SUSPENDED])->first()),
|
||||
// 'suspended_invoices' => TransactionResource::collection($this->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->whereIn('status', [ApprovalStatus::SUSPENDED])->get()),
|
||||
'loading_days_ago' => $this->containers()->first()->loading_date->diffForHumans()
|
||||
'shippng_transaction' => new TransactionResource($this->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->first()),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,11 +15,13 @@ class SegmentResource extends JsonResource
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$constant = $this->constants->where('reference', SegmentConstants::CUSTOM_PRICE)->first();
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'price' => $constant ? $constant->value : 0
|
||||
// 'time_limit' => $this->when($this->whereHas('constants', function($query){
|
||||
// $query->where('reference', SegmentConstants::PAYMENT_ATTEMPT_DURATION_LIMIT);
|
||||
// }), $this->constants->where('reference', SegmentConstants::PAYMENT_ATTEMPT_DURATION_LIMIT)->first()),
|
||||
// 'services' => CustomServiceTypeResource::collection($this->constants->where('reference', SegmentConstants::CUSTOM_SERVICE_TYPE))
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ class TransactionDetailResource extends JsonResource
|
||||
{
|
||||
|
||||
return [
|
||||
'reference' => $this->reference,
|
||||
'stockCode' => $this->product_code,
|
||||
'description' => $this->product_name,
|
||||
'quantity' => $this->quantity,
|
||||
'price' => (double) $this->price,
|
||||
'name' => $this->name,
|
||||
'amount' => (double) $this->amount
|
||||
'unit_price' => (double) $this->price,
|
||||
'total' => (double) $this->amount
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\DocumentType;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
@@ -22,33 +19,18 @@ class TransactionResource extends JsonResource
|
||||
return [
|
||||
'id' => $this->id,
|
||||
// 'booking' => new BookingResource($this->booking),
|
||||
'documents' => DocumentResource::collection($this->documents),
|
||||
'type' => (int) $this->type,
|
||||
'bill_no' => $this->bill_no,
|
||||
'amount' => (double) $this->amount,
|
||||
'outstanding' => (double) $this->amount - ($this->transactions()->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->sum('amount')),
|
||||
'service_charge' => (double) $this->service_charge,
|
||||
'tax' => (double) $this->tax,
|
||||
'original_amount' => (double) $this->original_amount,
|
||||
'currency' => new CurrencyResource($this->currency),
|
||||
'original_currency' => new CurrencyResource($this->original_currency),
|
||||
'currency_rate' => (double) $this->currency_rate,
|
||||
'status' => (int) $this->status,
|
||||
'details' => TransactionDetailResource::collection($this->transactionDetails),
|
||||
'transactions' => TransactionResource::collection($this->transactions),
|
||||
'payment_attempts' => TransactionResource::collection(
|
||||
$this->transactions()
|
||||
->payments()->where('status', ApprovalStatus::PENDING_SUBMISSION)
|
||||
->get()
|
||||
),
|
||||
'payment_history' => TransactionResource::collection(
|
||||
$this->transactions()
|
||||
->payments()
|
||||
->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::COMPLETED, ApprovalStatus::REJECTED])
|
||||
->get()
|
||||
),
|
||||
'documents' => new DocumentResource($this->documents()->first()),
|
||||
'expires_on' => Carbon::parse($this->expires_on)->format('d-m-Y h:s:i'),
|
||||
'updated_at' => Carbon::parse($this->update_at)->format('d-m-Y')
|
||||
'updated_at' => Carbon::parse($this->update_at)->format('d-m-Y h:s:i')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateAddonsTable extends Migration
|
||||
class CreateAddonsTables extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
@@ -13,7 +13,7 @@ class CreateAddonsTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('addons', function (Blueprint $table) {
|
||||
Schema::table('addons', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->morphs('owner');
|
||||
$table->string('reference',200);
|
||||
|
||||
@@ -24,11 +24,6 @@ class DatabaseSeeder extends Seeder
|
||||
$this->call(CurrenciesTableSeeder::class);
|
||||
|
||||
$this->call(CompaniesTableSeeder::class);
|
||||
|
||||
$this->call(SegmentsTableSeeder::class);
|
||||
|
||||
$this->call(SegmentConstantsTableSeeder::class);
|
||||
|
||||
// $this->call(OrdersTableSeeder::class);
|
||||
}
|
||||
}
|
||||
@@ -9,128 +9,126 @@ use Illuminate\Support\Facades\DB;
|
||||
|
||||
class SegmentConstantsTableSeeder extends Seeder
|
||||
{
|
||||
|
||||
private function insertData($segment_id=1, $reference, $array_data)
|
||||
public function run()
|
||||
{
|
||||
DB::beginTransaction();
|
||||
|
||||
DB::table('segment_constants')->insert([
|
||||
'segment_id' => $segment_id,
|
||||
'reference' => $reference,
|
||||
'value' => json_encode($array_data)
|
||||
[
|
||||
'id' => 1,
|
||||
'segment_id' => 1,
|
||||
'reference' => SegmentConstants::BASE_PRICE,
|
||||
'value' => json_encode([
|
||||
'2022-05-01'=> '0.00',
|
||||
'2022-05-02'=> '0.00',
|
||||
]),
|
||||
],
|
||||
[
|
||||
'id' => 2,
|
||||
'segment_id' => 1,
|
||||
'reference' => SegmentConstants::WAREHOUSE_RATE,
|
||||
'value' => json_encode([
|
||||
'7' =>[
|
||||
'amount' => '0.00',
|
||||
],
|
||||
'6' =>[
|
||||
'amount' => '0.00',
|
||||
],
|
||||
]),
|
||||
],
|
||||
[
|
||||
'id' => 3,
|
||||
'segment_id' => 1,
|
||||
'reference' => SegmentConstants::STATE_RATE,
|
||||
'value' => json_encode([
|
||||
'1' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'2' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'3' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'4' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'5' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'6' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'7' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'8' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'9' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'10' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'11' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'12' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'13' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'14' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'15' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
],
|
||||
'16' =>[
|
||||
'center' => '10.00',
|
||||
'outstation' => '2.00'
|
||||
]
|
||||
]),
|
||||
],
|
||||
[
|
||||
'id' => 4,
|
||||
'segment_id' => 1,
|
||||
'reference' => SegmentConstants::CENTER_POSTCODE,
|
||||
'value' => json_encode(['80050','80100','80150','80200','80250','80300','80350','80400','80500','80506','80508','80516','80519','80534','80536','80542','80546','80558','80560','80564','80568','80578','80584','80586','80590','80592','80594','80596','80600','80604','80608','80620','80622','80628','80644','80648','80662','80664','80668','80670','80672','80673','80676','80700','80710','80720','80730','80900','80902','80904','80906','80908','80988','80990','81000','81100','81200','81300','81310']),
|
||||
],
|
||||
[
|
||||
'id' => 5,
|
||||
'segment_id' => 1,
|
||||
'reference' => SegmentConstants::OUTSTATION_POSTCODE,
|
||||
'value' => json_encode(['80000']),
|
||||
],
|
||||
[
|
||||
'id' => 6,
|
||||
'segment_id' => 2,
|
||||
'reference' => SegmentConstants::CUSTOMER_RATE,
|
||||
'value' => json_encode([
|
||||
'id'=> 1,
|
||||
'price' => 15,
|
||||
]),
|
||||
],
|
||||
]);
|
||||
DB::commit();
|
||||
}
|
||||
|
||||
public function run()
|
||||
{
|
||||
// insert base prices
|
||||
$n_days = 10; // for the 10 days ahead
|
||||
$today = date("Y-m-d");
|
||||
$prices = [];
|
||||
for($ii=0; $ii<$n_days;$ii++){
|
||||
$prices[] = [
|
||||
"date" => date('Y-m-d', strtotime($today. ' + '.$ii.' days')),
|
||||
"price" => rand(10, 30) / 10
|
||||
];
|
||||
}
|
||||
$this->insertData(1, SegmentConstants::BASE_PRICE, $prices);
|
||||
|
||||
// insert state prices
|
||||
$prices = [];
|
||||
for($ii=1; $ii<=16;$ii++){
|
||||
$prices[] = [
|
||||
'state_id' => $ii,
|
||||
'center' => '10.00',
|
||||
'outstation'=> '2.00'
|
||||
];
|
||||
}
|
||||
$this->insertData(1, SegmentConstants::STATE_RATE, $prices);
|
||||
|
||||
// insert warehouse prices
|
||||
$prices = [];
|
||||
for($ii=1; $ii<=7;$ii++){
|
||||
$prices[] = [
|
||||
'warehouse_id' => $ii,
|
||||
'amount' => '1.'.$ii
|
||||
];
|
||||
}
|
||||
$this->insertData(1, SegmentConstants::WAREHOUSE_RATE, $prices);
|
||||
|
||||
// insert center postcodes
|
||||
$prices = [
|
||||
[ 'post_code' => '80050' ],
|
||||
[ 'post_code' => '80100' ],
|
||||
[ 'post_code' => '80150' ],
|
||||
[ 'post_code' => '80200' ],
|
||||
[ 'post_code' => '80250' ],
|
||||
[ 'post_code' => '80300' ],
|
||||
[ 'post_code' => '80350' ],
|
||||
[ 'post_code' => '80400' ],
|
||||
[ 'post_code' => '80500' ],
|
||||
[ 'post_code' => '80506' ],
|
||||
[ 'post_code' => '80508' ],
|
||||
[ 'post_code' => '80516' ],
|
||||
[ 'post_code' => '80519' ],
|
||||
[ 'post_code' => '80534' ],
|
||||
[ 'post_code' => '80536' ],
|
||||
[ 'post_code' => '80542' ],
|
||||
[ 'post_code' => '80546' ],
|
||||
[ 'post_code' => '80558' ],
|
||||
[ 'post_code' => '80560' ],
|
||||
[ 'post_code' => '80564' ],
|
||||
[ 'post_code' => '80568' ],
|
||||
[ 'post_code' => '80578' ],
|
||||
[ 'post_code' => '80584' ],
|
||||
[ 'post_code' => '80586' ],
|
||||
[ 'post_code' => '80590' ],
|
||||
[ 'post_code' => '80592' ],
|
||||
[ 'post_code' => '80594' ],
|
||||
[ 'post_code' => '80596' ],
|
||||
[ 'post_code' => '80600' ],
|
||||
[ 'post_code' => '80604' ],
|
||||
[ 'post_code' => '80608' ],
|
||||
[ 'post_code' => '80620' ],
|
||||
[ 'post_code' => '80622' ],
|
||||
[ 'post_code' => '80628' ],
|
||||
[ 'post_code' => '80644' ],
|
||||
[ 'post_code' => '80648' ],
|
||||
[ 'post_code' => '80662' ],
|
||||
[ 'post_code' => '80664' ],
|
||||
[ 'post_code' => '80668' ],
|
||||
[ 'post_code' => '80670' ],
|
||||
[ 'post_code' => '80672' ],
|
||||
[ 'post_code' => '80673' ],
|
||||
[ 'post_code' => '80676' ],
|
||||
[ 'post_code' => '80700' ],
|
||||
[ 'post_code' => '80710' ],
|
||||
[ 'post_code' => '80720' ],
|
||||
[ 'post_code' => '80730' ],
|
||||
[ 'post_code' => '80900' ],
|
||||
[ 'post_code' => '80902' ],
|
||||
[ 'post_code' => '80904' ],
|
||||
[ 'post_code' => '80906' ],
|
||||
[ 'post_code' => '80908' ],
|
||||
[ 'post_code' => '80988' ],
|
||||
[ 'post_code' => '80990' ],
|
||||
[ 'post_code' => '81000' ],
|
||||
[ 'post_code' => '81100' ],
|
||||
[ 'post_code' => '81200' ],
|
||||
[ 'post_code' => '81300' ],
|
||||
[ 'post_code' => '81310' ]
|
||||
];
|
||||
$this->insertData(1, SegmentConstants::CENTER_POSTCODE, $prices);
|
||||
|
||||
// insert outstation prices
|
||||
$prices = [
|
||||
['post_code' => '80000' ]
|
||||
];
|
||||
$this->insertData(1, SegmentConstants::OUTSTATION_POSTCODE, $prices);
|
||||
|
||||
// insert customer prices
|
||||
$prices = [
|
||||
['id'=> 1, 'price' => 15 ]
|
||||
];
|
||||
$this->insertData(2, SegmentConstants::CUSTOMER_RATE, $prices);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,12 @@ class SegmentsTableSeeder extends Seeder
|
||||
'id' => 1,
|
||||
'company_module_id' => 1,
|
||||
'name' => 'Default Segment',
|
||||
]
|
||||
],
|
||||
[
|
||||
'id' => 2,
|
||||
'company_module_id' => 2,
|
||||
'name' => 'Normal Member',
|
||||
],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
+202
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
// 1. [Required] Point to the composer or dompdf autoloader
|
||||
require_once "vendor/autoload.php";
|
||||
|
||||
// 2. [Optional] Set the path to your font directory
|
||||
// By default dompdf loads fonts to dompdf/lib/fonts
|
||||
// If you have modified your font directory set this
|
||||
// variable appropriately.
|
||||
//$fontDir = "lib/fonts";
|
||||
$fontDir = 'storage/fonts';
|
||||
|
||||
// *** DO NOT MODIFY BELOW THIS POINT ***
|
||||
|
||||
use Dompdf\Dompdf;
|
||||
use Dompdf\CanvasFactory;
|
||||
use Dompdf\Exception;
|
||||
use Dompdf\FontMetrics;
|
||||
use Dompdf\Options;
|
||||
|
||||
use FontLib\Font;
|
||||
|
||||
/**
|
||||
* Display command line usage
|
||||
*/
|
||||
function usage() {
|
||||
echo <<<EOD
|
||||
|
||||
Usage: {$_SERVER["argv"][0]} font_family [n_file [b_file] [i_file] [bi_file]]
|
||||
|
||||
font_family: the name of the font, e.g. Verdana, 'Times New Roman',
|
||||
monospace, sans-serif. If it equals to "system_fonts",
|
||||
all the system fonts will be installed.
|
||||
|
||||
n_file: the .ttf or .otf file for the normal, non-bold, non-italic
|
||||
face of the font.
|
||||
|
||||
{b|i|bi}_file: the files for each of the respective (bold, italic,
|
||||
bold-italic) faces.
|
||||
|
||||
If the optional b|i|bi files are not specified, load_font.php will search
|
||||
the directory containing normal font file (n_file) for additional files that
|
||||
it thinks might be the correct ones (e.g. that end in _Bold or b or B). If
|
||||
it finds the files they will also be processed. All files will be
|
||||
automatically copied to the DOMPDF font directory, and afm files will be
|
||||
generated using php-font-lib (https://github.com/PhenX/php-font-lib).
|
||||
|
||||
Examples:
|
||||
|
||||
./load_font.php silkscreen /usr/share/fonts/truetype/slkscr.ttf
|
||||
./load_font.php 'Times New Roman' /mnt/c_drive/WINDOWS/Fonts/times.ttf
|
||||
|
||||
EOD;
|
||||
exit;
|
||||
}
|
||||
|
||||
if ( $_SERVER["argc"] < 3 && @$_SERVER["argv"][1] != "system_fonts" ) {
|
||||
usage();
|
||||
}
|
||||
|
||||
$dompdf = new Dompdf();
|
||||
if (isset($fontDir) && realpath($fontDir) !== false) {
|
||||
$dompdf->getOptions()->set('fontDir', $fontDir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs a new font family
|
||||
* This function maps a font-family name to a font. It tries to locate the
|
||||
* bold, italic, and bold italic versions of the font as well. Once the
|
||||
* files are located, ttf versions of the font are copied to the fonts
|
||||
* directory. Changes to the font lookup table are saved to the cache.
|
||||
*
|
||||
* @param Dompdf $dompdf dompdf main object
|
||||
* @param string $fontname the font-family name
|
||||
* @param string $normal the filename of the normal face font subtype
|
||||
* @param string $bold the filename of the bold face font subtype
|
||||
* @param string $italic the filename of the italic face font subtype
|
||||
* @param string $bold_italic the filename of the bold italic face font subtype
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
function install_font_family($dompdf, $fontname, $normal, $bold = null, $italic = null, $bold_italic = null) {
|
||||
$fontMetrics = $dompdf->getFontMetrics();
|
||||
|
||||
// Check if the base filename is readable
|
||||
if ( !is_readable($normal) )
|
||||
throw new Exception("Unable to read '$normal'.");
|
||||
|
||||
$dir = dirname($normal);
|
||||
$basename = basename($normal);
|
||||
$last_dot = strrpos($basename, '.');
|
||||
if ($last_dot !== false) {
|
||||
$file = substr($basename, 0, $last_dot);
|
||||
$ext = strtolower(substr($basename, $last_dot));
|
||||
} else {
|
||||
$file = $basename;
|
||||
$ext = '';
|
||||
}
|
||||
|
||||
if ( !in_array($ext, array(".ttf", ".otf")) ) {
|
||||
throw new Exception("Unable to process fonts of type '$ext'.");
|
||||
}
|
||||
|
||||
// Try $file_Bold.$ext etc.
|
||||
$path = "$dir/$file";
|
||||
|
||||
$patterns = array(
|
||||
"bold" => array("_Bold", "b", "B", "bd", "BD"),
|
||||
"italic" => array("_Italic", "i", "I"),
|
||||
"bold_italic" => array("_Bold_Italic", "bi", "BI", "ib", "IB"),
|
||||
);
|
||||
|
||||
foreach ($patterns as $type => $_patterns) {
|
||||
if ( !isset($$type) || !is_readable($$type) ) {
|
||||
foreach($_patterns as $_pattern) {
|
||||
if ( is_readable("$path$_pattern$ext") ) {
|
||||
$$type = "$path$_pattern$ext";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_null($$type) )
|
||||
echo ("Unable to find $type face file.\n");
|
||||
}
|
||||
}
|
||||
|
||||
$fonts = compact("normal", "bold", "italic", "bold_italic");
|
||||
$entry = array();
|
||||
|
||||
// Copy the files to the font directory.
|
||||
foreach ($fonts as $var => $src) {
|
||||
if ( is_null($src) ) {
|
||||
$entry[$var] = $dompdf->getOptions()->get('fontDir') . '/' . mb_substr(basename($normal), 0, -4);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Verify that the fonts exist and are readable
|
||||
if ( !is_readable($src) )
|
||||
throw new Exception("Requested font '$src' is not readable");
|
||||
|
||||
$dest = $dompdf->getOptions()->get('fontDir') . '/' . basename($src);
|
||||
|
||||
if ( !is_writeable(dirname($dest)) )
|
||||
throw new Exception("Unable to write to destination '$dest'.");
|
||||
|
||||
echo "Copying $src to $dest...\n";
|
||||
|
||||
if ( !copy($src, $dest) )
|
||||
throw new Exception("Unable to copy '$src' to '$dest'");
|
||||
|
||||
$entry_name = mb_substr($dest, 0, -4);
|
||||
|
||||
echo "Generating Adobe Font Metrics for $entry_name...\n";
|
||||
|
||||
$font_obj = Font::load($dest);
|
||||
$font_obj->saveAdobeFontMetrics("$entry_name.ufm");
|
||||
$font_obj->close();
|
||||
|
||||
$entry[$var] = $entry_name;
|
||||
}
|
||||
|
||||
// Store the fonts in the lookup table
|
||||
$fontMetrics->setFontFamily($fontname, $entry);
|
||||
|
||||
// Save the changes
|
||||
$fontMetrics->saveFontFamilies();
|
||||
}
|
||||
|
||||
// If installing system fonts (may take a long time)
|
||||
if ( $_SERVER["argv"][1] === "system_fonts" ) {
|
||||
$fontMetrics = $dompdf->getFontMetrics();
|
||||
$files = glob("/usr/share/fonts/truetype/*.ttf") +
|
||||
glob("/usr/share/fonts/truetype/*/*.ttf") +
|
||||
glob("/usr/share/fonts/truetype/*/*/*.ttf") +
|
||||
glob("C:\\Windows\\fonts\\*.ttf") +
|
||||
glob("C:\\WinNT\\fonts\\*.ttf") +
|
||||
glob("/mnt/c_drive/WINDOWS/Fonts/");
|
||||
$fonts = array();
|
||||
foreach ($files as $file) {
|
||||
$font = Font::load($file);
|
||||
$records = $font->getData("name", "records");
|
||||
$type = $fontMetrics->getType($records[2]);
|
||||
$fonts[mb_strtolower($records[1])][$type] = $file;
|
||||
$font->close();
|
||||
}
|
||||
|
||||
foreach ( $fonts as $family => $files ) {
|
||||
echo " >> Installing '$family'... \n";
|
||||
|
||||
if ( !isset($files["normal"]) ) {
|
||||
echo "No 'normal' style font file\n";
|
||||
}
|
||||
else {
|
||||
install_font_family($dompdf, $family, @$files["normal"], @$files["bold"], @$files["italic"], @$files["bold_italic"]);
|
||||
echo "Done !\n";
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
call_user_func_array("install_font_family", array_merge( array($dompdf), array_slice($_SERVER["argv"], 1) ));
|
||||
}
|
||||
@@ -30,32 +30,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row align-items-center parentContainer">
|
||||
<div class="col-auto padding-5 b-a b-grey b-rad-lg pointer requestModal" data-type="assignSegment">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="30" height="30"
|
||||
viewBox="0 0 172 172"
|
||||
style=" fill:#000000;"><defs><linearGradient x1="86" y1="97.08594" x2="86" y2="105.31775" gradientUnits="userSpaceOnUse" id="color-1_43991_gr1"><stop offset="0" stop-color="#4ec9ff"></stop><stop offset="1" stop-color="#2bffe6"></stop></linearGradient><linearGradient x1="94.0625" y1="85.83338" x2="94.0625" y2="93.89588" gradientUnits="userSpaceOnUse" id="color-2_43991_gr2"><stop offset="0" stop-color="#4ec9ff"></stop><stop offset="1" stop-color="#2bffe6"></stop></linearGradient><linearGradient x1="77.9375" y1="85.83338" x2="77.9375" y2="93.89588" gradientUnits="userSpaceOnUse" id="color-3_43991_gr3"><stop offset="0" stop-color="#4ec9ff"></stop><stop offset="1" stop-color="#2bffe6"></stop></linearGradient><linearGradient x1="86" y1="28.55469" x2="86" y2="143.10938" gradientUnits="userSpaceOnUse" id="color-4_43991_gr4"><stop offset="0" stop-color="#009add"></stop><stop offset="1" stop-color="#00baa4"></stop></linearGradient></defs><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,172v-172h172v172z" fill="none"></path><g><path d="M77.9375,96.75c0,4.45319 3.60931,8.0625 8.0625,8.0625c4.45319,0 8.0625,-3.60931 8.0625,-8.0625z" fill="url(#color-1_43991_gr1)"></path><path d="M94.0625,86c-2.2264,0 -4.03125,1.80485 -4.03125,4.03125c0,2.2264 1.80485,4.03125 4.03125,4.03125c2.2264,0 4.03125,-1.80485 4.03125,-4.03125c0,-2.2264 -1.80485,-4.03125 -4.03125,-4.03125z" fill="url(#color-2_43991_gr2)"></path><path d="M77.9375,86c-2.2264,0 -4.03125,1.80485 -4.03125,4.03125c0,2.2264 1.80485,4.03125 4.03125,4.03125c2.2264,0 4.03125,-1.80485 4.03125,-4.03125c0,-2.2264 -1.80485,-4.03125 -4.03125,-4.03125z" fill="url(#color-3_43991_gr3)"></path><path d="M147.8125,51.0625h-18.8125v-8.0625c0,-4.44512 -3.61738,-8.0625 -8.0625,-8.0625h-11.2445c-1.11263,-3.12019 -4.06888,-5.375 -7.568,-5.375h-32.25c-3.49912,0 -6.45538,2.25481 -7.568,5.375h-11.2445c-4.44512,0 -8.0625,3.61738 -8.0625,8.0625v8.0625h-18.8125c-4.44513,0 -8.0625,3.61738 -8.0625,8.0625v59.125c0,4.44512 3.61737,8.0625 8.0625,8.0625h18.8125v8.0625c0,4.44512 3.61738,8.0625 8.0625,8.0625h69.875c4.44512,0 8.0625,-3.61738 8.0625,-8.0625v-8.0625h18.8125c4.44512,0 8.0625,-3.61738 8.0625,-8.0625v-59.125c0,-4.44512 -3.61737,-8.0625 -8.0625,-8.0625zM147.8125,56.4375c1.4835,0 2.6875,1.20669 2.6875,2.6875v51.0625h-2.88637c-0.80625,-6.09525 -4.28119,-11.78469 -9.47612,-15.25425c0.99437,-1.87319 1.6125,-3.98019 1.6125,-6.24575v-5.375c0,-6.48763 -4.62519,-11.91638 -10.75,-13.16606v-13.70894zM134.375,88.6875c0,3.49912 -2.25213,6.45538 -5.375,7.568v-20.50831c3.12287,1.11262 5.375,4.06887 5.375,7.568zM134.6545,99.1365c3.913,2.48056 6.62469,6.84506 7.47125,11.051h-13.12575v-8.33394c2.12044,-0.43269 4.02319,-1.41094 5.6545,-2.71706zM67.1875,37.625c0,-1.48081 1.204,-2.6875 2.6875,-2.6875h32.25c1.4835,0 2.6875,1.20669 2.6875,2.6875v2.6875c0,1.48081 -1.204,2.6875 -2.6875,2.6875h-32.25c-1.4835,0 -2.6875,-1.20669 -2.6875,-2.6875zM51.0625,40.3125h10.75c0,4.44512 3.61737,8.0625 8.0625,8.0625h32.25c4.44512,0 8.0625,-3.61738 8.0625,-8.0625h10.75c1.4835,0 2.6875,1.20669 2.6875,2.6875v83.3125h-3.34056c-1.73881,-9.23963 -7.19444,-17.45531 -15.06344,-22.66906c1.44319,-2.88906 2.279,-6.13556 2.279,-9.58094v-10.75c0,-11.85456 -9.64544,-21.5 -21.5,-21.5c-11.85456,0 -21.5,9.64544 -21.5,21.5v10.75c0,3.44537 0.83581,6.69188 2.28169,9.58094c-7.869,5.21375 -13.32463,13.42675 -15.06344,22.66906h-3.34325v-83.3125c0,-1.48081 1.204,-2.6875 2.6875,-2.6875zM102.125,94.0625c0,8.89294 -7.23206,16.125 -16.125,16.125c-8.89294,0 -16.125,-7.23206 -16.125,-16.125v-10.75c0,-8.89294 7.23206,-16.125 16.125,-16.125c8.89294,0 16.125,7.23206 16.125,16.125zM86,115.5625c6.48494,0 12.29531,-2.89981 16.24056,-7.45513c6.39088,4.22744 10.93006,10.77956 12.59363,18.20513h-57.66837c1.66356,-7.42556 6.20275,-13.97769 12.59631,-18.20244c3.94256,4.55531 9.75294,7.45244 16.23787,7.45244zM43,96.2555c-3.12288,-1.11263 -5.375,-4.06888 -5.375,-7.568v-5.375c0,-3.49912 2.25212,-6.45538 5.375,-7.568zM37.32669,99.12306c1.634,1.31419 3.54481,2.29512 5.67331,2.7305v8.33394h-13.18487c0.78475,-4.57412 3.526,-8.63225 7.51156,-11.06444zM24.1875,56.4375h18.8125v13.70894c-6.12481,1.24969 -10.75,6.67575 -10.75,13.16606v5.375c0,2.26287 0.61544,4.36719 1.60981,6.24038c-5.21106,3.44806 -8.686,9.05688 -9.47613,15.25963h-2.88369v-51.0625c0,-1.48081 1.204,-2.6875 2.6875,-2.6875zM24.1875,120.9375c-1.4835,0 -2.6875,-1.20669 -2.6875,-2.6875v-2.6875h21.5v5.375zM120.9375,137.0625h-69.875c-1.4835,0 -2.6875,-1.20669 -2.6875,-2.6875v-2.6875h75.25v2.6875c0,1.48081 -1.204,2.6875 -2.6875,2.6875zM147.8125,120.9375h-18.8125v-5.375h21.5v2.6875c0,1.48081 -1.204,2.6875 -2.6875,2.6875z" fill="url(#color-4_43991_gr4)"></path></g></g></svg>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="row no-margin">
|
||||
<div class="col-auto no-padding m-r-10 m-b-5 m-t-5 parentContainer" v-for="segment in item.segments" v-bind:key="segment.id" v-if="segment.id !== 1">
|
||||
<div class="font-heading fs-10 lh-20 p-l-10 p-r-10 bg-master-lightest btn-rounded">
|
||||
{{segment.name}}
|
||||
<i class="fa fa-times muted m-l-10 pointer requestModal" data-type="detachSegment" ></i>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="detachSegment">
|
||||
<detach-segment-form-component :data="segment" :company_id="item.id" section="customerProfileSection"></detach-segment-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="assignSegment">
|
||||
<assign-segment-form-component :data="item" section="customerProfileSection"></assign-segment-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="row">
|
||||
<div class="col-auto" v-if="item.employee">
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<loading-component style="height: 50px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
|
||||
<div class="row" v-show="!$store.getters.isLoading(section)">
|
||||
<div class="col">
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<h3 class="all-caps m-b-5 bold no-margin">Assign Segment</h3>
|
||||
<div class="fs-11">Select a segment to {{parameters.name}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-5 animate__animated animate__fadeInUpBig animate__fast" v-if="error">
|
||||
<div class="col">
|
||||
<small class="bold fs-10 text-danger">{{error}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<validation-wrapper-component selectable :validator="$v.parameters.segment_id">
|
||||
<label>Segment</label>
|
||||
<selectable-component :endpoint="route('api.segment.list') + '?filters=' + JSON.stringify({'id_not_in': currentSegmentIds})" :section="multiple?'segmentsListSection_'+data.id:'segmentsListSection'" valueColumn="id" :labelColumn="['name']" v-model="parameters.segment_id"></selectable-component>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div class="btn btn-sm btn-default bg-master-lightest btn-block b-rad-none" data-dismiss="modal">Not Now</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div class="btn btn-sm btn-success btn-block b-rad-none" @click="submit(route('api.company.connection.assign', data.id, data.company_module.connections[0].id), 'post', section, true, false)">Assign Segment</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import ModalFormHandler from '../../../general/mixins/modalFormHandler';
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
export default {
|
||||
props: {
|
||||
multiple: {
|
||||
default: false,
|
||||
type: Boolean
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
parameters: {
|
||||
segment_id: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
parameters: {
|
||||
segment_id: {
|
||||
required
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentSegmentIds(){
|
||||
return this.data.segments.map(function (value){
|
||||
return value.id;
|
||||
})
|
||||
}
|
||||
},
|
||||
mixins: [ModalFormHandler]
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -1,44 +0,0 @@
|
||||
<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 m-b-5 animate__animated animate__fadeInUpBig animate__fast" v-if="error">
|
||||
<div class="col">
|
||||
<small class="bold fs-10 text-danger">{{error}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<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 detach custom from <span class="bold">{{this.item.name}}</span> segment?</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.company.segment.detach', company_id, item.id), 'delete', 'customerProfileSection', true, true)">Remove Segment</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
import ModalFormHandler from '../../../general/mixins/modalFormHandler';
|
||||
export default {
|
||||
props: {
|
||||
company_id: {
|
||||
required: true,
|
||||
type: Number
|
||||
}
|
||||
},
|
||||
|
||||
mixins: [componentHandler, ModalFormHandler]
|
||||
}
|
||||
</script>
|
||||
@@ -57,8 +57,8 @@
|
||||
<div class="btn btn-default no-border" @click="expanded = !expanded">
|
||||
<i class="fa" :class="{'fa-angle-down': !expanded, 'fa-angle-up': expanded}" ></i>
|
||||
</div>
|
||||
<a class="btn btn-default no-border" :href="route('container.refresh', item.container_reference)" target="_blank">
|
||||
<i class="fa fa-refresh fa-fw"></i>
|
||||
<a class="btn btn-default no-border" :href="route('container.show', item.container_reference)">
|
||||
<i class="fa fa-angle-right fa-fw"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,18 +13,18 @@
|
||||
<div class="col-1">{{ (parseFloat(cbm) + parseFloat(overweight)).toFixed(3)}}</div>
|
||||
<div class="col-1 bold text-center" :class="{'text-danger': item.status === 5, 'text-success': item.status !== 5}">{{item.transport ? 'Delivery' : item.status === 5 ? 'On Hold' : 'Release'}}</div>
|
||||
<div class="col-3">
|
||||
<div v-if="item.order" style="word-break: break-word;">
|
||||
<div v-if="item.order">
|
||||
{{item.order.address.contact ? item.order.address.contact.reference+' '+item.order.address.contact.phone : ''}}<br>
|
||||
{{item.order.address.street_one+' '+(item.order.address.street_two ? item.order.address.street_two : '')+', '+ item.order.address.district.name+', '+item.order.address.post_code+' '+item.order.address.state.name+', '+item.order.address.country.name}}<br>{{item.order.address.remark ? item.order.address.remark.content: ''}}
|
||||
<div class="btn btn-xs btn-primary pointer m-t-10 requestModal hide" data-type="defineLocation">Define Location</div>
|
||||
<div class="btn btn-xs btn-primary pointer m-t-10 requestModal" data-type="defineLocation">Define Location</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="defineLocation">
|
||||
<declare-postcode-area-form-component :data="item.order.address.post_code"></declare-postcode-area-form-component>
|
||||
<declare-postcode-area-form-component :section="section" :data="{postcode: item.order.address.post_code, postcodeArea: item.order.address.post_code_area}"></declare-postcode-area-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin" v-if="item.transport">{{ item.transport.current_schedule.eta }}</p>
|
||||
<p class="no-margin text-danger" v-if="!item.transport">{{ item.packages.length ? item.packages[0].container.transport ? item.packages[0].container.transport.dropped_days+' Days': 'n/a' : 'n/a'}}</p>
|
||||
<p class="no-margin text-danger" v-if="!item.transport">{{ item.packages[0].container.transport ? item.packages[0].container.transport.dropped_days+' Days': 'n/a'}}</p>
|
||||
<div class="btn btn-xs btn-primary pointer m-t-10 requestModal" data-type="rescheduleTransport">Reschedule Transport</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="rescheduleTransport">
|
||||
<reschedule-transport-date-form-component :data="item"></reschedule-transport-date-form-component>
|
||||
@@ -40,6 +40,23 @@
|
||||
<div v-if="!item.order" class="text-danger">Unclaimed</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div v-if="!item.shippng_transaction">
|
||||
<div class="btn btn-xs btn-primary pointer" @click="generateInvoice()">Generate Invoice</div>
|
||||
</div>
|
||||
<div v-if="item.shippng_transaction">
|
||||
<div v-for="files in item.shippng_transaction.documents.files" v-bind:key="files.id" class="col-auto no-padding">
|
||||
<document-file-viewer-component :file="files">
|
||||
<template slot="button">
|
||||
<div class="btn btn-xs btn-primary pointer d-block m-b-5">View Invoice</div>
|
||||
</template>
|
||||
</document-file-viewer-component>
|
||||
</div>
|
||||
<!-- <div class="btn btn-xs btn-primary pointer d-block">Pay Invoice</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -71,6 +88,9 @@
|
||||
this.parameters.packing_list_id = this.data.id;
|
||||
},
|
||||
methods: {
|
||||
generateInvoice() {
|
||||
this.submit(this.route('api.transaction.supplier.create'), 'post', this.section, true, true);
|
||||
},
|
||||
updateStatus(status){
|
||||
this.submit(this.route('api.packing_list.status.update', this.item.id, status), 'put', '', true, true)
|
||||
},
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
</div>
|
||||
<div class="col" v-if="$store.getters.isAdmin">
|
||||
<p class="no-margin all-caps fs-10 light">Warehouse</p>
|
||||
<p class="no-margin" v-if="item.order">{{item.order.warehouse.reference}}</p>
|
||||
<span class='text-danger' v-if="!item.order">Unclaimed</span>
|
||||
<p class="no-margin">{{item.order.warehouse.reference}}</p>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="btn btn-xs btn-default" @click="expanded = !expanded"><i class="fa" :class="{'fa-angle-up': expanded, 'fa-angle-down': !expanded}"></i></div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-md-3 p-l-5">
|
||||
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" @click="parameters.warehouse_id = 4" :class="{ 'b-primary': parameters.warehouse_id === 4, 'b-grey': parameters.warehouse_id !== 4 }">
|
||||
<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 === 4, 'b-grey': parameters.warehouse_id !== 4 }" @click="parameters.warehouse_id = 4">
|
||||
<div class="row m-b-15 justify-content-center">
|
||||
<div class="col-8">
|
||||
<img src="/images/yiwu-map.png" class="w-100">
|
||||
@@ -52,8 +52,6 @@
|
||||
</div>
|
||||
<div class="row text-center justify-content-center">
|
||||
<div class="col-8">
|
||||
<p class="m-b-0 text-danger m-t-15" v-if="parameters.warehouse_id === 3">近期由于船期的安排和马来西亚海关的运作等一些不可控因数,导致船期延迟,请大家提前做好采购安排。若有不便之处,敬请谅解。 <br>Due to inevitable circumstances, shipping arrangements and Malaysia custom clearance may have delays. Kindly plan your purchases in advance, thank you for your cooperation.</p>
|
||||
<p class="m-b-0 text-danger m-t-15" v-if="false">由于义乌船期不稳定,建议发广州仓库。<br>Due to unexpected shipping delays for Yiwu warehouse, you may select an alternative warehouse.</p>
|
||||
<p class="m-b-0 text-danger m-t-15" v-if="parameters.warehouse_id === 4">由于义乌船期不稳定,建议发广州仓库。<br>Due to unexpected shipping delays for Yiwu warehouse, you may select an alternative warehouse.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,458 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col no-margin">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
|
||||
<div class="row align-content-center h-100" v-if="step === 1">
|
||||
<div class="col-8">
|
||||
<div class="row m-b-20">
|
||||
<div class="col-12 col-md-7">
|
||||
<div class="row m-b-10 text-info">
|
||||
<div class="col">
|
||||
<h5 class="m-b-0 m-t-0 bold">Service Type</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row text-center justify-content-center">
|
||||
<div class="col p-l-5">
|
||||
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-info': parameters.type === 1, 'b-grey': parameters.type !== 1 }" @click="parameters.type = 1">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABmJLR0QA/wD/AP+gvaeTAAAEJklEQVR4nO3aS6hVVRzH8c8tsUKvjWoQBGGPSZFGg0ot8+YgMBoKEQhBBBFNokFkUhOzGjSoUVnUMIugUQ8pe4gVRhFISpMI7UpGpuiN3vc0WOt0ttt93nufvW93fWFxNov9/6///p211l7rvzaJRCKRSCQSiUQikUgkEolEIpFIJBY5S/E0jqJVUZnDAWzHpZN5rMnxlOqEKyqncM9EnmxCzAoPdtOQdm1BBmEZbsbr0WYe9w7ZXmMZRogy7O4XBPwT60awbxyTFpAw57bwIy4Z0UdjqEPAc/FetP9UeJEtWOoQEC7Gkejj2TH81E5dAsIN+D362Tymr9qoU0B4IPo5jatL8Ddx6hYQXom+vsWFJfmcGE0Q8AJ8Gf29hamS/E6EJggIl+F49PlwiX4rpykCwp3CIvsvzJTpeEr5wS4EvsP7sbwrvGhGYjEK+Kuwh27zG/ZidywHhnVYxZAhBPXJBO0GZSk2YIfwgvnHmVmdo3gVdwuL8r5UJeBC4SLcJSx52hmkdpnHV0JqbgbnFTlY7ALmuQYP4R1huGcF/QlbsSRrUJScPIzbxwxknzAcx7XbWxDfKH5H4XxsxDP4OtP+m0LigoLgsiKOQ1lzYJGAVc6RvVgrpMpa2NKuLBrCaVh3Z7OgzWftiiRgbzZhP/5w9hkMqhvCZc2BdbJJ74Ms53QxPIL7xmx83mi9eFS7Kngi/j4iLGGmFCQk0nDtzilBm+W5+r49MBHYH38f1ON8paoe+H+YA2fwtxHmwG5sxE4hwzuHk8Lm+0XhLDY7PzRxDszHPxevd+K2gvv34A58IZw3FzJID7xc8YI2X3YLCcymMWj8H2PlAP7O0KyfgOuEntYSVuGPYpWQElqG1cL+sL1CP4HrB32yCTBs/Cexpo/PgQW8ShCkhdec/TbKMo1d8d6f8bn658BR4/8FV3SJZ5+OZqvoLuCU0KXbjQ9yIDOl86FPC28PYJOnrHzguPHv6RJPdir4nu4C3qrT7Xv9c3mmcSzarh/CrmzKiP+WHve10Or1Fm5nG54T3lZtsh9OzgqZ3ewa6TSez/mog4nF387C5ifOg7H+2lx90YeTT+buWR3rDw4SQI6y5sAy4v+mh///Ru6OAofZku/+WcHXxuvZ3D3TfXxOslQZ/+EleDwabTHcN3XZSbmqhW+VjBt/34RLtyFQ1GO35+4ZZAhUTe3xvxydbM3VL41BzOKH2Hh+o70t2r40TgBjUnv863WWAdND2K0QTq9awgfgddGI+D+KjnYZfCH6RrT5YNzGS6D2+K8UtjUtYYXe659ckWn8uLCBr5tGxL9GZz95DI/hOmF5sDxeb9Pp9idwY1mNl0Aj4l+pMxx6lQ81M53VmPhn8AIO6SQkD8W6DVU2XBILPf5EIpFIJBKJRCKRSCQSiUQiUSP/AlkkSdKJddQ3AAAAAElFTkSuQmCC" class="w-100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="no-margin" :class="{ 'text-info': parameters.type === 1, 'semi-bold': parameters.type === 1}">Pick Up</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col p-r-5">
|
||||
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-info': parameters.type === 2, 'b-grey': parameters.type !== 2 }" @click="parameters.type = 2">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-8">
|
||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABmJLR0QA/wD/AP+gvaeTAAAG00lEQVR4nO2caYwURRSAv4VhOWRBZEEFQgAFFVFARcEjyEpQMCggCoZA/IEHcoioARUNlxKjiTEeqIhRJFFBEQHxwPgDMYCcaqIEMSDBoKKcyyEsO/54r1O9Pd09Bz073UN/yaSnql7XvC6qq1699xaIiYmJiYmJiYmJiSlKWgIzgc1AJXAY2ATMAFoUUK9IMBQ4BCQ9PgeBwQXTLuQMBaqRgVoM9AbO0s+NwKfadop4EFNoiZl5j/nITVGZA0B5LegVGWYiA/NJBrJLVXZ6XjWKGFuQQemdgWwfld2UV40ixmFkUBpnIFumsofyqpEHdQrxoxmQzEK2JId7AiOsA/ibXq/KQNaS2Z4nXXwJ6wAu0+vDGchOctwTg5wwDiKv5RQfuSdVZj/QvBb0ihRDECM5iZgqfZBNpQyoAJZjDOnbC6Rj6BmMGMleR7n9xIOXlnLEcbARMW8OARuAacSvbUxQVABzga2Iy8rtdT0AfAX0K5COoaQDsArvNc7r80QhlA0b/TAbxF/AVKAr4q5yozkycFWIm6uiFnQMLfcAJ5DBWwQ0zeLeSXrfijzoFQmexjhKZ2POsplSrvf+G7BeoScBzEMevgp4IMd+mmkfJ4AmwagWDeYjD14JDHRp7wQsAK5P089NmM3kpSAVDDMjMSeHHi7tfYF9KvNymr6ewgxgFXBlcGqGF8tUGenS9iBwEjMo96bpa4XK/ajX9UDdwDQNIQ2RmXJSv1skgFeQQajGbCyX+/RVBzNTLwJ26vfxgWsdInogD/mTra4e8KXWHwMm6vfD+M+mzir3u5YHYuLDrQLVOkNqw6HaTa9bbHW3IIb034ibyvImb0DcU15cq9c1el2GRO6aAKsR/2Cb01c5c2pjALvq9QdbnTWo84G1wDVaXpemr14uchOAbUB7YBbyWn8O3AnUz03lcLEaec362uoWa90ILa/U8qA0fW1VuY1Aqa2+jvY/HzhCTX/hG0R4py7BuObtiUDbta4L8vD7tey3jp2D2WiSwDM+cuOROLHdAbEJ8XJHigsQ5f+w1ZUhA3Ec2UwuUZldafq6FbOBVOn3j4ABeG883RBj+x/Mbn9HDs9RMIYgin9mq7sO8xqCOBYsp4IfszDn59HI7m3Nrj3AC8BlHvfWR7zaSWpuZqFnOqL0s7a6sVo3T8tztPxomr6+UbnbtNwKidj9TOqrOhFJULLTFHOUjAxLEKWH2ere1LoJWv5eyzf49JNAHrwa96TKqxGj3HpVLWfDUuSVLUN8iUnS7/ShYgei9MW2unXUTBzaQ+om4+QKldmW5vdKkUjeEoy/0f6pBvpn9QQF5iiiuOVlTiBmRjVwNmIAW7HfRj79jFOZd7L47RbILF+PrJdridjggZltjyNrkLWQW8e6fpjZ0dmnnwUqMyZvmoaUAdS03ZyZBNNs9X4pHK+pzEqy92BHngHITKxEdkj7acM6gSSRc3Ezjz7Kgb0qNypvmkaMupg86M2ktwVHqcxe4j9vAKA7MiC/IicWK8Q51kO+BDNj36sNBcOOc2cdquXjiNniRjtM5sIZn6HwPqku/Fe1bjveseLJKrMD7yD8GcEuUs2X+sgZOQks9LgvgfG0PJdPBcNMG2QA9pHq1LXiJH52Xw9MnKV7nnQMNcNI9dKA7Mx/YgbQbz18kTMkKuekHsaBMNnRVoE5886xfXfLQGiMicplkoxeNFh/xrWLVMPZ8tTMoOZ6+KFHX/21/QgSEyl6eiHrVhWp7qtGmNOG5RjtiDG27/fo8wPcl4OiowwTC5nt0m5tHhsc9cMx8eOuzpuAczHB9uFBKRtG3sZ4jEsdbTdj4iRug/Q65tTith6OxhzzivLPXgdhZlEXR1s5xqn6iMf9DTC2n9t6WAJ8re1vBaBvqGiFcbW7nXMXadsq/M2RCzEhUrcEpI7IP1A1kgJXFJQgi3sSyYVx+vLuwwTA22bQ312YmexmQE/FmD4NclM5XDyEWZvOd7R1wOywd2fRp2XquNmHCcwfa8/MQd+88h3wbRblTkhMZA+pKRsJJEEoibjrs+m/IZJnY7/XTi/ENfYfcOlp6J8R2SQXWa75TMtjkId9HomS2ZkK9ESM6XFZ9n8MeZUrkdya0Y6+1yBZrKXUPKFkq3/BsXZWZ75LT8SYPoX89yW5MkL7P0pqRkJbbdt9Gv0XHGvHtOfrNUZsuaBcUXMxOTL1bPWtMXGWyPIx8hDLkUFsB3yBiYE4jelcaIjJlV4GnIecTKyd3+sMHQk6UTPVwvrsRGy2oGgP/OLyO/uQnT7StEZmwUHE1nsXmSVB0xyJHe9GTKaFFMHgxcTExMTExMTExBQt/wPtRjB5yTmw/QAAAABJRU5ErkJggg==" class="w-100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="no-margin"></h5>
|
||||
<h5 class="no-margin" :class="{ 'text-info': parameters.type === 2, 'semi-bold': parameters.type === 2}">Drop Off</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-20" v-if="parameters.type !== ''">
|
||||
<div class="col bg-master-lightest p-t-15">
|
||||
<div class="row m-b-20 text-info">
|
||||
<div class="col">
|
||||
<h5 class="m-b-0 m-t-0 bold">Packing list</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component selectable class="m-b-15" :validator="$v.productType">
|
||||
<label>Product Type</label>
|
||||
<selectable-component :endpoint="route('api.segment.air_shipment.price.list')" :section="section" valueColumn="details" :labelColumn="['name']" v-model="productType"></selectable-component>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.productDesc">
|
||||
<label>Product Description</label>
|
||||
<input class="form-control" v-model="parameters.product.productDesc">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.quantity">
|
||||
<label>Quantity</label>
|
||||
<input class="form-control" type="number" v-model="parameters.product.quantity">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.totalWeight">
|
||||
<label>Total Weight (KG)</label>
|
||||
<input type="text" class="form-control fs-12" v-model.trim="parameters.product.totalWeight" v-money="weight">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col" v-if="productTypeArray['hasGram'] === 'true'">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.gram">
|
||||
<label>Gram</label>
|
||||
<input class="form-control" v-model="parameters.product.gram">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="productTypeArray['hasDimensionCharges'] === 'true'">
|
||||
<div class="col-4">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.width">
|
||||
<label>Width</label>
|
||||
<input class="form-control" v-model="parameters.product.width">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.length">
|
||||
<label>Length</label>
|
||||
<input class="form-control" v-model="parameters.product.length">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.product.height">
|
||||
<label>Height</label>
|
||||
<input class="form-control" v-model="parameters.product.height">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<p v-if="productTypeArray['isProhibited'] === 'true'" class="text-danger text-center">This item is blacklisted to ship to bangladish. <span class="text-underline text-complete">Black listed items list</span></p>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="btn btn-complete w-100 m-b-15 padding-10" :class="{'disabled': productTypeArray['isProhibited'] === 'true', 'not-allowed': productTypeArray['isProhibited'] === 'true'}" @click="addProduct()">Add Product</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="margin-15 padding-15 bg-master-lightest">
|
||||
<p class="m-b-15 bold fs-18">Order Summary</p>
|
||||
<p class="m-b-15 bold fs-15">Products</p>
|
||||
<div class="row" v-if="productList.length != 0">
|
||||
<div class="col">
|
||||
<div class="row m-l-0 m-r-0 m-b-10" v-for="(cartItem, index) in productList">
|
||||
<div class="col p-t-10 p-b-10 bg-white">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="bold no-margin">{{cartItem.productDesc}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="muted no-margin">{{ cartItem.quantity }} X {{ cartItem.productType }} - {{ cartItem.totalWeight }}KG</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto bg-white pointer" @click="removeElement(index)">
|
||||
<div class="row h-100 align-content-center justify-content-center">
|
||||
<div class="col">
|
||||
<i class="fa fa-times fs-12"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-l-0 m-r-0 m-b-10 b-a rounded b-primary-light" v-if="parameters.product.productDesc != '' || productType != ''">
|
||||
<div class="col p-t-10 p-b-10 bg-white">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="bold no-margin">{{parameters.product.productDesc}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="muted no-margin">{{parameters.product.quantity}} X {{ productTypeArray['name'] }} - {{ parameters.product.totalWeight }}KG</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="parameters.product.productDesc == '' && productType == '' && productList.length == 0">
|
||||
<div class="col">
|
||||
<p class="muted">There are no items added yet!</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="bold fs-15">Quotation</p>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Total Weight</div>
|
||||
<div class="col">{{ parameters.totalWeight }} kg</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Service Type</div>
|
||||
<div class="col">{{ parameters.type === 1 ? 'Pick Up' : parameters.type === 2 ? 'Drop Off' : '' }}</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Price Per kg</div>
|
||||
<div class="col">{{ parameters.pricePerKg }} RM</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Shipping Fee</div>
|
||||
<div class="col">{{ parameters.totalShipping }} RM</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col">Special Product Tax</div>
|
||||
<div class="col">{{ parameters.totalTax }} RM</div>
|
||||
</div>
|
||||
<p class="text-complete text-underline pointer">What is this cost?</p>
|
||||
<div class="row m-t-15 justify-content-between">
|
||||
<div class="col fs-20 bold">Total</div>
|
||||
<div class="col fs-20 bold">{{ parameters.totalCombine }} RM</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col">
|
||||
<div class="btn btn-success w-100 m-b-15 padding-10" @click="step++">Procced Next</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="step === 2">
|
||||
<div class="col">
|
||||
<new-registration-form-component section="loginSection"></new-registration-form-component>
|
||||
<div class="row m-t-15">
|
||||
<div class="col-auto">
|
||||
<div class="btn btn-default w-100 m-b-15 padding-10" @click="step--">back</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="btn btn-success w-100 m-b-15 padding-10" @click="step++">Procced Next</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="step === 3">
|
||||
<div class="col-8">
|
||||
<div class="row m-t-20">
|
||||
<div class="col bg-master-lightest p-t-15">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.pickUpAddress">
|
||||
<label>Pick up address</label>
|
||||
<input class="form-control" v-model="parameters.pickUpAddress">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.pickUpDate">
|
||||
<label>Pick up date</label>
|
||||
<date-picker-component v-model.lazy="parameters.pickUpDate"></date-picker-component>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.deliveryAddress">
|
||||
<label>Delivery address</label>
|
||||
<input class="form-control" v-model="parameters.deliveryAddress">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-20">
|
||||
<div class="col">
|
||||
<p>Addon Wrapping service</p>
|
||||
<div class="row m-l-5">
|
||||
<div class="col-4 p-r-10 p-l-0">
|
||||
<div class="padding-20 bg-master-light text-center pointer" @click="parameters.wrappingService = 'Pick Up' " :class="{'bg-complete-light': parameters.wrappingService === 'Pick Up', 'text-white': parameters.wrappingService === 'Pick Up',}">
|
||||
Wrap my goods
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 p-l-10">
|
||||
<div class="padding-20 bg-master-light text-center pointer" @click="parameters.wrappingService = 'Drop Off'" :class="{'bg-complete-light': parameters.wrappingService === 'Drop Off', 'text-white': parameters.wrappingService === 'Drop Off',}">
|
||||
No Thanks
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="margin-15 padding-15 bg-master-lightest">
|
||||
<p class="m-b-15 bold fs-18">Order Summary</p>
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<p class="bold fs-15">Products</p>
|
||||
<p>1x product1 </p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="bold fs-15">Quotation</p>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Total Weight</div>
|
||||
<div class="col">15 kg</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Service Type</div>
|
||||
<div class="col">{{ parameters.servicetype }}</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Price Per kg</div>
|
||||
<div class="col">26 RM</div>
|
||||
</div>
|
||||
<div class="row justify-content-between m-b-5">
|
||||
<div class="col">Shipping Fee</div>
|
||||
<div class="col">200 RM</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col">Special Product Tax</div>
|
||||
<div class="col">50 RM</div>
|
||||
</div>
|
||||
<p class="text-complete text-underline pointer">What is this cost?</p>
|
||||
<div class="row m-t-15 justify-content-between">
|
||||
<div class="col fs-20 bold">Total</div>
|
||||
<div class="col fs-20 bold">50 RM</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col">
|
||||
<div class="btn btn-success w-100 m-b-15 padding-10" @click="step++">Procced Next</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
import { VMoney } from 'v-money'
|
||||
|
||||
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
section: 'createDelvieryOrderSectionComponent',
|
||||
weight: {decimal: '.',thousands: ',', precision: 1},
|
||||
step: 1,
|
||||
productType: '',
|
||||
productList: [],
|
||||
parameters : {
|
||||
type: '',
|
||||
|
||||
product: {
|
||||
productType: '',
|
||||
productDesc: '',
|
||||
quantity: '1',
|
||||
totalWeight: 10,
|
||||
gram: '',
|
||||
width: '',
|
||||
length: '',
|
||||
height: '',
|
||||
},
|
||||
|
||||
pickUpAddress: '',
|
||||
pickUpDate: '',
|
||||
deliveryAddress: '',
|
||||
wrappingService: '',
|
||||
|
||||
tax: 0,
|
||||
totalWeight: 0,
|
||||
pricePerKg: 0,
|
||||
totalShipping: 0,
|
||||
totalTax: 0,
|
||||
totalCombine: 0,
|
||||
}
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
productType: { },
|
||||
parameters: {
|
||||
product: {
|
||||
productDesc: { },
|
||||
quantity: { },
|
||||
totalWeight: { },
|
||||
gram: { },
|
||||
width: { },
|
||||
length: { },
|
||||
height: { },
|
||||
},
|
||||
|
||||
pickUpAddress: { },
|
||||
pickUpDate: { },
|
||||
deliveryAddress: { },
|
||||
wrappingService: { },
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
productTypeArray() {
|
||||
return this.productType === '' ? '' : JSON.parse(this.productType);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
addProduct() {
|
||||
// todo: change this to vuelidate
|
||||
if (this.parameters.product.productDesc != '' && this.productType != '') {
|
||||
|
||||
// add weight
|
||||
this.parameters.totalWeight += parseInt(this.parameters.product.totalWeight);
|
||||
|
||||
// has tax
|
||||
if (this.productTypeArray['tax']) {
|
||||
this.parameters.totalTax += parseInt(this.productTypeArray['tax']);
|
||||
}
|
||||
|
||||
var itemShippingFee = 0;
|
||||
|
||||
// pricePerKg * kg
|
||||
if (this.productTypeArray['pricePerKg']) {
|
||||
|
||||
// add pricePerKg
|
||||
this.parameters.pricePerKg += parseInt(this.productTypeArray['pricePerKg']);
|
||||
|
||||
itemShippingFee += parseInt(this.productTypeArray['pricePerKg']) * parseInt(this.parameters.product.totalWeight);
|
||||
}
|
||||
|
||||
// pricePerPcs * quantity
|
||||
if (this.productTypeArray['pricePerPcs']) {
|
||||
itemShippingFee += parseInt(this.productTypeArray['pricePerPcs']) * this.parameters.product.quantity;
|
||||
}
|
||||
|
||||
this.productList.push(
|
||||
{
|
||||
productType: this.productTypeArray['name'],
|
||||
productDesc: this.parameters.product.productDesc,
|
||||
quantity: this.parameters.product.quantity,
|
||||
gram: '',
|
||||
width: '',
|
||||
length: '',
|
||||
height: '',
|
||||
|
||||
totalWeight: this.parameters.product.totalWeight,
|
||||
itemTax: this.productTypeArray['tax'],
|
||||
pricePerKg: this.productTypeArray['pricePerKg'],
|
||||
itemShippingFee: itemShippingFee,
|
||||
}
|
||||
);
|
||||
|
||||
this.parameters.totalShipping += itemShippingFee;
|
||||
this.parameters.totalCombine += ( itemShippingFee + parseInt(this.productTypeArray['tax'] == '' ? 0 : this.productTypeArray['tax']) );
|
||||
|
||||
this.parameters.product.productDesc = '' ;
|
||||
this.productType = '';
|
||||
}
|
||||
},
|
||||
removeElement(index) {
|
||||
var itemRemoved = this.productList.splice(index, 1)[0];
|
||||
|
||||
// remove weight
|
||||
this.parameters.totalWeight -= parseInt(itemRemoved['totalWeight']);
|
||||
|
||||
// has tax
|
||||
if (itemRemoved['itemTax']) {
|
||||
this.parameters.totalTax -= parseInt(itemRemoved['itemTax']);
|
||||
}
|
||||
|
||||
if (itemRemoved['itemShippingFee']) {
|
||||
this.parameters.totalShipping -= parseInt(itemRemoved['itemShippingFee']);
|
||||
}
|
||||
|
||||
// remove pricePerKg
|
||||
if (itemRemoved['pricePerKg']) {
|
||||
this.parameters.pricePerKg -= parseInt(itemRemoved['pricePerKg']);
|
||||
}
|
||||
|
||||
this.parameters.totalCombine -= ( parseInt(itemRemoved['itemShippingFee']) + parseInt(itemRemoved['itemTax'] == '' ? 0 : parseInt(itemRemoved['itemTax'])) );
|
||||
|
||||
}
|
||||
},
|
||||
mixins: [componentHandler],
|
||||
directives: {money: VMoney}
|
||||
}
|
||||
</script>
|
||||
@@ -134,7 +134,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="false">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
|
||||
-276
@@ -1,276 +0,0 @@
|
||||
<template>
|
||||
<div class="row m-b-15 m-l-5 m-r-10 parentContainer">
|
||||
<div class="col bg-white rounded">
|
||||
<div class="row">
|
||||
<div class="col padding-20">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Marking</p>
|
||||
<div class="no-margin">
|
||||
<div v-if="item.order">
|
||||
<a :href="route('customer.profile', item.order.company_module.marking)">{{item.order.company_module.marking}}</a>/<a :href="route('order.show', item.order.reference)">{{item.order.reference}}</a>
|
||||
<p>{{item.loading_days_ago}}</p>
|
||||
</div>
|
||||
<div v-else class="text-danger">Unclaimed Packing List</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Invoice Date</p>
|
||||
<div v-if="!item.shippng_transaction">n/a</div>
|
||||
<div v-if="item.shippng_transaction"> {{ item.shippng_transaction.updated_at }}</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Status</p>
|
||||
<div class="all-caps">{{ invoice_status }}</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Amount</p>
|
||||
<div v-if="!item.shippng_transaction">n/a</div>
|
||||
<div v-if="item.shippng_transaction">MYR {{ item.shippng_transaction.amount.toFixed(2) }}</div>
|
||||
</div>
|
||||
<div class="col-auto p-l-0 p-r-0" v-if="['Pending Payment', 'Paid Invoice', 'Suspended Invoice'].includes(invoice_status)">
|
||||
<div v-if="item.shippng_transaction">
|
||||
<div v-if="item.shippng_transaction.documents.length">
|
||||
<div v-for="file in item.shippng_transaction.documents[0].files" v-bind:key="file.id" class="col-auto no-padding">
|
||||
<document-file-viewer-component :file="file">
|
||||
<template slot="button">
|
||||
<div class="btn bg-grey no-border muted">
|
||||
<i class="fa fa-file-pdf-o"></i>
|
||||
</div>
|
||||
</template>
|
||||
</document-file-viewer-component>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="btn bg-grey no-border muted invisible">
|
||||
<i class="fa fa-file-pdf-o"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="btn bg-grey no-border" @click="expanded = !expanded" v-if="['Pending Approval', 'Pending Payment'].includes(invoice_status)">
|
||||
<i class="fa" :class="{'fa-angle-down': !expanded, 'fa-angle-up': expanded}" ></i>
|
||||
</div>
|
||||
<div v-if="!item.shippng_transaction">
|
||||
<div v-if="item.order">
|
||||
<div v-if="!item.order.company_module.billingAddress">
|
||||
<div class="btn btn-primary btn-xs pointer requestModal btn-block" data-type="billingAddressComponent">Add Billing Address</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" size="extra-large" styleType="fill-in" type="billingAddressComponent">
|
||||
<address-form-component :id="item.order.company_module.id" section="addressList" :type=1></address-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
<div v-if="!item.order.address.post_code_area">
|
||||
<div class="btn btn-xs btn-primary pointer m-t-10 requestModal btn-block" data-type="defineLocation">Define Location</div>
|
||||
<modal-component class="animate_animated animatefast animate_fadeIn" styleType="fill-in" type="defineLocation">
|
||||
<declare-postcode-area-form-component :data="item.order.address"></declare-postcode-area-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
<div v-if="item.order.company_module.billingAddress && item.order.address.post_code_area" class="btn btn-outline-primary btn-lg pointer" @click="generateInvoice()">Generate Invoice</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="btn btn-outline-primary btn-lg pointer invisible">Generate Invoice</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn bg-grey no-border muted requestModal" v-if="item.shippng_transaction && invoice_status == 'Pending Approval'" data-type="confirmInvoice">
|
||||
<i class="fa fa-check fs-12"></i>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="confirmInvoice">
|
||||
<approve-shipping-invoice-form-component :section="section" :data="data"></approve-shipping-invoice-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row b-t b-grey p-t-10 m-l-5 m-r-5" v-show="expanded" v-if="item.shippng_transaction && ['Pending Approval', 'Suspended Invoice'].includes(invoice_status)">
|
||||
<div class="col p-b-10">
|
||||
<div class="row">
|
||||
<div class="col p-l-20 p-r-20 p-t-10 p-b-10">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Container Reference</p>
|
||||
<div v-if="item.packages.length">{{ item.packages[0].container ? item.packages[0].container.container_reference : 'n/a' }}</div>
|
||||
<div v-else>n/a</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Due Date</p>
|
||||
<div v-if="item.packages.length">
|
||||
<div v-if="item.packages[0].container">
|
||||
<div v-if="item.packages[0].container.transport">{{ item.packages[0].container.transport.drop_date == null ? item.packages[0].container.transport.current_schedule.etd : item.packages[0].container.transport.drop_date }}</div>
|
||||
<div v-else>n/a</div>
|
||||
</div>
|
||||
<div v-else>n/a</div>
|
||||
</div>
|
||||
<div v-else>n/a</div>
|
||||
</div>
|
||||
<!-- <div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Paid Date</p>
|
||||
<div>n/a</div>
|
||||
</div> -->
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Total CBM</p>
|
||||
<div>{{ (parseFloat(cbm) + parseFloat(overweight)).toFixed(3) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="text-underline text-center">Invoice Details</h5>
|
||||
<invoice-items-form-component :data="item.shippng_transaction" :section="section"></invoice-items-form-component>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Subtotal</p>
|
||||
<div>{{ item.shippng_transaction.amount - item.shippng_transaction.service_charge - item.shippng_transaction.tax }}</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Service Charges</p>
|
||||
<div>{{ item.shippng_transaction.service_charge }}</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Tax</p>
|
||||
<div>{{ item.shippng_transaction.tax }}</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="no-margin fs-10 all-caps">Total</p>
|
||||
<div>{{ item.shippng_transaction.amount }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row b-t b-grey p-t-10 m-l-5 m-r-5" v-show="expanded" v-if="item.shippng_transaction && invoice_status == 'Pending Payment'">
|
||||
<div class="col-12 col-md-7 padding-20">
|
||||
<div class="row bg-master-lightest h-100">
|
||||
<div class="col">
|
||||
<div class="row bg-master-lightest" v-if="item.shippng_transaction.payment_attempts.length">
|
||||
<div class="col">
|
||||
<div class="row m-t-10 m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-head fs-10 all-caps">Payment Attempt</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<shipping-transaction-component v-for="item in item.shippng_transaction.payment_attempts" v-bind:key="item.id" :data="item" ></shipping-transaction-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bg-master-lightest" v-if="item.shippng_transaction.payment_history.length">
|
||||
<div class="col">
|
||||
<div class="row m-t-10 m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-head fs-10 all-caps">Payment History</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<payment-history-component v-for="item in item.shippng_transaction.payment_history" v-bind:key="item.id" :data="item" ></payment-history-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-5 padding-20 parentContainer">
|
||||
<div class="row bg-master-lightest h-100">
|
||||
<div class="col">
|
||||
<div class="row padding-10">
|
||||
<div class="col">
|
||||
<div class="row align-items-end m-b-10 text-complete">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Total Amount:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-12">MYR {{(Math.round((item.shippng_transaction.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10 text-success">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Paid Total:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<!-- <div class="font-heading fs-12">MYR {{(Math.round((item.shippng_transaction.paid_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div> -->
|
||||
<div class="font-heading fs-12">Paid Total</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10 ">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Floating Amount:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<!-- <div class="font-heading fs-12">MYR {{(Math.round((item.shippng_transaction.floating_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div> -->
|
||||
<div class="font-heading fs-12">Floating Amount</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end bold text-danger">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">OutStanding Total:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-12">MYR {{(Math.round((item.shippng_transaction.outstanding + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-20" v-if="item.shippng_transaction.outstanding > 0">
|
||||
<div class="col">
|
||||
<div class="btn btn-sm all-caps b-rad-none btn-success btn-block requestModal" data-type="makePayment">Make Payment</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="makePayment">
|
||||
<payment-form-component :data="item.shippng_transaction" :section="section"></payment-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
props: {
|
||||
invoice_status: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
section:{
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
parameters: {
|
||||
packing_list_id: null,
|
||||
transaction_details: [],
|
||||
},
|
||||
expanded: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
cbm () {
|
||||
return (Math.ceil((this.item.packages.reduce((total, obj) => (obj.type === 2 ? 0 : obj.cbm) + total, 0)) * 1000) / 1000).toFixed(3)
|
||||
},
|
||||
overweight(){
|
||||
return (Math.ceil((this.item.packages.reduce((total, obj) => (obj.type === 2 ? obj.cbm : 0) + total, 0)) * 1000) / 1000).toFixed(3)
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.parameters.packing_list_id = this.data.id;
|
||||
},
|
||||
methods: {
|
||||
generateInvoice() {
|
||||
this.submit(this.route('api.transaction.invoice.create'), 'post', this.section, true, true);
|
||||
},
|
||||
successHandler(response){
|
||||
this.item = response.payload.data;
|
||||
// this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
@@ -1,137 +0,0 @@
|
||||
<template>
|
||||
<div class="row m-l-0 m-b-10 m-r-0 parentContainer" :class="[{'b-a': item.status === 4}, {'b-danger': item.status === 4}, {'b-a': item.status === 5}, {'b-danger': item.status === 5}]" >
|
||||
<div class="col">
|
||||
<div class="row" v-if="!item.transaction_bill">
|
||||
<div class="col">
|
||||
<div class="row bg-white ">
|
||||
<div class="col p-t-10 p-b-10 p-r-0 pointer" @click="clickExpand()" :class="[{'bg-master-lighter': item.status === 1 && item.type !== 6}, {'bg-white': item.status !== 1 && item.status !== 4}, {'bg-warning-lighter': item.type === 6}]">
|
||||
<div class="row m-b-5">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-8 muted all-caps">Status</div>
|
||||
<div class="font-heading fs-10 bold" :class="[{'text-danger': item.status === 1 || item.status === 4}, {'text-success': item.status !== 1 && item.status !== 4}]">
|
||||
{{ item.status === 1 ? 'Pending Verification' : item.status === ( 4 || 5) ? 'Rejected' : 'Processing Payment'}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto p-l-0">
|
||||
<div class="font-heading fs-8 muted all-caps">Payment Amount</div>
|
||||
<div class="font-heading fs-10 bold">
|
||||
{{item.currency.short_code}} {{(Math.round((item.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-8 all-caps" :class="[{'text-danger': item.status === 4}, {'text-primary': item.status !== 4}]">{{ item.status === 2 ? 'Received' : item.status === 4 ? 'Rejected' : 'Submitted'}} On: {{item.updated_at}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto" v-if="item.status !== 3" :class="[{'bg-master-light': item.status === 1 && item.type !== 6}, {'bg-master-lighter': item.status === 2}, {'bg-warning-light': item.type === 6}]">
|
||||
<div class="row align-items-center h-100" v-if="item.status !== 1 || item.payment_method !== 5">
|
||||
<div class="col">
|
||||
<i class="fa" :class="[{'fa-cloud-download': item.status === 1 || item.status === 2}, {'fa-ban': item.status === 4}, {'muted': item.status === 1 || item.status === 2}, {'text-danger': item.status === 4}]"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-center h-100" v-if="item.payment_method === 5 && item.status === 1">
|
||||
<div class="col">
|
||||
<a :href="route('billplz.bill', item.payment_reference)"><i class="fa fa-repeat text-success"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row b-t b-grey" v-if="expandPaymentDetails">
|
||||
<div class="col bg-white padding-15">
|
||||
<!-- <div class="row align-items-end m-b-10 text-success bold">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10">Recipient Gets</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-10">{{item.original_currency.short_code}} {{(item.original_amount).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end bold m-b-10 text-primary">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10">Rate</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-10 ">{{(Math.round((item.currency_rate + Number.EPSILON) * 100000) / 100000).toFixed(5) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10 hint-text">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10">Transfer Charges</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-10">MYR {{(Math.round((item.service_charge + Number.EPSILON) * 100) / 100).toFixed(2)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-5 hint-text">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10">Tax</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-10">MYR {{(Math.round((item.tax + Number.EPSILON) * 100) / 100).toFixed(2)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10 bold text-success">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10">Your Payment</div>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="font-heading fs-12">MYR {{(Math.round((item.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-10 m-b-5">Your Payment Proof</div>
|
||||
<div class="row no-margin" v-if="item.payment_method !== 5">
|
||||
<div v-if="item.documents.length">
|
||||
<div v-for="file in item.documents[0].files" v-bind:key="file.id" class="col-auto no-padding m-r-5">
|
||||
<document-file-viewer-component :file="file">
|
||||
<template slot="button">
|
||||
<div class="icon-thumbnail fs-11 text-white icon-25 bg-primary btn-rounded float-left m-r-5">
|
||||
<i class="fa fa-file-image-o fs-10"></i>
|
||||
</div>
|
||||
</template>
|
||||
</document-file-viewer-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row no-margin" v-if="item.payment_method === 5 && (item.status === 2 || item.status === 3)">
|
||||
<a :href="route('billplz.bill', item.payment_reference)" target="_blank">
|
||||
<div class="icon-thumbnail fs-11 text-white icon-25 bg-primary btn-rounded float-left m-r-5">
|
||||
<i class="fa fa-file-image-o fs-10"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
expandPaymentDetails: false,
|
||||
amount: (Math.round(1000 * 100) / 100).toFixed(2),
|
||||
parameters: {
|
||||
amount: (Math.round(1000 * 100) / 100).toFixed(2),
|
||||
bank_id: 1
|
||||
},
|
||||
section: 'bookingDetailSection',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickExpand(){
|
||||
this.expandPaymentDetails = !this.expandPaymentDetails;
|
||||
},
|
||||
},
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
-159
@@ -1,159 +0,0 @@
|
||||
<template>
|
||||
<div class="row m-b-10 parentContainer">
|
||||
<div class="col">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
|
||||
<div class="row p-b-5 b-b b-grey" v-show="!isLoading">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-10">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Date</div>
|
||||
<div class="font-heading fs-10">
|
||||
{{ item.updated_at }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Order No</div>
|
||||
<div class="font-heading fs-10">
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Marking</div>
|
||||
<div class="font-heading fs-10">
|
||||
<a :href="route('customer.profile', item.booking.company.reference)">{{item.booking.company.reference}}</a>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="col text-right">
|
||||
<div class="font-heading fs-10 muted all-caps">Amount</div>
|
||||
<div class="font-heading fs-14 text-success bold">
|
||||
{{(Math.round((item.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-10 muted all-caps">Payment Proof</div>
|
||||
<div class="row no-margin" v-if="item.payment_method !==5 && item.payment_method !==4">
|
||||
<div v-for="file in item.documents[0].files" v-bind:key="file.id" class="col-auto no-padding">
|
||||
<document-file-viewer-component :file="file">
|
||||
<template slot="button">
|
||||
<div class="icon-thumbnail fs-11 text-white icon-25 bg-primary btn-rounded float-left m-r-5">
|
||||
<i class="fa fa-file-image-o fs-10"></i>
|
||||
</div>
|
||||
</template>
|
||||
</document-file-viewer-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row no-margin" v-if="item.payment_method ===5">
|
||||
<div class="col no-padding">
|
||||
<a :href="route('billplz.bill', item.payment_reference)" target="_blank">
|
||||
<div class="icon-thumbnail fs-11 text-white icon-25 bg-complete btn-rounded float-left m-r-5">
|
||||
Bz
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row no-margin" v-if="item.payment_method ===4">
|
||||
<div class="col no-padding">
|
||||
<div class="font-heading fs-10">{{item.payment_reference}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Service</div>
|
||||
<div class="font-heading fs-10">
|
||||
{{item.booking.service.name}}
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="col">
|
||||
<div class="font-heading fs-10 muted all-caps">Booking</div>
|
||||
<div class="font-heading fs-10">
|
||||
{{item.original_currency.short_code}} {{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="col-auto">
|
||||
<div class="row">
|
||||
<div v-if="!no_action" class="col-6 col-md-auto text-right">
|
||||
<button class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModal" data-type="rejectPayment">
|
||||
<i class="fa fa-times fa-fw"></i>
|
||||
</button>
|
||||
<button class="btn btn-xs btn-success b-rad-none requestModal" data-type="approvePayment">
|
||||
<i class="fa fa-check fa-fw"></i>
|
||||
</button>
|
||||
<modal-component small type="rejectPayment">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<h5 class="all-caps">Reject Document</h5>
|
||||
<div class="fs-11">Are you sure you want to reject this payment?</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div data-dismiss="modal" class="btn btn-sm btn-default bg-master-lighter btn-block b-rad-none">Cancel</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div data-dismiss="modal" class="btn btn-sm btn-danger btn-block b-rad-none" @click="approvePayment('reject')">Reject</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</modal-component>
|
||||
<modal-component small type="approvePayment">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<h5 class="all-caps">Approve Payment</h5>
|
||||
<div class="fs-11">Are you sure you want to approve this payment?</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div data-dismiss="modal" class="btn btn-sm btn-default bg-master-lighter btn-block b-rad-none">Cancel</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div data-dismiss="modal" class="btn btn-sm btn-success btn-block b-rad-none" @click="approvePayment('approve')">Approve</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
import staticFormHandler from '../../../general/mixins/staticFormHandler'
|
||||
export default {
|
||||
props: {
|
||||
no_action: Boolean
|
||||
},
|
||||
methods: {
|
||||
approvePayment(status){
|
||||
this.isLoading = true;
|
||||
this.submit(this.route('api.transaction.payment.approval', this.item.id, status), 'put', 'identificationVerificationSection', true, true);
|
||||
},
|
||||
},
|
||||
mixins: [componentHandler, staticFormHandler]
|
||||
}
|
||||
</script>
|
||||
-70
@@ -1,70 +0,0 @@
|
||||
<template>
|
||||
<div class="row m-l-0 m-b-10 m-r-0 parentContainer">
|
||||
<div class="col-auto bg-master-lighter requestModal pointer" data-type="deleteAttempt">
|
||||
<div class="row align-items-center h-100">
|
||||
<div class="col">
|
||||
<i class="fa fa-times muted"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col bg-white p-t-10 p-b-10 p-r-0">
|
||||
<div class="row m-b-5">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-8 muted all-caps">Payment Amount</div>
|
||||
<div class="font-heading fs-10 bold">
|
||||
MYR {{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto p-l-5 p-r-5 bg-success pointer" v-if="item.payment_method === 5">
|
||||
<a :href="route('billplz.bill', item.payment_reference)">
|
||||
<div class="row align-items-center h-100">
|
||||
<div class="col">
|
||||
<i class="fa fa-repeat fs-20 text-white p-l-10 p-r-10"></i>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto p-l-5 p-r-5 bg-success requestModal pointer" v-if="item.payment_method !== 5" data-type="paymentProofModal">
|
||||
<div @click="selectedID(item.id)" class="row align-items-center h-100">
|
||||
<div class="col">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="30" height="30" viewBox="0 0 172 172" style=" fill:#000000;"><defs><linearGradient x1="86" y1="70.76994" x2="86" y2="116.46013" gradientUnits="userSpaceOnUse" id="color-1_52139_gr1"><stop offset="0" stop-color="#ffffff"></stop><stop offset="1" stop-color="#ffffff"></stop></linearGradient><linearGradient x1="61.8125" y1="34.48869" x2="61.8125" y2="144.97181" gradientUnits="userSpaceOnUse" id="color-2_52139_gr2"><stop offset="0" stop-color="#ffffff"></stop><stop offset="1" stop-color="#ffffff"></stop></linearGradient><linearGradient x1="130.34375" y1="34.48869" x2="130.34375" y2="144.97181" gradientUnits="userSpaceOnUse" id="color-3_52139_gr3"><stop offset="0" stop-color="#ffffff"></stop><stop offset="1" stop-color="#ffffff"></stop></linearGradient><linearGradient x1="86" y1="32.25" x2="86" y2="148.71013" gradientUnits="userSpaceOnUse" id="color-4_52139_gr4"><stop offset="0" stop-color="#ffffff"></stop><stop offset="1" stop-color="#ffffff"></stop></linearGradient></defs><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,172v-172h172v172z" fill="none"></path><g><path d="M102.45825,99.43213h-5.70825c-1.4835,0 -2.6875,1.16637 -2.6875,2.65256v8.10013c0,1.48081 -1.19862,2.68481 -2.67944,2.68481h-10.76612c-1.48081,0 -2.67944,-1.204 -2.67944,-2.68481v-8.10013c0,-1.48619 -1.204,-2.65256 -2.6875,-2.65256h-5.70825c-1.93769,0 -3.04225,-2.39188 -1.88125,-4.05275l14.577,-20.855c1.8275,-2.61494 5.69481,-2.61763 7.52231,-0.00538l14.577,20.86306c1.16369,1.66088 0.05644,4.05006 -1.87856,4.05006z" fill="url(#color-1_52139_gr1)"></path><path d="M51.0625,67.1875h5.375c0,-8.0625 7.23206,-16.12231 16.125,-16.12231v-5.375c-11.85456,0 -21.5,10.74731 -21.5,21.49731z" fill="url(#color-2_52139_gr2)"></path><path d="M139.75,80.625c0,-10.75 -8.44144,-18.80981 -18.8125,-18.80981v5.375c7.40944,0 13.4375,5.37231 13.4375,13.43481z" fill="url(#color-3_52139_gr3)"></path><path d="M148.09738,92.27263c1.59369,-3.68188 2.40263,-7.59219 2.40263,-11.64494c0,-16.29969 -13.26281,-29.5625 -29.5625,-29.5625c-6.5145,0 -12.68769,2.08819 -17.78588,5.96088c-4.30269,-13.03438 -16.52006,-22.08587 -30.58912,-22.08587c-17.78319,0 -32.25,14.46681 -32.25,32.25c0,4.14681 0.16662,8.05981 1.42437,10.74731h-1.42437c-13.33806,0 -24.1875,10.84944 -24.1875,24.1875c0,11.56431 8.16194,21.24737 19.0275,23.62044c1.02394,6.39894 6.53869,11.31706 13.2225,11.31706h56.4375h16.125h5.375c6.54944,0 12.00238,-4.71388 13.18488,-10.92469c9.2235,-1.20131 16.37762,-9.08913 16.37762,-18.63513c0,-6.09256 -2.924,-11.72019 -7.77762,-15.23006zM126.3125,131.6875h-5.375h-16.125h-56.4375c-3.49912,0 -6.45538,-2.6875 -7.568,-5.375h93.0735c-1.11263,2.6875 -4.06888,5.375 -7.568,5.375zM137.0625,120.9375h-96.75c-10.37106,0 -18.8125,-8.44144 -18.8125,-18.8125c0,-10.37106 8.44144,-18.8125 18.8125,-18.8125h9.51375l-1.68506,-3.78131c-2.23063,-5.01488 -2.45369,-7.48737 -2.45369,-12.341c0,-14.81888 12.05613,-26.875 26.875,-26.875c13.01825,0 24.13106,9.29875 26.42619,22.11275l0.92719,5.17075l3.64962,-3.77325c4.60638,-4.76225 10.77687,-7.38525 17.372,-7.38525c13.33806,0 24.1875,10.84944 24.1875,24.1875c0,3.6765 -0.81431,7.21056 -2.37575,10.41944l-1.763,3.32713l2.37037,1.26044c4.40481,2.34081 7.14338,6.88806 7.14338,11.868c0,7.40944 -6.02806,13.43481 -13.4375,13.43481z" fill="url(#color-4_52139_gr4)"></path></g></g></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteAttempt">
|
||||
<delete-payment-attempt-form-component :data="item" :section="section" class="text-center"></delete-payment-attempt-form-component>
|
||||
</modal-component>
|
||||
<modal-component type="paymentProofModal">
|
||||
<payment-verification-form-component v-if="selected_id == item.id" :section="section" :data="item"></payment-verification-form-component>
|
||||
</modal-component>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
expandPaymentDetails: false,
|
||||
amount: (Math.round(1000 * 100) / 100).toFixed(2),
|
||||
selected_id: '',
|
||||
parameters: {
|
||||
amount: (Math.round(1000 * 100) / 100).toFixed(2),
|
||||
bank_id: 1
|
||||
},
|
||||
section: 'bookingDetailSection',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickExpand(){
|
||||
this.expandPaymentDetails = !this.expandPaymentDetails;
|
||||
},
|
||||
selectedID(id){
|
||||
this.selected_id = id;
|
||||
}
|
||||
},
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
<template>
|
||||
<div class="row" @keyup.enter="submitForm">
|
||||
<div class="col bg-white padding-40 b-rad-lg">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<h5 class="all-caps">Approve Invoice</h5>
|
||||
<div class="fs-11">Are you sure you want to approve this invoice?</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div data-dismiss="modal" class="btn btn-sm btn-default bg-master-lighter btn-block b-rad-none">Cancel</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div class="btn btn-success w-100 btn-sm" @click="submit(route('api.transaction.invoice.approve', data.id), 'put', section, true, true)">Confirm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import modalFormHandler from '../../../general/mixins/modalFormHandler';
|
||||
export default {
|
||||
mixins: [modalFormHandler]
|
||||
}
|
||||
|
||||
</script>
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
<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 payment booking? you will not be able to recover your booking after confirming your action.</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.transaction.suspend', 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,171 +0,0 @@
|
||||
<template>
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<div class="row bg-white b-a b-grey rounded padding-10" v-if="!isEdit">
|
||||
<div class="col">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto"><div class="icon-thumbnail icon-35 mr-0 bg-master-lightest light">{{index + 1}}</div></div>
|
||||
<div class="col">
|
||||
<p class="m-b-0 small muted">Name</p>
|
||||
<p class="m-b-0 bold">{{product.name}}</p>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="m-b-0 small muted">Unit Price</p>
|
||||
<p class="m-b-0 bold">{{product.price}}</p>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="m-b-0 small muted">Quantity</p>
|
||||
<p class="m-b-0 bold">{{product.quantity}}</p>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="m-b-0 small muted">Total</p>
|
||||
<p class="m-b-0 bold text-success">{{currency}} {{(Math.round((productTotal + Number.EPSILON) * 100) / 100).toFixed(2)}}</p>
|
||||
</div>
|
||||
<div class="col-auto" :class="{ 'invisible': ['SHIPPING_FEE', 'OVER_WEIGHT_CHARGES'].includes(product.reference) }">
|
||||
<div @click="isEdit = !isEdit" class="pointer">
|
||||
<i class="fa fa-pencil" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto" :class="{ 'invisible': ['SHIPPING_FEE', 'OVER_WEIGHT_CHARGES'].includes(product.reference) }">
|
||||
<div @click="$emit('remove')" class="pointer">
|
||||
<i class="fa fa-close" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="isEdit">
|
||||
<div class="col padding-25 bg-master-lightest">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.product.name">
|
||||
<label>Name</label>
|
||||
<input class="form-control" v-model="product.name">
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.product.price">
|
||||
<label>Unit Price</label>
|
||||
<input class="form-control" v-model="product.price">
|
||||
<!-- <input class="form-control" v-model="product.price" v-money="{decimal: '.',thousands: '', precision: 2}"> -->
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
<div class="col">
|
||||
<validation-wrapper-component :validator="$v.product.quantity">
|
||||
<label>Quantity</label>
|
||||
<!-- <input class="form-control" v-model="product.quantity" v-money="{decimal: '.',thousands: '', precision: 2}"> -->
|
||||
<input class="form-control" v-model="product.quantity" >
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>{{ data }}</p>
|
||||
|
||||
<div class="row m-t-15">
|
||||
<div class="col">
|
||||
<p class="m-b-0 small">Total</p>
|
||||
<h6 class="no-margin bold text-complete">{{currency}} {{productTotal.toFixed(3)}}</h6>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<button class="btn btn-lg btn-secondary b-rad-none" @click="cancelUpdate()">Cancel</button>
|
||||
<button class="btn btn-lg btn-outline-success b-rad-none" @click="updateProduct()">Save Changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formHandler from '../../../general/mixins/formHandler';
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
|
||||
export default {
|
||||
props: {
|
||||
editable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
currency:{
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
index:{
|
||||
type: Number,
|
||||
// required: true
|
||||
default: 0
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
isEdit: false,
|
||||
product: {
|
||||
name: '',
|
||||
quantity: 0,
|
||||
price: 0,
|
||||
amount: 0,
|
||||
},
|
||||
products: []
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
product: {
|
||||
name: { required },
|
||||
quantity: { required },
|
||||
price: { required },
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.data) {
|
||||
this.product = this.data;
|
||||
} else {
|
||||
this.isEdit = true;
|
||||
}
|
||||
this.product.amount = (Math.round((this.product.amount+ Number.EPSILON) * 1000) / 1000).toFixed(3);
|
||||
},
|
||||
computed: {
|
||||
productTotal(){
|
||||
return this.product.quantity * parseFloat((this.product.price).toString().replace(',', ''));
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
clearInterval(){
|
||||
clearInterval(this.interval);
|
||||
this.interval = false;
|
||||
},
|
||||
updateProduct(){
|
||||
if (!this.data) {
|
||||
this.$emit('add', {
|
||||
name: this.product.name,
|
||||
quantity: this.product.quantity,
|
||||
reference: 'CUSTOM_CHARGES',
|
||||
price: parseFloat((this.product.price).toString().replace(',', '')),
|
||||
amount: this.productTotal
|
||||
});
|
||||
|
||||
} else {
|
||||
this.isEdit = !this.isEdit;
|
||||
|
||||
console.log(this.data.reference);
|
||||
|
||||
this.$emit('change', {
|
||||
name: this.product.name,
|
||||
quantity: this.product.quantity,
|
||||
reference: this.data.reference,
|
||||
price: parseFloat((this.product.price).toString().replace(',', '')),
|
||||
amount: this.productTotal
|
||||
}, this.index);
|
||||
}
|
||||
},
|
||||
cancelUpdate() {
|
||||
if (!this.data) {
|
||||
this.$emit('change', 'cancelAddProduct', true);
|
||||
} else {
|
||||
this.isEdit = !this.isEdit;
|
||||
this.product = this.data;
|
||||
}
|
||||
}
|
||||
},
|
||||
mixins: [formHandler]
|
||||
}
|
||||
</script>
|
||||
@@ -1,79 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row no-margin">
|
||||
<div class="col p-b-15 p-l-0 p-r-0">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row" v-for="(detail, index) in details">
|
||||
<div class="col p-b-10 p-t-10 " :class="[{'b-grey' : index !== Object.keys(details).length - 1}, {'b-b' : index !== Object.keys(details).length - 1}]">
|
||||
<invoice-item-form-component :data="detail" :index="index" currency="MYR" :editable="!submitted" :section="section" @change="updateProduct($event, index)" v-on:remove="removeProduct(index)"></invoice-item-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" v-if="addCharges">
|
||||
<div class="col">
|
||||
<invoice-item-form-component currency="MYR" :editable="!submitted" :section="section" @change="addCharges = !addCharges" @add="addProduct($event)" v-on:remove="removeProduct(index)"></invoice-item-form-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row d-flex justify-content-center allign-items-between align-items-center m-b-15">
|
||||
<div class="col-auto">
|
||||
<div class="btn btn-outline-primary btn-md" @click="addCharges = !addCharges">{{ addCharges? 'Cancel' : 'Add Charges' }}</div>
|
||||
<div class="btn btn-outline-primary btn-md" @click="submitForm()">Save Change</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formHandler from '../../../general/mixins/formHandler';
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
interval:false,
|
||||
addCharges:false,
|
||||
canSubmitChanges:false,
|
||||
submitted: false,
|
||||
details: this.data.details,
|
||||
canSaveChange: false,
|
||||
parameters: {
|
||||
transaction_details: []
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateProduct(product, index) {
|
||||
this.details[index] = {
|
||||
name: product.name,
|
||||
quantity: product.quantity,
|
||||
reference: product.reference,
|
||||
price: parseFloat((product.price).toString().replace(',', '')),
|
||||
amount: parseFloat((product.amount).toString().replace(',', '')),
|
||||
};
|
||||
},
|
||||
removeProduct(index) {
|
||||
this.canSubmitChanges = !this.canSubmitChanges;
|
||||
this.data.details.splice(index, 1);
|
||||
},
|
||||
addProduct(newProduct) {
|
||||
this.canSubmitChanges = !this.canSubmitChanges;
|
||||
this.addCharges = !this.addCharges;
|
||||
this.details.push(newProduct);
|
||||
},
|
||||
submitForm() {
|
||||
this.canSubmitChanges = !this.canSubmitChanges;
|
||||
this.parameters.transaction_details = this.details;
|
||||
|
||||
console.log(this.parameters.transaction_details);
|
||||
|
||||
this.submit(this.route('api.transaction.invoice.update', this.data.id), 'put', this.section, true, true);
|
||||
}
|
||||
},
|
||||
mixins: [formHandler]
|
||||
}
|
||||
</script>
|
||||
@@ -1,49 +0,0 @@
|
||||
<template>
|
||||
<div class="row" @keyup.enter="submitForm">
|
||||
<div class="col">
|
||||
<div class="row bg-white padding-40 b-rad-lg">
|
||||
<div class="col">
|
||||
<h3 class="text-center m-b-15">Outstanding: MYR <span class="text-success bold">{{ data.outstanding.toFixed(2) }}</span></h3>
|
||||
|
||||
<validation-wrapper-component :validator="$v.parameters.amount">
|
||||
<label>Amount</label>
|
||||
<input class="form-control" v-model="parameters.amount" v-money="{decimal: '.',thousands: '', precision: 2}">
|
||||
</validation-wrapper-component>
|
||||
|
||||
<div class="row m-t-15 w-100 text-center">
|
||||
<div class="col">
|
||||
<button class="btn btn-lg btn-primary" @click="submitForm()" data-dismiss="modal">Make Payment</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formHandler from '../../../general/mixins/formHandler';
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
parameters : {
|
||||
amount: this.data.outstanding.toFixed(2),
|
||||
transaction_id: this.data.id
|
||||
}
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
parameters : {
|
||||
amount: { required },
|
||||
},
|
||||
},
|
||||
methods:{
|
||||
submitForm(){
|
||||
this.submit(this.route('api.transaction.payment.create'), 'post', this.section, true, true);
|
||||
}
|
||||
},
|
||||
mixins: [formHandler]
|
||||
}
|
||||
|
||||
</script>
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
<template>
|
||||
<div class="row" @keyup.enter="submitForm">
|
||||
<div class="col">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
|
||||
<div class="row" v-show="!$store.getters.isLoading(section)">
|
||||
<div class="col">
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-16 all-caps bold m-b-15">Payment Verification</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<div class="row align-items-top">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-10 muted all-caps">You are Paying</div>
|
||||
<div class="font-heading fs-16 bold text-success">
|
||||
{{data.currency.short_code}} {{(Math.round((data.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<error-message-component class="m-b-20" :error="error"></error-message-component>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<file-input-component :validator="$v.files" v-model="files">
|
||||
<template slot="label">
|
||||
<div class="font-heading fs-11 text-primary all-caps">Payment Proof</div>
|
||||
</template>
|
||||
</file-input-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-20">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm bg-master-lighter p-t-10 p-b-10 p-r-35 p-l-35 btn-default b-rad-none" data-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-success b-rad-none" @click="submitForm">Save and continue</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ModalFromHandler from '../../../general/mixins/modalFormHandler'
|
||||
import { required } from "vuelidate/lib/validators";
|
||||
export default {
|
||||
// props: {
|
||||
// id: {
|
||||
// required: true,
|
||||
// type: Number
|
||||
// }
|
||||
// },
|
||||
data(){
|
||||
return {
|
||||
files: [],
|
||||
parameters: {}
|
||||
}
|
||||
},
|
||||
validations: {
|
||||
files: {
|
||||
required
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
submitForm(){
|
||||
this.parameters = {
|
||||
files: this.files
|
||||
};
|
||||
this.submit(this.route('api.transaction.payment.verification.create', this.data.id), 'post', this.section, true, true)
|
||||
}
|
||||
},
|
||||
mixins: [ModalFromHandler]
|
||||
|
||||
}
|
||||
</script>
|
||||
-149
File diff suppressed because one or more lines are too long
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps">MYR {{item.price[data.id].amount}} <i class="fa fa-edit pointer fa-fw m-l-5 requestModal text-primary" data-type="editSegmentPrice"></i></div>
|
||||
<div class="font-heading all-caps">MYR 0.00 <i class="fa fa-edit pointer fa-fw m-l-5 requestModal text-primary" data-type="editSegmentPrice"></i></div>
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" type="editSegmentPrice">
|
||||
<edit-segment-price-form-component :data="item" :section="section"></edit-segment-price-form-component>
|
||||
</modal-component>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.value.amount">
|
||||
<label class="text-primary">Segment Price (MYR)</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control fs-12" v-model.trim="parameters.price[data.id].amount" v-money="money">
|
||||
<input type="text" class="form-control fs-12" v-model.trim="parameters.value.amount" v-money="money">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
<div class="row m-t-15">
|
||||
@@ -41,9 +41,8 @@
|
||||
return {
|
||||
parameters: {
|
||||
reference: 'CUSTOM_PRICE',
|
||||
id: this.data.id,
|
||||
value : {
|
||||
amount: this.data.price[this.data.id].amount
|
||||
amount: 0
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -11,135 +11,9 @@
|
||||
|
||||
body {
|
||||
font-family: sun-extA;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-top: 5em;
|
||||
}
|
||||
|
||||
.separator {
|
||||
text-align: right;
|
||||
border-bottom: 0.5px solid black;
|
||||
font-size: 0.7em;
|
||||
}
|
||||
|
||||
img.logo {
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 6em;
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2em;
|
||||
font-weight: 1200;
|
||||
}
|
||||
|
||||
.details {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
.sub-title {
|
||||
font-size: 1.3em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bill-to {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
th {
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.4em;
|
||||
/* text-align: center; */
|
||||
}
|
||||
|
||||
td.title {
|
||||
text-align: left;
|
||||
}
|
||||
td.description,
|
||||
th.description {
|
||||
text-align: justify;
|
||||
max-width: 40em;
|
||||
}
|
||||
|
||||
td.stock-code,
|
||||
th.stock-code {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
th {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
/* margin-top: 0.6em;
|
||||
margin-right: 0.6em; */
|
||||
}
|
||||
|
||||
.subtotal td {
|
||||
border-top: 1px solid black;
|
||||
}
|
||||
|
||||
.total {
|
||||
border-top: 1px solid black;
|
||||
border-bottom: 3px double black;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.address {}
|
||||
|
||||
*/ td.header-logo {
|
||||
/* text-align: left; */
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
td.header-cief-address {
|
||||
text-align: left;
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
td.header-details {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td.bill-to {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td.document-detail {
|
||||
text-align: left;
|
||||
border: 1px solid black;
|
||||
padding: 1em 1em 1em 1em;
|
||||
width: 16em;
|
||||
}
|
||||
|
||||
td.address {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
@extends('layouts.base_portal')
|
||||
@section('inner_content')
|
||||
<delivery-orders-section-component></delivery-orders-section-component>
|
||||
@endsection
|
||||
File diff suppressed because one or more lines are too long
@@ -1,10 +1,6 @@
|
||||
@extends('layouts.base_pdf')
|
||||
@section('inner_content')
|
||||
<br>
|
||||
<htmlpageheader name="page-header">
|
||||
<br><br>
|
||||
<div class="separator"><strong><i>{{ $invoice_transaction->bill_no }}</i></strong></div>
|
||||
</htmlpageheader>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="header-logo">
|
||||
@@ -17,28 +13,27 @@
|
||||
</strong>
|
||||
</span>
|
||||
<span class="company-reg">(1134596-M)</span><br>
|
||||
No. 72-3, Jalan Jalil 1,<br>
|
||||
The Earth Bukit Jalil,<br>
|
||||
57000 Kuala Lumpur<br>
|
||||
Tel: 03-8082 1252
|
||||
Malaysian Global Innovation & Creativity Center <br>
|
||||
Level 1 CWS, Block 3730, Persiaran APEC, <br>
|
||||
63000 Cyberjaya, Malaysian. <br>
|
||||
Tel: 018-2909252
|
||||
</td>
|
||||
<td class="header-details">
|
||||
<div class="title" style="font-size: 20px; text-transform: uppercase;">
|
||||
<h2 class="title">
|
||||
<strong>
|
||||
Invoice
|
||||
</strong>
|
||||
</div>
|
||||
</h2>
|
||||
|
||||
<div class="number">Invoice No: {{ $invoice_transaction->bill_no }}</div>
|
||||
<div class="number">INV. NO. {{ $invoice_transaction->bill_no }}</div>
|
||||
|
||||
@php
|
||||
$companyModule = $invoice_transaction->owner->owner->companyModule;
|
||||
@endphp
|
||||
|
||||
<div class="date">Date: {{ $invoice_transaction->created_at }}</div>
|
||||
<div class="ref">Order No: {{ $invoice_transaction->owner->owner->reference }}</div>
|
||||
<div class="ref">Container Ref: {{ $invoice_transaction->owner->containers()->first()->reference }}</div>
|
||||
{{--<div class="d-none">{{ $companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference }}</div>--}}
|
||||
<div class="ref">Ref# {{ $invoice_transaction->owner->owner->reference }}</div>
|
||||
<!-- <div class="d-none">{{ $companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference }}</div> -->
|
||||
<div class="date">Date: {{ $invoice_transaction->created_at->format('d-m-Y') }}</div>
|
||||
<div> </div>
|
||||
</div>
|
||||
</td>
|
||||
@@ -57,7 +52,7 @@
|
||||
</div>
|
||||
<div class="address">
|
||||
@php
|
||||
$addresses = $companyModule->addresses()->where('status', '=', \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED)->where('type', '=', \App\Classes\ValueObjects\Constants\AddressType::BILLING)->first();
|
||||
$addresses = $invoice_transaction->owner->owner->addresses()->where('status', '=', 2)->first();
|
||||
@endphp
|
||||
{{ $addresses->street_one }}
|
||||
{{ $addresses->street_two }} ,
|
||||
@@ -83,53 +78,53 @@
|
||||
<tr>
|
||||
<th width="5%">No</th>
|
||||
<th class="description">Description</th>
|
||||
<th width="15%">Quantity</th>
|
||||
<th width="20%">Unit Price (RM)</th>
|
||||
<th width="20%">Total Amount<br>(RM)</th>
|
||||
<th width="10%">Quantity</th>
|
||||
<th width="15%">Unit Price (RM)</th>
|
||||
<th width="10%">Total Amount<br>(RM)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($invoice_transaction->transactionDetails as $key => $transaction_detail)
|
||||
<tr>
|
||||
<td width="5%" class="center top">{{ $key + 1 }}</td>
|
||||
<td class="description">{!! $transaction_detail->name !!}</td>
|
||||
<td width="15%" class="center top" style="text-align: center">{{ round($transaction_detail->quantity, 3) }}</td>
|
||||
<td width="20%" class="center top" style="text-align: center">
|
||||
{{ round($transaction_detail->price, 2) }}
|
||||
<td class="description">{{ $transaction_detail->name }}</td>
|
||||
<td width="10%" class="center top">{{ $transaction_detail->quantity }}</td>
|
||||
<td width="15%" class="center top">
|
||||
{{ $transaction_detail->price }}
|
||||
</td>
|
||||
<td width="20%" class="right top">
|
||||
{{ round($transaction_detail->amount, 2) }}
|
||||
{{ $transaction_detail->amount }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="subtotal">
|
||||
<td colspan="3"></td>
|
||||
<td colspan="4"></td>
|
||||
<td class="right middle">Subtotal</td>
|
||||
<td class="right middle">
|
||||
{{ round($invoice_transaction->amount, 2) }}
|
||||
{{ number_format($invoice_transaction->amount, 2) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="billingcharges">
|
||||
<td colspan="3"></td>
|
||||
<td colspan="4"></td>
|
||||
<td class="right">Service Charges</td>
|
||||
<td class="right">
|
||||
{{ round($invoice_transaction->service_charge, 2) }}
|
||||
{{ number_format($invoice_transaction->service_charge, 2) }}
|
||||
</td>
|
||||
</tr>
|
||||
@if($invoice_transaction->tax > 0)
|
||||
<tr class="billingcharges">
|
||||
<td colspan="3"></td>
|
||||
<td colspan="4"></td>
|
||||
<td class="right">Tax</td>
|
||||
<td class="right">{{ number_format($invoice_transaction->tax, 2) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<td colspan="3"></td>
|
||||
<td colspan="4"></td>
|
||||
<td class="right middle">Total</td>
|
||||
<td class="total right middle">
|
||||
{{ round($invoice_transaction->amount, 2) }}
|
||||
{{ number_format($invoice_transaction->amount, 2) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<!-- <list-component section="segmentsSection" :endpoint="route('api.segment.list')" :options="{'type': 2}"> -->
|
||||
<list-component section="segmentsSection" :endpoint="route('api.segment.list')" :options="{'id_not': 1}">
|
||||
<list-component section="segmentsSection" :endpoint="route('api.segment.list')">
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<segment-component :data="data" section="segmentsSection"></segment-component>
|
||||
</template>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto hide">
|
||||
<div class="col-auto">
|
||||
<notification-section-component section="section"></notification-section-component>
|
||||
</div>
|
||||
<div class="col-auto p-r-20 d-md-none">
|
||||
|
||||
File diff suppressed because one or more lines are too long
+4
-4
@@ -11,10 +11,10 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani
|
||||
|
||||
Route::post('/team/create', 'AddNewMemberController@create')->name('team.create');
|
||||
|
||||
// Route::group(['prefix' => '{id}/segment', 'as' => 'segment.'], function () {
|
||||
// Route::post('/assign', 'AssignCompanyToSegmentController@assign')->name('assign');
|
||||
// Route::delete('/detach/{segment_id}', 'RemoveCompanyFromSegmentController@detach')->name('detach');
|
||||
// });
|
||||
Route::group(['prefix' => '{id}/segment', 'as' => 'segment.'], function () {
|
||||
Route::post('/assign', 'AssignCompanyToSegmentController@assign')->name('assign');
|
||||
Route::delete('/detach/{segment_id}', 'RemoveCompanyFromSegmentController@detach')->name('detach');
|
||||
});
|
||||
|
||||
Route::group(['prefix' => '{id}/connection/{company_connection_id}', 'as' => 'connection.'], function () {
|
||||
Route::post('/assign', 'AssignCompanyConnectionToConnectionSegmentController@assign')->name('assign');
|
||||
|
||||
@@ -9,8 +9,6 @@ Route::group(['prefix' => 'segment', 'as' => 'segment.', 'namespace' => 'Segment
|
||||
Route::put('/update/{id}', 'UpdateSegmentController@update')->name('update');
|
||||
Route::get('/list', 'ListSegmentsController@list')->name('list');
|
||||
|
||||
Route::get('/air-shipment/item-price/list', 'ListAirShipmentPriceController@list')->name('air_shipment.price.list');
|
||||
|
||||
Route::group(['prefix' => '{id}/constant', 'as' => 'constant.'], function () {
|
||||
Route::put('/service/update', 'UpdateCustomServiceConstantController@update')->name('service.update');
|
||||
Route::put('/update', 'UpdateConstantController@update')->name('update');
|
||||
|
||||
+6
-13
@@ -5,21 +5,14 @@ use Illuminate\Support\Facades\Route;
|
||||
Route::group(['prefix' => 'transactions', 'namespace' => 'Transactions', 'as' => 'transaction.'], function () {
|
||||
|
||||
Route::get('/list', 'ListTransactionsController@list')->name('list');
|
||||
Route::delete('/suspend/{id}', 'SuspendTransactionController@suspend')->name('suspend');
|
||||
// Route::delete('/suspend/{id}', 'SuspendTransactionController@suspend')->name('suspend');
|
||||
|
||||
Route::group(['prefix' => 'payment', 'as' => 'payment.'], function () {
|
||||
Route::post('/create', 'CreatePaymentTransactionController@create')->name('create');
|
||||
Route::post('/upload-verification-document/{transaction_id}', 'UploadPaymentVerificationDocumentController@upload')->name('verification.create');
|
||||
Route::put('/approve/{transaction_id}/{status}', 'ApprovePaymentTransactionController@approve')->where('status', 'approve|reject')->name('approval');
|
||||
});
|
||||
|
||||
Route::group(['prefix' => 'invoice', 'as' => 'invoice.'], function () {
|
||||
route::post('/shipping-invoice/create', 'CreateShippingInvoiceTransactionController@create')->name('create');
|
||||
route::put('/shipping-invoice/{id}/update', 'UpdateShippingInvoiceTransactionController@update')->name('update');
|
||||
route::put('/shipping-invoice/{id}/approve', 'ApproveShippingInvoiceTransactionController@approve')->name('approve');
|
||||
});
|
||||
Route::post('/payment/create', 'CreatePaymentTransactionController@create')->name('payment.create');
|
||||
Route::post('/payment/upload-verification-document/{transaction_id}', 'UploadPaymentVerificationDocumentController@upload')->name('verification.create');
|
||||
Route::put('/payment/approve/{transaction_id}/{status}', 'ApprovePaymentTransactionController@approve')->where('status', 'approve|reject')->name('approval');
|
||||
|
||||
route::post('/shipping-invoice/calculator', 'ShippingEstimationCalculatorController@calculate')->name('shipping.estimation.calculator');
|
||||
|
||||
route::post('/shipping-invoice/create', 'CreateShippingInvoiceTransactionController@create')->name('supplier.create');
|
||||
|
||||
// Route::group(['prefix' => '{id}/payment', 'as' => 'payment.'], function () {
|
||||
// Route::post('quotation', 'FetchBookingPaymentQuotationController@fetch')->name('quotation');
|
||||
|
||||
+13
-57
@@ -7,7 +7,6 @@ use App\Classes\Jobs\FetchOrdersFromYDPortalJob;
|
||||
use App\Classes\Jobs\FetchPackingListFromVTPortalJob;
|
||||
use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob;
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
|
||||
use App\Classes\Modules\PackingLists\Processors\FetchPackingListFromVTPortalProcessor;
|
||||
use App\Models\CompanyConnection;
|
||||
use App\Models\CompanyModule;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
@@ -56,16 +55,6 @@ Route::group(['prefix'=> '/last_mile_delivery', 'as' => 'last_mile_delivery.'],
|
||||
|
||||
});
|
||||
|
||||
Route::group(['prefix'=> '/air_shipment', 'as' => 'air_shipment.'], function () {
|
||||
// Route::get('/', function () {
|
||||
// return view('pages.accounts.signup');
|
||||
// })->name('login');
|
||||
|
||||
Route::get('/quotation', function () {
|
||||
return view('pages.airShipment.quotation');
|
||||
})->name('quotation');
|
||||
});
|
||||
|
||||
Route::get('', function () {
|
||||
return view('pages.accounts.login');
|
||||
})->name('login');
|
||||
@@ -153,14 +142,13 @@ Route::get('/customer/{marking}/details', function ($marking) {
|
||||
return view('pages.customers.profile_details', ['id' => $id]);
|
||||
})->name('customer.profile.details');
|
||||
|
||||
Route::get('/orders/refresh', function(\Illuminate\Http\Request $request){
|
||||
$packingLists = \App\Models\PackingList::where('type', \App\Classes\ValueObjects\Constants\PackingListType::WAREHOUSE_RECEIVE_LIST)->has('containers')->get();
|
||||
dd($packingLists);
|
||||
$packingLists->each(function (\App\Models\PackingList $packingList) {
|
||||
$packingList->containers()->detach();
|
||||
});
|
||||
Route::get('/orders/refresh', function(){
|
||||
|
||||
FetchWarehouseReceiveListFromVTPortalJob::withChain([
|
||||
new FetchLoadedContainersFromVTPortalJob,
|
||||
new FetchPackingListFromVTPortalJob,
|
||||
new FetchContainersStatusUpdateFromVTPortalJob,
|
||||
new FetchDeliveryListFromVTPortalJob,
|
||||
new FetchOrdersFromYDPortalJob
|
||||
])->dispatch();
|
||||
|
||||
@@ -170,7 +158,7 @@ Route::get('/orders/refresh', function(\Illuminate\Http\Request $request){
|
||||
|
||||
Route::get('/containers/refresh', function(){
|
||||
|
||||
dd((App()->make(\App\Classes\Modules\PackingLists\Processors\FetchLoadedContainersFromVTPortalProcessor::class))->execute());
|
||||
(App()->make(\App\Classes\Modules\PackingLists\Processors\FetchWarehouseReceiveListFromVTPortalProcessor::class))->execute();
|
||||
// FetchLoadedContainersFromVTPortalJob::dispatch();
|
||||
// FetchContainersStatusUpdateFromVTPortalJob::dispatch();
|
||||
|
||||
@@ -245,35 +233,9 @@ Route::get('/debug', function (){
|
||||
dd($issues);
|
||||
});
|
||||
|
||||
Route::get('/yd', function (\Illuminate\Http\Request $request){
|
||||
$start = $request->input('start_date') ? \Carbon\Carbon::parse($request->input('start_date')): null;
|
||||
$end = $request->input('end_date') ? \Carbon\Carbon::parse($request->input('end_date')): null;
|
||||
(App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute($start, $end);
|
||||
(App()->make(FetchPackingListFromVTPortalProcessor::class))->execute();
|
||||
})->name('yd.refresh');
|
||||
|
||||
Route::get('/container/{reference}/refresh/', function (string $reference){
|
||||
$container = Container::where('reference', $reference)->first();
|
||||
$supplier = in_array($container->owner_id, [3, 4]) ? 'VT' : 'YD';
|
||||
|
||||
$arrivalDates = \App\Models\PackingList::whereIn('reference', $container->packingLists->pluck('reference'))->where('type', \App\Classes\ValueObjects\Constants\PackingListType::WAREHOUSE_RECEIVE_LIST)->get()->map(function($packingList){
|
||||
return $packingList->transports()->first()->drop_date;
|
||||
})->sortBy(function($date){
|
||||
return $date;
|
||||
});
|
||||
|
||||
$startDate = $arrivalDates->first()->subDay()->format('d-m-Y');
|
||||
$endDate = $arrivalDates->last()->addDay()->format('d-m-Y');
|
||||
|
||||
if($supplier === 'VT'){
|
||||
return (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchLoadedContainersFromVTPortalProcessor::class))->execute(\Carbon\Carbon::parse($endDate), \Carbon\Carbon::parse($endDate)->addDays(5));
|
||||
}
|
||||
|
||||
if($supplier === 'YD'){
|
||||
return redirect(route('yd.refresh').'?start_date='.$startDate.'&end_date='.$endDate);
|
||||
}
|
||||
|
||||
})->name('container.refresh');
|
||||
Route::get('/yd', function (){
|
||||
(App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();
|
||||
});
|
||||
|
||||
Route::get('/min_cbm', function (){
|
||||
$companies = CompanyModule::where('type', \App\Classes\ValueObjects\Constants\BusinessType::IMPORTER)->whereHas('orders', function ($query){
|
||||
@@ -316,7 +278,8 @@ Route::get('/settings', function () {
|
||||
Route::get('/customer/{company_module_id}/summary', 'Exports\ExportCompanyModuleSummaryController@export')->name('customer.summary.export');
|
||||
|
||||
Route::get('/customer/summary/monthly', function () {
|
||||
$containers = Container::whereMonth('loading_date', '>=', ((float)\Carbon\Carbon::now()->format('m') - 2))->whereYear('loading_date', (float)\Carbon\Carbon::now()->format('Y'))->get();
|
||||
// $containers = Container::whereMonth('loading_date', 1)->where('owner_id', 3)->get();
|
||||
$containers = Container::whereIn('reference', ['EPS-3850', 'EPS-3863', 'WP-1331', 'EPS-3856'])->get();
|
||||
foreach ($containers as $container){
|
||||
$packingLists = $container->packingLists()->get()->filter(function ($packingList) {
|
||||
return $packingList->owner->company_module_id === 248;
|
||||
@@ -324,7 +287,7 @@ Route::get('/customer/summary/monthly', function () {
|
||||
|
||||
if (!count($packingLists)) continue;
|
||||
|
||||
echo '<table style="width: 100%; text-align: center;">
|
||||
echo '<table>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Full Marking</th>
|
||||
@@ -343,7 +306,7 @@ Route::get('/customer/summary/monthly', function () {
|
||||
$packages = $packingList->packages;
|
||||
foreach ($packages as $package){
|
||||
echo '<tr>
|
||||
<td>'.$container->loading_date->format('d-m-Y').'</td>
|
||||
<td>-</td>
|
||||
<td>MS/CIEF/769SMC/'.$packingList->owner->reference.'</td>
|
||||
<td>'.$container->reference.'</td>
|
||||
<td>'.$package->description.'</td>
|
||||
@@ -410,11 +373,4 @@ Route::get('/customers/active/{active_start}/{active_end}/{inactive_start?}/{ina
|
||||
|
||||
Route::get('/online_payment/redirect', 'Billplz\CallbackBillplzController@callback')->name('online_payment.redirect');
|
||||
|
||||
Route::get('/order/{id}', function ($id) {
|
||||
return view('pages.orders.profile', ['id' => $id]);
|
||||
})->name('order.details');
|
||||
|
||||
Route::get('/payment-and-billing', function () {
|
||||
return view('pages.paymentAndBilling');
|
||||
})->name('admin.payment-and-billing');
|
||||
Route::get('/notifications/list', 'Notifications\ListNotificationsController@list')->name('notifications.list');
|
||||
|
||||
@@ -0,0 +1,572 @@
|
||||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
171 => 'guillemotleft',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
170 => 'ordfeminine',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Helvetica',
|
||||
'FullName' => 'Helvetica',
|
||||
'FamilyName' => 'Helvetica',
|
||||
'Weight' => 'Medium',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-166',
|
||||
1 => '-225',
|
||||
2 => '1000',
|
||||
3 => '931',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '718',
|
||||
'XHeight' => '523',
|
||||
'Ascender' => '718',
|
||||
'Descender' => '-207',
|
||||
'StdHW' => '76',
|
||||
'StdVW' => '88',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 278.0,
|
||||
160 => 278.0,
|
||||
33 => 278.0,
|
||||
34 => 355.0,
|
||||
35 => 556.0,
|
||||
36 => 556.0,
|
||||
37 => 889.0,
|
||||
38 => 667.0,
|
||||
146 => 222.0,
|
||||
40 => 333.0,
|
||||
41 => 333.0,
|
||||
42 => 389.0,
|
||||
43 => 584.0,
|
||||
44 => 278.0,
|
||||
45 => 333.0,
|
||||
173 => 333.0,
|
||||
46 => 278.0,
|
||||
47 => 278.0,
|
||||
48 => 556.0,
|
||||
49 => 556.0,
|
||||
50 => 556.0,
|
||||
51 => 556.0,
|
||||
52 => 556.0,
|
||||
53 => 556.0,
|
||||
54 => 556.0,
|
||||
55 => 556.0,
|
||||
56 => 556.0,
|
||||
57 => 556.0,
|
||||
58 => 278.0,
|
||||
59 => 278.0,
|
||||
60 => 584.0,
|
||||
61 => 584.0,
|
||||
62 => 584.0,
|
||||
63 => 556.0,
|
||||
64 => 1015.0,
|
||||
65 => 667.0,
|
||||
66 => 667.0,
|
||||
67 => 722.0,
|
||||
68 => 722.0,
|
||||
69 => 667.0,
|
||||
70 => 611.0,
|
||||
71 => 778.0,
|
||||
72 => 722.0,
|
||||
73 => 278.0,
|
||||
74 => 500.0,
|
||||
75 => 667.0,
|
||||
76 => 556.0,
|
||||
77 => 833.0,
|
||||
78 => 722.0,
|
||||
79 => 778.0,
|
||||
80 => 667.0,
|
||||
81 => 778.0,
|
||||
82 => 722.0,
|
||||
83 => 667.0,
|
||||
84 => 611.0,
|
||||
85 => 722.0,
|
||||
86 => 667.0,
|
||||
87 => 944.0,
|
||||
88 => 667.0,
|
||||
89 => 667.0,
|
||||
90 => 611.0,
|
||||
91 => 278.0,
|
||||
92 => 278.0,
|
||||
93 => 278.0,
|
||||
94 => 469.0,
|
||||
95 => 556.0,
|
||||
145 => 222.0,
|
||||
97 => 556.0,
|
||||
98 => 556.0,
|
||||
99 => 500.0,
|
||||
100 => 556.0,
|
||||
101 => 556.0,
|
||||
102 => 278.0,
|
||||
103 => 556.0,
|
||||
104 => 556.0,
|
||||
105 => 222.0,
|
||||
106 => 222.0,
|
||||
107 => 500.0,
|
||||
108 => 222.0,
|
||||
109 => 833.0,
|
||||
110 => 556.0,
|
||||
111 => 556.0,
|
||||
112 => 556.0,
|
||||
113 => 556.0,
|
||||
114 => 333.0,
|
||||
115 => 500.0,
|
||||
116 => 278.0,
|
||||
117 => 556.0,
|
||||
118 => 500.0,
|
||||
119 => 722.0,
|
||||
120 => 500.0,
|
||||
121 => 500.0,
|
||||
122 => 500.0,
|
||||
123 => 334.0,
|
||||
124 => 260.0,
|
||||
125 => 334.0,
|
||||
126 => 584.0,
|
||||
161 => 333.0,
|
||||
162 => 556.0,
|
||||
163 => 556.0,
|
||||
'fraction' => 167.0,
|
||||
165 => 556.0,
|
||||
131 => 556.0,
|
||||
167 => 556.0,
|
||||
164 => 556.0,
|
||||
39 => 191.0,
|
||||
147 => 333.0,
|
||||
171 => 556.0,
|
||||
139 => 333.0,
|
||||
155 => 333.0,
|
||||
'fi' => 500.0,
|
||||
'fl' => 500.0,
|
||||
150 => 556.0,
|
||||
134 => 556.0,
|
||||
135 => 556.0,
|
||||
183 => 278.0,
|
||||
182 => 537.0,
|
||||
149 => 350.0,
|
||||
130 => 222.0,
|
||||
132 => 333.0,
|
||||
148 => 333.0,
|
||||
187 => 556.0,
|
||||
133 => 1000.0,
|
||||
137 => 1000.0,
|
||||
191 => 611.0,
|
||||
96 => 333.0,
|
||||
180 => 333.0,
|
||||
136 => 333.0,
|
||||
152 => 333.0,
|
||||
175 => 333.0,
|
||||
'breve' => 333.0,
|
||||
'dotaccent' => 333.0,
|
||||
168 => 333.0,
|
||||
'ring' => 333.0,
|
||||
184 => 333.0,
|
||||
'hungarumlaut' => 333.0,
|
||||
'ogonek' => 333.0,
|
||||
'caron' => 333.0,
|
||||
151 => 1000.0,
|
||||
198 => 1000.0,
|
||||
170 => 370.0,
|
||||
'Lslash' => 556.0,
|
||||
216 => 778.0,
|
||||
140 => 1000.0,
|
||||
186 => 365.0,
|
||||
230 => 889.0,
|
||||
'dotlessi' => 278.0,
|
||||
'lslash' => 222.0,
|
||||
248 => 611.0,
|
||||
156 => 944.0,
|
||||
223 => 611.0,
|
||||
207 => 278.0,
|
||||
233 => 556.0,
|
||||
'abreve' => 556.0,
|
||||
'uhungarumlaut' => 556.0,
|
||||
'ecaron' => 556.0,
|
||||
159 => 667.0,
|
||||
247 => 584.0,
|
||||
221 => 667.0,
|
||||
194 => 667.0,
|
||||
225 => 556.0,
|
||||
219 => 722.0,
|
||||
253 => 500.0,
|
||||
'scommaaccent' => 500.0,
|
||||
234 => 556.0,
|
||||
'Uring' => 722.0,
|
||||
220 => 722.0,
|
||||
'aogonek' => 556.0,
|
||||
218 => 722.0,
|
||||
'uogonek' => 556.0,
|
||||
203 => 667.0,
|
||||
'Dcroat' => 722.0,
|
||||
'commaaccent' => 250.0,
|
||||
169 => 737.0,
|
||||
'Emacron' => 667.0,
|
||||
'ccaron' => 500.0,
|
||||
229 => 556.0,
|
||||
'Ncommaaccent' => 722.0,
|
||||
'lacute' => 222.0,
|
||||
224 => 556.0,
|
||||
'Tcommaaccent' => 611.0,
|
||||
'Cacute' => 722.0,
|
||||
227 => 556.0,
|
||||
'Edotaccent' => 667.0,
|
||||
154 => 500.0,
|
||||
'scedilla' => 500.0,
|
||||
237 => 278.0,
|
||||
'lozenge' => 471.0,
|
||||
'Rcaron' => 722.0,
|
||||
'Gcommaaccent' => 778.0,
|
||||
251 => 556.0,
|
||||
226 => 556.0,
|
||||
'Amacron' => 667.0,
|
||||
'rcaron' => 333.0,
|
||||
231 => 500.0,
|
||||
'Zdotaccent' => 611.0,
|
||||
222 => 667.0,
|
||||
'Omacron' => 778.0,
|
||||
'Racute' => 722.0,
|
||||
'Sacute' => 667.0,
|
||||
'dcaron' => 643.0,
|
||||
'Umacron' => 722.0,
|
||||
'uring' => 556.0,
|
||||
179 => 333.0,
|
||||
210 => 778.0,
|
||||
192 => 667.0,
|
||||
'Abreve' => 667.0,
|
||||
215 => 584.0,
|
||||
250 => 556.0,
|
||||
'Tcaron' => 611.0,
|
||||
'partialdiff' => 476.0,
|
||||
255 => 500.0,
|
||||
'Nacute' => 722.0,
|
||||
238 => 278.0,
|
||||
202 => 667.0,
|
||||
228 => 556.0,
|
||||
235 => 556.0,
|
||||
'cacute' => 500.0,
|
||||
'nacute' => 556.0,
|
||||
'umacron' => 556.0,
|
||||
'Ncaron' => 722.0,
|
||||
205 => 278.0,
|
||||
177 => 584.0,
|
||||
166 => 260.0,
|
||||
174 => 737.0,
|
||||
'Gbreve' => 778.0,
|
||||
'Idotaccent' => 278.0,
|
||||
'summation' => 600.0,
|
||||
200 => 667.0,
|
||||
'racute' => 333.0,
|
||||
'omacron' => 556.0,
|
||||
'Zacute' => 611.0,
|
||||
142 => 611.0,
|
||||
'greaterequal' => 549.0,
|
||||
208 => 722.0,
|
||||
199 => 722.0,
|
||||
'lcommaaccent' => 222.0,
|
||||
'tcaron' => 317.0,
|
||||
'eogonek' => 556.0,
|
||||
'Uogonek' => 722.0,
|
||||
193 => 667.0,
|
||||
196 => 667.0,
|
||||
232 => 556.0,
|
||||
'zacute' => 500.0,
|
||||
'iogonek' => 222.0,
|
||||
211 => 778.0,
|
||||
243 => 556.0,
|
||||
'amacron' => 556.0,
|
||||
'sacute' => 500.0,
|
||||
239 => 278.0,
|
||||
212 => 778.0,
|
||||
217 => 722.0,
|
||||
'Delta' => 612.0,
|
||||
254 => 556.0,
|
||||
178 => 333.0,
|
||||
214 => 778.0,
|
||||
181 => 556.0,
|
||||
236 => 278.0,
|
||||
'ohungarumlaut' => 556.0,
|
||||
'Eogonek' => 667.0,
|
||||
'dcroat' => 556.0,
|
||||
190 => 834.0,
|
||||
'Scedilla' => 667.0,
|
||||
'lcaron' => 299.0,
|
||||
'Kcommaaccent' => 667.0,
|
||||
'Lacute' => 556.0,
|
||||
153 => 1000.0,
|
||||
'edotaccent' => 556.0,
|
||||
204 => 278.0,
|
||||
'Imacron' => 278.0,
|
||||
'Lcaron' => 556.0,
|
||||
189 => 834.0,
|
||||
'lessequal' => 549.0,
|
||||
244 => 556.0,
|
||||
241 => 556.0,
|
||||
'Uhungarumlaut' => 722.0,
|
||||
201 => 667.0,
|
||||
'emacron' => 556.0,
|
||||
'gbreve' => 556.0,
|
||||
188 => 834.0,
|
||||
138 => 667.0,
|
||||
'Scommaaccent' => 667.0,
|
||||
'Ohungarumlaut' => 778.0,
|
||||
176 => 400.0,
|
||||
242 => 556.0,
|
||||
'Ccaron' => 722.0,
|
||||
249 => 556.0,
|
||||
'radical' => 453.0,
|
||||
'Dcaron' => 722.0,
|
||||
'rcommaaccent' => 333.0,
|
||||
209 => 722.0,
|
||||
245 => 556.0,
|
||||
'Rcommaaccent' => 722.0,
|
||||
'Lcommaaccent' => 556.0,
|
||||
195 => 667.0,
|
||||
'Aogonek' => 667.0,
|
||||
197 => 667.0,
|
||||
213 => 778.0,
|
||||
'zdotaccent' => 500.0,
|
||||
'Ecaron' => 667.0,
|
||||
'Iogonek' => 278.0,
|
||||
'kcommaaccent' => 500.0,
|
||||
'minus' => 584.0,
|
||||
206 => 278.0,
|
||||
'ncaron' => 556.0,
|
||||
'tcommaaccent' => 278.0,
|
||||
172 => 584.0,
|
||||
246 => 556.0,
|
||||
252 => 556.0,
|
||||
'notequal' => 549.0,
|
||||
'gcommaaccent' => 556.0,
|
||||
240 => 556.0,
|
||||
158 => 500.0,
|
||||
'ncommaaccent' => 556.0,
|
||||
185 => 333.0,
|
||||
'imacron' => 278.0,
|
||||
128 => 556.0,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 6,
|
||||
);
|
||||
@@ -0,0 +1,572 @@
|
||||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
171 => 'guillemotleft',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
170 => 'ordfeminine',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Times-Bold',
|
||||
'FullName' => 'Times Bold',
|
||||
'FamilyName' => 'Times',
|
||||
'Weight' => 'Bold',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-168',
|
||||
1 => '-218',
|
||||
2 => '1000',
|
||||
3 => '935',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '676',
|
||||
'XHeight' => '461',
|
||||
'Ascender' => '683',
|
||||
'Descender' => '-217',
|
||||
'StdHW' => '44',
|
||||
'StdVW' => '139',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 250.0,
|
||||
160 => 250.0,
|
||||
33 => 333.0,
|
||||
34 => 555.0,
|
||||
35 => 500.0,
|
||||
36 => 500.0,
|
||||
37 => 1000.0,
|
||||
38 => 833.0,
|
||||
146 => 333.0,
|
||||
40 => 333.0,
|
||||
41 => 333.0,
|
||||
42 => 500.0,
|
||||
43 => 570.0,
|
||||
44 => 250.0,
|
||||
45 => 333.0,
|
||||
173 => 333.0,
|
||||
46 => 250.0,
|
||||
47 => 278.0,
|
||||
48 => 500.0,
|
||||
49 => 500.0,
|
||||
50 => 500.0,
|
||||
51 => 500.0,
|
||||
52 => 500.0,
|
||||
53 => 500.0,
|
||||
54 => 500.0,
|
||||
55 => 500.0,
|
||||
56 => 500.0,
|
||||
57 => 500.0,
|
||||
58 => 333.0,
|
||||
59 => 333.0,
|
||||
60 => 570.0,
|
||||
61 => 570.0,
|
||||
62 => 570.0,
|
||||
63 => 500.0,
|
||||
64 => 930.0,
|
||||
65 => 722.0,
|
||||
66 => 667.0,
|
||||
67 => 722.0,
|
||||
68 => 722.0,
|
||||
69 => 667.0,
|
||||
70 => 611.0,
|
||||
71 => 778.0,
|
||||
72 => 778.0,
|
||||
73 => 389.0,
|
||||
74 => 500.0,
|
||||
75 => 778.0,
|
||||
76 => 667.0,
|
||||
77 => 944.0,
|
||||
78 => 722.0,
|
||||
79 => 778.0,
|
||||
80 => 611.0,
|
||||
81 => 778.0,
|
||||
82 => 722.0,
|
||||
83 => 556.0,
|
||||
84 => 667.0,
|
||||
85 => 722.0,
|
||||
86 => 722.0,
|
||||
87 => 1000.0,
|
||||
88 => 722.0,
|
||||
89 => 722.0,
|
||||
90 => 667.0,
|
||||
91 => 333.0,
|
||||
92 => 278.0,
|
||||
93 => 333.0,
|
||||
94 => 581.0,
|
||||
95 => 500.0,
|
||||
145 => 333.0,
|
||||
97 => 500.0,
|
||||
98 => 556.0,
|
||||
99 => 444.0,
|
||||
100 => 556.0,
|
||||
101 => 444.0,
|
||||
102 => 333.0,
|
||||
103 => 500.0,
|
||||
104 => 556.0,
|
||||
105 => 278.0,
|
||||
106 => 333.0,
|
||||
107 => 556.0,
|
||||
108 => 278.0,
|
||||
109 => 833.0,
|
||||
110 => 556.0,
|
||||
111 => 500.0,
|
||||
112 => 556.0,
|
||||
113 => 556.0,
|
||||
114 => 444.0,
|
||||
115 => 389.0,
|
||||
116 => 333.0,
|
||||
117 => 556.0,
|
||||
118 => 500.0,
|
||||
119 => 722.0,
|
||||
120 => 500.0,
|
||||
121 => 500.0,
|
||||
122 => 444.0,
|
||||
123 => 394.0,
|
||||
124 => 220.0,
|
||||
125 => 394.0,
|
||||
126 => 520.0,
|
||||
161 => 333.0,
|
||||
162 => 500.0,
|
||||
163 => 500.0,
|
||||
'fraction' => 167.0,
|
||||
165 => 500.0,
|
||||
131 => 500.0,
|
||||
167 => 500.0,
|
||||
164 => 500.0,
|
||||
39 => 278.0,
|
||||
147 => 500.0,
|
||||
171 => 500.0,
|
||||
139 => 333.0,
|
||||
155 => 333.0,
|
||||
'fi' => 556.0,
|
||||
'fl' => 556.0,
|
||||
150 => 500.0,
|
||||
134 => 500.0,
|
||||
135 => 500.0,
|
||||
183 => 250.0,
|
||||
182 => 540.0,
|
||||
149 => 350.0,
|
||||
130 => 333.0,
|
||||
132 => 500.0,
|
||||
148 => 500.0,
|
||||
187 => 500.0,
|
||||
133 => 1000.0,
|
||||
137 => 1000.0,
|
||||
191 => 500.0,
|
||||
96 => 333.0,
|
||||
180 => 333.0,
|
||||
136 => 333.0,
|
||||
152 => 333.0,
|
||||
175 => 333.0,
|
||||
'breve' => 333.0,
|
||||
'dotaccent' => 333.0,
|
||||
168 => 333.0,
|
||||
'ring' => 333.0,
|
||||
184 => 333.0,
|
||||
'hungarumlaut' => 333.0,
|
||||
'ogonek' => 333.0,
|
||||
'caron' => 333.0,
|
||||
151 => 1000.0,
|
||||
198 => 1000.0,
|
||||
170 => 300.0,
|
||||
'Lslash' => 667.0,
|
||||
216 => 778.0,
|
||||
140 => 1000.0,
|
||||
186 => 330.0,
|
||||
230 => 722.0,
|
||||
'dotlessi' => 278.0,
|
||||
'lslash' => 278.0,
|
||||
248 => 500.0,
|
||||
156 => 722.0,
|
||||
223 => 556.0,
|
||||
207 => 389.0,
|
||||
233 => 444.0,
|
||||
'abreve' => 500.0,
|
||||
'uhungarumlaut' => 556.0,
|
||||
'ecaron' => 444.0,
|
||||
159 => 722.0,
|
||||
247 => 570.0,
|
||||
221 => 722.0,
|
||||
194 => 722.0,
|
||||
225 => 500.0,
|
||||
219 => 722.0,
|
||||
253 => 500.0,
|
||||
'scommaaccent' => 389.0,
|
||||
234 => 444.0,
|
||||
'Uring' => 722.0,
|
||||
220 => 722.0,
|
||||
'aogonek' => 500.0,
|
||||
218 => 722.0,
|
||||
'uogonek' => 556.0,
|
||||
203 => 667.0,
|
||||
'Dcroat' => 722.0,
|
||||
'commaaccent' => 250.0,
|
||||
169 => 747.0,
|
||||
'Emacron' => 667.0,
|
||||
'ccaron' => 444.0,
|
||||
229 => 500.0,
|
||||
'Ncommaaccent' => 722.0,
|
||||
'lacute' => 278.0,
|
||||
224 => 500.0,
|
||||
'Tcommaaccent' => 667.0,
|
||||
'Cacute' => 722.0,
|
||||
227 => 500.0,
|
||||
'Edotaccent' => 667.0,
|
||||
154 => 389.0,
|
||||
'scedilla' => 389.0,
|
||||
237 => 278.0,
|
||||
'lozenge' => 494.0,
|
||||
'Rcaron' => 722.0,
|
||||
'Gcommaaccent' => 778.0,
|
||||
251 => 556.0,
|
||||
226 => 500.0,
|
||||
'Amacron' => 722.0,
|
||||
'rcaron' => 444.0,
|
||||
231 => 444.0,
|
||||
'Zdotaccent' => 667.0,
|
||||
222 => 611.0,
|
||||
'Omacron' => 778.0,
|
||||
'Racute' => 722.0,
|
||||
'Sacute' => 556.0,
|
||||
'dcaron' => 672.0,
|
||||
'Umacron' => 722.0,
|
||||
'uring' => 556.0,
|
||||
179 => 300.0,
|
||||
210 => 778.0,
|
||||
192 => 722.0,
|
||||
'Abreve' => 722.0,
|
||||
215 => 570.0,
|
||||
250 => 556.0,
|
||||
'Tcaron' => 667.0,
|
||||
'partialdiff' => 494.0,
|
||||
255 => 500.0,
|
||||
'Nacute' => 722.0,
|
||||
238 => 278.0,
|
||||
202 => 667.0,
|
||||
228 => 500.0,
|
||||
235 => 444.0,
|
||||
'cacute' => 444.0,
|
||||
'nacute' => 556.0,
|
||||
'umacron' => 556.0,
|
||||
'Ncaron' => 722.0,
|
||||
205 => 389.0,
|
||||
177 => 570.0,
|
||||
166 => 220.0,
|
||||
174 => 747.0,
|
||||
'Gbreve' => 778.0,
|
||||
'Idotaccent' => 389.0,
|
||||
'summation' => 600.0,
|
||||
200 => 667.0,
|
||||
'racute' => 444.0,
|
||||
'omacron' => 500.0,
|
||||
'Zacute' => 667.0,
|
||||
142 => 667.0,
|
||||
'greaterequal' => 549.0,
|
||||
208 => 722.0,
|
||||
199 => 722.0,
|
||||
'lcommaaccent' => 278.0,
|
||||
'tcaron' => 416.0,
|
||||
'eogonek' => 444.0,
|
||||
'Uogonek' => 722.0,
|
||||
193 => 722.0,
|
||||
196 => 722.0,
|
||||
232 => 444.0,
|
||||
'zacute' => 444.0,
|
||||
'iogonek' => 278.0,
|
||||
211 => 778.0,
|
||||
243 => 500.0,
|
||||
'amacron' => 500.0,
|
||||
'sacute' => 389.0,
|
||||
239 => 278.0,
|
||||
212 => 778.0,
|
||||
217 => 722.0,
|
||||
'Delta' => 612.0,
|
||||
254 => 556.0,
|
||||
178 => 300.0,
|
||||
214 => 778.0,
|
||||
181 => 556.0,
|
||||
236 => 278.0,
|
||||
'ohungarumlaut' => 500.0,
|
||||
'Eogonek' => 667.0,
|
||||
'dcroat' => 556.0,
|
||||
190 => 750.0,
|
||||
'Scedilla' => 556.0,
|
||||
'lcaron' => 394.0,
|
||||
'Kcommaaccent' => 778.0,
|
||||
'Lacute' => 667.0,
|
||||
153 => 1000.0,
|
||||
'edotaccent' => 444.0,
|
||||
204 => 389.0,
|
||||
'Imacron' => 389.0,
|
||||
'Lcaron' => 667.0,
|
||||
189 => 750.0,
|
||||
'lessequal' => 549.0,
|
||||
244 => 500.0,
|
||||
241 => 556.0,
|
||||
'Uhungarumlaut' => 722.0,
|
||||
201 => 667.0,
|
||||
'emacron' => 444.0,
|
||||
'gbreve' => 500.0,
|
||||
188 => 750.0,
|
||||
138 => 556.0,
|
||||
'Scommaaccent' => 556.0,
|
||||
'Ohungarumlaut' => 778.0,
|
||||
176 => 400.0,
|
||||
242 => 500.0,
|
||||
'Ccaron' => 722.0,
|
||||
249 => 556.0,
|
||||
'radical' => 549.0,
|
||||
'Dcaron' => 722.0,
|
||||
'rcommaaccent' => 444.0,
|
||||
209 => 722.0,
|
||||
245 => 500.0,
|
||||
'Rcommaaccent' => 722.0,
|
||||
'Lcommaaccent' => 667.0,
|
||||
195 => 722.0,
|
||||
'Aogonek' => 722.0,
|
||||
197 => 722.0,
|
||||
213 => 778.0,
|
||||
'zdotaccent' => 444.0,
|
||||
'Ecaron' => 667.0,
|
||||
'Iogonek' => 389.0,
|
||||
'kcommaaccent' => 556.0,
|
||||
'minus' => 570.0,
|
||||
206 => 389.0,
|
||||
'ncaron' => 556.0,
|
||||
'tcommaaccent' => 333.0,
|
||||
172 => 570.0,
|
||||
246 => 500.0,
|
||||
252 => 556.0,
|
||||
'notequal' => 549.0,
|
||||
'gcommaaccent' => 500.0,
|
||||
240 => 500.0,
|
||||
158 => 444.0,
|
||||
'ncommaaccent' => 556.0,
|
||||
185 => 300.0,
|
||||
'imacron' => 278.0,
|
||||
128 => 500.0,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 6,
|
||||
);
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php return array (
|
||||
'sans-serif' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Helvetica',
|
||||
'bold' => $rootDir . '/lib/fonts/Helvetica-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Helvetica-Oblique',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Helvetica-BoldOblique',
|
||||
),
|
||||
'times' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Times-Roman',
|
||||
'bold' => $rootDir . '/lib/fonts/Times-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Times-Italic',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Times-BoldItalic',
|
||||
),
|
||||
'times-roman' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Times-Roman',
|
||||
'bold' => $rootDir . '/lib/fonts/Times-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Times-Italic',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Times-BoldItalic',
|
||||
),
|
||||
'courier' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Courier',
|
||||
'bold' => $rootDir . '/lib/fonts/Courier-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Courier-Oblique',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Courier-BoldOblique',
|
||||
),
|
||||
'helvetica' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Helvetica',
|
||||
'bold' => $rootDir . '/lib/fonts/Helvetica-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Helvetica-Oblique',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Helvetica-BoldOblique',
|
||||
),
|
||||
'zapfdingbats' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/ZapfDingbats',
|
||||
'bold' => $rootDir . '/lib/fonts/ZapfDingbats',
|
||||
'italic' => $rootDir . '/lib/fonts/ZapfDingbats',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/ZapfDingbats',
|
||||
),
|
||||
'symbol' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Symbol',
|
||||
'bold' => $rootDir . '/lib/fonts/Symbol',
|
||||
'italic' => $rootDir . '/lib/fonts/Symbol',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Symbol',
|
||||
),
|
||||
'serif' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Times-Roman',
|
||||
'bold' => $rootDir . '/lib/fonts/Times-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Times-Italic',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Times-BoldItalic',
|
||||
),
|
||||
'monospace' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Courier',
|
||||
'bold' => $rootDir . '/lib/fonts/Courier-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Courier-Oblique',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Courier-BoldOblique',
|
||||
),
|
||||
'fixed' => array(
|
||||
'normal' => $rootDir . '/lib/fonts/Courier',
|
||||
'bold' => $rootDir . '/lib/fonts/Courier-Bold',
|
||||
'italic' => $rootDir . '/lib/fonts/Courier-Oblique',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/Courier-BoldOblique',
|
||||
),
|
||||
'dejavu sans' => array(
|
||||
'bold' => $rootDir . '/lib/fonts/DejaVuSans-Bold',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/DejaVuSans-BoldOblique',
|
||||
'italic' => $rootDir . '/lib/fonts/DejaVuSans-Oblique',
|
||||
'normal' => $rootDir . '/lib/fonts/DejaVuSans',
|
||||
),
|
||||
'dejavu sans mono' => array(
|
||||
'bold' => $rootDir . '/lib/fonts/DejaVuSansMono-Bold',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/DejaVuSansMono-BoldOblique',
|
||||
'italic' => $rootDir . '/lib/fonts/DejaVuSansMono-Oblique',
|
||||
'normal' => $rootDir . '/lib/fonts/DejaVuSansMono',
|
||||
),
|
||||
'dejavu serif' => array(
|
||||
'bold' => $rootDir . '/lib/fonts/DejaVuSerif-Bold',
|
||||
'bold_italic' => $rootDir . '/lib/fonts/DejaVuSerif-BoldItalic',
|
||||
'italic' => $rootDir . '/lib/fonts/DejaVuSerif-Italic',
|
||||
'normal' => $rootDir . '/lib/fonts/DejaVuSerif',
|
||||
),
|
||||
'simhei' => array(
|
||||
'normal' => $fontDir . '/simhei',
|
||||
'bold' => $fontDir . '/simhei',
|
||||
'italic' => $fontDir . '/simhei',
|
||||
'bold_italic' => $fontDir . '/simhei',
|
||||
),
|
||||
'fontawesome' => array(
|
||||
'normal' => $fontDir . '/fontawesome_normal_c6d7408a227b5962c5926faffde7049d',
|
||||
),
|
||||
) ?>
|
||||
Binary file not shown.
@@ -0,0 +1,732 @@
|
||||
StartFontMetrics 4.1
|
||||
Notice Converted by PHP-font-lib
|
||||
Comment https://github.com/PhenX/php-font-lib
|
||||
EncodingScheme FontSpecific
|
||||
Copyright Copyright Dave Gandy 2016. All rights reserved.
|
||||
FontName FontAwesome
|
||||
FontSubfamily Regular
|
||||
UniqueID FONTLAB:OTFEXPORT
|
||||
FullName FontAwesome
|
||||
Version Version 4.7.0 2016
|
||||
PostScriptName FontAwesome
|
||||
Trademark Please refer to the Copyright section for the font trademark attribution notices.
|
||||
Manufacturer Fort Awesome
|
||||
Designer Dave Gandy
|
||||
FontVendorURL http://fontawesome.io
|
||||
LicenseURL http://fontawesome.io/license/
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
UnderlineThickness 0
|
||||
UnderlinePosition 0
|
||||
FontHeightOffset 0
|
||||
Ascender 857
|
||||
Descender -143
|
||||
FontBBox -1 -143 1286 857
|
||||
StartCharMetrics 707
|
||||
U 32 ; WX 250 ; N space ; G 3
|
||||
U 168 ; WX 1000 ; N dieresis ; G 4
|
||||
U 169 ; WX 1000 ; N copyright ; G 5
|
||||
U 174 ; WX 1000 ; N registered ; G 6
|
||||
U 180 ; WX 1000 ; N acute ; G 7
|
||||
U 198 ; WX 1000 ; N AE ; G 8
|
||||
U 216 ; WX 1000 ; N Oslash ; G 9
|
||||
U 8482 ; WX 1000 ; N trademark ; G 10
|
||||
U 8734 ; WX 1000 ; N infinity ; G 11
|
||||
U 8800 ; WX 1000 ; N notequal ; G 12
|
||||
U 61440 ; WX 1000 ; N glass ; G 13
|
||||
U 61441 ; WX 857 ; N music ; G 14
|
||||
U 61442 ; WX 929 ; N search ; G 15
|
||||
U 61443 ; WX 1000 ; N envelope ; G 16
|
||||
U 61444 ; WX 1000 ; N heart ; G 17
|
||||
U 61445 ; WX 929 ; N star ; G 18
|
||||
U 61446 ; WX 929 ; N star_empty ; G 19
|
||||
U 61447 ; WX 714 ; N user ; G 20
|
||||
U 61448 ; WX 1071 ; N film ; G 21
|
||||
U 61449 ; WX 929 ; N th_large ; G 22
|
||||
U 61450 ; WX 1000 ; N th ; G 23
|
||||
U 61451 ; WX 1000 ; N th_list ; G 24
|
||||
U 61452 ; WX 1000 ; N ok ; G 25
|
||||
U 61453 ; WX 786 ; N remove ; G 26
|
||||
U 61454 ; WX 929 ; N zoom_in ; G 27
|
||||
U 61456 ; WX 929 ; N zoom_out ; G 28
|
||||
U 61457 ; WX 857 ; N off ; G 29
|
||||
U 61458 ; WX 1000 ; N signal ; G 30
|
||||
U 61459 ; WX 857 ; N cog ; G 31
|
||||
U 61460 ; WX 786 ; N trash ; G 32
|
||||
U 61461 ; WX 929 ; N home ; G 33
|
||||
U 61462 ; WX 857 ; N file_alt ; G 34
|
||||
U 61463 ; WX 857 ; N time ; G 35
|
||||
U 61464 ; WX 1071 ; N road ; G 36
|
||||
U 61465 ; WX 929 ; N download_alt ; G 37
|
||||
U 61466 ; WX 857 ; N download ; G 38
|
||||
U 61467 ; WX 857 ; N upload ; G 39
|
||||
U 61468 ; WX 857 ; N inbox ; G 40
|
||||
U 61469 ; WX 857 ; N play_circle ; G 41
|
||||
U 61470 ; WX 857 ; N repeat ; G 42
|
||||
U 61473 ; WX 857 ; N refresh ; G 43
|
||||
U 61474 ; WX 1000 ; N list_alt ; G 44
|
||||
U 61475 ; WX 643 ; N lock ; G 45
|
||||
U 61476 ; WX 1000 ; N flag ; G 46
|
||||
U 61477 ; WX 929 ; N headphones ; G 47
|
||||
U 61478 ; WX 429 ; N volume_off ; G 48
|
||||
U 61479 ; WX 643 ; N volume_down ; G 49
|
||||
U 61480 ; WX 929 ; N volume_up ; G 50
|
||||
U 61481 ; WX 786 ; N qrcode ; G 51
|
||||
U 61482 ; WX 1000 ; N barcode ; G 52
|
||||
U 61483 ; WX 857 ; N tag ; G 53
|
||||
U 61484 ; WX 1071 ; N tags ; G 54
|
||||
U 61485 ; WX 929 ; N book ; G 55
|
||||
U 61486 ; WX 714 ; N bookmark ; G 56
|
||||
U 61487 ; WX 929 ; N print ; G 57
|
||||
U 61488 ; WX 1071 ; N camera ; G 58
|
||||
U 61489 ; WX 929 ; N font ; G 59
|
||||
U 61490 ; WX 786 ; N bold ; G 60
|
||||
U 61491 ; WX 571 ; N italic ; G 61
|
||||
U 61492 ; WX 1000 ; N text_height ; G 62
|
||||
U 61493 ; WX 857 ; N text_width ; G 63
|
||||
U 61494 ; WX 1000 ; N align_left ; G 64
|
||||
U 61495 ; WX 1000 ; N align_center ; G 65
|
||||
U 61496 ; WX 1000 ; N align_right ; G 66
|
||||
U 61497 ; WX 1000 ; N align_justify ; G 67
|
||||
U 61498 ; WX 1000 ; N list ; G 68
|
||||
U 61499 ; WX 1000 ; N indent_left ; G 69
|
||||
U 61500 ; WX 1000 ; N indent_right ; G 70
|
||||
U 61501 ; WX 1000 ; N facetime_video ; G 71
|
||||
U 61502 ; WX 1071 ; N picture ; G 72
|
||||
U 61504 ; WX 857 ; N pencil ; G 73
|
||||
U 61505 ; WX 571 ; N map_marker ; G 74
|
||||
U 61506 ; WX 857 ; N adjust ; G 75
|
||||
U 61507 ; WX 571 ; N tint ; G 76
|
||||
U 61508 ; WX 1000 ; N edit ; G 77
|
||||
U 61509 ; WX 929 ; N share ; G 78
|
||||
U 61510 ; WX 929 ; N check ; G 79
|
||||
U 61511 ; WX 1000 ; N move ; G 80
|
||||
U 61512 ; WX 571 ; N step_backward ; G 81
|
||||
U 61513 ; WX 1000 ; N fast_backward ; G 82
|
||||
U 61514 ; WX 929 ; N backward ; G 83
|
||||
U 61515 ; WX 786 ; N play ; G 84
|
||||
U 61516 ; WX 857 ; N pause ; G 85
|
||||
U 61517 ; WX 857 ; N stop ; G 86
|
||||
U 61518 ; WX 929 ; N forward ; G 87
|
||||
U 61520 ; WX 1000 ; N fast_forward ; G 88
|
||||
U 61521 ; WX 571 ; N step_forward ; G 89
|
||||
U 61522 ; WX 858 ; N eject ; G 90
|
||||
U 61523 ; WX 714 ; N chevron_left ; G 91
|
||||
U 61524 ; WX 714 ; N chevron_right ; G 92
|
||||
U 61525 ; WX 857 ; N plus_sign ; G 93
|
||||
U 61526 ; WX 857 ; N minus_sign ; G 94
|
||||
U 61527 ; WX 857 ; N remove_sign ; G 95
|
||||
U 61528 ; WX 857 ; N ok_sign ; G 96
|
||||
U 61529 ; WX 857 ; N question_sign ; G 97
|
||||
U 61530 ; WX 857 ; N info_sign ; G 98
|
||||
U 61531 ; WX 857 ; N screenshot ; G 99
|
||||
U 61532 ; WX 857 ; N remove_circle ; G 100
|
||||
U 61533 ; WX 857 ; N ok_circle ; G 101
|
||||
U 61534 ; WX 857 ; N ban_circle ; G 102
|
||||
U 61536 ; WX 857 ; N arrow_left ; G 103
|
||||
U 61537 ; WX 857 ; N arrow_right ; G 104
|
||||
U 61538 ; WX 929 ; N arrow_up ; G 105
|
||||
U 61539 ; WX 929 ; N arrow_down ; G 106
|
||||
U 61540 ; WX 1000 ; N share_alt ; G 107
|
||||
U 61541 ; WX 857 ; N resize_full ; G 108
|
||||
U 61542 ; WX 857 ; N resize_small ; G 109
|
||||
U 61543 ; WX 786 ; N plus ; G 110
|
||||
U 61544 ; WX 786 ; N minus ; G 111
|
||||
U 61545 ; WX 929 ; N asterisk ; G 112
|
||||
U 61546 ; WX 857 ; N exclamation_sign ; G 113
|
||||
U 61547 ; WX 857 ; N gift ; G 114
|
||||
U 61548 ; WX 1000 ; N leaf ; G 115
|
||||
U 61549 ; WX 786 ; N fire ; G 116
|
||||
U 61550 ; WX 1000 ; N eye_open ; G 117
|
||||
U 61552 ; WX 1000 ; N eye_close ; G 118
|
||||
U 61553 ; WX 1000 ; N warning_sign ; G 119
|
||||
U 61554 ; WX 786 ; N plane ; G 120
|
||||
U 61555 ; WX 929 ; N calendar ; G 121
|
||||
U 61556 ; WX 1000 ; N random ; G 122
|
||||
U 61557 ; WX 1000 ; N comment ; G 123
|
||||
U 61558 ; WX 857 ; N magnet ; G 124
|
||||
U 61559 ; WX 1000 ; N chevron_up ; G 125
|
||||
U 61560 ; WX 1000 ; N chevron_down ; G 126
|
||||
U 61561 ; WX 1071 ; N retweet ; G 127
|
||||
U 61562 ; WX 929 ; N shopping_cart ; G 128
|
||||
U 61563 ; WX 929 ; N folder_close ; G 129
|
||||
U 61564 ; WX 1071 ; N folder_open ; G 130
|
||||
U 61565 ; WX 429 ; N resize_vertical ; G 131
|
||||
U 61566 ; WX 1000 ; N resize_horizontal ; G 132
|
||||
U 61568 ; WX 1143 ; N bar_chart ; G 133
|
||||
U 61569 ; WX 857 ; N twitter_sign ; G 134
|
||||
U 61570 ; WX 857 ; N facebook_sign ; G 135
|
||||
U 61571 ; WX 1000 ; N camera_retro ; G 136
|
||||
U 61572 ; WX 1000 ; N key ; G 137
|
||||
U 61573 ; WX 1071 ; N cogs ; G 138
|
||||
U 61574 ; WX 1000 ; N comments ; G 139
|
||||
U 61575 ; WX 857 ; N thumbs_up_alt ; G 140
|
||||
U 61576 ; WX 857 ; N thumbs_down_alt ; G 141
|
||||
U 61577 ; WX 500 ; N star_half ; G 142
|
||||
U 61578 ; WX 1000 ; N heart_empty ; G 143
|
||||
U 61579 ; WX 929 ; N signout ; G 144
|
||||
U 61580 ; WX 857 ; N linkedin_sign ; G 145
|
||||
U 61581 ; WX 643 ; N pushpin ; G 146
|
||||
U 61582 ; WX 1000 ; N external_link ; G 147
|
||||
U 61584 ; WX 857 ; N signin ; G 148
|
||||
U 61585 ; WX 929 ; N trophy ; G 149
|
||||
U 61586 ; WX 857 ; N github_sign ; G 150
|
||||
U 61587 ; WX 929 ; N upload_alt ; G 151
|
||||
U 61588 ; WX 857 ; N lemon ; G 152
|
||||
U 61589 ; WX 786 ; N phone ; G 153
|
||||
U 61590 ; WX 786 ; N check_empty ; G 154
|
||||
U 61591 ; WX 714 ; N bookmark_empty ; G 155
|
||||
U 61592 ; WX 857 ; N phone_sign ; G 156
|
||||
U 61593 ; WX 929 ; N twitter ; G 157
|
||||
U 61594 ; WX 571 ; N facebook ; G 158
|
||||
U 61595 ; WX 857 ; N github ; G 159
|
||||
U 61596 ; WX 929 ; N unlock ; G 160
|
||||
U 61597 ; WX 1071 ; N credit_card ; G 161
|
||||
U 61598 ; WX 786 ; N rss ; G 162
|
||||
U 61600 ; WX 857 ; N hdd ; G 163
|
||||
U 61601 ; WX 1000 ; N bullhorn ; G 164
|
||||
U 61602 ; WX 1000 ; N bell ; G 165
|
||||
U 61603 ; WX 857 ; N certificate ; G 166
|
||||
U 61604 ; WX 1000 ; N hand_right ; G 167
|
||||
U 61605 ; WX 1000 ; N hand_left ; G 168
|
||||
U 61606 ; WX 857 ; N hand_up ; G 169
|
||||
U 61607 ; WX 857 ; N hand_down ; G 170
|
||||
U 61608 ; WX 857 ; N circle_arrow_left ; G 171
|
||||
U 61609 ; WX 857 ; N circle_arrow_right ; G 172
|
||||
U 61610 ; WX 857 ; N circle_arrow_up ; G 173
|
||||
U 61611 ; WX 857 ; N circle_arrow_down ; G 174
|
||||
U 61612 ; WX 857 ; N globe ; G 175
|
||||
U 61613 ; WX 929 ; N wrench ; G 176
|
||||
U 61614 ; WX 1000 ; N tasks ; G 177
|
||||
U 61616 ; WX 786 ; N filter ; G 178
|
||||
U 61617 ; WX 1000 ; N briefcase ; G 179
|
||||
U 61618 ; WX 857 ; N fullscreen ; G 180
|
||||
U 61632 ; WX 1071 ; N group ; G 181
|
||||
U 61633 ; WX 929 ; N link ; G 182
|
||||
U 61634 ; WX 1071 ; N cloud ; G 183
|
||||
U 61635 ; WX 929 ; N beaker ; G 184
|
||||
U 61636 ; WX 1000 ; N cut ; G 185
|
||||
U 61637 ; WX 1000 ; N copy ; G 186
|
||||
U 61638 ; WX 786 ; N paper_clip ; G 187
|
||||
U 61639 ; WX 857 ; N save ; G 188
|
||||
U 61640 ; WX 857 ; N sign_blank ; G 189
|
||||
U 61641 ; WX 857 ; N reorder ; G 190
|
||||
U 61642 ; WX 1000 ; N ul ; G 191
|
||||
U 61643 ; WX 1000 ; N ol ; G 192
|
||||
U 61644 ; WX 1000 ; N strikethrough ; G 193
|
||||
U 61645 ; WX 857 ; N underline ; G 194
|
||||
U 61646 ; WX 929 ; N table ; G 195
|
||||
U 61648 ; WX 929 ; N magic ; G 196
|
||||
U 61649 ; WX 1000 ; N truck ; G 197
|
||||
U 61650 ; WX 857 ; N pinterest ; G 198
|
||||
U 61651 ; WX 857 ; N pinterest_sign ; G 199
|
||||
U 61652 ; WX 857 ; N google_plus_sign ; G 200
|
||||
U 61653 ; WX 1286 ; N google_plus ; G 201
|
||||
U 61654 ; WX 1071 ; N money ; G 202
|
||||
U 61655 ; WX 571 ; N caret_down ; G 203
|
||||
U 61656 ; WX 571 ; N caret_up ; G 204
|
||||
U 61657 ; WX 357 ; N caret_left ; G 205
|
||||
U 61658 ; WX 357 ; N caret_right ; G 206
|
||||
U 61659 ; WX 929 ; N columns ; G 207
|
||||
U 61660 ; WX 571 ; N sort ; G 208
|
||||
U 61661 ; WX 571 ; N sort_down ; G 209
|
||||
U 61662 ; WX 571 ; N sort_up ; G 210
|
||||
U 61664 ; WX 1000 ; N envelope_alt ; G 211
|
||||
U 61665 ; WX 857 ; N linkedin ; G 212
|
||||
U 61666 ; WX 857 ; N undo ; G 213
|
||||
U 61667 ; WX 1000 ; N legal ; G 214
|
||||
U 61668 ; WX 1000 ; N dashboard ; G 215
|
||||
U 61669 ; WX 1000 ; N comment_alt ; G 216
|
||||
U 61670 ; WX 1000 ; N comments_alt ; G 217
|
||||
U 61671 ; WX 500 ; N bolt ; G 218
|
||||
U 61672 ; WX 1000 ; N sitemap ; G 219
|
||||
U 61673 ; WX 929 ; N umbrella ; G 220
|
||||
U 61674 ; WX 1000 ; N paste ; G 221
|
||||
U 61675 ; WX 571 ; N light_bulb ; G 222
|
||||
U 61676 ; WX 1000 ; N exchange ; G 223
|
||||
U 61677 ; WX 1071 ; N cloud_download ; G 224
|
||||
U 61678 ; WX 1071 ; N cloud_upload ; G 225
|
||||
U 61680 ; WX 786 ; N user_md ; G 226
|
||||
U 61681 ; WX 786 ; N stethoscope ; G 227
|
||||
U 61682 ; WX 1000 ; N suitcase ; G 228
|
||||
U 61683 ; WX 1000 ; N bell_alt ; G 229
|
||||
U 61684 ; WX 1071 ; N coffee ; G 230
|
||||
U 61685 ; WX 786 ; N food ; G 231
|
||||
U 61686 ; WX 857 ; N file_text_alt ; G 232
|
||||
U 61687 ; WX 786 ; N building ; G 233
|
||||
U 61688 ; WX 786 ; N hospital ; G 234
|
||||
U 61689 ; WX 1071 ; N ambulance ; G 235
|
||||
U 61690 ; WX 1000 ; N medkit ; G 236
|
||||
U 61691 ; WX 1071 ; N fighter_jet ; G 237
|
||||
U 61692 ; WX 929 ; N beer ; G 238
|
||||
U 61693 ; WX 857 ; N h_sign ; G 239
|
||||
U 61694 ; WX 857 ; N f0fe ; G 240
|
||||
U 61696 ; WX 571 ; N double_angle_left ; G 241
|
||||
U 61697 ; WX 571 ; N double_angle_right ; G 242
|
||||
U 61698 ; WX 643 ; N double_angle_up ; G 243
|
||||
U 61699 ; WX 643 ; N double_angle_down ; G 244
|
||||
U 61700 ; WX 357 ; N angle_left ; G 245
|
||||
U 61701 ; WX 357 ; N angle_right ; G 246
|
||||
U 61702 ; WX 643 ; N angle_up ; G 247
|
||||
U 61703 ; WX 643 ; N angle_down ; G 248
|
||||
U 61704 ; WX 1071 ; N desktop ; G 249
|
||||
U 61705 ; WX 1071 ; N laptop ; G 250
|
||||
U 61706 ; WX 643 ; N tablet ; G 251
|
||||
U 61707 ; WX 429 ; N mobile_phone ; G 252
|
||||
U 61708 ; WX 857 ; N circle_blank ; G 253
|
||||
U 61709 ; WX 929 ; N quote_left ; G 254
|
||||
U 61710 ; WX 929 ; N quote_right ; G 255
|
||||
U 61712 ; WX 1000 ; N spinner ; G 256
|
||||
U 61713 ; WX 857 ; N circle ; G 257
|
||||
U 61714 ; WX 1000 ; N reply ; G 258
|
||||
U 61715 ; WX 929 ; N github_alt ; G 259
|
||||
U 61716 ; WX 929 ; N folder_close_alt ; G 260
|
||||
U 61717 ; WX 1071 ; N folder_open_alt ; G 261
|
||||
U 61718 ; WX 1000 ; N expand_alt ; G 262
|
||||
U 61719 ; WX 1000 ; N collapse_alt ; G 263
|
||||
U 61720 ; WX 857 ; N smile ; G 264
|
||||
U 61721 ; WX 857 ; N frown ; G 265
|
||||
U 61722 ; WX 857 ; N meh ; G 266
|
||||
U 61723 ; WX 1071 ; N gamepad ; G 267
|
||||
U 61724 ; WX 1071 ; N keyboard ; G 268
|
||||
U 61725 ; WX 1000 ; N flag_alt ; G 269
|
||||
U 61726 ; WX 1000 ; N flag_checkered ; G 270
|
||||
U 61728 ; WX 929 ; N terminal ; G 271
|
||||
U 61729 ; WX 1071 ; N code ; G 272
|
||||
U 61730 ; WX 1000 ; N reply_all ; G 273
|
||||
U 61731 ; WX 929 ; N star_half_empty ; G 274
|
||||
U 61732 ; WX 786 ; N location_arrow ; G 275
|
||||
U 61733 ; WX 929 ; N crop ; G 276
|
||||
U 61734 ; WX 571 ; N code_fork ; G 277
|
||||
U 61735 ; WX 929 ; N unlink ; G 278
|
||||
U 61736 ; WX 571 ; N question ; G 279
|
||||
U 61737 ; WX 357 ; N _279 ; G 280
|
||||
U 61738 ; WX 357 ; N exclamation ; G 281
|
||||
U 61739 ; WX 857 ; N superscript ; G 282
|
||||
U 61740 ; WX 857 ; N subscript ; G 283
|
||||
U 61741 ; WX 1071 ; N _283 ; G 284
|
||||
U 61742 ; WX 929 ; N puzzle_piece ; G 285
|
||||
U 61744 ; WX 643 ; N microphone ; G 286
|
||||
U 61745 ; WX 786 ; N microphone_off ; G 287
|
||||
U 61746 ; WX 714 ; N shield ; G 288
|
||||
U 61747 ; WX 929 ; N calendar_empty ; G 289
|
||||
U 61748 ; WX 786 ; N fire_extinguisher ; G 290
|
||||
U 61749 ; WX 929 ; N rocket ; G 291
|
||||
U 61750 ; WX 1000 ; N maxcdn ; G 292
|
||||
U 61751 ; WX 857 ; N chevron_sign_left ; G 293
|
||||
U 61752 ; WX 857 ; N chevron_sign_right ; G 294
|
||||
U 61753 ; WX 857 ; N chevron_sign_up ; G 295
|
||||
U 61754 ; WX 857 ; N chevron_sign_down ; G 296
|
||||
U 61755 ; WX 786 ; N html5 ; G 297
|
||||
U 61756 ; WX 1000 ; N css3 ; G 298
|
||||
U 61757 ; WX 1000 ; N anchor ; G 299
|
||||
U 61758 ; WX 643 ; N unlock_alt ; G 300
|
||||
U 61760 ; WX 857 ; N bullseye ; G 301
|
||||
U 61761 ; WX 786 ; N ellipsis_horizontal ; G 302
|
||||
U 61762 ; WX 214 ; N ellipsis_vertical ; G 303
|
||||
U 61763 ; WX 857 ; N _303 ; G 304
|
||||
U 61764 ; WX 857 ; N play_sign ; G 305
|
||||
U 61765 ; WX 1000 ; N ticket ; G 306
|
||||
U 61766 ; WX 857 ; N minus_sign_alt ; G 307
|
||||
U 61767 ; WX 786 ; N check_minus ; G 308
|
||||
U 61768 ; WX 571 ; N level_up ; G 309
|
||||
U 61769 ; WX 571 ; N level_down ; G 310
|
||||
U 61770 ; WX 857 ; N check_sign ; G 311
|
||||
U 61771 ; WX 857 ; N edit_sign ; G 312
|
||||
U 61772 ; WX 857 ; N _312 ; G 313
|
||||
U 61773 ; WX 857 ; N share_sign ; G 314
|
||||
U 61774 ; WX 857 ; N compass ; G 315
|
||||
U 61776 ; WX 857 ; N collapse ; G 316
|
||||
U 61777 ; WX 857 ; N collapse_top ; G 317
|
||||
U 61778 ; WX 857 ; N _317 ; G 318
|
||||
U 61779 ; WX 571 ; N eur ; G 319
|
||||
U 61780 ; WX 571 ; N gbp ; G 320
|
||||
U 61781 ; WX 571 ; N usd ; G 321
|
||||
U 61782 ; WX 501 ; N inr ; G 322
|
||||
U 61783 ; WX 573 ; N jpy ; G 323
|
||||
U 61784 ; WX 714 ; N rub ; G 324
|
||||
U 61785 ; WX 1000 ; N krw ; G 325
|
||||
U 61786 ; WX 714 ; N btc ; G 326
|
||||
U 61787 ; WX 857 ; N file ; G 327
|
||||
U 61788 ; WX 857 ; N file_text ; G 328
|
||||
U 61789 ; WX 929 ; N sort_by_alphabet ; G 329
|
||||
U 61790 ; WX 929 ; N _329 ; G 330
|
||||
U 61792 ; WX 1000 ; N sort_by_attributes ; G 331
|
||||
U 61793 ; WX 1000 ; N sort_by_attributes_alt ; G 332
|
||||
U 61794 ; WX 857 ; N sort_by_order ; G 333
|
||||
U 61795 ; WX 857 ; N sort_by_order_alt ; G 334
|
||||
U 61796 ; WX 929 ; N _334 ; G 335
|
||||
U 61797 ; WX 929 ; N _335 ; G 336
|
||||
U 61798 ; WX 857 ; N youtube_sign ; G 337
|
||||
U 61799 ; WX 857 ; N youtube ; G 338
|
||||
U 61800 ; WX 786 ; N xing ; G 339
|
||||
U 61801 ; WX 857 ; N xing_sign ; G 340
|
||||
U 61802 ; WX 1000 ; N youtube_play ; G 341
|
||||
U 61803 ; WX 1000 ; N dropbox ; G 342
|
||||
U 61804 ; WX 857 ; N stackexchange ; G 343
|
||||
U 61805 ; WX 857 ; N instagram ; G 344
|
||||
U 61806 ; WX 857 ; N flickr ; G 345
|
||||
U 61808 ; WX 857 ; N adn ; G 346
|
||||
U 61809 ; WX 786 ; N f171 ; G 347
|
||||
U 61810 ; WX 857 ; N bitbucket_sign ; G 348
|
||||
U 61811 ; WX 571 ; N tumblr ; G 349
|
||||
U 61812 ; WX 857 ; N tumblr_sign ; G 350
|
||||
U 61813 ; WX 429 ; N long_arrow_down ; G 351
|
||||
U 61814 ; WX 429 ; N long_arrow_up ; G 352
|
||||
U 61815 ; WX 1000 ; N long_arrow_left ; G 353
|
||||
U 61816 ; WX 1000 ; N long_arrow_right ; G 354
|
||||
U 61817 ; WX 786 ; N applelogo ; G 355
|
||||
U 61818 ; WX 929 ; N windows ; G 356
|
||||
U 61819 ; WX 786 ; N android ; G 357
|
||||
U 61820 ; WX 857 ; N linux ; G 358
|
||||
U 61821 ; WX 857 ; N dribble ; G 359
|
||||
U 61822 ; WX 857 ; N skype ; G 360
|
||||
U 61824 ; WX 714 ; N foursquare ; G 361
|
||||
U 61825 ; WX 857 ; N trello ; G 362
|
||||
U 61826 ; WX 714 ; N female ; G 363
|
||||
U 61827 ; WX 571 ; N male ; G 364
|
||||
U 61828 ; WX 857 ; N gittip ; G 365
|
||||
U 61829 ; WX 1000 ; N sun ; G 366
|
||||
U 61830 ; WX 857 ; N _366 ; G 367
|
||||
U 61831 ; WX 1000 ; N archive ; G 368
|
||||
U 61832 ; WX 929 ; N bug ; G 369
|
||||
U 61833 ; WX 1071 ; N vk ; G 370
|
||||
U 61834 ; WX 1000 ; N weibo ; G 371
|
||||
U 61835 ; WX 857 ; N renren ; G 372
|
||||
U 61836 ; WX 786 ; N _372 ; G 373
|
||||
U 61837 ; WX 714 ; N stack_exchange ; G 374
|
||||
U 61838 ; WX 857 ; N _374 ; G 375
|
||||
U 61840 ; WX 857 ; N arrow_circle_alt_left ; G 376
|
||||
U 61841 ; WX 857 ; N _376 ; G 377
|
||||
U 61842 ; WX 857 ; N dot_circle_alt ; G 378
|
||||
U 61843 ; WX 929 ; N _378 ; G 379
|
||||
U 61844 ; WX 857 ; N vimeo_square ; G 380
|
||||
U 61845 ; WX 643 ; N _380 ; G 381
|
||||
U 61846 ; WX 786 ; N plus_square_o ; G 382
|
||||
U 61847 ; WX 1214 ; N _382 ; G 383
|
||||
U 61848 ; WX 929 ; N _383 ; G 384
|
||||
U 61849 ; WX 857 ; N _384 ; G 385
|
||||
U 61850 ; WX 1000 ; N _385 ; G 386
|
||||
U 61851 ; WX 1000 ; N _386 ; G 387
|
||||
U 61852 ; WX 1143 ; N _387 ; G 388
|
||||
U 61853 ; WX 1286 ; N _388 ; G 389
|
||||
U 61854 ; WX 857 ; N _389 ; G 390
|
||||
U 61856 ; WX 857 ; N uniF1A0 ; G 391
|
||||
U 61857 ; WX 1000 ; N f1a1 ; G 392
|
||||
U 61858 ; WX 857 ; N _392 ; G 393
|
||||
U 61859 ; WX 857 ; N _393 ; G 394
|
||||
U 61860 ; WX 1071 ; N f1a4 ; G 395
|
||||
U 61861 ; WX 857 ; N _395 ; G 396
|
||||
U 61862 ; WX 1143 ; N _396 ; G 397
|
||||
U 61863 ; WX 857 ; N _397 ; G 398
|
||||
U 61864 ; WX 1137 ; N _398 ; G 399
|
||||
U 61865 ; WX 857 ; N _399 ; G 400
|
||||
U 61866 ; WX 857 ; N _400 ; G 401
|
||||
U 61867 ; WX 857 ; N f1ab ; G 402
|
||||
U 61868 ; WX 1000 ; N _402 ; G 403
|
||||
U 61869 ; WX 857 ; N _403 ; G 404
|
||||
U 61870 ; WX 714 ; N _404 ; G 405
|
||||
U 61872 ; WX 929 ; N uniF1B1 ; G 406
|
||||
U 61873 ; WX 429 ; N _406 ; G 407
|
||||
U 61874 ; WX 1000 ; N _407 ; G 408
|
||||
U 61875 ; WX 1286 ; N _408 ; G 409
|
||||
U 61876 ; WX 1143 ; N _409 ; G 410
|
||||
U 61877 ; WX 857 ; N _410 ; G 411
|
||||
U 61878 ; WX 1000 ; N _411 ; G 412
|
||||
U 61879 ; WX 857 ; N _412 ; G 413
|
||||
U 61880 ; WX 1000 ; N _413 ; G 414
|
||||
U 61881 ; WX 1143 ; N _414 ; G 415
|
||||
U 61882 ; WX 1143 ; N _415 ; G 416
|
||||
U 61883 ; WX 857 ; N _416 ; G 417
|
||||
U 61884 ; WX 857 ; N _417 ; G 418
|
||||
U 61885 ; WX 571 ; N _418 ; G 419
|
||||
U 61886 ; WX 1286 ; N _419 ; G 420
|
||||
U 61888 ; WX 857 ; N uniF1C0 ; G 421
|
||||
U 61889 ; WX 857 ; N uniF1C1 ; G 422
|
||||
U 61890 ; WX 857 ; N _422 ; G 423
|
||||
U 61891 ; WX 857 ; N _423 ; G 424
|
||||
U 61892 ; WX 857 ; N _424 ; G 425
|
||||
U 61893 ; WX 857 ; N _425 ; G 426
|
||||
U 61894 ; WX 857 ; N _426 ; G 427
|
||||
U 61895 ; WX 857 ; N _427 ; G 428
|
||||
U 61896 ; WX 857 ; N _428 ; G 429
|
||||
U 61897 ; WX 857 ; N _429 ; G 430
|
||||
U 61898 ; WX 857 ; N _430 ; G 431
|
||||
U 61899 ; WX 1000 ; N _431 ; G 432
|
||||
U 61900 ; WX 1143 ; N _432 ; G 433
|
||||
U 61901 ; WX 1000 ; N _433 ; G 434
|
||||
U 61902 ; WX 1000 ; N _434 ; G 435
|
||||
U 61904 ; WX 1000 ; N uniF1D0 ; G 436
|
||||
U 61905 ; WX 1000 ; N uniF1D1 ; G 437
|
||||
U 61906 ; WX 857 ; N uniF1D2 ; G 438
|
||||
U 61907 ; WX 1000 ; N _438 ; G 439
|
||||
U 61908 ; WX 857 ; N _439 ; G 440
|
||||
U 61909 ; WX 714 ; N uniF1D5 ; G 441
|
||||
U 61910 ; WX 1000 ; N uniF1D6 ; G 442
|
||||
U 61911 ; WX 1143 ; N uniF1D7 ; G 443
|
||||
U 61912 ; WX 1000 ; N _443 ; G 444
|
||||
U 61913 ; WX 1000 ; N _444 ; G 445
|
||||
U 61914 ; WX 857 ; N _445 ; G 446
|
||||
U 61915 ; WX 857 ; N _446 ; G 447
|
||||
U 61916 ; WX 1000 ; N _447 ; G 448
|
||||
U 61917 ; WX 714 ; N _448 ; G 449
|
||||
U 61918 ; WX 857 ; N _449 ; G 450
|
||||
U 61920 ; WX 857 ; N uniF1E0 ; G 451
|
||||
U 61921 ; WX 857 ; N _451 ; G 452
|
||||
U 61922 ; WX 1000 ; N _452 ; G 453
|
||||
U 61923 ; WX 1000 ; N _453 ; G 454
|
||||
U 61924 ; WX 1000 ; N _454 ; G 455
|
||||
U 61925 ; WX 1000 ; N _455 ; G 456
|
||||
U 61926 ; WX 1000 ; N _456 ; G 457
|
||||
U 61927 ; WX 1000 ; N _457 ; G 458
|
||||
U 61928 ; WX 1000 ; N _458 ; G 459
|
||||
U 61929 ; WX 857 ; N _459 ; G 460
|
||||
U 61930 ; WX 1143 ; N _460 ; G 461
|
||||
U 61931 ; WX 1143 ; N _461 ; G 462
|
||||
U 61932 ; WX 1000 ; N _462 ; G 463
|
||||
U 61933 ; WX 857 ; N _463 ; G 464
|
||||
U 61934 ; WX 1000 ; N _464 ; G 465
|
||||
U 61936 ; WX 1286 ; N uniF1F0 ; G 466
|
||||
U 61937 ; WX 1286 ; N _466 ; G 467
|
||||
U 61938 ; WX 1286 ; N _467 ; G 468
|
||||
U 61939 ; WX 1286 ; N f1f3 ; G 469
|
||||
U 61940 ; WX 1286 ; N _469 ; G 470
|
||||
U 61941 ; WX 1286 ; N _470 ; G 471
|
||||
U 61942 ; WX 1143 ; N _471 ; G 472
|
||||
U 61943 ; WX 1143 ; N _472 ; G 473
|
||||
U 61944 ; WX 786 ; N _473 ; G 474
|
||||
U 61945 ; WX 857 ; N _474 ; G 475
|
||||
U 61946 ; WX 857 ; N _475 ; G 476
|
||||
U 61947 ; WX 1000 ; N _476 ; G 477
|
||||
U 61948 ; WX 1000 ; N f1fc ; G 478
|
||||
U 61949 ; WX 1000 ; N _478 ; G 479
|
||||
U 61950 ; WX 1143 ; N _479 ; G 480
|
||||
U 61952 ; WX 1000 ; N _480 ; G 481
|
||||
U 61953 ; WX 1143 ; N _481 ; G 482
|
||||
U 61954 ; WX 1000 ; N _482 ; G 483
|
||||
U 61955 ; WX 857 ; N _483 ; G 484
|
||||
U 61956 ; WX 1143 ; N _484 ; G 485
|
||||
U 61957 ; WX 1143 ; N _485 ; G 486
|
||||
U 61958 ; WX 1286 ; N _486 ; G 487
|
||||
U 61959 ; WX 857 ; N _487 ; G 488
|
||||
U 61960 ; WX 1143 ; N _488 ; G 489
|
||||
U 61961 ; WX 714 ; N _489 ; G 490
|
||||
U 61962 ; WX 1143 ; N _490 ; G 491
|
||||
U 61963 ; WX 857 ; N _491 ; G 492
|
||||
U 61964 ; WX 857 ; N _492 ; G 493
|
||||
U 61965 ; WX 857 ; N _493 ; G 494
|
||||
U 61966 ; WX 1143 ; N _494 ; G 495
|
||||
U 61968 ; WX 857 ; N f210 ; G 496
|
||||
U 61969 ; WX 857 ; N _496 ; G 497
|
||||
U 61970 ; WX 1143 ; N f212 ; G 498
|
||||
U 61971 ; WX 1143 ; N _498 ; G 499
|
||||
U 61972 ; WX 857 ; N _499 ; G 500
|
||||
U 61973 ; WX 1143 ; N _500 ; G 501
|
||||
U 61974 ; WX 1143 ; N _501 ; G 502
|
||||
U 61975 ; WX 929 ; N _502 ; G 503
|
||||
U 61976 ; WX 929 ; N _503 ; G 504
|
||||
U 61977 ; WX 1143 ; N _504 ; G 505
|
||||
U 61978 ; WX 1143 ; N _505 ; G 506
|
||||
U 61979 ; WX 857 ; N _506 ; G 507
|
||||
U 61980 ; WX 1286 ; N _507 ; G 508
|
||||
U 61981 ; WX 857 ; N _508 ; G 509
|
||||
U 61982 ; WX 1000 ; N _509 ; G 510
|
||||
U 61985 ; WX 714 ; N venus ; G 511
|
||||
U 61986 ; WX 857 ; N _511 ; G 512
|
||||
U 61987 ; WX 714 ; N _512 ; G 513
|
||||
U 61988 ; WX 857 ; N _513 ; G 514
|
||||
U 61989 ; WX 1000 ; N _514 ; G 515
|
||||
U 61990 ; WX 1000 ; N _515 ; G 516
|
||||
U 61991 ; WX 1071 ; N _516 ; G 517
|
||||
U 61992 ; WX 1143 ; N _517 ; G 518
|
||||
U 61993 ; WX 857 ; N _518 ; G 519
|
||||
U 61994 ; WX 714 ; N _519 ; G 520
|
||||
U 61995 ; WX 1143 ; N _520 ; G 521
|
||||
U 61996 ; WX 714 ; N _521 ; G 522
|
||||
U 61997 ; WX 714 ; N _522 ; G 523
|
||||
U 61998 ; WX 1000 ; N _523 ; G 524
|
||||
U 61999 ; WX 1000 ; N _524 ; G 525
|
||||
U 62000 ; WX 857 ; N _525 ; G 526
|
||||
U 62001 ; WX 714 ; N _526 ; G 527
|
||||
U 62002 ; WX 857 ; N _527 ; G 528
|
||||
U 62003 ; WX 1000 ; N _528 ; G 529
|
||||
U 62004 ; WX 1143 ; N _529 ; G 530
|
||||
U 62005 ; WX 1143 ; N _530 ; G 531
|
||||
U 62006 ; WX 1143 ; N _531 ; G 532
|
||||
U 62007 ; WX 857 ; N _532 ; G 533
|
||||
U 62008 ; WX 857 ; N _533 ; G 534
|
||||
U 62009 ; WX 857 ; N _534 ; G 535
|
||||
U 62010 ; WX 1000 ; N _535 ; G 536
|
||||
U 62011 ; WX 857 ; N _536 ; G 537
|
||||
U 62012 ; WX 1281 ; N _537 ; G 538
|
||||
U 62013 ; WX 1286 ; N _538 ; G 539
|
||||
U 62014 ; WX 1000 ; N _539 ; G 540
|
||||
U 62016 ; WX 1286 ; N _540 ; G 541
|
||||
U 62017 ; WX 1286 ; N _541 ; G 542
|
||||
U 62018 ; WX 1286 ; N _542 ; G 543
|
||||
U 62019 ; WX 1286 ; N _543 ; G 544
|
||||
U 62020 ; WX 1286 ; N _544 ; G 545
|
||||
U 62021 ; WX 714 ; N _545 ; G 546
|
||||
U 62022 ; WX 571 ; N _546 ; G 547
|
||||
U 62023 ; WX 1143 ; N _547 ; G 548
|
||||
U 62024 ; WX 1286 ; N _548 ; G 549
|
||||
U 62025 ; WX 857 ; N _549 ; G 550
|
||||
U 62026 ; WX 857 ; N _550 ; G 551
|
||||
U 62027 ; WX 1286 ; N _551 ; G 552
|
||||
U 62028 ; WX 1286 ; N _552 ; G 553
|
||||
U 62029 ; WX 1000 ; N _553 ; G 554
|
||||
U 62030 ; WX 1286 ; N _554 ; G 555
|
||||
U 62032 ; WX 857 ; N _555 ; G 556
|
||||
U 62033 ; WX 857 ; N _556 ; G 557
|
||||
U 62034 ; WX 857 ; N _557 ; G 558
|
||||
U 62035 ; WX 857 ; N _558 ; G 559
|
||||
U 62036 ; WX 857 ; N _559 ; G 560
|
||||
U 62037 ; WX 857 ; N _560 ; G 561
|
||||
U 62038 ; WX 1000 ; N _561 ; G 562
|
||||
U 62039 ; WX 1000 ; N _562 ; G 563
|
||||
U 62040 ; WX 1143 ; N _563 ; G 564
|
||||
U 62041 ; WX 1143 ; N _564 ; G 565
|
||||
U 62042 ; WX 1000 ; N _565 ; G 566
|
||||
U 62043 ; WX 857 ; N _566 ; G 567
|
||||
U 62044 ; WX 1101 ; N _567 ; G 568
|
||||
U 62045 ; WX 1000 ; N _568 ; G 569
|
||||
U 62046 ; WX 1000 ; N _569 ; G 570
|
||||
U 62048 ; WX 1143 ; N f260 ; G 571
|
||||
U 62049 ; WX 1000 ; N f261 ; G 572
|
||||
U 62050 ; WX 1286 ; N _572 ; G 573
|
||||
U 62051 ; WX 714 ; N f263 ; G 574
|
||||
U 62052 ; WX 857 ; N _574 ; G 575
|
||||
U 62053 ; WX 960 ; N _575 ; G 576
|
||||
U 62054 ; WX 1286 ; N _576 ; G 577
|
||||
U 62055 ; WX 1000 ; N _577 ; G 578
|
||||
U 62056 ; WX 1000 ; N _578 ; G 579
|
||||
U 62057 ; WX 1000 ; N _579 ; G 580
|
||||
U 62058 ; WX 1000 ; N _580 ; G 581
|
||||
U 62059 ; WX 1000 ; N _581 ; G 582
|
||||
U 62060 ; WX 1143 ; N _582 ; G 583
|
||||
U 62061 ; WX 1000 ; N _583 ; G 584
|
||||
U 62062 ; WX 857 ; N _584 ; G 585
|
||||
U 62064 ; WX 1000 ; N _585 ; G 586
|
||||
U 62065 ; WX 1000 ; N _586 ; G 587
|
||||
U 62066 ; WX 1000 ; N _587 ; G 588
|
||||
U 62067 ; WX 1000 ; N _588 ; G 589
|
||||
U 62068 ; WX 1000 ; N _589 ; G 590
|
||||
U 62069 ; WX 1000 ; N _590 ; G 591
|
||||
U 62070 ; WX 571 ; N _591 ; G 592
|
||||
U 62071 ; WX 1000 ; N _592 ; G 593
|
||||
U 62072 ; WX 1143 ; N _593 ; G 594
|
||||
U 62073 ; WX 1000 ; N _594 ; G 595
|
||||
U 62074 ; WX 1000 ; N _595 ; G 596
|
||||
U 62075 ; WX 1000 ; N _596 ; G 597
|
||||
U 62076 ; WX 571 ; N _597 ; G 598
|
||||
U 62077 ; WX 1000 ; N _598 ; G 599
|
||||
U 62078 ; WX 857 ; N f27e ; G 600
|
||||
U 62080 ; WX 857 ; N uniF280 ; G 601
|
||||
U 62081 ; WX 1000 ; N uniF281 ; G 602
|
||||
U 62082 ; WX 1000 ; N _602 ; G 603
|
||||
U 62083 ; WX 1286 ; N _603 ; G 604
|
||||
U 62084 ; WX 1000 ; N _604 ; G 605
|
||||
U 62085 ; WX 1000 ; N uniF285 ; G 606
|
||||
U 62086 ; WX 1000 ; N uniF286 ; G 607
|
||||
U 62087 ; WX 1286 ; N _607 ; G 608
|
||||
U 62088 ; WX 1000 ; N _608 ; G 609
|
||||
U 62089 ; WX 1286 ; N _609 ; G 610
|
||||
U 62090 ; WX 857 ; N _610 ; G 611
|
||||
U 62091 ; WX 857 ; N _611 ; G 612
|
||||
U 62092 ; WX 857 ; N _612 ; G 613
|
||||
U 62093 ; WX 857 ; N _613 ; G 614
|
||||
U 62094 ; WX 857 ; N _614 ; G 615
|
||||
U 62096 ; WX 1000 ; N _615 ; G 616
|
||||
U 62097 ; WX 1143 ; N _616 ; G 617
|
||||
U 62098 ; WX 1000 ; N _617 ; G 618
|
||||
U 62099 ; WX 857 ; N _618 ; G 619
|
||||
U 62100 ; WX 571 ; N _619 ; G 620
|
||||
U 62101 ; WX 857 ; N _620 ; G 621
|
||||
U 62102 ; WX 1000 ; N _621 ; G 622
|
||||
U 62103 ; WX 1000 ; N _622 ; G 623
|
||||
U 62104 ; WX 857 ; N _623 ; G 624
|
||||
U 62105 ; WX 1000 ; N _624 ; G 625
|
||||
U 62106 ; WX 1000 ; N _625 ; G 626
|
||||
U 62107 ; WX 857 ; N _626 ; G 627
|
||||
U 62108 ; WX 857 ; N _627 ; G 628
|
||||
U 62109 ; WX 786 ; N _628 ; G 629
|
||||
U 62110 ; WX 1286 ; N _629 ; G 630
|
||||
U 62112 ; WX 786 ; N uniF2A0 ; G 631
|
||||
U 62113 ; WX 1214 ; N uniF2A1 ; G 632
|
||||
U 62114 ; WX 1000 ; N uniF2A2 ; G 633
|
||||
U 62115 ; WX 1286 ; N uniF2A3 ; G 634
|
||||
U 62116 ; WX 1000 ; N uniF2A4 ; G 635
|
||||
U 62117 ; WX 857 ; N uniF2A5 ; G 636
|
||||
U 62118 ; WX 857 ; N uniF2A6 ; G 637
|
||||
U 62119 ; WX 929 ; N uniF2A7 ; G 638
|
||||
U 62120 ; WX 1000 ; N uniF2A8 ; G 639
|
||||
U 62121 ; WX 714 ; N uniF2A9 ; G 640
|
||||
U 62122 ; WX 857 ; N uniF2AA ; G 641
|
||||
U 62123 ; WX 857 ; N uniF2AB ; G 642
|
||||
U 62124 ; WX 929 ; N uniF2AC ; G 643
|
||||
U 62125 ; WX 857 ; N uniF2AD ; G 644
|
||||
U 62126 ; WX 1286 ; N uniF2AE ; G 645
|
||||
U 62128 ; WX 857 ; N uniF2B0 ; G 646
|
||||
U 62129 ; WX 929 ; N uniF2B1 ; G 647
|
||||
U 62130 ; WX 1000 ; N uniF2B2 ; G 648
|
||||
U 62131 ; WX 857 ; N uniF2B3 ; G 649
|
||||
U 62132 ; WX 857 ; N uniF2B4 ; G 650
|
||||
U 62133 ; WX 1286 ; N uniF2B5 ; G 651
|
||||
U 62134 ; WX 1000 ; N uniF2B6 ; G 652
|
||||
U 62135 ; WX 1000 ; N uniF2B7 ; G 653
|
||||
U 62136 ; WX 857 ; N uniF2B8 ; G 654
|
||||
U 62137 ; WX 929 ; N uniF2B9 ; G 655
|
||||
U 62138 ; WX 929 ; N uniF2BA ; G 656
|
||||
U 62139 ; WX 1143 ; N uniF2BB ; G 657
|
||||
U 62140 ; WX 1143 ; N uniF2BC ; G 658
|
||||
U 62141 ; WX 1000 ; N uniF2BD ; G 659
|
||||
U 62142 ; WX 1000 ; N uniF2BE ; G 660
|
||||
U 62144 ; WX 857 ; N uniF2C0 ; G 661
|
||||
U 62145 ; WX 714 ; N uniF2C1 ; G 662
|
||||
U 62146 ; WX 1143 ; N uniF2C2 ; G 663
|
||||
U 62147 ; WX 1143 ; N uniF2C3 ; G 664
|
||||
U 62148 ; WX 1000 ; N uniF2C4 ; G 665
|
||||
U 62149 ; WX 1286 ; N uniF2C5 ; G 666
|
||||
U 62150 ; WX 1000 ; N uniF2C6 ; G 667
|
||||
U 62151 ; WX 571 ; N uniF2C7 ; G 668
|
||||
U 62152 ; WX 571 ; N uniF2C8 ; G 669
|
||||
U 62153 ; WX 571 ; N uniF2C9 ; G 670
|
||||
U 62154 ; WX 571 ; N uniF2CA ; G 671
|
||||
U 62155 ; WX 571 ; N uniF2CB ; G 672
|
||||
U 62156 ; WX 1071 ; N uniF2CC ; G 673
|
||||
U 62157 ; WX 1000 ; N uniF2CD ; G 674
|
||||
U 62158 ; WX 857 ; N uniF2CE ; G 675
|
||||
U 62160 ; WX 1000 ; N uniF2D0 ; G 676
|
||||
U 62161 ; WX 1000 ; N uniF2D1 ; G 677
|
||||
U 62162 ; WX 1143 ; N uniF2D2 ; G 678
|
||||
U 62163 ; WX 1000 ; N uniF2D3 ; G 679
|
||||
U 62164 ; WX 1000 ; N uniF2D4 ; G 680
|
||||
U 62165 ; WX 1000 ; N uniF2D5 ; G 681
|
||||
U 62166 ; WX 1001 ; N uniF2D6 ; G 682
|
||||
U 62167 ; WX 857 ; N uniF2D7 ; G 683
|
||||
U 62168 ; WX 857 ; N uniF2D8 ; G 684
|
||||
U 62169 ; WX 1214 ; N uniF2D9 ; G 685
|
||||
U 62170 ; WX 1000 ; N uniF2DA ; G 686
|
||||
U 62171 ; WX 857 ; N uniF2DB ; G 687
|
||||
U 62172 ; WX 929 ; N uniF2DC ; G 688
|
||||
U 62173 ; WX 1000 ; N uniF2DD ; G 689
|
||||
U 62174 ; WX 1000 ; N uniF2DE ; G 690
|
||||
U 62176 ; WX 1071 ; N uniF2E0 ; G 691
|
||||
U 62177 ; WX 1000 ; N uniF2E1 ; G 692
|
||||
U 62178 ; WX 1000 ; N uniF2E2 ; G 693
|
||||
U 62179 ; WX 1000 ; N uniF2E3 ; G 694
|
||||
U 62180 ; WX 1000 ; N uniF2E4 ; G 695
|
||||
U 62181 ; WX 1000 ; N uniF2E5 ; G 696
|
||||
U 62182 ; WX 1000 ; N uniF2E6 ; G 697
|
||||
U 62183 ; WX 1000 ; N uniF2E7 ; G 698
|
||||
U 62184 ; WX 1000 ; N _698 ; G 699
|
||||
U 62185 ; WX 1000 ; N uniF2E9 ; G 700
|
||||
U 62186 ; WX 1000 ; N uniF2EA ; G 701
|
||||
U 62187 ; WX 1000 ; N uniF2EB ; G 702
|
||||
U 62188 ; WX 1000 ; N uniF2EC ; G 703
|
||||
U 62189 ; WX 1000 ; N uniF2ED ; G 704
|
||||
U 62190 ; WX 1000 ; N uniF2EE ; G 705
|
||||
U 62720 ; WX 1000 ; N lessequal ; G 706
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user