Exemple #1
0
        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));
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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));
        }