Skip to content

Commit

Permalink
Courier booking moved to full page Livewire.
Browse files Browse the repository at this point in the history
Moved listing and show. Added modal confirmation for booking removing in listing.
  • Loading branch information
xGrz committed Jul 1, 2024
1 parent cf8a84d commit 565dfda
Show file tree
Hide file tree
Showing 11 changed files with 232 additions and 4 deletions.
3 changes: 3 additions & 0 deletions resources/views/bookings/bookings-create.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div>
asda
</div>
58 changes: 58 additions & 0 deletions resources/views/bookings/bookings-listing.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<div>
<x-p-pagination livewire :source="$bookings"/>
<x-p-paper class="bg-slate-800">
<x-slot:title>Item list</x-slot:title>
<x-slot:actions>
<x-p-button color="success" href="{{ route('dhl24.bookings.create') }}">New courier booking</x-p-button>
</x-slot:actions>
@if($bookings->count())
<x-p-table>
<x-p-thead>
<x-p-tr>
<x-p-th left>Booking ID</x-p-th>
<x-p-th left>Date</x-p-th>
<x-p-th center>Pickup time</x-p-th>
<x-p-th left>Info</x-p-th>
<x-p-th center>Shipments</x-p-th>
<x-p-th right>Options</x-p-th>
</x-p-tr>
</x-p-thead>
<x-p-tbody>
@foreach($bookings as $booking)
<x-p-tr>
<x-p-td>
<x-p-link href="{{route('dhl24.bookings.show', $booking->id)}}">
{{ $booking->order_id }}
</x-p-link>
</x-p-td>
<x-p-td>{{$booking->pickup_from->format('d-m-Y')}}</x-p-td>
<x-p-td center>
{{ $booking->pickup_from->format("H:i") }}
-
{{ $booking->pickup_to->format("H:i") }}</x-p-td>
<x-p-td>{{ $booking->additional_info }}</x-p-td>
<x-p-td center>{{$booking->shipments->count()}}</x-p-td>
<x-p-td right>
<x-p-button
color="danger"
size="small"
wire:click="$dispatch('openModal', { component: 'cancel-booking-modal', arguments: { booking: {{$booking->id}} } })"
>
Cancel
</x-p-button>
</x-p-td>
</x-p-tr>
@endforeach
</x-p-tbody>
</x-p-table>

<div class="py-3">
<x-p-pagination :source="$bookings"/>
</div>
@else
<x-p-not-found message="Bookings not found."/>
@endif

</x-p-paper>
<x-p-pagination livewire :source="$bookings"/>
</div>
52 changes: 52 additions & 0 deletions resources/views/bookings/bookings-show.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<div>
<x-p-paper>
<x-slot:title>Courier book: {{$booking->order_id}}</x-slot:title>
Courier has been booked for {{$booking->pickup_from->format('d-m-Y')}}
from {{$booking->pickup_from->format('H:i')}}
to {{$booking->pickup_to->format('H:i')}}.
</x-p-paper>

<x-p-paper class="mt-2">
<x-slot:title>
Shipments in booking
</x-slot:title>
<x-p-table size="small">
<x-p-tbody>
<x-p-thead>
<x-p-tr>
<x-p-th left>Number</x-p-th>
<x-p-th left>Status</x-p-th>
<x-p-th left>Receiver name</x-p-th>
<x-p-th left>Receiver city</x-p-th>
<x-p-th left>Items</x-p-th>
<x-p-th left>Type</x-p-th>
</x-p-tr>
</x-p-thead>
@foreach($booking->shipments as $shipment)
<x-p-tr>
<x-p-td>
<x-p-link href="{{route('dhl24.shipments.show', $shipment->id)}}">
{{$shipment->number}}
</x-p-link>
</x-p-td>
<x-p-td>
<x-dhl-ui::shipment-state :status="$shipment->tracking->first()"/>
<span class="text-sm block">
{{$shipment->tracking->first()?->pivot->event_timestamp->format('d-m-Y H:i')}}
</span>
</x-p-td>
<x-p-td>{{$shipment->receiver_name}}</x-p-td>
<x-p-td>{{$shipment->receiver_city}}</x-p-td>
<x-p-td>{{$shipment->items->count()}}</x-p-td>
<x-p-td>
<x-dhl-ui::shipment-type :shipment="$shipment"/>
</x-p-td>
</x-p-tr>
@endforeach
</x-p-tbody>
</x-p-table>
</x-p-paper>
<div class="mt-4 text-right">
<x-p-button color="danger">Cancel booking</x-p-button>
</div>
</div>
11 changes: 11 additions & 0 deletions resources/views/bookings/cancel-booking-modal.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<x-p-paper>
<x-slot:title>Cancel booking confirmation</x-slot:title>
Are you sure you want to cancel courier booking ({{$booking->order_id}})?<br/>
Courier was booked for {{$booking->pickup_from->format('d-m-Y')}} ({{$booking->pickup_from->format('H:i')}}-{{$booking->pickup_to->format('H:i')}})
<div class="mt-2 text-right">
<x-p-button color="success" wire:click="$dispatch('closeModal')">No</x-p-button>
<x-p-button color="danger" wire:click="cancelBooking">
Yes, remove booking
</x-p-button>
</div>
</x-p-paper>
7 changes: 5 additions & 2 deletions resources/views/bookings/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,11 @@
<x-p-td>{{ $booking->additional_info }}</x-p-td>
<x-p-td center>{{$booking->shipments->count()}}</x-p-td>
<x-p-td right>
<form action="{{route('dhl24.bookings.destroy', $booking)}}" id="delete_{{$booking->id}}" method="POST">@csrf @method('DELETE')</form>
<x-p-button type="submit" color="danger" size="small" form="delete_{{$booking->id}}">
<x-p-button
color="danger"
size="small"
wire:click="$dispatch('openModal', { component: 'cancel-booking-modal', arguments: { booking: {{$booking->id}} } })"
>
Cancel
</x-p-button>
</x-p-td>
Expand Down
9 changes: 7 additions & 2 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@


use xGrz\Dhl24UI\Http\Controllers\CostController;
use xGrz\Dhl24UI\Http\Controllers\CourierBookingsController;
use xGrz\Dhl24UI\Http\Controllers\DHLLabelController;
use xGrz\Dhl24UI\Http\Controllers\DHLReportController;
use xGrz\Dhl24UI\Http\Controllers\SettingsContentsController;
use xGrz\Dhl24UI\Http\Controllers\SettingsController;
use xGrz\Dhl24UI\Http\Controllers\SettingsTrackingStatesController;
use xGrz\Dhl24UI\Http\Controllers\SingleShipmentBookingController;
use xGrz\Dhl24UI\Livewire\Bookings\DHLBookingsCreate;
use xGrz\Dhl24UI\Livewire\Bookings\DHLBookingsListing;
use xGrz\Dhl24UI\Livewire\Bookings\DHLBookingsShow;
use xGrz\Dhl24UI\Livewire\CostsCenter\DHLCostsCenterListing;
use xGrz\Dhl24UI\Livewire\CostsCenter\DHLCostsCenterShow;
use xGrz\Dhl24UI\Livewire\Shipments\DHLShipmentsCreate;
Expand Down Expand Up @@ -37,9 +39,12 @@
Route::get('report/{date}/{type}', DHLReportController::class)->name('report')
->where('date', '[0-9]{2}-[0-9]{2}-[0-9]{4}');

Route::get('bookings', DHLBookingsListing::class)->name('bookings.index');
Route::get('bookings/create', DHLBookingsCreate::class)->name('bookings.create');
Route::get('bookings/{booking}', DHLBookingsShow::class)->name('bookings.show');

//Route::resource('/shipments', ShipmentsController::class);
Route::resource('/bookings', CourierBookingsController::class);
//Route::resource('/bookings', CourierBookingsController::class);
Route::prefix('settings')
->name('settings.')
->group(function () {
Expand Down
8 changes: 8 additions & 0 deletions src/DHLUIServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@

use Illuminate\Support\ServiceProvider;
use Livewire\Livewire;
use xGrz\Dhl24UI\Livewire\Bookings\DHLBookingsListing;
use xGrz\Dhl24UI\Livewire\Bookings\DHLBookingsShow;
use xGrz\Dhl24UI\Livewire\Bookings\DHLCancelBookingModal;
use xGrz\Dhl24UI\Livewire\CostsCenter\DHLCostsCenterCreate;
use xGrz\Dhl24UI\Livewire\CostsCenter\DHLCostsCenterDelete;
use xGrz\Dhl24UI\Livewire\CostsCenter\DHLCostsCenterEdit;
Expand Down Expand Up @@ -64,6 +67,11 @@ public function boot(): void
Livewire::component('daily-report', DHLDailyReport::class);


Livewire::component('bookings-listing', DHLBookingsListing::class);
Livewire::component('bookings-show', DHLBookingsShow::class);
Livewire::component('cancel-booking-modal', DHLCancelBookingModal::class);



// Livewire::component('create-shipment', CreateShipment::class);
Livewire::component('error-modal', DHLErrorModal::class);
Expand Down
14 changes: 14 additions & 0 deletions src/Livewire/Bookings/DHLBookingsCreate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace xGrz\Dhl24UI\Livewire\Bookings;

use Illuminate\View\View;
use xGrz\Dhl24UI\Livewire\BaseComponent;

class DHLBookingsCreate extends BaseComponent
{
public function render(): View
{
return view('livewire.d-h-l-bookings-create');
}
}
19 changes: 19 additions & 0 deletions src/Livewire/Bookings/DHLBookingsListing.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace xGrz\Dhl24UI\Livewire\Bookings;


use xGrz\Dhl24\Models\DHLCourierBooking;
use xGrz\Dhl24UI\Livewire\BaseComponent;

class DHLBookingsListing extends BaseComponent
{
public function render()
{
return view('dhl-ui::bookings.bookings-listing', [
'bookings' => DHLCourierBooking::orderByDesc('pickup_from')->with('shipments')->latest()->paginate(),
])
->extends('p::app')
->section('content');
}
}
20 changes: 20 additions & 0 deletions src/Livewire/Bookings/DHLBookingsShow.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace xGrz\Dhl24UI\Livewire\Bookings;

use Illuminate\View\View;
use xGrz\Dhl24\Models\DHLCourierBooking;
use xGrz\Dhl24UI\Livewire\BaseComponent;

class DHLBookingsShow extends BaseComponent
{

public DHLCourierBooking $booking;

public function render(): View
{
return view('dhl-ui::bookings.bookings-show')
->extends('p::app')
->section('content');
}
}
35 changes: 35 additions & 0 deletions src/Livewire/Bookings/DHLCancelBookingModal.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace xGrz\Dhl24UI\Livewire\Bookings;

use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
use xGrz\Dhl24\Exceptions\DHL24Exception;
use xGrz\Dhl24\Models\DHLCourierBooking;
use xGrz\Dhl24\Services\DHLBookingService;

class DHLCancelBookingModal extends ModalComponent
{

public DHLCourierBooking $booking;

public function render(): View
{
return view('dhl-ui::bookings.cancel-booking-modal');
}

public function cancelBooking(): void
{
try {
(new DHLBookingService())->cancel($this->booking);
session()->flash('success', 'Courier booking has been cancelled.');
$this->redirectRoute('dhl24.bookings.index');
} catch (DHL24Exception $e) {
$this->dispatch('openModal', component: 'error-modal', arguments: [
'title' => 'Shipment cannot be deleted',
'message' => $e->getMessage(),
]);
}

}
}

0 comments on commit 565dfda

Please sign in to comment.