public function quote_items() { $items = []; foreach ($this->quantities() as $qty) { $items[] = QuoteItem::where('quote_id', '=', $this->id)->where('quantity', '=', $qty)->first(); } return $items; //return $this->hasMany('App\QuoteItem'); }
public function delete() { // Get id of quote_request $input = Input::all(); $id = $input['delete']; $quote_request = QuoteRequest::find($id); // Delete Quote PDF if it exists $path = 'quotes/' . $id . '.pdf'; if (file_exists($path)) { unlink($path); } // Delete Artwork image and its thumbnail if they exist if ($quote_request->artwork_image != null) { $path_image = 'uploads/artworks/' . $quote_request->artwork_image; $path_thumbnail = 'uploads/thumbnails/' . $quote_request->artwork_image; if (file_exists($path_image)) { unlink($path_image); } if (file_exists($path_thumbnail)) { unlink($path_thumbnail); } } $quote_request_items = $quote_request->qris; foreach ($quote_request_items as $quote_request_item) { $quote_line_delete = QuoteRequestItem::find($quote_request_item->id); $quote_line_delete->delete(); } $quotes = $quote_request->quotes; foreach ($quotes as $quote) { $quote_lines = $quote->qris; foreach ($quote_lines as $quote_line) { $quote_line_delete = QuoteItem::find($quote_line->id); $quote_line_delete->delete(); } $quote_delete = Quote::find($quote->id); $quote_delete->delete(); } $quote_request->delete(); if (isset($input['customer_id'])) { return redirect('customers/' . $input['customer_id'] . '/history')->with('message', 'Quote / Job has been deleted successfully'); } else { return redirect('/')->with('message', 'Quote / Job has been deleted successfully'); } }
/** * Show the history page for particular customers. * * @param int $id * @return Response */ public function history($id) { $message = Session::get('message'); $customer = Customer::find($id); $quotes = $customer->quotes; $array = array(); $i = 0; foreach ($quotes as $quote) { $array[$i]['quote_number'] = $quote->id; $array[$i]['title'] = $quote->title; $array[$i]['description'] = $quote->summary; $array[$i]['artwork_image'] = $quote->artwork_image; $array[$i]['request_date'] = $quote->request_date; $array[$i]['expiry_date'] = $quote->expiry_date; // Quotes if (isset($quote->get_quote->id)) { $array[$i]['supplier_id'] = $quote->get_quote->supplier->id; $array[$i]['supplier_name'] = $quote->get_quote->supplier->supplier_name; } else { $array[$i]['supplier_id'] = ''; $array[$i]['supplier_name'] = ''; } //Jobs if (isset($quote->job->id) && $quote->quote_id != 0) { $array[$i]['job_number'] = $quote->id; $array[$i]['job_sell'] = $quote->job->job_item->total; $array[$i]['quantity'] = $quote->job->job_item->quantity; $array[$i]['request_date'] = $quote->job->updated_at->format('d/m/Y'); $query = QuoteItem::where('qri_id', $quote->job->quote_request_items_id)->where('quote_id', $quote->get_quote->id)->first(); $array[$i]['job_cost'] = $query->total_buy_cost; } else { $array[$i]['job_number'] = ''; $array[$i]['job_cost'] = ''; $array[$i]['job_sell'] = ''; $array[$i]['quantity'] = ''; } //TODO: add status value after Workflow module done $array[$i]['status'] = 'invoiced'; $i++; } return view('customers.history', compact('customer', 'array', 'message')); }
public function post_evaluate(\Illuminate\Http\Request $request, $qr_id) { // Validate form $this->validate($request, ['quote_id' => 'required'], $messages = array('quote_id.required' => 'You should choose a Supplier for creating a Quote')); $quote_request = QuoteRequest::find($qr_id); $quantities = $quote_request->first_quote()->quantities(); $input = request::all(); $quote_id = $input['quote_id']; $quote = Quote::find($quote_id); //echo "<pre>"; //echo "Selecting Quote ID $quote_id for Quote Request $qr_id\n"; foreach ($quote_request->qris as $qri) { $qty = $qri["quantity"]; $qi = QuoteItem::where("quantity", "=", $qty)->where("quote_id", "=", $quote_id)->first(); //print("QRI: " . $qri["quantity"] . ": " . $qri["price"]."\n"); if ($qi == null) { //print("Could not find quote item for Quantity $qty\n"); $qri["price"] = 0; $qri["gst"] = 0; $qri["total"] = 0; $qri["unit_price"] = 0; $qri->save(); } else { $qri["price"] = $qi["total_net"]; $qri["gst"] = $qri["price"] * 0.1; $qri["total"] = $qri["price"] + $qri["gst"]; $qri["unit_price"] = $qri["total"] / $qri["quantity"]; $qri->save(); } } $quote_request = QuoteRequest::find($qr_id); $quote_request->quote_id = $input['quote_id']; $quote_request->save(); // delete Quote PDF if exists $path = 'quotes/' . $qr_id . '.pdf'; if (file_exists($path)) { unlink($path); } return redirect('evaluate/' . $qr_id); }