Beispiel #1
0
 /// <summary>
 /// Parametros para guardado de muerte
 /// </summary>
 /// <param name="muerte"></param>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerParametrosGuardarMuerte(MuerteInfo muerte)
 {
     try
     {
         Logger.Info();
         var xml =
             new XElement("ROOT",
                          new XElement("MuerteGrabar",
                                       new XElement("Organizacion", muerte.OrganizacionId),
                                       new XElement("CorralID", muerte.CorralId),
                                       new XElement("Arete", muerte.Arete),
                                       new XElement("AreteMetalico", muerte.AreteMetalico),
                                       new XElement("Observaciones", muerte.Observaciones),
                                       new XElement("LoteID", muerte.LoteId),
                                       new XElement("OperadorDeteccion", muerte.OperadorDeteccionId),
                                       new XElement("FotoDeteccion", muerte.FotoDeteccion),
                                       new XElement("EstatusID", muerte.EstatusId),
                                       new XElement("Activo", muerte.Activo),
                                       new XElement("UsuarioID", muerte.UsuarioCreacionID)
                                       )
                          );
         var parametros =
             new Dictionary <string, object>
         {
             { "@XmlMuerte", xml.ToString() }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Obtiene de la base de datos la informacion de una cabeza de ganado muerta
        /// </summary>
        /// <param name="organizacionId">Id Organizacion</param>
        /// <param name="numeroArete">Numero de arete</param>
        /// <returns></returns>
        internal MuerteInfo ObtenerGanadoMuertoPorArete(int organizacionId, string numeroArete)
        {
            MuerteInfo retValue = null;

            try
            {
                Logger.Info();

                Dictionary <string, object> parameters = AuxMuerteDAL.ObtenerParametrosPorOrganizacionArete(organizacionId, numeroArete);
                DataSet ds = Retrieve("SalidaPorMuerte_ObtenerMuertePorArete", parameters);

                if (ValidateDataSet(ds))
                {
                    retValue = MapMuerteDAL.ObtenerGanadoMuertoPorArete(ds);
                }
            }
            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);
            }

            return(retValue);
        }
Beispiel #3
0
        private string GenerarAreteGenerico(MuerteInfo muerte)
        {
            IList <MuerteInfo> animalesMuertos = ObtenerGanadoMuertoPorLoteID(muerte.LoteId);
            string             organzacion     = muerte.OrganizacionId.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
            string             corral          = Convert.ToString(new Random(1).Next(999)).PadLeft(3, '0');
            string             anio            = DateTime.Now.Year.ToString(CultureInfo.InvariantCulture);
            string             mes             = DateTime.Now.Month.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
            string             dia             = DateTime.Now.Day.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
            string             consecutivo     = string.Empty;

            if (animalesMuertos == null || !animalesMuertos.Any())
            {
                consecutivo = "01";
            }
            else
            {
                IList <MuerteInfo> aretesLongitudGenerica =
                    animalesMuertos.Where(muerto => muerto.Arete.Length == 15).OrderByDescending(muer => muer.MuerteId).
                    ToList();

                if (!aretesLongitudGenerica.Any())
                {
                    consecutivo = "01";
                }

                foreach (var muerteInfo in aretesLongitudGenerica)
                {
                    string organizacionMuerte = muerteInfo.Arete.Substring(0, 2); //Obtener la organizacion
                    if (organzacion != organizacionMuerte)
                    {
                        continue;
                    }
                    string anioMuerte = muerteInfo.Arete.Substring(5, 4); //Obtener el Año
                    if (anio != anioMuerte)
                    {
                        continue;
                    }
                    string mesMuerte = muerteInfo.Arete.Substring(9, 2); //Obtener el mes
                    if (mes != mesMuerte)
                    {
                        continue;
                    }
                    string diaMuerte = muerteInfo.Arete.Substring(11, 2); //Obtener el dia
                    if (dia != diaMuerte)
                    {
                        continue;
                    }
                    int consecutivoMuerte = Convert.ToInt32(muerteInfo.Arete.Substring(13, 2)) + 1;
                    consecutivo = consecutivoMuerte.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
                    break;
                }
            }
            if (string.IsNullOrWhiteSpace(consecutivo))
            {
                consecutivo = "01";
            }
            string areteGenerico = string.Format("{0}{1}{2}{3}{4}{5}", organzacion, corral, anio, mes, dia, consecutivo);

            return(areteGenerico);
        }
Beispiel #4
0
        /// <summary>
        /// Almacena una muerte en la tabla de muertes desde deteccion de ganado
        /// </summary>
        /// <param name="muerte"></param>
        /// <returns></returns>
        internal int GuardarMuerte(MuerteInfo muerte)
        {
            int retValue = -1;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxMuerteDAL.ObtenerParametrosGuardarMuerte(muerte);
                retValue = Create("DeteccionGanado_GrabarMuerte", parameters);

                retValue = 1;
            }
            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);
            }

            return(retValue);
        }
Beispiel #5
0
        /// <summary>
        /// Obtiene las muertes por fecha Necropsia
        /// </summary>
        /// <param name="muerteInfo"></param>
        /// <returns></returns>
        public IList <SalidaGanadoMuertoInfo> ObtenerMuertesFechaNecropsia(MuerteInfo muerteInfo)
        {
            IList <SalidaGanadoMuertoInfo> listaMuertesInfo = null;

            try
            {
                Logger.Info();

                Dictionary <string, object> parameters = AuxMuerteDAL.ObtenerParametrosMuertesFechaNecropsia(muerteInfo);
                DataSet ds = Retrieve("SalidaPorMuerte_ObtenerMuertosFechaNecropsia", parameters);

                if (ValidateDataSet(ds))
                {
                    listaMuertesInfo = MapMuerteDAL.ObtenerMuertesFechaNecropsia(ds);
                }
            }
            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);
            }

            return(listaMuertesInfo);
        }
