Beispiel #1
0
        public static CUITDTO Parse(string rawCuit)
        {
            var cuit = rawCuit.SkipWhile(s => s == '0').Concat();

            (string prefix, string acum) = Utils.Split(cuit, 2);

            var numDoc = string.Empty;

            (numDoc, acum) = Utils.Split(acum, 8);

            var suffix = string.Empty;

            (suffix, acum) = Utils.Split(acum, 1);

            var dto = new CUITDTO();

            if (int.TryParse(prefix, out int pre))
            {
                dto.Prefix = pre;
            }

            if (int.TryParse(numDoc, out int num))
            {
                dto.NumeroDocumento = num;
            }

            if (int.TryParse(suffix, out int suf))
            {
                dto.Suffix = suf;
            }

            return(dto);
        }
Beispiel #2
0
        AFIPDTO ToDto()
        {
            var dto = new AFIPDTO();

            try
            {
                int Int(string s) => Convert.ToInt32(s);

                dto.Fecha = new DateTime(Int(Año), Int(Mes), Int(Dia));
            }
            catch { }

            if (int.TryParse(TipoDeComprobante, out int tipoComprobante))
            {
                dto.TipoDeComprobante = tipoComprobante;
            }

            if (int.TryParse(PuntoDeVenta, out int puntoDeVenta))
            {
                dto.PuntoDeVenta = puntoDeVenta;
            }

            if (int.TryParse(NumeroComprobanteDesde, out int numeroComprobanteDesde))
            {
                dto.NumeroComprobanteDesde = numeroComprobanteDesde;
            }

            if (int.TryParse(NumeroComprobanteHasta, out int numeroComprobanteHasta))
            {
                dto.NumeroComprobanteHasta = numeroComprobanteHasta;
            }

            if (int.TryParse(CodigoDocumento, out int codigoDocumento))
            {
                dto.CodigoDocumento = codigoDocumento;
            }

            dto.CUIT = CUITDTO.Parse(CUIT);

            dto.RazonSocial = RazonSocial;

            var size = MontoFactura.Count();

            (string monto, string monedas) = Utils.Split(MontoFactura, size - 2);

            var style    = NumberStyles.AllowDecimalPoint;
            var provider = new CultureInfo("en-US");

            if (decimal.TryParse($"{monto}.{monedas}", style, provider, out decimal montoFactura))
            {
                dto.MontoFactura = montoFactura;
            }

            dto.DataAleatoria2 = DataAleatoria2;

            return(dto);
        }