public static int ValidarCapacidadCorraleta(int corraletaID)
        {
            CorralInfo corral    = null;
            int        respuesta = 0;

            try
            {
                var corralPL       = new CorralPL();
                var lotePL         = new LotePL();
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                corral = corralPL.ObtenerPorId(corraletaID);

                if (corral != null)
                {
                    var lote = lotePL.ObtenerPorCorralID(new LoteInfo {
                        CorralID = corral.CorralID, OrganizacionID = organizacionId
                    });
                    if (lote != null)
                    {
                        if (corral.Capacidad > lote.Cabezas)
                        {
                            respuesta = 1; // Corral OK
                        }
                        else
                        {
                            respuesta = 2; // Corral No tiene capacidad
                        }
                    }
                    else
                    {
                        respuesta = 1; // Corral OK   ----->>>   respuesta = 3;// no tiene lote activo
                    }
                }
                else
                {
                    respuesta = 0; // Corral no existe
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(respuesta);
        }
 private void ObtenerDatosProyeccion()
 {
     try
     {
         var lotePL           = new LotePL();
         var loteProyeccionPL = new LoteProyeccionPL();
         Contexto.Lote = lotePL.ObtenerPorCorralID(Contexto.Lote);
         if (Contexto.Lote == null)
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               Properties.Resources.ConfiguracionReimplante_LoteInvalido, MessageBoxButton.OK, MessageImage.Warning);
             Limpiar();
             return;
         }
         if (Contexto.Lote.FechaCierre.Year < 2000)
         {
             Contexto.Lote.AplicaCierreLote = true;
             //SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
             //         Properties.Resources.ConfiguracionReimplante_LoteAbierto, MessageBoxButton.OK, MessageImage.Warning);
             //Limpiar();
             //return;
         }
         Contexto.LoteProyeccion = loteProyeccionPL.ObtenerPorLoteCompleto(Contexto.Lote);
         if (Contexto.LoteProyeccion != null && Contexto.LoteProyeccion.ListaReimplantes != null && Contexto.LoteProyeccion.ListaReimplantes.Any())
         {
             Contexto.LoteProyeccion.ListaReimplantes.ToList().ForEach(reimp =>
             {
                 reimp.PermiteEditar = reimp.FechaReal == DateTime.MinValue;
             });
             ActualizarGrid();
         }
         if (Contexto.LoteProyeccion == null)
         {
             Contexto.LoteProyeccion = new LoteProyeccionInfo();
             Contexto.LoteProyeccion.FechaEntradaZilmax = DateTime.Now;
         }
         ObtenerDatosCalculados();
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ConfiguracionReimplante_ErrorConsultarProyeccion, MessageBoxButton.OK, MessageImage.Error);
     }
 }
