From b5da5fc88138b0cfcf008804d3ee957c860b5646 Mon Sep 17 00:00:00 2001 From: ludo Date: Sun, 3 Dec 2023 02:20:41 +0100 Subject: [PATCH] enhance invoice display --- .../Admin/Shop/InvoicesDataTable.php | 4 +- app/Datatables/Admin/Shop/OrdersDataTable.php | 2 +- app/Http/Controllers/Shop/OrderController.php | 1 - app/Models/Shop/Order.php | 2 +- app/Repositories/Shop/Invoices.php | 3 +- app/Repositories/Shop/Orders.php | 16 +- .../views/Admin/Shop/Invoices/form.blade.php | 45 ++-- .../views/Admin/Shop/Invoices/list.blade.php | 10 +- .../views/Admin/Shop/Orders/edit.blade.php | 206 +++++++++--------- .../Shop/Orders/partials/deliveries.blade.php | 2 - .../Shop/Orders/partials/shipping.blade.php | 4 +- .../views/components/address-view.blade.php | 7 + 12 files changed, 152 insertions(+), 150 deletions(-) create mode 100644 resources/views/components/address-view.blade.php diff --git a/app/Datatables/Admin/Shop/InvoicesDataTable.php b/app/Datatables/Admin/Shop/InvoicesDataTable.php index 5a004d20..9a3fdc05 100644 --- a/app/Datatables/Admin/Shop/InvoicesDataTable.php +++ b/app/Datatables/Admin/Shop/InvoicesDataTable.php @@ -9,7 +9,7 @@ use Yajra\DataTables\Html\Column; class InvoicesDataTable extends DataTable { - public $model_name = 'Invoices'; + public $model_name = 'invoices'; public function query(Invoice $model) { @@ -28,7 +28,7 @@ class InvoicesDataTable extends DataTable return $invoice->created_at->toDateTimeString(); }) ->editColumn('customer.last_name', function (Invoice $invoice) { - return ($invoice->customer ?? false) ? $invoice->customer->last_name.' '.$invoice->customer->first_name : ''; + return ($invoice->customer ?? false) ? $invoice->customer->name : ''; }) ->rawColumns(['action']); diff --git a/app/Datatables/Admin/Shop/OrdersDataTable.php b/app/Datatables/Admin/Shop/OrdersDataTable.php index b8e6324f..3f28f51b 100644 --- a/app/Datatables/Admin/Shop/OrdersDataTable.php +++ b/app/Datatables/Admin/Shop/OrdersDataTable.php @@ -12,7 +12,7 @@ class OrdersDataTable extends DataTable { public $model_name = 'orders'; - public $sortedColumn = 1; + public $sortedColumn = 0; public $sortedOrder = 'desc'; diff --git a/app/Http/Controllers/Shop/OrderController.php b/app/Http/Controllers/Shop/OrderController.php index 441bd8aa..83f4b3b4 100644 --- a/app/Http/Controllers/Shop/OrderController.php +++ b/app/Http/Controllers/Shop/OrderController.php @@ -45,7 +45,6 @@ class OrderController extends Controller 'customer' => $customer ? $customer->toArray() : false, 'basket' => Baskets::getBasketTotal(), 'deliveries' => Deliveries::getAllWithSaleChannel()->toArray(), - 'sale_channel' => SaleChannels::getDefault()->toArray(), 'delivery_types' => DeliveryTypes::getWithPrice(Baskets::getWeight()), ]; diff --git a/app/Models/Shop/Order.php b/app/Models/Shop/Order.php index 7dc08239..4846aab2 100644 --- a/app/Models/Shop/Order.php +++ b/app/Models/Shop/Order.php @@ -25,7 +25,7 @@ class Order extends Model public function delivery_address() { - return $this->belongsTo(CustomerAddress::class, 'customer_delivery_id'); + return $this->belongsTo(CustomerAddress::class, 'delivery_address_id'); } public function delivery() diff --git a/app/Repositories/Shop/Invoices.php b/app/Repositories/Shop/Invoices.php index bfeb2cd8..176f5293 100644 --- a/app/Repositories/Shop/Invoices.php +++ b/app/Repositories/Shop/Invoices.php @@ -62,6 +62,7 @@ class Invoices { InvoiceStats::increase($data['total_taxed']); $data['uuid'] = Str::uuid()->toString(); + $data['ref'] = self::getNewRef(); return Invoice::create($data); } @@ -77,7 +78,7 @@ class Invoices public static function getNewRef() { $ref = date('ymd').'00000'; - $lastRef = Invoice::orderBy('id', 'desc')->first(); + $lastRef = Invoice::where($ref, '>', $ref)->orderBy('id', 'desc')->first(); return $lastRef ? $lastRef->ref + 1 : $ref + 1; } diff --git a/app/Repositories/Shop/Orders.php b/app/Repositories/Shop/Orders.php index 108e865a..247a5353 100644 --- a/app/Repositories/Shop/Orders.php +++ b/app/Repositories/Shop/Orders.php @@ -34,7 +34,6 @@ class Orders public static function saveOrder($data) { - $data += $data['basket']; $basket = $data['basket']; unset($data['basket']); $order = self::store($data); @@ -42,10 +41,8 @@ class Orders $data['ref'] = $order->ref; unset($data['comment']); unset($data['agree']); - unset($data['customer_id']); - unset($data['delivery_id']); + unset($data['delivery_address_id']); unset($data['detail']); - unset($data['payment_type']); unset($data['sale_channel_id']); return ($order && $detail) ? Invoices::saveInvoice($order->id, $data) : false; @@ -54,7 +51,14 @@ class Orders public static function edit($id) { return [ - 'order' => self::get($id, ['customer', 'invoice.address', 'delivery', 'delivery_address', 'detail'])->toArray(), + 'order' => self::get($id, [ + 'customer', + 'invoice.address', + 'delivery', + 'delivery_address', + 'detail', + 'sale_channel', + ])->toArray(), 'statuses' => self::statuses(), 'delivery_types' => DeliveryTypes::getOptions(), 'payment_types' => self::paymentTypes(), @@ -107,7 +111,7 @@ class Orders public static function getNewRef() { $ref = date('ymd').'00000'; - $lastRef = Order::orderBy('id', 'desc')->first(); + $lastRef = Order::where($ref, '>', $ref)->orderBy('id', 'desc')->first(); return $lastRef ? $lastRef->ref + 1 : $ref + 1; } diff --git a/resources/views/Admin/Shop/Invoices/form.blade.php b/resources/views/Admin/Shop/Invoices/form.blade.php index 78b320aa..6e9a1509 100644 --- a/resources/views/Admin/Shop/Invoices/form.blade.php +++ b/resources/views/Admin/Shop/Invoices/form.blade.php @@ -1,37 +1,40 @@ {{ Form::open(['route' => 'Admin.Shop.Invoices.update', 'id' => 'invoice-form', 'autocomplete' => 'off']) }}
-
+
+ + + Facture N° {{ $invoice['ref'] }} - du {{ Carbon\Carbon::parse($invoice['created_at'])->isoFormat('LLLL') }} + + du {{ Carbon\Carbon::parse($invoice['created_at'])->isoFormat('LLLL') }} +
-
- @include('components.form.buttons.button-save') +
+
-

- {{ $invoice['order']['customer']['last_name'] }} +

{{ $invoice['order']['customer']['first_name'] }} -
-
-
-
- @if ($invoice['order']['delivery_address']) - {{ $invoice['order']['delivery_address']['address'] }}
- @isset($invoice['order']['delivery_address']['address2']) - {{ $invoice['order']['delivery_address']['address2'] }}
- @endisset - {{ $invoice['order']['delivery_address']['zipcode'] }} - {{ $invoice['order']['delivery_address']['city'] }}
- @endif -
-
-
+ {{ $invoice['order']['customer']['last_name'] }} + @if ($invoice['order']['customer']['company']) +
+ {{ $invoice['order']['customer']['company'] }} + @endif + + + @if ($invoice['order']['delivery_address']) + + @include('components.address-view', [ + 'address' => $invoice['order']['delivery_address'], + ]) + + @endif
diff --git a/resources/views/Admin/Shop/Invoices/list.blade.php b/resources/views/Admin/Shop/Invoices/list.blade.php index a2c9f4c9..693af10e 100644 --- a/resources/views/Admin/Shop/Invoices/list.blade.php +++ b/resources/views/Admin/Shop/Invoices/list.blade.php @@ -1,14 +1,14 @@ @extends('layout.index', [ - 'title' => __('shop.invoice_payments.title'), - 'subtitle' => __('shop.invoice_payments.list'), - 'breadcrumb' => [__('shop.invoice_payments.title')], + 'title' => __('shop.invoices.title'), + 'subtitle' => __('shop.invoices.list'), + 'breadcrumb' => [__('shop.invoices.title')], ]) @section('content') @include('components.datatable', [ - 'route' => route('Admin.Shop.InvoicePayments.index'), - 'model' => 'invoice_payments', + 'route' => route('Admin.Shop.Invoices.index'), + 'model' => 'invoices', ]) @endsection diff --git a/resources/views/Admin/Shop/Orders/edit.blade.php b/resources/views/Admin/Shop/Orders/edit.blade.php index 0c832118..ce9a4d27 100644 --- a/resources/views/Admin/Shop/Orders/edit.blade.php +++ b/resources/views/Admin/Shop/Orders/edit.blade.php @@ -1,124 +1,116 @@ @extends('layout.index', [ 'title' => __('shop.orders.title'), 'subtitle' => __('shop.orders.edit'), - 'breadcrumb' => ['Commandes'] + 'breadcrumb' => ['Commandes'], ]) @section('content') {{ Form::open(['route' => 'Admin.Shop.Orders.store', 'id' => 'order-form', 'autocomplete' => 'off']) }} - - -
-
-

{{ $order['delivery']['name'] }}

-
-
- -
+ + +
+
+
+ + + + Commande : {{ $order['ref'] }} + + du {{ Carbon\Carbon::parse($order['created_at'])->isoFormat('LLLL') }} + +
+
+ +
+
-
-
-

- {{ $order['customer']['last_name'] }} {{ $order['customer']['first_name'] }} -

-
-
- - @if ($order['invoice']['address']) - {{ $order['invoice']['address']['address'] }}
- @isset ($order['invoice']['address']['address2']) - {{ $order['invoice']['address']['address2'] }}
- @endisset - {{ $order['invoice']['address']['zipcode'] }} - {{ $order['invoice']['address']['city'] }}
- @endif -
-
-
- - @if ($order['delivery_address']) - {{ $order['delivery_address']['address'] }}
- @isset ($order['delivery_address']['address2']) - {{ $order['delivery_address']['address2'] }}
- @endisset - {{ $order['delivery_address']['zipcode'] }} - {{ $order['delivery_address']['city'] }}
- @endif -
-
-
-
-
-
-
- Commande
- du {{ Carbon\Carbon::parse($order['created_at'])->isoFormat('LLLL') }} -
-
- @include('components.form.select', [ - 'label' => 'Statut', - 'name' => 'status', - 'list' => $statuses ?? [], - 'value' => $order['status'], - 'class' => 'select2', - ]) -
-
-
-
- @include('components.form.select', [ - 'label' => 'Canal de vente', - 'name' => 'sale_channel_id', - 'list' => $sale_channels ?? [], - 'value' => $order['sale_channel_id'], - 'class' => 'select2', - ]) -
-
- @include('components.form.select', [ - 'label' => 'Règlement', - 'name' => 'payment_type', - 'list' => $payment_types ?? [], - 'value' => $order['payment_type'], - 'class' => 'select2', - ]) -
-
-
-
- @include('components.form.select', [ - 'label' => 'Type de livraison', - 'name' => 'delivery_type_id', - 'list' => $delivery_types ?? [], - 'value' => $order['delivery_type_id'], - 'with_empty' => '', - ]) -
-
- @include('components.form.input', [ - 'label' => 'Référence colis', - 'name' => 'delivery_ref', - 'value' => $order['delivery_ref'] ?? null, - ]) -
-
- @include('components.form.input', [ - 'label' => 'Lien suivi', - 'name' => 'delivery_link', - 'value' => $order['delivery_link'] ?? null, - ]) -
+
+
+
+ {{ $order['customer']['first_name'] }} {{ $order['customer']['last_name'] }} + @if ($order['customer']['company']) +
+ {{ $order['customer']['company'] }} + @endif +
+
+ {{ $order['delivery']['name'] }}
+ Canal de vente : {{ $order['sale_channel']['name'] ?? '' }} +
+ + @if ($order['delivery_address']) + + @include('components.address-view', [ + 'address' => $order['delivery_address'], + ]) + + @endif + +
+
+
+
+ @include('components.form.select', [ + 'label' => 'Statut', + 'name' => 'status', + 'list' => $statuses ?? [], + 'value' => $order['status'], + 'class' => 'select2', + ]) +
+
+ @include('components.form.select', [ + 'label' => 'Règlement', + 'name' => 'payment_type', + 'list' => $payment_types ?? [], + 'value' => $order['payment_type'], + 'class' => 'select2', + ])
+ + @if ($order['delivery']['at_house']) + +
+
+ @include('components.form.select', [ + 'label' => 'Type de livraison', + 'name' => 'delivery_type_id', + 'list' => $delivery_types ?? [], + 'value' => $order['delivery_type_id'], + 'with_empty' => '', + ]) +
+
+ @include('components.form.input', [ + 'label' => 'Référence colis', + 'name' => 'delivery_ref', + 'value' => $order['delivery_ref'] ?? null, + ]) +
+
+
+
+ @include('components.form.input', [ + 'label' => 'Lien suivi', + 'name' => 'delivery_link', + 'value' => $order['delivery_link'] ?? null, + ]) +
+
+
+ @endif
-
-
- @include('Admin.Shop.Orders.partials.detail', ['detail_type' => 'commande']) -
+
+
+
+ @include('Admin.Shop.Orders.partials.detail', ['detail_type' => 'commande'])
- +
+ {{ Form::close() }} @endsection diff --git a/resources/views/Shop/Orders/partials/deliveries.blade.php b/resources/views/Shop/Orders/partials/deliveries.blade.php index 7199885f..78b6e09d 100644 --- a/resources/views/Shop/Orders/partials/deliveries.blade.php +++ b/resources/views/Shop/Orders/partials/deliveries.blade.php @@ -33,8 +33,6 @@ ci-contre $('#delivery_addresses').closest('.card').addClass('d-none'); } var deliveryId = $(this).val(); - console.log(deliveryId); - console.log(deliveryTypeId); refreshBasketTotal(deliveryId, deliveryTypeId); }); } diff --git a/resources/views/Shop/Orders/partials/shipping.blade.php b/resources/views/Shop/Orders/partials/shipping.blade.php index be662342..fbf76122 100644 --- a/resources/views/Shop/Orders/partials/shipping.blade.php +++ b/resources/views/Shop/Orders/partials/shipping.blade.php @@ -33,9 +33,7 @@ function handleDeliveryTypes() { $('input.delivery_type').change(function() { var deliveryTypeId = $(this).val(); - var deliveryId = $('input[name=delivery_id]').val() - console.log(deliveryId); - console.log(deliveryTypeId); + var deliveryId = $('input[name=delivery_id]:checked').val() refreshBasketTotal(deliveryId, deliveryTypeId); }); } diff --git a/resources/views/components/address-view.blade.php b/resources/views/components/address-view.blade.php new file mode 100644 index 00000000..73c3a44f --- /dev/null +++ b/resources/views/components/address-view.blade.php @@ -0,0 +1,7 @@ +{{ $address['name'] }}
+{{ $address['address'] }}
+@isset($address['address2']) + {{ $address['address2'] }}
+@endisset +{{ $address['zipcode'] }} +{{ $address['city'] }}