Exemple #1
0
 /// <summary>
 /// Metodo para Crear un registro de ParametroOrganizacion
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 internal int Crear(ParametroOrganizacionInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxParametroOrganizacionDAL.ObtenerParametrosCrear(info);
         int result = Create("ParametroOrganizacion_Crear", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #2
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad ParametroOrganizacion
 /// </summary>
 /// <param name="info"></param>
 internal int Guardar(ParametroOrganizacionInfo info)
 {
     try
     {
         Logger.Info();
         var parametroOrganizacionDAL = new ParametroOrganizacionDAL();
         int result = info.ParametroOrganizacionID;
         if (info.ParametroOrganizacionID == 0)
         {
             result = parametroOrganizacionDAL.Crear(info);
         }
         else
         {
             parametroOrganizacionDAL.Actualizar(info);
         }
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #3
0
 /// <summary>
 /// Obtiene un registro de ParametroOrganizacion
 /// </summary>
 /// <param name="filtro">contenedor de los parámetros</param>
 /// <returns></returns>
 internal ParametroOrganizacionInfo ObtenerPorParametroOrganizacionID(ParametroOrganizacionInfo filtro)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxParametroOrganizacionDAL.ObtenerParametrosPorParametroOrganizacionID(filtro);
         DataSet ds = Retrieve("ParametroOrganizacion_ObtenerPorParametroOrganizacionID", parameters);
         ParametroOrganizacionInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapParametroOrganizacionDAL.ObtenerPorParametroOrganizacionID(ds);
         }
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 internal static ParametroOrganizacionInfo ObtenerPorOrganizacionIDClaveParametro(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable dt = ds.Tables[ConstantesDAL.DtDatos];
         ParametroOrganizacionInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new ParametroOrganizacionInfo
         {
             ParametroOrganizacionID = info.Field <int>("ParametroOrganizacionID"),
             Parametro =
                 new ParametroInfo
             {
                 ParametroID = info.Field <int>("ParametroID"),
                 Descripcion = info.Field <string>("Parametro")
             },
             Organizacion =
                 new OrganizacionInfo
             {
                 OrganizacionID = info.Field <int>("OrganizacionID"),
                 Descripcion = info.Field <string>("Organizacion")
             },
             Valor = info.Field <string>("Valor"),
             Activo = info.Field <bool>("Activo").BoolAEnum(),
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #5
0
        private static bool ActualizarParametroEjecucion(bool ejecutando)
        {
            var usuario = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

            if (usuario != null)
            {
                var parametroOrganizacionPL         = new ParametroOrganizacionPL();
                ParametroOrganizacionInfo parametro =
                    parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(usuario.Usuario.Organizacion.OrganizacionID,
                                                                                   ParametrosEnum.EJECORDENREP.ToString());
                if (parametro != null)
                {
                    if (parametro.Valor.Trim().Equals("1") && ejecutando)
                    {
                        return(false);
                    }
                    if (ejecutando)
                    {
                        parametro.Valor = "1";
                    }
                    else
                    {
                        parametro.Valor = "0";
                    }
                    parametro.UsuarioModificacionID = usuario.Usuario.UsuarioID;
                    parametroOrganizacionPL.Guardar(parametro);
                }
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// Obtiene el parametro de configuración del paramtro de cuenta sap en transito de la orgnaización destino
        /// </summary>
        /// <param name="organizacionDestino">Organizacón a la que se envia el alimento</param>
        /// <returns>Regresa información del parametro de "Cuenta inventario en transito" de una organizacion</returns>
        public ParametroOrganizacionInfo ObtenerParametroCuentaTransito(OrganizacionInfo organizacionOrigen)
        {
            ParametroOrganizacionInfo oParametroOrganizacion = null;

            try{
                Logger.Info();
                List <ParametroInfo> lstParametros = new ParametroBL().ObtenerTodos(EstatusEnum.Activo).ToList();
                if (lstParametros.Exists(obj => obj.Clave == ParametrosEnum.CuentaInventarioTransito.ToString()))
                {
                    oParametroOrganizacion              = new ParametroOrganizacionInfo();
                    oParametroOrganizacion.Parametro    = new ParametroInfo();
                    oParametroOrganizacion.Parametro    = lstParametros.Find(obj => obj.Clave == ParametrosEnum.CuentaInventarioTransito.ToString());
                    oParametroOrganizacion.Organizacion = organizacionOrigen;
                    oParametroOrganizacion              = new ParametroOrganizacionBL().ObtenerPorParametroOrganizacionID(oParametroOrganizacion);
                    if (oParametroOrganizacion == null)
                    {
                        oParametroOrganizacion = new ParametroOrganizacionInfo {
                            ParametroOrganizacionID = 0
                        };
                    }
                }
            } catch (Exception ex) {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(oParametroOrganizacion);
        }
Exemple #7
0
 /// <summary>
 /// Constructor para editar una entidad ParametroOrganizacion Existente
 /// </summary>
 /// <param name="parametroOrganizacionInfo"></param>
 public ParametroOrganizacionEdicion(ParametroOrganizacionInfo parametroOrganizacionInfo)
 {
     InitializeComponent();
     parametroOrganizacionInfo.UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado();
     Contexto = parametroOrganizacionInfo;
     AgregarAyudaOrganizacion();
     AgregarAyudaParametro();
     skAyudaOrganizacion.IsEnabled = false;
     skAyudaParametro.IsEnabled    = false;
 }
Exemple #8
0
        public void ObtenerParametroOrganizacionPorId()
        {
            var parametroOrganizacionPL = new ParametroOrganizacionPL();
            ParametroOrganizacionInfo parametroOrganizacion = parametroOrganizacionPL.ObtenerPorID(1);

            Assert.IsNotNull(parametroOrganizacion);
            Assert.IsNotNull(parametroOrganizacion.Organizacion);
            Assert.IsNotNull(parametroOrganizacion.Parametro);
            Assert.IsTrue(parametroOrganizacion.Organizacion.Descripcion.Length > 0);
            Assert.IsTrue(parametroOrganizacion.Parametro.Descripcion.Length > 0);
        }
Exemple #9
0
 /// <summary>
 /// Inicializa el Contexto
 /// </summary>
 private void InicializaContexto()
 {
     Contexto = new ParametroOrganizacionInfo
     {
         UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(),
         Parametro         = new ParametroInfo
         {
             TipoParametro = new TipoParametroInfo()
         },
         Organizacion = new OrganizacionInfo()
     };
 }
Exemple #10
0
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (Contexto.Organizacion == null || Contexto.Organizacion.OrganizacionID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ParametroOrganizacionEdicion_MsgOrganizacionIDRequerida;
                    skAyudaOrganizacion.Focus();
                }
                else if (Contexto.Parametro == null || Contexto.Parametro.ParametroID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ParametroOrganizacionEdicion_MsgParametroIDRequerida;
                    skAyudaParametro.Focus();
                }
                else if (string.IsNullOrWhiteSpace(Contexto.Valor))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ParametroOrganizacionEdicion_MsgValorRequerida;
                    txtValor.Focus();
                }
                else
                {
                    int parametroOrganizacionId = Contexto.ParametroOrganizacionID;

                    var parametroOrganizacionPL = new ParametroOrganizacionPL();
                    ParametroOrganizacionInfo parametroOrganizacion = parametroOrganizacionPL.ObtenerPorParametroOrganizacionID(Contexto);

                    if (parametroOrganizacion != null && (parametroOrganizacionId == 0 || parametroOrganizacionId != parametroOrganizacion.ParametroOrganizacionID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.ParametroOrganizacionEdicion_MsgDescripcionExistente, parametroOrganizacion.ParametroOrganizacionID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
Exemple #11
0
 /// <summary>
 /// Evento que se ejecuta mientras se esta cerrando la ventana
 /// </summary>
 /// <param name="e"></param>
 protected override void OnClosing(CancelEventArgs e)
 {
     if (confirmaSalir)
     {
         MessageBoxResult result = SkMessageBox.Show(this, Properties.Resources.Msg_CerrarSinGuardar, MessageBoxButton.YesNo,
                                                     MessageImage.Question);
         if (result == MessageBoxResult.Yes)
         {
             Contexto = null;
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
Exemple #12
0
        /// <summary>
        /// Valida que las cuentas contables de producto e inventario en transito esten configuradas.
        /// </summary>
        /// <returns>Regresa true si las cuentas contables son validas</returns>
        private bool ValidarCuentasContables()
        {
            this.EnvioAlimento.CostoProduto = this._envioAlimentoPL.ObtenerCostoAlmacenProducto(this.EnvioAlimento.Almacen.AlmacenID, this.EnvioAlimento.Producto.ProductoId);


            if (this.EnvioAlimento.CostoProduto == null)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgCuentaProductoConfiguracion, MessageBoxButton.OK, MessageImage.Warning);
                return(false);
            }

            if (this.EnvioAlimento.CostoProduto.Activo == EstatusEnum.Inactivo || this.EnvioAlimento.CostoProduto.CuentaSAP.Activo == EstatusEnum.Inactivo)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgCuentaProductoConfiguracion, MessageBoxButton.OK, MessageImage.Stop);
                return(false);
            }

            if (this.EnvioAlimento.CostoProduto.CuentaSAP.CuentaSAP.ToString().Length < 10)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgLongitudCuentaProducto, MessageBoxButton.OK, MessageImage.Stop);
                return(false);
            }


            ParametroOrganizacionInfo oParametro = this._envioAlimentoPL.ObtenerParametroCuentaTransito(this.EnvioAlimento.Origen);

            if (oParametro == null)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgCuentaTransitoExiste, MessageBoxButton.OK, MessageImage.Stop);
                return(false);
            }

            if (oParametro.Activo == EstatusEnum.Inactivo || oParametro.ParametroOrganizacionID == 0)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgCuentaTransitoConfiguracion, MessageBoxButton.OK, MessageImage.Stop);
                return(false);
            }

            if (oParametro.Valor.Trim().Length < 10)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.EnvioAlimento_MsgLongitudCuentaTransito, MessageBoxButton.OK, MessageImage.Stop);
                return(false);
            }

            return(true);
        }
Exemple #13
0
 /// <summary>
 /// Obtiene una entidad por organizacion y clave parametro
 /// </summary>
 /// <param name="organizacionID"></param>
 /// <param name="claveParametro"></param>
 /// <returns></returns>
 public ParametroOrganizacionInfo ObtenerPorOrganizacionIDClaveParametro(int organizacionID, string claveParametro)
 {
     try
     {
         Logger.Info();
         var parametroOrganizacionBL      = new ParametroOrganizacionBL();
         ParametroOrganizacionInfo result = parametroOrganizacionBL.ObtenerPorOrganizacionIDClaveParametro(organizacionID, claveParametro);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #14
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad ParametroOrganizacion
 /// </summary>
 /// <param name="info">Representa la entidad que se va a grabar</param>
 public int Guardar(ParametroOrganizacionInfo info)
 {
     try
     {
         Logger.Info();
         var parametroOrganizacionBL = new ParametroOrganizacionBL();
         int result = parametroOrganizacionBL.Guardar(info);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #15
0
 /// <summary>
 /// Obtiene una entidad ParametroOrganizacion por su parámetro y Organizacioón Id
 /// </summary>
 /// <param name="filtro"></param>
 /// <returns></returns>
 internal ParametroOrganizacionInfo ObtenerPorParametroOrganizacionID(ParametroOrganizacionInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametroOrganizacionDAL     = new ParametroOrganizacionDAL();
         ParametroOrganizacionInfo result = parametroOrganizacionDAL.ObtenerPorParametroOrganizacionID(filtro);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #16
0
        /// <summary>
        /// Obtiene la fecha minima en la que se podra consultar el reporte
        /// </summary>
        private void ObtenerFechaMinima()
        {
            var parametroOrganizacionPL = new ParametroOrganizacionPL();
            ParametroOrganizacionInfo parametroOrganizacion = parametroOrganizacionPL.
                                                              ObtenerPorOrganizacionIDClaveParametro(
                AuxConfiguracion.ObtenerOrganizacionUsuario(),
                ParametrosEnum.DiasAtrasReporteInventario.ToString());

            if (parametroOrganizacion != null)
            {
                invervalo   = Convert.ToInt32(parametroOrganizacion.Valor);
                fechaMinima = DateTime.Now.AddDays(invervalo * -1);
            }
            else
            {
                fechaMinima = DateTime.Now.AddDays(-90);
                invervalo   = 90;
            }
        }
Exemple #17
0
        /// <summary>
        /// Valida la obtencion de los parametros necesarios para la ejecucion
        /// </summary>
        /// <returns></returns>
        private bool ValidarParametros()
        {
            try
            {
                var dataLink = new DescargaArchivoDataLinkPL();
                var parametrosOrganizacionPl        = new ParametroOrganizacionPL();
                ParametroOrganizacionInfo parametro = parametrosOrganizacionPl.ObtenerPorOrganizacionIDClaveParametro(organizacionID,
                                                                                                                      ParametrosEnum.rutaArchivoDatalink.ToString());
                if (parametro == null)
                {
                    ClientScript.RegisterStartupScript(GetType(), "myScript", "EnviarMensajeRolUsuario();", true);
                    return(false);
                }
                rutaArchivoDataLink = parametro.Valor;
                if (!dataLink.ValidarRutaArchivo(rutaArchivoDataLink))
                {
                    ClientScript.RegisterStartupScript(GetType(), "myScript", "EnviarMensajeRuta();", true);
                    return(false);
                }
                ParametroOrganizacionInfo parametroGeneral = parametrosOrganizacionPl.ObtenerPorOrganizacionIDClaveParametro(organizacionID,
                                                                                                                             ParametrosEnum.nombreArchivoDatalink.ToString());
                if (parametroGeneral == null)
                {
                    ClientScript.RegisterStartupScript(GetType(), "myScript", "EnviarMensajeRuta();", true);
                    return(false);
                }
                nombreArchivoDataLink = parametroGeneral.Valor;

                parametro = parametrosOrganizacionPl.ObtenerPorOrganizacionIDClaveParametro(organizacionID,
                                                                                            ParametrosEnum.RutaRespaldoDL.ToString());
                if (parametro != null)
                {
                    rutaRespaldoArchivo = parametro.Valor;
                }
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
Exemple #18
0
        /// <summary>
        /// Carga el Parametro por Organizacion de los productos que aplican para capturar muestra de Humedad
        /// </summary>
        private void CargarProductosValidosHumedad()
        {
            var parametroOrganizacionPL = new ParametroOrganizacionPL();

            var parametroOrganizacionInfo = new ParametroOrganizacionInfo
            {
                Parametro = new ParametroInfo
                {
                    Clave =
                        ParametrosEnum.ProductosMuestraHumedad.
                        ToString()
                },
                Organizacion = new OrganizacionInfo
                {
                    OrganizacionID =
                        Auxiliar.AuxConfiguracion.
                        ObtenerOrganizacionUsuario()
                }
            };

            ParametroOrganizacionInfo parametro =
                parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(parametroOrganizacionInfo.Organizacion.OrganizacionID, parametroOrganizacionInfo.Parametro.Clave);

            if (parametro == null)
            {
                SkMessageBox.Show(this, Properties.Resources.CapturaHumedadBusquedaFolio_SinParametro, MessageBoxButton.OK, MessageImage.Warning);
                confirmaSalir = false;
                Close();
                return;
            }
            if (parametro.Valor.Contains('|'))
            {
                ProductosHumedad = (from tipos in parametro.Valor.Split('|')
                                    select Convert.ToInt32(tipos)).ToList();
            }
            else
            {
                int producto = Convert.ToInt32(parametro.Valor);
                ProductosHumedad.Add(producto);
            }
        }
Exemple #19
0
 /// <summary>
 /// Valida la el parametro y la configuracion del parametro de tipoCorralDestino
 /// </summary>
 /// <returns>Regresa true si el parametro esta registrado y esta configurado como activo para la organizacion del usuario logueado.</returns>
 private bool ValidarParametroCorralDestino()
 {
     try
     {
         Logger.Info();
         bool                    parametroConfigurado    = true;
         ParametroPL             parametroPl             = new ParametroPL();
         ParametroOrganizacionPL parametroOrganizacionPl = new ParametroOrganizacionPL();
         List <ParametroInfo>    parametros             = parametroPl.ObtenerTodos(EstatusEnum.Activo).ToList();
         ParametroInfo           parametroCorralDestino = null;
         if (parametros != null)
         {
             parametroCorralDestino = parametros.Where(parametro => parametro.Clave == ParametrosEnum.CORRALDESTINOORGANIZACION.ToString()).FirstOrDefault();
         }
         if (parametroCorralDestino == null)
         {
             parametroConfigurado = false;
         }
         else
         {
             ParametroOrganizacionInfo parametroValor = parametroOrganizacionPl.ObtenerPorOrganizacionIDClaveParametro(int.Parse(Application.Current.Properties["OrganizacionID"].ToString()), ParametrosEnum.CORRALDESTINOORGANIZACION.ToString());
             if (parametroValor == null || parametroValor.Activo == EstatusEnum.Inactivo)
             {
                 parametroConfigurado = false;
             }
             else
             {
                 parametroConfigurado = true;
             }
         }
         return(parametroConfigurado);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], ex.Message, MessageBoxButton.OK, MessageImage.Error);
         return(false);
     }
 }
 /// <summary>
 /// Obtiene parametros para crear
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerParametrosCrear(ParametroOrganizacionInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@ParametroID", info.Parametro.ParametroID },
             { "@OrganizacionID", info.Organizacion.OrganizacionID },
             { "@Valor", info.Valor },
             { "@Activo", info.Activo },
             { "@UsuarioCreacionID", info.UsuarioCreacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        private void dtpFechaSacrificio_LostFocus(object sender, RoutedEventArgs e)
        {
            var fechaPl                 = new FechaPL();
            var fechaServidor           = fechaPl.ObtenerFechaActual();
            int diasFacturacion         = 1;
            var parametroOrganizacionPL = new ParametroOrganizacionPL();
            ParametroOrganizacionInfo parametroOrganizacion =
                parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(organizacionId,
                                                                               ParametrosEnum.DIASFACTURACION.ToString());

            if (parametroOrganizacion != null)
            {
                int.TryParse(parametroOrganizacion.Valor, out diasFacturacion);
                if (diasFacturacion == 0)
                {
                    diasFacturacion = 1;
                }
            }

            if (dtpFechaSacrificio.SelectedDate != null)
            {
                DateTime fechaMinima = fechaServidor.FechaActual.AddDays(-diasFacturacion);
                if (dtpFechaSacrificio.SelectedDate.Value.Date < fechaMinima.Date)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      string.Format(Properties.Resources.FacturacionSacrificio_MensajeFechaMenorAyer, diasFacturacion),
                                      MessageBoxButton.OK, MessageImage.Warning);
                    dtpFechaSacrificio.SelectedDate = DateTime.Now;
                }
                if (dtpFechaSacrificio.SelectedDate.Value.Date > fechaServidor.FechaActual.Date)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.FacturacionSacrificio_MensajeFechaMayorAHoy,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    dtpFechaSacrificio.SelectedDate = DateTime.Now;
                }
            }
        }
        private void ValidarParametroHumedad()
        {
            var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            var parametroOrganizacionPL = new ParametroOrganizacionPL();

            if (seguridad != null)
            {
                ParametroOrganizacionInfo parametro =
                    parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(
                        seguridad.Usuario.Organizacion.OrganizacionID, ParametrosEnum.MuestraHumedad.ToString());
                if (parametro != null)
                {
                    int valor;
                    int.TryParse(parametro.Valor, out valor);
                    if (valor == 1)
                    {
                        aplicaCapturaHumedad  = true;
                        hfAplicaHumedad.Value = parametro.Valor;
                    }

                    ParametroOrganizacionInfo parametroProductos = parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(
                        seguridad.Usuario.Organizacion.OrganizacionID, ParametrosEnum.ProductosMuestraHumedad.ToString());
                    if (parametroProductos != null)
                    {
                        if (parametroProductos.Valor.Contains('|'))
                        {
                            ProductosHumedad = (from tipos in parametroProductos.Valor.Split('|')
                                                select Convert.ToInt32(tipos)).ToList();
                        }
                        else
                        {
                            int producto = Convert.ToInt32(parametroProductos.Valor);
                            ProductosHumedad.Add(producto);
                        }
                    }
                }
            }
        }
 internal static ParametroOrganizacionInfo ObtenerPorOrganizacionIDClaveParametro(IDataReader reader)
 {
     try
     {
         Logger.Info();
         ParametroOrganizacionInfo entidad = null;
         while (reader.Read())
         {
             entidad =
                 new ParametroOrganizacionInfo
             {
                 ParametroOrganizacionID = Convert.ToInt32(reader["ParametroOrganizacionID"]),
                 Parametro =
                     new ParametroInfo
                 {
                     ParametroID = Convert.ToInt32(reader["ParametroID"]),
                     Descripcion = Convert.ToString(reader["Parametro"])
                 },
                 Organizacion =
                     new OrganizacionInfo
                 {
                     OrganizacionID = Convert.ToInt32(reader["OrganizacionID"]),
                     Descripcion    = Convert.ToString(reader["Organizacion"])
                 },
                 Valor  = Convert.ToString(reader["Valor"]),
                 Activo = Convert.ToBoolean(reader["Activo"]).BoolAEnum(),
             };
         }
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #24
0
 /// <summary>
 /// Obtiene una entidad por organizacion y clave parametro
 /// </summary>
 /// <param name="organizacionID"></param>
 /// <param name="claveParametro"></param>
 /// <returns></returns>
 internal ParametroOrganizacionInfo ObtenerPorOrganizacionIDClaveParametro(int organizacionID, string claveParametro)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxParametroOrganizacionDAL.ObtenerParametrosPorOrganizacionIDClaveParametro(organizacionID, claveParametro);
         using (IDataReader reader = RetrieveReader("ParametroOrganizacion_ObtenerPorOrganizacionClave", parameters))
         {
             ParametroOrganizacionInfo result = null;
             if (ValidateDataReader(reader))
             {
                 result = MapParametroOrganizacionDAL.ObtenerPorOrganizacionIDClaveParametro(reader);
             }
             if (Connection.State == ConnectionState.Open)
             {
                 Connection.Close();
             }
             return(result);
         }
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #25
0
        private IList <PolizaInfo> ObtenerPoliza(List <AnimalCostoInfo> costosAnimales)
        {
            var polizasSalidaMuerte = new List <PolizaInfo>();

            var costosAgrupados =
                costosAnimales.Where(imp => imp.Importe > 0).GroupBy(costo => new { costo.CostoID, costo.AnimalID })
                .Select(animal => new
            {
                Importe = animal.Sum(imp => imp.Importe),
                animal.Key.CostoID,
                animal.Key.AnimalID,
                Arete           = animal.Select(ani => ani.Arete).FirstOrDefault(),
                FolioReferencia =
                    animal.Select(folio => folio.FolioReferencia).FirstOrDefault(),
                FechaCosto     = animal.Select(fecha => fecha.FechaCosto).FirstOrDefault(),
                OrganizacionID = animal.Select(org => org.OrganizacionID).FirstOrDefault()
            }).ToList();

            if (costosAgrupados != null && costosAgrupados.Any())
            {
                TipoPolizaInfo tipoPoliza =
                    TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaMuerte.GetHashCode());
                if (tipoPoliza == null)
                {
                    throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                              TipoPoliza.SalidaMuerte));
                }

                string textoDocumento = tipoPoliza.TextoDocumento;
                string tipoMovimiento = tipoPoliza.ClavePoliza;
                string postFijoRef3   = tipoPoliza.PostFijoRef3;

                var linea = 1;

                var ref3 = new StringBuilder();
                ref3.Append("03");
                ref3.Append(
                    string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft(
                        10, ' '));
                ref3.Append(new Random(10).Next(10, 20));
                ref3.Append(new Random(30).Next(30, 40));
                ref3.Append(DateTime.Now.Millisecond);
                ref3.Append(postFijoRef3);

                //string numeroReferencia = ObtenerNumeroReferencia;

                if (costos == null)
                {
                    costos = ObtenerCostos();
                }

                List <AnimalInfo> animales = costosAgrupados.Select(ani => new AnimalInfo
                {
                    AnimalID = ani.AnimalID
                }).ToList();
                List <AnimalMovimientoInfo> animalesMovimiento = ObtenerUltimoMovimiento(animales);
                for (var indexCostos = 0; indexCostos < costosAgrupados.Count; indexCostos++)
                {
                    var       costoAnimal = costosAgrupados[indexCostos];
                    CostoInfo costo       =
                        costos.FirstOrDefault(
                            tipo =>
                            tipo.CostoID == costoAnimal.CostoID);
                    if (costo == null)
                    {
                        costo = new CostoInfo();
                    }

                    string numeroReferencia = costoAnimal.Arete;

                    OrganizacionInfo organizacion = ObtenerOrganizacionIVA(costoAnimal.OrganizacionID);
                    if (organizacion == null)
                    {
                        organizacion = new OrganizacionInfo
                        {
                            TipoOrganizacion = new TipoOrganizacionInfo()
                        };
                    }
                    ClaveContableInfo claveContableAbono = ObtenerCuentaInventario(costo, organizacion.OrganizacionID,
                                                                                   organizacion.TipoOrganizacion.TipoOrganizacionID);
                    if (claveContableAbono == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO",
                                                                  costo.Descripcion));
                    }
                    ClaveContableInfo claveContableCargo = ObtenerCuentaInventario(costo, organizacion.OrganizacionID,
                                                                                   TipoPoliza.SalidaMuerte);
                    if (claveContableCargo == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO",
                                                                  costo.Descripcion));
                    }
                    ParametroOrganizacionInfo parametroCentroCosto =
                        ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                             ParametrosEnum.CTACENTROCOSTOENG.ToString());
                    if (parametroCentroCosto == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
                    }
                    int peso =
                        animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID
                                                 &&
                                                 kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode())
                        .Select(proyeccion => proyeccion.Peso).FirstOrDefault();
                    DateTime fecha =
                        animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID
                                                 &&
                                                 kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode())
                        .Select(proyeccion => proyeccion.FechaMovimiento).FirstOrDefault();
                    if (fecha != null && fecha > default(DateTime))
                    {
                        string archivoFolio = ObtenerArchivoFolio(fecha);
                        var    datos        = new DatosPolizaInfo
                        {
                            NumeroReferencia = numeroReferencia,
                            FechaEntrada     = fecha,
                            Folio            = numeroReferencia,
                            Importe          = string.Format("{0}", costoAnimal.Importe.ToString("F2")),
                            Renglon          = Convert.ToString(linea++),
                            ImporteIva       = "0",
                            Ref3             = ref3.ToString(),
                            Cuenta           = claveContableCargo.Valor,
                            Division         = organizacion.Division,
                            ArchivoFolio     = archivoFolio,
                            CentroCosto      =
                                claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroCosto) ||
                                claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroGasto)
                                    ? parametroCentroCosto.Valor
                                    : string.Empty,
                            PesoOrigen      = peso,
                            TipoDocumento   = textoDocumento,
                            ClaseDocumento  = postFijoRef3,
                            ComplementoRef1 = string.Empty,
                            Concepto        = String.Format("{0}-{1} {2} kgs",
                                                            tipoMovimiento,
                                                            numeroReferencia,
                                                            peso),
                            Sociedad = organizacion.Sociedad,
                            Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                        };
                        PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);
                        polizasSalidaMuerte.Add(polizaSalida);

                        datos = new DatosPolizaInfo
                        {
                            NumeroReferencia = numeroReferencia,
                            FechaEntrada     = fecha,
                            Folio            = numeroReferencia,
                            Importe          = string.Format("{0}", (costoAnimal.Importe * -1).ToString("F2")),
                            Renglon          = Convert.ToString(linea++),
                            ImporteIva       = "0",
                            Ref3             = ref3.ToString(),
                            Cuenta           = claveContableAbono.Valor,
                            ArchivoFolio     = archivoFolio,
                            Division         = organizacion.Division,
                            PesoOrigen       = peso,
                            TipoDocumento    = textoDocumento,
                            ClaseDocumento   = postFijoRef3,
                            Concepto         = String.Format("{0}-{1} {2} kgs",
                                                             tipoMovimiento,
                                                             numeroReferencia,
                                                             peso),
                            Sociedad = organizacion.Sociedad,
                            Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                        };
                        polizaSalida = GeneraRegistroPoliza(datos);
                        polizasSalidaMuerte.Add(polizaSalida);
                    }
                }
            }
            return(polizasSalidaMuerte);
        }
