public function post_catalogo(Request $request)
 {
     $user = Auth::user();
     $producto = Producto::find($request->input('id_producto'));
     $consulta = Venta::where('id_cliente', $user->id)->where('estado', 'SIN PAGO')->first();
     if ($consulta) {
         $detalleventa = null;
         $detalleventa = DetalleVenta::where('id_venta', $consulta->id)->where('id_producto', $producto->id)->first();
         if ($detalleventa == null) {
             $detalleventa = new DetalleVenta();
             $detalleventa->id_venta = $consulta->id;
             $detalleventa->id_producto = $request->input('id_producto');
             $detalleventa->cantidad = 1;
             $detalleventa->save();
         } else {
             $detalleventa->cantidad = $detalleventa->cantidad + 1;
             $detalleventa->save();
         }
     } else {
         $venta = new Venta();
         $venta->id_cliente = $user->id;
         $venta->estado = "SIN PAGO";
         $venta->save();
         $detalleventa = new DetalleVenta();
         $detalleventa->id_venta = $venta->id;
         $detalleventa->id_producto = $request->input('id_producto');
         $detalleventa->cantidad = "1";
         $detalleventa->save();
     }
     return redirect()->action('UserController@get_detalleventa');
 }
Beispiel #2
0
 public static function venta($id_usuario, $total)
 {
     $venta = new Venta();
     $venta->id_usuario = $id_usuario;
     $venta->total = $total;
     $venta->fecha = date('Y-m-d H:i:s');
     $venta->save();
     return $venta->id;
 }
 public function facturar(Request $request)
 {
     $productos = Venta::obtenerListaReporte($request->input('id_venta'));
     $dompdf = \App::make('dompdf.wrapper');
     $dompdf->loadView('factura', compact('productos'));
     return $dompdf->stream();
 }
 public function run()
 {
     $faker = Faker::create('es_ES');
     $ventas = Venta::all();
     $cantidadProductos = Producto::all()->count();
     foreach ($ventas as $venta) {
         for ($i = 0; $i < 7; $i++) {
             $idProducto = $faker->numberBetween($min = 1, $max = $cantidadProductos);
             $cantidad = $faker->numberBetween($min = 1, $max = 20);
             $productoObj = Producto::find($idProducto);
             $subtotal = $productoObj->subtotal($cantidad);
             $venta->productos()->attach($idProducto, ['cantidad' => $cantidad, 'subtotal' => $subtotal]);
         }
     }
 }
