Jorgelig Labs

Jorgelig Labs

Parser para las facturas de buro de credito en formato texto

les comparto un "Parser" para las facturas de Buro de Credito en formato texto *.wri. Tambien pongo un proyecto de test y ejemplos de uso.

Subscribe to my newsletter and never miss my upcoming articles

Implementacion de TextReader para importar las facturas de buro de credito de texto a una estructura de datos

image.png

Ejemplo de encabezado de la factura parseado image

image.png

Ejemplo de detalle de factura parseado

image.png

Por favor si tienes cualquier duda, consejo para mejorar mi codigo o deseas ayudarme a mejorar no dudes en contactarme o abrir un "Pull Request"


/// <summary>
///  Obtener columnas de factura de buro de credito a una lista
///</summary>
///<param name="msStream">Archivo de texto plano(extension *.wri cargado en memoria</param>
///<param name="filename">Nombre del archivo cargado</param>
///<returns>Lista de las descripciones de la factura</returns> 
public List<BuroCreditoBillingDetail> GetBillingDetailsFromTextFile(MemoryStream msStream, string filename){
using (var trackingReader = new BureauTextReader(msStream))
            {
                while ((line = trackingReader.ReadLine()) != null)
                {

                    var billingCode = trackingReader.BcBillingCode;
                    var pageNumber = trackingReader.PageNumber;

                    if (!trackingReader.IsLineToIgnore() && trackingReader.IsItemDataLine())
                    {
                        var item = ToBuroCreditoBillingDetail(trackingReader);
                        result.Add(item);
                    }
                    var position = trackingReader.Position;
                    var lineNumber = trackingReader.LineNumber;
                    var message = $"{lineNumber:d3}\t{line}\t\t[OK]";
                    Console.WriteLine(message);
                    //_logger.LogInformation(message: message);
                }
            }
}


        private Func<BureauTextReader, BuroCreditoBillingDetail> ToBuroCreditoBillingDetail
            => trackingReader
                => new BuroCreditoBillingDetail
                {
                    Created = DateTime.Now,
                    Date = trackingReader.BcDataTimestamp,
                    NumeroControlConsulta = trackingReader.BcDataBcControlNumber,
                    ReferenceCode = trackingReader.BcDataReferenceCode,
                    LastName = trackingReader.BcDataLastName,
                    MaidenName = trackingReader.BcDataMaidenName,
                    FirstName = trackingReader.BcDataFirstName,
                    TipoConsulta = trackingReader.BcDataSvco,
                    Score = trackingReader.BcDataSc,
                    Auditoria = trackingReader.BcDataA,
                    IntercambioCirculoCredito = trackingReader.BcDataIC,
                    Paquete = trackingReader.BcDataP,
                    Hit = trackingReader.BcDataHN,
                    Optimiza = trackingReader.BcDataOp,
                    Amount = trackingReader.BcDataCosto
                };

Fuente: github.com/Jorgelig-Labs/buro-credito-factu..

 
Share this