-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migração de NFe para .net Standard (.netCore + .netFramework) #1013
Conversation
Criado o Shared para Danfe, e nova classe DanfeHelper para centralizar códigos duplicados
Geração de PDF, HTML ou IMAGEM PNG em arrays de bytes. Feito console com a implementação das novas classes.
…cio do dev de console do NFE
…standard, para melhor entendimento e separação da etapa de conversão. As classes foram transferidas do WSDL SHARED para classe especifica do .net framework
Da mandeira que foi feita o novo relatorio de FastReport para o Danfe, é necessário que tenha 2 arquivos frxs em cada projeto (um no .net framework antigo e outro no .net core) Isso duplica o relatório e dificulta mudanças ao longo do tempo, Vou tentar jogar os relatorios no projeto Shared e fazer alteracoes em runtime do frx na hora da impressão no .net core! |
Dos serviços listados, quais ainda estão "em vigor"? Ex: NFE Autorizacao 1.0 e NFE Autorizacaoo 3.0 "não existem mais", certo? Vamos tentar implementar o restante pra concluir o PR e pedir para o @robertorp ou o @adeniltonbs |
@marcosgerene Neste link temos todos que estão "em vigor" porem existem alguns na lista de versões antigas onde não estão mais funcionando, por conta da transição para 4.0. |
Resolução de conflitos feita, merge feito do branch danilobreda:nfecoreport para master. |
# Conflicts: # NFe.Danfe.Fast/NFe/NFeRetrato.frx # NFe.Wsdl/Autorizacao/NFeAutorizacao4.cs # Shared.DFe.Wsdl/Common/RequestBuilderAndSender.cs # Shared.DFe.Wsdl/Common/SoapUrls.cs # Shared.DFe.Wsdl/Common/SoapUtils.cs # Shared.DFe.Wsdl/Common/cteCabecMsg.cs # Shared.NFe.Servicos/ServicoNfeFactory.cs
Em alguns posts atrás você disse que não tinha download, manifestação, etc... então você fez, é isso? ótimo! falei ontem com o Roberto, quero ver se a gnt consegue colocar esse PR em prática o quanto antes! abraços |
@marcosgerene Todos que estão na versão 4.0 estão feitos, e alguns da 1.0 e 2.0. Esse abaixo, que tem apenas no estado do Ceara não foi implementado. Esse abaixo que está no AN(ambiente nacional) também não foi implementado e é amplamente usado... esse é uma evolução do Download. O NFeDistribuicaoDFE vou tentar implementar ainda hoje! |
Atualmente estou em um evento, mas segunda feira vou dar total prioridade a esse pull request. Para evitar dores de cabeça com conflitos. |
… como atualmente é do Danfe.
/// </summary> | ||
/// <param name="caminho">Caminho do arquivo + pastas</param> | ||
/// <returns></returns> | ||
private static string ArrumaCaminho(string caminho) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
esse arruma caminho , não poderia ser um Path.Combine , não?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Esse caminho vem da digitação do usuário, por isso é necessário esse "arruma". Essa classe utils é utilizada apenas para o console AppTeste.
/// </summary> | ||
/// <param name="caminho">Caminho do arquivo + pastas</param> | ||
/// <returns></returns> | ||
private static string ArrumaCaminho(string caminho) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
esse arruma caminho , não poderia ser um Path.Combine , não?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Esse caminho vem da digitação do usuário, por isso é necessário esse "arruma". Essa classe utils é utilizada apenas para o console AppTeste.
using Shared.NFe.Danfe.Base; | ||
using System.IO; | ||
|
||
namespace NFe.Danfe.Fast.Standard |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Foi criado uma classe para cada projeto de impressão, ou seja tem duas impressões hoje? Uma para o .net core é uma para o .net framework ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
O framework utilizados para impressão são diferentes (nuget FastResport.OpenSource para o standard e a dll FastReport para o .net framework)
A implementação das 2 é bem parecidas, porem alguns detalhes como o não suporte a impressão direta na impressora por exemplo fez com que a separação fosse necessária por enquanto.
Um problema foi a necessidade de 2 relatorios separados (.frx) por conta das classes no cabeçalho do arquivo frx serem diferentes. @marcosgerene disse para deixar os 2 separados por enquanto, que não teria problemas. Foi como segui.
/// <summary> | ||
/// Classe responsável pela impressão do DANFE da NFCe em Fast Reports | ||
/// </summary> | ||
public class DanfeFrNfce : DanfeBase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Foi criado uma classe para cada projeto de impressão, ou seja tem duas impressões hoje? Uma para o .net core é uma para o .net framework ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Respondido acima
não vou marcar todas classes que estão duplicadas, mas na parte de impressão tem muitas, foi realmente necessário, por qual motivo? |
@marcosgerene @danilobreda |
Pelo que observei, ficou dois projetos NFe.WSDL um que já estava pronto que é o do .netFramework e outro projeto para o .net Standard né Um independente do outro pelo que ví |
Depois do almoço continuarei olhando, faltam apenas 87 arquivos. |
Sim foi feito o merge por mim. Esta 100%
A duplicação de código não deve ocorrer, como respondi acima, foi necessário a separação pois são frameworks diferentes, o que consegui deixar no mesmo código deixei! criando um projeto shared e jogando lá o que for igual, por exemplo a classe DanfeSharedHelper O DanfeBase são diferentes por exemplo. Não tive como fazer igual! É como se fosse um novo projeto, feito para .netstandard. O Danfe não tinha como converter. Porem utilizam códigos base compartilhados. |
Bom uma nova etapa concluída, @danilobreda, Obrigado pela ajuda gigante! |
@danilobreda , feito o merge! obrigado! |
#1001
Detalhe importante: alguns arquivos foram convertidos de unicode para UTF8, por isso o numero de changed files é grande, além claro de movimentações de classes para shared projects...