/* * GenerarEntidad es un método de ayuda, que, en base a parámetos que se envían desde el formulario, creara un usuarioEntity. * Recordemos que los método de UsuariosCatalogo utilizan un UsuariosEntity para funcionar, por eso existe este método. * nota: el poner ? al final de int, significa que ese int puede o no tener un valor. */ public DetalleNotaEntity GenerarEntidad(string id, string cantidad, string idArticulo, string idEncabezadoNota, string precioVenta) { DetalleNotaEntity detalleNota = new DetalleNotaEntity(); if (int.TryParse(id, out int nid)) { detalleNota.Id = nid; } if (int.TryParse(cantidad, out int nCantidad)) { detalleNota.Cantidad = nCantidad; } if (int.TryParse(idArticulo, out int nidArticulo)) { detalleNota.IdArticulo = nidArticulo; } if (int.TryParse(idEncabezadoNota, out int nidEncabezadoNota)) { detalleNota.IdEncabezadoNota = nidEncabezadoNota; } if (decimal.TryParse(precioVenta, out decimal dprecioVenta)) { detalleNota.PrecioVenta = dprecioVenta; } return(detalleNota); }
public List <DgvDetalleNota> ListarDgv(string id, string cantidad, string idArticulo, string idEncabezadoNota, string precioVenta) { //primero revisamos que al menos uno de todos los parámetros que podemos obtener desde el form tenga algún dato //para saber si debemos filtrar algo. if (!string.IsNullOrEmpty(id) || !string.IsNullOrEmpty(cantidad) || !string.IsNullOrEmpty(idArticulo) || !string.IsNullOrEmpty(idEncabezadoNota) || !string.IsNullOrEmpty(precioVenta)) { //si alguno tiene valor, creamos el UsuarioEntity. DetalleNotaEntity detalleNota = GenerarEntidad(id, cantidad, idArticulo, idEncabezadoNota, precioVenta); /* * recordemos que en MVC, el modelo, que es de donde devolvemos los datos, no puede interactual con la vista * que es el form. * Utilizamos una clase que tiene los mismos parámetros que la entidad de BD, que generamos desde aquí en controladores * llamado UsuariosData, que sí puede llegar a la capa de vista(el form). * nos apoyamos con una herramienta llamada automapper, que pasa los valor de un tipo de objeto A, a un tipo de objeto B. * La explicación de cómo funciona estará en la clase ArticuloMapper. * pasamos el UsuarioEntity al método listar, y mapeamos el resultado a una lista de ArticuloData. */ return(new DetallesNotaMapper().MapDgvVentas(detallesCatalogo.Listar(detalleNota))); } else { //si no se tienen datos para filtrar, obtenemos la lista de los usuarios activos. return(new DetallesNotaMapper().MapDgvVentas(detallesCatalogo.Listar())); } }
/* * Modificar recibe desde el formulario todos los datos que pide el método. * manda a actualizar un registro en BD. */ public string Modificar(string id, string cantidad, string idArticulo, string idEncabezadoNota, string precioVenta) { //generamos el usuarioEntity necesario para modificar el registro en BD. DetalleNotaEntity detalleNota = GenerarEntidad(id, cantidad, idArticulo, idEncabezadoNota, precioVenta); //Modificar devuelve un booleano, que comparamos en el if. if (detallesCatalogo.Modificar(detalleNota)) { //si todo bien, devolvemos el texto correcto return("Detalle de nota modificada correctamente."); } else { //si algo falló, devolvemos el error. return("Error al modificar detalle de nota:\n" + detallesCatalogo.Error.Message); } }
/* * El método agregar recibe desde el formulario el nombre, nombre de usuario y contraseña * y manda a guardar a BD el nuevo usuario. */ public string Agregar(string cantidad, string idArticulo, string idEncabezadoNota, string precioVenta) { //necesitamos un usuarioEntity para utilizar el método agregar, así que lo generamos. //como es agregar y el ID es autoincremental en BD, pasamos un nulo en vez de dar un ID. DetalleNotaEntity detalleNota = GenerarEntidad(null, cantidad, idArticulo, idEncabezadoNota, precioVenta); //el método agregar devuelve un booleano, que utilizamos para comparar directamente en el if. if (detallesCatalogo.Agregar(detalleNota)) { //si es true, devolvemos el mensaje de que se agregó correctamente return("Detalle de nota agregada correctamente."); } else { //si es false, devolvemos el error que se generó. //\n sirve para hacer un salto de línea. return("Error al agregar detalle de nota:\n" + detallesCatalogo.Error.Message); } }