fixes on addresses

This commit is contained in:
ludo
2024-04-29 22:01:45 +02:00
parent c63bb762ed
commit ee60bac538
14 changed files with 99 additions and 81 deletions

View File

@@ -32,8 +32,13 @@ class LoginController extends Controller
if ($this->guard()->attempt($credentials, $request->get('remember'))) {
$request->session()->regenerate();
if (back()->getTargetUrl() === route('Shop.Orders.store')) {
$route = 'Shop.Orders.order';
} else {
$route = 'home';
}
return back()->getTargetUrl() === route('Shop.login') ? redirect()->intended(route('home')) : back();
return redirect()->intended(route($route));
}
return back()->withErrors([

View File

@@ -24,7 +24,7 @@ class RegisterController extends Controller
public function register(RegisterCustomer $request)
{
$validatedData = $request->validateWithBag('Errors', [
$request->validateWithBag('Errors', [
'last_name' => 'required|max:255',
'first_name' => 'required|max:255',
'email' => 'required|email|max:255|unique:shop_customers,email,NULL,id,deleted_at,NULL',
@@ -32,20 +32,19 @@ class RegisterController extends Controller
]);
if (back()->getTargetUrl() === route('Shop.Orders.store')) {
$route = 'Shop.Orders.order';
} else {
$route = 'home';
}
$user = $this->create($request->all());
$this->guard()->login($user);
/*
$response = $this->registered($request, $user);
if ($response) {
return $response;
}
*/
return $request->wantsJson()
? new JsonResponse([], 201)
: redirect()->route('home');
: redirect()->route($route);
}
public function emailVerify()

View File

@@ -52,6 +52,6 @@ class CustomerController extends Controller
$data = $request->all();
$customer = Customers::storeFull($data);
return response()->json(['error' => 0]);
return redirect()->route('Shop.Customers.edit');
}
}

View File

@@ -12,27 +12,35 @@ class CustomerAddresses
public static function add($userId, $data)
{
$name = $data['company'] ? $data['company'] : $data['first_name'].' '.$data['last_name'];
if ($data['use_for_delivery'] ?? false) {
return self::store([
'customer_id' => $userId,
'name' => $name,
'address' => $data['delivery_address'],
'address2' => $data['delivery_address2'],
'zipcode' => $data['delivery_zipcode'],
'city' => $data['delivery_city'],
]);
}
$delivery = $data['use_for_delivery'] ?? false;
return self::store([
'customer_id' => $userId,
'name' => $name,
'address' => $data['address'],
'address2' => $data['address2'],
'zipcode' => $data['zipcode'],
'city' => $data['city'],
'address' => $delivery ? $data['delivery_address'] : $data['address'],
'address2' => $delivery ? $data['delivery_address2'] : $data['address2'],
'zipcode' => $delivery ? $data['delivery_zipcode'] : $data['zipcode'],
'city' => $delivery ? $data['delivery_city'] : $data['city'],
]);
}
public static function storeByCustomer($customer, $data)
{
$deliveries = $data['deliveries'] ?? false;
if ($deliveries && $deliveries['zipcode'] && $deliveries['city']) {
$deliveries['customer_id'] = $customer->id;
$deliveries['type'] = 1;
self::store($deliveries);
}
$invoices = $data['invoices'] ?? false;
if ($invoices && $invoices['zipcode'] && $invoices['city']) {
$invoices['customer_id'] = $customer->id;
$invoices['type'] = 2;
self::store($invoices);
}
}
public static function toggleActive($id, $active)
{
return self::update(['active' => $active], $id);

View File

@@ -161,12 +161,19 @@ class Customers
public static function storeFull($data)
{
$saleChannels = $data['sale_channels'];
$data2 = $data;
if ($data['sale_channels'] ?? false) {
$saleChannels = $data['sale_channels'] ?? false;
unset($data['sale_channels']);
$customer = self::store($data);
if ($customer) {
self::storeSaleChannels($customer->id, $saleChannels);
}
if ($data['deliveries'] ?? false) {
unset($data['deliveries']);
}
if ($data['invoices'] ?? false) {
unset($data['invoices']);
}
$customer = self::store($data);
CustomerAddresses::storeByCustomer($customer, $data2);
return $customer->id;
}

View File

@@ -16,7 +16,7 @@ class OrderMails
public static function sendOrderConfirmed($orderId)
{
$order = Orders::get($orderId, ['customer', 'address']);
$order = Orders::get($orderId, ['customer', 'delivery_address']);
$mail = new ConfirmationCommande($order);
return Mail::to($order->customer->email)->send($mail);

View File

@@ -59,7 +59,7 @@ class Orders
public static function saveOrder($data)
{
$basket = $data['basket'];
$invoice = $data['invoice'];
$invoice = $data['invoice'] ?? [];
unset($data['basket'], $data['invoice']);
$data += self::getSummaryOfBasket($basket);
$order = self::store($data);

View File

@@ -25,18 +25,15 @@
<script>
$(function() {
$('.active-checkbox').bootstrapToggle();
$('.active-checkbox').off('change').on('change', function(e) {
$('.active-checkbox').off().change(function(e) {
var id = $('#id').val();
// handleAdmin.toggle(id, $(this).prop('checked'));
});
initChevron();
initEditor();
initSaveForm('#article-form');
initSelect2();
});
</script>
@endpush

View File

@@ -1,25 +0,0 @@
<a href="{{ route('Shop.Offers.show', ['id' => $offer['id']]) }}">
<div class="card">
<img src="{{ App\Repositories\Shop\Articles::getPreviewSrc($offer['article']['image'] ?? false) }}" class="card-img-top" alt="...">
<div class="card-body">
<span class="card-title">{{ $offer['article']['name'] }}</span>
<span class="pull-right">
<i class="fa fa-heart"></i>
</span>
<p class="card-text">
<div class="row">
<div class="col-6">
3.50 <br>
Semence
</div>
<div class="col-6">
1.65 <br>
Plant
</div>
</div>
</p>
</div>
</div>
</a>

View File

@@ -23,6 +23,7 @@
@include('Shop.Customers.partials.addresses', [
'prefix' => 'deliveries',
'addresses' => $customer['delivery_addresses'],
'with_name' => true,
])
</x-card>
@@ -30,6 +31,7 @@
@include('Shop.Customers.partials.addresses', [
'prefix' => 'invoices',
'addresses' => $customer['invoice_addresses'],
'with_name' => true,
])
</x-card>
@@ -38,8 +40,8 @@
</x-card>
</div>
</div>
<x-save />
</form>
<x-save />
@endsection
@include('load.form.save')

View File

@@ -1,3 +1,15 @@
@if ($with_name ?? false)
<div class="row">
<div class="col-12">
@include('components.form.input', [
'name' => $prefix ?? false ? $prefix . "['name']" : 'name',
'value' => $customer['name'] ?? '',
'label' => 'Nom',
])
</div>
</div>
@endif
<div class="row">
<div class="col-12">
@include('components.form.input', [

View File

@@ -5,6 +5,9 @@
val="{{ $address['id'] }}" id="address_{{ $address['id'] }}" />
</div>
<div class="col-11">
@if ($with_name ?? false)
{{ $address['name'] }}<br />>
@endif
{{ $address['address'] }}<br />
@if ($address['address2'])
{{ $address['address2'] }}<br />
@@ -15,7 +18,7 @@
@endforeach
<div id="add_address_container_{{ $prefix }}" class="green-dark d-none mb-3 mt-3">
<x-card classBody="bg-green-dark yellow" title="Nouvelle adresse">
<x-card classBody="bg-green-dark yellow" title="Nouvelle adresse" classTitle="h4">
@include('Shop.Customers.partials.address', [
'prefix' => $prefix,
'with_country' => false,
@@ -29,7 +32,7 @@
<div class="row">
<div class="col-12 text-right">
<x-form.button id="add_address_{{ $prefix }}" icon="fa-plus" txt="Ajouter une adresse"
class="btn-warning btn-sm" />
class="btn-warning btn-sm mt-2" />
</div>
</div>

View File

@@ -11,7 +11,7 @@
{!! $tools !!}
</div>
@endisset
<h3 class="card-title {{ $classTitle ?? 'mb-0' }}">{{ $title ?? false }}</h3>
<p class="card-title {{ $classTitle ?? 'h3 mb-0' }}">{{ $title ?? false }}</p>
@endisset
</div>
@endif

View File

@@ -2,15 +2,25 @@
@push('scripts')
<script>
function initSaveForm(form, sel) {
console.log('ici');
if (typeof initValidator === 'function') {
initValidator();
}
var form = (typeof(form) == 'undefined') ? '#form' : form;
var selector = (typeof(sel) == 'undefined') ? '.save' : sel;
$(selector).off().click(function(e) {
if (typeof initValidator === 'function') {
console.log('click');
e.preventDefault();
if ($(form).valid()) {
$(this).prop("disabled", true);
$(this).html($(this).data('loading-text'));
$(form).submit();
} else {
console.log('erreur');
}
} else {
$(form).submit();
}
});
}