示例#1
0
        private int[] CalcularDigitoDeControle()
        {
            int[] digitoVerificadorCalculado = { 0, 0 };

            for (int i = 0; i < 2; i++)
            {
                int       peso        = 2;
                const int pesoMaximo  = 10;
                int       inicio      = 0;
                int       tamanho     = NumeroDocumento.Length - 4;
                string    baseCalculo = NumeroDocumento.Substring(inicio, tamanho);

                if (i > 0)
                {
                    peso        = 7;
                    inicio      = NumeroDocumento.Length - 4;
                    tamanho     = 3;
                    baseCalculo = NumeroDocumento.Substring(inicio, tamanho);
                }

                int soma = baseCalculo.AplicarPesoDaEsquerdaParaDireita(peso, pesoMaximo);

                digitoVerificadorCalculado[i] = (soma % 11) >= 10 ? 0 : (soma % 11);
            }

            return(digitoVerificadorCalculado);
        }
示例#2
0
 public void Set()
 {
     CnpjValido        = "60.353.014/0001-10";
     CpfValido1        = "111.111.112-00";
     CpfValido2        = "078.463.799-76";
     NumeroDoDocumento = new NumeroDocumento();
 }
示例#3
0
        public static Emisor BuscarEmisor(int id)
        {
            SqlConnection conexion    = null;
            SqlDataReader lectorDatos = null;

            try
            {
                conexion = new SqlConnection(DatosConexion.CadenaConexion);

                SqlCommand comando = conexion.CreateCommand();
                comando.CommandText = "BuscarEmisor";
                comando.CommandType = CommandType.StoredProcedure;

                comando.Parameters.AddWithValue("@id", id);

                conexion.Open();

                lectorDatos = comando.ExecuteReader();

                Emisor ret = null;

                if (lectorDatos.Read())
                {
                    TipoDocumentoType Documento = PTipoDocumentoType.BuscarTipoDocumento(2);
                    NumeroDocumento   RUCEmisor = new NumeroDocumento(Documento, (string)lectorDatos["RUCEmisor"]);
                    int    Id           = (int)lectorDatos["Id"];
                    string RznSoc       = (string)lectorDatos["RznSoc"];
                    string CdgDGISuc    = (string)lectorDatos["CdgDGISuc"];
                    string DomFiscal    = (string)lectorDatos["DomFiscal"];
                    string Ciudad       = Convert.ToString(lectorDatos["Ciudad"]);
                    string Departamento = Convert.ToString(lectorDatos["Departamento"]);
                    string NomComercial = Convert.ToString(lectorDatos["NomComercial"]);
                    string GiroEmis     = Convert.ToString(lectorDatos["GiroEmis"]);
                    string Telefono     = Convert.ToString(lectorDatos["Telefono"]);
                    string CorreoEmisor = Convert.ToString(lectorDatos["CorreoEmisor"]);
                    string EmiSucursal  = Convert.ToString(lectorDatos["EmiSucursal"]);
                    ret          = new Emisor(RUCEmisor, RznSoc, CdgDGISuc, DomFiscal, Ciudad, Departamento, NomComercial, GiroEmis, Telefono, CorreoEmisor, EmiSucursal);
                    ret.IdEmisor = Id;
                }

                return(ret);
            }
            catch (Exception ex)
            {
                throw new ExcepcionesPersonalizadas.
                      Persistencia("No se pudo buscar " + mensaje + ex.Message + ".");
            }
            finally
            {
                if (lectorDatos != null)
                {
                    lectorDatos.Close();
                }

                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
示例#4
0
        public static List <Receptor> ListarReceptores()
        {
            SqlConnection conexion    = null;
            SqlDataReader lectorDatos = null;

            try
            {
                conexion = new SqlConnection(DatosConexion.CadenaConexion);

                SqlCommand comando = conexion.CreateCommand();
                comando.CommandText = "ListarReceptores";
                comando.CommandType = CommandType.StoredProcedure;

                conexion.Open();

                lectorDatos = comando.ExecuteReader();

                List <Receptor> cod = new List <Receptor>();

                Receptor ag = null;

                while (lectorDatos.Read())
                {
                    TipoDocumentoType Documento         = PTipoDocumentoType.BuscarTipoDocumento((int)lectorDatos["TipoDocRecep"]);
                    NumeroDocumento   NumeroDeDocumento = new NumeroDocumento(Documento, (string)lectorDatos["DocRecep"]);
                    PaisType          Pais          = PPaisType.BuscarPaisType((string)lectorDatos["CodPaisRecep"]);
                    string            RznSocRecep   = (string)lectorDatos["RznSocRecep"];
                    string            DirRecep      = (string)lectorDatos["DirRecep"];
                    string            CiudadRecep   = (string)lectorDatos["CiudadRecep"];
                    string            DeptoRecep    = (string)lectorDatos["DeptoRecep"];
                    string            CP            = (string)lectorDatos["CP"];
                    string            InfoAdicional = (string)lectorDatos["InfoAdicional"];
                    string            LugarDestEnt  = (string)lectorDatos["LugarDestEnt"];
                    string            CompraID      = (string)lectorDatos["CompraID"];
                    ag = new Receptor(NumeroDeDocumento, Pais, RznSocRecep, DirRecep,
                                      CiudadRecep, DeptoRecep, CP, InfoAdicional, LugarDestEnt, CompraID);
                    ag.Id = (int)lectorDatos["Id"];
                    cod.Add(ag);
                }

                return(cod);
            }
            catch (Exception ex)
            {
                throw new ExcepcionesPersonalizadas.Persistencia("No se pudo conseguir las listas de " + mensaje + ex.Message + ".");
            }
            finally
            {
                if (lectorDatos != null)
                {
                    lectorDatos.Close();
                }

                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
示例#5
0
        public void Dominio_NumeroDeDocumento_Converter_string_para_CNPJ_OK()
        {
            //Arrange - Action
            Action testeCNPJ = () => NumeroDoDocumento = CnpjValido;

            //Assert
            testeCNPJ.Should().NotThrow <Exception>();
        }
示例#6
0
        public static Receptor BuscarReceptor(int Id)
        {
            SqlConnection conexion    = null;
            SqlDataReader lectorDatos = null;

            try
            {
                conexion = new SqlConnection(DatosConexion.CadenaConexion);

                SqlCommand comando = conexion.CreateCommand();
                comando.CommandText = "BuscarReceptor";
                comando.CommandType = CommandType.StoredProcedure;

                comando.Parameters.AddWithValue("@id", Id);

                conexion.Open();

                lectorDatos = comando.ExecuteReader();

                Receptor ret = null;

                if (lectorDatos.Read())
                {
                    TipoDocumentoType Documento         = PTipoDocumentoType.BuscarTipoDocumento((int)lectorDatos["TipoDocRecep"]);
                    NumeroDocumento   NumeroDeDocumento = new NumeroDocumento(Documento, (string)lectorDatos["DocRecep"]);
                    PaisType          Pais          = PPaisType.BuscarPaisType((string)lectorDatos["CodPaisRecep"]);
                    string            RznSocRecep   = (string)lectorDatos["RznSocRecep"];
                    string            DirRecep      = Convert.ToString(lectorDatos["DirRecep"]);
                    string            CiudadRecep   = Convert.ToString(lectorDatos["CiudadRecep"]);
                    string            DeptoRecep    = Convert.ToString(lectorDatos["DeptoRecep"]);
                    string            CP            = Convert.ToString(lectorDatos["CP"]);
                    string            InfoAdicional = Convert.ToString(lectorDatos["InfoAdicional"]);
                    string            LugarDestEnt  = Convert.ToString(lectorDatos["LugarDestEnt"]);
                    string            CompraID      = Convert.ToString(lectorDatos["CompraID"]);
                    ret = new Receptor(NumeroDeDocumento, Pais, RznSocRecep, DirRecep,
                                       CiudadRecep, DeptoRecep, CP, InfoAdicional, LugarDestEnt, CompraID);
                    ret.Id = Id;
                }
                return(ret);
            }
            catch (Exception ex)
            {
                throw new ExcepcionesPersonalizadas.
                      Persistencia("No se pudo buscar " + mensaje + ".");
            }
            finally
            {
                if (lectorDatos != null)
                {
                    lectorDatos.Close();
                }

                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
示例#7
0
        /// <summary>
        /// Determina e aplica uma máscara de edição para o número do Cei.
        /// </summary>
        /// <returns>Retorna o número do Cei formatado com a máscara de edição.</returns>
        public string ToCeiFormat()
        {
            if (!CeiEstaValido())
            {
                return(NumeroDocumento);
            }

            return(long.TryParse(NumeroDocumento.RemoverMascaraEdicao().Trim(), out long numero) ? Convert.ToUInt64(numero).ToString(@"00\.000\.00000\/00") : "");
        }
示例#8
0
 private Pis(string numeroPis) : base(numeroPis, null)
 {
     if (!string.IsNullOrEmpty(NumeroDocumento))
     {
         if (NumeroDocumento.Length < _tamanhoPis)
         {
             NumeroDocumento = NumeroDocumento.PadLeft(_tamanhoPis, '0');
         }
     }
 }
示例#9
0
 private Cei(string numeroCei) : base(numeroCei, null)
 {
     if (!string.IsNullOrEmpty(NumeroDocumento))
     {
         if (NumeroDocumento.Length < TamanhoCei)
         {
             NumeroDocumento = NumeroDocumento.PadLeft(TamanhoCei, '0');
         }
     }
 }
示例#10
0
        public void Dominio_NumeroDeDocumento_Converter_string_para_CPF_OK()
        {
            //Arrange - Action
            Action testePrimeiroCPF = () => NumeroDoDocumento = CpfValido1;
            Action testeSegundoCPF  = () => NumeroDoDocumento = CpfValido2;

            //Assert
            testePrimeiroCPF.Should().NotThrow <Exception>();
            testeSegundoCPF.Should().NotThrow <Exception>();
        }
示例#11
0
        private int CalcularDigitoDeControle()
        {
            int[] peso = new int[10] {
                3, 2, 9, 8, 7, 6, 5, 4, 3, 2
            };

            int soma = NumeroDocumento.AplicarPesoDaEsquerdaParaDireita(peso);

            return((soma % 11) < 2 ? 0 : 11 - (soma % 11));
        }
示例#12
0
        public void Dominio_NumeroDeDocumento_DescobrirTipoDeDocumento_Deve_Retornar_CNPJ_Quando_O_Objeto_Possui_Um_CNPJ()
        {
            //Arrange
            NumeroDoDocumento = CnpjValido;
            //Action
            var stringTestCNPJ = NumeroDoDocumento.DescobrirTipoDeDocumento();

            //Assert
            stringTestCNPJ.Should().Be("CNPJ");
        }
示例#13
0
        public void Dominio_NumeroDeDocumento_DescobrirTipoDeDocumento_Deve_Retornar_CPF_Quando_O_Objeto_Possui_Um_CPF()
        {
            //Arrange
            NumeroDoDocumento = CpfValido1;
            //Action
            var stringTestCPF = NumeroDoDocumento.DescobrirTipoDeDocumento();

            //Assert
            stringTestCPF.Should().Be("CPF");
        }
示例#14
0
        public void Dominio_NumeroDeDocumento_Converter_CNPJ_para_string_OK()
        {
            //Arrange
            NumeroDoDocumento = CnpjValido;

            //Action
            string teste = (string)NumeroDoDocumento;

            //Assert
            teste.Should().Be(CnpjValido);
        }
示例#15
0
        public void Dominio_NumeroDeDocumento_Converter_StringCPFInvalido_DeveJogarException()
        {
            //Arrange
            string cpfInvalido = "078.473.799-79";

            //Action
            Action alvo = () => NumeroDoDocumento = cpfInvalido;

            //Assert
            alvo.Should().Throw <CPFInvalidoValorInvalidoException>();
        }
示例#16
0
        public void Dominio_NumeroDeDocumento_Converter_StringComTodosOsNumerosIguais_DeveJogarException()
        {
            //Arrange
            string cpfInvalido = "111.111.111-11";

            //Action
            Action alvo = () => NumeroDoDocumento = cpfInvalido;

            //Assert
            alvo.Should().Throw <NumeroDoDocumentoInvalido>();
        }
示例#17
0
        public void Dominio_NumeroDeDocumento_Converter_StringInvalida_StringVazia_DeveJogarException()
        {
            //Arrange
            string numeroDeDocumentoInvalido = "";

            //Action
            Action alvo = () => NumeroDoDocumento = numeroDeDocumentoInvalido;

            //Assert
            alvo.Should().Throw <NumeroDocumentoVazioOuNuloException>();
        }
示例#18
0
        public void Dominio_NumeroDeDocumento_Converter_StringCPFComLetras_DeveJogarException()
        {
            //Arrange
            string cpfInvalido = "asdasdasdasdas";

            //Action
            Action alvo = () => NumeroDoDocumento = cpfInvalido;

            //Assert
            alvo.Should().Throw <CPFInvalidoPossuiLetrasOuForaDePadraoException>();
        }
示例#19
0
        public void Dominio_NumeroDeDocumento_Converter_StringCNPJComCaracterEspecial_DeveJogarException()
        {
            //Arrange
            string cnpjInvalido = "60.353.014/0001@10";

            //Action
            Action alvo = () => NumeroDoDocumento = cnpjInvalido;

            //Assert
            alvo.Should().Throw <CNPJInvalidoPossuiLetrasOuForaDePadraoException>();
        }
示例#20
0
        public void Dominio_NumeroDeDocumento_Converter_StringCNPJinvalido_DeveJogarException()
        {
            //Arrange
            string cnpjInvalido = "60.353.014/0001-11";

            //Action
            Action alvo = () => NumeroDoDocumento = cnpjInvalido;

            //Assert
            alvo.Should().Throw <CNPJInvalidoValorInvalidoException>();
        }
示例#21
0
        public void Dominio_NumeroDeDocumento_Converter_StringComNumerosInvalidos_DeveJogarException()
        {
            //Arrange
            string cnpjInvalido = "123";

            //Action
            Action alvo = () => NumeroDoDocumento = cnpjInvalido;

            //Assert
            alvo.Should().Throw <NumeroDoDocumentoInvalido>();
        }
示例#22
0
        private bool PisEstaValido()
        {
            if (string.IsNullOrEmpty(NumeroDocumento) || NumeroDocumento.Length != _tamanhoPis ||
                NumeroDocumento.TemCaracterRepetido() || !NumeroDocumento.EhUmNumeroPositivo())
            {
                return(false);
            }

            int digitoDeControleCalculado = CalcularDigitoDeControle();
            int digitoDeControleInformado = ObterDigitoDeControleInformado();

            return(digitoDeControleCalculado == digitoDeControleInformado);
        }
示例#23
0
 public Receptor(NumeroDocumento Documento, PaisType Pais, string RznSocRecep, string DirRecep, string CiudadRecep,
                 string DeptoRecep, string CP, string InfoAdicional, string LugarDestEnt, string CompraID)
 {
     this.DocRecep      = Documento;
     this.PaisRecep     = Pais;
     this.RznSocRecep   = RznSocRecep;
     this.DirRecep      = DirRecep;
     this.CiudadRecep   = CiudadRecep;
     this.DeptoRecep    = DeptoRecep;
     this.CP            = CP;
     this.InfoAdicional = InfoAdicional;
     this.LugarDestEnt  = LugarDestEnt;
     this.CompraID      = CompraID;
 }
示例#24
0
        private bool CpfEstaValido()
        {
            if (string.IsNullOrEmpty(NumeroDocumento) || NumeroDocumento.Length != TamanhoCpf ||
                NumeroDocumento.TemCaracterRepetido() || !NumeroDocumento.EhUmNumeroPositivo())
            {
                return(false);
            }

            int[] digitoDeControleCalculado = CalcularDigitoDeControle();
            int[] digitoDeControleInformado = ObterUltimosDoisDigitoDeControleInformados();

            return(digitoDeControleInformado[0] == digitoDeControleCalculado[0] &&
                   digitoDeControleInformado[1] == digitoDeControleCalculado[1]);
        }
示例#25
0
        private bool TituloEleitorEstaValido()
        {
            if (string.IsNullOrEmpty(NumeroDocumento) || string.IsNullOrEmpty(ZonaEleitoral) ||
                string.IsNullOrEmpty(SecaoEleitoral) || NumeroDocumento.Length != TamanhoTituloEleitor ||
                NumeroDocumento.TemCaracterRepetido() || !NumeroDocumento.EhUmNumeroPositivo() ||
                !CodigoEstadoEmissorEhValido())
            {
                return(false);
            }

            int[] digitoDeControleCalculado = CalcularDigitoDeControle();
            int[] digitoDeControleInformado = ObterUltimosDoisDigitoDeControleInformados();

            return(digitoDeControleCalculado[0] == digitoDeControleInformado[0] && digitoDeControleCalculado[1] == digitoDeControleInformado[1]);
        }
示例#26
0
        internal string ObterBaseDeCalculo(int posicaoInicial, int tamanho)
        {
            int tamanhoDocumento;
            var numeroBase = "";

            if (!string.IsNullOrEmpty(NumeroDocumento) && posicaoInicial >= 0)
            {
                tamanhoDocumento = NumeroDocumento.Length;
                if (tamanhoDocumento > posicaoInicial && tamanho <= tamanhoDocumento)
                {
                    numeroBase = NumeroDocumento.Substring(posicaoInicial, tamanho);
                }
            }

            return(numeroBase);
        }
示例#27
0
        private TituloEleitor(string numeroTitulo, string zonaEleitoral, string secaoEleitoral) : base(numeroTitulo, null)
        {
            if (!string.IsNullOrEmpty(NumeroDocumento))
            {
                if (NumeroDocumento.Length < TamanhoTituloEleitor)
                {
                    NumeroDocumento = NumeroDocumento.PadLeft(TamanhoTituloEleitor, '0');
                }

                DomicilioEleitoral = NumeroDocumento.Substring(NumeroDocumento.Length - 4, 2);
                EstadoEmissor      = DomicilioEleitoral.ToDomicilioEleitoral();
            }

            ZonaEleitoral  = !string.IsNullOrEmpty(zonaEleitoral) ? zonaEleitoral.RemoverMascaraEdicao() : "";
            SecaoEleitoral = !string.IsNullOrEmpty(secaoEleitoral) ? secaoEleitoral.RemoverMascaraEdicao() : "";
        }
示例#28
0
        private int CalcularDigitoDeControle()
        {
            int digitoVerificadorCalculado;

            int[] pesos = new int[11] {
                7, 4, 1, 8, 5, 2, 1, 6, 3, 7, 4
            };
            int soma = NumeroDocumento.AplicarPesoDaEsquerdaParaDireita(pesos);

            int dezena  = (soma / 10);
            int unidade = soma - ((soma / 10) * 10);

            soma = dezena + unidade;

            unidade = soma - ((soma / 10) * 10);

            digitoVerificadorCalculado = 10 - unidade;

            return(digitoVerificadorCalculado);
        }
示例#29
0
        private bool CodigoEstadoEmissorEhValido()
        {
            bool      estadoEmissorValido              = true;
            const int CodigoDomicilioEleitoralSp       = 1;
            const int CodigoDomicilioEleitoralExterior = 28;

            if (NumeroDocumento.Length == TamanhoTituloEleitor)
            {
                int posicaoInicial           = NumeroDocumento.Length - 4;
                int tamanho                  = 2;
                int codigoDomicilioEleitoral = int.Parse(NumeroDocumento.Substring(posicaoInicial, tamanho));

                if (codigoDomicilioEleitoral < CodigoDomicilioEleitoralSp || codigoDomicilioEleitoral > CodigoDomicilioEleitoralExterior)
                {
                    estadoEmissorValido = false;
                }
            }

            return(estadoEmissorValido);
        }
示例#30
0
 protected void btnModificar_Click(object sender, EventArgs e)
 {
     try
     {
         NumeroDocumento Documento     = new NumeroDocumento(TiposDeDocumento[Convert.ToInt32(ddlTipoDoc.SelectedValue) - 2], txtDoc.Text);
         PaisType        pais          = new PaisType(ddlPais.SelectedItem.Value, ddlPais.SelectedItem.Text);
         Receptor        receptorNuevo = new Receptor(Documento, pais, txtRznSoc.Text, txtDireccion.Text, txtCiudad.Text, txtDepartamento.Text, txtCP.Text, txtInformacionAdicional.Text, txtLugarDestinatario.Text, txtCompraID.Text);
         receptorNuevo.Id = Convert.ToInt32(lblVerIdReceptor.Text);
         LReceptor.ModificarReceptor(receptorNuevo);
         lblMensaje.Text = "Receptor modificado con éxito";
         CargarReceptor();
     }
     catch (ExcepcionesPersonalizadas.Sistema ex)
     {
         lblMensaje.Text = ex.Message;
     }
     catch (Exception ex)
     {
         lblMensaje.Text = "¡Error! Ocurrió un error al cargar la página.";
     }
 }