public function ProcessServiceRequest($Input, $SendServiceEmail = true) { // Get logged user, or register as guest $objUser = \Auth::User() ?: \App\User::GetGuestAccount(); // 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.'); } $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = $Input['RequestType']; switch ($Input['RequestType']) { case static::REQUEST_TYPE_PARTS: $objInvoiceItem->title = 'Parts Request'; break; case static::REQUEST_TYPE_SALES: $objInvoiceItem->title = 'Service Request'; break; case static::REQUEST_TYPE_CONTACT_US: $objInvoiceItem->title = 'Contact Us'; break; } $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); if (Request::get('Make')) { $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = 'Make'; $objInvoiceItem->title = Request::get('Make'); $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); } if (Request::get('Model')) { $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = 'Model'; $objInvoiceItem->title = Request::get('Model'); $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); } if (Request::get('SerialNumber')) { $objInvoiceItem = new \App\InvoiceItem(); $objInvoiceItem->invoice_id = $objInvoice->id; $objInvoiceItem->type = 'Serial Number'; $objInvoiceItem->title = Request::get('SerialNumber'); $objInvoiceItem->status = \App\InvoiceItem::STATUS_ACTIVE; $objInvoiceItem->save(); } if ($SendServiceEmail) { EmailController::sendServiceEmail($Input); } return redirect('/forms/success'); }