AOPack / SPEDBr.NET

Biblioteca gratuita para geração dos arquivos SPED e demais declarações necessárias para o cenário contábil/fiscal brasileiro. Novo repositório https://github.com/orochasamuel/fiscalbr.net
MIT License
37 stars 24 forks source link

Importar arquivo SPED #53

Closed marcosgerene closed 4 years ago

marcosgerene commented 6 years ago

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?

orochasamuel commented 6 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.

orochasamuel commented 6 years ago

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.

marcosgerene commented 6 years ago

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.

orochasamuel commented 6 years ago

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.

marcosgerene commented 6 years ago

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

orochasamuel commented 6 years ago

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?

marcosgerene commented 6 years ago

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.

orochasamuel commented 6 years ago

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".

leandrossantos commented 6 years ago

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?

marcosgerene commented 6 years ago

@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.

orochasamuel commented 6 years ago

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.

orochasamuel commented 4 years ago

Issue movida para o novo repositório https://github.com/osamueloliveira/FiscalBr.NET/issues/15.

A partir de agora será tratada lá.