json(Invoice::whereBetween('created_at', [$from, $end])->with('address')->orderBy('created_at', 'desc')->get()); } /** * Store a newly created resource in storage. */ public function store(Request $request): JsonResponse { $invoiceData = $request->validate([ 'customer_id' => 'required|integer|exists:customers,id', 'address_id' => 'required|integer|exists:addresses,id', 'delivery_id' => 'nullable|integer|exists:addresses,id', 'tax' => 'required|numeric', 'sum' => 'required|numeric', ]); $invoiceData['user_id'] = auth()->id(); $invoiceData['type'] = '380'; $invoiceData['status'] = 'created'; $invoiceData['invoice_number'] = Invoice::whereYear('created_at', now()->year)->count() + 1; $invoice = new Invoice($invoiceData); $invoice->save(); return response()->json($invoice); } /** * Display the specified resource. */ public function show(Invoice $invoice) { // } /** * Update the specified resource in storage. */ public function update(Request $request, Invoice $invoice): JsonResponse { $invoiceData = $request->validate([ 'customer_id' => 'required|integer|exists:customers,id', 'address_id' => 'required|integer|exists:addresses,id', 'delivery_id' => 'nullable|integer|exists:addresses,id', 'tax' => 'required|numeric', 'sum' => 'required|numeric', ]); $invoice->update($invoiceData); $invoice->items()->delete(); return response()->json($invoice); } public function state(Request $request, Invoice $invoice): JsonResponse { $invoiceData = $request->validate([ 'status' => 'required|string' ]); $invoice->update($invoiceData); return response()->json($invoice); } /** * Remove the specified resource from storage. */ public function destroy(Invoice $invoice) { // } }