public List <DetalleNave> ListarDetallesdeEnvio(string ordenServicio)
        {
            iDB2Connection cn = new iDB2Connection(ConfigurationManager.ConnectionStrings["cnnRansa"].ConnectionString);
            iDB2Command    cmd;
            string         tipoOperacion = obtenerTipoOperacion(ordenServicio);

            if (tipoOperacion.Equals("I"))
            {
                cmd = new iDB2Command("SP_INTEGRACION_CARCOOL_IMPO", cn);
            }
            else
            {
                cmd = new iDB2Command("SP_INTEGRACION_CARCOOL_EXPO", cn);
            }

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("XNORSRN", iDB2DbType.iDB2VarChar).Value = ordenServicio;

            List <DetalleNave> detalleNave = new List <DetalleNave>();

            try
            {
                cn.Open();
                iDB2DataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    //refrescar datos
                    DetalleNave e = new DetalleNave();
                    e.Recalada    = dr.GetString(dr.GetOrdinal("OrdenServicio"));
                    e.Manifiesto  = dr.GetString(dr.GetOrdinal("Manifiesto"));
                    e.Nave        = dr.GetString(dr.GetOrdinal("Nave")).Trim();
                    e.Viaje       = dr.GetString(dr.GetOrdinal("Viaje")).Trim();
                    e.Operador    = dr.GetString(dr.GetOrdinal("Operador"));
                    e.FechaArribo = dr.GetDateTime(dr.GetOrdinal("FechaArribo"));
                    //e.FechaTerminoDescarga = dr.IsDBNull(dr.GetOrdinal("FechaterminoDescarga")) ? default(DateTime) : dr.GetDateTime(dr.GetOrdinal("FechaterminoDescarga"));
                    e.FechaTerminoDescarga = dr.GetString(dr.GetOrdinal("FechaterminoDescarga")) == "" ? DateTime.Now : dr.GetDateTime(dr.GetOrdinal("FechaterminoDescarga"));
                    //e.FechaCutOffdry = dr.IsDBNull(dr.GetOrdinal("FechaCutOffdry")) ? default(DateTime) : dr.GetDateTime(dr.GetOrdinal("FechaCutOffdry"));
                    e.FechaCutOffdry = dr.GetString(dr.GetOrdinal("FechaCutOffdry")) == "" ? DateTime.Now : dr.GetDateTime(dr.GetOrdinal("FechaCutOffdry"));
                    //e.FechaCutOffReefer = dr.IsDBNull(dr.GetOrdinal("FechaCutOffReefer")) ? default(DateTime) : dr.GetDateTime(dr.GetOrdinal("FechaCutOffReefer"));
                    e.FechaCutOffReefer = dr.GetString(dr.GetOrdinal("FechaCutOffReefer")) == "" ? DateTime.Now : dr.GetDateTime(dr.GetOrdinal("FechaCutOffReefer"));
                    e.FechaZarpe        = dr.IsDBNull(dr.GetOrdinal("FechaZarpe")) ? DateTime.Now : dr.GetDateTime(dr.GetOrdinal("FechaZarpe"));
                    e.TipoOperacion     = dr.GetString(dr.GetOrdinal("TipoOperacion"));
                    e.Contenedor        = dr.GetString(dr.GetOrdinal("Contenedor")).Trim();
                    e.Tipo           = dr.GetString(dr.GetOrdinal("TipodeDocumento"));
                    e.BlBooking      = dr.GetString(dr.GetOrdinal("BlBooking")).Trim();
                    e.Consignatario  = dr.GetString(dr.GetOrdinal("Consignatario")).Trim();
                    e.TipoContenedor = dr.GetString(dr.GetOrdinal("TipoContenedor"));
                    e.Dimension      = dr.GetString(dr.GetOrdinal("Dimension"));
                    e.Condicion      = dr.GetString(dr.GetOrdinal("Condicion"));
                    e.Peso           = dr.GetDecimal(dr.GetOrdinal("Peso"));
                    e.Temperatura    = dr.GetString(dr.GetOrdinal("Temperatura"));
                    e.Imo            = dr.GetBoolean(dr.GetOrdinal("IMO"));
                    e.Iqbf           = dr.GetBoolean(dr.GetOrdinal("IQBF"));
                    e.SINI           = dr.GetBoolean(dr.GetOrdinal("SINI"));
                    e.Conexion       = dr.GetBoolean(dr.GetOrdinal("Conexion"));

                    detalleNave.Add(e);
                }
            }
            catch (Exception ex)
            {
                List <string> listaDestinatarios = new List <string>();
                List <string> listaCopia         = new List <string>();
                List <string> listaCopiaOculta   = new List <string>();

                string destinatarios = ConfigurationManager.AppSettings["Destinatarios"].ToString();
                if (destinatarios != "" && destinatarios.Contains(";"))
                {
                    var correosDestino = destinatarios.Split(';');
                    foreach (string item in correosDestino)
                    {
                        listaDestinatarios.Add(item);
                    }
                }
                else
                {
                    listaDestinatarios.Add(destinatarios);
                }

                string copia = ConfigurationManager.AppSettings["ConCopia"].ToString();
                if (copia != "" && copia.Contains(";"))
                {
                    var correosCopia = copia.Split(';');
                    foreach (string item in correosCopia)
                    {
                        listaCopia.Add(item);
                    }
                }
                else
                {
                    listaCopia.Add(copia);
                }

                string copiaOculta = ConfigurationManager.AppSettings["CopiaOculta"].ToString();
                if (copiaOculta != "" && copiaOculta.Contains(";"))
                {
                    var correosCopiaOculta = copiaOculta.Split(';');
                    foreach (string item in correosCopiaOculta)
                    {
                        listaCopiaOculta.Add(item);
                    }
                }
                else
                {
                    listaCopiaOculta.Add(copiaOculta);
                }

                new ManejadorCorreos().EnviarCorreo(ConfigurationManager.AppSettings["AsuntoCorreoError"].ToString(), ex.Message.ToString(), listaDestinatarios, listaCopia, listaCopiaOculta);
                detalleNave = null;
            }
            finally
            {
                cn.Close();
            }

            return(detalleNave);
        }