private void GeneraLineasDetalle(GanadoIntensivoInfo muerteIntesiva)
        {
            EntradaGanadoInfo entradaGanado = muerteIntesiva.EntradaGanado;

            var     pesoMuertePromedio = Math.Round((entradaGanado.PesoBruto - entradaGanado.PesoTara) / entradaGanado.CabezasRecibidas, 0);
            int     cantidadCabezas    = muerteIntesiva.Cabezas;
            decimal importe            = muerteIntesiva.Importe;

            var concepto = muerteIntesiva.EntradaGanadoCosteo.ListaEntradaDetalle.Select(des => des.TipoGanado.Descripcion).FirstOrDefault();


            PolizaModel.Detalle = new List <PolizaDetalleModel>();
            PolizaDetalleModel detalleModel;

            detalleModel = new PolizaDetalleModel
            {
                CantidadCabezas = cantidadCabezas.ToString("F0"),
                TipoGanado      = concepto,
                PesoTotal       = (pesoMuertePromedio * cantidadCabezas).ToString("F0"),
                PesoPromedio    = pesoMuertePromedio.ToString("F0"),
                PrecioPromedio  = Math.Abs(importe / cantidadCabezas).ToString("N2"),
                ImportePromedio = Math.Abs(importe).ToString("N2"),
                //PrecioVenta = (detalle.Precio).ToString("N2"),
                //ImporteVenta =
                //    ((detalle.Precio * (Math.Round(detalle.Peso * detalle.Cabezas, 0)))).ToString
                //    ("N2"),
                Corral = muerteIntesiva.Corral.Codigo,
                Lote   = muerteIntesiva.Lote.Lote
            };
            PolizaModel.Detalle.Add(detalleModel);

            polizaImpresion.GenerarDetalles("Detalle");
        }
        /// <summary>
        ///     Obtiene un CostoOrganizacionInfo por Id
        /// </summary>
        /// <param name="entradaGanadoInfo"></param>
        /// <returns></returns>
        internal List <CostoOrganizacionInfo> ObtenerPorOrganizacion(EntradaGanadoInfo entradaGanadoInfo)
        {
            List <CostoOrganizacionInfo> result = null;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxCostoOrganizacionDAL.ObtenerParametroPorOrganizacion(entradaGanadoInfo);
                DataSet ds = Retrieve("[dbo].[CostoOrganizacion_ObtenerPorOganizacion]", parameters);
                if (ValidateDataSet(ds))
                {
                    result = MapCostoOrganizacionDAL.ObtenerPorOrganizacion(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(result);
        }
示例#3
0
        /// <summary>
        /// Metodo que Obtiene los embarques que estan pendientes de recibir
        /// </summary>
        /// <param name="entradaGanado"></param>
        internal int PendientesRecibir(EntradaGanadoInfo entradaGanado)
        {
            int totalPendientes;

            try
            {
                Logger.Info();
                Dictionary <string, object> parametros = AuxEmbarqueDAL.ObtenerParametrosPendientesRecibir(entradaGanado);
                totalPendientes = RetrieveValue <int>("Embarque_ObtenerPendientesRecibir", parametros);
            }
            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(totalPendientes);
        }
示例#4
0
        public static EntradaGanadoInfo ObtenerPartida(int corralID)
        {
            EntradaGanadoInfo retValue = null;

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

                var        corralPl = new CorralPL();
                CorralInfo corral   = corralPl.ObtenerPorId(corralID);
                if (corral != null && seguridad != null)
                {
                    if (corral.GrupoCorral != GrupoCorralEnum.Recepcion.GetHashCode())
                    {
                        retValue = new EntradaGanadoInfo();
                    }
                    else
                    {
                        retValue = corralPl.ObtenerPartidaCorral(organizacionId, corralID);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(retValue);
        }
        /// <summary>
        /// Metodo para seleccionar la partida seleccionado
        /// </summary>
        private void SeleccionarPartina()
        {
            try
            {
                if (GridResultado.SelectedIndex == -1)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.CorteGanado_BusquedaSeleccionar,
                                      MessageBoxButton.OK,
                                      SuKarne.Controls.Enum.MessageImage.Warning);
                }
                else
                {
                    ListaEntradaGanado = new List <EntradaGanadoInfo>();

                    var row = (DataGridRow)GridResultado.ItemContainerGenerator.ContainerFromIndex(GridResultado.SelectedIndex);
                    if (row.IsSelected)
                    {
                        var listaAyuda = new EntradaGanadoInfo();
                        listaAyuda = ((EntradaGanadoInfo)(row.Item));
                        ListaEntradaGanado.Add(listaAyuda);
                    }

                    Close();
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
        /// <summary>
        /// Obtener entrada de ganado
        /// </summary>
        /// <param name="animalInfo"></param>
        /// <returns></returns>
        internal EntradaGanadoInfo ObtenerEntradaGanado(AnimalInfo animalInfo)
        {
            EntradaGanadoInfo result = null;

            try
            {
                Logger.Info();
                var parameters = AuxCorteTransferenciaGanado.ObtenerParametrosEntradaGanado(animalInfo);
                var ds         = Retrieve("CorteTransferenciaGanado_ObtenerEntradaGanado", parameters);

                if (ValidateDataSet(ds))
                {
                    result = MapCorteTransferenciaGanadoDAL.ObtenerEntradaGanado(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(result);
        }
示例#7
0
        /// <summary>
        ///    Obtiene una Cantidad de Animales que se encuentran en enfermeria
        /// </summary>
        /// <param name="ganadoEnfermeria"></param>
        /// <param name="noTipoCorral"></param>
        /// <returns></returns>
        internal int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int noTipoCorral)
        {
            var resp = 0;

            try
            {
                Dictionary <string, object> parametros = AuxCorteGanadoDAL.ObtenerParametrosCabezasEnEnfermeria(ganadoEnfermeria, noTipoCorral);
                DataSet ds = Retrieve("[dbo].[CorteGanado_ObtenerTotalGanadoEnEnfermeria]", parametros);
                if (ValidateDataSet(ds))
                {
                    resp = MapCorteGanadoDAL.ObtenerCabezasEnEnfermeria(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(resp);
        }
示例#8
0
        /// <summary>
        ///     Obtiene una Interface de Salida por SalidaID y OrganizacionID
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        internal List <InterfaceSalidaInfo> ObtenerPorEmbarqueIDConCompraDirecta(EntradaGanadoInfo entradaGanado)
        {
            List <InterfaceSalidaInfo> result = null;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxInterfaceSalidaDAL.ObtenerParametrosPorEmbarqueID(entradaGanado);
                DataSet ds = Retrieve("[dbo].[InterfaceSalida_ObtenerPorEmbarqueIDConCompraDirecta]", parameters);
                if (ValidateDataSet(ds))
                {
                    result = MapInterfaceSalidaDAL.ObtenerPorEmbarqueID(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(result);
        }
        /// <summary>
        /// Metodo para agregar las dependencias a las ayudas de Organización Origen y Destino
        /// </summary>
        private void AsignaDependenciasAyudaOrganizacion(SKAyuda <OrganizacionInfo> controlAyuda)
        {
            controlAyuda.Dependencias = null;

            IList <IDictionary <IList <String>, Object> > dependencias = new List <IDictionary <IList <String>, Object> >();
            IDictionary <IList <String>, Object>          dependecia   = new Dictionary <IList <String>, Object>();

            var            dependenciasGanado = new EntradaGanadoInfo();
            IList <String> camposDependientes = new List <String>();

            camposDependientes.Add("EmbarqueID");
            dependecia.Add(camposDependientes, dependenciasGanado);
            dependencias.Add(dependecia);

            dependecia         = new Dictionary <IList <String>, Object>();
            camposDependientes = new List <String> {
                "TipoOrganizacionID"
            };
            dependecia.Add(camposDependientes, new TipoOrganizacionInfo
            {
                TipoOrganizacionID = (int)Services.Info.Enums.TipoOrganizacion.Ganadera,
                Descripcion        = Services.Info.Enums.TipoOrganizacion.Ganadera.ToString()
            });
            dependencias.Add(dependecia);

            controlAyuda.Dependencias = dependencias;
        }
        /// <summary>
        /// Valdiar si existen Compras directas en el ruteo
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        public List <EntradaGanadoInfo> ObtenerEntradasPorEmbarqueID(EntradaGanadoInfo entradaGanado)
        {
            List <EntradaGanadoInfo> result = null;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxCostoEmbarqueDetalleDAL.ObtenerParametroPorEmbarqueID(entradaGanado);
                DataSet ds = Retrieve("[dbo].[CostoEmbarqueDetalle_ObtenerEntradasPorEmbarqueID]", parameters);
                if (ValidateDataSet(ds))
                {
                    result = MapCostoEmbarqueDetalleDAL.ObtenerEntradasPorEmbarqueID(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(result);
        }
示例#11
0
 /// <summary>
 /// Metodo que actualiza el estatus a recibido de la programacion de embarque (Cabecero)
 /// </summary>
 /// <param name="entradaGanado"></param>
 /// <param name="estatus"></param>
 internal void ActualizarEstatus(EntradaGanadoInfo entradaGanado, Estatus estatus)
 {
     try
     {
         Logger.Info();
         var embarqueDAL = new EmbarqueDAL();
         embarqueDAL.ActualizarEstatus(entradaGanado, estatus);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 ///     Obtiene Parametros por EntradaGanadoId
 /// </summary>
 /// <param name="entradaGanado"></param>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@OrganizacionID", entradaGanado.OrganizacionOrigenID },
             { "@SalidaID", entradaGanado.FolioOrigen }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
示例#13
0
 public EntradaGanadoInfo ObtenerPartidaCorral(int organizacionId, int corralID)
 {
     try
     {
         Logger.Info();
         var corralBL             = new CorralBL();
         EntradaGanadoInfo result = corralBL.ObtenerPartidaCorral(organizacionId, corralID);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
示例#14
0
        /// <summary>
        /// Obtiene los parametros para Ejecutar el Procedimiento Almacenado
        /// InsterfaceSalida_ObtenerPorEmbarqueID
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosPorEmbarqueID(EntradaGanadoInfo entradaGanado)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@EmbarqueID", entradaGanado.EmbarqueID }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
示例#15
0
        /// <summary>
        /// Obtiene la Lista de los Costos Automaticos, para la funcionalidad de Costeo Entrada Ganado
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        public List <EntradaGanadoCostoInfo> ObtenerCostosAutomaticos(EntradaGanadoInfo entradaGanado)
        {
            try
            {
                Logger.Info();
                var costoOrganizacionBL             = new CostoOrganizacionBL();
                List <EntradaGanadoCostoInfo> lista = costoOrganizacionBL.ObtenerCostosAutomaticos(entradaGanado);

                return(lista);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#16
0
        /// <summary>
        ///     Obtiene Parametros por Organizacion
        /// </summary>
        /// <param name="entradaGanadoInfo"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametroPorOrganizacion(EntradaGanadoInfo entradaGanadoInfo)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                parametros = new Dictionary <string, object>
                {
                    { "@TipoOrganizacionOrigenID", entradaGanadoInfo.TipoOrigen },
                    { "@OrganizacionDestinoID", entradaGanadoInfo.OrganizacionID },
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
示例#17
0
        /// <summary>
        /// Obtiene el numero de cabezas de enfermeria para reimplante
        /// </summary>
        /// <param name="ganadoEnfermeria"></param>
        /// <param name="tipoMovimiento"></param>
        /// <returns></returns>
        public int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int tipoMovimiento)
        {
            try
            {
                Logger.Info();
                var reimplanteBL = new ReimplanteBL();
                var result       = reimplanteBL.ObtenerCabezasEnEnfermeria(ganadoEnfermeria, tipoMovimiento);

                return(result);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#18
0
        /// <summary>
        ///    Obtiene una Cantidad de Animales que se encuentran en enfermeria
        /// </summary>
        /// <param name="ganadoEnfermeria"></param>
        /// <param name="noTipoCorral"></param>
        /// <returns></returns>
        public int ObtenerCabezasEnEnfermeria(EntradaGanadoInfo ganadoEnfermeria, int noTipoCorral)
        {
            try
            {
                Logger.Info();
                var corteGanadoBL = new CorteGanadoBL();
                var result        = corteGanadoBL.ObtenerCabezasEnEnfermeria(ganadoEnfermeria, noTipoCorral);

                return(result);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#19
0
        public Dictionary <int, decimal> ObtenerCostoFleteProrrateado(EntradaGanadoInfo entradaGanado, List <EntradaGanadoCostoInfo> listaCostosEmbarque, List <EntradaGanadoInfo> listaCompraDirecta)
        {
            Dictionary <int, decimal> importesProrrateados;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                importesProrrateados = interfaceSalidaBL.ObtenerCostoFleteProrrateado(entradaGanado, listaCostosEmbarque, listaCompraDirecta);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(importesProrrateados);
        }
示例#20
0
        /// <summary>
        /// Metodo que Obtiene los embarques que estan pendientes de recibir
        /// </summary>
        /// <param name="entradaGanado"></param>
        internal int PendientesRecibir(EntradaGanadoInfo entradaGanado)
        {
            int totalPendientes;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                totalPendientes = embarqueDAL.PendientesRecibir(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(totalPendientes);
        }
示例#21
0
        /// <summary>
        ///     Obtiene una Interface de Salida por SalidaID y OrganizacionID
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        public EntradaGanadoCosteoInfo ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado)
        {
            EntradaGanadoCosteoInfo entradaGanadoCosteoInfo;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                entradaGanadoCosteoInfo = interfaceSalidaBL.ObtenerPorSalidaOrganizacion(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(entradaGanadoCosteoInfo);
        }
        /// <summary>
        /// Valdiar si existen Compras directas en el ruteo
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        public List <EntradaGanadoInfo> ObtenerEntradasPorEmbarqueID(EntradaGanadoInfo entradaGanado)
        {
            List <EntradaGanadoInfo> info;

            try
            {
                Logger.Info();
                var costoEmbarqueDetalleBL = new CostoEmbarqueDetalleBL();
                info = costoEmbarqueDetalleBL.ObtenerEntradasPorEmbarqueID(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
示例#23
0
        /// <summary>
        ///     Obtiene la Lista de Costos del Embarque
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        internal List <EntradaGanadoCostoInfo> ObtenerPorEmbarqueIDOrganizacionrigen(EntradaGanadoInfo entradaGanado)
        {
            List <EntradaGanadoCostoInfo> info;

            try
            {
                Logger.Info();
                var costoEmbarqueDetalleDAL = new CostoEmbarqueDetalleDAL();
                info = costoEmbarqueDetalleDAL.ObtenerPorEmbarqueIDOrganizacionOrigen(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
        /// <summary>
        /// Obtener entrada de ganado
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        internal static EntradaGanadoInfo ObtenerEntradaGanado(DataSet ds)
        {
            var entradaGanadoInfo = new EntradaGanadoInfo();

            try
            {
                Logger.Info();
                var dt = ds.Tables[ConstantesDAL.DtDatos];
                foreach (DataRow dr in dt.Rows)
                {
                    entradaGanadoInfo.FechaEntrada   = Convert.ToDateTime(dr["FechaEntrada"]);
                    entradaGanadoInfo.EmbarqueID     = dr.Field <int>("EmbarqueID");
                    entradaGanadoInfo.OrganizacionID = dr.Field <int>("OrganizacionID");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(entradaGanadoInfo);
        }
示例#25
0
        /// <summary>
        /// Metodo para agregar las dependencias a las ayudas de Organización Origen y Destino
        /// </summary>
        private void AsignaDependenciasAyudaOrganizacion(SKAyuda <OrganizacionInfo> controlAyuda, ComboBox combo)
        {
            controlAyuda.Dependencias = null;

            IList <IDictionary <IList <String>, Object> > dependencias = new List <IDictionary <IList <String>, Object> >();
            IDictionary <IList <String>, Object>          dependecia   = new Dictionary <IList <String>, Object>();

            var            dependenciasGanado = new EntradaGanadoInfo();
            IList <String> camposDependientes = new List <String>();

            camposDependientes.Add("EmbarqueID");
            dependecia.Add(camposDependientes, dependenciasGanado);
            dependencias.Add(dependecia);

            dependecia         = new Dictionary <IList <String>, Object>();
            camposDependientes = new List <String> {
                "TipoOrganizacionID"
            };
            dependecia.Add(camposDependientes, combo.SelectedItem);
            dependencias.Add(dependecia);

            controlAyuda.Dependencias = dependencias;
        }
示例#26
0
        /// <summary>
        /// Obtiene la Lista de los Costos Automaticos, para la funcionalidad de Costeo Entrada Ganado
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        internal List <EntradaGanadoCostoInfo> ObtenerCostosAutomaticos(EntradaGanadoInfo entradaGanado)
        {
            List <EntradaGanadoCostoInfo> listaEntradaGanadoCostos = new List <EntradaGanadoCostoInfo>();

            try
            {
                Logger.Info();
                var costoOrganizacionDAL = new CostoOrganizacionDAL();

                var listaCostos = costoOrganizacionDAL.ObtenerPorOrganizacion(entradaGanado);

                if (listaCostos == null)
                {
                    return(listaEntradaGanadoCostos);
                }

                listaCostos.ForEach(costo =>
                {
                    var entradaGanadoCosto = new EntradaGanadoCostoInfo
                    {
                        Costo   = costo.Costo,
                        Importe = costo.Importe
                    };
                    listaEntradaGanadoCostos.Add(entradaGanadoCosto);
                });
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(listaEntradaGanadoCostos);
        }
示例#27
0
 /// <summary>
 /// Metodo que actualiza el estatus a recibido de la programacion de embarque (Cabecero)
 /// </summary>
 /// <param name="entradaGanado"></param>
 /// <param name="estatus"></param>
 internal void ActualizarEstatus(EntradaGanadoInfo entradaGanado, Estatus estatus)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parametros = AuxEmbarqueDAL.ObtenerParametrosActualizarEstatus(entradaGanado, estatus);
         Update("Embarque_ActualizarEstatus", parametros);
     }
     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);
     }
 }
示例#28
0
        /// <summary>
        /// Obtiene los valores para la reimpresion de
        /// la poliza de entrada de ganado
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <param name="polizaClave"> </param>
        private MemoryStream ReimprimirPolizaEntrada(EntradaGanadoInfo entradaGanado, TipoPolizaInfo polizaClave)
        {
            EntradaGanadoCosteoInfo entradaGanadoCosteo;
            var esGanadera            = false;
            var entradaGanadoCosteoBL = new EntradaGanadoCosteoBL();

            if (entradaGanado.TipoOrigen == TipoOrganizacion.Ganadera.GetHashCode())
            {
                var interfaceSalidaTraspasoBL = new InterfaceSalidaTraspasoBL();
                entradaGanadoCosteo =
                    interfaceSalidaTraspasoBL.ObtenerDatosInterfaceSalidaTraspaso(entradaGanado.OrganizacionID, entradaGanado.FolioOrigen);
                esGanadera = true;

                EntradaGanadoCosteoInfo entradaGanadoCosteoComplementoCostos
                    = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID);
                entradaGanadoCosteo.ListaCostoEntrada.AddRange(entradaGanadoCosteoComplementoCostos.ListaCostoEntrada.Where(id => id.Costo.CostoID != 1));
            }
            else
            {
                entradaGanadoCosteo = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID);
            }

            MemoryStream pdf = null;

            if (entradaGanadoCosteo != null)
            {
                if (!esGanadera)
                {
                    var          cuentaPL          = new CuentaBL();
                    const string CUENTA_INVENTARIO = "CTAINVTRAN";
                    entradaGanadoCosteo.ListaCostoEntrada.ForEach(costo =>
                    {
                        if (!string.IsNullOrWhiteSpace(costo.DescripcionCuenta))
                        {
                            return;
                        }
                        var claveContable = cuentaPL.ObtenerPorClaveCuentaOrganizacion(CUENTA_INVENTARIO,
                                                                                       entradaGanado.OrganizacionOrigenID);
                        if (claveContable != null)
                        {
                            costo.DescripcionCuenta = claveContable.Descripcion;
                        }
                    });
                }
                var contenedorCosteoEntrada = new ContenedorCosteoEntradaGanadoInfo
                {
                    EntradaGanado       = entradaGanado,
                    EntradaGanadoCosteo = entradaGanadoCosteo
                };
                PolizaAbstract poliza;
                var            tipoPoliza = esGanadera ? TipoPoliza.EntradaGanadoDurango : TipoPoliza.EntradaGanado;
                if (esGanadera)
                {
                    poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza);
                }
                else
                {
                    poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza);
                }
                var polizaBL       = new PolizaBL();
                int organizacionID = entradaGanado.OrganizacionID;

                IList <PolizaInfo> polizasEntrada = polizaBL.ObtenerPoliza(tipoPoliza, organizacionID,
                                                                           entradaGanado.FechaEntrada,
                                                                           entradaGanado.FolioEntrada.ToString(),
                                                                           polizaClave.ClavePoliza, 1);
                if (polizasEntrada != null)
                {
                    polizasEntrada = poliza.GeneraPoliza(contenedorCosteoEntrada);
                    pdf            = poliza.ImprimePoliza(contenedorCosteoEntrada, polizasEntrada);
                }
            }
            return(pdf);
        }
示例#29
0
        /// <summary>
        /// Genera las Lineas del Detalle
        /// </summary>
        /// <param name="lineas"></param>
        /// <param name="contenedorCosteoEntrada"></param>
        private void GeneraLineasDetalle(IList <LineaImpresionInfo> lineas, IList <EntradaDetalleInfo> detalles, EntradaGanadoInfo entradaGanado)
        {
            var opcionesLinea = new OpcionesLinea
            {
                Fuente          = new Font(NombreFuente, 10),
                MargenIzquierdo = 20
            };
            LineaImpresionInfo linea;
            EntradaDetalleInfo detalle;

            for (int indexDetalle = 0; indexDetalle < detalles.Count; indexDetalle++)
            {
                detalle = detalles[indexDetalle];

                decimal pesoPromedio    = decimal.Round(detalle.PesoOrigen / detalle.Cabezas, 0);
                decimal importePromedio = decimal.Round(detalle.Importe / detalle.Cabezas, 0);

                StringBuilder SB = new StringBuilder();
                SB.Append("{0}").Append(String.Empty.PadRight(6));
                SB.Append("{1}").Append(String.Empty.PadRight(6));
                SB.Append("{2}").Append(String.Empty.PadRight(6));
                SB.Append("{3}").Append(String.Empty.PadRight(6));
                SB.Append("{4}").Append(String.Empty.PadRight(6));
                SB.Append("{5}").Append(String.Empty.PadRight(6));
                SB.Append("{6}-{7}").Append(String.Empty.PadRight(6));
                SB.Append("{8}").Append(String.Empty.PadRight(6));
                SB.Append("{9}");
                linea = new LineaImpresionInfo
                {
                    Texto = String.Format(SB.ToString()
                                          , detalle.PesoOrigen, detalle.PesoLlegada, detalle.Cabezas
                                          , detalle.TipoGanado.Descripcion, detalle.PrecioKilo, detalle.Importe
                                          , entradaGanado.Lote.Lote, entradaGanado.CodigoCorral, pesoPromedio, importePromedio),
                    Opciones = opcionesLinea
                };
                lineas.Add(linea);
            }
        }
示例#30
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);
        }