mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/izyim.git
synced 2026-08-19 12:34:03 +00:00
86 lines
3.1 KiB
PHP
86 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Orders;
|
|
|
|
use App\Classes\ControllersLogic\Orders\CreateOrder;
|
|
use App\Classes\Modules\ControllersLogic\Orders\UpdateOrderStepLogic;
|
|
use App\Classes\Modules\Orders\DataTransferObjects\PackageObject;
|
|
use App\Classes\Modules\Orders\DataTransferObjects\PackingListObject;
|
|
use App\Models\CustomIssues;
|
|
use App\Models\Order;
|
|
use App\Models\OrderStep;
|
|
use App\Models\PackingList;
|
|
use App\Models\ShippingArrangement;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\Order as OrderResource;
|
|
|
|
class OrderController extends Controller
|
|
{
|
|
|
|
public function listCompanyOrders(String $companyId){
|
|
$orders = Order::where('company_id', $companyId)->orderBy('created_at', 'DESC')
|
|
->paginate(100);
|
|
return OrderResource::collection($orders);
|
|
}
|
|
|
|
public function updateStep(String $orderId, Request $request, UpdateOrderStepLogic $logic){
|
|
return $logic->execute($orderId, $request);
|
|
// return (new UpdateOrderStepLogic())->execute($orderId, $request) ? 200 : 408;
|
|
}
|
|
|
|
public function updatePackingList(String $orderId, Request $request){
|
|
$packingList = PackingList::updateOrCreate(['order_id' => $orderId],['reference_no' => $request->input('reference_no')]);
|
|
$confirmed = true;
|
|
$packages = [];
|
|
|
|
foreach ($request->input('packages') as $package) {
|
|
if(trim($package['description']) !== '' || $package['description'] !== null){
|
|
$packages[] = $package;
|
|
if($package['width'] == 0 || $package['length'] == 0 || $package['height'] == 0){
|
|
|
|
$confirmed = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(empty($packages)){
|
|
$confirmed = false;
|
|
}
|
|
|
|
$packingList->packages()->delete();
|
|
$packingList->packages()->createMany($packages);
|
|
|
|
$packingList->confirmed = $confirmed;
|
|
|
|
if($packingList->save()){
|
|
|
|
}
|
|
return 408;
|
|
}
|
|
|
|
public function orderShippingArrangement(String $orderId, Request $request){
|
|
$shippingArrangement = ShippingArrangement::updateOrCreate(['order_id' => $orderId],['container_no' => $request->input('container_no'), 'seal_no' => $request->input('seal_no')]);
|
|
$shippingArrangement->shippingSchedule()->delete();
|
|
$shippingArrangement->shippingSchedule()->create(['ETD' => Carbon::parse($request->input('schedule')['ETD']), 'ETA' => Carbon::parse($request->input('schedule')['ETA'])]);
|
|
return 200;
|
|
}
|
|
|
|
public function rescheduleShipping(String $orderId, Request $request){
|
|
$shippingArrangement = ShippingArrangement::where('order_id', $orderId)->first();
|
|
$shippingArrangement->shippingSchedule()->update(['status' => 2]);
|
|
$shippingArrangement->shippingSchedule()->create(['ETD' => Carbon::parse($request->input('ETD')), 'ETA' => Carbon::parse($request->input('ETA'))]);
|
|
return 200;
|
|
}
|
|
|
|
public function delete(String $orderId){
|
|
/** @var Order $order */
|
|
$order = Order::findOrFail($orderId);
|
|
$order->delete();
|
|
|
|
}
|
|
|
|
|
|
}
|