125 lines
3.5 KiB
PHP
Raw Normal View History

2024-09-03 15:15:57 -07:00
<?php
namespace App\Http\Controllers;
use App\Enums\OrderStatus;
use App\Enums\OrderType;
2024-09-09 15:29:31 -07:00
use App\Http\Requests\OrderRequest;
2024-09-03 15:15:57 -07:00
use App\Models\Customer;
2024-09-09 15:29:31 -07:00
use App\Models\Order;
use App\Models\OrderProduct;
use App\Models\ProductService;
use App\Models\ServiceFile;
2024-09-03 15:15:57 -07:00
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
class OrderController extends Controller
{
2024-09-09 15:29:31 -07:00
public function index(Request $request)
2024-09-03 15:15:57 -07:00
{
2024-09-09 15:29:31 -07:00
if (!$request->get('tab')) {
return redirect()->route('orders.index', ['tab' => 'all']);
}
2024-09-03 15:15:57 -07:00
2024-09-09 15:29:31 -07:00
return view('orders.index', [
'tab' => $request->get('tab'),
]);
2024-09-03 15:15:57 -07:00
}
public function create()
{
return view('orders.create', [
'order_types' => OrderType::cases(),
'order_status' => OrderStatus::cases(),
'customers' => Customer::all(),
'today' => Carbon::today()->format('Y-m-d'),
'due_default' => Carbon::today()->addDay(10)->format('Y-m-d')
]);
}
2024-09-09 15:29:31 -07:00
public function store(OrderRequest $request)
2024-09-03 15:15:57 -07:00
{
2024-09-09 15:29:31 -07:00
// dd($request);
$validatedData = $request->validated();
// create order
$order = Order::create($request->safe()->only([
'customer_id',
'contact_id',
'order_type',
'status',
'customer_po',
'order_date',
'due_date',
'rush',
'new_art',
'digitizing',
'repeat',
'purchased_garments',
'customer_supplied_file',
'notes'
]));
// create orderProducts
for ($i = 0; $i < sizeof($request->get('productInputCount')) - 1; $i++) {
OrderProduct::create([
'order_id' => $order->id,
'sku' => $request->get('sku')[$i],
'product_name' => $request->get('product_name')[$i],
'color' => $request->get('product_color')[$i],
]);
// create productSizes
}
// create productServices
for ($i = 0; $i < sizeof($request->get('serviceInputCount')) -1; $i++) {
$productService = ProductService::create([
'order_id' => $order->id,
'service_type' => $request->get('service_type')[$i],
'placement' => $request->get('placement')[$i],
'setup_amount' => $request->get('setup_amount')[$i],
'amount' => $request->get('amount')[$i],
'amount_price' => $request->get('amount_price')[$i],
]);
ServiceFile::create([
'product_service_id' => $productService,
'code' => $request->get('service_file_name')[$i],
'name' => $request->get('logo_name')[$i],
'width' => $request->get('service_width')[$i],
'height' => $request->get('service_height')[$i],
'unit' => $request->get('service_setup_unit')[$i],
'setup_number' => $request->get('setup_number')[$i],
]);
}
dd($order->productServices()->get());
// return redirect()->route('order-products.create', ['order' => $order->id]);
2024-09-03 15:15:57 -07:00
}
public function show($id)
{
2024-09-09 15:29:31 -07:00
return view('orders.show', [
'order' => Order::find($id),
'tab' => 'details'
]);
2024-09-03 15:15:57 -07:00
}
public function edit($id)
{
}
public function update(Request $request, $id)
{
}
public function destroy($id)
{
}
}