예제 #1
0
        public void Equal()
        {
            var a = Cuit.Parse("27-05001941-7");
            var b = new Cuit(27, 5001941, 7);

            Assert.Equal(a, b);
        }
예제 #2
0
        public void New_DeberiaCrearValidoAunLosCortos()
        {
            var esperado = "27-05001941-7";
            var real     = new Cuit(27, 5001941, 7).ToString();

            Assert.Equal(esperado, real);
        }
예제 #3
0
        public void Parse_DeberiaIgnorarGuiones()
        {
            var esperado = "20-18627585-4";
            var real     = Cuit.Parse("20-18627585-4").ToString();

            Assert.Equal(esperado, real);
        }
예제 #4
0
        public void Parse_DeberiaAceptarCuitCortosSiUsaGuiones()
        {
            var esperado = "27-05001941-7";
            var real     = Cuit.Parse("27-5001941-7").ToString();

            Assert.Equal(esperado, real);
        }
예제 #5
0
        public void Parse_DeberiaAceptarDigitosPuros()
        {
            var esperado = "20-18627585-4";
            var real     = Cuit.Parse("20186275854").ToString();

            Assert.Equal(esperado, real);
        }
예제 #6
0
        public void New_DeberiaCrearValido()
        {
            var esperado = "20-18627585-4";
            var real     = new Cuit(20, 18627585, 4).ToString();

            Assert.Equal(esperado, real);
        }
예제 #7
0
 public string ToFixedString()
 {
     return(string.Format("{0:D3}{1}{2:d}{3}{4:0000000000000.00}"
                          , Codigo
                          , Cuit.PadRight(13).Substring(0, 13)
                          , Fecha
                          , Detalle.PadRight(16).Substring(0, 16)
                          , Monto
                          ));
 }
