Ejemplo n.º 1
0
 public function doCreate(CreateReportRequest $request)
 {
     $location = \GeoIP::getLocation();
     $allSoldProducts = [];
     $report = new SMReport();
     $soldProduct = $request->sold_product;
     $quantity = $request->quantity;
     $extraSoldProducts = $request->extra_sold_products;
     $extraQuantity = $request->extra_quantity;
     if (!empty($soldProduct)) {
         $allSoldProducts[$soldProduct] = $quantity;
     }
     if (!empty($extraSoldProducts)) {
         foreach ($extraSoldProducts as $key => $singleSoldProduct) {
             $allSoldProducts[$singleSoldProduct] = $extraQuantity[$key];
         }
     }
     $report->sm_id = \Auth::user()->id;
     $report->month = $request->month . '-' . $request->year;
     $report->date = $request->date;
     $report->doctor_id = $request->doctor;
     $report->total_sold_products_price = !empty($allSoldProducts) ? $this->productPrice($allSoldProducts) : '0';
     $report->feedback = $request->feedback;
     $report->follow_up = $request->follow_up;
     $report->lat = $location['lat'];
     $report->lon = $location['lon'];
     try {
         if ($report->save()) {
             if (!empty($request->promoted_products)) {
                 foreach ($request->promoted_products as $singleProduct) {
                     $promotedProduct = new AMReportPromotedProduct();
                     $promotedProduct->report_id = $report->id;
                     $promotedProduct->product_id = $singleProduct;
                     $promotedProduct->save();
                 }
             }
             if (!empty($request->samples_products)) {
                 foreach ($request->samples_products as $singleProduct) {
                     $sampleProduct = new AMReportSampleProduct();
                     $sampleProduct->report_id = $report->id;
                     $sampleProduct->product_id = $singleProduct;
                     $sampleProduct->save();
                 }
             }
             if (!empty($request->gifts)) {
                 foreach ($request->gifts as $singleGift) {
                     $gift = new AMReportGift();
                     $gift->report_id = $report->id;
                     $gift->gift_id = $singleGift;
                     $gift->save();
                 }
             }
             if (!empty($request->sold_product)) {
                 $soldProduct = new AMReportSoldProduct();
                 $soldProduct->report_id = $report->id;
                 $soldProduct->product_id = $request->sold_product;
                 $soldProduct->quantity = $request->quantity;
                 $soldProduct->save();
             }
             if (!empty($extraSoldProducts)) {
                 foreach ($extraSoldProducts as $key => $singleSoldProduct) {
                     $soldProduct = new AMReportSoldProduct();
                     $soldProduct->report_id = $report->id;
                     $soldProduct->product_id = $singleSoldProduct;
                     $soldProduct->quantity = $extraQuantity[$key];
                     $soldProduct->save();
                 }
             }
         }
         return redirect()->back()->with('message', 'Report has been created successfully !');
     } catch (ParseException $ex) {
         echo 'Failed to create new report , with error message: ' . $ex->getMessage();
     }
 }