Пример #1
0
        public static ProductoInfo ObtenerProducto(int pedidoID, int productoID)
        {
            var          productoPL = new ProductoPL();
            ProductoInfo producto   = productoPL.ObtenerPorPedidoID(pedidoID, productoID);

            return(producto);
        }
        /// <summary>
        /// Obtiene los productos
        /// </summary>
        private void ObtenerProductos()
        {
            try
            {
                var productoPl = new ProductoPL();
                IList <ProductoInfo> productos = productoPl.ObtenerPorEstados(EstatusEnum.Activo);

                IList <ProductoInfo> productosFiltrados = null;

                //Se filtran productos para las subfamilias especificadas en el requerimiento Administrar Contrato
                if (productos != null)
                {
                    productosFiltrados = productos.Where(productoInfoT => productoInfoT.FamiliaId == FamiliasEnum.MateriaPrimas.GetHashCode() || productoInfoT.SubfamiliaId == (int)SubFamiliasEnum.Pacas).ToList();
                }
                //

                if (productosFiltrados != null && productosFiltrados.Any())
                {
                    AgregarElementoInicialProducto(productosFiltrados);
                    Contexto.ListaProductos = productosFiltrados;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.AdministrarContrato_MensajeErrorProductos, MessageBoxButton.OK, MessageImage.Error);
            }
        }
 /// <summary>
 /// Agrega un producto al grid principal
 /// </summary>
 private void AgregarProducto()
 {
     //Falta try catch
     try
     {
         var random       = new Random();
         var productoPl   = new ProductoPL();
         var productoInfo = new ProductoInfo()
         {
             ProductoId = Convert.ToInt32(skAyudaProducto.Clave)
         };
         productoInfo = productoPl.ObtenerPorID(productoInfo);
         var premezclaDetalleInfo = new PremezclaDetalleInfo()
         {
             PremezclaDetalleID = random.Next(999999999),
             Producto           = productoInfo,
             Porcentaje         = Convert.ToDecimal(TxtPorcentajeAjuste.Value.ToString()),
             UsuarioCreacionId  = usuario
         };
         listaPremezclaDetalle.Add(premezclaDetalleInfo);
         GridPremezclaDetalle.ItemsSource = null;
         GridPremezclaDetalle.ItemsSource = listaPremezclaDetalle;
         skAyudaProducto.LimpiarCampos();
         TxtPorcentajeAjuste.Value = 0;
         skAyudaProducto.AsignarFoco();
     }
     catch (Exception exg)
     {
         Logger.Error(exg);
     }
 }
Пример #4
0
        private void CargarAyudaProductos()
        {
            var productoInfo = new ProductoInfo
            {
                ProductoId = 0,
                Activo     = EstatusEnum.Activo
            };
            ProductoPL AyudaPL = new ProductoPL();

            skAyudaProductos = new SKAyuda <ProductoInfo>(200, false, productoInfo
                                                          , "PropiedadProductoID"
                                                          , "PropiedadDescripcionMuestreoTamanoFibra",
                                                          "", false, 80, 9, true)
            {
                AyudaPL = new ProductoPL(),
                MensajeClaveInexistente = Properties.Resources.RegistrarProgramacionFletesInterna_AyudaProductoInvalido,
                MensajeBusquedaCerrar   = Properties.Resources.RegistrarProgramacionFletesInterna_AyudaProductoSalirSinSeleccionar,
                MensajeBusqueda         = Properties.Resources.Proveedor_Busqueda,
                MensajeAgregar          = Properties.Resources.RegistrarProgramacionFletesInterna_AyudaProductoSeleccionar,
                TituloEtiqueta          = Properties.Resources.RegistrarProgramacionFletesInterna_AyudaLeyendaProducto,
                TituloPantalla          = Properties.Resources.RegistrarProgramacionFletesInterna_AyudaProductoTitulo,
            };
            skAyudaProductos.MetodoPorId            = "ObtenerPorID";
            skAyudaProductos.MetodoPaginadoBusqueda = "ObtenerPorPagina";
            skAyudaProductos.ObtenerDatos          += ObtenerDatosProducto;
            SplAyudaProducto.Children.Clear();
            SplAyudaProducto.Children.Add(skAyudaProductos);
        }
        public static EntradaProductoInfo ConsultarEntradaProducto(int folio)
        {
            try
            {
                var entradaProductoPl = new EntradaProductoPL();
                var productoPl        = new ProductoPL();

                var seguridad      = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                var organizacionId = 0;

                if (seguridad != null)
                {
                    organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                }

                var entradaProducto = entradaProductoPl.ObtenerEntradaProductoPorFolio(folio, organizacionId);
                if (entradaProducto != null)
                {
                    var productoForraje = productoPl.ObtenerProductoForraje(entradaProducto.Producto);
                    if (productoForraje != null)
                    {
                        entradaProducto.Producto.Forraje = true;
                    }
                }

                return(entradaProducto);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new SystemException(ex.Message);
            }
        }
        /// <summary>
        /// Obtiene la existencia de productos.
        /// </summary>
        /// <param name="productoId"></param>
        /// <returns></returns>
        private decimal ObtenerExistencia(int productoId)
        {
            decimal existencia = decimal.Zero;

            if (productoId > 0)
            {
                var productos = new List <ProductoInfo>
                {
                    new ProductoInfo
                    {
                        ProductoId = productoId
                    }
                };
                IList <AlmacenInventarioInfo> almacenInventario = new ProductoPL().ObtenerExistencia(almacen.AlmacenID,
                                                                                                     productos);
                if (almacenInventario != null)
                {
                    var almacenInventarioInfo = almacenInventario.FirstOrDefault();
                    if (almacenInventarioInfo != null)
                    {
                        existencia = almacenInventarioInfo.Cantidad;
                    }
                }
            }
            return(existencia);
        }
