/// <summary>
        /// Parseia os dados da linha referente ao detalhe do arquivo e insere na base de dados
        /// </summary>
        /// <param name="linha"></param>
        /// <param name="idArquivo"></param>
        public static crtACSOIDTSCDetalheEN Mapeia(string linha, int idArquivo)
        {
            try
            {
                var acsIdstDet = new crtACSOIDTSCDetalheEN()
                {
                    TpRegistro   = linha.Substring(0, 1),
                    TpPanProxy   = linha.Substring(1, 1),
                    PanProxy     = linha.Substring(2, 32),
                    Cpf          = linha.Substring(34, 11).TrimEnd(null),
                    Nome         = linha.Substring(45, 50).TrimEnd(null),
                    NomeFacial   = linha.Substring(95, 25).TrimEnd(null),
                    DtNascimento = String.IsNullOrEmpty(linha.Substring(120, 8).Trim()) ? (DateTime?)null : Data.ParseEstendido(linha.Substring(120, 8), Data.FormatoData.AAAAMMDD),
                    Sexo         = linha.Substring(128, 1).TrimEnd(null),
                    CnpjFilial   = linha.Substring(129, 14).TrimEnd(null),
                    Grupo        = linha.Substring(143, 20).TrimEnd(null),
                    Email        = linha.Substring(163, 30).TrimEnd(null),
                    DddCel       = linha.Substring(193, 2).TrimEnd(null),
                    Celular      = linha.Substring(195, 9).TrimEnd(null),
                    NomeMae      = linha.Substring(204, 50).TrimEnd(null),
                    IdRegistro   = linha.Substring(284, 10).TrimEnd(null),
                    NumLinha     = Convert.ToInt32(linha.Substring(294, 6))
                };

                return(acsIdstDet);
            }
            catch (Exception e)
            {
                if (upSight.Consulta.Base.BD.Geral.TS.TraceError)
                {
                    Trace.TraceError("{0}: {1}", new object[] { "u.TISC.TISC.Det", e });
                }
                throw;
            }
        }
        /// <summary>
        /// Insere os dados em crtACSOIDTSCDetalhe
        /// </summary>
        /// <param name="acsIdstDet"></param>
        public static void Insere(this crtACSOIDTSCDetalheEN acsIdstDet)
        {
            using (SqlConnection cnx = new SqlConnection(ConfigurationManager.ConnectionStrings["Global"].ConnectionString))
            {
                try
                {
                    string query = " INSERT [crtACSOIDTSCDetalhe] " +
                                   " (IdArquivo, TpRegistro, TpPanProxy, PanProxy, CPF, Nome, NomeFacial, DtNascimento, Sexo, CnpjFilial, " +
                                   " Grupo, Email, DDDCel, Celular, NomeMae, IdRegistro, NumLinha) " +
                                   " SELECT @IdArquivo, @TpRegistro, @TpPanProxy, @PanProxy, @CPF, @Nome, @NomeFacial, @DtNascimento, @Sexo, @CnpjFilial, " +
                                   " @Grupo, @Email, @DDDCel, @Celular, @NomeMae, @IdRegistro, @NumLinha ";

                    using (SqlCommand cmd = new SqlCommand(query, cnx))
                    {
                        cmd.CommandType = CommandType.Text;

                        cmd.Parameters.Add("IdArquivo", SqlDbType.Int).Value          = acsIdstDet.IdArquivo;
                        cmd.Parameters.Add("TpRegistro", SqlDbType.Char, 1).Value     = acsIdstDet.TpRegistro;
                        cmd.Parameters.Add("TpPanProxy", SqlDbType.Char, 1).Value     = acsIdstDet.TpPanProxy;
                        cmd.Parameters.Add("PanProxy", SqlDbType.VarChar, 32).Value   = acsIdstDet.PanProxy;
                        cmd.Parameters.Add("CPF", SqlDbType.VarChar, 11).Value        = acsIdstDet.Cpf;
                        cmd.Parameters.Add("Nome", SqlDbType.VarChar, 50).Value       = acsIdstDet.Nome;
                        cmd.Parameters.Add("NomeFacial", SqlDbType.VarChar, 25).Value = BDGeral.BDObtemValor(acsIdstDet.NomeFacial);
                        cmd.Parameters.Add("DtNascimento", SqlDbType.Date).Value      = BDGeral.BDObtemValor <DateTime>(acsIdstDet.DtNascimento);
                        cmd.Parameters.Add("Sexo", SqlDbType.Char, 1).Value           = BDGeral.BDObtemValor(acsIdstDet.Sexo);
                        cmd.Parameters.Add("CnpjFilial", SqlDbType.VarChar, 14).Value = BDGeral.BDObtemValor(acsIdstDet.CnpjFilial);
                        cmd.Parameters.Add("Grupo", SqlDbType.VarChar, 20).Value      = BDGeral.BDObtemValor(acsIdstDet.Grupo);
                        cmd.Parameters.Add("Email", SqlDbType.VarChar, 30).Value      = BDGeral.BDObtemValor(acsIdstDet.Email);
                        cmd.Parameters.Add("DDDCel", SqlDbType.VarChar, 2).Value      = BDGeral.BDObtemValor(acsIdstDet.DddCel);
                        cmd.Parameters.Add("Celular", SqlDbType.VarChar, 9).Value     = BDGeral.BDObtemValor(acsIdstDet.Celular);
                        cmd.Parameters.Add("NomeMae", SqlDbType.VarChar, 50).Value    = BDGeral.BDObtemValor(acsIdstDet.NomeMae);
                        cmd.Parameters.Add("IdRegistro", SqlDbType.VarChar, 10).Value = BDGeral.BDObtemValor(acsIdstDet.IdRegistro);
                        cmd.Parameters.Add("NumLinha", SqlDbType.Int).Value           = acsIdstDet.NumLinha;

                        cnx.Open();

                        cmd.ExecuteNonQuery();
                    }
                }
                catch (Exception sqlExc)
                {
                    if (upSight.Consulta.Base.BD.Geral.TS.TraceError)
                    {
                        Trace.TraceError("{0}: {1}", new object[] { "u.TISC.TISC.Det", sqlExc });
                    }
                    throw;
                }
            }
        }
        /// <summary>
        /// Parseia os dados de uma planilha de excel referente ao detalhe do arquivo e insere na base de dados
        /// </summary>
        /// <param name="linha"></param>
        /// <param name="idArquivo"></param>
        public crtACSOIDTSCDetalheEN MapeiaXLSDet(DataRow dr, int idArquivo, int numLinha)
        {
            try
            {
                var acsIdtsDet = new crtACSOIDTSCDetalheEN()
                {
                    TpRegistro = dr["TpRegistro"].ToString(),
                    TpPanProxy = dr["TpPanProxy"].ToString(),
                    PanProxy   = dr["PanProxy"].ToString(),
                    Cpf        = dr["CPF"].ToString(),
                    Nome       = dr["Nome"].ToString(),
                    NomeFacial = dr["NomeFacial"].ToString(),
                    Sexo       = dr["Sexo"].ToString(),
                    CnpjFilial = dr["CnpjFilial"].ToString(),
                    Grupo      = dr["Grupo"].ToString(),
                    Email      = dr["Email"].ToString(),
                    DddCel     = dr["DDDCel"].ToString(),
                    Celular    = dr["Celular"].ToString(),
                    NomeMae    = dr["NomeMae"].ToString(),
                    IdRegistro = dr["IdRegistro"].ToString()
                };

                string   dtNasc       = dr["DtNascimento"].ToString();
                DateTime?dtNascimento = String.IsNullOrEmpty(dtNasc) ? (DateTime?)null : Data.ParseEstendido(dtNasc, Data.FormatoData.AAAAMMDD);

                return(acsIdtsDet);
            }
            catch (Exception e)
            {
                if (upSight.Consulta.Base.BD.Geral.TS.TraceError)
                {
                    Trace.TraceError("{0}: {1}", new object[] { "u.TISC.TISC.Det", e });
                }
                throw;
            }
        }
        /// <summary>
        /// Parseia os dados de uma planilha de excel referente ao detalhe do arquivo e insere na base de dados
        /// </summary>
        /// <param name="linha"></param>
        /// <param name="idArquivo"></param>
        public crtACSOIDTSCDetalheEN MapeiaXLSDet(DataRow dr, int idArquivo, int numLinha)
        {
            try
            {
                var acsIdtsDet = new crtACSOIDTSCDetalheEN()
                {
                    TpRegistro = dr["TpRegistro"].ToString(),
                    TpPanProxy = dr["TpPanProxy"].ToString(),
                    PanProxy = dr["PanProxy"].ToString(),
                    Cpf = dr["CPF"].ToString(),
                    Nome = dr["Nome"].ToString(),
                    NomeFacial = dr["NomeFacial"].ToString(),
                    Sexo = dr["Sexo"].ToString(),
                    CnpjFilial = dr["CnpjFilial"].ToString(),
                    Grupo = dr["Grupo"].ToString(),
                    Email = dr["Email"].ToString(),
                    DddCel = dr["DDDCel"].ToString(),
                    Celular = dr["Celular"].ToString(),
                    NomeMae = dr["NomeMae"].ToString(),
                    IdRegistro = dr["IdRegistro"].ToString()
                };

                string dtNasc = dr["DtNascimento"].ToString();
                DateTime? dtNascimento = String.IsNullOrEmpty(dtNasc) ? (DateTime?)null : Data.ParseEstendido(dtNasc, Data.FormatoData.AAAAMMDD);

                return acsIdtsDet;
            }
            catch (Exception e)
            {
                if (upSight.Consulta.Base.BD.Geral.TS.TraceError)
                    Trace.TraceError("{0}: {1}", new object[] { "u.TISC.TISC.Det", e });
                throw;
            }
        }
        /// <summary>
        /// Parseia os dados da linha referente ao detalhe do arquivo e insere na base de dados
        /// </summary>
        /// <param name="linha"></param>
        /// <param name="idArquivo"></param>
        public static crtACSOIDTSCDetalheEN Mapeia(string linha, int idArquivo)
        {
            try
            {
                var acsIdstDet = new crtACSOIDTSCDetalheEN()
                {
                    TpRegistro = linha.Substring(0, 1),
                    TpPanProxy = linha.Substring(1, 1),
                    PanProxy = linha.Substring(2, 32),
                    Cpf = linha.Substring(34, 11).TrimEnd(null),
                    Nome = linha.Substring(45, 50).TrimEnd(null),
                    NomeFacial = linha.Substring(95, 25).TrimEnd(null),
                    DtNascimento = String.IsNullOrEmpty(linha.Substring(120, 8).Trim()) ? (DateTime?)null : Data.ParseEstendido(linha.Substring(120, 8), Data.FormatoData.AAAAMMDD),
                    Sexo = linha.Substring(128, 1).TrimEnd(null),
                    CnpjFilial = linha.Substring(129, 14).TrimEnd(null),
                    Grupo = linha.Substring(143, 20).TrimEnd(null),
                    Email = linha.Substring(163, 30).TrimEnd(null),
                    DddCel = linha.Substring(193, 2).TrimEnd(null),
                    Celular = linha.Substring(195, 9).TrimEnd(null),
                    NomeMae = linha.Substring(204, 50).TrimEnd(null),
                    IdRegistro = linha.Substring(284, 10).TrimEnd(null),
                    NumLinha = Convert.ToInt32(linha.Substring(294, 6))
                };

                return acsIdstDet;
            }
            catch (Exception e)
            {
                if (upSight.Consulta.Base.BD.Geral.TS.TraceError)
                    Trace.TraceError("{0}: {1}", new object[] { "u.TISC.TISC.Det", e });
                throw;
            }
        }