Files
izyim/app/Http/Controllers/Orders/OrderController.php
T
2019-02-21 12:48:57 +08:00

78 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\Orders;
use App\Classes\ControllersLogic\Orders\CreateOrder;
use App\Classes\ControllersLogic\Orders\UpdateOrderStep;
use App\Models\CustomIssues;
use App\Models\Order;
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');
return OrderResource::collection($orders);
}
public function insert(String $companyId, Request $request){
return (new CreateOrder())->execute($companyId, $request) ? 200 : 408;
}
public function updateStep(String $orderId, Request $request){
return (new UpdateOrderStep())->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;
}
}