Пример #7
0
        public static RegistroVigilanciaInfo ObtenerTicket(int ticket)
        {
            RegistroVigilanciaInfo registroVigilancia = null;
            var registroVigilanciaPL = new RegistroVigilanciaPL();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    registroVigilancia = new RegistroVigilanciaInfo {
                        FolioTurno = ticket, Organizacion = new OrganizacionInfo {
                            OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID
                        }
                    };
                    registroVigilancia = registroVigilanciaPL.ObtenerRegistroVigilanciaPorFolioTurnoActivoInactivo(registroVigilancia);

                    if (registroVigilancia != null)
                    {
                        bool tieneFechaSalida = (registroVigilancia.FechaSalida != new DateTime(1900, 01, 01));

                        var entradaProductoPl = new EntradaProductoPL();
                        //valida que el folio ingresado del registro de vigilancia sea de un producto "MicroIngrediente"
                        EntradaProductoInfo entradaProducto = entradaProductoPl.ObtenerEntradaProductoPorRegistroVigilanciaID(registroVigilancia.RegistroVigilanciaId, registroVigilancia.Organizacion.OrganizacionID);
                        //
                        if (entradaProducto == null)
                        {
                            var productoPl = new ProductoPL();
                            //Valida que el registro de vigilancia sea de un producto forraje configurado en la TB ParametroGeneral
                            var producto = productoPl.ObtenerProductoForraje(registroVigilancia.Producto);
                            if (producto != null)//si es forraje:
                            {
                                registroVigilancia = null;
                            }
                            //
                        }
                        else
                        {
                            registroVigilancia = null;
                        }

                        if (tieneFechaSalida)
                        {
                            return(registroVigilancia);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(registroVigilancia);
        }
Пример #8
0
        public static List <ProductoInfo> ObtenerProductosProveedor(int proveedorId)
        {
            var listaProductos = new List <ProductoInfo>();

            var contratoPL = new ContratoPL();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    List <ContratoInfo> listaContratos = contratoPL.ObtenerContratosPorProveedorId(proveedorId,
                                                                                                   seguridad.Usuario.Organizacion.OrganizacionID);

                    if (listaContratos != null)
                    {
                        listaContratos =
                            listaContratos.Where(
                                registro => registro.Producto.Familia.FamiliaID == (int)FamiliasEnum.MateriaPrimas)
                            .ToList();

                        if (listaContratos.Count > 0)
                        {
                            var productoPl = new ProductoPL();
                            var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                            listaContratos = (from contrato in listaContratos
                                              where
                                              !(from productos in listaProductosInvalidos select productos.ProductoId).ToList()
                                              .Contains(contrato.Producto.ProductoId)
                                              select contrato).ToList();

                            if (listaContratos.Count > 0)
                            {
                                if (listaContratos.Select(contrato => contrato.Producto).Any())
                                {
                                    listaProductos.AddRange(listaContratos.Select(contrato => contrato.Producto));
                                }
                                else
                                {
                                    listaProductos = null;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaProductos);
        }
Пример #9
0
        public static List <EntradaProductoInfo> ObtenerEntradaProductosPendiente(int folio)
        {
            List <EntradaProductoInfo> listaEntradaProductoPendiente = null;

            try
            {
                var entradaProductoPl = new EntradaProductoPL();
                var seguridad         = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                    var entrada        = new EntradaProductoInfo {
                        Organizacion = new OrganizacionInfo {
                            OrganizacionID = organizacionId
                        }, Estatus = new EstatusInfo {
                            EstatusId = (int)Estatus.PendienteAutorizar
                        }
                    };
                    listaEntradaProductoPendiente =
                        entradaProductoPl.ObtenerEntradaProductosTodosPorEstatusIdAyudaForraje(entrada, folio);

                    if (folio > 0 && listaEntradaProductoPendiente != null)
                    {
                        //Filtra todos los folios que contengan el numero de folio capturado
                        listaEntradaProductoPendiente =
                            listaEntradaProductoPendiente.Where(
                                registro =>
                                registro.Folio.ToString(CultureInfo.InvariantCulture)
                                .Contains(folio.ToString(CultureInfo.InvariantCulture))).ToList();
                    }

                    if (listaEntradaProductoPendiente != null)
                    {
                        var productoPl = new ProductoPL();
                        var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                        listaEntradaProductoPendiente = (from contrato in listaEntradaProductoPendiente
                                                         where
                                                         !(from productos in listaProductosInvalidos select productos.ProductoId).ToList()
                                                         .Contains(contrato.Producto.ProductoId)
                                                         select contrato).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaEntradaProductoPendiente);
        }
Пример #10
0
        public static PedidoDetalleInfo ObtenerProgramacionPedidoDetalle(int folioDetallePedido, int folioPedido)
        {
            var seguridad      = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            int organizacionId = 0;
            var pedidosPl      = new PedidosPL();

            try
            {
                if (seguridad != null)
                {
                    organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                }

                List <PedidoInfo> listaPedidos = pedidosPl.ObtenerPedidosProgramadosYParciales(new PedidoInfo
                {
                    FolioPedido  = folioPedido, // 0 Regresa todos los folios.
                    Organizacion = new OrganizacionInfo {
                        OrganizacionID = organizacionId
                    },
                    Activo = EstatusEnum.Activo
                });

                PedidoDetalleInfo pedidoDetalleInfo = null;

                if (listaPedidos != null)
                {
                    PedidoInfo pedido = listaPedidos.First();
                    foreach (PedidoDetalleInfo pedidoDetalle in pedido.DetallePedido)
                    {
                        if (pedidoDetalle.PedidoDetalleId == folioDetallePedido)
                        {
                            var productoPl      = new ProductoPL();
                            var productoForraje = productoPl.ObtenerProductoForraje(pedidoDetalle.Producto);
                            if (productoForraje != null)
                            {
                                pedidoDetalle.Producto.Forraje = true;
                            }
                            pedidoDetalleInfo = pedidoDetalle;
                            break;
                        }
                    }
                }

                return(pedidoDetalleInfo);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
 public static List <FiltroProductoProduccionMolino> ObtenerValoresProduccionMolino(ProductoInfo productoInfo)
 {
     try
     {
         var productoPL = new ProductoPL();
         List <FiltroProductoProduccionMolino> valoresProduccion = productoPL.ObtenerValoresProduccionMolino(productoInfo);
         return(valoresProduccion);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw;
     }
 }
Пример #12
0
        public static List <ContratoInfo> ObtenerProveedorContratos(int proveedorId, int productoId)
        {
            List <ContratoInfo> listaContratos = null;

            var contratoPL = new ContratoPL();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    listaContratos = contratoPL.ObtenerContratosPorProveedorId(proveedorId, seguridad.Usuario.Organizacion.OrganizacionID);
                    if (listaContratos != null)
                    {
                        var productoPl = new ProductoPL();
                        var listaProductosInvalidos = productoPl.ObtenerProductosValidosForraje();

                        listaContratos = (from contrato in listaContratos
                                          where !(from productos in listaProductosInvalidos select productos.ProductoId).ToList().Contains(contrato.Producto.ProductoId)
                                          select contrato).ToList();

                        if (listaContratos.Count > 0)
                        {
                            listaContratos =
                                listaContratos.Where(
                                    registro =>
                                    registro.Producto.ProductoId == productoId).ToList();
                            //Tipos de contrato Normal,Terceros, Transito
                            listaContratos =
                                listaContratos.Where(
                                    registro =>
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.BodegaNormal ||
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.BodegaTercero ||
                                    registro.TipoContrato.TipoContratoId == (int)TipoContratoEnum.EnTransito).ToList();
                        }
                        else
                        {
                            listaContratos = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(listaContratos);
        }
Пример #13
0
        public static PedidoDetalleInfo ObtenerProgramacionPedidoDetalleTicket(int folioDetallePedido, int ticket)
        {
            try
            {
                PedidoDetalleInfo pedidoDetalleInfo = null;

                var pedidoDetallePl = new PedidoDetallePL();
                var pedidoDetalle   = pedidoDetallePl.ObtenerDetallePedidoPorId(folioDetallePedido);

                if (pedidoDetalle.ProgramacionMateriaPrima != null)
                {
                    foreach (var programacion in pedidoDetalle.ProgramacionMateriaPrima)
                    {
                        if (programacion.PesajeMateriaPrima != null)
                        {
                            foreach (
                                var pesajeMateriaPrima in
                                programacion.PesajeMateriaPrima.Where(
                                    pesajeMateriaPrima => pesajeMateriaPrima.Ticket == ticket))
                            {
                                var listapesajeTicket       = new List <PesajeMateriaPrimaInfo>();
                                var listaProgramacionTicket = new List <ProgramacionMateriaPrimaInfo>();
                                listapesajeTicket.Add(pesajeMateriaPrima);
                                programacion.PesajeMateriaPrima = listapesajeTicket;

                                listaProgramacionTicket.Add(programacion);
                                pedidoDetalle.ProgramacionMateriaPrima = listaProgramacionTicket;

                                var productoPl      = new ProductoPL();
                                var productoForraje = productoPl.ObtenerProductoForraje(pedidoDetalle.Producto);
                                if (productoForraje != null)
                                {
                                    pedidoDetalle.Producto.Forraje = true;
                                }
                                pedidoDetalleInfo = pedidoDetalle;
                                break;
                            }
                        }
                    }
                }

                return(pedidoDetalleInfo);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Пример #14
0
        /// <summary>
        /// Guarda un Producto
        /// </summary>
        private void Guardar()
        {
            try
            {
                bool guardar = ValidaCamposGuardar();
                if (guardar)
                {
                    int productoId = Contexto.ProductoId;
                    var productoPL = new ProductoPL();
                    productoPL.Guardar(Contexto);
                    SkMessageBox.Show(this, Properties.Resources.GuardadoConExito, MessageBoxButton.OK,
                                      MessageImage.Correct);
                    if (productoId != 0)
                    {
                        confirmaSalir = false;
                        Close();
                    }
                    else
                    {
                        //InicializaContexto(true);
                        Contexto.ProductoId          = 0;
                        Contexto.ManejaLote          = false;
                        Contexto.SubfamiliaId        = 0;
                        Contexto.UnidadId            = 0;
                        Contexto.ProductoDescripcion = string.Empty;

                        cboFamilia.SelectedIndex    = 0;
                        cboSubFamilia.SelectedIndex = 0;
                        cboUnidad.SelectedIndex     = 0;
                        chkManejaLote.IsChecked     = false;
                        txtDescripcion.Focus();

                        //Contexto = new ProductoInfo { UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado() };
                        BloquearDesbloquearModificacion(true);
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                SkMessageBox.Show(this, Properties.Resources.Producto_ErrorGuardar, MessageBoxButton.OK,
                                  MessageImage.Error);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(this, Properties.Resources.Producto_ErrorGuardar, MessageBoxButton.OK,
                                  MessageImage.Error);
            }
        }
 private void ConsultarProductos()
 {
     try
     {
         var productoPL = new ProductoPL();
         listaProductos = productoPL.ObtenerPorEstados(EstatusEnum.Activo);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecibirProductoAlmacen_MsgProductos,
                           MessageBoxButton.OK,
                           MessageImage.Warning);
     }
 }
        public static string ActualizaFechaDescargaEnPatio(EntradaProductoInfo entrada)
        {
            try
            {
                bool guardarFecha = true;

                var entradaProductoPl = new EntradaProductoPL();
                var productoPl        = new ProductoPL();
                var productoForraje   = productoPl.ObtenerProductoForraje(entrada.Producto);
                if (productoForraje != null)
                {
                    var entradaproducto = entradaProductoPl.ObtenerEntradaProductoPorId(entrada.EntradaProductoId);
                    if (entradaproducto != null)
                    {
                        if (entradaproducto.ProductoDetalle != null)
                        {
                            foreach (var entradaDetalle in entradaproducto.ProductoDetalle)
                            {
                                if (entradaDetalle.ProductoMuestras != null)
                                {
                                    if (entradaDetalle.ProductoMuestras.Count < 30)
                                    {
                                        guardarFecha = false;
                                    }
                                }
                            }
                        }
                    }
                }

                if (guardarFecha)
                {
                    return(entradaProductoPl.ActualizaFechaDescargaPiezasEnPatio(entrada));
                }
                else
                {
                    return("ErrorForraje");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new SystemException(ex.Message);
            }
        }
        public static List <ProductoInfo> ObtenerProductos(ProductoInfo productoInfo)
        {
            try
            {
                var productoPL = new ProductoPL();
                productoInfo.SubfamiliaId = SubFamiliasEnum.Forrajes.GetHashCode();
                List <ProductoInfo> listaProductos = productoPL.ObtenerPorSubFamilia(productoInfo);

                List <ProductoInfo> productosValidos =
                    listaProductos.Where(pro => productosForraje.Contains(pro.ProductoId)).ToList();
                return(productosValidos);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Пример #18
0
 /// <summary>
 /// Obtiene una Lista de Productos
 /// </summary>
 /// <param name="inicio"></param>
 /// <param name="limite"></param>
 private void ObtenerProductos(int inicio, int limite)
 {
     try
     {
         var          productoPL = new ProductoPL();
         ProductoInfo filtros    = ObtenerFiltros();
         if (ucPaginacion.ContextoAnterior != null)
         {
             bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior);
             if (!contextosIguales)
             {
                 ucPaginacion.Inicio = 1;
                 inicio = 1;
             }
         }
         var pagina = new PaginacionInfo {
             Inicio = inicio, Limite = limite
         };
         ResultadoInfo <ProductoInfo> resultadoInfo = productoPL.ObtenerPorPagina(pagina, filtros);
         if (resultadoInfo != null && resultadoInfo.Lista != null &&
             resultadoInfo.Lista.Count > 0)
         {
             gridDatos.ItemsSource       = resultadoInfo.Lista;
             ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros;
         }
         else
         {
             ucPaginacion.TotalRegistros = 0;
             gridDatos.ItemsSource       = new List <ProductoInfo>();
         }
     }
     catch (ExcepcionGenerica)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.Producto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.Producto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
 }
        public string ValidarCodigoProducto(ProcesarArchivoInfo renglonArchivo)
        {
            var resultado = GetLocalResourceObject("OK").ToString();
            var productos = new ProductoPL();
            var prod      = new ProductoInfo();

            prod.ProductoId = int.Parse(renglonArchivo.Codigo);
            prod            = productos.ObtenerPorID(prod);

            if (prod == null)
            {
                resultado = GetLocalResourceObject("producto").ToString();
            }
            else
            {
                renglonArchivo.ProductoID = prod.ProductoId;
            }

            return(resultado);
        }
Пример #20
0
        public static IList <ProductoInfo> ObtenerProductos(string productoDescripcion, int pedidoID)
        {
            var pagina = new PaginacionInfo
            {
                Inicio = 1,
                Limite = 100000
            };
            var producto = new ProductoInfo
            {
                ProductoDescripcion = productoDescripcion
            };
            var productoPL = new ProductoPL();
            ResultadoInfo <ProductoInfo> productos = productoPL.ObtenerPorPedidoPaginado(pagina, producto, pedidoID);
            var resultado = new List <ProductoInfo>();

            if (productos != null)
            {
                resultado.AddRange(productos.Lista);
            }
            return(resultado);
        }
Пример #21
0
        public static EntradaProductoInfo ObtenerFolio(int folio)
        {
            var entradaProductoPL = new EntradaProductoPL();
            EntradaProductoInfo entradaProducto = null;

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    entradaProducto = entradaProductoPL.ObtenerEntradaProductoPorFolio(folio,
                                                                                       seguridad.Usuario.Organizacion.OrganizacionID);
                    if (entradaProducto != null)
                    {
                        var productoPl = new ProductoPL();
                        var producto   = productoPl.ObtenerProductoForraje(entradaProducto.Producto);
                        if (producto != null)
                        {
                            entradaProducto = null;
                        }
                        else
                        {
                            if (entradaProducto.Activo != EstatusEnum.Activo)
                            {
                                entradaProducto = null;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new SystemException(ex.Message);
            }

            return(entradaProducto);
        }
Пример #22
0
        private void ObtenerDatosProducto(string filtro)
        {
            try
            {
                var          productoPl = new ProductoPL();
                ProductoInfo producto   = productoPl.ObtenerPorID(new ProductoInfo()
                {
                    ProductoId = Convert.ToInt32(filtro)
                });

                if (producto != null)
                {
                    if (producto.Familia.FamiliaID == (int)FamiliasEnum.MaterialEmpaque ||
                        producto.Familia.FamiliaID == (int)FamiliasEnum.Medicamento)
                    {
                        txtUnidad.Text       = producto.DescripcionUnidad;
                        skAyudaProducto.Info = new ProductoInfo()
                        {
                            FiltroFamilia = (int)FamiliasEnum.Medicamento + "|" + (int)FamiliasEnum.MaterialEmpaque,
                            Activo        = EstatusEnum.Activo
                        };
                    }
                    else
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.RecepcionProducto_ProductoFamiliaInvalida,
                                          MessageBoxButton.OK,
                                          MessageImage.Stop);
                        LimpiarTodoProductos();
                        skAyudaProducto.AsignarFoco();
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #23
0
        /// <summary>
        /// Valida que los campos requeridos contengan valor
        /// </summary>
        /// <returns></returns>
        private bool ValidaCamposGuardar()
        {
            var guardar = true;
            var mensaje = string.Empty;


            if (Contexto.ProductoId == 0)
            {
                guardar = false;
                txtProductoId.Focus();
                mensaje = Properties.Resources.ProductoEdicion_CodigoMayorCero;
            }
            else
            if (string.IsNullOrWhiteSpace(Contexto.ProductoDescripcion))
            {
                guardar = false;
                txtDescripcion.Focus();
                mensaje = Properties.Resources.ProductoEdicion_Descripcion_Requerida;
            }
            else
            {
                int familiaId = Extensor.ValorEntero(Convert.ToString(cboFamilia.SelectedValue));
                if (familiaId == 0)
                {
                    guardar = false;
                    cboFamilia.Focus();
                    mensaje = Properties.Resources.ProductoEdicion_Familia_Requerida;
                }
                else
                {
                    int subFamiliaId = Extensor.ValorEntero(Convert.ToString(cboSubFamilia.SelectedValue));
                    if (subFamiliaId == 0)
                    {
                        guardar = false;
                        cboSubFamilia.Focus();
                        mensaje = Properties.Resources.ProductoEdicion_SubFamilia_Requeria;
                    }
                    else
                    {
                        int unidadId = Extensor.ValorEntero(Convert.ToString(cboUnidad.SelectedValue));
                        if (unidadId == 0)
                        {
                            guardar = false;
                            cboUnidad.Focus();
                            mensaje = Properties.Resources.ProductoEdicion_Unidad_Requerida;
                        }
                    }
                }
            }
            if (guardar)
            {
                var          productoPL = new ProductoPL();
                ProductoInfo producto   = productoPL.ObtenerPorDescripcion(Contexto.ProductoDescripcion);
                if (producto != null && Contexto.UsuarioModificacionID == null)
                {
                    mensaje = string.Format(Properties.Resources.ProductoEdicion_Descripcion_Existente,
                                            producto.ProductoId);
                    txtDescripcion.Focus();
                    guardar = false;
                }
                if (producto == null)
                {
                    producto = productoPL.ObtenerPorIDSinActivo(Contexto);
                }
                if (producto != null && Contexto.UsuarioModificacionID == null)
                {
                    mensaje = string.Format(Properties.Resources.ProductoEdicion_Codigo_Existente,
                                            producto.Descripcion);
                    txtProductoId.Focus();
                    guardar = false;
                }

                producto = productoPL.ObtenerPorMaterialSAP(Contexto.MaterialSAP);
                if (producto != null && Contexto.ProductoId != producto.ProductoId)
                {
                    mensaje = string.Format(Properties.Resources.ProductoEdicion_Material_Existente,
                                            producto.ProductoId);
                    txtMaterialSAP.Focus();
                    guardar = false;
                }
            }
            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(guardar);
        }
Пример #24
0
        public static ResultadoValidacion GuardarEntradaProducto(EntradaProductoInfo entradaProducto, int Bandera)
        {
            try
            {
                var productoPl        = new ProductoPL();
                var resultado         = new ResultadoValidacion();
                var boletaRecepcionPl = new BoletaRecepcionForrajePL();
                var seguridad         = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (seguridad != null)
                {
                    var entradaProductoPl = new EntradaProductoPL();
                    if (entradaProducto.Justificacion == null)
                    {
                        entradaProducto.Organizacion = new OrganizacionInfo {
                            OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID
                        };

                        entradaProducto.Producto = productoPl.ObtenerPorID(entradaProducto.Producto);
                        var tmpRegistro = new RegistroVigilanciaInfo
                        {
                            Producto     = entradaProducto.Producto,
                            Organizacion = entradaProducto.Organizacion
                        };

                        foreach (EntradaProductoDetalleInfo tmpDetalle in entradaProducto.ProductoDetalle)
                        {
                            var enumIndicador = (IndicadoresEnum)tmpDetalle.Indicador.IndicadorId;

                            foreach (var tmpIndicador in tmpDetalle.ProductoMuestras.Where(mue => mue.EsOrigen == EsOrigenEnum.Destino))
                            {
                                RegistroVigilanciaInfo registroVigelancia = boletaRecepcionPl.ObtenerRangos(tmpRegistro, enumIndicador);
                                if (registroVigelancia == null)
                                {
                                    resultado.Resultado = false;
                                    resultado.Mensaje   = boletaRecepcionPl.ObtenerMensajeRango() + " " + entradaProducto.Producto.ProductoDescripcion;

                                    return(resultado);
                                }
                                if (registroVigelancia.porcentajePromedioMin > tmpIndicador.Porcentaje || registroVigelancia.porcentajePromedioMax < tmpIndicador.Porcentaje)
                                {
                                    Bandera = 2;
                                }
                            }
                        }

                        //Bandera = 1.- Aprobada:2.- Pendiente por Autorizar;3.- Autorizado:
                        entradaProducto.Estatus = new EstatusInfo();

                        if (Bandera == 1)
                        {
                            entradaProducto.Estatus.EstatusId = (int)Estatus.Aprobado;
                        }
                        else
                        {
                            entradaProducto.Estatus.EstatusId = (int)Estatus.PendienteAutorizar;
                        }
                        entradaProducto.PesoBonificacion = 0;
                        var registroVigilanciaPl = new RegistroVigilanciaPL();
                        var registroVigilancia   = new RegistroVigilanciaInfo
                        {
                            FolioTurno   = entradaProducto.RegistroVigilancia.FolioTurno,
                            Organizacion =
                                new OrganizacionInfo {
                                OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID
                            }
                        };
                        entradaProducto.RegistroVigilancia = registroVigilanciaPl.ObtenerRegistroVigilanciaPorFolioTurno(registroVigilancia);
                        entradaProducto.UsuarioCreacionID  = seguridad.Usuario.UsuarioID;
                        entradaProducto.OperadorAnalista   = new OperadorInfo {
                            OperadorID = seguridad.Usuario.Operador.OperadorID
                        };
                        entradaProducto = entradaProductoPl.GuardarEntradaProducto(entradaProducto, (int)TipoFolio.EntradaProducto);

                        resultado.Resultado = true;
                        resultado.Control   = entradaProducto;
                        return(resultado);
                    }
                    entradaProducto.Organizacion = new OrganizacionInfo {
                        OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID
                    };
                    entradaProducto.Estatus = new EstatusInfo {
                        EstatusId = (int)Estatus.Autorizado
                    };
                    entradaProducto.UsuarioModificacionID = seguridad.Usuario.UsuarioID;
                    entradaProducto.OperadorAutoriza      = new OperadorInfo {
                        OperadorID = seguridad.Usuario.Operador.OperadorID
                    };
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(null);
        }
Пример #25
0
        /// <summary>
        /// Cargar los datos del folio para la cancelacion
        /// </summary>
        private void CargarDatosCancelacion()
        {
            try
            {
                var organizacionPL = new OrganizacionPL();
                var tipoAlmacenPL  = new TipoAlmacenPL();
                var productoPL     = new ProductoPL();


                Contexto.OrganizacionOrigen  = organizacionPL.ObtenerPorID(Contexto.AlmacenOrigen.Organizacion.OrganizacionID);
                Contexto.OrganizacionDestino =
                    organizacionPL.ObtenerPorID(Contexto.AlmacenDestino.Organizacion.OrganizacionID);
                Contexto.TipoAlmacenOrigen  = tipoAlmacenPL.ObtenerPorID(Contexto.AlmacenOrigen.TipoAlmacen.TipoAlmacenID);
                Contexto.TipoAlmacenDestino = tipoAlmacenPL.ObtenerPorID(Contexto.AlmacenDestino.TipoAlmacen.TipoAlmacenID);
                Contexto.ProductoOrigen     = productoPL.ObtenerPorID(Contexto.ProductoOrigen);
                Contexto.ProductoDestino    = Contexto.ProductoOrigen;

                if (tiposAlmacenMedicamentos.Contains(Contexto.TipoAlmacenOrigen.TipoAlmacenID))
                {
                    var almacenInventarioPL = new AlmacenInventarioPL();
                    List <AlmacenInventarioInfo> inventarios =
                        almacenInventarioPL.ObtienePorAlmacenIdLlenaProductoInfo(Contexto.AlmacenOrigen);

                    Contexto.AlmacenInventarioOrigen =
                        inventarios.FirstOrDefault(
                            inven => inven.Producto.ProductoId == Contexto.ProductoOrigen.ProductoId);
                }

                stpControles.IsEnabled     = false;
                btnGuardar.IsEnabled       = false;
                btnCancelarFolio.IsEnabled = true;
                MostrarControlesCantidades();
                if (stpControlesMEDOrigen.IsVisible)
                {
                    var almacenInventarioPL = new AlmacenInventarioPL();
                    List <AlmacenInventarioInfo> inventariosDestino =
                        almacenInventarioPL.ObtienePorAlmacenIdLlenaProductoInfo(Contexto.AlmacenDestino);

                    Contexto.AlmacenInventarioDestino =
                        inventariosDestino.FirstOrDefault(
                            inven => inven.Producto.ProductoId == Contexto.ProductoOrigen.ProductoId);
                    if (Contexto.AlmacenInventarioDestino != null)
                    {
                        if (Contexto.CantidadTraspasarDestino > Contexto.AlmacenInventarioDestino.Cantidad)
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.TraspasoMPPAMED_CancelacionSinInventario, MessageBoxButton.OK,
                                              MessageImage.Warning);
                            btnCancelarFolio.IsEnabled = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.TraspasoMPPAMED_ErrorCargarDatosCancelacion, MessageBoxButton.OK,
                                  MessageImage.Error);
            }
        }
Пример #26
0
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            ProductoTiempoEstandarInfo productoTiempo   = new ProductoTiempoEstandarInfo();
            ProductoTiempoEstandarPL   productoTiempoPl = new ProductoTiempoEstandarPL();
            ProductoPL   productoPl   = new ProductoPL();
            ProductoInfo productoInfo = new ProductoInfo();

            try
            {
                if (ValidarCamposObligatorios())
                {
                    productoTiempo.Tiempo              = string.Format("{0}:{1}:00", cmbHora.Text.ToString().PadLeft(2, '0'), cmbMinutos.Text.ToString().PadLeft(2, '0'));
                    productoTiempo.Estatus             = (EstatusEnum)cmbEstatus.SelectedItem;
                    productoTiempo.UsuarioCreacionID   = AuxConfiguracion.ObtenerUsuarioLogueado();
                    productoTiempo.Producto.ProductoId = int.Parse(skAyudaProductos.Clave);
                    productoInfo = productoPl.ObtenerPorID(productoTiempo.Producto);

                    if (productoInfo != null && productoInfo.ProductoId != 0)
                    {
                        if (esEdicion)
                        {
                            productoTiempo.ProductoTiempoEstandarID = int.Parse(txtID.Text);
                            if (productoTiempoPl.ActualizarProductoTiempoEstandar(productoTiempo))
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                  Properties.Resources.AdministracionProductoTiempoEstandar_EdicionMsgGuardar, MessageBoxButton.OK,
                                                  MessageImage.Correct);
                                confirmacion = false;
                                this.Close();
                            }
                        }
                        else
                        {
                            var productoTiempoExistenteInfo = productoTiempoPl.ObtenerPorProductoID(productoTiempo);
                            if (productoTiempoExistenteInfo == null || productoTiempoExistenteInfo.ProductoTiempoEstandarID == 0)
                            {
                                if (productoTiempoPl.GuardarProductoTiempoEstandar(productoTiempo))
                                {
                                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                      Properties.Resources.AdministracionProductoTiempoEstandar_EdicionMsgGuardar, MessageBoxButton.OK,
                                                      MessageImage.Correct);
                                    confirmacion = false;
                                    this.Close();
                                }
                                else
                                {
                                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                      Properties.Resources.AdministracionProductoTiempoEstandar_EdicionMsgErrorGuardar, MessageBoxButton.OK,
                                                      MessageImage.Error);
                                }
                            }
                            else
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                  string.Format(Properties.Resources.AdministracionProductoTiempoEstandar_EdicionMsgProductoTiempoEstandarYaRegistrado,
                                                                productoTiempoExistenteInfo.Producto.Descripcion,
                                                                productoTiempoExistenteInfo.ProductoTiempoEstandarID), MessageBoxButton.OK,
                                                  MessageImage.Error);


                                cmbHora.SelectedIndex    = 0;
                                cmbMinutos.SelectedIndex = 0;
                                skAyudaProductos.LimpiarCampos();
                                skAyudaProductos.AsignarFoco();
                            }
                        }
                    }
                    else
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.AdministracionProductoTiempoEstandar_EdicionProductoNoValido, MessageBoxButton.OK,
                                          MessageImage.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  ex.Message.ToString(), MessageBoxButton.OK,
                                  MessageImage.Error);
            }
        }
Пример #27
0
        // Obtiene los datos del producto seleccionado
        private void ObtenerDatosProducto(string filtro)
        {
            try
            {
                var          productoPl     = new ProductoPL();
                ProductoInfo productoActual = skAyudaProducto.Info;
                productoActual = productoPl.ObtenerPorIDSinActivo(productoActual);

                if (productoActual != null)
                {
                    if (productoActual.Familia.FamiliaID == (int)FamiliasEnum.MateriaPrimas ||
                        productoActual.Familia.FamiliaID == (int)FamiliasEnum.Premezclas)
                    {
                        if (productoActual.Activo == EstatusEnum.Activo)
                        {
                            skAyudaProducto.Info          = productoActual;
                            skAyudaProducto.Info.Familias = new List <FamiliaInfo>()
                            {
                                new FamiliaInfo()
                                {
                                    FamiliaID = (int)FamiliasEnum.MateriaPrimas
                                },
                                new FamiliaInfo()
                                {
                                    FamiliaID = (int)FamiliasEnum.Premezclas
                                }
                            };
                        }
                        else
                        {
                            skAyudaProducto.LimpiarCampos();
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.MonitoreoSilos_ProductoInactivo,
                                              MessageBoxButton.OK,
                                              MessageImage.Stop);
                            skAyudaProducto.Info = new ProductoInfo()
                            {
                                ProductoId = 0,
                                Familia    = new FamiliaInfo()
                                {
                                    FamiliaID = (int)FamiliasEnum.MateriaPrimas
                                },
                                Familias = new List <FamiliaInfo>()
                                {
                                    new FamiliaInfo()
                                    {
                                        FamiliaID = (int)FamiliasEnum.MateriaPrimas
                                    },
                                    new FamiliaInfo()
                                    {
                                        FamiliaID = (int)FamiliasEnum.Premezclas
                                    }
                                },
                                Activo = EstatusEnum.Activo
                            };
                        }
                    }
                    else
                    {
                        skAyudaProducto.LimpiarCampos();
                        skAyudaProducto.Info = new ProductoInfo()
                        {
                            ProductoId = 0,
                            Familia    = new FamiliaInfo()
                            {
                                FamiliaID = (int)FamiliasEnum.MateriaPrimas
                            },
                            Familias = new List <FamiliaInfo>()
                            {
                                new FamiliaInfo()
                                {
                                    FamiliaID = (int)FamiliasEnum.MateriaPrimas
                                },
                                new FamiliaInfo()
                                {
                                    FamiliaID = (int)FamiliasEnum.Premezclas
                                }
                            },
                            Activo = EstatusEnum.Activo
                        };
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.MonitoreoSilos_MsgProductoInvalido,
                                          MessageBoxButton.OK,
                                          MessageImage.Stop);
                    }
                }
                else
                {
                    skAyudaProducto.LimpiarCampos();
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MonitoreoSilos_MsgProductoInvalido,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    skAyudaProducto.Info = new ProductoInfo()
                    {
                        ProductoId = 0,
                        Familia    = new FamiliaInfo()
                        {
                            FamiliaID = (int)FamiliasEnum.MateriaPrimas
                        },
                        Familias = new List <FamiliaInfo>()
                        {
                            new FamiliaInfo()
                            {
                                FamiliaID = (int)FamiliasEnum.MateriaPrimas
                            },
                            new FamiliaInfo()
                            {
                                FamiliaID = (int)FamiliasEnum.Premezclas
                            }
                        },
                        Activo = EstatusEnum.Activo
                    };
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #28
0
        private void CargarArchivoImportar()
        {
            try
            {
                var almacenPL               = new AlmacenPL();
                var almacenInventarioPL     = new AlmacenInventarioPL();
                var almacenInventarioLotePL = new AlmacenInventarioLotePL();
                var productoPL              = new ProductoPL();

                List <AlmacenInfo> almacenesOrganizacion =
                    almacenPL.ObtenerAlmacenesPorOrganizacion(Contexto.Organizacion.OrganizacionID);

                List <ProductoInfo> productos = productoPL.ObtenerPorEstados(EstatusEnum.Activo);


                if (almacenesOrganizacion == null)
                {
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.CargaMPPA_SinAlmacenes, MessageBoxButton.OK,
                                      MessageImage.Warning);
                    return;
                }

                IList <AlmacenInventarioInfo> almacenesInventario =
                    almacenInventarioPL.ObtenerPorAlmacenXML(almacenesOrganizacion) ?? new List <AlmacenInventarioInfo>();

                IList <AlmacenInventarioLoteInfo> almacenesInventarioLote =
                    almacenInventarioLotePL.ObtenerLotesPorAlmacenInventarioXML(almacenesInventario.ToList()) ??
                    new List <AlmacenInventarioLoteInfo>();


                var archivoCarga = new FileInfo(Contexto.Ruta);
                // Open and read the XlSX file.
                using (var excel = new ExcelPackage(archivoCarga))
                {
                    ExcelWorkbook libro = excel.Workbook;
                    if (libro == null || libro.Worksheets.Count == 0)
                    {
                        SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_ArchivoSinDatos, MessageBoxButton.OK, MessageImage.Warning);
                        return;
                    }
                    // Get the first worksheet
                    ExcelWorksheet hojaExcel = libro.Worksheets.First();

                    if (!hojaExcel.Name.ToUpper().Equals(Properties.Resources.CargaMPPA_NombreHoja.ToUpper(), StringComparison.InvariantCultureIgnoreCase))
                    {
                        SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_NombreIncorrectoHoja, MessageBoxButton.OK, MessageImage.Warning);
                        return;
                    }

                    if (!ValidarEncabezado(hojaExcel))
                    {
                        return;
                    }
                    for (int renglon = RenglonEncabezados + 1; renglon <= hojaExcel.Dimension.End.Row; renglon++)
                    {
                        var carga = new CargaMPPAModel();

                        object columnaVacia = hojaExcel.Cells[renglon, 1].Value;
                        if (columnaVacia == null || string.IsNullOrWhiteSpace(columnaVacia.ToString()))
                        {
                            continue;
                        }

                        #region AsignarPropiedades
                        var propiedades = carga.GetType().GetProperties();
                        foreach (var propInfo in propiedades)
                        {
                            dynamic customAttributes = carga.GetType().GetProperty(propInfo.Name).GetCustomAttributes(typeof(AtributoCargaMPPA), true);
                            if (customAttributes.Length > 0)
                            {
                                for (var indexAtributos = 0; indexAtributos < customAttributes.Length; indexAtributos++)
                                {
                                    var      atributos    = (AtributoCargaMPPA)customAttributes[indexAtributos];
                                    int      celdaArchivo = atributos.Celda;
                                    TypeCode tipoDato     = atributos.TipoDato;
                                    bool     aceptaVacio  = atributos.AceptaVacio;

                                    object dato = hojaExcel.Cells[renglon, celdaArchivo].Value;

                                    switch (tipoDato)
                                    {
                                    case TypeCode.Int32:
                                        int valorInt;
                                        int.TryParse(dato == null ? "" : dato.ToString(), out valorInt);
                                        if (valorInt == 0)
                                        {
                                            if (aceptaVacio)
                                            {
                                                propInfo.SetValue(carga, 0, null);
                                            }
                                            else
                                            {
                                                carga.MensajeAlerta =
                                                    string.Format(Properties.Resources.CargaMPPA_ErrorColumna,
                                                                  renglon, propInfo.Name);
                                                break;
                                            }
                                        }
                                        propInfo.SetValue(carga, valorInt, null);

                                        break;

                                    case TypeCode.Decimal:
                                        decimal valorDecimal;
                                        decimal.TryParse(dato == null ? "" : dato.ToString(), out valorDecimal);
                                        if (valorDecimal == 0)
                                        {
                                            if (aceptaVacio)
                                            {
                                                propInfo.SetValue(carga, 0, null);
                                            }
                                            else
                                            {
                                                carga.MensajeAlerta =
                                                    string.Format(Properties.Resources.CargaMPPA_ErrorColumna,
                                                                  renglon, propInfo.Name);
                                                break;
                                            }
                                        }
                                        propInfo.SetValue(carga, valorDecimal, null);

                                        break;

                                    case TypeCode.DateTime:
                                        DateTime valorFecha;
                                        DateTime.TryParse(dato == null ? "" : dato.ToString(), out valorFecha);
                                        if (valorFecha == DateTime.MinValue)
                                        {
                                            if (aceptaVacio)
                                            {
                                                propInfo.SetValue(carga, DateTime.MinValue, null);
                                            }
                                            else
                                            {
                                                carga.MensajeAlerta =
                                                    string.Format(Properties.Resources.CargaMPPA_ErrorColumna,
                                                                  renglon, propInfo.Name);
                                                break;
                                            }
                                        }
                                        propInfo.SetValue(carga, valorFecha, null);

                                        break;

                                    default:
                                        propInfo.SetValue(carga, null, null);
                                        break;
                                    }
                                }
                            }
                        }
                        #endregion AsignarPropiedades
                        #region Validaciones

                        AlmacenInfo           almacenCarga      = almacenesOrganizacion.FirstOrDefault(alm => alm.AlmacenID == carga.AlmacenID);
                        ProductoInfo          producto          = productos.FirstOrDefault(pro => pro.ProductoId == carga.ProductoID);
                        AlmacenInventarioInfo almacenInventario =
                            almacenesInventario.FirstOrDefault(
                                ai => ai.AlmacenID == carga.AlmacenID && ai.ProductoID == carga.ProductoID);

                        if (almacenCarga == null)
                        {
                            carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_NoExisteAlmacen,
                                                                carga.AlmacenID, renglon);
                        }
                        carga.Almacen = almacenCarga;
                        if (producto == null)
                        {
                            carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_NoExisteProducto,
                                                                carga.ProductoID, renglon);
                        }
                        carga.Producto = producto;
                        if (almacenInventario != null && almacenInventario.Cantidad > 0)
                        {
                            carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteInventario,
                                                                carga.ProductoID, carga.AlmacenID, renglon);
                        }
                        carga.AlmacenInventario = almacenInventario;

                        if (carga.AlmacenInventario != null && carga.AlmacenInventario.AlmacenInventarioID > 0)
                        {
                            List <AlmacenInventarioLoteInfo> lotesInventario =
                                almacenesInventarioLote.Where(
                                    ail =>
                                    ail.AlmacenInventario.AlmacenInventarioID ==
                                    carga.AlmacenInventario.AlmacenInventarioID).ToList();

                            if (lotesInventario.Any())
                            {
                                AlmacenInventarioLoteInfo lote =
                                    lotesInventario.FirstOrDefault(ail => ail.Lote == carga.Lote);

                                if (lote != null)
                                {
                                    carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteLote,
                                                                        carga.Lote, carga.AlmacenID, renglon);
                                }
                            }
                        }
                        CargaMPPAModel cargaRepetida =
                            listaInventariosValidos.FirstOrDefault(car => car.ProductoID == carga.ProductoID &&
                                                                   car.AlmacenID == carga.AlmacenID &&
                                                                   car.Lote == carga.Lote);

                        if (cargaRepetida != null)
                        {
                            carga.MensajeAlerta = string.Format(Properties.Resources.CargaMPPA_ExisteRenglonRepetido, renglon);
                        }


                        if (!string.IsNullOrWhiteSpace(carga.MensajeAlerta))
                        {
                            listaInventariosInvalidos.Add(carga);
                        }
                        else
                        {
                            listaInventariosValidos.Add(carga);
                        }
                        #endregion Validaciones
                    }
                }
                if (listaInventariosInvalidos.Any())
                {
                    gridDatos.ItemsSource = listaInventariosInvalidos;
                    btnGuardar.IsEnabled  = false;
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      string.Format(Properties.Resources.CargaMPPA_RegistroProblemas, listaInventariosInvalidos.Count),
                                      MessageBoxButton.OK,
                                      MessageImage.Warning);
                    return;
                }

                if (listaInventariosValidos.Any())
                {
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      string.Format(Properties.Resources.CargaMPPA_RegistroSinProblemas, listaInventariosValidos.Count),
                                      MessageBoxButton.OK,
                                      MessageImage.Correct);
                }

                btnGuardar.IsEnabled = true;
            }
            catch (Exception ex)
            {
                SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CargaMPPA_ErrorValidar, MessageBoxButton.OK, MessageImage.Error);
                Logger.Error(ex);
            }
        }
Пример #29
0
        private void BtnAgregar_OnClick(object sender, RoutedEventArgs e)
        {
            if (skAyudaProveedor.Clave != "")
            {
                if (txtFactura.Text != "")
                {
                    if (skAyudaProducto.Clave != "")
                    {
                        if (txtCantidad.Value != null)
                        {
                            if (txtCantidad.Value != 0)
                            {
                                if (txtImporte.Value != null)
                                {
                                    if (txtImporte.Value != 0)
                                    {
                                        if (renglon < 0)
                                        {
                                            skAyudaProveedor.IsEnabled = false;
                                            txtFactura.IsEnabled       = false;
                                            contador++;

                                            var recepcionProductoDetalle = new RecepcionProductoDetalleInfo
                                            {
                                                Producto =
                                                    new ProductoInfo()
                                                {
                                                    ProductoId = int.Parse(skAyudaProducto.Clave)
                                                }
                                            };
                                            var productoPl = new ProductoPL();
                                            recepcionProductoDetalle.Producto =
                                                productoPl.ObtenerPorID(recepcionProductoDetalle.Producto);
                                            recepcionProductoDetalle.Cantidad = (decimal)txtCantidad.Value;

                                            decimal importe = ObtenerImporte();
                                            if (importe == 0)
                                            {
                                                MensajeTipoCambio();
                                                return;
                                            }

                                            recepcionProductoDetalle.Importe        = importe;
                                            recepcionProductoDetalle.PrecioPromedio = recepcionProductoDetalle.Importe /
                                                                                      recepcionProductoDetalle.Cantidad;
                                            recepcionProducto.ListaRecepcionProductoDetalle.Add(recepcionProductoDetalle);
                                            dgRecepcion.ItemsSource = new List <RecepcionProductoDetalleInfo>();
                                            dgRecepcion.ItemsSource = recepcionProducto.ListaRecepcionProductoDetalle;
                                            btnGuardar.IsEnabled    = true;
                                        }
                                        else
                                        {
                                            var recepcionProductoDetalle = new RecepcionProductoDetalleInfo
                                            {
                                                Producto =
                                                    new ProductoInfo()
                                                {
                                                    ProductoId = int.Parse(skAyudaProducto.Clave)
                                                }
                                            };
                                            var productoPl = new ProductoPL();
                                            recepcionProductoDetalle.Producto =
                                                productoPl.ObtenerPorID(recepcionProductoDetalle.Producto);
                                            recepcionProductoDetalle.Cantidad = (decimal)txtCantidad.Value;

                                            decimal importe = ObtenerImporte();
                                            if (importe == 0)
                                            {
                                                MensajeTipoCambio();
                                                return;
                                            }
                                            recepcionProductoDetalle.Importe        = importe;
                                            recepcionProductoDetalle.PrecioPromedio = recepcionProductoDetalle.Importe /
                                                                                      recepcionProductoDetalle.Cantidad;
                                            recepcionProducto.ListaRecepcionProductoDetalle[renglon] =
                                                recepcionProductoDetalle;
                                            dgRecepcion.ItemsSource = new List <RecepcionProductoDetalleInfo>();
                                            dgRecepcion.ItemsSource = recepcionProducto.ListaRecepcionProductoDetalle;
                                        }
                                        chkDll.IsEnabled = false;
                                        LimpiarCampos();
                                    }
                                    else
                                    {
                                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                          Properties.Resources.RecepcionProducto_IngreseImporte,
                                                          MessageBoxButton.OK,
                                                          MessageImage.Stop);
                                        txtImporte.Focus();
                                    }
                                }
                                else
                                {
                                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                      Properties.Resources.RecepcionProducto_IngreseImporte,
                                                      MessageBoxButton.OK,
                                                      MessageImage.Stop);
                                    txtImporte.Focus();
                                }
                            }
                            else
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                  Properties.Resources.RecepcionProducto_IngreseCantidad,
                                                  MessageBoxButton.OK,
                                                  MessageImage.Stop);
                                txtCantidad.Focus();
                            }
                        }
                        else
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.RecepcionProducto_IngreseCantidad,
                                              MessageBoxButton.OK,
                                              MessageImage.Stop);
                            txtCantidad.Focus();
                        }
                    }
                    else
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.RecepcionProducto_IngreseProducto,
                                          MessageBoxButton.OK,
                                          MessageImage.Stop);
                        skAyudaProducto.AsignarFoco();
                    }
                }
                else
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.RecepcionProducto_IngresarFactura,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    txtFactura.Focus();
                }
            }
            else
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.RecepcionProducto_IngresarProveedor,
                                  MessageBoxButton.OK,
                                  MessageImage.Stop);
                skAyudaProveedor.AsignarFoco();
            }
        }