예제 #1
0
 /**
  * This function is used to send a quote to the customer
  *
  * @param string POST data
  *
  * @return if validation errors found redirect to same route with validation errors and input data |
  *         else insert the quote to the database tables then return $message |
  *         catch if any error found when executing the database query and return $message
  */
 public function SendQuotationAdmin()
 {
     $id = Request::all();
     $task = $id['services'];
     $serviceList = array();
     $serviceList = explode(', ', $task);
     $serviceCount = $id['taskcount'];
     $quoteID = $id['eventid'];
     $eventType = $id['eventtype'];
     $subtotal = $id['subtotal'];
     $downpayment = $id['downpayment'];
     $totalpay = $id['totalpay'];
     $remarks = $id['remarks'];
     $addedDate = date('Y-m-d H:i:s');
     $cost = array();
     $serviceName = array();
     foreach ($id['cost'] as $key) {
         $cost[] = $key;
     }
     foreach ($id['serviceName'] as $key) {
         $serviceName[] = $key;
     }
     try {
         $approvedQuote = new Approved_Quotes();
         $approvedQuote->QuoteID = $quoteID;
         $approvedQuote->EventType = $eventType;
         $approvedQuote->SubTotal = $subtotal;
         $approvedQuote->DownPayment = $downpayment;
         $approvedQuote->TotalCost = $totalpay;
         $approvedQuote->AddedDateTime = $addedDate;
         $approvedQuote->Remarks = $remarks;
         $approvedQuote->save();
         foreach ($id['serviceName'] as $key => $value) {
             Requested_Services::where('QuoteID', $quoteID)->where('Service', $serviceName[$key])->update(['Cost' => $cost[$key]]);
         }
         Quote_Requests::where('id', $quoteID)->update(['Status' => 'Approved']);
         $user = Quote_Requests::select('Username', 'Email')->where('id', $quoteID)->get();
         foreach ($user as $key) {
             $username = $key->Username;
             $emailuser = $key->Email;
         }
         $newemail = new EmailController();
         $newemail->quoteApprovedEmail($username, $emailuser, $quoteID);
         $result = array('eventID' => $quoteID, 'eventType' => $eventType, 'serviceCount' => $serviceCount, 'services' => $serviceList, 'message' => 'success');
         return redirect('dashboard/quote-requests/approve-quote')->with('result', $result);
     } catch (QueryException $e) {
         $result = array('eventID' => $quoteID, 'eventType' => $eventType, 'serviceCount' => $serviceCount, 'services' => $serviceList, 'message' => 'fail');
         return redirect('dashboard/quote-requests/approve-quote')->with('result', $result);
     }
 }