private void MapearArticulosEnvases(Envase entidad) { var drArticulosEnvase = dao.EjecutarConsulta("select * from vacio_art where codigo='" + entidad.Codigo + "'"); var listaArticulosEnvase = new List <ArticuloEnvase>(); while (drArticulosEnvase.Read()) { var unidades = drArticulosEnvase["unidades"].ToString().Trim(); var codigoArt = drArticulosEnvase["articulo"].ToString().Trim(); var valor = drArticulosEnvase["valor"].ToString().Trim(); var cargaporfrac = drArticulosEnvase["cargaporfrac"].ToString().Trim(); var codigoEnvase = drArticulosEnvase["codigo"].ToString().Trim(); var artEnv = new ArticuloEnvase(); artEnv.Articulo = this.BuscarEntidadPorCodigo <Articulo>(codigoArt); artEnv.Cantidad = unidades == "" ? 0 : Int32.Parse(unidades); artEnv.PrecioUnitario = valor == "" ? 0 : Decimal.Parse(valor); artEnv.Fraccion = cargaporfrac.Contains("T") ? true : false; artEnv.CodigoEnvase = codigoEnvase; listaArticulosEnvase.Add(artEnv); } listaArticulosEnvase.ForEach(c => { if (entidad.Articulos.Any(articulo => articulo.CodigoEnvase == c.CodigoEnvase && articulo.Articulo.Codigo == c.Articulo.Codigo)) //existe y actualizo las props { entidad.Articulos.FirstOrDefault(art => art.CodigoEnvase == c.CodigoEnvase && art.Articulo.Codigo == c.Articulo.Codigo).Cantidad = c.Cantidad; entidad.Articulos.FirstOrDefault(art => art.CodigoEnvase == c.CodigoEnvase && art.Articulo.Codigo == c.Articulo.Codigo).Fraccion = c.Fraccion; entidad.Articulos.FirstOrDefault(art => art.CodigoEnvase == c.CodigoEnvase && art.Articulo.Codigo == c.Articulo.Codigo).PrecioUnitario = c.PrecioUnitario; } else { entidad.Articulos.Add(c); } }); List <ArticuloEnvase> articulosBorrados = new List <ArticuloEnvase>(); entidad.Articulos.ToList().ForEach(art => { if (!listaArticulosEnvase.Any(a => a.CodigoEnvase == art.CodigoEnvase && a.Articulo.Codigo == art.Articulo.Codigo)) { articulosBorrados.Add(art); } }); articulosBorrados.ForEach(artb => entidad.Articulos.Remove(artb)); drArticulosEnvase.Close(); drArticulosEnvase.Dispose(); //dao.Desconectar(); }
public PresentadorArticuloEnvase(ArticuloEnvase DTO) : base(DTO) { this.SetearPresentadores(); }