|
1 | | -using DotNetEnv; |
| 1 | +using System.Net; |
| 2 | +using DotNetEnv; |
| 3 | +using OpenAC.Net.DFe.Core.Collection; |
| 4 | +using OpenAC.Net.DFe.Core.Common; |
2 | 5 | using OpenAC.Net.DFe.Core.Extensions; |
3 | 6 | using OpenAC.Net.NFSe.Nacional.Common.Model; |
4 | 7 | using OpenAC.Net.NFSe.Nacional.Common.Types; |
| 8 | +using OpenAC.Net.NFSe.Nacional.Webservice; |
5 | 9 |
|
6 | 10 | namespace OpenAC.Net.NFSe.Nacional.Test; |
7 | 11 |
|
@@ -189,6 +193,80 @@ private static void ConfigurarBase( |
189 | 193 | openNFSeNacional.Configuracoes.Arquivos.PathSchemas = pathSchemas; |
190 | 194 | } |
191 | 195 |
|
| 196 | + /// <summary> |
| 197 | + /// Configuração para o provedor Fiorilli (SOAP), versão 1.00. |
| 198 | + /// Lê as variáveis com prefixo "Fiorilli" do arquivo .env e registra o município |
| 199 | + /// no <see cref="NFSeServiceManager"/> em tempo de execução (o recurso embarcado não traz Fiorilli). |
| 200 | + /// </summary> |
| 201 | + public static void ConfigurarFiorilli( |
| 202 | + OpenNFSeNacional openNFSeNacional, |
| 203 | + string numDps = "1", |
| 204 | + string serieDps = "1", |
| 205 | + string numEvento = "1") |
| 206 | + { |
| 207 | + NumDPS = numDps; |
| 208 | + SerieDPS = serieDps; |
| 209 | + NumEvento = numEvento; |
| 210 | + |
| 211 | + CodMunIBGE = GetEnvOrThrow("Fiorilli.CodMunIbge"); |
| 212 | + TipoInscricaoFederal = int.Parse(GetEnvOrThrow("Fiorilli.TipoInscricaoFederal")); |
| 213 | + InscricaoFederal = GetEnvOrThrow("Fiorilli.InscricaoFederal"); |
| 214 | + InscricaoMunicipal = GetEnvOrThrow("Fiorilli.InscricaoMunicipal"); |
| 215 | + |
| 216 | + var endpoint = Env.GetString("Fiorilli.Endpoint"); |
| 217 | + if (string.IsNullOrWhiteSpace(endpoint)) |
| 218 | + endpoint = "http://fi1.fiorilli.com.br:5663/IssWeb-ejb/IssWebWSNacional/IssWebWSNacionalPortType"; |
| 219 | + |
| 220 | + var certificadoPath = GetEnvOrThrow("Fiorilli.CertificadoPath"); |
| 221 | + var certificadoSenha = GetEnvOrThrow("Fiorilli.CertificadoSenha"); |
| 222 | + var pathSalvar = GetEnvOrThrow("Geral.PathSalvar"); |
| 223 | + |
| 224 | + RegistrarMunicipioFiorilli(int.Parse(CodMunIBGE), endpoint); |
| 225 | + |
| 226 | + var pathSchemas = Path.Combine(AppContext.BaseDirectory, "Schemas", VersaoNFSe.Ve101.GetDFeValue()); |
| 227 | + openNFSeNacional.Configuracoes.Geral.Versao = VersaoNFSe.Ve101; |
| 228 | + openNFSeNacional.Configuracoes.Certificados.CertificadoBytes = File.ReadAllBytes(certificadoPath); |
| 229 | + openNFSeNacional.Configuracoes.Certificados.Senha = certificadoSenha; |
| 230 | + openNFSeNacional.Configuracoes.Geral.Salvar = true; |
| 231 | + openNFSeNacional.Configuracoes.Geral.RetirarAcentos = true; |
| 232 | + openNFSeNacional.Configuracoes.Geral.RetirarEspacos = true; |
| 233 | + openNFSeNacional.Configuracoes.Arquivos.PathSalvar = pathSalvar; |
| 234 | + openNFSeNacional.Configuracoes.Arquivos.PathSchemas = pathSchemas; |
| 235 | + openNFSeNacional.Configuracoes.WebServices.Ambiente = DFeTipoAmbiente.Homologacao; |
| 236 | + openNFSeNacional.Configuracoes.WebServices.CodigoMunicipio = int.Parse(CodMunIBGE); |
| 237 | + openNFSeNacional.Configuracoes.WebServices.InscricaoMunicipal = InscricaoMunicipal; |
| 238 | + openNFSeNacional.Configuracoes.WebServices.Protocolos = SecurityProtocolType.Tls12; |
| 239 | + } |
| 240 | + |
| 241 | + /// <summary> |
| 242 | + /// Registra (uma única vez) o município Fiorilli no <see cref="NFSeServiceManager"/>, |
| 243 | + /// apontando o endpoint SOAP em <see cref="TipoUrl.Enviar"/> para o ambiente de homologação. |
| 244 | + /// </summary> |
| 245 | + private static void RegistrarMunicipioFiorilli(int codigoMunicipio, string endpoint) |
| 246 | + { |
| 247 | + var services = NFSeServiceManager.Instance.Services; |
| 248 | + if (services.Webservices.Any(x => x.Codigo == codigoMunicipio)) return; |
| 249 | + |
| 250 | + services.Webservices.Add(new NFSeServiceInfo |
| 251 | + { |
| 252 | + Codigo = codigoMunicipio, |
| 253 | + Provider = NFSeProvider.Fiorilli, |
| 254 | + Nome = "Fiorilli (Teste)", |
| 255 | + UF = DFeSiglaUF.SP, |
| 256 | + Ambientes = new DFeCollection<NFSeEnvironment> |
| 257 | + { |
| 258 | + new NFSeEnvironment |
| 259 | + { |
| 260 | + Ambiente = DFeTipoAmbiente.Homologacao, |
| 261 | + Enderecos = new Dictionary<TipoUrl, string> |
| 262 | + { |
| 263 | + { TipoUrl.Enviar, endpoint } |
| 264 | + } |
| 265 | + } |
| 266 | + } |
| 267 | + }); |
| 268 | + } |
| 269 | + |
192 | 270 | private static string GetEnvOrThrow(string key) |
193 | 271 | { |
194 | 272 | var value = Env.GetString(key); |
|
0 commit comments