private function updateStockData($stock)
 {
     $stockCount = StockCount::where('product_id', '=', Input::get('product_id'))->where('stock_info_id', '=', Input::get('stock_info_id'))->get();
     if (Input::get('entry_type') == 'StockIn') {
         $stock->consignment_name = Input::get('consignment_name');
         if (empty($stockCount[0])) {
             $stockCountOld = StockCount::where('product_id', '=', $stock->product_id)->where('stock_info_id', '=', $stock->stock_info_id)->get();
             $stockCountOld[0]->product_quantity = $stockCountOld[0]->product_quantity - $stock->product_quantity;
             $stockCountOld[0]->save();
             $stockCounts = new StockCount();
             $stockCounts->product_id = Input::get('product_id');
             $stockCounts->stock_info_id = Input::get('stock_info_id');
             $stockCounts->product_quantity = Input::get('product_quantity');
             $stockCounts->save();
             $this->insertStockData($stock);
             $stock->save();
         } else {
             $stockCount[0]->product_quantity = $stockCount[0]->product_quantity - $stock->product_quantity + Input::get('product_quantity');
             $stockCount[0]->save();
             $this->insertStockData($stock);
             $stock->save();
         }
         Session::flash('message', 'Stock has been Successfully Updated && Product Quantity Updated');
     } elseif (Input::get('entry_type') == 'StockOut') {
         if (!empty($stockCount[0])) {
             if ($stockCount[0]->product_quantity >= Input::get('product_quantity')) {
                 $stockCount[0]->product_quantity = $stockCount[0]->product_quantity + $stock->product_quantity - Input::get('product_quantity');
                 $stockCount[0]->save();
                 $this->insertStockData($stock);
                 $stock->save();
                 Session::flash('message', 'Stock has been Successfully Updated && Product Quantity Updated');
             } else {
                 Session::flash('message', 'You Dont have enough products in Stock');
             }
         } else {
             Session::flash('message', 'You Dont have This products in This Stock');
         }
     } elseif (Input::get('entry_type') == 'Transfer') {
         if (!empty($stockCount[0])) {
             if ($stockCount[0]->product_quantity >= Input::get('product_quantity')) {
                 $stockCount[0]->product_quantity = $stockCount[0]->product_quantity + $stock->product_quantity - Input::get('product_quantity');
                 $stockCount[0]->save();
                 $stockCountTo = StockCount::where('product_id', '=', Input::get('product_id'))->where('stock_info_id', '=', Input::get('to_stock_info_id'))->get();
                 if (!empty($stockCountTo[0])) {
                     $stockCountTo[0]->product_quantity = $stockCountTo[0]->product_quantity - $stock->product_quantity + Input::get('product_quantity');
                     $stockCountTo[0]->save();
                     $this->insertStockData($stock);
                     $stock->save();
                 } else {
                     $stockCountToOld = StockCount::where('product_id', '=', $stock->product_id)->where('stock_info_id', '=', $stock->to_stock_info_id)->get();
                     $stockCountToOld[0]->product_quantity = $stockCountToOld[0]->product_quantity - $stock->product_quantity;
                     $stockCountToOld[0]->save();
                     $stockCounts = new StockCount();
                     $stockCounts->product_id = Input::get('product_id');
                     $stockCounts->stock_info_id = Input::get('to_stock_info_id');
                     $stockCounts->product_quantity = Input::get('product_quantity');
                     $stockCounts->save();
                     $this->insertStockData($stock);
                     $stock->save();
                 }
                 Session::flash('message', 'Product Has been successfully Transfered and Updated');
             } else {
                 Session::flash('message', 'You Dont have enough products in Stock');
             }
         } else {
             Session::flash('message', 'You Dont have This products in This Stock');
         }
     } else {
         $this->insertStockData($stock);
         $stock->save();
         Session::flash('message', 'Stock has been Successfully Created && Wastage Product Updated');
     }
 }
 private function setStockData($import, $import_details, $stockDetails, $invoiceId, $to_stock_id)
 {
     $stock_Count = StockCount::where('product_id', '=', $import_details->product_id)->where('stock_info_id', '=', $to_stock_id)->get();
     $stockDetails->branch_id = $import->branch_id;
     $stockDetails->product_id = $import_details->product_id;
     $stockDetails->entry_type = "StockIn";
     $product = Product::find($import_details->product_id);
     $stockDetails->product_type = $product->product_type;
     $stockDetails->stock_info_id = $to_stock_id;
     $stockDetails->remarks = "";
     $stockDetails->invoice_id = $invoiceId;
     $stockDetails->quantity = $import_details->quantity;
     $import_details->stock_in_status = 1;
     $import_details->save();
     if ($stockDetails->entry_type == 'StockIn') {
         $stockDetails->consignment_name = $import->consignment_name;
         if (empty($stock_Count[0])) {
             $stock_Count = new StockCount();
             $stock_Count->product_id = $import_details->product_id;
             $stock_Count->stock_info_id = $stockDetails->stock_info_id;
             $stock_Count->product_quantity = $import_details->quantity;
             $stock_Count->save();
             $stockDetails->save();
             //$stockCounts->save();
         } else {
             $stock_Count[0]->product_quantity = $stock_Count[0]->product_quantity + $import_details->quantity;
             //$stock->save();
             $stock_Count[0]->save();
             $stockDetails->save();
         }
     }
 }