Beispiel #6
0
        public static string CancelarMovimientoMuerte(MuerteInfo ganadoMuertoInfo)
        {
            try
            {
                ganadoMuertoInfo.Activo            = EstatusEnum.Activo;
                ganadoMuertoInfo.UsuarioCreacionID = usuarioID;
                ganadoMuertoInfo.EstatusId         = (int)EstatusMuertes.Cancelado;

                ganadoMuertoInfo.OperadorCancelacionInfo = new OperadorInfo
                {
                    OperadorID = usuario.Usuario.Operador.OperadorID
                };


                var muertePL = new MuertePL();

                muertePL.CancelarMovimientoMuerte(ganadoMuertoInfo);

                return("OK");
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Beispiel #7
0
        /// <summary>
        /// Actualiza la tabla de muertes con la informacion de la recoleccion
        /// </summary>
        /// <param name="muerte">Identificador de la muerte</param>
        /// <param name="operadorId">Identificador del Operador</param>
        /// <returns></returns>
        internal int GuardarRecoleccionGanadoMuerto(MuerteInfo muerte, int operadorId)
        {
            int retValue = -1;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxMuerteDAL.ObtenerParametrosMuerteRecoleccion(muerte, operadorId);
                Update("CheckListGanadoMuerto_GuardarRecoleccion", parameters);

                retValue = 1;
            }
            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);
            }

            return(retValue);
        }
Beispiel #8
0
        public static AnimalInfo ObtenerExisteArete(string arete)
        {
            AnimalInfo animal = null;

            try
            {
                var animalPL       = new AnimalPL();
                var muertePL       = new MuertePL();
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                if (animal != null)
                {
                    MuerteInfo muerto = muertePL.ObtenerMuertoPorArete(organizacionId, arete);
                    if (muerto != null)
                    {
                        animal.AnimalID = -1;
                    }
                }

                //ObtenerCorralDestinoAnimal(arete);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(animal);
        }
        public static Response <MuerteInfo> GuardarSalida(string value)
        {
            Response <MuerteInfo> retValue = null;

            try
            {
                var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    var values    = Utilerias.Deserializar <MuerteInfo>(value);
                    var guardarPl = new MuertePL();

                    var muerte = new MuerteInfo()
                    {
                        MuerteId            = values.MuerteId,
                        AnimalId            = values.AnimalId,
                        LoteId              = values.LoteId,
                        CorralId            = values.CorralId,
                        OrganizacionId      = seguridad.Usuario.Organizacion.OrganizacionID,
                        ProblemaId          = values.ProblemaId,
                        FotoNecropsia       = values.FotoNecropsia,
                        Observaciones       = values.Observaciones,
                        Arete               = values.Arete,
                        AreteMetalico       = values.AreteMetalico,
                        OperadorNecropsiaId = seguridad.Usuario.Operador.OperadorID,
                        Peso = values.Peso,
                        UsuarioCreacionID = seguridad.Usuario.UsuarioID,
                        EstatusId         = (int)EstatusMuertes.Necropsia,
                        CorralCodigo      = values.CorralCodigo
                    };
                    if (muerte != null)
                    {
                        muerte.FotoNecropsia = TipoFoto.Necropsia.ToString() + '/' + muerte.FotoNecropsia;
                    }

                    var resultado = guardarPl.GuardarSalidaPorMuerteNecropsia(muerte);

                    if (resultado == 1)
                    {
                        retValue = Response <MuerteInfo> .CrearResponseVacio <MuerteInfo>(true, "OK");
                    }
                }
                else
                {
                    retValue = Response <MuerteInfo> .CrearResponseVacio <MuerteInfo>(false, "Fallo al guardar salida. Su sesión a expirado, por favor ingrese de nuevo");
                }
            }
            catch (Exception ex)
            {
                retValue = Response <MuerteInfo> .CrearResponseVacio <MuerteInfo>(false, "Error inesperado: " + ex.InnerException.Message);
            }

            return(retValue);
        }