示例#3
0
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (string.IsNullOrWhiteSpace(txtDescripcion.Text))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgDescripcionRequerida;
                    txtDescripcion.Focus();
                    txtDescripcion.SelectAll();
                }
                else if (string.IsNullOrWhiteSpace(skAyudaOrganizacion.Clave) ||
                         string.IsNullOrWhiteSpace(skAyudaOrganizacion.Descripcion))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgOrganizacionRequerida;

                    txtDescripcion.Focus();
                    var tRequest = new TraversalRequest(FocusNavigationDirection.Next);
                    txtDescripcion.MoveFocus(tRequest);
                }

                else if (cmbTipoCorral.SelectedItem == null || Contexto.TipoCorral.TipoCorralID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgTipoCorralRequerida;
                    cmbTipoCorral.Focus();
                }
                else if (string.IsNullOrWhiteSpace(txtCapacidad.Text) || txtCapacidad.Text == "0")
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgCapacidadRequerida;
                    txtCapacidad.Focus();
                    txtCapacidad.SelectAll();
                }
                else if (string.IsNullOrWhiteSpace(txtSeccion.Text) || txtSeccion.Text == "0")
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgSeccionRequerida;
                    txtSeccion.Focus();
                    txtSeccion.SelectAll();
                }
                else if (string.IsNullOrWhiteSpace(txtOrden.Text) || txtOrden.Text == "0")
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CorralEdicion_MsgOrdenRequerida;
                    txtOrden.Focus();
                    txtOrden.SelectAll();
                }
                else
                {
                    var    lotePL         = new LotePL();
                    int    corralId       = Extensor.ValorEntero(txtCorralId.Text);
                    string descripcion    = txtDescripcion.Text;
                    int    organizacionID = Contexto.Organizacion.OrganizacionID;

                    var corralPL = new CorralPL();
                    //CorralInfo corral = corralPL.ValidaCorralConLoteConExistenciaActivo(Contexto.CorralID);
                    //if (corral != null)
                    //{
                    //    mensaje = Properties.Resources.Corral_MsgConExistencia;
                    //    resultado = false;
                    //}
                    //else

                    CorralInfo corral = corralPL.ObtenerPorDescripcionOrganizacion(descripcion, organizacionID);

                    if (corral != null && (corralId == 0 || corralId != corral.CorralID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.CorralEdicion_MsgDescripcionExistente,
                                                  corral.CorralID);
                    }
                    var loteFiltro = new LoteInfo
                    {
                        OrganizacionID = organizacionID,
                        CorralID       = corralId
                    };
                    LoteInfo lote = lotePL.ObtenerPorCorralID(loteFiltro);
                    if (lote != null)
                    {
                        if (corral != null)
                        {
                            if (corral.TipoCorral.TipoCorralID != Contexto.TipoCorral.TipoCorralID)
                            {
                                resultado = false;
                                mensaje   = string.Format(Properties.Resources.CorralEdicion_MsgCambiarTipoCorral,
                                                          lote.Lote);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
        /// <summary>
        /// Guardar la salida por recuperacion
        /// </summary>
        /// <returns></returns>
        private bool GuardarSalidaRecuperacion()
        {
            var regreso = false;

            if (lisBoxCorralDestino.Items.Count > 0)
            {
                var lotePL = new LotePL();
                var lote   = new LoteInfo
                {
                    Corral = new CorralInfo
                    {
                        CorralID = corralIdOrigen
                    },
                    CorralID       = corralIdOrigen,
                    OrganizacionID = organizacionId
                };
                lote = lotePL.ObtenerPorCorralID(lote);
                var animalMovimientoPL = new AnimalMovimientoPL();
                List <AnimalMovimientoInfo> movimientosAnimal = animalMovimientoPL.ObtenerUltimoMovimientoAnimal(animales);
                if (movimientosAnimal != null)
                {
                    var loteDestino = new LoteInfo
                    {
                        Corral = new CorralInfo
                        {
                            CorralID = corralIdDestino
                        },
                        CorralID       = corralIdDestino,
                        OrganizacionID = organizacionId
                    };
                    loteDestino = lotePL.ObtenerPorCorralID(loteDestino);
                    movimientosAnimal.ForEach(datos =>
                    {
                        datos.LoteID           = loteDestino.LoteID;
                        datos.CorralID         = corralIdDestino;
                        datos.TipoMovimientoID =
                            TipoMovimiento.SalidaEnfermeria.GetHashCode();
                        datos.Activo                = EstatusEnum.Activo;
                        datos.UsuarioCreacionID     = usuario;
                        datos.UsuarioModificacionID = usuario;
                    });
                    lote.Cabezas        -= movimientosAnimal.Count;
                    loteDestino.Cabezas += movimientosAnimal.Count;
                    using (var scope = new TransactionScope())
                    {
                        animalMovimientoPL.GuardarAnimalMovimientoXML(movimientosAnimal);
                        var filtro = new FiltroActualizarCabezasLote
                        {
                            CabezasProcesadas     = movimientosAnimal.Count,
                            LoteIDDestino         = loteDestino.LoteID,
                            LoteIDOrigen          = lote.LoteID,
                            UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado()
                        };

                        lotePL.ActualizarCabezasProcesadas(filtro);
                        scope.Complete();
                    }
                    regreso = true;
                }
            }
            return(regreso);
        }