Ejemplo n.º 1
0
        public JsonResult GuardarDetalle(DetalleFacturaModel ingreso)
        {
            List <bool> ingresado = new List <bool>();

            ingresado.Add(this.facturaBDD.IngresarDetalle(ingreso));
            return(Json(ingresado));
        }
Ejemplo n.º 2
0
        public static List <FacturaModel> ListaFacturaModel(List <FacturaDTO> unaLista)
        {
            /*Este metodo convierte una lista de FacturaDTO en FacturaModel*/

            //Creamos la lista resultado
            List <FacturaModel> resultado = new List <FacturaModel>();

            //Para cada FacturaDTO
            foreach (FacturaDTO unaFactura in unaLista)
            {
                //Creamos una FacturaModel y le cargamos los datos
                FacturaModel miFactura = new FacturaModel()
                {
                    NumeroFactura = unaFactura.numeroFactura,
                    NumeroCliente = unaFactura.NumeroCliente,
                    Fecha         = unaFactura.Fecha,
                    Total         = unaFactura.Total,
                    NickUsuario   = unaFactura.NickUsuario,
                    //Mostramos a la hora del detalle o del listado el nombre del cliente
                    NombreCliente = NombreCliente(unaFactura.NumeroCliente),
                    ListaDetalle  = new List <DetalleFacturaModel>()
                };

                //Ahora le cargamos sus detalles correspondientes
                foreach (DetalleFacturaDTO d in unaFactura.ListaDetalle)
                {
                    //Creamos un detalleModel
                    DetalleFacturaModel unDetalle = new DetalleFacturaModel()
                    {
                        Cantidad   = d.Cantidad,
                        IdProducto = d.IdProducto,
                        //mostramos a la hora del detalle la descripcion del producto
                        NombreMarca = NombreMarcaProducto(d.IdProducto),
                        SubTotal    = d.SubTotal
                    };

                    //Agregamos el detalle a la factura
                    miFactura.ListaDetalle.Add(unDetalle);
                }

                //Agregamos la factura a la lista resultado
                resultado.Add(miFactura);
            }

            //Retornamos la lista resultado
            return(resultado);
        }
Ejemplo n.º 3
0
        /*
         * Estas herramientas seran funciones que controlen datos que la logica no puede controlar
         * Por ejemplo, sessiones, devuelve modelos, Convierte de DTO a MODEL, etc...
         */

        /* ******************************************************
        *            SECCION HERRAMIENTAS DE FACTURA
        * ******************************************************/
        public static FacturaModel ConvertirAFacturaModel(FacturaDTO miFactura)
        {
            //Cargamos nombre y marca del producto y el nombre del cliente
            FacturaModel unaFacturaModel = new FacturaModel()
            {
                Fecha         = miFactura.Fecha,
                NickUsuario   = miFactura.NickUsuario,
                Total         = miFactura.Total,
                NumeroCliente = miFactura.NumeroCliente,
                NumeroFactura = miFactura.numeroFactura,
                NombreCliente = NombreCliente(miFactura.NumeroCliente),
                ListaDetalle  = new List <DetalleFacturaModel>()
            };

            //Creamos la lista de detalles vacia
            List <DetalleFacturaModel> lista = new List <DetalleFacturaModel>();

            //Convertimos cada detalle DTO en detalle model agregandole Marca y nombreCliente para que se vea bien en la vista detalles
            foreach (DetalleFacturaDTO f in miFactura.ListaDetalle)
            {
                //Creamos el detalle model
                DetalleFacturaModel unDetalle = new DetalleFacturaModel()
                {
                    Cantidad   = f.Cantidad,
                    IdProducto = f.IdProducto,
                    SubTotal   = f.SubTotal,
                    //Cargamos nombre y marca para que se muestre en la factura
                    NombreMarca = NombreMarcaProducto(f.IdProducto)
                };
                //Agregamos el detalle a la lista de detalles
                lista.Add(unDetalle);
            }

            //Agregamos la lista a la factura
            unaFacturaModel.ListaDetalle = lista;

            //Retornamos la Factura
            return(unaFacturaModel);
        }
