Skip to content
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

Integração com fork Hercules #1515

Merged
merged 47 commits into from
May 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
f1eee9e
feat: criar struct MotivoInsucesso
lucasmoraes804 Mar 28, 2024
5b8ab91
feat: adicionar propriedades detevento referente a insucesso na entrega
lucasmoraes804 Mar 28, 2024
2080748
feat: adicionar verificação serialização para o XML
lucasmoraes804 Mar 28, 2024
9843d54
checkpoint: Iniciar o método RecepcaoEventoInsucessoEntrega
lucasmoraes804 Mar 28, 2024
776de96
Merge branch 'ZeusAutomacao:master' into feature/NT2023.005
lucasmoraes804 Mar 28, 2024
e4c211f
feat: criar evento no enum NFeTipoEvento
lucasmoraes804 Mar 28, 2024
4f0262f
fix: renomear a descrição do evento no summary
lucasmoraes804 Mar 28, 2024
613238f
feat: finalizar RecepcaoEventoInsucessoEntrega
lucasmoraes804 Mar 28, 2024
7d5b8a9
feat: criar propriedade do enum ServicosNFe.cs RecepcaoEventoInsucess…
lucasmoraes804 Mar 28, 2024
a405561
feature: Criar botão para teste do evento insucesso na entrega da NFe
lucasmoraes804 Mar 31, 2024
227d9c0
feature: acrescentar RecepcaoEvento o ServicoNFe.RecepcaoEventoInsuce…
lucasmoraes804 Mar 31, 2024
2b6a078
Feature: Adicionar Endereço para o Evento de cInsucesso na Entrega
lucasmoraes804 Mar 31, 2024
8e6c8f5
feature: Adicionar schema Insucesso na entrega NFe
lucasmoraes804 Mar 31, 2024
21a1877
Criar variável de Versão para Insucesso na Entrega
lucasmoraes804 Mar 31, 2024
91856cc
fix: alterar endereço Insucesso Entrega NFe para endereço nacional
lucasmoraes804 Apr 1, 2024
2227485
fix: Alteração ServicoNfeFactory no Insucesso na entrega
lucasmoraes804 Apr 2, 2024
34de64b
Update and rename DFe.NET_build.yml to ZeusFiscal_build.yml
danilobreda Apr 5, 2024
c398c84
Update ZeusFiscal_build.yml
danilobreda Apr 5, 2024
be6e584
Update ZeusFiscal_build.yml
danilobreda Apr 5, 2024
fdbfa0e
Update README.md
danilobreda Apr 5, 2024
3ee3190
Update README.md
danilobreda Apr 5, 2024
06219aa
Update README.md
danilobreda Apr 5, 2024
5965708
feito mudança projetos e build
danilobreda Apr 5, 2024
66b64ce
Update ZeusFiscal_build.yml
danilobreda Apr 5, 2024
f4df073
fixes
danilobreda Apr 5, 2024
d32ec12
Update README.md
danilobreda Apr 5, 2024
a2e4e4a
fix nuget config name
danilobreda Apr 5, 2024
3f4c175
fix links
danilobreda Apr 5, 2024
42892b7
fix: validação xml no NFe.AppTeste no insucesso na entrega
lucasmoraes804 Apr 9, 2024
58e2954
Adicionar no csproj os schemas
lucasmoraes804 Apr 9, 2024
439c024
feature: adicionar campos para cancelar insucesso na entrega
lucasmoraes804 Apr 16, 2024
1544be4
Merge branch 'feature/NT2023.005' of https://github.com/lucasmoraes80…
lucasmoraes804 Apr 16, 2024
f612218
feature: acrescentar teste do evento de cancelamento insucesso na ent…
lucasmoraes804 Apr 16, 2024
62d31d6
chore: documentar métodos RecepcaoEventoInsucessoEntrega e RecepcaoEv…
lucasmoraes804 Apr 16, 2024
baa60d1
Update .gitignore
danilobreda Apr 20, 2024
1440001
Merge branch 'feature/NT2023.005' of https://github.com/lucasmoraes80…
danilobreda Apr 20, 2024
6bb26c7
feito lista de erros melhorada para futuro
danilobreda Apr 20, 2024
82868bb
Merge pull request #5 from Hercules-NET/lucasmoraes804-feature/NT2023…
danilobreda Apr 20, 2024
f5fb41e
fix: impressões que dá para subir no nuget
robertorp Apr 25, 2024
65ac1fe
Merge pull request #7 from robertorp/master
marcosgerene Apr 29, 2024
7232101
Implementa o Envio Sincrono do MDFe. (#8)
marcosgerene May 3, 2024
e81081e
Update Enderecador.cs (#9)
danilobreda May 5, 2024
5d08b53
Update CTeTipoEvento.cs
marcosgerene May 14, 2024
4235b23
Merge pull request #12 from Hercules-NET/marcosgerene-patch-1
danilobreda May 14, 2024
a3ba63b
Merge das modificações do fork Hercules
andrebts May 14, 2024
333f13b
Merge das modificações do fork Hercules
andrebts May 14, 2024
0edbd4d
Merge branch 'integracao-hercules' of https://github.com/ZeusAutomaca…
andrebts May 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
NFe.sln.DotSettings.user
*.suo
*.user
*.userosscache
Expand Down
4 changes: 3 additions & 1 deletion CTe.Classes/Servicos/Evento/Flags/CTeTipoEvento.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ public enum CTeTipoEvento
RegistrodePassagem = 310620,
[XmlEnum("510620")]
RegistrodePassagemAutomatico = 510620,
[XmlEnum("510630")]
RegistrodePassagemAutomatico2 = 510630,
[XmlEnum("310610")]
MDFeAutorizado = 310610,
[XmlEnum("310611")]
Expand Down Expand Up @@ -88,4 +90,4 @@ public enum CTeTipoEvento
[XmlEnum("610110")]
Desacordo = 610110
}
}
}
2 changes: 2 additions & 0 deletions DFe.Wsdl/Common/SoapUrls.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public string GetSoapUrl(TipoEvento tipoEvento)
return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeStatusServico";
case TipoEvento.MDFeRecepcao:
return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcao";
case TipoEvento.MDFeRecepcaoSinc:
return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc";
case TipoEvento.MDFeRetRecepcao:
return "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRetRecepcao";
case TipoEvento.MDFeNaoEncerrado:
Expand Down
1 change: 1 addition & 0 deletions DFe.Wsdl/Common/TipoEvento.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum TipoEvento