Beispiel #10
0
        /// <summary>
        /// Guarda la informacion de un arete muerto
        /// </summary>
        /// <param name="muerte"></param>
        /// <param name="esCargaInicial"></param>
        /// <param name="animal"></param>
        /// <returns></returns>
        internal int GuardarMuerte(MuerteInfo muerte, FlagCargaInicial esCargaInicial, AnimalInfo animal)
        {
            try
            {
                Logger.Info();
                int resultado;

                using (var transaccion = new TransactionScope())
                {
                    if (animal != null)
                    {
                        var animalBL = new AnimalBL();
                        // Se valida el flag de EsCargaInicial
                        switch (esCargaInicial)
                        {
                        case FlagCargaInicial.EsCargaInicial:
                            var deteccionGrabar = new DeteccionInfo
                            {
                                CorralID          = muerte.CorralId,
                                LoteID            = muerte.LoteId,
                                UsuarioCreacionID = muerte.UsuarioCreacionID
                            };
                            // Se intercambian aretes por encontrarse el animal en un corral distinto y ser carga inicial
                            animalBL.ReemplazarAretes(animal, deteccionGrabar);
                            break;

                        case FlagCargaInicial.EsAreteNuevo:
                            // Se Reemplaza arete nuevo sobre uno existente del lote
                            animalBL.ReemplazarAreteMismoCorral(animal);
                            break;
                        }
                    }
                    if (muerte.Corral.GrupoCorral != GrupoCorralEnum.Recepcion.GetHashCode() &&
                        string.IsNullOrWhiteSpace(muerte.Arete))
                    {
                        muerte.Arete = GenerarAreteGenerico(muerte);
                    }
                    var muerteDal = new MuerteDAL();
                    resultado = muerteDal.GuardarMuerte(muerte);
                    // Se cierral la transaccion
                    transaccion.Complete();
                }
                return(resultado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Beispiel #11
0
        /// <summary>
        /// Obtiene los datos mapeados de ganado muerto
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        internal static MuerteInfo ObtenerGanadoMuertoPorArete(DataSet ds)
        {
            try
            {
                DataTable  dt     = ds.Tables[ConstantesDAL.DtDatos];
                MuerteInfo result =
                    (from info in dt.AsEnumerable()
                     select
                     new MuerteInfo
                {
                    /* MU.MuerteId, MU.Arete, MU.AreteMetalico, MU.Observaciones, MU.LoteId, MU.OperadorDeteccion, MU.FechaDeteccion, MU.FotoDeteccion,
                     *             MU.OperadorRecoleccion, MU.FechaRecoleccion, MU.OperadorNecropsia, MU.FechaNecropsia, MU.EstatusID, MU.ProblemaID, MU.FechaCreacion,
                     *         LT.Lote, LT.OrganizacionId, CR.Codigo,MU.Activo, AnimalId, peso */
                    OrganizacionId = info.Field <int>("OrganizacionId"),
                    AnimalId = info.Field <long>("AnimalId"),
                    MuerteId = info.Field <int>("MuerteId"),
                    Arete = info.Field <string>("Arete").Trim(),
                    AreteMetalico = info["AreteMetalico"] == DBNull.Value ? String.Empty : info.Field <string>("AreteMetalico"),
                    Observaciones = info.Field <string>("Observaciones").Trim(),
                    LoteId = info.Field <int>("LoteId"),
                    OperadorDeteccionId = info["OperadorDeteccion"] == DBNull.Value ? 0 : info.Field <int>("OperadorDeteccion"),
                    FechaDeteccion = info["FechaDeteccion"] == DBNull.Value ? new DateTime(1900, 1, 1) : info.Field <DateTime>("FechaDeteccion"),
                    FotoDeteccion = info["FotoDeteccion"] == DBNull.Value ? String.Empty : info.Field <string>("FotoDeteccion").Trim(),
                    OperadorRecoleccionId = info.Field <int>("OperadorRecoleccion"),
                    FechaRecoleccion = info["FechaRecoleccion"] == DBNull.Value ? new DateTime(1900, 1, 1) : info.Field <DateTime>("FechaRecoleccion"),
                    OperadorNecropsiaId = info["OperadorNecropsia"] == DBNull.Value ? 0 : info.Field <int>("OperadorNecropsia"),
                    FechaNecropsia = info["FechaNecropsia"] == DBNull.Value ? new DateTime(1900, 1, 1) : info.Field <DateTime>("FechaNecropsia"),
                    EstatusId = info.Field <int>("EstatusID"),
                    ProblemaId = info["ProblemaID"] == DBNull.Value ? 0 : info.Field <int>("ProblemaID"),
                    FechaCreacion = info["FechaNecropsia"] == DBNull.Value ? new DateTime(1900, 1, 1) : info.Field <DateTime>("FechaCreacion"),
                    LoteCodigo = info.Field <string>("Lote").Trim(),
                    CorralCodigo = info.Field <string>("Codigo").Trim(),
                    CorralId = info.Field <int>("CorralId"),
                    Activo = info.Field <bool>("Activo").BoolAEnum(),
                    Peso = info["Peso"] == DBNull.Value ? 0 : info.Field <int>("Peso")
                           //FechaRecoleccion = info["FechaRecoleccion"] == DBNull.Value ? new DateTime(1900, 1, 1) : info.Field<DateTime>("FechaRecoleccion"),
                }).First();

                return(result);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Beispiel #12
0
 /// <summary>
 /// Obtiene las muertes por Fecha Necropsia
 /// </summary>
 /// <param name="muerteInfo"></param>
 /// <returns></returns>
 public List <SalidaGanadoMuertoInfo> ObtenerMuertesFechaNecropsia(MuerteInfo muerteInfo)
 {
     try
     {
         Logger.Info();
         var muerteBl = new MuerteBL();
         return(muerteBl.ObtenerMuertesFechaNecropsia(muerteInfo));
     }
     catch (ExcepcionGenerica exg)
     {
         Logger.Error(exg);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
     return(null);
 }
Beispiel #13
0
 /// <summary>
 /// Metodo para Guardar el muerteInfo
 /// </summary>
 /// <param name="muerteInfo"></param>
 public void CancelarMovimientoMuerte(MuerteInfo muerteInfo)
 {
     try
     {
         Logger.Info();
         var muerteBl = new MuerteBL();
         muerteBl.CancelarMovimientoMuerte(muerteInfo);
         //return result;
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #14
0
 /// <summary>
 /// Guarda la informacion de una muerte
 /// </summary>
 /// <param name="muerte"></param>
 /// <param name="esCargaInicial"></param>
 /// <param name="animal"></param>
 /// <returns></returns>
 public int GuardarMuerte(MuerteInfo muerte, FlagCargaInicial esCargaInicial, AnimalInfo animal)
 {
     try
     {
         Logger.Info();
         var muerteBl  = new MuerteBL();
         int resultado = muerteBl.GuardarMuerte(muerte, esCargaInicial, animal);
         return(resultado);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #15
0
        /// <summary>
        /// Parametros para muerteid y operadorid
        /// </summary>
        /// <param name="muerte"></param>
        /// <param name="operadorId"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosMuerteId(MuerteInfo muerte, int operadorId)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@MuerteId", muerte.MuerteId },
                    { "@OperadorId", operadorId }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
Beispiel #16
0
        /// <summary>
        /// Obtiene las muertes por fecha necropsia
        /// </summary>
        /// <param name="muerteInfo"></param>
        /// <returns></returns>
        internal List <SalidaGanadoMuertoInfo> ObtenerMuertesFechaNecropsia(MuerteInfo muerteInfo)
        {
            var listaMuertes = new List <SalidaGanadoMuertoInfo>();

            try
            {
                Logger.Info();
                var muerteDal = new MuerteDAL();
                listaMuertes = muerteDal.ObtenerMuertesFechaNecropsia(muerteInfo).ToList();
            }
            catch (ExcepcionGenerica exg)
            {
                Logger.Error(exg);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(listaMuertes);
        }
Beispiel #17
0
        /// <summary>
        /// Guarda la salida por muerte de necropsia
        /// </summary>
        /// <param name="muerte"></param>
        /// <returns></returns>
        public int GuardarSalidaPorMuerteNecropsia(MuerteInfo muerte)
        {
            int retValue = -1;

            try
            {
                Logger.Info();
                var bl = new MuerteBL();
                retValue = bl.GuardarSalidaPorMuerteNecropsia(muerte);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(retValue);
        }
Beispiel #18
0
 /// <summary>
 /// Metodo para Guardar el muerteInfo
 /// </summary>
 /// <param name="muerteInfo">contenedor donde se encuentra la información de la muerte</param>
 /// <returns></returns>
 internal void CancelarMovimientoMuerte(MuerteInfo muerteInfo)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxMuerteDAL.ObtenerParametrosCancelarMovimientoMuerte(muerteInfo);
         Create("CancelarMovimiento_CancelarMuerte", parameters);
     }
     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);
     }
 }
Beispiel #19
0
        /// <summary>
        /// Ocurre cuando se presiona click sobre el control
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnGenerar_OnClick(object sender, RoutedEventArgs e)
        {
            var muertesPl            = new MuertePL();
            var salidaGanadoMuertePl = new SalidaGanadoMuertoPL();
            var muerteInfo           = new MuerteInfo()
            {
                OrganizacionId = Convert.ToInt32(Application.Current.Properties["OrganizacionID"]),
                FechaNecropsia = dtFecha.SelectedDate.Value
            };

            try
            {
                IList <SalidaGanadoMuertoInfo> listaMuertes = muertesPl.ObtenerMuertesFechaNecropsia(muerteInfo);

                if (listaMuertes != null && listaMuertes.Count > 0)
                {
                    int folio = 0;
                    IList <SalidaGanadoMuertoInfo> result = listaMuertes.Where(muerte => muerte.FolioSalida != 0).ToList();
                    if (result != null && result.Count > 0)
                    {
                        folio = result[0].FolioSalida;
                    }
                    else
                    {
                        var salidaGanadoMuerteInfo = new SalidaGanadoMuertoInfo()
                        {
                            OrganizacionID = Convert.ToInt32(Application.Current.Properties["OrganizacionID"]),
                            TipoFolio      = (int)TipoFolio.SalidaGanadoMuerte
                        };
                        folio = salidaGanadoMuertePl.ObtenerFolio(salidaGanadoMuerteInfo);
                    }
                    var organizacionPl   = new OrganizacionPL();
                    var organizacionInfo = new OrganizacionInfo();
                    organizacionInfo = organizacionPl.ObtenerPorID(muerteInfo.OrganizacionId);
                    var etiquetas = ObtenerEtiquetas();
                    etiquetas.Titulo = organizacionInfo.Descripcion;
                    etiquetas.Folio  = folio.ToString().PadLeft(5, '0');
                    etiquetas.Fecha  = dtFecha.Text;

                    listaMuertes[0].FolioSalida           = folio;
                    listaMuertes[0].UsuarioModificacionID = Convert.ToInt32(Application.Current.Properties["UsuarioID"]);

                    salidaGanadoMuertePl.AsignarFolioMuertes(listaMuertes);
                    try
                    {
                        salidaGanadoMuertePl.CrearOrdenSalidaGandoMuerto(etiquetas, listaMuertes);
                        salidaGanadoMuertePl.MostrarReportePantalla();
                    }
                    catch
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.OrdenSalidaMuerteGanado_msgArchivoAbierto,
                                          MessageBoxButton.OK,
                                          MessageImage.Stop);
                    }
                }
                else
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.OrdenSalidaMuerteGanado_msgNoExistenMuertes,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    dtFecha.SelectedDate = DateTime.Now;
                }
            }
            catch (System.Exception ex)
            {
                Logger.Error(ex);
            }
        }
Beispiel #20
0
        /// <summary>
        /// Obtiene los los parametros para obtener las muertes por fecha necropsia
        /// </summary>
        /// <param name="muerteInfo"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosMuertesFechaNecropsia(MuerteInfo muerteInfo)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@OrganizacionID", muerteInfo.OrganizacionId },
                    { "@FechaNecropsia", muerteInfo.FechaNecropsia }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
        /// <summary>
        /// Carga la informacion del arete en pantalla
        /// </summary>
        private void LlenarDatosArete()
        {
            MuerteInfo areteMuerto = null;
            var        pl          = new MuertePL();
            var        animalPL    = new AnimalPL();
            var        corralPL    = new CorralPL();

            try
            {
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                var organizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
                if (seguridad != null)
                {
                    //Se obtiene el Corral para ver Si es de Recepcion
                    corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, corralInfo.Codigo);

                    if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                    {
                        /* Si el corral es de Recepcion */
                        areteMuerto = pl.ObtenerGanadoMuertoPorAreteRecepcion(organizacionID, numeroArete);
                    }
                    else
                    {
                        /* Si el corral es de Enfermeria o produccion */
                        areteMuerto = pl.ObtenerGanadoMuertoPorArete(organizacionID, numeroArete);
                        if (areteMuerto != null && areteMuerto.AnimalId > 0)
                        {
                            areteMuerto.Peso = animalPL.ObtenerUltimoMovimientoAnimal(new AnimalInfo()
                            {
                                AnimalID = areteMuerto.AnimalId, OrganizacionIDEntrada = organizacionID
                            }).Peso;
                        }
                        else
                        {
                            if (areteMuerto == null)
                            {
                                areteMuerto = new MuerteInfo {
                                    Arete = numeroArete, CorralCodigo = corralInfo.Codigo
                                };
                            }
                            var lote   = new LoteInfo();
                            var lotePl = new LotePL();
                            lote = lotePl.ObtenerPorCorral(organizacionID, corralInfo.CorralID);
                            if (lote != null)
                            {
                                var listaAnimales = animalPL.ObtenerAnimalesPorLoteID(lote);
                                if (listaAnimales != null)
                                {
                                    var listaMovimientosActivos = (from animal in listaAnimales
                                                                   let movimiento = new AnimalMovimientoInfo()
                                                                                    select animalPL.ObtenerUltimoMovimientoAnimal(animal)).ToList();

                                    if (listaMovimientosActivos.Count > 0)
                                    {
                                        areteMuerto.Peso = listaMovimientosActivos.Sum(registro => registro.Peso) /
                                                           listaMovimientosActivos.Count;
                                    }
                                }
                            }
                        }
                    }

                    if (areteMuerto != null)
                    {
                        hdMuerteId.Value = areteMuerto.MuerteId.ToString();
                        hdAnimalId.Value = areteMuerto.AnimalId.ToString();
                        hdCorralId.Value = areteMuerto.CorralId.ToString();
                        hdLoteId.Value   = areteMuerto.LoteId.ToString();

                        if (areteMuerto.MuerteId == 0)
                        {
                            hdMuerteId.Value = muerteId.ToString();
                        }

                        txtCorral.Text            = areteMuerto.CorralCodigo;
                        txtPeso.Text              = areteMuerto.Peso.ToString();
                        txtAreteMetalico.Text     = areteMuerto.AreteMetalico;
                        txtNumeroArete.Text       = areteMuerto.Arete;
                        txtNombreResponsable.Text = seguridad.Usuario.Nombre;
                        lblFechaSalida.Text      += " " + DateTime.Now.ToShortDateString();
                        lblHoraSalida.Text       += " " + DateTime.Now.ToShortTimeString();

                        var parametros = ObtenerParametrosRutaImagenes(seguridad.Usuario.Organizacion.OrganizacionID);
                        imgFotoDeteccion.Visible = false;
                        if (parametros != null && areteMuerto.FotoDeteccion != string.Empty)
                        {
                            imgFotoDeteccion.Visible  = true;
                            imgFotoDeteccion.ImageUrl = parametros.Valor + areteMuerto.FotoDeteccion;
                        }
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "myScript", "MostrarFalloCargarDatos();", true);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Beispiel #22
0
        /// <summary>
        /// Guarda la salida por muerte en necropsia
        /// </summary>
        /// <param name="muerte"></param>
        /// <returns></returns>
        internal int GuardarSalidaPorMuerteNecropsia(MuerteInfo muerte)
        {
            int retValue;

            try
            {
                Logger.Info();
                var                animalBL             = new AnimalBL();
                var                animalMovimientoBL   = new AnimalMovimientoBL();
                var                corralBL             = new CorralBL();
                var                loteBL               = new LoteBL();
                var                trampaBL             = new TrampaBL();
                var                entradaGanadoBL      = new EntradaGanadoBL();
                var                animalMovimientoInfo = new AnimalMovimientoInfo();
                var                corralInfo           = new CorralInfo();
                var                muerteDAL            = new MuerteDAL();
                PolizaAbstract     poliza;
                IList <PolizaInfo> polizaSalidaMuerte;

                AnimalInfo animalInfo = null;
                using (var transaccion = new TransactionScope())
                {
                    //Se obtiene la info del Corral
                    if (muerte.CorralId > 0)
                    {
                        corralInfo = corralBL.ObtenerPorId(muerte.CorralId);
                    }
                    else if (muerte.CorralCodigo != "")
                    {
                        corralInfo = corralBL.ObtenerCorralPorCodigo(muerte.OrganizacionId,
                                                                     muerte.CorralCodigo);
                    }
                    //Se obtiene la info del Lote
                    LoteInfo loteInfo;
                    if (muerte.LoteId > 0)
                    {
                        loteInfo = loteBL.ObtenerPorID(muerte.LoteId);
                    }
                    else
                    {
                        loteInfo = loteBL.DeteccionObtenerPorCorral(muerte.OrganizacionId, corralInfo.CorralID);
                    }
                    /* Se valida el Grupo del corral */
                    switch (corralInfo.GrupoCorral)
                    {
                    case (int)GrupoCorralEnum.Recepcion:
                        /* almacena el animal en el Inventario   */
                        animalInfo = new AnimalInfo
                        {
                            Arete                 = muerte.Arete,
                            AreteMetalico         = muerte.AreteMetalico,
                            FechaCompra           = DateTime.Now,
                            TipoGanadoID          = 1,
                            CalidadGanadoID       = 1, //***
                            ClasificacionGanadoID = 1, //***
                            PesoCompra            = 0,
                            PesoLlegada           = 0, //***
                            FolioEntrada          = 1,
                            OrganizacionIDEntrada = muerte.OrganizacionId,
                            Paletas               = 0,
                            Venta                 = false,
                            Cronico               = false,
                            Activo                = true,
                            UsuarioCreacionID     = muerte.UsuarioCreacionID
                        };

                        var interfazAnimalBl          = new InterfaceSalidaAnimalBL();
                        var interfaceSalidoAnimalInfo =
                            interfazAnimalBl.ObtenerNumeroAreteIndividual(muerte.Arete, muerte.OrganizacionId);
                        int folioEntradaInterfaz = 0;
                        if (interfaceSalidoAnimalInfo != null)
                        {
                            animalInfo.FechaCompra  = interfaceSalidoAnimalInfo.FechaCompra;
                            animalInfo.PesoCompra   = (int)interfaceSalidoAnimalInfo.PesoCompra;
                            animalInfo.TipoGanadoID = interfaceSalidoAnimalInfo.TipoGanado.TipoGanadoID;
                            folioEntradaInterfaz    = interfaceSalidoAnimalInfo.Partida;
                        }

                        EntradaGanadoInfo entradaGanadoInterfaz =
                            entradaGanadoBL.ObtenerEntradasGanadoCosteado(folioEntradaInterfaz, muerte.OrganizacionId);

                        /* Obtener la entrada de ganado del Corral-Lote para conocer el origen */
                        EntradaGanadoInfo entradaGanadoInfo = entradaGanadoBL.ObtenerEntradaPorLote(loteInfo);
                        if (entradaGanadoInfo != null)
                        {
                            if (entradaGanadoInterfaz != null)
                            {
                                if (entradaGanadoInfo.EmbarqueID == entradaGanadoInterfaz.EmbarqueID)
                                {
                                    animalInfo.FolioEntrada = entradaGanadoInterfaz.FolioEntrada;
                                }
                            }
                            if (animalInfo.FolioEntrada == 1)
                            {
                                if (!entradaGanadoInfo.EsRuteo)
                                {
                                    animalInfo.FolioEntrada = entradaGanadoInfo.FolioEntrada;
                                }
                                else
                                {
                                    List <CabezasPartidasModel> partidasRuteo =
                                        entradaGanadoBL.ObtenerCabezasEntradasRuteo(entradaGanadoInfo.EmbarqueID);
                                    if (partidasRuteo != null && partidasRuteo.Any())
                                    {
                                        CabezasPartidasModel partidaConPendientes =
                                            partidasRuteo.OrderByDescending(part => part.CabezasPendientes).
                                            FirstOrDefault();
                                        if (partidaConPendientes != null)
                                        {
                                            animalInfo.FolioEntrada = partidaConPendientes.FolioEntrada;
                                        }
                                    }
                                }
                            }
                            //if (entradaGanadoInfo.TipoOrganizacionOrigenId != (int)TipoOrganizacion.CompraDirecta)
                            //{

                            //}
                            //animalInfo.FolioEntrada = entradaGanadoInfo.FolioEntrada;
                        }
                        /* Se almacena el animalMovimiento */
                        animalInfo = animalBL.GuardarAnimal(animalInfo);
                        break;

                    default:
                        if (muerte.AnimalId > 0)
                        {
                            animalInfo = animalBL.ObtenerAnimalAnimalID(muerte.AnimalId);
                            /* Se busca el animal En Salida Animal */
                            AnimalSalidaInfo animalSalidaInfo =
                                animalBL.ObtenerAnimalSalidaAnimalID(animalInfo.AnimalID);
                            if (animalSalidaInfo != null)
                            {
                                /* Se valida si no esta en una corraleta de sacrificio */
                                CorralInfo corraleta = corralBL.ObtenerPorId(animalSalidaInfo.CorraletaId);
                                if (corraleta != null &&
                                    corraleta.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                                {
                                    /* Se disminuyen las cabezas del lote en todas las ordenes de sacrificio   */
                                    var ordenSacrificioBL = new OrdenSacrificioBL();
                                    ordenSacrificioBL.DecrementarAnimalMuerto(muerte.AnimalId);
                                    /* Eliminar AnimalSalida */
                                    animalBL.EliminarAnimalSalida(animalInfo.AnimalID, loteInfo.LoteID);
                                }
                            }
                        }
                        else
                        {
                            var listaAnimales = animalBL.ObtenerAnimalesPorCorral(corralInfo, muerte.OrganizacionId);
                            if (listaAnimales != null)     //&& listaAnimales.Any())
                            {
                                //animalInfo = listaAnimales.FirstOrDefault(registro => registro.UsuarioCreacionID == 1);
                                animalInfo = listaAnimales.FirstOrDefault(registro => registro.UsuarioCreacionID == 1);
                                if (animalInfo == null)
                                {
                                    animalInfo = listaAnimales.OrderBy(ani => ani.AnimalID).FirstOrDefault();
                                }
                            }
                        }
                        break;
                    }

                    if (animalInfo != null)
                    {
                        animalInfo.UsuarioCreacionID     = muerte.UsuarioCreacionID;
                        animalInfo.UsuarioModificacionID = muerte.UsuarioCreacionID;
                        if (muerte.AnimalId == 0)
                        {
                            muerte.AnimalId = animalInfo.AnimalID;
                        }
                    }

                    /* Se actualiza la muerte con salida por necropsia */
                    muerteDAL.GuardarSalidaPorMuerteNecropsia(muerte);
                    if (animalInfo != null)
                    {
                        if (muerte.Peso == 0)
                        {
                            List <AnimalMovimientoInfo> ultimosMovimiento = animalMovimientoBL.ObtenerUltimoMovimientoAnimal(new List <AnimalInfo> {
                                animalInfo
                            });
                            if (ultimosMovimiento != null && ultimosMovimiento.Any())
                            {
                                AnimalMovimientoInfo ultimoMovimientoAnimal =
                                    ultimosMovimiento.OrderByDescending(ani => ani.AnimalMovimientoID).FirstOrDefault();

                                if (ultimoMovimientoAnimal != null)
                                {
                                    muerte.Peso = ultimoMovimientoAnimal.Peso;
                                }
                            }
                        }
                        /* Insertamos el movimiento de Muerte */
                        var trampaInfo = trampaBL.ObtenerPorHostName(TrampaGlobal.TrampaNecropsia.ToString());
                        if (trampaInfo != null)
                        {
                            animalMovimientoInfo.TrampaID = trampaInfo.TrampaID;
                        }
                        /* Se genera el animal Movimiento para almacenarlo*/
                        animalMovimientoInfo = new AnimalMovimientoInfo
                        {
                            AnimalID          = animalInfo.AnimalID,
                            OrganizacionID    = muerte.OrganizacionId,
                            CorralID          = loteInfo.CorralID,
                            LoteID            = loteInfo.LoteID,
                            Peso              = muerte.Peso,
                            Temperatura       = 0,
                            TipoMovimientoID  = (int)TipoMovimiento.Muerte,
                            TrampaID          = trampaInfo != null ? trampaInfo.TrampaID : 1,
                            OperadorID        = muerte.OperadorNecropsiaId,
                            Observaciones     = muerte.Observaciones,
                            Activo            = EstatusEnum.Activo,
                            UsuarioCreacionID = muerte.UsuarioCreacionID
                        };

                        //Proceso para Guardar Costos
                        AnimalCostoBL     animalCostoBl = new AnimalCostoBL();
                        List <AnimalInfo> animales      = new List <AnimalInfo>();
                        animales.Add(animalInfo);
                        List <AnimalCostoInfo> listaCostos = animalCostoBl.ObtenerCostosAnimal(animales);

                        if (listaCostos == null || listaCostos.Count <= 0)
                        {
                            animales = animalBL.ProcesoGenerarCostos(animales);
                        }
                        else
                        {
                            if (!listaCostos.Any(registro => registro.CostoID == Costo.CostoGanado.GetHashCode()))
                            {
                                animales = animalBL.ProcesoGenerarCostos(animales);
                            }
                        }

                        //Proceso Armar Poliza
                        if (animales != null && animales.Count > 0)
                        {
                            if (animales.FirstOrDefault().ListaCostosAnimal != null && animales.FirstOrDefault().ListaCostosAnimal.Count > 0)
                            {
                                poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaMuerte);
                                List <AnimalCostoInfo> listaCostosAnimal = animales.FirstOrDefault().ListaCostosAnimal;
                                foreach (AnimalCostoInfo animalCosto in listaCostosAnimal)
                                {
                                    animalCosto.OrganizacionID = muerte.OrganizacionId;
                                }
                                polizaSalidaMuerte = poliza.GeneraPoliza(listaCostosAnimal);
                                if (polizaSalidaMuerte != null && polizaSalidaMuerte.Any())
                                {
                                    polizaSalidaMuerte.ToList().ForEach(
                                        org =>
                                    {
                                        org.OrganizacionID         = muerte.OrganizacionId;
                                        org.UsuarioCreacionID      = muerte.UsuarioCreacionID;
                                        org.ArchivoEnviadoServidor = 1;
                                    });
                                    //retorno = poliza.ImprimePoliza(ventasGanado, polizaSalidaMuerte);
                                    var polizaBL = new PolizaBL();
                                    polizaBL.GuardarServicioPI(polizaSalidaMuerte, TipoPoliza.SalidaMuerte);
                                }
                            }
                        }

                        /* Se almacena el animalMovimiento */
                        animalMovimientoBL.GuardarAnimalMovimiento(animalMovimientoInfo);

                        /*  Se da de baja el animal */
                        animalBL.InactivarAnimal(animalInfo);

                        /* Enviar al historico el animal inactivo */
                        var animalMuerto = new List <AnimalInfo> {
                            animalInfo
                        };
                        animalBL.EnviarAHistorico(animalMuerto);
                    }
                    /* Decrementar la cabeza del lote */
                    loteInfo.Cabezas = loteInfo.Cabezas - 1;
                    loteInfo.UsuarioModificacionID = muerte.UsuarioCreacionID;
                    var filtro = new FiltroActualizarCabezasLote
                    {
                        CabezasProcesadas     = 1,
                        LoteIDDestino         = 0,
                        LoteIDOrigen          = loteInfo.LoteID,
                        UsuarioModificacionID = muerte.UsuarioCreacionID
                    };

                    CabezasActualizadasInfo resultadoCabezas = loteBL.ActualizarCabezasProcesadas(filtro);


                    //Si ya no tenemos cabezas en el lote se actualizanb los pesos llegada
                    if (resultadoCabezas.CabezasOrigen <= 0)
                    {
                        if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                        {
                            /* Si el corral es de Recepcion */
                            var corteGanadoPl = new CorteGanadoBL();
                            corteGanadoPl.ObtenerPesosOrigenLlegada(muerte.OrganizacionId,
                                                                    loteInfo.CorralID,
                                                                    loteInfo.LoteID);
                        }
                    }

                    transaccion.Complete();
                    retValue = 1;
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(retValue);
        }
Beispiel #23
0
        /// <summary>
        /// Parametros para guardar salida por necropsia
        /// </summary>
        /// <param name="muerte"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosGuardarSalidaPorMuerteNecropsia(MuerteInfo muerte)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@MuerteId", muerte.MuerteId },
                    { "@ProblemaId", muerte.ProblemaId },
                    { "@Observaciones", muerte.Observaciones },
                    { "@FotoNecropsia", muerte.FotoNecropsia },
                    { "@OperadorNecropsiaId", muerte.OperadorNecropsiaId },
                    { "@UsuarioModificacionId", muerte.UsuarioCreacionID },
                    { "@EstatusID", muerte.EstatusId },
                    { "@AnimalID", muerte.AnimalId }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
Beispiel #24
0
        public static int GuardarMuerte(MuerteInfo muerte)
        {
            int retValue = 0;

            try
            {
                CorralInfo corral   = new CorralInfo();
                CorralPL   corralPL = new CorralPL();
                AnimalPL   animalPL = new AnimalPL();
                LotePL     lotePL   = new LotePL();
                corral = ObtenerCorral(muerte.CorralCodigo);
                var        seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                LoteInfo   lote           = ObtenerLotesCorral(corral.CorralID);
                int        organizacionID = 0;
                AnimalInfo animal         = null;
                MuerteInfo muerteGrabar   = null;
                // 1 se encuentra en corral 2 Carga Inicial
                var esCargaInicial = FlagCargaInicial.Default;
                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    organizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
                    var deteccionPl = new DeteccionPL();

                    if (corral.GrupoCorral != (int)GrupoCorralEnum.Recepcion)
                    {
                        if (muerte.Arete != string.Empty && muerte.AreteMetalico == string.Empty)
                        {
                            var animalPl = new AnimalPL();
                            var animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionID);
                            if (animales != null)
                            {
                                for (int i = 0; i < animales.Count; i++)
                                {
                                    if (muerte.Arete == animales[i].Arete)
                                    {
                                        esCargaInicial = FlagCargaInicial.SeEncuentraEnCorral;
                                        break;
                                    }
                                }
                            }
                            /* Validar Si el arete existe en el inventario */
                            animal = animalPl.ObtenerAnimalPorArete(muerte.Arete, organizacionID);
                            if (animal != null && animal.CargaInicial && esCargaInicial == FlagCargaInicial.Default)
                            {
                                esCargaInicial = FlagCargaInicial.EsCargaInicial;
                            }
                            else if (animal == null)
                            {
                                animal = new AnimalInfo()
                                {
                                    Arete                 = muerte.Arete,
                                    AreteMetalico         = muerte.AreteMetalico,
                                    LoteID                = lote.LoteID,
                                    CorralID              = corral.CorralID,
                                    UsuarioModificacionID = seguridad.Usuario.UsuarioID,
                                };
                                // Este arete se dara de alta en el corral
                                esCargaInicial = FlagCargaInicial.EsAreteNuevo;
                            }
                        }
                        if (muerte.AreteMetalico != string.Empty && muerte.Arete == string.Empty)
                        {
                            animal = animalPL.ObtenerAnimalPorAreteTestigo(muerte.AreteMetalico, organizacionID);
                        }
                    }
                    var    guardarPl = new MuertePL();
                    string foto      = string.Empty;
                    if (muerte.FotoDeteccion != string.Empty)
                    {
                        foto = TipoFoto.Muerte.ToString() + '/' + muerte.FotoDeteccion;
                    }

                    if (animal != null)
                    {
                        muerteGrabar = new MuerteInfo
                        {
                            LoteId              = lote.LoteID,
                            CorralId            = corral.CorralID,
                            OrganizacionId      = seguridad.Usuario.Organizacion.OrganizacionID,
                            FotoDeteccion       = foto,
                            Observaciones       = muerte.Observaciones,
                            Arete               = animal.Arete,
                            AreteMetalico       = animal.AreteMetalico,
                            OperadorDeteccionId = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            EstatusId           = (int)EstatusMuertes.Detectado
                        };
                    }
                    else
                    {
                        muerteGrabar = new MuerteInfo
                        {
                            LoteId              = lote.LoteID,
                            CorralId            = corral.CorralID,
                            OrganizacionId      = seguridad.Usuario.Organizacion.OrganizacionID,
                            FotoDeteccion       = foto,
                            Observaciones       = muerte.Observaciones,
                            Arete               = muerte.Arete,
                            AreteMetalico       = muerte.AreteMetalico,
                            OperadorDeteccionId = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            EstatusId           = (int)EstatusMuertes.Detectado
                        };
                    }

                    if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                    {
                        muerteGrabar.LoteId = animalPL.ObtenerLoteSalidaAnimal(muerteGrabar.Arete, muerteGrabar.AreteMetalico, organizacionID);
                    }

                    if (muerteGrabar != null)
                    {
                        muerteGrabar.Corral = corral;
                        var resultado = guardarPl.GuardarMuerte(muerteGrabar,
                                                                esCargaInicial,
                                                                animal);
                        retValue = resultado;
                    }
                }
                else
                {
                    retValue = 0;
                }
            }
            catch (Exception ex)
            {
                retValue = -1;
            }
            return(retValue);
        }
Beispiel #25
0
        /// <summary>
        /// Parametros para cancelar movimiento de muerte
        /// </summary>
        /// <param name="muerteInfo"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosCancelarMovimientoMuerte(MuerteInfo muerteInfo)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@MuerteID", muerteInfo.MuerteId },
                    { "@MotivoCancelacion", muerteInfo.MotivoCancelacion },
                    { "@OperadorCancelacion", muerteInfo.OperadorCancelacionInfo.OperadorID },
                    { "@UsuarioModificacionID", muerteInfo.UsuarioCreacionID },
                    { "@EstatusID", muerteInfo.EstatusId }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }