diff --git a/routes/web.php b/routes/web.php
index 46a0a823..825296cb 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -894,17 +894,12 @@ Route::get('/invoices/delete-duplicated', function(Request $request){
}
});
-Route::get('/fix-invoices-drop-date/{orderMarking}', function($orderMarking){
- // 359360902
- $dilter = ['does_not_have_transaction_type' => 1, 'type' => 2, 'order_marking_in'=> strval($orderMarking)];
- dump($dilter);
- $packingLists = (App()->make(ListsPackingLists::class))->execute($dilter);
- dd($packingLists->first()->containers->first()->transports->first());
-});Route::get('/packing-lists/show-duplicated', function(Request $request){
+Route::get('/packing-lists/show-duplicated', function(Request $request){
$results = PackingList::select('reference', 'type', DB::raw('count(*) as total'))
->groupBy('reference', 'type')
->having('total', '>', 1)
- ->get()->toArray();
+ ->get()
+ ->toArray();
echo '
';
echo "";
@@ -923,3 +918,39 @@ Route::get('/fix-invoices-drop-date/{orderMarking}', function($orderMarking){
}
echo '
';
});
+
+Route::get('/packing-lists/delete-duplicated', function(Request $request){
+ $results = PackingList::select('reference', 'type', DB::raw('count(*) as total'))
+ ->groupBy('reference', 'type')
+ ->having('total', '>', 1)
+ ->get()
+ ->toArray();
+
+ foreach($results as $result) {
+ $duplicatedPackingList = PackingList::where('reference', $result['reference'])->where('type', $result['type'])->orderBy('id', 'desc')->get();
+
+ // if packinglist has paid inivoice
+ $paidPackinglist = PackingList::where('reference', $result['reference'])->where('type', $result['type'])->whereHas('transactions', function($query){
+ return $query->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::COMPLETED);
+ })->get();
+
+ if (count($paidPackinglist)) {
+ // delete all the other packing list
+ $paidPackinglistID = $paidPackinglist->first()->id;
+ $duplicatedPackingList = PackingList::where('reference', $result['reference'])->where('type', $result['type'])->where('id', '!=', $paidPackinglistID)->get();
+ // $duplicatedPackingList->delete();
+ foreach ($duplicatedPackingList as $p) {
+ $p->delete();
+ dump('have paid packinglist, deleting id:' . $p->id);
+ }
+ } else {
+ // delete all but left the latest packing list
+ $firstItem = $duplicatedPackingList->shift();
+ // dump('dont have paid packinglist, keep first and delete others');
+ foreach ($duplicatedPackingList as $p) {
+ $p->delete();
+ dump('dont have paid packinglist, keep latest id:' . $firstItem->id . ', and deleting id:' . $p->id);
+ }
+ }
+ }
+});