MDFeStatusServico,
MDFeRecepcao,
MDFeRecepcaoSinc,
MDFeRetRecepcao,
MDFeNaoEncerrado,
MDFeConsulta,
Expand Down
2 changes: 1 addition & 1 deletion MDFe.AppTeste/MDFeTesteModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,7 @@ public void CriarEnviar()

var servicoRecepcao = new ServicoMDFeRecepcao();

var retornoEnvio = servicoRecepcao.MDFeRecepcao(1, mdfe);
var retornoEnvio = servicoRecepcao.MDFeRecepcaoSinc(mdfe);

OnSucessoSync(new RetornoEEnvio(retornoEnvio));

Expand Down
8 changes: 8 additions & 0 deletions MDFe.Classes/Extensoes/ExtMDFeEnviMDFe.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ public static XmlDocument CriaXmlRequestWs(this MDFeEnviMDFe enviMDFe)
return dadosEnvio;
}

public static XmlDocument CriaXmlRequestWs(this Informacoes.MDFe mdfe)
{
var dadosEnvio = new XmlDocument();
dadosEnvio.LoadXml(mdfe.XmlString());

return dadosEnvio;
}

public static string XmlString(this MDFeEnviMDFe enviMDFe)
{
var xmlString = FuncoesXml.ClasseParaXmlString(enviMDFe);
Expand Down
64 changes: 64 additions & 0 deletions MDFe.Classes/Retorno/MDFeRetRecepcao/Sincrono/MDFeRetMDFe.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
using DFe.Classes.Entidades;
using DFe.Classes.Extensoes;
using DFe.Classes.Flags;
using DFe.Utils;
using System;
using System.Xml.Serialization;

namespace MDFe.Classes.Retorno.MDFeRetRecepcao.Sincrono
{
[Serializable]
[XmlRoot(Namespace = "http://www.portalfiscal.inf.br/mdfe",
ElementName = "retMDFe")]
public class MDFeRetMDFe: RetornoBase
{
[XmlAttribute(AttributeName = "versao")]
public string Versao { get; set; }

[XmlElement(ElementName = "tpAmb")]
public TipoAmbiente TpAmb { get; set; }

[XmlElement(ElementName = "verAplic")]
public string VerAplic { get; set; }

[XmlElement(ElementName = "nRec")]
public string NRec { get; set; }

[XmlElement(ElementName = "cStat")]
public short CStat { get; set; }

[XmlElement(ElementName = "xMotivo")]
public string XMotivo { get; set; }

[XmlIgnore]
public Estado CUF { get; set; }

[XmlElement(ElementName = "cUF")]
public string CUFProxy
{
get
{
return CUF.GetCodigoIbgeEmString();
}
set { CUF = CUF.CodigoIbgeParaEstado(value); }
}

[XmlElement(ElementName = "protMDFe")]
public MDFeProtMDFe ProtMdFe { get; set; }

public static MDFeRetMDFe LoadXml(string xml)
{
var retorno = FuncoesXml.XmlStringParaClasse<MDFeRetMDFe>(xml);
retorno.RetornoXmlString = xml;

return retorno;
}
public static MDFeRetMDFe LoadXml(string xml, Informacoes.MDFe mdfe)
{
var retorno = LoadXml(xml);
retorno.EnvioXmlString = FuncoesXml.ClasseParaXmlString(mdfe);

return retorno;
}
}
}
6 changes: 4 additions & 2 deletions MDFe.Servicos/Enderecos/Helper/UrlHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public static UrlMDFe ObterUrlServico(TipoAmbiente ambiente)
MDFeRetRecepcao = "https://mdfe.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx",
MDFeConsulta = "https://mdfe.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx",
MDFeRecepcaoEvento = "https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx",
MDFeRecepcao = "https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"
MDFeRecepcao = "https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx",
MDFeRecepcaoSinc = "https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoSinc/MDFeRecepcaoSinc.asmx"
};
case TipoAmbiente.Homologacao:
return new UrlMDFe
Expand All @@ -59,7 +60,8 @@ public static UrlMDFe ObterUrlServico(TipoAmbiente ambiente)
MDFeRecepcao = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx",
MDFeRecepcaoEvento = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx",
MDFeRetRecepcao = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx",
MDFeStatusServico = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx"
MDFeStatusServico = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx",
MDFeRecepcaoSinc = "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoSinc/MDFeRecepcaoSinc.asmx"
};
}

Expand Down
1 change: 1 addition & 0 deletions MDFe.Servicos/Enderecos/UrlMDFe.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class UrlMDFe
{
public string MDFeRecepcao { get; set; }
public string MDFeRetRecepcao { get; set; }
public string MDFeRecepcaoSinc { get; set; }
public string MDFeRecepcaoEvento { get; set; }
public string MDFeConsulta { get; set; }
public string MDFeStatusServico { get; set; }
Expand Down
13 changes: 12 additions & 1 deletion MDFe.Servicos/Factory/WsdlFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
using MDFe.Wsdl.MDFeConsultaProtoloco;
using MDFe.Wsdl.MDFeEventos;
using MDFe.Wsdl.MDFeRecepcao;
using MDFe.Wsdl.MDFeRecepcao.Sincrono;
using MDFe.Wsdl.MDFeRetRecepcao;

namespace MDFe.Servicos.Factory
Expand Down Expand Up @@ -84,7 +85,17 @@ public static MDFeRecepcao CriaWsdlMDFeRecepcao()

var configuracaoWsdl = CriaConfiguracao(url, versaoServico);

return new MDFeRecepcao(configuracaoWsdl); ;
return new MDFeRecepcao(configuracaoWsdl);
}

public static MDFeRecepcaoSinc CriaWsdlMDFeRecepcaoSinc()
{
var url = UrlHelper.ObterUrlServico(MDFeConfiguracao.VersaoWebService.TipoAmbiente).MDFeRecepcaoSinc;
var versaoServico = MDFeConfiguracao.VersaoWebService.VersaoLayout.GetVersaoString();

var configuracaoWsdl = CriaConfiguracao(url, versaoServico);

return new MDFeRecepcaoSinc(configuracaoWsdl);
}

public static MDFeRetRecepcao CriaWsdlMDFeRetRecepcao()
Expand Down
22 changes: 22 additions & 0 deletions MDFe.Servicos/RecepcaoMDFe/ServicoMDFeRecepcao.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
using MDFe.Classes.Extencoes;
using MDFe.Classes.Flags;
using MDFe.Classes.Retorno.MDFeRecepcao;
using MDFe.Classes.Retorno.MDFeRetRecepcao.Sincrono;
using MDFe.Classes.Servicos.Autorizacao;
using MDFe.Servicos.Factory;
using MDFe.Utils.Configuracoes;
Expand Down Expand Up @@ -87,6 +88,27 @@ public MDFeRetEnviMDFe MDFeRecepcao(long lote, MDFeEletronico mdfe)
return retorno;
}

public MDFeRetMDFe MDFeRecepcaoSinc(MDFeEletronico mdfe)
{
mdfe.InfMDFe.InfModal.VersaoModal = MDFeVersaoModal.Versao300;
mdfe.InfMDFe.Ide.ProxyDhIniViagem = mdfe.InfMDFe.Ide.DhIniViagem.ParaDataHoraStringUtc();
mdfe.Assina(GerouChave, this);

if (MDFeConfiguracao.IsAdicionaQrCode)
{
mdfe.infMDFeSupl = mdfe.QrCode(MDFeConfiguracao.X509Certificate2);
}

mdfe.Valida();
mdfe.SalvarXmlEmDisco();

var webService = WsdlFactory.CriaWsdlMDFeRecepcaoSinc();
var retornoXml = webService.mdfeRecepcao(mdfe.CriaXmlRequestWs());

var retorno = MDFeRetMDFe.LoadXml(retornoXml.OuterXml, mdfe);
return retorno;
}

protected virtual void OnAntesDeEnviar(MDFeEnviMDFe enviMdfe)
{
var handler = AntesDeEnviar;
Expand Down
65 changes: 65 additions & 0 deletions MDFe.Wsdl/MDFeRecepcao/Sincrono/MDFeRecepcaoSinc.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using CTe.CTeOSDocumento.Common;
using DFe.Utils;
using System;
using System.Net;
using System.Xml;
using System.Xml.Serialization;

namespace MDFe.Wsdl.MDFeRecepcao.Sincrono
{
public class MDFeRecepcaoSinc
{
private readonly SoapEnvelope soapEnvelope;

//Configurações do WSDL para estabelecimento da comunicação
private readonly WsdlConfiguracao configuracao;

/// <summary>
/// Cria o cabeçalho do envelope a ser enviado e atribui as configurações do WSDL.
/// </summary>
/// <param name="configuracao"></param>
public MDFeRecepcaoSinc(WsdlConfiguracao configuracao)
{
if (configuracao == null)
throw new ArgumentNullException();

this.configuracao = configuracao;
soapEnvelope = new SoapEnvelope();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
}

/// <summary>
/// Encapsula os dados da requisição no envelope por meio da serialização das partes e realiza a requisção ao Web Service.
/// </summary>
/// <param name="mdfeDadosMsg"></param>
/// <returns>XmlNode</returns>
public XmlNode mdfeRecepcao(XmlNode mdfeDadosMsg)
{
soapEnvelope.body = new ResponseBody<string>
{
mdfeDadosMsg = Convert.ToBase64String(Compressao.Zip(mdfeDadosMsg.OuterXml))
};
return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.MDFeRecepcaoSinc, "retMDFe");
}

/// <summary>
/// Classe base para a serialização no formato do envelope SOAP.
/// </summary>
[XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")]
public class SoapEnvelope : CommonSoapEnvelope
{

[XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")]
public ResponseBody<string> body { get; set; }
}

/// <summary>
/// Classe para o corpo do Envelope SOAP
/// </summary>
public class ResponseBody<T> : CommonResponseBody
{
[XmlElement(Namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")]
public T mdfeDadosMsg { get; set; }
}
}
}
4 changes: 4 additions & 0 deletions NFe.AppTeste/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -962,6 +962,10 @@
Margin="375,185,0,0" VerticalAlignment="Top" Width="177" Click="BtnConsultaRecibo_Click" />
<Button x:Name="BtnConsultaGtin" Content="Consultar Gtin" HorizontalAlignment="Left"
Margin="10,210,0,0" VerticalAlignment="Top" Width="177" Click="BtnConsultaGtin_Click" />
<Button x:Name="BtnInsucessoEntrega" Content="Insucesso Entrega NFe" HorizontalAlignment="Left"
Margin="192,210,0,0" VerticalAlignment="Top" Width="177" Click="BtnInsucessoEntrega_Click" />
<Button x:Name="BtnCancInsucessoEntrega" Content="Canc. Insucesso Entrega NFe" HorizontalAlignment="Left"
Margin="375,210,0,0" VerticalAlignment="Top" Width="177" Click="BtnCancInsucessoEntrega_Click" />
</Grid>
</TabItem>

Expand Down
Loading
Loading