예제 #8
0
 private void txtNumero_Leave(object sender, System.EventArgs e)
 {
     if (_propTipoDoc.Contains(this.TipoDocSelected))
     {
         if (!Cuit.Control(txtNumero.Text))
         {
             MessageBox.Show(this, "El numero indicado es invalido para el tipo de documento seleccionado", "Alerta!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
         }
         _numero = txtNumero.Text.Trim();
     }
     else
     {
         _numero = txtNumero.Text.Trim();
     }
 }
예제 #9
0
        public Cliente(Cuit cuit, string nombre)
        {
            if (cuit == null)
            {
                throw new ArgumentNullException();
            }
            if (nombre == null)
            {
                throw new ArgumentNullException();
            }
            if (nombre.Length < 1)
            {
                throw new ArgumentException();
            }

            Cuit   = cuit;
            Nombre = nombre;
        }
예제 #10
0
        public async Task <Cuit> ValidPersonaAsync(long id)
        {
            Cuit cuit = new Cuit
            {
                Created     = _calendar.LocalTime(),
                Number      = id,
                Valid       = false,
                CuitDetails = new Collection <CuitDetail>()
            };
            //Puedo omitir el ambiente de homologacion y hacerlo siempre en prod.
            var endpoint = new PadronProd.PersonaServiceA5Client.EndpointConfiguration();
            var client   = new PadronProd.PersonaServiceA5Client(endpoint);

            try
            {
                var getPersonaResponse = await client.getPersonaAsync(await GetTokenTicket(AfipWsPersona, true), await GetSignTicket(AfipWsPersona, true), _config.GetValue <long>("CUIT"), id);

                cuit.Valid = true;
                var parse1 = getPersonaResponse.personaReturn.datosGenerales;
                var parse2 = getPersonaResponse.personaReturn.datosGenerales.domicilioFiscal;
                var personaTypeProperties     = parse1.GetType().GetProperties();
                var domicilioFiscalProperties = parse2.GetType().GetProperties();

                var props1 = personaTypeProperties.Where(x => x.CanRead && x.CanWrite && x.PropertyType == typeof(string) && !x.Name.EndsWith("Specified")).Select(x => new KeyValuePair <string, string>(x.Name.CamelCaseString(), x.GetValue(parse1)?.ToString().ToLower().ToTitleCase()));
                var props2 = domicilioFiscalProperties.Where(x => x.CanRead && x.CanWrite && x.PropertyType == typeof(string) && !x.Name.EndsWith("Specified")).Select(x => new KeyValuePair <string, string>(x.Name.CamelCaseString(), x.GetValue(parse2)?.ToString().ToLower().ToTitleCase()));

                var allProps = new List <KeyValuePair <string, string> >();
                allProps.AddRange(props1.Where(x => !string.IsNullOrEmpty(x.Value)));
                allProps.AddRange(props2.Where(x => !string.IsNullOrEmpty(x.Value)));
                foreach (var property in allProps)
                {
                    cuit.CuitDetails.Add(new CuitDetail {
                        Property = property.Key, Value = property.Value, Cuit = cuit
                    });
                }
            }
            catch
            { }
            _dbCtx.Cuits.Add(cuit);
            _dbCtx.SaveChanges();

            return(cuit);
        }
예제 #11
0
        private Cliente ObtenerClienteDesdeForm()
        {
            _cliente.Id               = _clienteId == default(Guid) ? Guid.NewGuid() : _clienteId;
            _cliente.Denominacion     = ApellidoNombre;
            _cliente.Domicilio        = Domicilio;
            _cliente.Telefono         = Telefono;
            _cliente.Celular          = Celular;
            _cliente.Mail             = Mail;
            _cliente.ProvinciaId      = ProvinciaId;
            _cliente.LocalidadId      = LocalidadId;
            _cliente.ProfesionId      = ProfesionId;
            _cliente.EspecialidadId   = EspecialidadId;
            _cliente.TipoDocumentoId  = TipoDocumentoId;
            _cliente.Cuit             = Cuit.PadLeft(11, '0');
            _cliente.EstadoClienteId  = (EstadoCliente)EstadoClienteId;
            _cliente.CondicionVentaId = CondicionVentaId;
            _cliente.MandarMail       = MandarMail;
            _cliente.Llamar           = Llamar;
            _cliente.Comentarios      = Comentarios;
            //Fechas.
            _cliente.FechaAlta         = _formMode == ActionFormMode.Create ? _clock.Now : _cliente.FechaAlta;
            _cliente.FechaModificacion = _formMode == ActionFormMode.Create ? (DateTime?)null : _clock.Now;

            _cliente.SucursalAltaId = _formMode == ActionFormMode.Create
                                          ? Context.SucursalActual.Id
                                          : _cliente.SucursalAltaId;

            _cliente.SucursalModificacionId = _formMode == ActionFormMode.Create
                                                  ? null
                                                  : _cliente.SucursalModificacionId;

            _cliente.OperadorAltaId = _formMode == ActionFormMode.Create
                                          ? Context.OperadorActual.Id
                                          : _cliente.OperadorAltaId;

            _cliente.OperadorModificacionId = _formMode == ActionFormMode.Create
                                                  ? null
                                                  : _cliente.OperadorModificacionId;
            _cliente.Activo = true;

            return(_cliente);
        }
예제 #12
0
        private Operador ObtenerOperadorDesdeForm()
        {
            _operador.Usuario              = NombreUsuario;
            _operador.Personal.Nombre      = ApellidoNombre;
            _operador.Personal.Domicilio   = Domicilio;
            _operador.Personal.Telefono    = Telefono;
            _operador.Personal.Celular     = Celular;
            _operador.Personal.ProvinciaId = UcProvincia.ProvinciaId;
            _operador.Personal.LocalidadId = UcLocalidad.LocalidadId;
            _operador.Personal.Cuit        = Cuit.PadLeft(11, '0');

            _operador.Roles.Clear();
            _operador.Roles = LbRoles.SelectedItems.Select(i => i.DataBoundItem as Role).ToList();

            //Fechas.
            _operador.FechaAlta         = _formMode == ActionFormMode.Create ? _clock.Now : _operador.FechaAlta;
            _operador.FechaModificacion = _formMode == ActionFormMode.Create ? (DateTime?)null : _clock.Now;

            _operador.SucursalAltaId = _formMode == ActionFormMode.Create
                                          ? this.Context.SucursalActual.Id
                                          : _operador.SucursalAltaId;

            _operador.SucursalModificacionId = _formMode == ActionFormMode.Create
                                                  ? null
                                                  : _operador.SucursalModificacionId;

            _operador.OperadorAltaId = _formMode == ActionFormMode.Create
                                          ? this.Context.OperadorActual.Id
                                          : _operador.OperadorAltaId;

            _operador.OperadorModificacionId = _formMode == ActionFormMode.Create
                                                  ? null
                                                  : _operador.OperadorModificacionId;

            return(_operador);
        }
예제 #13
0
 public void Parse_DeberiaRechazarCuitCortosSinGuiones()
 {
     Assert.Throws <ArgumentException>(() => Cuit.Parse("205000008"));
 }
예제 #14
0
 public void Parse_DeberiaRechazarCaracteresExtraños()
 {
     Assert.Throws <ArgumentException>(() => Cuit.Parse("a018627585"));
 }
예제 #15
0
 public void Parse_DeberiaRechazarParse()
 {
     Assert.False(Cuit.TryParse("27-5001941-9", out var cuit));
     Assert.Null(cuit);
 }
예제 #16
0
 public void Cuit_Validos()
 {
     var a = new Cuit(20186275854);
     var b = new Cuit(27050019417);
 }
예제 #17
0
        //METODO QUE VALIDA EL OBJETO CLIENTE (VALOR DE PROPIEDADES CARGADAS). N.
        public string[] cValidaCLiente()
        {
            string[] mValida   = new string[22];
            int      cantError = 0;

            //VALIDAR CÓDIGO
            if (string.IsNullOrEmpty(Codigo.ToString()))
            {
                mValida[cantError] = "EL CAMPO CÓDIGO NO PUEDE ESTAR VACÍO!!";
                cantError         += 1;
            }
            else if (Codigo.ToString() == " ")
            {
                mValida[cantError] = "DEBE COMPLETAR EL CAMPO CÓDIGO!!";
                cantError         += 1;
            }

            //VALIDAR RAZÓN SOCIAL
            if (string.IsNullOrEmpty(RazonSocial.ToString()))
            {
                mValida[cantError] = "EL CAMPO RAZÓN SOCIAL NO PUEDE ESTAR VACÍO!!";
                cantError         += 1;
            }
            else if (RazonSocial == " ")
            {
                mValida[cantError] = "DEBE COMPLETAR EL CAMPO RAZÓN SOCIAL!!";
                cantError         += 1;
            }

            //VALIDAR TIPO DE CLIENTE
            if (string.IsNullOrEmpty(this.IdTipoCliente.ToString()))
            {
                mValida[cantError] = "DEBE COMPLETAR EL CAMPO 'TIPO DE CLIENTE'!!";
                cantError         += 1;
            }
            else if (IdTipoCliente == 0)
            {
                mValida[cantError] = "DEBE SELECCIONAR EL 'TIPO DE CLIENTE'!!";
                cantError         += 1;
            }

            //VALIDAR EL CUIT
            if (string.IsNullOrEmpty(Cuit.ToString()))
            {
                mValida[cantError] = "EL CAMPO CUIT NO PUEDE ESTAR VACÍO!!";
                cantError         += 1;
            }
            else if (Cuit == " ")
            {
                mValida[cantError] = "DEBE COMPLETAR EL CAMPO CUIT!!";
                cantError         += 1;
            }
            //else
            //{
            //    //Validar la CUIT
            //    clsCUIT oCUITvalido = new clsCUIT(Cuit);

            //    if (!(oCUITvalido.EsValido))
            //    {
            //        mValida[cantError] = "EL CUIT INGRESADO ES INCORRECTO. VERIFIQUE!";
            //        cantError += 1;
            //    }
            //}

            //VALIDAR CONDICON IVA
            if (string.IsNullOrEmpty(IdCondicionIva.ToString()))
            {
                mValida[cantError] = "DEBE SELECCIONAR LA CONDICION FRENTE AL IVA!!";
                cantError         += 1;
            }
            else if (IdCondicionIva == 0)
            {
                mValida[cantError] = "DEBE SELECCIONAR LA CONDICION FRENTE AL IVA!!";
                cantError         += 1;
            }

            //LOCALIDAD
            if (string.IsNullOrEmpty(IdLocalidad.ToString()))
            {
                mValida[cantError] = "DEBE SELECCIONAR UNA LOCALIDAD!!";
                cantError         += 1;
            }
            else if (IdLocalidad == 0)
            {
                mValida[cantError] = "DEBE ESPECIFICAR UNA LOCALIDAD!!";
                cantError         += 1;
            }

            //PROVINCIA
            if (string.IsNullOrEmpty(IdProvincia.ToString()))
            {
                mValida[cantError] = "DEBE SELECCIONAR UNA PROVINCIA!!";
                cantError         += 1;
            }
            else if (IdProvincia == 0)
            {
                mValida[cantError] = "DEBE ESPECIFICAR UNA PROVINCIA!!";
                cantError         += 1;
            }
            //TRANSPORTE
            if (string.IsNullOrEmpty(IdTransporte.ToString()))
            {
                mValida[cantError] = "DEBE SELECCIONAR UN TRANSPORTE!!";
                cantError         += 1;
            }
            else if (IdTransporte == 0)
            {
                mValida[cantError] = "DEBE ESPECIFICAR UN TRANSPORTE!!";
                cantError         += 1;
            }
            //Se agregó la validación del teléfono a pedido de Mariano el 09/03/2016

            /*  if (string.IsNullOrEmpty(Telefono.ToString()))
             * {
             *    mValida[cantError] = "EL CAMPO TELÉFONO NO PUEDE ESTAR VACÍO!!";
             *    cantError += 1;
             * }
             * else if (Telefono == " ")
             * {
             *    mValida[cantError] = "DEBE COMPLETAR EL CAMPO TELÉFONO!!";
             *    cantError += 1;
             * }*/

            // No funciona el tema de las fechas VER

            /*string dia = "";
             * string mes = "";
             * string ano = "";
             *
             * dia = clsGlobales.Mid(Alta, 3,2);
             * mes = clsGlobales.Left(Alta, 2);
             * ano = clsGlobales.Right(Alta, 4);
             *
             * string AltaF = Convert.ToDateTime(dia + "/" + mes + "/" + ano).ToString(); */

            //VALIDA FECHA ALTA
            if (!(EsFecha(Alta)))
            {
                mValida[cantError] = "DEBE ESPECIFICAR UNA FECHA DE ALTA VALIDA!!";
                cantError         += 1;
            }
            else
            {
                if (clsGlobales.myEstado == "A")
                {
                    //SI LA FECHA ES MAYOR A LA DEL DIA EN CURSO
                    if (Convert.ToDateTime(Alta) > DateTime.Today)
                    {
                        mValida[cantError] = "LA FECHA DE ALTA NO PUEDE SER POSTERIOR A LA DEL DÍA EN CURSO!!";
                        cantError         += 1;
                    }
                    if (Convert.ToDateTime(Alta) < DateTime.Today)
                    {
                        mValida[cantError] = "LA FECHA DE ALTA NO PUEDE SER ANTERIOR A LA DEL DÍA EN CURSO!!";
                        cantError         += 1;
                    }
                }
            }


            return(mValida);
        }
예제 #18
0
 public string GetNaturalIdentifier()
 {
     return(Cuit.ToString());
 }
예제 #19
0
 public void Parse_DeberiaValidarParse()
 {
     Assert.True(Cuit.TryParse("27-5001941-7", out var cuit));
     Assert.Equal("27-05001941-7", cuit.ToString());
 }
예제 #20
0
 public override int GetHashCode() => Cuit.GetHashCode();
예제 #21
0
 public override int GetHashCode()
 {
     return(Id.GetHashCode() & EstaEliminado.GetHashCode() & Sucursal.GetHashCode() & RazonSocial.GetHashCode() & NombreFantasia.GetHashCode() & Cuit.GetHashCode() & Path.GetHashCode());
 }
예제 #22
0
        public void Equal_RechazarNulo()
        {
            var a = new Cuit(27, 5001941, 7);

            Assert.Throws <NullReferenceException>(() => a.Equals(null));
        }
예제 #23
0
 public override string ToString()
 {
     return(Cuit.ToString() + " - " + NombreApellido);
 }
 public override int GetHashCode()
 {
     return(Id.GetHashCode() & CondicionIvaId.GetHashCode() & EstaEliminado.GetHashCode() & RazonSocial.GetHashCode() & NombreFantasia.GetHashCode() & Cuit.GetHashCode() & Telefono.GetHashCode() & Mail.GetHashCode() & Path.GetHashCode());
 }