Beispiel #5
0
 public function ventasPdf(Request $request)
 {
     $id = $request->id;
     $clienteId = $request->cliente_id;
     $productos = array();
     $venta = Venta::find($id);
     foreach ($venta->productos as $producto) {
         $id = $producto->pivot->producto_id;
         $cantidad = $producto->pivot->cantidad;
         $subtotal = $producto->pivot->subtotal;
         $proAux = Producto::find($id);
         $nombre = $proAux->nombre;
         $precio = $proAux->precio;
         $productoObj = array(['id' => $id, 'nombre' => $nombre, 'cantidad' => $cantidad, 'precio' => $precio, 'subtotal' => $subtotal]);
         array_push($productos, $productoObj);
     }
     $view = \View::make('admi.ventaPdf')->with(['venta' => $venta, 'productos' => $productos])->render();
     $pdf = \App::make('dompdf.wrapper');
     $pdf->loadHTML($view)->setPaper('a4')->setOrientation('landscape');
     return $pdf->stream('invoice');
 }
 public function gestionar(Request $request)
 {
     if ($request->opcion == 'clientes') {
         $clientes = Cliente::all(['id', 'nombre', 'direccion', 'telefono']);
         return view('admi.reporteClientes')->with(['clientes' => $clientes]);
     }
     if ($request->opcion == 'proveedores') {
         $proveedores = Proveedor::all(['id', 'nombre', 'direccion', 'telefono']);
         return view('admi.reporteProveedores')->with(['proveedores' => $proveedores]);
     }
     if ($request->opcion == 'compras') {
         $compras = Compra::all(['id', 'cliente_id', 'created_at']);
         return view('admi.reporteCompras')->with(['compras' => $compras]);
     }
     if ($request->opcion == 'ventas') {
         $ventas = Venta::all(['id', 'user_id', 'created_at']);
         return view('admi.reporteVentas')->with(['ventas' => $ventas]);
     }
     if ($request->opcion == null) {
         return view('admi.reportes')->with(['mensaje' => 'Tiene que seleccionar una Opcion']);
     }
 }
 public function obtenerDatos($opcion)
 {
     $compras = Compra::all(['total', 'fecha']);
     $ventas = Venta::all(['total', 'fecha']);
     $max = $ventas->count();
     $datos = array();
     $contador = 0;
     if ($opcion == 'ambos') {
         for ($i = 0; $i < $max; $i++) {
             $datos1 = array("2015-10-2" . $contador, $compras[$contador]->total, $ventas[$contador]->total);
             array_push($datos, $datos1);
             $contador++;
         }
         return $datos;
     }
     if ($opcion == 'Compras') {
         $contador = 1;
         foreach ($compras as $compra) {
             $fecha = $compra->fecha;
             $datos1 = array($fecha, $compra->total);
             array_push($datos, $datos1);
             $contador++;
         }
         return $datos;
     }
     if ($opcion == 'Ventas') {
         $contador = 1;
         foreach ($ventas as $venta) {
             $fecha = $venta->fecha;
             $datos1 = array($fecha, $venta->total);
             array_push($datos, $datos1);
             $contador++;
         }
         return $datos;
     }
 }
 public function confirmarCompra(Request $request, $total)
 {
     DB::transaction(function () use($total, $request) {
         try {
             $usuario = Auth::user()->id;
             $venta = new Venta();
             $venta->total = $total;
             $venta->IdCliente = $usuario;
             $venta->save();
             $direccion = $request['calle'] . ' Col. ' . $request['colonia'] . ' ' . $request['ciudad'] . ', ' . $request['estado'] . ', ' . $request['pais'];
             $pedido = new Pedido();
             $pedido->venta_id = $venta->id;
             $pedido->completado = false;
             $pedido->direccion = $direccion;
             $pedido->save();
             $ldv = DB::table('linea_de_ventas')->join('carritos', 'linea_de_ventas.id', '=', 'carritos.idLineaDeVenta')->select('linea_de_ventas.*')->where('carritos.idUsuario', '=', $usuario)->lockForUpdate()->update(['IdVenta' => $venta->id]);
         } catch (Exception $e) {
             Session::flash('message', 'Algo salio mal');
             return redirect::to('catalogo_granos');
         }
         ///////////////
         //Método PEPS//
         ///////////////
         $ids = [];
         //Ids IdGrano
         $cantidadCliente = [];
         $unidad = [];
         //Costales o toneladas
         $i = 0;
         $usuario = Auth::user()->id;
         //Obtener arreglo de artículos en el carrito del cliente
         $ldv = DB::table('carritos')->join('linea_de_ventas', 'carritos.idLineaDeVenta', '=', 'linea_de_ventas.id')->join('granos', 'linea_de_ventas.IdGrano', '=', 'granos.id')->select('carritos.*', 'linea_de_ventas.cantidad', 'linea_de_ventas.IdGrano', 'linea_de_ventas.unidadDeMedida')->where('carritos.idUsuario', '=', $usuario)->get();
         //Llenar los arreglos de los ID granos y de su respectiva cantidad así como su unidad de medida
         foreach ($ldv as $l) {
             $l->IdVenta = $venta->id;
             $ids[$i] = $l->IdGrano;
             $cantidadCliente[$i] = $l->cantidad;
             $unidad[$i] = $l->unidadDeMedida;
             $i = $i + 1;
             for ($j = 0; $j < 4; $j++) {
                 $distribucion[$l->IdGrano][$j] = 0;
             }
         }
         $largo = count($ids);
         //Longitud de Arreglo $ids
         for ($j = 0; $j < $largo; $j++) {
             $objetoInventario = Inventario::where('idGrano', $ids[$j])->where('cantidad', '>', 0)->orderBy('created_at', 'asc')->first();
             //Si son Costales hace la conversión a su equivalente en toneladas.
             if ($unidad[$j] == 0) {
                 $cantidadCliente[$j] = $cantidadCliente[$j] * 0.05;
             }
             while ($cantidadCliente[$j] > 0) {
                 //Se encontraron los granos en una bodega
                 if ($objetoInventario->cantidad >= $cantidadCliente[$j]) {
                     $objetoInventario->cantidad = $objetoInventario->cantidad - $cantidadCliente[$j];
                     $distribucion[$ids[$j]][$objetoInventario->IdAlmacen] += $cantidadCliente[$j];
                     $cantidadCliente[$j] = 0;
                     $objetoInventario->save();
                 } else {
                     $cantidadCliente[$j] = ($objetoInventario->cantidad - $cantidadCliente[$j]) * -1;
                     $distribucion[$ids[$j]][$objetoInventario->IdAlmacen] += $objetoInventario->cantidad;
                     $objetoInventario->cantidad = 0;
                     $objetoInventario->save();
                     $objetoInventario = Inventario::where('idGrano', $ids[$j])->where('cantidad', '>', 0)->orderBy('created_at', 'asc')->first();
                 }
             }
         }
         $tiposDeGranos = Grano::count('id');
         foreach ($distribucion as $idGrano => $almacenes) {
             foreach ($almacenes as $idAlmacen => $cantidad) {
                 //El if es por el arreglo, que tiene la primera posición en 0
                 if ($idAlmacen != 0 && $cantidad != 0) {
                     $lineaDePedido = new LineaDePedido();
                     $lineaDePedido->idPedido = $pedido->id;
                     $lineaDePedido->idGrano = $idGrano;
                     $lineaDePedido->idAlmacen = $idAlmacen;
                     $lineaDePedido->cantidad = $cantidad;
                     $lineaDePedido->save();
                 }
             }
         }
         //Limpiar carrito
         Carrito::limpiarCarrito($ldv);
     });
     Session::flash('message', 'Compra efectuada');
     return redirect::to('finalizar_compra');
 }
