public Producto ProductoMayoristaGrabar(Producto datoGraba) { ProductoRepository repository = new ProductoRepository(); RepositoryGenerico <ProductoStock> repProdStock = new RepositoryGenerico <ProductoStock>(); Producto dato = repository.ObtenerProductoMayorista(datoGraba.Codigo); if (dato == null) { dato = new Producto(); } dato.Vigente = true; dato.Codigo = datoGraba.Codigo; dato.Descripcion = datoGraba.Descripcion; dato.Peso = datoGraba.Peso; dato.TipoPrecio = datoGraba.TipoPrecio; dato.PrecioUnitario = datoGraba.PrecioUnitarioFinal; dato.StockPropio = false; dato.FotoLink = datoGraba.FotoLink; repository.Actualizar(dato); dato = repository.Obtener(dato.Id); List <ProductoStock> listProdStock = this.ProductoStockListar(dato.Codigo); List <Medida> listMedidas = this.Listar <Medida>(); datoGraba.ProductoStock.ToList <ProductoStock>() .ForEach(delegate(ProductoStock item) { ProductoStock prodStock = listProdStock.Find(ps => ps.Medida.Descripcion.Equals(item.Medida.Descripcion)); if (prodStock == null) { prodStock = new ProductoStock(); prodStock.IdProducto = dato.Id; prodStock.Medida = listMedidas.Find(m => m.Descripcion.Equals(item.Medida.Descripcion)); repProdStock.Actualizar(prodStock); dato.ProductoStock.Add(prodStock); } }); repository.Actualizar(dato); return(repository.Obtener(dato.Id)); }
public void Actualizar(dtoProducto DTO, int idUser) { BLL.Mapeador.AutoMapperBLLConfiguration.Configure(); var BIZ = Mapper.Map <dtoProducto, bizProducto>(DTO); BIZ.ChangedBy = idUser; var repo = new ProductoRepository(); repo.Actualizar(BIZ); repo.Save(); }
public Producto ProductoGrabar(Producto datoGraba, string carpetaFoto) { ServicioGenerico servGenerico = new ServicioGenerico(); ProductoRepository repository = new ProductoRepository(); Producto dato; string pathOrigen = string.Empty; if (datoGraba.Id == -1) { dato = new Producto(); string codigoAutomatico = servGenerico.ParametroObtenerValor("CODIGO_AUTOMATICO"); string primerCodigo = servGenerico.ParametroObtenerValor("PRIMER_CODIGO_AUTOMATICO"); if (codigoAutomatico != null && codigoAutomatico.Equals("SI")) { Producto ultimo = repository.ObtenerUltimoProducto(); if (ultimo == null) { dato.Codigo = primerCodigo.ConvertirInt(); } else { dato.Codigo = ultimo.Codigo + 1; } } } else { dato = repository.Obtener(datoGraba.Id); if (dato == null) { throw new ApplicationException("No existe Producto"); } pathOrigen = dato.Path; } string url_host = servGenerico.ParametroObtenerValor("URL_HOST"); if (!string.IsNullOrEmpty(datoGraba.Foto)) { Producto validar = null; validar = repository.Obtener("Foto", datoGraba.Foto); if (validar != null && validar.Id != datoGraba.Id) { throw new ApplicationException("Ya existe un producto con la misma foto"); } } dato.Vigente = true; dato.Descripcion = datoGraba.Descripcion; dato.Peso = datoGraba.Peso; dato.TipoPrecio = datoGraba.TipoPrecio; if (dato.PrecioPorPeso) { dato.PrecioUnitario = 0; } else { dato.PrecioUnitario = datoGraba.PrecioUnitario; } bool cambioSubcategoria = (dato.Subcategoria != null && dato.Subcategoria.Id != datoGraba.Subcategoria.Id); dato.Subcategoria = this.ObtenerObjeto <Subcategoria>(datoGraba.Subcategoria.Id); dato.Ubicacion = datoGraba.Ubicacion; dato.Foto = datoGraba.Foto; if (string.IsNullOrEmpty(dato.FotoLink) && !string.IsNullOrEmpty(dato.Foto)) { dato.FotoLink = string.Format("{0}{1}{2}{3}", url_host, "assets/fotos", dato.Path, dato.Foto); } dato.ListaPrecio = this.ObtenerObjeto <ListaPrecio>(datoGraba.ListaPrecio.Id); //este gtupo orden no puede quedar null, para esos casos va GRUPOS_ORDEN.DEFAULT_ que es 1 ProductoGrupoOrden gpo = null; if (datoGraba.GrupoOrden.Id > 1) { gpo = this.ObtenerObjeto <ProductoGrupoOrden>(datoGraba.GrupoOrden.Id); } else { gpo = this.ObtenerObjeto <ProductoGrupoOrden>((int)GRUPOS_ORDEN.DEFAULT_); } if (gpo != null) { dato.GrupoOrden = gpo; } dato.Stock = datoGraba.Stock; dato.StockPropio = true; repository.Actualizar(dato); this.ProductoStockGrabar(datoGraba, dato.Id, cambioSubcategoria); //if (!string.IsNullOrEmpty(dato.Foto) && pathOrigen != dato.Path) //{ // string pathRoot = carpetaFoto.Substring(0, carpetaFoto.Length - 1); // string fileOrigen = string.Format("{0}{1}{2}", pathRoot, pathOrigen, dato.Foto); // string fileDestino = string.Format("{0}{1}{2}", pathRoot, dato.Path, dato.Foto); // FileHelper.CopyFile(fileOrigen.Replace(@"/", @"\"), fileDestino.Replace(@"\", @"/"), true); // FileHelper.DeleteFile(fileOrigen); // dato = repository.Obtener(dato.Id); // dato.FotoLink = string.Format("{0}{1}{2}{3}", url_host, "assets/fotos", dato.Path, dato.Foto); // repository.Actualizar(dato); //} CacheManager.RemoveToCache(gobalKeyCache); return(this.ObtenerObjeto <Producto>(dato.Id)); }