/** * 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); } }