public function show($id) { return view('catalog.sale.invoice')->with(App\Invoice::find($id)); }
public function ProcessSaleRequest($Input) { // Get logged user, or register as guest $objUser = \Auth::User() ?: \App\User::GetGuestAccount(); // TODO: Nice error handling would be nice if (!$objUser) { App::abort('500', 'Invalid form request: Could not determine user account to submit form'); } // Create invoice $objInvoice = new \App\Invoice(); $objInvoice->user_id = $objUser->id; $objInvoice->type = $Input['RequestType']; $objInvoice->company_name = $Input['CompanyName']; $objInvoice->first_name = $Input['FirstName']; $objInvoice->last_name = $Input['LastName']; $objInvoice->email = $Input['EmailAddress']; $objInvoice->phone = $Input['PhoneNumber']; $objInvoice->status = \App\Invoice::STATUS_NEW; $objInvoice->comments = $Input['Comments']; if (!$objInvoice->save()) { App::abort('500', 'Master invoice could not save. Breaking page. Not saving invoice items.'); } // Invoice Items $tInvoiceItemFields = ['Brand', 'Environment', 'MotivePower', 'Capacity', 'Attachment', 'OperatingHours', 'Accessories' => ['LP Tank', 'Opportunity Charger', 'Seat Belt', 'Strobe Light', 'Fire Extinguisher', 'Side Shifter']]; if ($Input['RequestType'] == static::REQUEST_TYPE_RENTAL) { unset($tInvoiceItemFields[0]); } // Brand foreach ($tInvoiceItemFields as $Item) { if (is_array($Item)) { foreach ($Item as $Accessory) { if (in_array($Accessory, $Input['Accessories'])) { $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = 'Accessory'; $objInvoiceItem->title = "{$Accessory}"; $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); } } } else { if ($Input[$Item]) { $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = $Item; $objInvoiceItem->title = $Input[$Item]; $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); } } } EmailController::sendSalesEmail($Input); return redirect('/forms/success'); }