Example #1
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit(Request $request)
 {
     \DB::beginTransaction();
     $varDetOrders = $request->detOrder;
     $varPayment = $request->payment;
     $movimiento = $request->movimiento;
     if ($movimiento['montoMovimientoEfectivo'] > 0) {
         //---create movimiento---
         //var_dump($request->movimiento);die();
         $detCashrepo;
         $movimiento['observacion'] = "temporal";
         $movimiento['fecha'] = date('Y-m-d');
         $movimiento['hora'] = date('H:i:s');
         $detCashrepo = new DetCashRepo();
         $movimientoSave = $detCashrepo->getModel();
         $insertarMovimiento = new DetCashManager($movimientoSave, $movimiento);
         $insertarMovimiento->save();
         //---Autualizar Caja---
         $cajaAct = $request->caja;
         $cashrepo;
         $cashrepo = new CashRepo();
         $cajaSave = $cashrepo->getModel();
         $cash1 = $cashrepo->find($cajaAct["id"]);
         $manager1 = new CashManager($cash1, $cajaAct);
         $manager1->save();
         //----------------
         $salePaymentRepo;
         $salePaymentRepo = new SalePaymentRepo();
         //$payment = $salePaymentRepo->find($varPayment['id']);
         $payment = $salePaymentRepo->find($varPayment['idPAY']);
         $manager = new SalePaymentManager($payment, $varPayment);
         $manager->save();
     }
     $HeadStockRepo;
     $codigoHeadIS = 0;
     //$detOrderSaleRepo;
     foreach ($varDetOrders as $object) {
         //$detOrderSaleRepo = new DetSaleRepo;
         //$detorderSale = $detOrderSaleRepo->find($object['id']);
         //$manager = new DetSaleManager($detorderSale,$object);
         //$manager->save();
         if (!empty($object['idStock'])) {
             $stokRepo;
             $stokRepo = new StockRepo();
             $cajaSave = $stokRepo->getModel();
             $stockOri = $stokRepo->find($object['id']);
             $stock = $stokRepo->find($object['idStock']);
             //+++if ($object['estad']==true) {
             $stock->stockActual = $stock->stockActual + $object['cantidad'];
             //+++}else{
             //+++$stock->stockPedidos= $stock->stockPedidos+$object['canPendiente'];
             //+++}
             $stock->save();
             //--------------reporte stock------------
             $object["variant_id"] = $object['vari'];
             if ($codigoHeadIS === 0) {
                 $object["warehouses_id"] = $object['idAlmacen'];
                 //$object["cantidad_llegado"]=$cantidaCalculada;
                 //$object['descripcion']='Entrada por compra';
                 //$object['tipo']='Entrada Venta';
                 $object['tipo'] = 'Entrada-Anulado';
                 $object["user_id"] = auth()->user()->id;
                 //$object["Fecha"]=$request->input("fechaPedido");
                 $object["Fecha"] = date('Y-m-d H:i:s');
                 $HeadStockRepo = new HeadInputStockRepo();
                 $HeadStock = $HeadStockRepo->getModel();
                 $HeadStockinsert = new HeadInputStockManager($HeadStock, $object);
                 $HeadStockinsert->save();
                 $codigoHeadIS = $HeadStock->id;
             }
             $object['headInputStock_id'] = $codigoHeadIS;
             $object["producto"] = $object['nameProducto'] . "(" . $object['NombreAtributos'] . ")";
             $object["cantidad_llegado"] = $object['cantidad'];
             $object['descripcion'] = 'Entrada-Venta-Anulada';
             $inputRepo;
             $inputRepo = new InputStockRepo();
             $inputstock = $inputRepo->getModel();
             $inputInsert = new InputStockManager($inputstock, $object);
             $inputInsert->save();
         }
         //---------------------------------------
     }
     $orderSale = $this->saleRepo->find($request->id);
     if ($request->input('estado') == '3') {
         $request->merge(array('fechaAnulado' => date('Y-m-d H:i:s')));
     }
     $manager = new SaleManager($orderSale, $request->all());
     $manager->save();
     $serviceID = $orderSale->service_id;
     if (!empty($serviceID)) {
         $servicio = $this->serviceRepo->find($serviceID);
         $request->merge(["estado" => 4]);
         $request->merge(["numeroServicio" => $servicio->numeroServicio]);
         $request->merge(["fechaServicio" => $servicio->fechaServicio]);
         $request->merge(["tipo" => $servicio->tipo]);
         $request->merge(["cliente" => $servicio->cliente]);
         $request->merge(["ruc" => $servicio->ruc]);
         $request->merge(["direcion" => $servicio->direcion]);
         $request->merge(["telefono" => $servicio->telefono]);
         $request->merge(["empresa" => $servicio->empresa]);
         $request->merge(["descripcion" => $servicio->descripcion]);
         $request->merge(["modelo" => $servicio->modelo]);
         $request->merge(["serie" => $servicio->serie]);
         $request->merge(["accesorios" => $servicio->accesorios]);
         $request->merge(["diagnostico" => $servicio->diagnostico]);
         $request->merge(["accionCorrectiva" => $servicio->accionCorrectiva]);
         $request->merge(["ordenTrabajo" => $servicio->ordenTrabajo]);
         $request->merge(["customer_id" => $servicio->customer_id]);
         $request->merge(["employee_id" => $servicio->employee_id]);
         $request->merge(["user_id" => $servicio->user_id]);
         $manager = new ServiceManager($servicio, $request->all());
         $manager->save();
     }
     \DB::commit();
     return response()->json(['estado' => true, 'nombre' => $orderSale->nombre]);
 }
 public function create(Request $request)
 {
     \DB::beginTransaction();
     if ($request->warehouDestino_id == "") {
         $request->merge(["warehouDestino_id" => null]);
     }
     $var = $request->detailOrderPurchases;
     $request->merge(["Fecha" => $request->fecha]);
     // var_dump($request->input("generareport"));die();
     $codigoHeadIS;
     $almacen_id = $request->input("warehouses_id");
     $almacen_Destino = $request->input("warehouDestino_id");
     //if($almacen_Destino==null){
     //       $almacen_Destino=null;
     //}
     $queHacer = $request->input("eliminar");
     $tipo = $request->input("tipo");
     $tipo2 = "Salida";
     $request->merge(['user_id' => auth()->user()->id]);
     //var_dump();die();
     if ($queHacer === 0) {
         $request->merge(["orderPurchase_id" => $request->input('id')]);
         $headInputStock = $this->headInputStockRepo->getModel();
         if (!empty($request->input('warehouDestino_id'))) {
             $inserHeadInputStock = new HeadInputStockManager($headInputStock, $request->all());
         } else {
             $inserHeadInputStock = new HeadInputStockManager($headInputStock, $request->except('warehouDestino_id'));
         }
         $inserHeadInputStock->save();
         $codigoHeadIS = $headInputStock->id;
         $orderPurchase = $this->orderPurchaseRepo->find($request->input('id'));
         $orderPurchase->detPres()->detach();
         foreach ($var as $object) {
             //  if($queHacer===0){
             //var_dump("hola");die();
             $detPres = $this->detPresRepo->listarVariantes($object['detPres_id']);
             $object["variant_id"] = $detPres->variant_id;
             $object["warehouses_id"] = $request->input("warehouses_id");
             $object["descripcion"] = "Ingreso por pedido";
             $detailOrderPurchaseRepox = new DetailOrderPurchaseRepo();
             $insertar = new DetailOrderPurchaseManager($detailOrderPurchaseRepox->getModel(), $object);
             $insertar->save();
             $detailOrderPurchaseRepox = null;
             // }
             $inputStock = $this->inputStockRepo->getModel();
             // var_dump($object);die();
             if (!empty($object["cantidad_llegado"])) {
                 //if($object["cantidad_llegado"]>0){
                 //  if(!empty($object["equivalencia"])){
                 //      if($object["equivalencia"]>0){
                 //        $object["cantidad_llegado"]=$object["cantidad_llegado"]*$object["equivalencia"];
                 //      }
                 //   }
                 $object['headInputStock_id'] = $codigoHeadIS;
                 $inserInputStock = new inputStockManager($inputStock, $object);
                 $inserInputStock->save();
                 $stockmodel = new StockRepo();
                 $object['warehouse_id'] = $almacen_id;
                 $stockac = $stockmodel->encontrar($object["variant_id"], $almacen_id);
                 //var_dump($object["tipo"]);die();
                 if (!empty($stockac)) {
                     /* if($object["esbase"]==0){
                            if($object["tipo"]=="Salida"){
                                $object["stockActual"]=$stockac->stockActual-($object["cantidad_llegado"]*$object["equivalencia"]);
                                var_dump("entre");
                            }else{
                                $object["stockActual"]=$stockac->stockActual+($object["cantidad_llegado"]*$object["equivalencia"]);
                             }
                        }else{
                            if($object["tipo"]=="Salida"){
                              $object["stockActual"]=$stockac->stockActual-$object["cantidad_llegado"];
                              var_dump("entre");
                            }else{
                               $object["stockActual"]=$stockac->stockActual+$object["cantidad_llegado"]; 
                            }
                        }*/
                     //if($object["esbase"]==0){
                     //  $object["stockActual"]=$stockac->stockActual+($object["cantidad_llegado"]*$object["equivalencia"]);
                     // }else{
                     $object["stockActual"] = $stockac->stockActual + $object["cantidad_llegado"];
                     $object["porLlegar"] = $stockac->porLlegar - $object["cantidad_llegado"];
                     //}
                     $manager = new StockManager($stockac, $object);
                     $manager->save();
                     $stock = null;
                 } else {
                     if ($tipo != $tipo2) {
                         if ($object["esbase"] == 0) {
                             $object["stockActual"] = $object["cantidad_llegado"] * $object["equivalencia"];
                         } else {
                             $object["stockActual"] = $object["cantidad_llegado"];
                         }
                         $manager = new StockManager($stockmodel->getModel(), $object);
                         $manager->save();
                         $stockmodel = null;
                     }
                 }
                 $stockac = null;
             }
         }
         // }
     } else {
         //==========================================================0
         //$inputStock = $this->inputStockRepo->getModel();
         $headInputStock = $this->headInputStockRepo->getModel();
         //var_dump($var);die();
         //if(!empty($var["cantidad_llegado"])){
         //var_dump($request->all());die();
         $inserHeadInputStock = new HeadInputStockManager($headInputStock, $request->all());
         $inserHeadInputStock->save();
         $codigoHeadIS = $headInputStock->id;
         foreach ($var as $object) {
             $inputStock = $this->inputStockRepo->getModel();
             //$inputStock = $this->inputStockRepo->getModel();
             if (!empty($object["cantidad_llegado"])) {
                 if ($object["cantidad_llegado"] > 0) {
                     $object['warehouse_id'] = $almacen_id;
                     $object['headInputStock_id'] = $codigoHeadIS;
                     $inserInputStock = new InputStockManager($inputStock, $object);
                     $inserInputStock->save();
                     //var_dump($object);die();
                     $stockmodel = new StockRepo();
                     //$var['warehouse_id']=$almacen_id;
                     $stockac = $stockmodel->encontrar($object["variant_id"], $almacen_id);
                     if ($tipo == "Transferencia") {
                         $tockacDestino = $stockmodel->encontrar($object["variant_id"], $almacen_Destino);
                         if (!empty($tockacDestino)) {
                             if ($object["esbase"] == 0) {
                                 $object["stockActual"] = $tockacDestino->stockActual + $object["cantidad_llegado"] * $object["equivalencia"];
                             } else {
                                 $object["stockActual"] = $tockacDestino->stockActual + $object["cantidad_llegado"];
                             }
                             $object['warehouse_id'] = $almacen_Destino;
                             $manager = new StockManager($tockacDestino, $object);
                             $manager->save();
                             $stock = null;
                         } else {
                             if ($object["esbase"] == 0) {
                                 $object["stockActual"] = $object["cantidad_llegado"] * $object["equivalencia"];
                             } else {
                                 $object["stockActual"] = $object["cantidad_llegado"];
                             }
                             $object['warehouse_id'] = $almacen_Destino;
                             $manager = new StockManager($stockmodel->getModel(), $object);
                             $manager->save();
                             $stockmodel = null;
                         }
                         $tockacDestino = null;
                         if (!empty($stockac)) {
                             $object['warehouse_id'] = $almacen_id;
                             $object["stockActual"] = $stockac->stockActual - $object["cantidad_llegado"];
                             $manager = new StockManager($stockac, $object);
                             $manager->save();
                             $stock = null;
                         }
                     } else {
                         //Actualiza Stock---------------------------------------------
                         if (!empty($stockac)) {
                             if ($object["esbase"] == 0) {
                                 if ($tipo == $tipo2) {
                                     $object["stockActual"] = $stockac->stockActual - $object["cantidad_llegado"] * $object["equivalencia"];
                                     //var_dump("entre");
                                 } else {
                                     $object["stockActual"] = $stockac->stockActual + $object["cantidad_llegado"] * $object["equivalencia"];
                                 }
                             } else {
                                 if ($tipo == $tipo2) {
                                     $object["stockActual"] = $stockac->stockActual - $object["cantidad_llegado"];
                                     //var_dump("entre");
                                 } else {
                                     // var_dump("hola ");die();
                                     $object["stockActual"] = $stockac->stockActual + $object["cantidad_llegado"];
                                 }
                             }
                             $manager = new StockManager($stockac, $object);
                             $manager->save();
                             $stock = null;
                         } else {
                             if ($tipo != $tipo2) {
                                 if ($object["esbase"] == 0) {
                                     $object["stockActual"] = $object["cantidad_llegado"] * $object["equivalencia"];
                                 } else {
                                     $object["stockActual"] = $object["cantidad_llegado"];
                                 }
                                 $manager = new StockManager($stockmodel->getModel(), $object);
                                 $manager->save();
                                 $stockmodel = null;
                             }
                         }
                     }
                     //fin actualiza Stock---------------------------------------------------
                     $stockac = null;
                 }
             }
         }
     }
     // var_dump($request->generareport);die();
     //$idOrder=intval($request->input("id"));
     //var_dump($idOrder);die();
     \DB::commit();
     ////======================================================00
     return response()->json(['estado' => true]);
 }