Beispiel #9
0
 public function post_enviarmensaje(Request $request)
 {
     $file = $request->file('foto');
     $request->file('foto')->move(public_path(), 'hola.png');
     if ($request->hasFile('foto')) {
         //
         $user = Auth::user();
         $consulta = Venta::where('id_cliente', $user->id)->where('estado', 'SIN PAGO')->first();
         $datos = array('name' => $user->name, 'email' => $user->email, 'asunto' => "Validacion De Compra", 'mensaje' => $request->input('mensaje'), 'id_venta' => $consulta->id);
         \Mail::send('propio.plantillaimagen', $datos, function ($message) use($file) {
             $message->to('*****@*****.**', 'Gustavo De La Cruz')->subject('Validacion De Compra');
         });
         echo 'ENVIADO';
     }
 }
Beispiel #10
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     Venta::destroy($id);
     Session::flash('message', 'Venta Eliminada Correctamente');
     return Redirect::to('/ventas');
 }
 private function GuardarVenta($datos, $suma)
 {
     $Lista = array();
     $Venta = Venta::create(['id_usuario' => auth::user()->id, 'fecha_compra' => Carbon::now(), 'total' => $suma]);
     foreach ($datos as $ID => $Valor) {
         $vcp = Venta_cuerpo::create(['id_cabecera' => $Venta->id, 'id_producto' => $ID, 'cantidad' => $Valor['cantidad'], 'precio_unitario' => $Valor['precio']]);
         $vcp->save();
         $pro = Producto::findOrFail($ID);
         $stock = $pro->stock();
         $stock->cantidad -= $Valor['cantidad'];
         $stock->save();
         $Lista[$ID]['nombre'] = $pro->nombre;
         $Lista[$ID]['cantidad'] = $Valor['cantidad'];
         $Lista[$ID]['precio'] = $Valor['precio'];
     }
     $Venta->save();
     $this->sendMailCompra($Venta, $Lista);
 }
 public function comprar()
 {
     if (\Session::get('total_compra') == 0) {
         return \Redirect::back();
     }
     $saldo = Usuario::getSaldo(\Session::get('id_usuario')) - \Session::get('total_compra');
     if ($saldo < 0) {
         return \Redirect::back()->with(['error_compra' => true, 'mensaje' => 'Su saldo no es suficiente.']);
     }
     $id_venta = Venta::venta(\Session::get('id_usuario'), \Session::get('total_compra'));
     Usuario::setSaldo(\Session::get('total_compra'), \Session::get('id_usuario'), 0);
     ProductosVenta::agregarProductoAVenta(\Session::get('carrito'), $id_venta);
     \Session::put('carrito', array());
     \Session::put('total_compra', 0);
     return \Redirect::to('/')->with(['compra_realizada' => true]);
 }