Commit 076c0a8c authored by Khumoyunmirzo Sodiqov's avatar Khumoyunmirzo Sodiqov

video

parent 96506261
...@@ -24,11 +24,11 @@ REDIS_PASSWORD=null ...@@ -24,11 +24,11 @@ REDIS_PASSWORD=null
REDIS_PORT=6379 REDIS_PORT=6379
MAIL_DRIVER=smtp MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io MAIL_HOST=smtp.yandex.ru
MAIL_PORT=2525 MAIL_PORT=465
MAIL_USERNAME=null MAIL_USERNAME=noreply@fazoshop.us
MAIL_PASSWORD=null MAIL_PASSWORD=Apple94
MAIL_ENCRYPTION=null MAIL_ENCRYPTION=ssl
PUSHER_APP_ID= PUSHER_APP_ID=
PUSHER_APP_KEY= PUSHER_APP_KEY=
...@@ -37,3 +37,6 @@ PUSHER_APP_CLUSTER=mt1 ...@@ -37,3 +37,6 @@ PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
CLIENT_ID=AaQ97uzZztUZ4UB41nf8tjWwoh1U_pwJVE-pucczFZfBmBSJ-VjFrNslgJueyev8enLp-LxQPw8GJw6a
CLIENT_SECRET=EJHxBBjU1T7dBq0YS0V4fmPA9S4VY3HfcWePKN2UT7d1_HsILtiqfljWvaP03J75SHZoeAJNsQkzqII1
...@@ -2,9 +2,12 @@ ...@@ -2,9 +2,12 @@
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Models\ClientAuthCodes;
use App\User; use App\User;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Foundation\Auth\RegistersUsers;
...@@ -43,7 +46,7 @@ class RegisterController extends Controller ...@@ -43,7 +46,7 @@ class RegisterController extends Controller
/** /**
* Get a validator for an incoming registration request. * Get a validator for an incoming registration request.
* *
* @param array $data * @param array $data
* @return \Illuminate\Contracts\Validation\Validator * @return \Illuminate\Contracts\Validation\Validator
*/ */
protected function validator(array $data) protected function validator(array $data)
...@@ -59,12 +62,13 @@ class RegisterController extends Controller ...@@ -59,12 +62,13 @@ class RegisterController extends Controller
/** /**
* Create a new user instance after a valid registration. * Create a new user instance after a valid registration.
* *
* @param array $data * @param array $data
* @return \App\User * @return \App\User
*/ */
protected function create(array $data) protected function create(array $data)
{ {
return User::create([
$user = User::create([
'name' => $data['name'], 'name' => $data['name'],
'surname' => $data['surname'], 'surname' => $data['surname'],
'email' => $data['email'], 'email' => $data['email'],
...@@ -72,5 +76,25 @@ class RegisterController extends Controller ...@@ -72,5 +76,25 @@ class RegisterController extends Controller
'uni_code' => $this->generateUniqNumber(), 'uni_code' => $this->generateUniqNumber(),
'client_type' => 'WEB', 'client_type' => 'WEB',
]); ]);
$authCode = ClientAuthCodes::create([
'client_id' => $user->id,
'code' => $this->generateUniqNumber(4),
'life_time' => Carbon::now()->addMinute(10)
]);
// $success['client_id'] = $customer->id; //$customer->createToken('erpTuronApp')->accessToken;
// $success['pass_code'] = $authCode->code;
// $success['name'] = $customer->first_name .' '.$customer->second_name;
$to_name = $user->name . ' ' . $user->surname;
$to_email = $user->email;
$data = array('code' => $authCode->code);
Mail::send('emails', $data, function ($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Fazo Cargo | Checking customer email');
$message->from('noreply@fazoshop.us', 'Verification code');
});
return $user;
} }
} }
...@@ -7,12 +7,16 @@ use App\Models\Address; ...@@ -7,12 +7,16 @@ use App\Models\Address;
use App\Models\Client; use App\Models\Client;
use App\Models\Orders; use App\Models\Orders;
use App\Models\OrderService; use App\Models\OrderService;
use App\Models\Payment;
use App\Models\Product; use App\Models\Product;
use App\Models\Service; use App\Models\Service;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use PayPalCheckoutSdk\Orders\OrdersGetRequest;
use Sample\GetOrder;
use Sample\PayPalClient;
class OrderController extends Controller class OrderController extends Controller
{ {
...@@ -68,6 +72,7 @@ class OrderController extends Controller ...@@ -68,6 +72,7 @@ class OrderController extends Controller
'payment_is_to_office', 'payment_is_to_office',
'client_type', 'client_type',
'delivery_info', 'delivery_info',
'payment_info',
'status_id', 'status_id',
'label_url', 'label_url',
'comment', 'comment',
...@@ -109,9 +114,11 @@ class OrderController extends Controller ...@@ -109,9 +114,11 @@ class OrderController extends Controller
'payment_is_to_office', 'payment_is_to_office',
'client_type', 'client_type',
'delivery_info', 'delivery_info',
'payment_info',
'status_id', 'status_id',
'label_url', 'label_url',
'comment', 'comment',
DB::raw('(SELECT name FROM payment_statuses WHERE id=(select payment_statuses_id from payment where order_id=orders.id)) as payment_statuses'),
DB::raw('(SELECT title FROM flights WHERE id=orders.flight_id) as flights'), DB::raw('(SELECT title FROM flights WHERE id=orders.flight_id) as flights'),
DB::raw('(SELECT name FROM users WHERE id=orders.operator_id) as operator'), DB::raw('(SELECT name FROM users WHERE id=orders.operator_id) as operator'),
DB::raw('(SELECT concat(name, \' \', surname) FROM clients WHERE id=orders.client_id) as client'), DB::raw('(SELECT concat(name, \' \', surname) FROM clients WHERE id=orders.client_id) as client'),
...@@ -125,33 +132,15 @@ class OrderController extends Controller ...@@ -125,33 +132,15 @@ class OrderController extends Controller
])->get(); ])->get();
} }
$statuses = DB::select('SELECT s.id, s.sort, s.title, s.color_class, (SELECT count(*) FROM orders where status_id=s.id and client_id='.$id.') as count FROM status s'); $statuses = DB::select('SELECT s.id, s.sort, s.title, s.color_class, (SELECT count(*) FROM orders where status_id=s.id and client_id=' . $id . ') as count FROM status s');
$count = DB::select('SELECT COUNT(*) as count FROM orders where client_id='.$id); $count = DB::select('SELECT COUNT(*) as count FROM orders where client_id=' . $id);
// dd($orders); // dd($orders);
return view('pages.parcels.allpackages', ['orders' => $orders, 'count' => $count[0]->count, 'status_id' => $status_id, 'statuses' => $statuses]); return view('pages.parcels.allpackages', ['orders' => $orders, 'count' => $count[0]->count, 'status_id' => $status_id, 'statuses' => $statuses]);
} }
// function create(){
// return view('pages.parcels.order_create');
// }
//
// private function countPackages() : array
// {
// $itemsCounter = [
// 'allPackages' => Package::where('user_id', Auth::id())->count(),
// 'onPending' => Package::where('status', Package::STATUS_PENDING)->where('user_id', Auth::id())->count(),
// 'inStore' => Package::where('status', Package::STATUS_INSTORE)->where('user_id', Auth::id())->count(),
// 'onPacking' => Package::where('status', Package::STATUS_ONPACKING)->where('user_id', Auth::id())->count(),
// 'sent' => Package::where('status', Package::STATUS_SENT)->where('user_id', Auth::id())->count(),
// 'delivered' => Package::where('status', Package::STATUS_DELIVERED)->where('user_id', Auth::id())->count(),
// ];
//
// return $itemsCounter;
// }
/** /**
* Show the application Client create page. * Show the application Client create page.
...@@ -184,13 +173,100 @@ class OrderController extends Controller ...@@ -184,13 +173,100 @@ class OrderController extends Controller
return view('pages.parcels.order_create', ['client' => $client, 'senderAddresses' => $senderAddresses, 'recAddresses' => $recAddresses, 'services' => $services]); return view('pages.parcels.order_create', ['client' => $client, 'senderAddresses' => $senderAddresses, 'recAddresses' => $recAddresses, 'services' => $services]);
} }
public function orderStore(Request $request) public function payment($orderId)
{ {
$order = Orders::select([
'id',
'client_id',
'flight_id',
'barcode',
'operator_id',
'name',
'from_address',
'boxes',
'debet',
'credit',
'added',
'edited',
'total',
'amount',
'weight',
'summa',
'sign',
'track_number',
'is_site',
'site_name',
'site_track_number',
'is_payment_uzb',
'to_address_id',
'payment_is_to_office',
'client_type',
'delivery_info',
'payment_info',
'status_id',
'label_url',
'comment',
DB::raw('(SELECT title FROM flights WHERE id=orders.flight_id) as flights'),
DB::raw('(SELECT name FROM users WHERE id=orders.operator_id) as operator'),
DB::raw('(SELECT concat(name, \' \', surname) FROM clients WHERE id=orders.client_id) as client'),
DB::raw('(SELECT title FROM status WHERE id=orders.status_id) as statuses'),
DB::raw('(SELECT color_class FROM status WHERE id=orders.status_id) as status_class'),
DB::raw('(SELECT concat(firstname,\' \',secondname,\' \',fathername) FROM address_info WHERE id=orders.from_address) as sender'),
DB::raw('(SELECT concat(firstname,\' \',secondname,\' \',fathername) FROM address_info WHERE id=orders.to_address_id) as recipient'),
DB::raw('(SELECT concat(passport,\' | \',passport_by,\', \',passport_issue) FROM address_info WHERE id=orders.to_address_id) as recipient_passport'),
DB::raw('(SELECT concat(country,\', \',city,\', \',street,\' \',house,\' \',apartment,\', \',zip) FROM address_info WHERE id=orders.to_address_id) as recipient_address'),
])->where([
['id', '=', $orderId]
])->get();
// dd($request); // dd($order);
$user = Auth::user();
// $data = $request->json()->get('data'); $payment = Payment::select([
'id',
'transaction_number',
'order_id',
'summa',
'payment_statuses_id',
'added_date',
'payed_date',
'description',
])->where('order_id', '=', $orderId)->get();
return view('pages.parcels.payment', ['order' => $order[0], 'payment' => $payment[0]]);
}
public function paymentSuccess($orderId){
// dd($orderId);
$client = PayPalClient::client();
$response = $client->execute(new OrdersGetRequest($orderId));
/**
*Enable the following line to print complete response as JSON.
*/
//print json_encode($response->result);
print "Status Code: {$response->statusCode}\n";
print "Status: {$response->result->status}\n";
print "Order ID: {$response->result->id}\n";
print "Intent: {$response->result->intent}\n";
print "Links:\n";
foreach($response->result->links as $link)
{
print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
}
// 4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
print "Gross Amount: {$response->result->purchase_units[0]->amount->currency_code} {$response->result->purchase_units[0]->amount->value}\n";
if (!count(debug_backtrace()))
{
GetOrder::getOrder($response->result->id);
}
}
public function orderStore(Request $request)
{
$user = Auth::user();
$orderServices = $request->get('services_id'); $orderServices = $request->get('services_id');
$orderProducts = $request->get('products'); $orderProducts = $request->get('products');
...@@ -222,7 +298,7 @@ class OrderController extends Controller ...@@ -222,7 +298,7 @@ class OrderController extends Controller
'flight_id' => 0, 'flight_id' => 0,
'added' => Carbon::now(), 'added' => Carbon::now(),
'amount' => $amount, 'amount' => $amount,
'summa' => ($request->get('weight') * 8) + $serSum, 'summa' => ($request->get('weight') * 8.5) + $serSum,
'weight' => $request->get('weight'), 'weight' => $request->get('weight'),
'total' => $price, 'total' => $price,
'track_number' => '98' . $this->generateUniqNumber(4), 'track_number' => '98' . $this->generateUniqNumber(4),
...@@ -232,7 +308,7 @@ class OrderController extends Controller ...@@ -232,7 +308,7 @@ class OrderController extends Controller
'to_address_id' => $request->get('to_address_id'), 'to_address_id' => $request->get('to_address_id'),
'payment_is_to_office' => 0, 'payment_is_to_office' => 0,
'delivery_info' => $request->get('delivery_info'), 'delivery_info' => $request->get('delivery_info'),
'payment_info' => $request->get('payment_info'), 'payment_info' => $request->get('payment_type_id'),
'comment' => $request->get('comment'), 'comment' => $request->get('comment'),
'client_type' => 'WEB', 'client_type' => 'WEB',
'status_id' => 19, 'status_id' => 19,
...@@ -260,6 +336,24 @@ class OrderController extends Controller ...@@ -260,6 +336,24 @@ class OrderController extends Controller
} }
} }
$payStatusId = 0;
if ($request->get('payment_type_id') == 1) {
$payStatusId = 1;
} elseif ($request->get('payment_type_id') == 2) {
$payStatusId = 5;
} elseif ($request->get('payment_type_id') == 3) {
$payStatusId = 6;
}
Payment::create([
'transaction_number' => $this->generateUniqNumber(12),
'order_id' => $order->id,
'summa' => $order->summa,
'payment_statuses_id' => $payStatusId,
'added_date' => Carbon::now()
]);
return redirect(route('package')); return redirect(route('package'));
} }
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
namespace App\Models; namespace App\Models;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
......
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Payment extends Authenticatable
{
use Notifiable;
protected $table = 'payment';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'transaction_number', 'order_id', 'summa', 'payment_statuses_id', 'added_date', 'payed_date', 'description',
];
public $timestamps = false;
}
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class PaymentStatus extends Authenticatable
{
use Notifiable;
protected $table = 'payment_statuses';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'payment_type_id', 'name', 'color'
];
public $timestamps = false;
}
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class PaymentType extends Authenticatable
{
use Notifiable;
protected $table = 'payment_type';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'icon', 'img_url'
];
public $timestamps = false;
}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "31b801600acd96ae69916e04307a1296", "content-hash": "1be6ae29dee65273d0a3a713f7c8fa81",
"packages": [ "packages": [
{ {
"name": "barryvdh/laravel-dompdf", "name": "barryvdh/laravel-dompdf",
...@@ -62,6 +62,45 @@ ...@@ -62,6 +62,45 @@
], ],
"time": "2019-08-23T14:30:33+00:00" "time": "2019-08-23T14:30:33+00:00"
}, },
{
"name": "braintree/braintreehttp",
"version": "0.3.0",
"source": {
"type": "git",
"url": "https://github.com/braintree/braintreehttp_php.git",
"reference": "204e36494d9e4b31033328df96af54b17f68b698"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/braintree/braintreehttp_php/zipball/204e36494d9e4b31033328df96af54b17f68b698",
"reference": "204e36494d9e4b31033328df96af54b17f68b698",
"shasum": ""
},
"require": {
"ext-curl": "*"
},
"require-dev": {
"phpunit/phpunit": "^5.7",
"wiremock-php/wiremock-php": "1.43.2"
},
"type": "library",
"autoload": {
"psr-4": {
"BraintreeHttp\\": "lib/BraintreeHttp"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Braintree",
"email": "code@getbraintree.com"
}
],
"time": "2018-04-17T20:53:31+00:00"
},
{ {
"name": "dnoegel/php-xdg-base-dir", "name": "dnoegel/php-xdg-base-dir",
"version": "0.1", "version": "0.1",
...@@ -1691,6 +1730,104 @@ ...@@ -1691,6 +1730,104 @@
], ],
"time": "2018-07-02T15:55:56+00:00" "time": "2018-07-02T15:55:56+00:00"
}, },
{
"name": "paypal/paypal-checkout-sdk",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/paypal/Checkout-PHP-SDK.git",
"reference": "b321066fdce122cd63368b559d54674bdf2f12a8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paypal/Checkout-PHP-SDK/zipball/b321066fdce122cd63368b559d54674bdf2f12a8",
"reference": "b321066fdce122cd63368b559d54674bdf2f12a8",
"shasum": ""
},
"require": {
"braintree/braintreehttp": "0.3.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7"
},
"type": "library",
"autoload": {
"psr-4": {
"PayPalCheckoutSdk\\": "lib/PayPalCheckoutSdk",
"Sample\\": "samples/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PayPal",
"homepage": "https://github.com/paypal/Checkout-PHP-SDK/contributors"
}
],
"description": "PayPal's PHP SDK for Checkout REST APIs",
"homepage": "http://github.com/paypal/Checkout-PHP-SDK/",
"keywords": [
"checkout",
"orders",
"payments",
"paypal",
"rest",
"sdk"
],
"time": "2019-02-04T06:59:08+00:00"
},
{
"name": "paypal/rest-api-sdk-php",
"version": "1.14.0",
"source": {
"type": "git",
"url": "https://github.com/paypal/PayPal-PHP-SDK.git",
"reference": "72e2f2466975bf128a31e02b15110180f059fc04"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paypal/PayPal-PHP-SDK/zipball/72e2f2466975bf128a31e02b15110180f059fc04",
"reference": "72e2f2466975bf128a31e02b15110180f059fc04",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-json": "*",
"php": ">=5.3.0",
"psr/log": "^1.0.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
},
"type": "library",
"autoload": {
"psr-0": {
"PayPal": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "PayPal",
"homepage": "https://github.com/paypal/rest-api-sdk-php/contributors"
}
],
"description": "PayPal's PHP SDK for REST APIs",
"homepage": "http://paypal.github.io/PayPal-PHP-SDK/",
"keywords": [
"payments",
"paypal",
"rest",
"sdk"
],
"time": "2019-01-04T20:04:25+00:00"
},
{ {
"name": "phenx/php-font-lib", "name": "phenx/php-font-lib",
"version": "0.5.1", "version": "0.5.1",
......
Your code <strong>{{ $code }}</strong>
...@@ -68,6 +68,8 @@ ...@@ -68,6 +68,8 @@
<th>Вес</th> <th>Вес</th>
<th>Стоимость доставки</th> <th>Стоимость доставки</th>
<th>FedEx</th> <th>FedEx</th>
<th>Способ оплаты</th>
<th>Статус платежа</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -82,10 +84,16 @@ ...@@ -82,10 +84,16 @@
<span class="badge badge-primary badge-pill">{{ $package->amount }}</span> <span class="badge badge-primary badge-pill">{{ $package->amount }}</span>
<a href="/declaration/{{ $package->id }}" target="_blank">Декларация</a> <a href="/declaration/{{ $package->id }}" target="_blank">Декларация</a>
</td> </td>
<td class="text-center">${{ $package->price }}</td> <td class="text-center">${{ $package->total }}</td>
<td class="text-center">{{ $package->weight }} кг</td> <td class="text-center">{{ $package->weight }} кг</td>
<td class="text-center">$ {{ $package->summa }}</td> <td class="text-center">$ {{ $package->summa }}</td>
<td class="text-center"><a href="{{ ($package->is_site == 1)?'/get-fedex-label/'.$package->id:'#' }}" target="_blank">{{ ($package->is_site == 1)?'Распечатать':'No label' }}</a></td> <td class="text-center"><a
href="{{ ($package->is_site == 1)?'/get-fedex-label/'.$package->id:'#' }}" {{ ($package->is_site == 1)?'target="_blank"':'' }}>{{ ($package->is_site == 1)?'Распечатать':'No label' }}</a>
</td>
<td class="text-center"><a
href="{{ ($package->payment_info == 3)?'/packages/payment/'.$package->id:'#' }}">{{ ($package->payment_info == 3)?'Оплатить онлайн':'Pay offline' }}</a>
</td>
<td class="text-center">{{ $package->payment_statuses }}</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
......
...@@ -367,18 +367,18 @@ ...@@ -367,18 +367,18 @@
<div class="col-md-4"> <div class="col-md-4">
<div class="custom-control custom-radio"> <div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="defaultUnchecked12" <input type="radio" class="custom-control-input" id="defaultUnchecked12"
name="payment_info" value="Наличньыми" checked> name="payment_type_id" value="1" checked>
<label class="custom-control-label" for="defaultUnchecked12">Оплачу по телефону</label> <label class="custom-control-label" for="defaultUnchecked12">Оплачу по телефону</label>
</div> </div>
<!-- Default checked --> <!-- Default checked -->
<div class="custom-control custom-radio"> <div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="defaultChecked21" <input type="radio" class="custom-control-input" id="defaultChecked21"
name="payment_info" value="По телефону"> name="payment_type_id" value="2">
<label class="custom-control-label" for="defaultChecked21">Оплачу Наличными</label> <label class="custom-control-label" for="defaultChecked21">Оплачу Наличными</label>
</div><!-- Default checked --> </div><!-- Default checked -->
<div class="custom-control custom-radio"> <div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="defaultChecked32" <input type="radio" class="custom-control-input" id="defaultChecked32"
name="payment_info" value="Online"> name="payment_type_id" value="3">
<label class="custom-control-label" for="defaultChecked32">Оплачу электронной формой оплаты (VISA, PayPal, <label class="custom-control-label" for="defaultChecked32">Оплачу электронной формой оплаты (VISA, PayPal,
MasterCard, AmericanExpress)</label> MasterCard, AmericanExpress)</label>
</div> </div>
......
@extends('layouts.user_new')
@section('content')
<style>
/*#msform fieldset {*/
/* background: transparent;*/
/* border: 0 none;*/
/* padding: 20px 30px;*/
/* box-sizing: border-box;*/
/* width: 80%;*/
/* margin: 0 10%;*/
/* !*stacking fieldsets above each other*!*/
/* position: absolute;*/
/*}*/
/*Hide all except first fieldset*/
#msform fieldset:not(:first-of-type) {
display: none;
}
/*progressbar*/
#progressbar {
counter-reset: step;
padding: 20px 30px;
height: 100px;
}
#progressbar li {
list-style-type: none;
width: 50%;
float: left;
position: relative;
text-align: center;
}
#progressbar li:before {
content: counter(step);
counter-increment: step;
width: 50px;
height: 50px;
line-height: 20px;
display: block;
color: #7d7d7d;
background: #7d7d7d;
border-radius: 25px;
margin: 0 auto 5px auto;
}
/*progressbar connectors*/
#progressbar li:after {
content: '';
width: 90%;
height: 2px;
background: #459fff;
position: absolute;
left: -45%;
top: 25px;
z-index: 1; /*put it behind the numbers*/
}
#progressbar li:first-child:after {
/*connector not needed before the first step*/
content: none;
}
/*marking active/completed steps green*/
/*The number of the step and the connector before it = green*/
#progressbar li.active:before, #progressbar li.active:after {
background: #459fff;
color: #459fff;
left: -45%;
}
.scroll-horizantal {
overflow-y: scroll;
overflow-x: hidden;
transform: rotate(270deg) translateX(-100%);
transform-origin: top left;
background-color: #999;
position: absolute;
}
kbd {
margin-right: 30px;
margin-left: 5px;
background-color: #0264ce !important;
}
</style>
<section class="section section-inset-1">
<div class="container">
<div class="row">
<div class="col-12">
<h4 class="mb-5">
<span class="text-top-title">Оплата</span>
</h4>
</div>
</div>
<ul id="progressbar" class="needs-validation border border-1 bg-white">
<li class="active">Квитанция</li>
<li>Оплата</li>
</ul>
<hr>
<form id="msform" action="{{ route('package.store') }}" method="POST"
class="border border-1 bg-white p-5">
{{ csrf_field() }}
<fieldset>
<div class="mb-3">
<p>№: <kbd>{{ $payment->transaction_number }}</kbd></p>
<p>Отправитель: <kbd>{{ $order->sender }}</kbd></p>
<hr>
<br>
<p>Номер заказа: <kbd>{{ $order->track_number }}</kbd> | Вес: <kbd>{{ $order->weight }}
кг.</kbd> | Количество: <kbd>{{ $order->amount }} шт.</kbd> | Цена товара:
<kbd>{{ $order->total }} $</kbd> | Сумма к оплате:
<kbd>{{ $order->summa }} $</kbd></p>
<br>
<hr>
<p>Получатель: <kbd>{{ $order->recipient }}</kbd> | Паспортные данные:
<kbd>{{ $order->recipient_passport }}</kbd></p>
<p>Адрес получателя: <kbd>{{ $order->recipient_address }}</kbd></p>
</div>
<br/><br/>
<input type="button" name="next" style="float: right; width: 35%"
class="next action-button btn btn-primary btn-lg btn-block mt-4"
value="Next"/>
</fieldset>
<fieldset style="padding: 5% 15% 5% 15% !important;">
<div id="paypal-button-container"></div>
<script
src="https://www.paypal.com/sdk/js?client-id=AaQ97uzZztUZ4UB41nf8tjWwoh1U_pwJVE-pucczFZfBmBSJ-VjFrNslgJueyev8enLp-LxQPw8GJw6a&currency=USD"></script>
<script> paypal.Buttons({
style: {shape: 'pill', color: 'blue', layout: 'vertical', label: 'pay',},
createOrder: function (data, actions) {
return actions.order.create({
purchase_units: [{
transaction_number: {value: '{{ $payment->transaction_number }}'},
amount: {value: '{{ $payment->summa }}'}
}]
});
},
onApprove: function (data, actions) {
return actions.order.capture().then(function (details) {
console.log(data);
// alert('Transaction completed by ' + details.payer.name.given_name + '!');
return fetch('/packages/paypal-transaction-complete', {
method: 'post',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
orderID: data.orderID
})
});
});
}
}).render('#paypal-button-container'); </script>
{{-- <input type="button" name="previous"--}}
{{-- style="width: 35%;float: left"--}}
{{-- class="previous action-button btn btn-primary btn-lg btn-block mt-4"--}}
{{-- value="Предыдущий"/>--}}
{{-- <button class="btn btn-primary btn-lg btn-block mt-4"--}}
{{-- style="width: 35%; float:right;"--}}
{{-- type="submit">Зарегистрировать--}}
{{-- </button>--}}
</fieldset>
</form>
</div>
</section>
<script>
'use strict'
//jQuery time
var current_fs, next_fs, previous_fs; //fieldsets
var left, opacity, scale; //fieldset properties which we will animate
var animating; //flag to prevent quick multi-click glitches
$(".next").click(function () {
current_fs = $(this).parent();
next_fs = $(this).parent().next();
//activate next step on progressbar using the index of next_fs
$("#progressbar li").eq($("fieldset").index(next_fs)).addClass("active");
next_fs.show();
//hide the current fieldset with style
current_fs.hide();
});
$(".previous").click(function () {
// if (animating) return false;
// animating = true;
current_fs = $(this).parent();
previous_fs = $(this).parent().prev();
console.log(current_fs);
console.log(previous_fs);
//de-activate current step on progressbar
$("#progressbar li").eq($("fieldset").index(current_fs)).removeClass("active");
//show the previous fieldset
previous_fs.show();
//hide the current fieldset with style
current_fs.hide();
});
</script>
@endsection
@section('custom_script')
<script>
var counter = 1;
function count_total_cost() {
var total_sum = 0;
$('#table_package').find('tbody > tr').each(function (i, el) {
var cost = $(this).find('.cost_per_stuff').text().slice(1);
total_sum += parseInt(cost);
});
$('#total_price').text('$' + total_sum);
}
function recount_order() {
counter = 1;
$('.counter_number').each(function () {
$(this).html(counter);
counter += 1;
});
}
$('#table_package').on('keyup, focusout', '.count, .cost', function () {
$(this).parent().parent().parent().find('.cost_per_stuff').text('$' +
$(this).parent().parent().parent().find('.count').val() * $(this).parent().parent().parent().find('.cost').val()
);
count_total_cost();
});
$('#table_package').on('click', '.button-delete', function (e) {
e.preventDefault();
$(this).parent().parent().remove();
count_total_cost();
recount_order();
});
$('#add_new_packet').click(function (e) {
e.preventDefault();
counter += 1;
$('#table_package > tbody:last-child').append('<tr class="d-flex">\n' +
' <td class="text-center col-1 counter_number">' + counter + '</td>\n' +
' <td class="col-3">\n' +
' <input type="text" name="products[' + counter + '][0]" class="form-control form-control-sm" required />\n' +
' </td>\n' +
' <td class="col-2">\n' +
' <div class="input-group input-group-sm">\n' +
' <input type="number" name="products[' + counter + '][1]" class="form-control form-control-sm count" value="1" required>\n' +
' <div class="invalid-feedback" >\n' +
' Укажите количество единиц товара\n' +
' </div>\n' +
' </div>\n' +
' </td>\n' +
' <td class="col-2">\n' +
' <div class="input-group input-group-sm">\n' +
' <input type="number" name="products[' + counter + '][2]" class="form-control form-control-sm cost" value="2" required>\n' +
' <div class="invalid-feedback" >\n' +
' Укажите стоимость за единицу товара\n' +
' </div>\n' +
' </div>\n' +
' </td>\n' +
' <td class="col-2">\n' +
' <div class="input-group input-group-sm">\n' +
' <input type="text" name="products[' + counter + '][3]" class="form-control form-control-sm" required>\n' +
' <div class="invalid-feedback" >\n' +
' Your username is required.\n' +
' </div>\n' +
' </div>\n' +
' </td>\n' +
' <td class="text-center col-1">\n' +
' <span class="cost_per_stuff">$2</span>\n' +
' </td>\n' +
' <td class="col-1 text-center">\n' +
' <a href="#" class="btn btn-sm btn-outline-danger btn-round button-delete">X</a>\n' +
' </td>\n' +
' </tr>');
count_total_cost();
recount_order();
});
</script>
@endsection
...@@ -68,6 +68,8 @@ Route::post('/feedback/add', 'FeedbackController@addGuest'); ...@@ -68,6 +68,8 @@ Route::post('/feedback/add', 'FeedbackController@addGuest');
// //
Route::get('/packages', 'OrderController@index')->name('package')->middleware('auth'); Route::get('/packages', 'OrderController@index')->name('package')->middleware('auth');
Route::get('/packages/create/{id}', 'OrderController@create')->name('package.create')->middleware('auth'); Route::get('/packages/create/{id}', 'OrderController@create')->name('package.create')->middleware('auth');
Route::get('/packages/payment/{orderId}', 'OrderController@payment')->name('package.payment')->middleware('auth');
Route::post('/packages/paypal-transaction-complete', 'OrderController@paymentSuccess')->name('package.payment.success')->middleware('auth');
Route::post('/packages/order-store', 'OrderController@orderStore')->name('package.store')->middleware('auth'); Route::post('/packages/order-store', 'OrderController@orderStore')->name('package.store')->middleware('auth');
Route::get('/packages/get-address-ajax-s', 'OrderController@getAddressAjaxS')->name('package.getAddressAjaxS')->middleware('auth'); Route::get('/packages/get-address-ajax-s', 'OrderController@getAddressAjaxS')->name('package.getAddressAjaxS')->middleware('auth');
Route::get('/packages/get-address-ajax-r', 'OrderController@getAddressAjaxR')->name('package.getAddressAjaxR')->middleware('auth'); Route::get('/packages/get-address-ajax-r', 'OrderController@getAddressAjaxR')->name('package.getAddressAjaxR')->middleware('auth');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment