Skip to content

Commit cda7ec3

Browse files
committed
Updated delivery item order
1 parent 73a06fe commit cda7ec3

File tree

5 files changed

+37
-4
lines changed

5 files changed

+37
-4
lines changed

resources/views/deliveries/partials/card-show.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<th scope="col">{{ ucfirst(__('laravel-crm::lang.quantity')) }}</th></tr>
8787
</thead>
8888
<tbody>
89-
@foreach($delivery->deliveryProducts()->where('quantity', '>', 0)->get() as $deliveryProduct)
89+
@foreach($delivery->deliveryProducts()->where('quantity', '>', 0)->orderBy('order', 'asc')->orderBy('created_at', 'asc')->get() as $deliveryProduct)
9090
<tr>
9191
<td>{{ $deliveryProduct->orderProduct->product->name }}</td>
9292
<td>{{ $deliveryProduct->quantity }}</td></tr>

resources/views/deliveries/pdf.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
</tr>
9999
</thead>
100100
<tbody>
101-
@foreach($delivery->deliveryProducts()->where('quantity', '>', 0)->get() as $deliveryProduct)
101+
@foreach($delivery->deliveryProducts()->where('quantity', '>', 0)->orderBy('order', 'asc')->orderBy('created_at', 'asc')->get() as $deliveryProduct)
102102
<tr>
103103
<td>{{ $deliveryProduct->orderProduct->product->name }}</td>
104104
<td>{{ $deliveryProduct->quantity }}</td>

resources/views/delivery-products/partials/fields.blade.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
<tr wire:key="select2-{{ $value }}" data-number="{{ $value }}" class="item-tr">
1+
<tr class="cursor-grab" id="{{ $value }}">
2+
<td colspan="5" class="m-0 p-0">
3+
<table class="table table-sm table-items mb-0">
4+
<tbody>
5+
<tr wire:key="select2-{{ $value }}" data-number="{{ $value }}" class="item-tr">
26
<td class="pt-3 bind-select2" style="position: relative;">
37
@include('laravel-crm::partials.form.hidden',[
48
'name' => 'products['.$value.'][delivery_product_id]',
@@ -31,6 +35,7 @@
3135
</span>
3236
@if(!isset($fromOrder))
3337
<span style="position: absolute;top:13%; right: 5px;">
38+
<button type="button" class="btn btn-link btn-sm"><span class="fa fa-arrows-v"></span></button>
3439
<button wire:click.prevent="remove({{ $value }})" type="button" class="btn btn-outline-danger btn-sm btn-close"><span class="fa fa-remove"></span></button>
3540
</span>
3641
@endif
@@ -63,3 +68,7 @@
6368
@endif
6469
</td>
6570
</tr>
71+
</tbody>
72+
</table>
73+
</td>
74+
</tr>

resources/views/livewire/delivery-items.blade.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<th scope="col" class="col-3 border-0">{{ ucfirst(__('laravel-crm::lang.amount')) }}</th>
1616
</tr>
1717
</thead>--}}
18-
<tbody>
18+
<tbody id="sortableItems">
1919
@foreach($inputs as $key => $value)
2020
@include('laravel-crm::delivery-products.partials.fields')
2121
@endforeach
@@ -41,6 +41,22 @@
4141
});
4242
})*/
4343
44+
var el = document.getElementById('sortableItems');
45+
var sortable = Sortable.create(el, {
46+
ghostClass: 'bg-secondary',
47+
dragClass: "bg-white",
48+
onEnd: function (evt) {
49+
const orderChanged = evt.oldIndex !== evt.newIndex;
50+
51+
if (!orderChanged) {
52+
return;
53+
}
54+
55+
const fromOrderedIds = [].slice.call(evt.from.children).map(child => child.id);
56+
@this.call('onItemSorted', fromOrderedIds);
57+
}
58+
});
59+
4460
window.addEventListener('addedItem', event => {
4561
$("tr[data-number='" + event.detail.id + "'] td.bind-select2 select[name^='products']").select2({
4662
data: products,

src/Http/Livewire/LiveDeliveryItems.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,14 @@ public function getRemainOrderQuantity($orderProduct)
129129
return $quantity;
130130
}
131131

132+
public function onItemSorted($orderedIds)
133+
{
134+
foreach ($orderedIds as $orderNumber => $i) {
135+
$key = $orderNumber + 1;
136+
$this->inputs[$orderNumber] = (int) $i;
137+
}
138+
}
139+
132140
public function render()
133141
{
134142
return view('laravel-crm::livewire.delivery-items');

0 commit comments

Comments
 (0)