reset from master

This commit is contained in:
Too
2018-07-03 23:17:29 +08:00
parent 79cad74ee0
commit fca8b7fccf
46 changed files with 4644 additions and 17144 deletions
+1 -1
View File
@@ -15,4 +15,4 @@ Homestead.yaml
npm-debug.log
yarn-error.log
.env
package-lock.json
+3
View File
@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}
+7
View File
@@ -0,0 +1,7 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\laradock",
"PreviewInSolutionExplorer": false
}
Binary file not shown.
BIN
View File
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
+ eslint@4.19.1
added 67 packages and updated 1 package in 41.428s
-57
View File
@@ -1,57 +0,0 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Booking extends Model
{
// protected $guarded = [];
protected $hidden = array('user_id',
"rate_id",
"rmb_book_amount",
"rmb_book_pay_method",
"rmb_book_account_name",
"rmb_book_bank_name",
"rmb_book_acc_no",
"rmb_book_bank_branch",
"usd_book_amount",
"usd_book_pay_method",
"usd_book_company_name",
"usd_book_company_address",
"usd_book_swift_code",
"usd_book_cnap",
"usd_book_bank_branch");
protected $fillable = ['term', 'rate_id', 'user_id', 'amount', 'account_name', 'account_num', 'bank_name',
'bank_branch', 'company_name'];
public $timestamps = true;
public function user(){
return $this->belongsTo('app\User');
}
public function bookingSupplier(){
return $this->belongsTo('app\BookingSupplier ');
}
public function chinaBankSlip(){
return $this->hasOne(ChinaBankSlip::class);
}
public function userBankSlip(){
return $this->hasOne(UserBankSlip::class);
}
public function purchaseOrder(){
return $this->hasOne(PurchaseOrder::class);
}
public function invoice(){
return $this->hasOne(Invoice::class);
}
}
+93 -40
View File
@@ -30,8 +30,9 @@ class BookingController extends Controller
// set timeout
$date1 = new DateTime($booking->created_at);
$date2 = new DateTime();
$difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
$time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit;
$difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
// TODO : you can make it better
if($difference_in_seconds < 0 ){
@@ -95,7 +96,7 @@ class BookingController extends Controller
// TODO : transfer_amount change name to bia
$booking->transfer_amount = $booking->bia;
$booking->track_status = "(". $booking->admin_status ."/8)";
$booking->track_status = "(". $booking->admin_status ."/7)";
switch ($booking->admin_status) {
case 1:
$status_desc = "Waiting customer upload bank slip";
@@ -126,52 +127,96 @@ class BookingController extends Controller
}
$booking->status_desc = $status_desc;
}
return $bookings;
}
public function show($id)
{
$booking = Booking::where('user_id',Auth::user()->id)->where('id', $id)->first();
// just added to try
$user_bankslip = $booking->userBankSlip()->first();
if ($user_bankslip){
$booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path);
}
$china_bankslip = $booking->chinaBankSlip()->first();
$po = $booking->purchaseOrder()->first();
$invoice = $booking->invoice()->first();
if($booking){
$date1 = new DateTime($booking->created_at);
$date2 = new DateTime();
$difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
$date1 = new DateTime($booking->created_at);
if ($user_bankslip){
$booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path);
$booking->reject_reason = $user_bankslip->reject_reason;
$date1 = new DateTime($user_bankslip->updated_at);
}
if (!$booking){
return response()->json(['success'=>false, 'message'=>'not found'], 404);
}
return $booking;
if($china_bankslip){
$booking->china_bankslip_path = Storage::url($china_bankslip->china_bank_slip_path);
}
if($po){
$booking->user_po_path = Storage::url($po->image_path);
}
if($invoice){
$booking->invoice_path = Storage::url($invoice->invoice_path);
}
// set timeout
$date1 = new DateTime($booking->created_at);
$date2 = new DateTime();
$time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit;
$difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
if (!$booking){
return response()->json(['success'=>false, 'message'=>'not found'], 404);
}
return $booking;
}
}
public function adminShow($id)
{
$booking = Booking::where('id', $id)->first();
$user_bankslip_path = $booking->userBankSlip()->first()->bankslip_path;
$booking->user_bankslip_path = Storage::url($user_bankslip_path);
$booking = Booking::where('id', $id)->firstOrFail();
$user_bankslip = $booking->userBankSlip()->first();
$china_bankslip = $booking->chinaBankSlip()->first();
$po = $booking->purchaseOrder()->first();
$invoice = $booking->invoice()->first();
if($booking){
$date1 = new DateTime($booking->created_at);
$date2 = new DateTime();
$difference_in_seconds = ($date1->format('U') + 600) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
if ($user_bankslip){
$booking->user_bankslip_path = Storage::url($user_bankslip->bankslip_path);
$booking->reject_reason = $user_bankslip->reject_reason;
$date1 = new DateTime($user_bankslip->updated_at);
}
if (!$booking){
return response()->json(['success'=>false, 'message'=>'not found'], 404);
}
return $booking;
if($china_bankslip){
$booking->china_bankslip_path = Storage::url($china_bankslip->china_bank_slip_path);
}
if($po){
$booking->user_po_path = Storage::url($po->image_path);
}
if($invoice){
$booking->invoice_path = Storage::url($invoice->invoice_path);
}
// set timeout
$date1 = new DateTime($booking->created_at);
$date2 = new DateTime();
$time_in_seconds = SettingCredit::orderby('updated_at','desc')->first()->time_limit;
$difference_in_seconds = ($date1->format('U') + $time_in_seconds) - ($date2->format('U'));
$booking->timeout = $difference_in_seconds;
if (!$booking){
return response()->json(['success'=>false, 'message'=>'not found'], 404);
}
return $booking;
}
}
@@ -283,6 +328,7 @@ class BookingController extends Controller
// $booking->usd_book_bank_branch = $request->input('usd_book_bank_branch');
// $booking->verification_status = $request->input('verification_status');
$booking->save();
//return response()->json('error', 400);
return response()->json($booking, 201);
}
@@ -331,6 +377,7 @@ class BookingController extends Controller
return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400);
}
if($bankslip_file = $request->file('file'))
{
/* End Validation */
@@ -345,7 +392,12 @@ class BookingController extends Controller
'user_bankslip', $bankslip_file, $unique_image_path
);
$user_bankslip = new UserBankSlip;
$user_bankslip = $booking->userBankSlip()->first();
// if user bankslip not exist, create new one
if(!$user_bankslip){
$user_bankslip = new UserBankSlip;
}
$user_bankslip->booking_id = $booking->id;
$user_bankslip->bankslip_path = $upload_path;
$user_bankslip->transfer_amount = $request->input('transfer_amount');
@@ -443,7 +495,7 @@ class BookingController extends Controller
return response()->json(['user_po_path'=> $user_po->image_path ],200);
}
return response()->json(['message'=> 'waiting customer to upload their po'],400);
return response()->json(['message'=> 'waiting customer to upload their po'], 200);
}
public function delete(Booking $book_id)
@@ -544,12 +596,13 @@ class BookingController extends Controller
}
// Rejected bankslip cannot be approve again
if($userBankSlip->is_reject == 1)
{
return response()->json(['message'=>'Bankslip already rejected'],200);
}
// if($userBankSlip->is_reject == 1)
// {
// return response()->json(['message'=>'Bankslip already rejected'],200);
// }
$userBankSlip->is_approve = 1;
$userBankSlip->is_reject = 0;
$userBankSlip->estimated_arrival_time = $request->input('estimated_arrival_time');
$userBankSlip->save();
@@ -581,13 +634,12 @@ class BookingController extends Controller
}
$userBankSlip->is_reject = 1;
$userBankSlip->reject_reason = $request->reject_reason;
$userBankSlip->reject_reason = $request->input('reject_reason');
$userBankSlip->save();
// TODO : reject user bankinslip
// update booking status
$booking->status = 0;
$booking->admin_status = 0;
$booking->status = 2; // upload user bankslip
$booking->admin_status = 1; // user booking
$booking->save();
return response()->json(['message'=>'Success'],200);
@@ -666,7 +718,8 @@ class BookingController extends Controller
return response()->json(["message"=> "Please upload your purchase order"],400);
}
$booking->status = 6;
$booking->status = 6; // wait invoice
$booking->admin_status = 6; // upload invoice
$booking->save();
return response()->json(['message'=>'Success'],200);
}
@@ -29,30 +29,29 @@ class BookingSupplierController extends Controller
public function show($id)
{
$bookingsupplier = SupplierBooking::has('supplier-booking')->findOrFail($id);
$booking = Booking::where('id', $id)->first();
$response = [
'supplier-booking' => $bookingsupplier
];
if (!$booking){
return response()->json(['message' => 'Booking not found'], 404);
}
return response()->json($response, 200);
$supplier_booking = $booking->supplierBooking()->first();
$dt = new \DateTime($supplier_booking->created_at);
$supplier_booking->date = $dt->format('j F Y');
return response()->json($supplier_booking ,200);
}
// Only for single booking
// TODO : Multiple booking
public function store(Request $request)
{
$transfer_amount = $request->input("transfer_amount");
$supplier_id = $request->input("supplier_id");
$booking_id = $request->input("booking_id");
$rate = $request->input('rate');
$rebate = $request->input('rebate');
if ($supplierbooking = SupplierBooking::where('book_id', $booking_id)->first()){
return response()->json(['success'=>false, 'message'=>'Bad request, please contact support'], 400);
}
// Calculation
$amountInRMB = $transfer_amount * $rate;
@@ -66,31 +65,38 @@ class BookingSupplierController extends Controller
$supplier = SettingSupplier::find($supplier_id);
$booking = Booking::find($booking_id);
$bookingsupplier = new SupplierBooking();
// update existing booking supplier if exist
$bookingsupplier = SupplierBooking::where('booking_id', $booking_id)->first();
if (!$bookingsupplier){
$bookingsupplier = new SupplierBooking();
}
$bookingsupplier->supplier_id = $supplier->id;
$bookingsupplier->payment_method = $request->input('payment_method');
$bookingsupplier->transfer_amount = $transfer_amount;
$bookingsupplier->rate = $rate;
$bookingsupplier->billing_amount = $billing;
$bookingsupplier->salestax_amount = $sales_tax;
$bookingsupplier->rebate = $rebate;
$bookingsupplier->amountInRMB = $amountInRMB;
$bookingsupplier->rmbBankAmount = $rmbBankAmount;
$bookingsupplier->book_id = $booking->id;
$bookingsupplier->booking_id = $booking->id;
$bookingsupplier->save();
// update booking status
$booking->status = 4;
$booking->admin_status = 4;
$booking->save();
// TODO : generate a jpg version of report and save the path
return response()->json($bookingsupplier, 201);
}
public function update(Request $request, $id)
{
$bookingsupplier = BSupplierBooking::find($id);
$bookingsupplier = SupplierBooking::find($id);
$bookingsupplier->payment_method = $request->input('payment_method');
$bookingsupplier->transfer_amount = $request->input('transfer_amount');
$bookingsupplier->rate = $request->input('rate');
@@ -109,6 +115,7 @@ class BookingSupplierController extends Controller
$bookingsupplier->rmbBankAmount = $rmbBankAmount;
$bookingsupplier->save();
/* For multiple booking */
// $supplierbookingitems = $request->input("supplierbookingitem");
// foreach ($bookings as $booking)
// {
+7 -5
View File
@@ -12,11 +12,6 @@ class RateController extends Controller
return Rate::all();
}
public function show(Rate $rate)
{
return $rate;
}
public function store(Request $request)
{
$rate = Rate::create($request->all());
@@ -37,4 +32,11 @@ class RateController extends Controller
return response()->json(null, 204);
}
public function show()
{
$rate = Rate::latest()->first();
return response()->json($rate, 200);
}
}
+5
View File
@@ -7,4 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Marking extends Model
{
protected $fillable = ['email','marking'];
public function user()
{
return $this->belongsTo('app\User');
}
}
+1
View File
@@ -7,4 +7,5 @@ use Illuminate\Database\Eloquent\Model;
class Rate extends Model
{
protected $fillable = ['x1_cash','x1_cheque','x1_ba','x2_cash','x2_cheque','x2_ba'];
protected $hidden = ['id'];
}
+1 -1
View File
@@ -16,7 +16,7 @@ class SupplierBooking extends Model
}
public function booking(){
return $this->hasOne('App\Booking');
return $this->belongTo('App\Booking');
}
public function supplierBookingTtem()
+4
View File
@@ -102,4 +102,8 @@ class User extends Authenticatable implements JWTSubject
return $this->hasMany(Booking::class);
}
public function marking(){
return $this->hasOne(Booking::class);
}
}
+2
View File
@@ -1 +1,3 @@
*.sqlite
vendor/composer/autoload_static.php
package-lock.json
@@ -0,0 +1,34 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class RenameBookingForeignkeyFromSupplierbookingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('supplier_bookings', function($table)
{
$table->dropForeign(['book_id']);
$table->dropColumn('book_id');
$table->integer('booking_id')->unsigned();
$table->foreign('booking_id')->references('id')->on('bookings');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddBillingFieldToSupplierbookingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('supplier_bookings', function($table)
{
$table->double('billing_amount');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddSalestaxFieldToSupplierbookingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('supplier_bookings', function($table)
{
$table->double('salestax_amount');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
+7 -2
View File
@@ -27,10 +27,15 @@ class BookTableSeeder extends Seeder
'bank_address' => 'cyber',
'swift_code' => 'qwe123',
'cnap' => '123asd',
'term' => 'x1',
'amount' => 1.2,
'term' => 'x1_cash',
'amount' => 200,
'rmb_book_amount' => 200,
'bia' => 189,
'rate' => 1.2,
'rate_id' => $rate->id,
'user_id' => $user->id,
'status' => 2,
'admin_status' => 1,
'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
'updated_at' => Carbon::now()->format('Y-m-d H:i:s'),
]);
+1 -1
View File
@@ -15,7 +15,7 @@ class SettingCreditSeeder extends Seeder
DB::table('setting_credits')->insert([
'rmb_credit_limit' => '4000',
'usd_credit_limit' => '5000',
'time_limit' => '600'
'time_limit' => '6000'
]);
}
}
+2762 -4398
View File
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -20,6 +20,7 @@
"@xkeshi/vue-countdown": "^0.6.0",
"axios": "^0.18.0",
"bootstrap": "^4.0.0",
"canvas2image": "^1.0.5",
"element-ui": "^2.3.9",
"jquery": "^3.3.1",
"js-cookie": "^2.2.0",
@@ -34,7 +35,7 @@
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"vuex-router-sync": "^5.0.0",
"webpack": "^3.11.0"
"webpack": "^4.14.0"
},
"devDependencies": {
"@vue/cli-plugin-eslint": "^3.0.0-beta.6",
@@ -42,9 +43,11 @@
"@vue/eslint-config-standard": "^3.0.0-beta.6",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"cross-env": "^5.1.4",
"eslint": "^4.19.1",
"laravel-mix": "^2.1.1",
"vue-template-compiler": "^2.5.16",
"webpack-bundle-analyzer": "^2.11.1",
"webpack-cli": "^2.1.3"
"webpack": "^3.11.0",
"webpack-bundle-analyzer": "^2.13.1",
"webpack-cli": "^3.0.8"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -6,8 +6,7 @@
<el-step title="Supplier Booking"/>
<el-step title="Supplier Report"/>
<el-step title="Upload China Bankslip To Booking"/>
<el-step title="Waiting Purchase Order"/>
<el-step title="Invoice"/>
<el-step title="Purchase Order/Invoice"/>
<el-step title="Completed"/>
</el-steps>
</el-row>
@@ -27,7 +27,7 @@
<a class="nav-link" href="#" role="button" slot="reference">Update Rate</a>
</el-popover>
</li></ul>
<li v-if="(user && role == 'admin')" class="nav-item"><router-link :to="{ name: 'admin.complete-order' }" class="nav-link">{{ $t('Complete Order') }}</router-link></li>
<li v-if="(user && role == 'admin')" class="nav-item"><router-link :to="{ name: 'admin.complete' }" class="nav-link">{{ $t('Complete Order') }}</router-link></li>
<li v-if="(user && role == 'admin')" class="nav-item"><router-link :to="{ name: 'admin.transaction-history' }" class="nav-link">{{ $t('Transaction History') }}</router-link></li>
<li v-if="(user && role == 'admin')" class="nav-item"><router-link :to="{ name: 'admin.upload-supplier-bank-slip' }" class="nav-link">{{ $t('Upload Supplier Bank Slip to System') }}</router-link></li>
@@ -5,9 +5,11 @@
<div align="center">
<h4 style="margin-top:5%;">Order Completed</h4>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
<br>
<!-- upload card -->
<!-- bankslip -->
<br>
<el-row :gutter="12" justify="center" align="center">
<el-col :span="8">
@@ -18,29 +20,14 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.user_po_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
@@ -49,24 +36,37 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.china_bankslip_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<img v-bind:src="booking_details.invoice_path" class="image">
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<br>
<!-- bank slips END -->
<!-- order details -->
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
@@ -79,7 +79,177 @@
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row>
</el-row> -->
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"><b>MYR {{ booking_details.bia }}</b></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row> -->
</el-card>
</el-row>
<br>
@@ -87,12 +257,12 @@
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Bankin Slip</span>
<span>Payment Bankin Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<img src="http://via.placeholder.com/600x400" class="image">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
@@ -100,13 +270,14 @@
</el-main>
</template>
<style>
.booking-details {
font-weight: bold;
}
.booking-details {
font-weight: bold;
}
</style>
<script>
import VueCountdown from '@dmaksimovic/vue-countdown'
import ProgressTrack from '~/components/AdminProgressTrack'
import axios from 'axios'
export default {
components: {
@@ -115,49 +286,37 @@ export default {
data () {
return {
status: 8,
bookingConfirmTable: [{
data1: 'Order Number :',
data2: '001'
}, {
data1: 'Date :',
data2: '25/5/2018'
}, {
data1: 'Customer Marking :',
data2: 'CIEF/150ECE'
}, {
data1: '',
data2: ''
}, {
data1: 'Payment Method :',
data2: 'Cash/Bank Transfer'
}, {
data1: '',
data2: ''
}],
bookingConfirmTable2: [{
data1: 'CNY/RMB :',
data2: 'CNY 120,500.00'
}, {
data1: '+ Service Charge :',
data2: 'CNY 20.00'
}, {
data1: '/ RATE :',
data2: '1.63'
}, {
data1: '',
data2: 'MYR 73,848.04'
}, {
data1: '+ GST 6% :',
data2: 'MYR 4,430.88'
}, {
data1: '',
data2: 'MYR 78,278.92'
}, {
data1: '',
data2: ''
}]
loading_btn: false,
booking_details:{
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
}
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
}
@@ -268,22 +268,22 @@
rules: {
supplier: [{
required: true,
message: 'Please input amount',
message: 'Please select a supplier',
trigger: 'change'
}],
rebate: [{
required: true,
message: 'Please input bank name',
message: 'Please input rebate amount',
trigger: 'change'
}],
rate: [{
required: true,
message: 'Please input account name',
message: 'Please input rate',
trigger: 'change'
}],
payment_amount: [{
transfer_amount: [{
required: true,
message: 'Please input branch',
message: 'Please input payment amount',
trigger: 'change'
}]
},
@@ -299,12 +299,10 @@
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
loading.close()
.then((response) => {
this.booking_details = response.data
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
@@ -355,11 +353,16 @@
console.log(error)
// TODO : Show error message
})
} else {
this.loading_btn = false
this.$message({
showClose: true,
message: 'Please fill the supplier form',
type: 'error',
duration: 10000
})
}
})
@@ -200,12 +200,14 @@
</div>
<el-row :gutter="12" style="text-align:center">
<el-col :span="20" style="text-align:center">
<canvas id="myCanvas" ref="myCanvas" v-insert-message="supplier_booking"></canvas>
<img id="banklogo" src="/banklogo.png" style="display: none"/>
<br>
<el-button @click="downloadReport()" type="text">Download Now</el-button>
</el-col>
</el-row>
</el-card>
<br>
<br>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>User BankinSlip</span>
@@ -217,11 +219,11 @@
</el-col>
</el-row>
</el-card>
<br>
<br>
<el-card class="box-card">
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<el-button :loading="loading_btn" @click="editReport" type="primary">Edit</el-button>
<el-button :loading="loading_btn" @click="goToSupplierBooking" type="primary">Edit</el-button>
<el-button :loading="loading_btn" @click="completeReport" type="success">Done</el-button>
</el-col>
</el-row>
@@ -237,6 +239,7 @@
<script>
import ProgressTrack from '~/components/AdminProgressTrack'
import axios from 'axios'
import Canvas2Image from 'canvas2image'
export default {
components: {
@@ -252,9 +255,11 @@
bia: null,
user_bankslip_path: null,
},
supplier_booking:{
},
supplier: null,
supplier_options: null,
exampleContent: "This is TEXT"
}
},
@@ -279,44 +284,239 @@
})
})
axios
.get('/api/supplier-booking/' + this.$route.params.id)
.then((response) => {
loading.close()
this.supplier_booking = response.data
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
completeReport(){
downloadReport(){
let canvas = document.getElementById('myCanvas')
var dataString = canvas.toDataURL("image/png");
console.log(dataString)
var link = document.createElement("a");
link.download = 'image';
link.href = dataString;
link.click();
},
goToSupplierBooking(){
this.$router.push({
name: 'booking.admin.supplier',
params: this.$route.params.id
})
},
completeReport() {
// TODO : send request to change status
this.loading_btn = true
axios
.post('/api/booking/' + this.$route.params.id + '/confirm-supplier')
.then((response) => {
this.$message({
showClose: true,
message: 'Success, please comeback after getting china bankslip',
type: 'success',
duration: 5000
.post('/api/booking/' + this.$route.params.id + '/confirm-supplier')
.then((response) => {
this.loading_btn = false
this.$message({
showClose: true,
message: 'Success, please comeback after getting china bankslip',
type: 'success',
duration: 5000
})
this.$router.push({
name: 'home'
})
//this.booking_details = response.data
}).catch((error) => {
this.loading_btn = false
console.log(error)
this.$message({
showClose: true,
message: 'Suceess',
type: 'success',
duration: 5000
})
})
this.$router.push({
name: 'home'
})
//this.booking_details = response.data
}).catch((error) => {
console.log(error)
this.$message({
showClose: true,
message: 'Suceess',
type: 'success',
duration: 5000
})
})
this.loading_btn = false
this.$router.push({
name: 'booking.admin.cnslip',
params: {id: this.$route.params.id }
params: {
id: this.$route.params.id
}
})
}
},
directives: {
insertMessage: function (canvasElement, binding) {
////////////////// variable //////////////////////////
var canvasWidth = 450;
var rowHeight = [20, 40, 60, 80, 100, 120, 140, 170, 190, 210, 230, 250, 270, 290, 310, 330, 350, 390, 410,
470, 490, 510, 610, 630
]
const canvasHeight = rowHeight[rowHeight.length - 1];
var column1X = 220;
var column2X = 320;
var column3X = 420;
///////////////////Canvast Init////////////////////
var canvas = document.getElementById("myCanvas");
canvas.width = canvasWidth;
canvas.height = canvasHeight;
// Get canvas context
var ctx = canvasElement.getContext("2d");
// Clear the canvas
ctx.clearRect(0, 0, 300, 150);
ctx.fillStyle = "#FFFFFF";
ctx.fillRect(0, 0, canvasWidth, rowHeight[0]);
for (var i = 1; i < rowHeight.length; i++) {
if (i % 2 == 1)
ctx.fillStyle = "#A9D08E";
else
ctx.fillStyle = "#FFFFFF";
ctx.fillRect(0, rowHeight[i - 1], canvasWidth, rowHeight[i]);
}
///////////// fillup with text////////////////
//// config canvas
ctx.fillStyle = "#000000";
ctx.font = "13px Arial";
ctx.textAlign = "right";
//// Row 1
ctx.fillText("Payment Voucher :", column1X, rowHeight[1] - 5);
ctx.fillText(binding.value.id, column3X, rowHeight[1] - 5);
//// Row 2
ctx.fillText("Date :", column1X, rowHeight[2] - 5);
ctx.fillText(binding.value.date, column3X, rowHeight[2] - 5);
//// Row 3
ctx.fillText("Marking :", column1X, rowHeight[3] - 5);
ctx.font = "bold 14px Arial";
ctx.fillStyle = "#0070D5";
ctx.fillText("CIEF/605HOS", column3X, rowHeight[3] - 5);
ctx.fillStyle = "#000000";
ctx.font = "13px Arial";
//// Row 4
ctx.fillText("Payment For(Order No.) :", column1X, rowHeight[4] - 5);
ctx.fillText(binding.value.id, column3X, rowHeight[4] - 5);
//// Row 4
ctx.fillText("Payment For :", column1X, rowHeight[5] - 5);
ctx.fillText("Full Payment", column3X, rowHeight[5] - 5);
//// Row 5
ctx.fillText("Payment Method :", column1X, rowHeight[6] - 5);
ctx.fillText(binding.value.payment_method, column3X, rowHeight[6] - 5);
//// Row 6
ctx.fillText("Remark :", column1X, rowHeight[7] - 10);
//// Row 7
// Empty
//// Row 8
ctx.fillText("MYR/RM :", column1X, rowHeight[9] - 5);
ctx.fillText("MYR", column2X, rowHeight[9] - 5);
ctx.font = "bold 14px Arial";
ctx.fillText(binding.value.transfer_amount, column3X, rowHeight[9] - 5);
ctx.font = "13px Arial";
//// Row 8
ctx.fillText("* RATE :", column1X, rowHeight[10] - 5);
ctx.fillText(binding.value.rate, column3X, rowHeight[10] - 5);
//// Row 9
// Empty
//// Row 10
ctx.font = "bold 14px Arial";
ctx.fillText("CNY", column2X, rowHeight[12] - 5);
ctx.fillText(binding.value.amountInRMB, column3X, rowHeight[12] - 5);
ctx.font = "13px Arial";
//line
ctx.beginPath();
ctx.lineWidth = 1;
ctx.moveTo(column1X + 30, rowHeight[11]);
ctx.lineTo(column3X + 20, rowHeight[11]);
ctx.stroke();
ctx.beginPath();
ctx.lineWidth = 2;
ctx.moveTo(column1X + 30, rowHeight[12]);
ctx.lineTo(column3X + 20, rowHeight[12]);
ctx.stroke();
//// Row 11
ctx.fillText("MYR/RM :", column1X, rowHeight[14] - 5);
ctx.fillText("MYR", column2X, rowHeight[14] - 5);
ctx.fillText("4830.68", column3X, rowHeight[14] - 5);
//// Row 12
ctx.fillText("Billing(1.0%) :", column1X, rowHeight[15] - 5);
ctx.fillText("MYR", column2X, rowHeight[15] - 5);
ctx.fillText(binding.value.billing_amount, column3X, rowHeight[15] - 5);
//// Row 13
ctx.fillText("+ SALES TAX (10%) :", column1X, rowHeight[16] - 5);
ctx.fillText("MYR", column2X, rowHeight[16] - 5);
ctx.fillText(binding.value.salestax_amount, column3X, rowHeight[16] - 5);
//// Row 14
ctx.fillText("+ GST 6% :", column1X, rowHeight[17] - 15);
ctx.fillText("MYR", column2X, rowHeight[17] - 15);
ctx.fillText("289.84", column3X, rowHeight[17] - 15);
//// Row 15
ctx.font = "bold 14px Arial";
ctx.fillText("Customer Bank In Amount :", column1X, rowHeight[18] - 5);
ctx.fillStyle = "#0070D5";
ctx.fillText("MYR", column2X, rowHeight[18] - 5);
ctx.fillText(binding.value.amountInRMB, column3X, rowHeight[18] - 5);
ctx.fillStyle = "#000000";
ctx.font = "13px Arial";
//line
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(column1X + 30, rowHeight[17]);
ctx.lineTo(column3X + 20, rowHeight[17]);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(column1X + 30, rowHeight[18] + 1);
ctx.lineTo(column3X + 20, rowHeight[18] + 1);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(column1X + 30, rowHeight[18] - 2);
ctx.lineTo(column3X + 20, rowHeight[18] - 2);
ctx.stroke();
//// Row 16
ctx.fillText("Rebate :", column1X, rowHeight[19] - 25);
ctx.fillText("CNY", column2X, rowHeight[19] - 25);
ctx.fillText("224.68", column3X, rowHeight[19] - 25);
//// Row 16
ctx.font = "bold 14px Arial";
ctx.fillText("Bank In to Account Below :", column1X, rowHeight[20] - 5);
ctx.font = "bold italic 15px Arial";
ctx.fillStyle = "#0070D5";
ctx.fillText("CNY", column2X, rowHeight[20] - 5);
ctx.fillText("7692.17", column3X - 20, rowHeight[20] - 5);
ctx.fillStyle = "#000000";
ctx.font = "13px Arial";
//// Row 17
//// Row 18
//// Row 19
var img = new Image();
img.src = "/banklogo.png";
img.crossOrigin = "anonymous";
var maxwidth = 70;
var ratio = maxwidth / img.width;
var offset = ((rowHeight[22] - rowHeight[21]) / 2) - (img.height * ratio / 2);
var y = rowHeight[21] + offset; // to make it always center
img.onload=function(){
ctx.drawImage(img, 50, 530, 80, 50);
};
// text
ctx.font = "bold 14px Arial";
ctx.textAlign = "center";
ctx.fillText("China beneficiary Account", column2X - 40, rowHeight[22] - 80);
ctx.fillText("户名 : 奕继椿", column2X - 40, rowHeight[22] - 60);
ctx.fillText("6226 1906 8014 3314", column2X - 40, rowHeight[22] - 40);
ctx.fillText("民生银行 深川红荔支行", column2X - 40, rowHeight[22] - 20);
ctx.font = "13px Arial";
}
}
}
</script>
@@ -1,401 +0,0 @@
<template>
<el-main>
<progress-track v-model="status" />
<div align="center">
<h4 style="margin-top:5%;"></h4>
<br>
<h5> Upload China Bankslip To Customer </h5>
<br>
<!-- <el-button type="primary" @click="$router.go(-1)">Go Back</el-button> -->
</div>
<br>
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">
<b>MYR {{ booking_details.bia }}</b>
</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row> -->
</el-card>
</el-row>
<br>
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Upload China Bankslip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" style="text-align:center">
<el-col :span="20" style="text-align:center">
<el-form ref="chinaSlipForm" :model="chinaSlipForm" :rules="rules">
<div align="center">
<!-- upload image -->
<el-upload class="upload-demo" :action="'/api/booking/' + booking_id + '/upload-china-bankslip'" :on-preview="handlePreview"
:on-remove="handleRemove" :multiple="false" list-type="picture">
<el-button size="small" type="primary">Click to upload</el-button>
<div slot="tip" class="el-upload__tip">jpg/png files with a size less than 3mb</div>
</el-upload>
<br>
<!-- upload image end -->
<el-form-item prop="date">
<el-date-picker v-model="chinaSlipForm.date" type="date" placeholder="Pick a day" :picker-options="pickerOptions1">
</el-date-picker>
</el-form-item>
<el-form-item prop="actual_transfer_amount">
<el-input v-model="chinaSlipForm.actual_transfer_amount" type="text" placeholder="Amount" style="width: 80%" />
</el-form-item>
<el-form-item prop="details">
<el-input v-model="chinaSlipForm.details" type="text" placeholder="Details" style="width: 80%" />
</el-form-item>
<el-form-item>
<el-button :loading="loading_btn" type="primary" @click="submitChinaSlip('chinaSlipForm')">Submit</el-button>
</el-form-item>
</div>
</el-form>
</el-col>
</el-row>
</el-card>
</el-row>
</el-main>
</template>
<style>
.booking-details {
font-weight: bold;
}
</style>
<script>
import ProgressTrack from '~/components/AdminProgressTrack'
import axios from 'axios'
export default {
components: {
'progress-track': ProgressTrack
},
data() {
return {
status: 5,
loading_btn: false,
booking_id: this.$route.params.id,
booking_details: {
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
},
supplier: null,
supplier_options: null,
chinaSlipForm: {
actual_transfer_amount: null,
date: null,
details: null,
},
rules: {
actual_transfer_amount: [{
required: true,
message: 'Please input amount',
trigger: 'change'
}],
date: [{
required: true,
message: 'Please input bank name',
trigger: 'change'
}],
details: [{
required: true,
message: 'Please input details',
trigger: 'change'
}]
},
pickerOptions1: {
disabledDate(time) {
return time.getTime() > Date.now();
},
shortcuts: [{
text: 'Today',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: 'Yesterday',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: 'A week ago',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
}
}
},
beforeCreate() {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
loading.close()
this.booking_details = response.data
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
axios
.get('/api/setting-supplier/')
.then((response) => {
loading.close()
this.supplier_options = response.data
}).catch((error) => {
loading.close()
console.log(error)
this.$router.push({
name: 'notfound'
})
})
},
methods: {
submitChinaSlip(formName) {
this.loading_btn = true
this.$refs[formName].validate((valid) => {
if (valid) {
let newChinaSlip = {
date: this.chinaSlipForm.date,
actual_transfer_amount: this.chinaSlipForm.actual_transfer_amount,
details: this.chinaSlipForm.details,
}
axios.patch('/api/booking/' + this.booking_id +'/update-china-bankslip', newChinaSlip)
.then((response) => {
this.$message({
showClose: true,
message: 'Your bankinslip has been submitted, please wait customer to upload their purchase order.',
type: 'success',
duration: 5000
})
console.log(response)
this.$router.push({
name: 'home'
})
})
.catch((error) => {
this.loading = false
this.$message({
showClose: true,
message: 'Please upload your bankin slip first.',
type: 'warning',
duration: 10000
})
console.log(error)
this.loading_btn = false
})
} else {
this.loading_btn = false
}
})
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
@@ -1,376 +0,0 @@
<template>
<el-main>
<progress-track v-model="status" />
<div align="center">
<h4 style="margin-top:5%;"></h4>
<br>
<div v-if="user_po_path !== null">
<h4>Upload Invoice</h4>
</div>
<div v-else>
<h4>Waiting for User to Upload Purchase Order </h4>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
<br>
<!-- <el-button type="primary" @click="$router.go(-1)">Go Back</el-button> -->
</div>
<br>
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">
<b>MYR {{ booking_details.bia }}</b>
</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
</el-card>
</el-row>
<br>
<el-row v-if="user_po_path !== null" :gutter="12" justify="center" align="center">
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Upload Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<!-- upload image -->
<el-upload :action="'/api/booking/' + booking_id + '/upload-invoice'" :on-exceed="handleExceed" :on-preview="handlePreview"
:on-remove="handleRemove"
class="upload-demo"
drag
multiple>
<i class="el-icon-upload"/>
<div class="el-upload__text">Drop file here or
<em>click to upload</em>
</div>
<div slot="tip" class="el-upload__tip">jpg/png/pdf files with a size less than 3mb</div>
</el-upload>
<br>
<div class="bottom clearfix" style="text-align:right;">
<el-button :loading="loading_btn" type="primary" @click="confirmInvoice">Submit</el-button>
</div>
<!-- upload image end -->
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Customer Purchase Order</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<img v-bind:src="user_po_path" width="100%" height="100%">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
</el-main>
</template>
<style>
.booking-details {
font-weight: bold;
}
</style>
<script>
import ProgressTrack from '~/components/AdminProgressTrack'
import axios from 'axios'
export default {
components: {
'progress-track': ProgressTrack
},
data() {
return {
status: 6,
loading_btn: false,
booking_id: this.$route.params.id,
user_po_path: null,
booking_details: {
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
},
supplier: null,
supplier_options: null,
chinaSlipForm: {
actual_transfer_amount: null,
date: null,
details: null,
},
rules: {
actual_transfer_amount: [{
required: true,
message: 'Please input amount',
trigger: 'change'
}],
date: [{
required: true,
message: 'Please input bank name',
trigger: 'change'
}],
details: [{
required: true,
message: 'Please input details',
trigger: 'change'
}]
},
pickerOptions1: {
disabledDate(time) {
return time.getTime() > Date.now();
},
shortcuts: [{
text: 'Today',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: 'Yesterday',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: 'A week ago',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
}
}
},
beforeCreate() {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
axios
.get('/api/booking/'+ this.$route.params.id +'/po')
.then((response) => {
loading.close()
this.user_po_path = response.user_po_path
}).catch((error) => {
loading.close()
console.log(error)
this.$router.push({
name: 'notfound'
})
})
},
methods: {
confirmInvoice () {
this.loading_btn = true
axios
.post('/api/booking/' + this.$route.params.id + '/confirm-invoice')
.then((response) => {
console.log(response)
this.$message({
showClose: true,
message: 'Your invoice has been uploaded. Order completed !',
type: 'success',
duration: 5000
})
this.$router.push({
name: 'home'
})
this.loading_btn = false
}).catch((error) => {
this.$message({
showClose: true,
message: 'Please upload invoice',
type: 'error',
duration: 30000
})
this.loading_btn = false
})
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
</script>
@@ -7,6 +7,8 @@
<br>
<h5> Verify User Bankslip </h5>
<br>
<h5> ( Scroll down to view the customer bankslip ) </h5>
<br>
<!-- <el-button type="primary" @click="$router.go(-1)">Go Back</el-button> -->
</div>
<br>
@@ -19,7 +21,7 @@
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
@@ -147,7 +149,9 @@
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"><b>MYR {{ booking_details.bia }}</b></div>
<div class="cell">
<b>MYR {{ booking_details.bia }}</b>
</div>
</td>
</tr>
<tr class="el-table__row">
@@ -206,12 +210,29 @@
<el-card class="box-card">
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<el-button :loading="loading_btn" @click="approveUserSlip" type="success">Aprroved</el-button>
<el-button :loading="loading_btn" @click="rejectUserSlip" type="danger">Rejected</el-button>
<el-button :loading="loading_btn" @click="approveUserSlip" type="success">Aprrove</el-button>
<el-button :loading="loading_btn" @click="rejectDialogVisible = true" type="danger">Reject</el-button>
</el-col>
</el-row>
</el-card>
</el-row>
<el-dialog title="Reason of Reject" :visible.sync="rejectDialogVisible" width="30%" center>
<span>
<el-input
type="textarea"
:rows="2"
placeholder="Please input the reason"
v-model="reject_reason">
</el-input>
</span>
<span slot="footer" class="dialog-footer">
<el-button @click="rejectDialogVisible = false">Cancel</el-button>
<el-button type="primary" :loading="loading_btn" @click="rejectUserSlip">Submit</el-button>
</span>
</el-dialog>
</el-main>
</template>
<style>
@@ -231,59 +252,61 @@
return {
status: 2,
loading_btn: false,
booking_details:{
rejectDialogVisible: false,
reject_reason: null,
booking_details: {
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
},
estimated_arrival_time : null,
estimated_arrival_time: null,
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
beforeCreate() {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
},
axios
.get('/api/admin/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
approveUserSlip() {
this.loading_btn = true
let newApprove = {
estimated_arrival_time: this.estimated_arrival_time
estimated_arrival_time: this.estimated_arrival_time
}
axios.post('/api/booking/' + this.$route.params.id + '/approve-bank-slip', newApprove)
axios.post('/api/booking/' + this.$route.params.id + '/approve-bank-slip', newApprove)
.then((response) => {
this.loading_btn = false
this.$message({
showClose: true,
message: 'User bankinslip accepted. Proceed with book with supplier.',
type: 'success',
duration: 5000
})
this.$message({
showClose: true,
message: 'User bankinslip accepted. Proceed with book with supplier.',
type: 'success',
duration: 5000
})
this.$router.push({
name: 'booking.admin.supplier'
})
this.$router.push({
name: 'booking.admin.supplier'
})
// pass variable to another router
})
@@ -294,25 +317,27 @@
},
rejectUserSlip() {
this.loading_btn = true
this.centerDialogVisible = false
let newApprove = {
estimated_arrival_time: this.estimated_arrival_time
estimated_arrival_time: this.estimated_arrival_time,
reject_reason: this.reject_reason
}
axios.post('/api/booking/' + this.$route.params.id + '/reject-bank-slip', newApprove)
axios.post('/api/booking/' + this.$route.params.id + '/reject-bank-slip', newApprove)
.then((response) => {
this.loading_btn = false
this.$message({
showClose: true,
message: 'User bankinslip rejected. Waiting user to reupload their user bankslip.',
type: 'warning',
duration: 5000
})
this.$message({
showClose: true,
message: 'User bankinslip rejected. Waiting user to reupload their user bankslip.',
type: 'warning',
duration: 5000
})
this.$router.push({
name: 'admin.home'
})
this.$router.push({
name: 'admin.home'
})
// pass variable to another router
})
+13 -15
View File
@@ -1,4 +1,7 @@
<template>
<div>
<div align="right">
<el-button icon="el-icon-refresh" type="primary" size="mini" @click="RefreshBooking()">Refresh</el-button></div>
<!-- Booking Table -->
<el-row :gutter="20">
<div>
@@ -41,6 +44,7 @@
</div>
</el-row>
<!-- Booking Table-end -->
</div>
</template>
<script>
@@ -52,26 +56,20 @@ export default {
return {
status: null,
bookingTable: [
]
],
url: 'api/admin/booking',
}
},
mounted () {
axios
.get('/api/admin/booking')
.then((response) => {
console.log(response.data)
this.bookingTable = response.data
// loading.close()
}).catch((error) => {
// console.log(error)
// loading.close()
// this.$router.push({
// name: 'notfound'
// })
})
this.RefreshBooking()
},
methods: {
RefreshBooking() {
let $this = this
axios.get(this.url).then(response => {
this.bookingTable = response.data
})
},
filterTag (value, row) {
return row.tag === value
},
+229 -70
View File
@@ -5,9 +5,11 @@
<div align="center">
<h4 style="margin-top:5%;">Order Completed</h4>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
<br>
<!-- upload card -->
<!-- bankslip -->
<br>
<el-row :gutter="12" justify="center" align="center">
<el-col :span="8">
@@ -18,29 +20,14 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.user_po_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
@@ -49,24 +36,37 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.china_bankslip_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<img v-bind:src="booking_details.invoice_path" class="image">
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<br>
<!-- bank slips END -->
<!-- order details -->
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
@@ -79,7 +79,177 @@
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row>
</el-row> -->
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"><b>MYR {{ booking_details.bia }}</b></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row> -->
</el-card>
</el-row>
<br>
@@ -87,12 +257,12 @@
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Bankin Slip</span>
<span>Payment Bankin Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<img src="http://via.placeholder.com/600x400" class="image">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
@@ -100,13 +270,14 @@
</el-main>
</template>
<style>
.booking-details {
font-weight: bold;
}
.booking-details {
font-weight: bold;
}
</style>
<script>
import VueCountdown from '@dmaksimovic/vue-countdown'
import ProgressTrack from '~/components/ProgressTrack'
import axios from 'axios'
export default {
components: {
@@ -114,50 +285,38 @@ export default {
},
data () {
return {
status: 6,
bookingConfirmTable: [{
data1: 'Order Number :',
data2: '001'
}, {
data1: 'Date :',
data2: '25/5/2018'
}, {
data1: 'Customer Marking :',
data2: 'CIEF/150ECE'
}, {
data1: '',
data2: ''
}, {
data1: 'Payment Method :',
data2: 'Cash/Bank Transfer'
}, {
data1: '',
data2: ''
}],
bookingConfirmTable2: [{
data1: 'CNY/RMB :',
data2: 'CNY 120,500.00'
}, {
data1: '+ Service Charge :',
data2: 'CNY 20.00'
}, {
data1: '/ RATE :',
data2: '1.63'
}, {
data1: '',
data2: 'MYR 73,848.04'
}, {
data1: '+ GST 6% :',
data2: 'MYR 4,430.88'
}, {
data1: '',
data2: 'MYR 78,278.92'
}, {
data1: '',
data2: ''
}]
status: 7,
loading_btn: false,
booking_details:{
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
}
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
}
@@ -205,7 +205,7 @@
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>BankinSlip</span>
<span>Banking Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
+256 -47
View File
@@ -5,17 +5,68 @@
<div align="center">
<h4 style="margin-top:5%;">Processing Invoice</h4>
<br>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
<br>
<!-- bankslip -->
<br>
<el-row :gutter="12" justify="center" align="center">
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Purchase Order</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.user_po_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>China Bank Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.china_bankslip_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<br>
<!-- bank slips END -->
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
@@ -28,7 +79,177 @@
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row>
</el-row> -->
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"><b>MYR {{ booking_details.bia }}</b></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row> -->
</el-card>
</el-row>
<br>
@@ -36,12 +257,12 @@
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>BankinSlip</span>
<span>Payment Bankin Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<img src="http://via.placeholder.com/600x400" class="image">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
@@ -56,6 +277,7 @@
<script>
import VueCountdown from '@dmaksimovic/vue-countdown'
import ProgressTrack from '~/components/ProgressTrack'
import axios from 'axios'
export default {
components: {
@@ -64,50 +286,37 @@ export default {
data () {
return {
status: 6,
bookingConfirmTable: [{
data1: 'Order Number :',
data2: '001'
}, {
data1: 'Date :',
data2: '25/5/2018'
}, {
data1: 'Customer Marking :',
data2: 'CIEF/150ECE'
}, {
data1: '',
data2: ''
}, {
data1: 'Payment Method :',
data2: 'Cash/Bank Transfer'
}, {
data1: '',
data2: ''
}],
bookingConfirmTable2: [{
data1: 'CNY/RMB :',
data2: 'CNY 120,500.00'
}, {
data1: '+ Service Charge :',
data2: 'CNY 20.00'
}, {
data1: '/ RATE :',
data2: '1.63'
}, {
data1: '',
data2: 'MYR 73,848.04'
}, {
data1: '+ GST 6% :',
data2: 'MYR 4,430.88'
}, {
data1: '',
data2: 'MYR 78,278.92'
}, {
data1: '',
data2: ''
}
]
loading_btn: false,
booking_details:{
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
}
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
}
+231 -57
View File
@@ -5,12 +5,14 @@
<div align="center">
<h4 style="margin-top:5%;">Processing Invoice</h4>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
<br>
<!-- upload card -->
<!-- bankslip -->
<br>
<el-row :gutter="12" justify="center" align="center">
<el-col :span="12">
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Purchase Order</span>
@@ -18,15 +20,15 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.user_po_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>China Bank Slip</span>
@@ -34,24 +36,37 @@
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a target=" _blank" href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<a target=" _blank" href="#">
<img v-bind:src="booking_details.china_bankslip_path" class="image">
</a>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Invoice</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12" type="flex">
<el-col :span="12">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<br>
<!-- bank slips END -->
<!-- order details -->
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
@@ -64,7 +79,177 @@
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row>
</el-row> -->
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"><b>MYR {{ booking_details.bia }}</b></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
<!-- <el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row> -->
</el-card>
</el-row>
<br>
@@ -72,12 +257,12 @@
<el-row justify="center" align="center">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Order Bankin Slip</span>
<span>Payment Bankin Slip</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<img src="http://via.placeholder.com/600x400" class="image">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
@@ -85,13 +270,14 @@
</el-main>
</template>
<style>
.booking-details {
font-weight: bold;
}
.booking-details {
font-weight: bold;
}
</style>
<script>
import VueCountdown from '@dmaksimovic/vue-countdown'
import ProgressTrack from '~/components/ProgressTrack'
import axios from 'axios'
export default {
components: {
@@ -99,50 +285,38 @@ export default {
},
data () {
return {
status: 5,
bookingConfirmTable: [{
data1: 'Order Number :',
data2: '001'
}, {
data1: 'Date :',
data2: '25/5/2018'
}, {
data1: 'Customer Marking :',
data2: 'CIEF/150ECE'
}, {
data1: '',
data2: ''
}, {
data1: 'Payment Method :',
data2: 'Cash/Bank Transfer'
}, {
data1: '',
data2: ''
}],
bookingConfirmTable2: [{
data1: 'CNY/RMB :',
data2: 'CNY 120,500.00'
}, {
data1: '+ Service Charge :',
data2: 'CNY 20.00'
}, {
data1: '/ RATE :',
data2: '1.63'
}, {
data1: '',
data2: 'MYR 73,848.04'
}, {
data1: '+ GST 6% :',
data2: 'MYR 4,430.88'
}, {
data1: '',
data2: 'MYR 78,278.92'
}, {
data1: '',
data2: ''
}]
status: 6,
loading_btn: false,
booking_details:{
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
}
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
}
@@ -3,9 +3,7 @@
<progress-track v-model="status"/>
<div align="center">
<h4 style="margin-top:5%;">Transfer In Progress</h4>
<br>
<h5> ETA : 3 days 14 Hours </h5>
<h4 style="margin-top:5%;">Bankin Slip Aprroved <br><br> Transfer In Progress</h4>
<br>
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
</div>
+185 -57
View File
@@ -49,7 +49,7 @@
<el-row :gutter="12" type="flex">
<el-col :span="12">
<a href="https://placeholder.com">
<img width="100%" height="100%" src="http://via.placeholder.com/700x800">
<img v-bind:src="booking_details.china_bankslip_path" class="image">
</a>
</el-col>
</el-row>
@@ -65,20 +65,160 @@
<span>Order Details</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
</div>
<el-row :gutter="12">
<el-col :span="12">
<el-table :data="bookingConfirmTable" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
<el-col :span="12">
<el-table :data="bookingConfirmTable2" :show-header="false" align="center">
<el-table-column prop="data1" align="right" width="200" />
<el-table-column prop="data2" align="left" width="200" />
</el-table>
</el-col>
</el-row>
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_2_column_9" width="200">
<col name="el-table_2_column_10" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Order Number :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.id }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Date :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.created_at }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Customer Marking :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">CIEF/150ECE</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell">Term :</div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell">{{ booking_details.term }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_2_column_9 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_2_column_10 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<!---->
<!---->
<!---->
<!---->
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
<div class="hidden-columns">
<div></div>
<div></div>
</div>
<!---->
<div class="el-table__body-wrapper is-scrolling-none">
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
<colgroup>
<col name="el-table_3_column_11" width="200">
<col name="el-table_3_column_12" width="200">
</colgroup>
<tbody>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">CNY/RMB :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.amount }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ Service Charge :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">CNY {{ booking_details.service_charge }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">/ RATE :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">{{ booking_details.rate }}</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR {{ booking_details.bia }}</div>
</td>
</tr>
<!-- <tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell">+ GST 6% :</div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">MYR 4,430.88</div>
</td>
</tr> -->
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell">
<b>MYR {{ booking_details.bia }}</b>
</div>
</td>
</tr>
<tr class="el-table__row">
<td class="el-table_3_column_11 is-right ">
<div class="cell"></div>
</td>
<td class="el-table_3_column_12 is-left ">
<div class="cell"></div>
</td>
</tr>
<!---->
</tbody>
</table>
<!---->
<!---->
</div>
<div class="el-table__column-resize-proxy" style="display: none;"></div>
</div>
</div>
</div>
</el-card>
</el-row>
<br>
@@ -91,7 +231,7 @@
</div>
<el-row :gutter="12">
<el-col :span="22" style="text-align:center">
<img src="http://via.placeholder.com/600x400" class="image">
<img v-bind:src="booking_details.user_bankslip_path" class="image">
</el-col>
</el-row>
</el-card>
@@ -117,49 +257,37 @@ export default {
booking_id: this.$route.params.id,
status: 5,
loading_btn: false,
bookingConfirmTable: [{
data1: 'Order Number :',
data2: '001'
}, {
data1: 'Date :',
data2: '25/5/2018'
}, {
data1: 'Customer Marking :',
data2: 'CIEF/150ECE'
}, {
data1: '',
data2: ''
}, {
data1: 'Payment Method :',
data2: 'Cash/Bank Transfer'
}, {
data1: '',
data2: ''
}],
bookingConfirmTable2: [{
data1: 'CNY/RMB :',
data2: 'CNY 120,500.00'
}, {
data1: '+ Service Charge :',
data2: 'CNY 20.00'
}, {
data1: '/ RATE :',
data2: '1.63'
}, {
data1: '',
data2: 'MYR 73,848.04'
}, {
data1: '+ GST 6% :',
data2: 'MYR 4,430.88'
}, {
data1: '',
data2: 'MYR 78,278.92'
}, {
data1: '',
data2: ''
}]
booking_details:{
id: null,
amount: null,
bia: null,
user_bankslip_path: null,
china_bankslip_path: null,
}
}
},
beforeCreate () {
const loading = this.$loading({
lock: true,
text: 'Please wait..',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios
.get('/api/booking/' + this.$route.params.id)
.then((response) => {
this.booking_details = response.data
loading.close()
}).catch((error) => {
console.log(error)
loading.close()
this.$router.push({
name: 'notfound'
})
})
},
methods: {
uploadPo () {
this.loading_btn = true
@@ -2,7 +2,16 @@
<el-main>
<progress-track v-model="status"/>
<div align="center">
<div align="center" v-if="booking.user_bankslip_path">
<h4 style="margin-top:5%" >
Your Bankslip Has Been Rejected, Please Reupload Your Bankslip <br>
Reason : {{ booking.reject_reason }}
</h4>
<br>
<br>
</div>
<div v-else align="center">
<h4 style="margin-top:5%;">Waiting For Payment</h4>
</div>
@@ -23,6 +32,15 @@
</tr>
</tbody>
</table>
<table class="table-responsive el-table" style="display:table; width:50%; margin: 0 auto;" align="center">
<tr>
<td align="center">TC Global Trade (M) Sdn Bhd (1190583-A) <br> GST : 001408413696 <br> HLB : 2200 0010 531 <br> MBB : 5148 4233 6341</td>
</tr>
<!-- <tr><td align="center">GST : 001408413696</td></tr>
<tr><td align="center">HLB : 2200 0010 531</td></tr>
<tr><td align="center">MBB : 5148 4233 6341</td></tr> -->
</table>
</el-row>
<br>
@@ -107,7 +125,9 @@ export default {
booking: {
amount: '',
bankin_amount: '',
timeout: 1
timeout: 1,
user_bankslip_path: null,
reject_reason: null,
},
rules: {
transfer_amount: [{
@@ -132,6 +152,13 @@ export default {
this.booking.amount = response.data.amount
this.booking.bankin_amount = response.data.bia
this.booking.timeout = response.data.timeout * 1000
if (response.data.user_bankslip_path)
{
this.booking.user_bankslip_path = response.data.user_bankslip_path
this.booking.reject_reason = response.data.reject_reason
}
this.start = true
loading.close()
+104 -54
View File
@@ -57,13 +57,13 @@
<div class="grid-content bg-purple" align="left">X1 :</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.70</div>
<div class="grid-content bg-purple" align="center">{{ rate.x1_cash }}</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.64</div>
<div class="grid-content bg-purple" align="center">{{ rate.x1_cheque }}</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.62</div>
<div class="grid-content bg-purple" align="center">{{ rate.x1_ba }}</div>
</el-col>
</el-row>
@@ -104,13 +104,13 @@
<div class="grid-content bg-purple" align="left">X2 :</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.56</div>
<div class="grid-content bg-purple" align="center">{{ rate.x2_cash }}</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.64</div>
<div class="grid-content bg-purple" align="center">{{ rate.x2_cheque }}</div>
</el-col>
<el-col>
<div class="grid-content bg-purple" align="center">1.62</div>
<div class="grid-content bg-purple" align="center">{{ rate.x2_ba }}</div>
</el-col>
</el-row>
@@ -230,12 +230,13 @@
</span>
</el-dialog>
<!-- Booking_confirmation_popup -->
<br>
<br>
<hr>
<!-- Booking Table -->
<div align="right">
<el-button icon="el-icon-refresh" type="primary" size="mini" @click="RefreshBooking()">Refresh</el-button></div>
<!-- Booking Table -->
<el-row :gutter="20">
<div>
<el-table :data="bookingTable">
@@ -275,9 +276,17 @@
</el-table-column>
</el-table>
</div>
</el-row>
</el-row><br><br>
<div align="right">
<el-button type="primary" size="mini" @click="fetchPaginateBooking(pagination.prev_page_url)" :disabled="!pagination.prev_page_url">
Previous
</el-button>
<span>Page {{pagination.current_page}} of {{pagination.last_page}}</span>
<el-button type="primary" size="mini" @click="fetchPaginateBooking(pagination.next_page_url)" :disabled="!pagination.next_page_url">
Next
</el-button>
</div>
<!-- Booking Table-end -->
</el-main>
</template>
<style>
@@ -300,6 +309,14 @@ export default {
term: '',
amount: ''
}),
rate: {
x1_ba: null,
x1_cheque: null,
x1_cash: null,
x2_ba: null,
x2_cash: null,
x2_cheque: null,
},
loading: false,
status: '',
booking: {
@@ -355,6 +372,8 @@ export default {
formLabelWidth: '0px',
bookingTable: [
],
url: 'api/booking',
pagination: [],
bookingConfirmTable: {
date: 'undefined',
marking: 'undefined',
@@ -369,20 +388,45 @@ export default {
}
},
mounted () {
axios
.get('/api/booking/')
.then((response) => {
console.log(response)
this.bookingTable = response.data.data
// loading.close()
}).catch((error) => {
// loading.close()
// this.$router.push({
// name: 'notfound'
// })
})
this.getBooking()
this.RefreshBooking()
this.getRate()
},
methods: {
getRate(){
let $this = this
axios.get(this.url).then(response => {
this.bookingTable = response.data.data
$this.makePagination(response.data)
})
},
getBooking() {
let $this = this
axios.get('api/rate').then(response => {
this.rate = response.data
console.log(this.rate)
})
},
RefreshBooking() {
let $this = this
axios.get(this.url).then(response => {
this.bookingTable = response.data.data
})
},
makePagination(data){
let pagination = {
current_page: data.current_page,
last_page: data.last_page,
next_page_url: data.next_page_url,
prev_page_url: data.prev_page_url
}
this.pagination = pagination
},
fetchPaginateBooking(url) {
this.url = url
this.getBooking()
},
// TODO fetch booking data on load
formatter (row, column) {
return row.address
@@ -405,13 +449,6 @@ export default {
this.dialogFormVisible = true
this.term = newterm
},
BookingList () {
axios.get('api/booking')
.then((response) => {
console.log(response)
this.list = response.data
})
},
// Get calculation before submitting booking
getCalculationValue (formName) {
this.loading = true
@@ -441,38 +478,51 @@ export default {
console.log(error)
})
} else {
this.loading = false
this.$message({
showClose: true,
message: 'Please fill the booking form in full.',
type: 'error',
duration: 10000
})
}
})
},
createBooking: function () {
this.loading = true,
this.dialogFormVisible1 = true
let newBooking = {
account_name: this.bookingForm.account_name,
account_num: this.bookingForm.account_num,
bank_name: this.bookingForm.bank_name,
bank_branch: this.bookingForm.bank_branch,
amount: this.booking.amount,
term: this.term
}
let newBooking = {
account_name: this.bookingForm.account_name,
account_num: this.bookingForm.account_num,
bank_name: this.bookingForm.bank_name,
bank_branch: this.bookingForm.bank_branch,
amount: this.booking.amount,
term: this.term
}
console.log(newBooking)
axios.post('api/booking', newBooking)
.then((response) => {
this.loading = false
// push with return id
this.$router.push({
name: 'booking.user.upload',
params: {id: response.data.id }
})
console.log(newBooking)
axios.post('api/booking', newBooking)
.then((response) => {
this.loading = false
// push with return id
this.$router.push({
name: 'booking.user.upload',
params: {id: response.data.id }
})
// pass variable to another router
})
.catch((error) => {
console.log(error)
})
// pass variable to another router
})
.catch((error) => {
console.log(error)
this.loading = false
this.$message({
showClose: true,
message: 'Internal server issues. Please contact support',
type: 'error',
duration: 10000
})
})
},
BookingStatus (status, booking_id) {
console.log(status)
+3 -3
View File
@@ -34,12 +34,12 @@ const adminCompleted = () => import('~/pages/admin/booking/completed').then(m =>
// Admin pages
const AdminHome = () => import('~/pages/admin/home').then(m => m.default || m)
const CompleteOrder = () => import('~/pages/admin/complete-order').then(m => m.default || m)
const AdminCompleteOrder = () => import('~/pages/admin/complete-order').then(m => m.default || m)
const TransactionHistory = () => import('~/pages/admin/transaction-history').then(m => m.default || m)
const UploadSupplierBankSlip = () => import('~/pages/admin/upload-supplier-bank-slip').then(m => m.default || m)
export default [
{ path: '/', name: 'welcome', component: Welcome },
{ path: '/', name: 'welcome', component: Login },
{ path: '/login', name: 'login', component: Login },
{ path: '/register', name: 'register', component: Register },
{ path: '/password/reset', name: 'password.request', component: PasswordEmail },
@@ -77,7 +77,7 @@ export default [
// Admin pages
{ path: '/admin', name: 'admin.home', component: AdminHome },
{ path: '/admin/complete-order', name: 'admin.complete-order', component: CompleteOrder },
{ path: '/admin/complete-order', name: 'admin.complete', component: AdminCompleteOrder },
{ path: '/admin/transaction-history', name: 'admin.transaction-history', component: TransactionHistory },
{ path: '/admin/upload-supplier-bank-slip', name: 'admin.upload-supplier-bank-slip', component: UploadSupplierBankSlip },
{ path: '*', name: 'notfound', component: NotFound }
+4 -7
View File
@@ -21,7 +21,7 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('rate', 'RateController@show');
//Route::middleware('auth:api')->get('/user', function (Request $request) {
// return $request->user();
//});
@@ -44,7 +44,6 @@ Route::group(['middleware' => 'auth:api'], function () {
Route::post('booking/{book_id}/cancel', 'BookingController@cancel');
Route::get('/booking', 'BookingController@index');
Route::get('/user', 'UserController@show');
Route::patch('settings/profile', 'Settings\ProfileController@update');
Route::patch('settings/password', 'Settings\PasswordController@update');
});
@@ -56,7 +55,6 @@ Route::group(['middleware' => 'guest:api'], function () {
Route::post('register', 'Auth\RegisterController@create');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Route::post('oauth/{driver}', 'Auth\OAuthController@redirectToProvider');
Route::get('oauth/{driver}/callback', 'Auth\OAuthController@handleProviderCallback')->name('oauth.callback');
});
@@ -64,13 +62,12 @@ Route::group(['middleware' => 'guest:api'], function () {
Route::group(['middleware' => ['role:admin']], function() {
Route::get('admin/booking/', 'BookingController@adminIndex');
Route::get('admin/booking/{id}', 'BookingController@adminShow');
Route::post('update-rate', 'RateController@store');
Route::put('update-rate/{rate}', 'RateController@update');
Route::delete('update-rate/{rate}', 'RateController@delete');
Route::get('update-rate', 'RateController@index');
Route::get('update-rate/{rate}', 'RateController@show');
Route::get('setting-credit', 'SettingCreditController@index');
Route::get('setting-credit/{credit}', 'SettingCreditController@show');
@@ -106,7 +103,7 @@ Route::group(['middleware' => ['role:admin']], function() {
Route::patch('/booking/{id}/update-china-bankslip','ChinaBankSlipController@update');
Route::get('/booking/{id}/po', 'BookingController@showPurchaseOrder');
Route::post('booking/{id}/upload-invoice', 'BookingController@uploadInvoice');
Route::post('booking/{id}/confirm-invoice', 'BookingController@confirmInvoice');
Route::post('booking/{id}/confirm-invoice', 'BookingController@confirmInvoice');
});
+9 -2
View File
@@ -43,8 +43,8 @@ class RateTest extends TestCase
'x2_ba' => '1.2'
])
->assertStatus(201);
}
}
public function testUpdate(){
$response =
$this->actingAs($this->user)
@@ -57,5 +57,12 @@ class RateTest extends TestCase
'x2_ba' => '1.2'
])
->assertStatus(200);
}
public function testShowRate(){
$response = $this->json('GET', '/api/rate');
$response
->assertStatus(200);
}
}
-1
View File
@@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'App\\Booking' => $baseDir . '/app/Booking.php',
'App\\ChinaBankSlip' => $baseDir . '/app/ChinaBankSlip.php',
'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
'App\\Exceptions\\EmailTakenException' => $baseDir . '/app/Exceptions/EmailTakenException.php',
+9 -10
View File
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInit186bbd0d0f979469b3a193511536d69e
class ComposerStaticInit0bbff1eca0c8c05eacbd8478d22c7dd2
{
public static $files = array (
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
@@ -12,11 +12,11 @@ class ComposerStaticInit186bbd0d0f979469b3a193511536d69e
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
@@ -145,8 +145,8 @@ class ComposerStaticInit186bbd0d0f979469b3a193511536d69e
'phpDocumentor\\Reflection\\' =>
array (
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
),
'Zizaco\\Entrust\\' =>
array (
@@ -434,7 +434,6 @@ class ComposerStaticInit186bbd0d0f979469b3a193511536d69e
);
public static $classMap = array (
'App\\Booking' => __DIR__ . '/../..' . '/app/Booking.php',
'App\\ChinaBankSlip' => __DIR__ . '/../..' . '/app/ChinaBankSlip.php',
'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',
'App\\Exceptions\\EmailTakenException' => __DIR__ . '/../..' . '/app/Exceptions/EmailTakenException.php',
@@ -4767,10 +4766,10 @@ class ComposerStaticInit186bbd0d0f979469b3a193511536d69e
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit186bbd0d0f979469b3a193511536d69e::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit186bbd0d0f979469b3a193511536d69e::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInit186bbd0d0f979469b3a193511536d69e::$prefixesPsr0;
$loader->classMap = ComposerStaticInit186bbd0d0f979469b3a193511536d69e::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit0bbff1eca0c8c05eacbd8478d22c7dd2::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit0bbff1eca0c8c05eacbd8478d22c7dd2::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInit0bbff1eca0c8c05eacbd8478d22c7dd2::$prefixesPsr0;
$loader->classMap = ComposerStaticInit0bbff1eca0c8c05eacbd8478d22c7dd2::$classMap;
}, null, ClassLoader::class);
}
-11351
View File
File diff suppressed because it is too large Load Diff