public JsonResult GuardarDetalle(DetalleFacturaModel ingreso) { List <bool> ingresado = new List <bool>(); ingresado.Add(this.facturaBDD.IngresarDetalle(ingreso)); return(Json(ingresado)); }
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); }
/* * 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); }
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); }
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")); } }