Example #1
0
 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);
 }