Ejemplo n.º 4
0
        public List <DetalleFacturaModel> ListarDetalle(int facturaId)
        {
            List <DetalleFacturaModel> listaDetalleResultado = new List <DetalleFacturaModel>();

            string sentenciaSql = "SELECT DetalleFacturaID, Cantidad, Concepto, Precio " +
                                  "FROM DetalleFactura " +
                                  $"WHERE FacturaID = '{facturaId}'";

            DataTable tablaDatos = this.conexion.ComandoConsulta(sentenciaSql);

            for (int i = 0; i < tablaDatos.Rows.Count; i++)
            {
                DetalleFacturaModel detalleResultado = new DetalleFacturaModel();
                detalleResultado.DetalleFacturaID = tablaDatos.Rows[i].Field <int>("DetalleFacturaID");
                detalleResultado.Cantidad         = tablaDatos.Rows[i].Field <int>("Cantidad");
                detalleResultado.Concepto         = tablaDatos.Rows[i].Field <string>("Concepto");
                detalleResultado.Precio           = tablaDatos.Rows[i].Field <decimal>("Precio");

                listaDetalleResultado.Add(detalleResultado);
            }

            return(listaDetalleResultado);
        }
Ejemplo n.º 5
0
        public bool IngresarDetalle(DetalleFacturaModel detalle)
        {
            bool ingresado = false;
            int  resultado = 0;

            string sentenciaSql = "INSERT INTO DetalleFactura (Cantidad,Concepto,Precio,FacturaID) " +
                                  "VALUES (@Cantidad,@Concepto,@Precio,@FacturaID)";

            SqlCommand sentenciaSQL = new SqlCommand(sentenciaSql);

            sentenciaSQL.Parameters.AddWithValue("@Cantidad", detalle.Cantidad);
            sentenciaSQL.Parameters.AddWithValue("@Concepto", detalle.Concepto);
            sentenciaSQL.Parameters.AddWithValue("@Precio", detalle.Precio);
            sentenciaSQL.Parameters.AddWithValue("@FacturaID", detalle.FacturaID);

            resultado = this.conexion.ComandoModificacion(sentenciaSQL);

            if (resultado > 0)
            {
                ingresado = true;
            }

            return(ingresado);
        }
        public ActionResult CrearFactura(FacturaModel nuevaFactura)
        {
            //Controlamos que el usuario este logueado, en este caso no importa si es admin o no
            if (Session["Logueado"] != null)
            {
                if (ModelState.IsValid)
                {
                    //Nos anticipamos a cualquier error inesperado que pueda ocurrir en base usando try
                    try
                    {
                        //Creamos una instancia de la logica de productos
                        LogicaProducto logProductos = new LogicaProducto();

                        //Busco el producto ingresado en mi base de datos
                        ProductoDTO productoActual = logProductos.BuscarProducto(nuevaFactura.IdProducto);
                        //Sabemos que el producto no viene null porque el id es seleccionado de una lista. NO es ingresado por el usuario

                        //Creamos el detalle y le cargamos los datos
                        DetalleFacturaModel nuevoDetalle = new DetalleFacturaModel()
                        {
                            IdProducto = productoActual.Id,
                            Cantidad   = nuevaFactura.Cantidad,
                            SubTotal   = productoActual.Precio * nuevaFactura.Cantidad
                        };

                        //Creamos una factura para asignarle lo que esta en session
                        FacturaModel unaFactura = new FacturaModel();
                        unaFactura = (FacturaModel)Session["nuevaFactura"];

                        //Vemos si la lista de productos de la factura esta creada, sino la creamos y agregamos nuestro detalle(Porque si es null y tratamos de agregarle algo va a explotar)
                        if (unaFactura.ListaDetalle == null)
                        {
                            //creamos la lista
                            unaFactura.ListaDetalle = new List <DetalleFacturaModel>();
                            //Se lo pasamos a nuestra factura
                            unaFactura.ListaDetalle.Add(nuevoDetalle);
                        }
                        else
                        {
                            //Si ya tiene algun item agregamos normalmente
                            unaFactura.ListaDetalle.Add(nuevoDetalle);
                        }

                        //Actualizamos el gastototal, La funcion calcularGasto no esta en la capa logica porque usaremos un DetalleFacturaModel y la logica no tiene acceso...
                        unaFactura.Total = CalcularGasto(unaFactura.ListaDetalle);

                        //Guardamos los datos en la session
                        Session["nuevaFactura"] = unaFactura;

                        //Retornamos la vista:
                        return(View(unaFactura));
                    }
                    catch
                    {
                        //Redirigimos a la vista de error...
                        return(View("Error"));
                    }
                }
                else //Si el modelo no es valido
                {
                    //Devolvemos la vista con los errores correspondientes
                    return(View(nuevaFactura));
                }
            }
            else//Si no esta logueado
            {
                //Redirigimos a la vista de LOGIN para que ingrese
                return(RedirectToAction("Login", "Ingreso"));
            }
        }