Exemple #26
0
 /// <summary>
 /// Método que obtiene una lista de parametros filtrado
 /// por organización y tipo de parametro.
 /// </summary>
 /// <param name="filtro">Descripción de la entidad </param>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerPorOrganizacionTipoParametro(ParametroOrganizacionInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@OrganizacionID", filtro.OrganizacionFiltro },
             { "@TipoParametroID", filtro.Parametro.TipoParametro.TipoParametroID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        private IList <PolizaInfo> ObtenerPoliza(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario)
        {
            var polizasSalidaAjuste = new List <PolizaInfo>();

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaAjuste.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.EntradaAjuste));
            }

            string textoDocumento = tipoPoliza.TextoDocumento;
            string tipoMovimiento = tipoPoliza.ClavePoliza;
            string postFijoRef3   = tipoPoliza.PostFijoRef3;

            var linea = 1;
            var almacenMovimientoBL = new AlmacenMovimientoBL();
            List <AlmacenMovimientoDetalle> almancenMovimientosDetalle =
                ajustesDeInventario.Select(mov => new AlmacenMovimientoDetalle
            {
                AlmacenMovimientoDetalleID = mov.AlmacenMovimientoDetalleID
            }).ToList();
            AlmacenMovimientoInfo almacenMovimiento =
                almacenMovimientoBL.ObtenerMovimientoPorClaveDetalle(almancenMovimientosDetalle);

            if (almacenMovimiento == null)
            {
                almacenMovimiento = new AlmacenMovimientoInfo();
            }
            string      archivoFolio = ObtenerArchivoFolio(almacenMovimiento.FechaMovimiento);
            AlmacenInfo almacen      = ObtenerAlmacen(almacenMovimiento.AlmacenID);

            if (almacen == null)
            {
                almacen = new AlmacenInfo
                {
                    Organizacion = new OrganizacionInfo()
                };
            }
            OrganizacionInfo organizacion = ObtenerOrganizacionIVA(almacen.Organizacion.OrganizacionID);

            if (organizacion == null)
            {
                organizacion = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }

            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(
                string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft(
                    10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(DateTime.Now.Millisecond);
            ref3.Append(postFijoRef3);

            //string numeroReferencia = ObtenerNumeroReferencia;
            string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento);

            IList <CuentaSAPInfo>          cuentasSAP         = ObtenerCuentasSAP();
            IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(almacen.AlmacenID);

            ParametroOrganizacionInfo parametroOrganizacionSuperavit;

            if (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode())
            {
                parametroOrganizacionSuperavit =
                    ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                         ParametrosEnum.CTASUPERAVITENG.ToString());
            }
            else
            {
                parametroOrganizacionSuperavit =
                    ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVIT.ToString());
            }
            if (parametroOrganizacionSuperavit == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE SUPERAVIT NO CONFIGURADA"));
            }

            IList <ProductoInfo>                productos           = ObtenerProductos();
            IList <UnidadMedicionInfo>          unidades            = ObtenerUnidadesMedicion();
            IList <CuentaAlmacenSubFamiliaInfo> almacenesSubFamilia = ObtenerCostosSubFamilia(almacen.AlmacenID);
            ProductoInfo producto;
            PolizaEntradaSalidaPorAjusteModel ajuste;
            ClaseCostoProductoInfo            almacenProducto;
            CuentaSAPInfo cuentaSAP;
            CuentaAlmacenSubFamiliaInfo almacenSubFamilia;
            ParametroOrganizacionInfo   parametroCentroCosto =
                ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

            if (parametroCentroCosto == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
            }
            bool afectaCosto;

            for (var indexAjustes = 0; indexAjustes < ajustesDeInventario.Count; indexAjustes++)
            {
                ajuste    = ajustesDeInventario[indexAjustes];
                cuentaSAP = null;

                producto    = productos.FirstOrDefault(clave => clave.ProductoId == ajuste.ProductoID);
                afectaCosto = ValidarAfectacionCuentaCosto(producto);
                if (!afectaCosto && (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                     almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                     almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()))
                {
                    almacenSubFamilia =
                        almacenesSubFamilia.FirstOrDefault(sub => sub.SubFamiliaID == producto.SubfamiliaId);
                    if (almacenSubFamilia != null)
                    {
                        cuentaSAP =
                            cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenSubFamilia.CuentaSAPID);
                    }
                }
                else
                {
                    almacenProducto =
                        almacenesProductos.FirstOrDefault(prod => prod.ProductoID == producto.ProductoId);
                    if (almacenProducto != null)
                    {
                        cuentaSAP =
                            cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID);
                    }
                }
                if (cuentaSAP == null)
                {
                    throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO",
                                                              producto.ProductoDescripcion, "NO CONFIGURADA"));
                }
                UnidadMedicionInfo unidad = unidades.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId);
                if (unidad == null)
                {
                    unidad = new UnidadMedicionInfo();
                }
                var datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     = almacenMovimiento.FechaMovimiento,
                    Folio            = almacenMovimiento.FolioMovimiento.ToString(),
                    ClaseDocumento   = postFijoRef3,
                    Importe          = string.Format("{0}", ajuste.Importe.ToString("F2")),
                    Renglon          = Convert.ToString(linea++),
                    ImporteIva       = "0",
                    Ref3             = ref3.ToString(),
                    Cuenta           = cuentaSAP.CuentaSAP,
                    Division         = organizacion.Division,
                    ArchivoFolio     = archivoFolio,
                    DescripcionCosto = cuentaSAP.Descripcion,
                    CentroCosto      =
                        cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ||
                        cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroGasto)
                                            ? parametroCentroCosto.Valor
                                            : string.Empty,
                    PesoOrigen    = Math.Round(ajuste.Cantidad, 0),
                    TipoDocumento = textoDocumento,
                    Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                                  tipoMovimiento,
                                                  almacenMovimiento.FolioMovimiento,
                                                  producto.ProductoDescripcion,
                                                  string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"),
                                                                unidad.ClaveUnidad),
                                                  ajuste.Precio.ToString("C2")),
                    Sociedad = organizacion.Sociedad,
                    Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaAjuste.Add(polizaSalida);

                datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     = almacenMovimiento.FechaMovimiento,
                    Folio            = almacenMovimiento.FolioMovimiento.ToString(),
                    Importe          = string.Format("{0}", (ajuste.Importe * -1).ToString("F2")),
                    Renglon          = Convert.ToString(linea++),
                    ImporteIva       = "0",
                    Ref3             = ref3.ToString(),
                    Cuenta           = parametroOrganizacionSuperavit.Valor,
                    CentroCosto      =
                        parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroCosto) ||
                        parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroGasto)
                                        ? parametroCentroCosto.Valor
                                        : string.Empty,
                    Division         = organizacion.Division,
                    ArchivoFolio     = archivoFolio,
                    DescripcionCosto = cuentaSAP.Descripcion,
                    PesoOrigen       = Math.Round(ajuste.Cantidad, 0),
                    TipoDocumento    = textoDocumento,
                    ClaseDocumento   = postFijoRef3,
                    Concepto         = String.Format("{0}-{1} {2} {3} {4}",
                                                     tipoMovimiento,
                                                     almacenMovimiento.FolioMovimiento,
                                                     producto.ProductoDescripcion,
                                                     string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad),
                                                     ajuste.Precio.ToString("C2")),
                    Sociedad = organizacion.Sociedad,
                    Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaAjuste.Add(polizaSalida);
            }

            return(polizasSalidaAjuste);
        }
