public function storeFood_Supplement(Request $request)
 {
     $food_supplement = new Food_Supplement();
     $food_supplement->idUser = Auth::id();
     $food_supplement->idProvider = Provider::where('id', $request->name)->pluck('id');
     $food_supplement->nameProduct = Input::get('nameProduct');
     $food_supplement->weight = Input::get('weight');
     $food_supplement->price_kg = Input::get('price_kg');
     $food_supplement->due_date = Input::get('due_date');
     $food_supplement->save();
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show(Request $request)
 {
     if ($request->name == "") {
         $providers = Defoult::where('name', 'no_found')->get();
         return view('providers.show', compact('providers'));
     } else {
         $providers = Provider::where('name', 'ILIKE', '%' . trim($request->get(trim('name'))) . '%')->get();
         if (sizeof($providers) == 0) {
             $providers = Defoult::where('name', 'no_found')->get();
             return view('providers.show', compact('providers'));
         }
         $providers = Provider::where('name', 'ILIKE', '%' . trim($request->get(trim('name'))) . '%')->get();
         return view('providers.show', compact('providers'));
     }
 }
示例#3
0
 /**
  * Function that generates order.
  *
  * @return Response
  */
 public function aiOrder()
 {
     // Get all branches.
     $branches = Branch::all();
     // Get all providers.
     $providers = Provider::where('AIManaged', '=', true)->get();
     // Prepare order array.
     $order = array();
     // Loop through providers.
     foreach ($providers as $provider) {
         $order[$provider->Id] = array();
         // Get all products.
         $products = Stock::where('Provider', '=', $provider)->get();
         foreach ($products as $product) {
             $order[$provider->Id][$product->Code][$provider->BranchId] = array('Code' => $product->Code, 'Description' => $product->Description, 'Exist' => $product->Quantity, 'Cost' => $product->Cost, 'Minimum' => $product->Minimum, 'Order' => 0, 'Average' => 0, 'Sold' => 0);
         }
         // Get all the products sold in selected sample range.
         $today = date('Y-m-d H:i:s');
         switch ($provider->SampleRange) {
             case '1week':
                 $startDate = date('Y-m-d H:i:s', strtotime($today) - 604800);
                 $sales = Sale::where('BranchId', '=', $branchId)->where('Created', '>=', $startDate)->where('Created', '<=', $today)->get();
                 foreach ($sales as $sale) {
                     $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
                     foreach ($breakdown as $item) {
                         if (array_key_exists($item->Code, $order)) {
                             $order[$item->Code]['Sold'] += $item->Quantity;
                         }
                     }
                 }
                 // Now calculate average of each product.
                 foreach ($order as $index => $product) {
                     $order[$index]['Average'] = $product['Sold'] / 7;
                 }
                 break;
             case '2week':
                 $startDate = date('Y-m-d H:i:s', strtotime($today) - 1209600);
                 $sales = Sale::where('BranchId', '=', $branchId)->where('Created', '>=', $startDate)->where('Created', '<=', $today)->get();
                 foreach ($sales as $sale) {
                     $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
                     foreach ($breakdown as $item) {
                         if (array_key_exists($item->Code, $order)) {
                             $order[$item->Code]['Sold'] += $item->Quantity;
                         }
                     }
                 }
                 // Now calculate average of each product.
                 foreach ($order as $index => $product) {
                     $order[$index]['Average'] = $product['Sold'] / 14;
                 }
                 break;
             case '1month':
                 $startDate = date('Y-m-d H:i:s', strtotime($today) - 2419200);
                 $sales = Sale::where('BranchId', '=', $branchId)->where('Created', '>=', $startDate)->where('Created', '<=', $today)->get();
                 foreach ($sales as $sale) {
                     $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
                     foreach ($breakdown as $item) {
                         if (array_key_exists($item->Code, $order)) {
                             $order[$item->Code]['Sold'] += $item->Quantity;
                         }
                     }
                 }
                 // Now calculate average of each product.
                 foreach ($order as $index => $product) {
                     $order[$index]['Average'] = $product['Sold'] / 30;
                 }
                 break;
             case '3month':
                 $startDate = date('Y-m-d H:i:s', strtotime($today) - 7257600);
                 $sales = Sale::where('BranchId', '=', $branchId)->where('Created', '>=', $startDate)->where('Created', '<=', $today)->get();
                 foreach ($sales as $sale) {
                     $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
                     foreach ($breakdown as $item) {
                         if (array_key_exists($item->Code, $order)) {
                             $order[$item->Code]['Sold'] += $item->Quantity;
                         }
                     }
                 }
                 // Now calculate average of each product.
                 foreach ($order as $index => $product) {
                     $order[$index]['Average'] = $product['Sold'] / 90;
                 }
                 break;
             case '1year':
                 $startDate = date('Y-m-d H:i:s', strtotime($today) - 29030400);
                 $sales = Sale::where('BranchId', '=', $branchId)->where('Created', '>=', $startDate)->where('Created', '<=', $today)->get();
                 foreach ($sales as $sale) {
                     $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
                     foreach ($breakdown as $item) {
                         if (array_key_exists($item->Code, $order)) {
                             $order[$item->Code]['Sold'] += $item->Quantity;
                         }
                     }
                 }
                 // Now calculate average of each product.
                 foreach ($order as $index => $product) {
                     $order[$index]['Average'] = $product['Sold'] / 365;
                 }
                 break;
         }
     }
     // Now calculate amount to order based on average, existence, minimum and order range.
     switch (Input::get('orderRange')) {
         case '3day':
             foreach ($order as $index => $product) {
                 $estimatedOrder = $product['Average'] * 3;
                 // Order should be at least twice minimum required with existence influded.
                 if ($estimatedOrder + $product['Exist'] < $product['Minimum'] * 2) {
                     $estimatedOrder = $product['Minimum'] * 2;
                 }
                 $order[$index]['Order'] = round($estimatedOrder);
             }
             break;
         case '1week':
             foreach ($order as $index => $product) {
                 $estimatedOrder = $product['Average'] * 7;
                 // Order should be at least twice minimum required with existence influded.
                 if ($estimatedOrder + $product['Exist'] < $product['Minimum'] * 2) {
                     $estimatedOrder = $product['Minimum'] * 2;
                 }
                 $order[$index]['Order'] = round($estimatedOrder);
             }
             break;
         case '2week':
             foreach ($order as $index => $product) {
                 $estimatedOrder = $product['Average'] * 14;
                 // Order should be at least twice minimum required with existence influded.
                 if ($estimatedOrder + $product['Exist'] < $product['Minimum'] * 2) {
                     $estimatedOrder = $product['Minimum'] * 2;
                 }
                 $order[$index]['Order'] = round($estimatedOrder);
             }
             break;
         case '1month':
             foreach ($order as $index => $product) {
                 $estimatedOrder = $product['Average'] * 30;
                 // Order should be at least twice minimum required with existence influded.
                 if ($estimatedOrder + $product['Exist'] < $product['Minimum'] * 2) {
                     $estimatedOrder = $product['Minimum'] * 2;
                 }
                 $order[$index]['Order'] = round($estimatedOrder);
             }
             break;
         case '3month':
             foreach ($order as $index => $product) {
                 $estimatedOrder = $product['Average'] * 90;
                 // Order should be at least twice minimum required with existence influded.
                 if ($estimatedOrder + $product['Exist'] < $product['Minimum'] * 2) {
                     $estimatedOrder = $product['Minimum'] * 2;
                 }
                 $order[$index]['Order'] = round($estimatedOrder);
             }
             break;
     }
     // Check if we have recently made an order for this provider to fix order.
     $aiOrders = AIOrder::where('GenerationDate', '>', date('Y-m-d H:i:s', strtotime($today) - 259200))->where('Received', '=', false)->get();
     foreach ($aiOrders as $o) {
         // Get breakdown and remove quantity from order.
         $breakdown = AIOrderBreakdown::where('AIOrderId', '=', $o->Id)->get();
         foreach ($breakdown as $item) {
             if (array_key_exists($item->Code, $order)) {
                 $order[$item->Code]['Order'] -= $item->Quantity;
             }
         }
     }
     $order = AIOrder::findOrFail(1);
     $breakdown = AIOrderBreakdown::where('AIOrderId', '=', $order->Id)->get();
     // Ship order...
     Mail::send('emails.ai.makeOrder', ['order' => $order, 'breakdown' => $breakdown], function ($message) {
         $message->to('*****@*****.**');
         $message->subject('Orden de Compra');
     });
     $response['state'] = 'Success';
     $response['message'] = 'Servicio eliminado exitosamente!';
     return response()->json($response);
 }