示例#1
0
 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');
 }