Exemple #28
0
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 internal ResultadoInfo <ParametroOrganizacionInfo> ObtenerPorFiltroPagina(PaginacionInfo pagina, ParametroOrganizacionInfo filtro)
 {
     try
     {
         Dictionary <string, object> parameters = AuxParametroOrganizacionDAL.ObtenerParametrosPorFiltroPagina(pagina, filtro);
         DataSet ds = Retrieve("ParametroOrganizacion_ObtenerPorFiltroPagina", parameters);
         ResultadoInfo <ParametroOrganizacionInfo> result = null;
         if (ValidateDataSet(ds))
         {
             result = MapParametroOrganizacionDAL.ObtenerPorFiltroPagina(ds);
         }
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemple #29
0
        private IList <PolizaInfo> ObtenerPoliza(TraspasoMpPaMedInfo traspasoMp)
        {
            var polizasSalidaTraspaso = new List <PolizaInfo>();

            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida =
                ObtenerCostosProducto(traspasoMp.AlmacenOrigen.AlmacenID);
            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada =
                ObtenerCostosProducto(traspasoMp.AlmacenDestino.AlmacenID);

            if (cuentasAlmacenProductoSalida == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén origen");
            }
            if (cuentasAlmacenProductoEntrada == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén  de destino");
            }

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaTraspaso.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.EntradaTraspaso));
            }

            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();
            string textoDocumento            = tipoPoliza.TextoDocumento;
            string tipoMovimiento            = tipoPoliza.ClavePoliza;
            string postFijoRef3 = tipoPoliza.PostFijoRef3;

            var linea = 1;

            //TO DO REVISAR SI CAMBIARA EL REF 3
            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(
                string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft(
                    10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(DateTime.Now.Millisecond);
            ref3.Append(postFijoRef3);

            var almacenMovimientoBL = new AlmacenMovimientoBL();
            AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorId(traspasoMp.AlmacenMovimientoID);

            string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento);
            //string numeroReferencia = ObtenerNumeroReferencia;

            DateTime fecha        = traspasoMp.FechaTraspaso;
            string   archivoFolio = ObtenerArchivoFolio(fecha);

            var organizacionBL = new OrganizacionBL();
            OrganizacionInfo organizacionOrigen = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenOrigen.AlmacenID);

            if (organizacionOrigen == null)
            {
                organizacionOrigen = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            OrganizacionInfo organizacionDestino = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenDestino.AlmacenID);

            if (organizacionDestino == null)
            {
                organizacionDestino = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaSalida =
                ObtenerCostosSubFamilia(traspasoMp.AlmacenOrigen.AlmacenID);

            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaEntrada =
                ObtenerCostosSubFamilia(traspasoMp.AlmacenDestino.AlmacenID);

            ParametroOrganizacionInfo parametroCentroCostoOrigen =
                ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

            if (parametroCentroCostoOrigen == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
            }
            ParametroOrganizacionInfo parametroCentroCostoDestino =
                ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

            if (parametroCentroCostoDestino == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
            }
            bool          afectaCosto;
            CuentaSAPInfo claveContableCargo;

            afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen);
            if (!afectaCosto && (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                 traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                 traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) ||
                traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode())
            {
                var cuentaSapSubFamiliaEntrada = cuentasSubFamiliaEntrada.FirstOrDefault(
                    cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID);

                if (cuentaSapSubFamiliaEntrada == null)
                {
                    cuentaSapSubFamiliaEntrada = new CuentaAlmacenSubFamiliaInfo();
                }
                claveContableCargo =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaEntrada.CuentaSAPID);
            }
            else
            {
                var cuentaSapEntrada = cuentasAlmacenProductoEntrada.FirstOrDefault(
                    cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId);
                if (cuentaSapEntrada == null)
                {
                    cuentaSapEntrada = new ClaseCostoProductoInfo();
                }
                claveContableCargo =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapEntrada.CuentaSAPID);
            }

            if (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode())
            {
                ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID,
                                                                                                   ParametrosEnum.CuentaMedicamentoTransito.ToString());

                if (cuentaMedicamento == null)
                {
                    cuentaMedicamento = new ParametroOrganizacionInfo
                    {
                        Valor = string.Empty
                    };
                }

                claveContableCargo =
                    cuentasSap.FirstOrDefault(
                        sap =>
                        sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase));
            }
            if (claveContableCargo == null)
            {
                throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}",
                                                          traspasoMp.ProductoOrigen.ProductoDescripcion));
            }
            linea = 0;
            linea++;
            var datos = new DatosPolizaInfo
            {
                NumeroReferencia = numeroReferencia,
                FechaEntrada     = fecha,
                Folio            = numeroReferencia,
                ClaseDocumento   = postFijoRef3,
                Importe          = string.Format("{0}", traspasoMp.ImporteTraspaso.ToString("F2")),
                Renglon          = Convert.ToString(linea),
                ImporteIva       = "0",
                Ref3             = ref3.ToString(),
                Cuenta           = claveContableCargo.CuentaSAP,
                CentroCosto      =
                    claveContableCargo.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                        ? parametroCentroCostoDestino.Valor
                        : string.Empty,
                Division      = organizacionDestino.Division,
                ArchivoFolio  = archivoFolio,
                PesoOrigen    = 0,
                TipoDocumento = textoDocumento,
                Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                              tipoMovimiento,
                                              numeroReferencia,
                                              traspasoMp.ProductoOrigen.ProductoDescripcion,
                                              string.Format("{0} {1}.",
                                                            traspasoMp.CantidadTraspasarDestino.ToString("N2"),
                                                            traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad),
                                              traspasoMp.PrecioTraspasoDestino.ToString("C2")),
                Sociedad            = organizacionDestino.Sociedad,
                DescripcionProducto = claveContableCargo.Descripcion,
                Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
            };
            PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);

            polizasSalidaTraspaso.Add(polizaSalida);

            #region CuentaAbono

            CuentaSAPInfo claveContableAbono = null;
            afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen);
            if (!afectaCosto && (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                 traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                 traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) ||
                traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode())
            {
                var cuentaSapSubFamiliaSalida = cuentasSubFamiliaSalida.FirstOrDefault(
                    cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID);

                if (cuentaSapSubFamiliaSalida == null)
                {
                    cuentaSapSubFamiliaSalida = new CuentaAlmacenSubFamiliaInfo();
                }
                claveContableAbono =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaSalida.CuentaSAPID);
            }
            else
            {
                var cuentaSapSalida = cuentasAlmacenProductoSalida.FirstOrDefault(
                    cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId);
                if (cuentaSapSalida == null)
                {
                    cuentaSapSalida = new ClaseCostoProductoInfo();
                }
                claveContableAbono =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSalida.CuentaSAPID);
            }

            if (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode())
            {
                ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID,
                                                                                                   ParametrosEnum.CuentaMedicamentoTransito.ToString());

                if (cuentaMedicamento == null)
                {
                    cuentaMedicamento = new ParametroOrganizacionInfo
                    {
                        Valor = string.Empty
                    };
                }

                claveContableAbono =
                    cuentasSap.FirstOrDefault(
                        sap =>
                        sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase));
            }
            if (claveContableAbono == null)
            {
                throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}",
                                                          traspasoMp.ProductoOrigen.ProductoDescripcion));
            }
            #endregion CuentaAbono

            linea++;
            datos = new DatosPolizaInfo
            {
                NumeroReferencia = numeroReferencia,
                FechaEntrada     = fecha,
                Folio            = numeroReferencia,
                ClaseDocumento   = postFijoRef3,
                Importe          =
                    string.Format("{0}", (traspasoMp.ImporteTraspaso * -1).ToString("F2")),
                Renglon      = Convert.ToString(linea),
                ImporteIva   = "0",
                Ref3         = ref3.ToString(),
                Cuenta       = claveContableAbono.CuentaSAP,
                ArchivoFolio = archivoFolio,
                CentroCosto  =
                    claveContableAbono.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                        ? parametroCentroCostoOrigen.Valor
                        : string.Empty,
                Division      = organizacionOrigen.Division,
                PesoOrigen    = 0,
                TipoDocumento = textoDocumento,
                Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                              tipoMovimiento,
                                              numeroReferencia,
                                              traspasoMp.ProductoOrigen.ProductoDescripcion,
                                              string.Format("{0} {1}.",
                                                            traspasoMp.CantidadTraspasarOrigen.ToString("N2"),
                                                            traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad),
                                              traspasoMp.PrecioTraspasoOrigen.ToString("C2")),
                Sociedad            = organizacionOrigen.Sociedad,
                DescripcionProducto = claveContableAbono.Descripcion,
                Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacionOrigen.Sociedad),
            };
            polizaSalida = GeneraRegistroPoliza(datos);
            polizasSalidaTraspaso.Add(polizaSalida);

            return(polizasSalidaTraspaso);
        }
        /// <summary>
        /// Carga el comboBox de los corrales segun la organizacion del usuario que se logueo
        /// </summary>
        void CargarCorralesComboBox()
        {
            //cbCorrales.Items.Clear();
            InicializaContexto();
            //Contexto = new SalidaPorMuerteEnTransitoInfo {OrganizacionID = Contexto.OrganizacionID};
            corrales = CorralBL.ObtenerCorralesPorOrganizacionID(Contexto.OrganizacionID);

            //cargar combobox de corrales
            if (corrales.Count == 0) //en caso de no encontrarse ningun corral
            {
                //verificar si el parametroID de la tabla de organizacion del usuario logueado este registrado en la tabla parametros
                //SP: Parametro_ObtenerPorDescripcion con la descripcion; 'Corral para faltantes de compra directa' / 'Corral para faltantes de origen propio'

                //verificar que exista la configuracion del parametro corral  de faltantes para la organizacion
                //:SP ParametroOrganizacion_ObtenerPorParametroOrganizacionID ; con OrganizacionID del usuario logueado, ParametroID que corresponda al parametro de la primera validacion

                //verificar que el corral tenga un lote activo (en caso de no hallar corrales)
                //LoteBL.ObtenerActivosPorCorral(AuxConfiguracion.ObtenerOrganizacionUsuarioID, int corralID);

                var           parametroPl = new ParametroPL();
                ParametroInfo parametroFaltantesCompraDirecta = parametroPl.ObtenerPorDescripcion(
                    Properties.Resources.SalidaGanadoTransito_Parametro_Faltantes_Compra_Directa);

                ParametroInfo parametroFaltantesOrigenPropio = parametroPl.ObtenerPorDescripcion(
                    Properties.Resources.SalidaGanadoTransito_Parametro_Faltantes_Origen_Propio);

                if ((parametroFaltantesCompraDirecta != null &&
                     parametroFaltantesCompraDirecta.Activo == EstatusEnum.Activo) ||
                    (parametroFaltantesOrigenPropio != null &&
                     parametroFaltantesOrigenPropio.Activo == EstatusEnum.Activo))
                {
                    var parametroOrganizacionPl = new ParametroOrganizacionPL();
                    var parOrganizacionFaltantesCompraDirecta =
                        new ParametroOrganizacionInfo
                    {
                        Organizacion = new OrganizacionInfo(),
                        Parametro    = new ParametroInfo()
                    };
                    parOrganizacionFaltantesCompraDirecta.Organizacion.OrganizacionID = Contexto.OrganizacionID;
                    if (parametroFaltantesCompraDirecta != null)
                    {
                        parOrganizacionFaltantesCompraDirecta.Parametro.ParametroID =
                            parametroFaltantesCompraDirecta.ParametroID;
                    }
                    parOrganizacionFaltantesCompraDirecta =
                        parametroOrganizacionPl.ObtenerPorParametroOrganizacionID(
                            parOrganizacionFaltantesCompraDirecta);

                    var parOrganizacionFaltantesOrigenPropio =
                        new ParametroOrganizacionInfo
                    {
                        Organizacion = new OrganizacionInfo(),
                        Parametro    = new ParametroInfo()
                    };
                    parOrganizacionFaltantesOrigenPropio.Organizacion.OrganizacionID = Contexto.OrganizacionID;
                    parOrganizacionFaltantesOrigenPropio.Parametro.ParametroID       =
                        parametroFaltantesOrigenPropio.ParametroID;
                    parOrganizacionFaltantesOrigenPropio =
                        parametroOrganizacionPl.ObtenerPorParametroOrganizacionID(
                            parOrganizacionFaltantesOrigenPropio);

                    if (parOrganizacionFaltantesCompraDirecta == null || parOrganizacionFaltantesOrigenPropio == null)
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.SalidaGanadoTransito_MsgConfiguracionCorralNoExiste,
                                          MessageBoxButton.OK, MessageImage.Warning);
                        BloquearPantalla();
                    }
                    else
                    {
                        if (!parOrganizacionFaltantesCompraDirecta.Activo.ValorBooleanoDesdeEnum() && !parOrganizacionFaltantesOrigenPropio.Activo.ValorBooleanoDesdeEnum())
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.SalidaGanadoTransito_MsgConfiguracionCorralNoExiste,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            BloquearPantalla();
                        }
                        else
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.SalidaGanadoTransito_MsgCorralActivoNoEncontrado,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            BloquearPantalla();
                        }
                    }
                }
                else
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.SalidaGanadoTransito_MsgParametroCorralNoExiste, MessageBoxButton.OK,
                                      MessageImage.Warning);
                    BloquearPantalla();
                    cbCorrales.IsEnabled = true;
                }
            }
            var seleccione = new CorralesPorOrganizacionInfo
            {
                CorralID    = 0,
                Descripcion = "Seleccione"
            };

            corrales.Insert(0, seleccione);
            cbCorrales.ItemsSource   = new List <CorralesPorOrganizacionInfo>();
            cbCorrales.ItemsSource   = corrales;
            cbCorrales.SelectedValue = 0;
        }