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); }
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); }