public function create(Request $request) { $orderSale = $this->orderSaleRepo->getModel(); $var = $request->detOrders; $payment = $request->salePayment; $saledetPayments = $request->saledetPayments; $manager = new OrderSaleManager($orderSale, $request->all()); $manager->save(); /* if($this->purchaseRepo->validateDate(substr($request->input('fechaEntrega'),0,10))){ $order->fechaEntrega = substr($request->input('fechaEntrega'),0,10); }else{ $order->fechaEntrega = null; }*/ $orderSale->save(); $temporal = $orderSale->id; //---create movimiento--- $movimiento = $request->movimiento; $detCashrepo; $movimiento['observacion'] = $temporal; $detCashrepo = new DetCashRepo(); $movimientoSave = $detCashrepo->getModel(); $insertarMovimiento = new DetCashManager($movimientoSave, $movimiento); $insertarMovimiento->save(); $detCash_id = $movimientoSave->id; //---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; $payment['orderSale_id'] = $temporal; $salePaymentrepo = new SalePaymentRepo(); $paymentSave = $salePaymentrepo->getModel(); $insertarpayment = new SalePaymentManager($paymentSave, $payment); $insertarpayment->save(); $paymentSave->save(); $temporal1 = $paymentSave->id; //-------------------------- $saledetPaymentrepo; foreach ($saledetPayments as $object1) { $object1['salePayment_id'] = $temporal1; $object1['detCash_id'] = $detCash_id; $saledetPaymentrepo = new SaleDetPaymentRepo(); $insertar = new SaleDetPaymentManager($saledetPaymentrepo->getModel(), $object1); $insertar->save(); $saledetPaymentrepo = null; } $detOrderrepox; foreach ($var as $object) { $object['orderSale_id'] = $temporal; $detOrderrepox = new DetOrderSaleRepo(); $insertar = new DetOrderSaleManager($detOrderrepox->getModel(), $object); $insertar->save(); $detOrderrepox = null; //------------------------------------- $stockmodel = new StockRepo(); $object['warehouse_id'] = $object['idAlmacen']; $object["variant_id"] = $object['vari']; $stockac = $stockmodel->encontrar($object["variant_id"], $object['warehouse_id']); if (!empty($stockac)) { if ($object["equivalencia"] == null) { $object["stockPedidos"] = $stockac->stockPedidos + $object["cantidad"]; // } else { $object["stockPedidos"] = $stockac->stockPedidos + $object["cantidad"] * $object["equivalencia"]; } $manager = new StockManager($stockac, $object); $manager->save(); } else { } $stockac = null; //----------------------------------------------------- } return response()->json(['estado' => true, 'nombres' => $orderSale->nombres]); }
public function create(Request $request) { \DB::beginTransaction(); $vuelto = $request->input("vuelto"); $montobrutoventa = $request->input("montoBruto"); $orderSale = $this->saleRepo->getModel(); $var = $request->detOrders; $payment = $request->salePayment; $saledetPayments = $request->saledetPayments; $servicePayment = $request->servicePayment; $cajaAct = $request->caja; //var_dump($cajaAct);die(); //-------------------------$cajaAct['id'] //---------------- if ($request->input("banseraServicio") == true) { $varService = $request->service; $serviceRepo; $varService['estado'] = 5; $serviceRepo = new ServiceRepo(); $serviceSave = $serviceRepo->getModel(); $brand = $serviceSave->find($varService['id']); $manager = new ServiceManager($brand, $varService); $manager->save(); } //---create movimiento--- $movimiento = $request->movimiento; $detCashrepo; //$movimiento['observacion']=$temporal; $detCashrepo = new DetCashRepo(); $movimientoSave = $detCashrepo->getModel(); $insertarMovimiento = new DetCashManager($movimientoSave, $movimiento); $insertarMovimiento->save(); $detCash_id = $movimientoSave->id; $request->merge(["cash_id" => $cajaAct['id']]); $request->merge(['detCash_id' => $detCash_id]); $manager = new SaleManager($orderSale, $request->all()); $manager->save(); $orderSale->save(); $temporal = $orderSale->id; //---Autualizar Caja--- $cashrepo; $cashrepo = new CashRepo(); $cajaSave = $cashrepo->getModel(); //-->$cash1 = $cashrepo->find($cajaAct["id"]); //-->$manager1 = new CashManager($cash1,$cajaAct); //-->$manager1->save(); //---------------- $salePaymentrepo; $payment['sale_id'] = $temporal; $salePaymentrepo = new SalePaymentRepo(); $paymentSave = $salePaymentrepo->getModel(); $insertarpayment = new SalePaymentManager($paymentSave, $payment); $insertarpayment->save(); $paymentSave->save(); $temporal1 = $paymentSave->id; //-------------------------- $saledetPaymentrepo; if ($request->input("banderaservice") == true) { foreach ($servicePayment as $object2) { $object2['salePayment_id'] = $temporal1; $object2['detCash_id'] = $detCash_id; $saledetPaymentrepo = new SaleDetPaymentRepo(); $insertar = new SaleDetPaymentManager($saledetPaymentrepo->getModel(), $object2); $insertar->save(); $saledetPaymentrepo = null; } } foreach ($saledetPayments as $object1) { $object1['salePayment_id'] = $temporal1; $object1['detCash_id'] = $detCash_id; $saledetPaymentrepo = new SaleDetPaymentRepo(); $insertar = new SaleDetPaymentManager($saledetPaymentrepo->getModel(), $object1); $insertar->save(); $saledetPaymentrepo = null; } //-------------------------- //$request->merge(["ingresos"=>floatval($cash->ingresos)+floatval($var["monto"])]); $cash1 = $cashrepo->find($cajaAct['id']); $request->merge(["ingresos" => floatval($cash1->ingresos) + floatval($movimiento["montoMovimientoTarjeta"]) + floatval($movimiento["montoMovimientoEfectivo"])]); $request->merge(['fechaInicio' => $cash1->fechaInicio]); $request->merge(['fechaFin' => $cash1->fechaFin]); $request->merge(['montoInicial' => $cash1->montoInicial]); $request->merge(['gastos' => $cash1->gastos]); $request->merge(['montoBruto' => floatval($cash1->montoBruto) + floatval($movimiento["montoMovimientoTarjeta"]) + floatval($movimiento["montoMovimientoEfectivo"])]); $request->merge(['montoReal' => $cash1->montoReal]); $request->merge(['descuadre' => $cash1->descuadre]); $request->merge(['estado' => $cash1->estado]); $request->merge(['notas' => $cash1->notas]); $request->merge(['cashHeader_id' => $cash1->cashHeader_id]); if ($cash1->user_id == auth()->user()->id && $cash1->estado == 1) { $request->merge(['user_id' => $cash1->user_id]); } else { return response()->json(['estado' => 'Usted no tiene permisos sobre esta caja o la caja esta cerrada??']); } $cashr = new CashManager($cash1, $request->all()); $cashr->save(); //-------------------------- if (!empty($request->input("comprobante"))) { ///var_dump("kkdkdkkdsk");die(); $headInvoiceRepo = new HeadInvoiceRepo(); $headInvoice = $headInvoiceRepo->getModel(); $customerRepo = new CustomerRepo(); $direccion = $customerRepo->find($request->input("customer_id")); $fbnumberRepo = new FBnumberRepo(); $ashHeaderRepo = $this->ashHeaderRepo->comprobarCaja($cash1["id"]); $numbers = $fbnumberRepo->find($ashHeaderRepo["id"]); $num = $fbnumberRepo->find($ashHeaderRepo["id"]); $cajaId = $ashHeaderRepo["id"]; if ($request->input("tipoDoc") == "F") { $request->merge(["numero" => intval($num->numFactura) + 1]); $request->merge(["numFactura" => $request->input("numero")]); $request->merge(["numTiketFactura" => intval($num->numTiketFactura) + 1]); if (!empty($direccion["empresa"])) { $request->merge(["cliente" => $direccion["empresa"]]); } else { $request->merge(["cliente" => $direccion["nombres"] . " " . $direccion["apellidos"]]); } $request->merge(["direccion" => $direccion["direccFiscal"]]); $request->merge(["ruc" => $direccion["ruc"]]); $inputfbnumber = new FBnumberManager($numbers, $request->only("numFactura", "numTiketFactura")); $inputfbnumber->save(); } elseif ($request->input("tipoDoc") == "B") { if (!empty($direccion["nombres"] && strlen($direccion["nombres"]) > 2)) { $request->merge(["cliente" => $direccion["nombres"] . " " . $direccion["apellidos"]]); } else { $request->merge(["cliente" => $direccion["empresa"]]); } $request->merge(["direccion" => $direccion["direccContac"]]); $request->merge(["numero" => intval($num->numBoleta) + 1]); $request->merge(["numBoleta" => $request->input("numero")]); $request->merge(["numTiketBoleta" => intval($num->numTiketBoleta) + 1]); $request->merge(["ruc" => $direccion["dni"]]); $inputfbnumber = new FBnumberManager($numbers, $request->only("numBoleta", "numTiketBoleta")); $inputfbnumber->save(); } if ($request->input("tipoDoc") == "TF") { $request->merge(["numero" => intval($num->numTiketFactura) + 1]); $request->merge(["numTiketFactura" => intval($num->numTiketFactura) + 1]); $request->merge(["cliente" => $direccion["empresa"]]); $request->merge(["direccion" => $direccion["direccFiscal"]]); $request->merge(["ruc" => $direccion["ruc"]]); $inputfbnumber = new FBnumberManager($numbers, $request->only("numTiketFactura")); $inputfbnumber->save(); } elseif ($request->input("tipoDoc") == "TB") { $request->merge(["cliente" => $direccion["nombres"] . " " . $direccion["apellidos"]]); $request->merge(["direccion" => $direccion["direccContac"]]); $request->merge(["numero" => intval($num->numTiketFactura) + 1]); $request->merge(["numTiketFactura" => intval($num->numTiketFactura) + 1]); $request->merge(["dni" => $direccion["dni"]]); $inputfbnumber = new FBnumberManager($numbers, $request->only("numTiketFactura")); $inputfbnumber->save(); } $request->merge(["direccion_cliente" => $direccion["direccContac"]]); //var_dump($request->input("direccion_cliente"));die(); $request->merge(["direccion" => $direccion["direccFiscal"]]); $request->merge(["subTotal" => $montobrutoventa]); $request->merge(["Total" => $request->input("montoTotal")]); $request->merge(["venta_id" => $temporal]); $request->merge(["cliente_id" => $request->input("customer_id")]); $inputheadInvoiceRepo = new HeadInvoiceManager($headInvoice, $request->only('numero', 'cliente', 'direccion_cliente', 'direccion', 'ruc', 'GRemicion', 'subTotal', 'igv', 'Total', 'venta_id', 'cliente_id', 'tipoDoc', 'vuelto')); $inputheadInvoiceRepo->save(); $codigoFactura = $headInvoice->id; } //---------------- $detOrderrepox; $HeadStockRepo; $codigoHeadIS = 0; foreach ($var as $object) { $object['sale_id'] = $temporal; $detOrderrepox = new DetSaleRepo(); $insertar = new DetSaleManager($detOrderrepox->getModel(), $object); $insertar->save(); $detOrderrepox = null; //------------------------------------- if ($object['detPre_id'] != null) { $stockmodel = new StockRepo(); $object['warehouse_id'] = $object['idAlmacen']; $object["variant_id"] = $object['vari']; $stockac = $stockmodel->encontrar($object["variant_id"], $object['warehouse_id']); //var_dump($stockac);die(); //--------------reporte stock------------ if ($codigoHeadIS === 0) { $object["warehouses_id"] = $object['idAlmacen']; //$object["cantidad_llegado"]=$cantidaCalculada; //$object['descripcion']='Entrada por compra'; $object['tipo'] = 'Venta'; $object["user_id"] = auth()->user()->id; $object["Fecha"] = $request->input("fechaPedido"); $HeadStockRepo = new HeadInputStockRepo(); $HeadStock = $HeadStockRepo->getModel(); $HeadStockinsert = new HeadInputStockManager($HeadStock, $object); $HeadStockinsert->save(); $codigoHeadIS = $HeadStock->id; } $object['headInputStock_id'] = $codigoHeadIS; $object["producto"] = $object['NombreProducto']; $object["cantidad_llegado"] = $object['cantidad']; $object['descripcion'] = 'Salida por Venta'; $inputRepo; $inputRepo = new InputStockRepo(); $inputstock = $inputRepo->getModel(); $inputInsert = new InputStockManager($inputstock, $object); $inputInsert->save(); //--------------------------------------- if (!empty($stockac)) { if ($object["equivalencia"] == null) { $object["stockActual"] = $stockac->stockActual - $object["cantidad"]; // } else { $object["stockActual"] = $stockac->stockActual - $object["cantidad"] * $object["equivalencia"]; } $manager = new StockManager($stockac, $object); $manager->save(); //$stock=null; } else { } $stockac = null; } //-----hasta aca----- //----------------------------------------------------- //Create det Documento Venta //------------------------------------------------------- if (!empty($codigoFactura)) { if (!empty($object["NombreProducto"])) { $object["descripcion"] = $object["NombreProducto"]; } else { $object["descripcion"] = $object["NombreAtributos"]; } $object["PrecioUnit"] = $object["precioVenta"]; $object["PrecioVent"] = $object["subTotal"]; $object["headInvoice_id"] = $codigoFactura; $detInvoice = new DetailInvoiceRepo(); $insertDetInvoice = new DetailInvoiceManager($detInvoice->getModel(), $object); $insertDetInvoice->save(); } //------------------------------------------------------ } if (!empty($request->input("comprobante"))) { if ($request->input("tipoDoc") == 'TF' || $request->input("tipoDoc") == 'TB') { $this->generate_factura($codigoFactura, $vuelto, $cajaId, $cajaAct["id"], $request->input("tipoDoc"), $request->input('descuento')); } } //-----------------Creacion de Cabecera Factura------- \DB::commit(); if (!empty($codigoFactura)) { return response()->json(['estado' => true, 'codFactura' => $codigoFactura, 'nombres' => $orderSale->nombres]); } else { return response()->json(['estado' => true, 'nombres' => $orderSale->nombres]); } }