Closed marcosgerene closed 4 years ago
Fala @marcosgerene tudo na paz?
Tem sim, eu já fiz uma versão inicial para tratar algumas alterações em massa para uma empresa que usava um sistema legado em CLIPPER e precisava "inputar" as informações restantes no layout que o sistema não gerava. Tenho a intenção de implementar além da escrita assincrona a leitura também.
Irei criar o método e fazer um teste unitário e você pode ir complementando com as informações que precisar ler. Faço o commit e te aviso.
Pronto, as alterações foram feitas no commit https://github.com/AOPack/SPEDBr.NET/commit/eedcfc64594cfe33f70a9ce8af87ea10badb1b74.
Para fazer a leitura dos registros C100 do SPED Fiscal basta fazer o seguinte:
var fileToRead = LerCamposSpedFiscal.ParserSpedFiscalFile("C:\\arquivo-sped-fiscal.txt");
Até o momento só implementei o 0000 e o C100, não usei async na leitura pois a lib ainda está na versão 4.0 do dotNetFramework. Em breve farei uma manutenção definitiva nos métodos de escrita e leitura para melhorar a performance.
Abraços.
PS: Testei a leitura somente do 0000.
Boa noite @samuelrochaoliveira
Como funcionaria registros com filhos nesse caso? EX: o C100 tem 0..n C170, C190, etc...
Outra coisa, pretendo usar o projeto em .net Core, o que precisa ser feito no projeto atual para portar para .net standard? Pensando apenas em port, sem novos recursos.
Boa noite,
Como funcionaria registros com filhos nesse caso? EX: o C100 tem 0..n C170, C190, etc...
Nesse caso penso em uma nova implementação para ter o objeto na íntegra. A leitura atual só comporta a leitura linha a linha sem as correlações de cada registro.
Outra coisa, pretendo usar o projeto em .net Core, o que precisa ser feito no projeto atual para portar para .net standard? Pensando apenas em port, sem novos recursos.
Somente a migração do mapeamentos para efetuar a escrita. Nenhuma alteração relevante ou adaptação será necessária.
Nesse caso penso em uma nova implementação para ter o objeto na íntegra. A leitura atual só comporta a leitura linha a linha sem as correlações de cada registro.
Vi aqui, no caso teriamos que criar uma coleção de RegistroC170, C190 dentro de RegistroC100, etc...
Somente a migração do mapeamentos para efetuar a escrita. Nenhuma alteração relevante ou adaptação será necessária.
Trocando em miúdos com meio dia de trabalho da migrar isso tranquilamente?
Aproveitando o gancho, eu não vejo com bons olhos a mudança para outro repositório, salvo fazer igual o Adenilton fez com o DFe, acredito que manter o histórico do projeto é interessante.
PS: Não feche a issue ainda, acredito que vou escrever a leitura do arquivo praticamente inteiro e vou reportando aqui
Trocando em miúdos com meio dia de trabalho da migrar isso tranquilamente?
Talvez em menos tempo.
Aproveitando o gancho, eu não vejo com bons olhos a mudança para outro repositório, salvo fazer igual o Adenilton fez com o DFe, acredito que manter o histórico do projeto é interessante.
Eu não acompanhei a mudança do DFe, usaram notação do framework para comportar tudo em uma lib?
Talvez em menos tempo.
Excelente!
Ainda sobre isto, tem coisas no código muito estranhas, vou comentar la no código, mas acho que é porque esta usando uma versão mais velha do C#
Edit: Olha o pull #54 que mandei agora, coisas bobas no código como "" para string.Empty, strings com "abc" + variavel_cde + "fgh" ao invés de $"abc{variabel_cdfe}fgh"
Eu não acompanhei a mudança do DFe, usaram notação do framework para comportar tudo em uma lib?
Não faço ideia. kkkkk
Mas o resultado final foi interessante, todas issues, todos os pulls, tudo foi levando junto com a mundança.
Ah, entendi. Foi só a mudança das infos do repositório.
Ele (Adenilton) deve ter feito alteração da titularidade do repositório para o "ZeusAutomação".
bom dia @samuelrochaoliveira sobre essa mudança para leitura do arquivo, já pode ser usada, estou com um cliente que tem que mesclar 3 arquivos EFD, matriz + 2 filiais e quando ele me falou lembrei dessas mudanças aqui, será que já dá para usar para isso?
@leandrossantos amigo, nem terminei de mapear as classes ainda e o @samuelrochaoliveira ainda tem que achar tempo para estudar como "automatizar" a leitura da linha usando a anotação "SpedCampos".
Sobre o que espero com esse recurso: importar o arquivo SPED e talvez até mesmo preencher as classes e "mandar gerar" o arquivo ao invés de ter que escrever linha a linha.
Com arquivo importado em mãos você manipula as classes como quiser, agora as N situações levantadas é com você, ao término dessa alteração você vai ter as classes preenchidas, somente isso.
bom dia @samuelrochaoliveira sobre essa mudança para leitura do arquivo, já pode ser usada, estou com um cliente que tem que mesclar 3 arquivos EFD, matriz + 2 filiais e quando ele me falou lembrei dessas mudanças aqui, será que já dá para usar para isso?
@leandrossantos, ainda faltam algumas coisas para poder utilizar. Essa "mesclagem" é de EFD Fiscal (SPED Fiscal ICMS/IPI) ou EFD Contribuições (PIS/COFINS)?
Porque se for EFD Fiscal, cada CNPJ deve enviar um arquivo separado salvo em casos específicos que tem autorização especial da SEFAZ ou Delegacia Regional de Fiscalização deferindo tal procedimento.
Se for EFD Contribuições, é mesclado no arquivo da matriz mesmo, com as respectivas filiais lá dentro mas todas as informações devem estar no padrão de envio. Se o regime adotado na matriz é competência detalhado, as filias também devem estar, se for caixa resumido, ambas devem estar. Então isso é um ponto de atenção, pois o arquivo não valida se todas as informações não estiverem de acordo.
Issue movida para o novo repositório https://github.com/osamueloliveira/FiscalBr.NET/issues/15.
A partir de agora será tratada lá.
Olá @samuelrochaoliveira,
Gostaria de transformar uma linha já escrita em um objeto no SPED Fiscal, tem como?
Ex: a string "|C100|...|..||.." virar um objeto do tipo RegistroC100? Acredito que não seja impossivel porque já temos hoje naquela anotação tipo do campo, tamanho, POSIÇÃO, etc, mas não sei como fazer, pode me dar algumas dicas?