Ir para conteúdo
  • Cadastre-se

Afranio Lucas

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

1 Seguidor

Últimos Visitantes

1.167 visualizações

Afranio Lucas's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

7

Reputação

1

Community Answers

  1. Boa tarde senhores, Pela limitação dos 10GB do SQL Server, migrei um ERP para PostgreSQL, Em tempo em tempo, de forma aleatória o sistema trava e precisa fechar e abrir para voltar a funcionar. (Apenas em rede) Servidor: Windows 8 Banco de dados: postgresql-10.6-1-windows-x64 Delphi 10.3 com FireDac Será que existe alguma configuração padrão para se comunicar com o PostgreSQL?
  2. Também estou passando pelo mesmo problema na hora de VerificarStatusPagamento, Mesmo indo no simulador e efetuando o pagamento, o retorno sempre e algo do tipo: <CodigoAutorizacao>queue item 112401048 not complete</CodigoAutorizacao> Alguma ajuda?
  3. Na verdade estou usando o SATTeste.exe, com as configurações do .ini em anexo SATTeste.ini
  4. Pois e amigo, Estou usando o próprio exemplo do ACBr. Coloquei em anexo o log de retorno, envia o pagamento, efetuo no simulador do POS, mas ao consultar não encontra. ACBrSAT.log
  5. Boa tarde pessoal, Estou iniciando o desenvolvimento da MF-e, adquirir o MFE Development Kit da Tanca. Fiz toda configuração baseada no post abaixo. 1. Executo o "MFE Enviar Pagamento" passando um serial e recebo o IdPagamento xxx. 2. Informo o serial no http://simuladorposceara.azurewebsites.net/Index e confirmo o pagamento. 3. Toda vez que executo "Verificar Status Validador" vem um retorno "queue item xxx not complete". Observação: A pasta "C:\Integrador\Input" não possui nenhum arquivo gerado. Alguma ideia do que poderia ser? Obrigado.
  6. Boa noite, Apenas um ajuste para quem estiver passando pela "Rejeição: Total da NF difere do somatório dos Valores compõe o valor Total da NF." na hora de "ValidarRegrasdeNegocios". Os campos vFCPST e vIPIDevol foram incluídos no somatório dos valores que compõe a valor da NF. function NotaFiscal.ValidarRegrasdeNegocios: Boolean; var Erros: String; I: Integer; Inicio, Agora: TDateTime; fsvTotTrib, fsvBC, fsvICMS, fsvICMSDeson, fsvBCST, fsvST, fsvFCPST, fsvProd, fsvFrete : Currency; fsvSeg, fsvDesc, fsvII, fsvIPI, fsIPIDevol, fsvPIS, fsvCOFINS, fsvOutro, fsvServ, fsvNF, fsvTotPag : Currency; FaturamentoDireto, NFImportacao : Boolean; procedure GravaLog(AString: String); begin //DEBUG //Log := Log + FormatDateTime('hh:nn:ss:zzz',Now) + ' - ' + AString + sLineBreak; end; procedure AdicionaErro(const Erro: String); begin Erros := Erros + Erro + sLineBreak; end; begin Inicio := Now; Agora := IncMinute(Now,5); //Aceita uma tolerância de até 5 minutos, devido ao sincronismo de horário do servidor da Empresa e o servidor da SEFAZ. GravaLog('Inicio da Validação'); with TACBrNFe(TNotasFiscais(Collection).ACBrNFe) do begin Erros := ''; GravaLog('Validar: 701-versão'); if NFe.infNFe.Versao < 3.10 then AdicionaErro('701-Rejeição: Versão inválida'); GravaLog('Validar 512-Chave de acesso'); if not ValidarConcatChave then //A03-10 AdicionaErro( '502-Rejeição: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes'); GravaLog('Validar 226-IF'); if copy(IntToStr(NFe.Emit.EnderEmit.cMun), 1, 2) <> IntToStr(Configuracoes.WebServices.UFCodigo) then //B02-10 AdicionaErro('226-Rejeição: Código da UF do Emitente diverge da UF autorizadora'); // 702-Rejeição: NFC-e não é aceita pela UF do Emitente GravaLog('Validar: 503-Serie'); if (NFe.Ide.serie > 899) and //B07-20 (NFe.Ide.tpEmis <> teSCAN) then AdicionaErro('503-Rejeição: Série utilizada fora da faixa permitida no SCAN (900-999)'); GravaLog('Validar: 703-Data hora'); if (NFe.Ide.dEmi > Agora) then //B09-10 AdicionaErro('703-Rejeição: Data-Hora de Emissão posterior ao horário de recebimento'); GravaLog('Validar: 228-Data Emissão'); if ((Agora - NFe.Ide.dEmi) > 30) then //B09-20 AdicionaErro('228-Rejeição: Data de Emissão muito atrasada'); //GB09.02 - Data de Emissão posterior à 31/03/2011 //GB09.03 - Data de Recepção posterior à 31/03/2011 e tpAmb (B24) = 2 GravaLog('Validar: 253-Digito Chave'); if not ValidarChave(NFe.infNFe.ID) then AdicionaErro('253-Rejeição: Digito Verificador da chave de acesso composta inválida'); GravaLog('Validar: 270-Digito Municipio Fato Gerador'); if not ValidarMunicipio(NFe.Ide.cMunFG) then //B12-10 AdicionaErro('270-Rejeição: Código Município do Fato Gerador: dígito inválido'); GravaLog('Validar: 271-Municipio Fato Gerador diferente'); if (UFparaCodigo(NFe.Emit.EnderEmit.UF) <> StrToIntDef( copy(IntToStr(NFe.Ide.cMunFG), 1, 2), 0)) then//GB12.1 AdicionaErro('271-Rejeição: Código Município do Fato Gerador: difere da UF do emitente'); GravaLog('Validar: 570-Tipo de Emissão SCAN/SVC'); if ((NFe.Ide.tpEmis in [teSCAN, teSVCAN, teSVCRS]) and (Configuracoes.Geral.FormaEmissao = teNormal)) then //B22-30 AdicionaErro( '570-Rejeição: Tipo de Emissão 3, 6 ou 7 só é válido nas contingências SCAN/SVC'); GravaLog('Validar: 571-Tipo de Emissão SCAN'); if ((NFe.Ide.tpEmis <> teSCAN) and (Configuracoes.Geral.FormaEmissao = teSCAN)) then //B22-40 AdicionaErro('571-Rejeição: Tipo de Emissão informado diferente de 3 para contingência SCAN'); GravaLog('Validar: 713-Tipo de Emissão SCAN/SVCRS'); if ((Configuracoes.Geral.FormaEmissao in [teSVCAN, teSVCRS]) and (not (NFe.Ide.tpEmis in [teSVCAN, teSVCRS]))) then //B22-60 AdicionaErro('713-Rejeição: Tipo de Emissão diferente de 6 ou 7 para contingência da SVC acessada'); //B23-10 GravaLog('Validar: 252-Ambiente'); if (NFe.Ide.tpAmb <> Configuracoes.WebServices.Ambiente) then //B24-10 AdicionaErro('252-Rejeição: Ambiente informado diverge do Ambiente de recebimento ' + '(Tipo do ambiente da NF-e difere do ambiente do Web Service)'); GravaLog('Validar: 266-Série'); if (not (NFe.Ide.procEmi in [peAvulsaFisco, peAvulsaContribuinte])) and (NFe.Ide.serie > 889) then //B26-10 AdicionaErro('266-Rejeição: Série utilizada fora da faixa permitida no Web Service (0-889)'); GravaLog('Validar: 451-Processo de emissão'); if (NFe.Ide.procEmi in [peAvulsaFisco, peAvulsaContribuinte]) and (NFe.Ide.serie < 890) and (NFe.Ide.serie > 899) then //B26-20 AdicionaErro('451-Rejeição: Processo de emissão informado inválido'); GravaLog('Validar: 370-Tipo de Emissão'); if (NFe.Ide.procEmi in [peAvulsaFisco, peAvulsaContribuinte]) and (NFe.Ide.tpEmis <> teNormal) then //B26-30 AdicionaErro('370-Rejeição: Nota Fiscal Avulsa com tipo de emissão inválido'); GravaLog('Validar: 556-Justificativa Entrada'); if (NFe.Ide.tpEmis = teNormal) and ((NFe.Ide.xJust > '') or (NFe.Ide.dhCont <> 0)) then //B28-10 AdicionaErro( '556-Justificativa de entrada em contingência não deve ser informada para tipo de emissão normal'); GravaLog('Validar: 557-Justificativa Entrada'); if (NFe.Ide.tpEmis in [teContingencia, teFSDA, teOffLine]) and (NFe.Ide.xJust = '') then //B28-20 AdicionaErro('557-A Justificativa de entrada em contingência deve ser informada'); GravaLog('Validar: 558-Data de Entrada'); if (NFe.Ide.dhCont > Agora) then //B28-30 AdicionaErro('558-Rejeição: Data de entrada em contingência posterior a data de recebimento'); GravaLog('Validar: 559-Data Entrada contingência'); if (NFe.Ide.dhCont > 0) and ((Agora - NFe.Ide.dhCont) > 30) then //B28-40 AdicionaErro('559-Rejeição: Data de entrada em contingência muito atrasada'); GravaLog('Validar: 207-CNPJ emitente'); if not ValidarCNPJ(NFe.Emit.CNPJCPF) then AdicionaErro('207-Rejeição: CNPJ do emitente inválido'); GravaLog('Validar: 272-Código Município'); if not ValidarMunicipio(NFe.Emit.EnderEmit.cMun) then AdicionaErro('272-Rejeição: Código Município do Emitente: dígito inválido'); GravaLog('Validar: 273-Código Município difere da UF'); if (UFparaCodigo(NFe.Emit.EnderEmit.UF) <> StrToIntDef( copy(IntToStr(NFe.Emit.EnderEmit.cMun), 1, 2), 0)) then AdicionaErro('273-Rejeição: Código Município do Emitente: difere da UF do emitente'); GravaLog('Validar: 229-IE não informada'); if EstaVazio(NFe.Emit.IE) then AdicionaErro('229-Rejeição: IE do emitente não informada'); GravaLog('Validar: 209-IE inválida'); if not ValidarIE(NFe.Emit.IE,NFe.Emit.EnderEmit.UF) then AdicionaErro('209-Rejeição: IE do emitente inválida '); GravaLog('Validar: 208-CNPJ destinatário'); if (Length(Trim(OnlyNumber(NFe.Dest.CNPJCPF))) >= 14) and not ValidarCNPJ(NFe.Dest.CNPJCPF) then AdicionaErro('208-Rejeição: CNPJ do destinatário inválido'); GravaLog('Validar: 513-EX'); if (NFe.Retirada.UF = 'EX') and (NFe.Retirada.cMun <> 9999999) then AdicionaErro('513-Rejeição: Código Município do Local de Retirada deve ser 9999999 para UF retirada = "EX"'); GravaLog('Validar: 276-Cod Município Retirada inválido'); if (NFe.Retirada.UF <> 'EX') and NaoEstaVazio(NFe.Retirada.xMun) and not ValidarMunicipio(NFe.Retirada.cMun) then AdicionaErro('276-Rejeição: Código Município do Local de Retirada: dígito inválido'); GravaLog('Validar: 277-Cod Município Retirada diferente UF'); if NaoEstaVazio(NFe.Retirada.UF) and (NFe.Retirada.cMun > 0)then if (UFparaCodigo(NFe.Retirada.UF) <> StrToIntDef( copy(IntToStr(NFe.Retirada.cMun), 1, 2), 0)) then AdicionaErro('277-Rejeição: Código Município do Local de Retirada: difere da UF do Local de Retirada'); GravaLog('Validar: 515-Cod Município Entrega EX'); if (NFe.Entrega.UF = 'EX') and (NFe.Entrega.cMun <> 9999999) then AdicionaErro('515-Rejeição: Código Município do Local de Entrega deve ser 9999999 para UF entrega = "EX"'); GravaLog('Validar: 278-Cod Município Entrega inválido'); if (NFe.Entrega.UF <> 'EX') and NaoEstaVazio(NFe.Entrega.xMun) and not ValidarMunicipio(NFe.Entrega.cMun) then AdicionaErro('278-Rejeição: Código Município do Local de Entrega: dígito inválido'); GravaLog('Validar: 279-Cod Município Entrega diferente UF'); if NaoEstaVazio(NFe.Entrega.UF)and (NFe.Entrega.cMun > 0) then if (UFparaCodigo(NFe.Entrega.UF) <> StrToIntDef( copy(IntToStr(NFe.Entrega.cMun), 1, 2), 0)) then AdicionaErro('279-Rejeição: Código Município do Local de Entrega: difere da UF do Local de Entrega'); GravaLog('Validar: 542-CNPJ Transportador'); if NaoEstaVazio(Trim(NFe.Transp.Transporta.CNPJCPF)) and (Length(Trim(OnlyNumber(NFe.Transp.Transporta.CNPJCPF))) >= 14) and not ValidarCNPJ(NFe.Transp.Transporta.CNPJCPF) then AdicionaErro('542-Rejeição: CNPJ do Transportador inválido'); GravaLog('Validar: 543-CPF Transportador'); if NaoEstaVazio(Trim(NFe.Transp.Transporta.CNPJCPF)) and (Length(Trim(OnlyNumber(NFe.Transp.Transporta.CNPJCPF))) <= 11) and not ValidarCPF(NFe.Transp.Transporta.CNPJCPF) then AdicionaErro('543-Rejeição: CPF do Transportador inválido'); GravaLog('Validar: 559-UF do Transportador'); if NaoEstaVazio(Trim(NFe.Transp.Transporta.IE)) and EstaVazio(Trim(NFe.Transp.Transporta.UF)) then AdicionaErro('559-Rejeição: UF do Transportador não informada'); GravaLog('Validar: 544-IE do Transportador'); if NaoEstaVazio(Trim(NFe.Transp.Transporta.IE)) and not ValidarIE(NFe.Transp.Transporta.IE,NFe.Transp.Transporta.UF) then AdicionaErro('544-Rejeição: IE do Transportador inválida'); if (NFe.Ide.modelo = 65) then //Regras válidas apenas para NFC-e - 65 begin GravaLog('Validar: 704-NFCe Data atrasada'); if (NFe.Ide.dEmi < IncMinute(Agora,-10)) and (NFe.Ide.tpEmis in [teNormal, teSCAN, teSVCAN, teSVCRS]) then //B09-40 AdicionaErro('704-Rejeição: NFC-e com Data-Hora de emissão atrasada'); GravaLog('Validar: 705-NFCe Data de entrada/saida'); if (NFe.Ide.dSaiEnt <> 0) then //B10-10 AdicionaErro('705-Rejeição: NFC-e com data de entrada/saída'); GravaLog('Validar: 706-NFCe operação entrada'); if (NFe.Ide.tpNF = tnEntrada) then //B11-10 AdicionaErro('706-Rejeição: NFC-e para operação de entrada'); GravaLog('Validar: 707-NFCe operação interestadual'); if (NFe.Ide.idDest <> doInterna) then //B11-10 AdicionaErro('707-NFC-e para operação interestadual ou com o exterior'); GravaLog('Validar: 709-NFCe formato DANFE'); if (not (NFe.Ide.tpImp in [tiNFCe, tiMsgEletronica])) then //B21-10 AdicionaErro('709-Rejeição: NFC-e com formato de DANFE inválido'); GravaLog('Validar: 712-NFCe contingência off-line'); if (NFe.Ide.tpEmis = teOffLine) and (AnsiIndexStr(NFe.Emit.EnderEmit.UF, ['SP']) <> -1) then //B22-20 AdicionaErro('712-Rejeição: NF-e com contingência off-line'); GravaLog('Validar: 782-NFCe e SCAN'); if (NFe.Ide.tpEmis = teSCAN) then //B22-50 AdicionaErro('782-Rejeição: NFC-e não é autorizada pelo SCAN'); GravaLog('Validar: 783-NFCe e SVC'); if (NFe.Ide.tpEmis in [teSVCAN, teSVCRS]) then //B22-70 AdicionaErro('783-Rejeição: NFC-e não é autorizada pela SVC'); GravaLog('Validar: 715-NFCe finalidade'); if (NFe.Ide.finNFe <> fnNormal) then //B25-20 AdicionaErro('715-Rejeição: Rejeição: NFC-e com finalidade inválida'); GravaLog('Validar: 716-NFCe operação'); if (NFe.Ide.indFinal = cfNao) then //B25a-10 AdicionaErro('716-Rejeição: NFC-e em operação não destinada a consumidor final'); GravaLog('Validar: 717-NFCe entrega'); if (not (NFe.Ide.indPres in [pcPresencial, pcEntregaDomicilio])) then //B25b-20 AdicionaErro('717-Rejeição: NFC-e em operação não presencial'); GravaLog('Validar: 785-NFCe entrega e UF'); if (NFe.Ide.indPres = pcEntregaDomicilio) and (AnsiIndexStr(NFe.Emit.EnderEmit.UF, ['XX']) <> -1) then //B25b-30 Qual estado não permite entrega a domicílio? AdicionaErro('785-Rejeição: NFC-e com entrega a domicílio não permitida pela UF'); GravaLog('Validar: 708-NFCe referenciada'); if (NFe.Ide.NFref.Count > 0) then AdicionaErro('708-Rejeição: NFC-e não pode referenciar documento fiscal'); GravaLog('Validar: 718-NFCe e IE de ST'); if NaoEstaVazio(Trim(NFe.Emit.IEST)) then AdicionaErro('718-Rejeição: NFC-e não deve informar IE de Substituto Tributário'); GravaLog('Validar: 787-NFCe entrega e Identificação'); if (NFe.Ide.indPres = pcEntregaDomicilio) and EstaVazio(Trim(nfe.Entrega.xLgr)) and EstaVazio(Trim(nfe.Dest.EnderDest.xLgr)) then AdicionaErro('787-Rejeição: NFC-e de entrega a domicílio sem a identificação do destinatário'); GravaLog('Validar: 789-NFCe e destinatário'); if (NFe.Dest.indIEDest <> inNaoContribuinte) then AdicionaErro('789-Rejeição: NFC-e para destinatário contribuinte de ICMS'); GravaLog('Validar: 729-NFCe IE destinatário'); if NaoEstaVazio(Trim(NFe.Dest.IE)) then AdicionaErro('729-Rejeição: NFC-e com informação da IE do destinatário'); GravaLog('Validar: 730-NFCe e SUFRAMA'); if NaoEstaVazio(Trim(NFe.Dest.ISUF)) then AdicionaErro('730-Rejeição: NFC-e com Inscrição Suframa'); GravaLog('Validar: 753-NFCe e Frete'); if (NFe.Transp.modFrete <> mfSemFrete) and (NFe.Ide.indPres <> pcEntregaDomicilio)then AdicionaErro('753-Rejeição: NFC-e com Frete'); GravaLog('Validar: 754-NFCe e dados Transporte'); if (NFe.Ide.indPres <> pcEntregaDomicilio) and ((trim(NFe.Transp.Transporta.CNPJCPF) <> '') or (trim(NFe.Transp.Transporta.xNome) <> '') or (trim(NFe.Transp.Transporta.IE) <> '') or (trim(NFe.Transp.Transporta.xEnder) <> '') or (trim(NFe.Transp.Transporta.xMun) <> '') or (trim(NFe.Transp.Transporta.UF) <> '')) then AdicionaErro('754-Rejeição: NFC-e com dados do Transportador'); GravaLog('Validar: 786-NFCe entrega domicilio e dados Transporte'); if (NFe.Ide.indPres = pcEntregaDomicilio) and ((trim(NFe.Transp.Transporta.CNPJCPF) = '') or (trim(NFe.Transp.Transporta.xNome) = '')) then AdicionaErro('786-Rejeição: NFC-e de entrega a domicílio sem dados do Transportador'); GravaLog('Validar: 755-NFCe retenção ICMS Transporte'); if (NFe.Transp.retTransp.vServ > 0) or (NFe.Transp.retTransp.vBCRet > 0) or (NFe.Transp.retTransp.pICMSRet > 0) or (NFe.Transp.retTransp.vICMSRet > 0) or (Trim(NFe.Transp.retTransp.CFOP) <> '') or (NFe.Transp.retTransp.cMunFG > 0) then AdicionaErro('755-Rejeição: NFC-e com dados de Retenção do ICMS no Transporte'); GravaLog('Validar: 756-NFCe dados veiculo Transporte'); if (Trim(NFe.Transp.veicTransp.placa) <> '') or (Trim(NFe.Transp.veicTransp.UF) <> '') or (Trim(NFe.Transp.veicTransp.RNTC) <> '') then AdicionaErro('756-Rejeição: NFC-e com dados do veículo de Transporte'); GravaLog('Validar: 757-NFCe dados reboque Transporte'); if NFe.Transp.Reboque.Count > 0 then AdicionaErro('757-Rejeição: NFC-e com dados de Reboque do veículo de Transporte'); GravaLog('Validar: 758-NFCe dados vagão Transporte'); if NaoEstaVazio(Trim(NFe.Transp.vagao)) then AdicionaErro('758-Rejeição: NFC-e com dados do Vagão de Transporte'); GravaLog('Validar: 759-NFCe dados Balsa Transporte'); if NaoEstaVazio(Trim(NFe.Transp.balsa)) then AdicionaErro('759-Rejeição: NFC-e com dados da Balsa de Transporte'); GravaLog('Validar: 760-NFCe entrega dados cobrança'); if (Trim(nfe.Cobr.Fat.nFat) <> '') or (NFe.Cobr.Fat.vOrig > 0) or (NFe.Cobr.Fat.vDesc > 0) or (NFe.Cobr.Fat.vLiq > 0) or (NFe.Cobr.Dup.Count > 0) then AdicionaErro('760-Rejeição: NFC-e com dados de cobrança (Fatura, Duplicata)'); GravaLog('Validar: 769-NFCe formas pagamento'); if NFe.pag.Count <= 0 then AdicionaErro('769-Rejeição: NFC-e deve possuir o grupo de Formas de Pagamento'); GravaLog('Validar: 762-NFCe dados de compra'); if Trim(NFe.compra.xNEmp) + Trim(NFe.compra.xPed) + Trim(NFe.compra.xCont) <> '' then AdicionaErro('762-Rejeição: NFC-e com dados de compras (Empenho, Pedido, Contrato)'); GravaLog('Validar: 763-NFCe dados cana'); if not(Trim(NFe.cana.safra) = '') or not(Trim(NFe.cana.ref) = '') or (NFe.cana.fordia.Count > 0) or (NFe.cana.deduc.Count > 0) then AdicionaErro('763-Rejeição: NFC-e com dados de aquisição de Cana'); end; if (NFe.Ide.modelo = 55) then //Regras válidas apenas para NF-e - 55 begin GravaLog('Validar: 504-Saida > 30'); if ((NFe.Ide.dSaiEnt - Agora) > 30) then //B10-20 - Facultativo AdicionaErro('504-Rejeição: Data de Entrada/Saída posterior ao permitido'); GravaLog('Validar: 505-Saida < 30'); if (NFe.Ide.dSaiEnt <> 0) and ((Agora - NFe.Ide.dSaiEnt) > 30) then //B10-30 - Facultativo AdicionaErro('505-Rejeição: Data de Entrada/Saída anterior ao permitido'); GravaLog('Validar: 506-Saida < Emissao'); if (NFe.Ide.dSaiEnt <> 0) and (NFe.Ide.dSaiEnt < NFe.Ide.dEmi) then //B10-40 - Facultativo AdicionaErro('506-Rejeição: Data de Saída menor que a Data de Emissão'); GravaLog('Validar: 710-Formato DANFE'); if (NFe.Ide.tpImp in [tiNFCe, tiMsgEletronica]) then //B21-20 AdicionaErro('710-Rejeição: NF-e com formato de DANFE inválido'); GravaLog('Validar: 711-NFe off-line'); if (NFe.Ide.tpEmis = teOffLine) then //B22-10 AdicionaErro('711-Rejeição: NF-e com contingência off-line'); GravaLog('Validar: 254-NFe complementar sem referenciada'); if (NFe.Ide.finNFe = fnComplementar) and (NFe.Ide.NFref.Count = 0) then //B25-30 AdicionaErro('254-Rejeição: NF-e complementar não possui NF referenciada'); GravaLog('Validar: 255-NFe complementar e muitas referenciada'); if (NFe.Ide.finNFe = fnComplementar) and (NFe.Ide.NFref.Count > 1) then //B25-40 AdicionaErro('255-Rejeição: NF-e complementar possui mais de uma NF referenciada'); GravaLog('Validar: 269-CNPJ Emitente NFe complementar'); if (NFe.Ide.finNFe = fnComplementar) and (NFe.Ide.NFref.Count = 1) and (((NFe.Ide.NFref.Items[0].RefNF.CNPJ > '') and (NFe.Ide.NFref.Items[0].RefNF.CNPJ <> NFe.Emit.CNPJCPF)) or ((NFe.Ide.NFref.Items[0].RefNFP.CNPJCPF > '') and (NFe.Ide.NFref.Items[0].RefNFP.CNPJCPF <> NFe.Emit.CNPJCPF))) then //B25-50 AdicionaErro( '269-Rejeição: CNPJ Emitente da NF Complementar difere do CNPJ da NF Referenciada'); GravaLog('Validar: 678-UF NFe referenciada e complementar'); if (NFe.Ide.finNFe = fnComplementar) and (NFe.Ide.NFref.Count = 1) and //Testa pelo número para saber se TAG foi preenchida (((NFe.Ide.NFref.Items[0].RefNF.nNF > 0) and (NFe.Ide.NFref.Items[0].RefNF.cUF <> UFparaCodigo( NFe.Emit.EnderEmit.UF))) or ((NFe.Ide.NFref.Items[0].RefNFP.nNF > 0) and (NFe.Ide.NFref.Items[0].RefNFP.cUF <> UFparaCodigo( NFe.Emit.EnderEmit.UF)))) then //B25-60 - Facultativo AdicionaErro('678-Rejeição: NF referenciada com UF diferente da NF-e complementar'); GravaLog('Validar: 321-NFe devolução sem referenciada'); if (NFe.Ide.finNFe = fnDevolucao) and (NFe.Ide.NFref.Count = 0) then //B25-70 AdicionaErro('321-Rejeição: NF-e devolução não possui NF referenciada'); GravaLog('Validar: 794-NFe e domicício NFCe'); if (NFe.Ide.indPres = pcEntregaDomicilio) then //B25b-10 AdicionaErro('794-Rejeição: NF-e com indicativo de NFC-e com entrega a domicílio'); // GravaLog('Validar: 719-NFe sem ident. destinatário'); // if (NFe.Dest.CNPJCPF = '') and // (NFe.Dest.idEstrangeiro = '') then // AdicionaErro('719-Rejeição: NF-e sem a identificação do destinatário'); GravaLog('Validar: 237-CPF destinatário '); if (Trim(OnlyNumber(NFe.Dest.CNPJCPF)) <> EmptyStr) and (Length(Trim(OnlyNumber(NFe.Dest.CNPJCPF))) <= 11) and not ValidarCPF(NFe.Dest.CNPJCPF) then AdicionaErro('237-Rejeição: CPF do destinatário inválido'); // GravaLog('Validar: 720-idEstrangeiro'); // if (nfe.Ide.idDest = doExterior) and // (EstaVazio(Trim(NFe.Dest.idEstrangeiro))) then // AdicionaErro('720-Rejeição: Na operação com Exterior deve ser informada tag idEstrangeiro'); GravaLog('Validar: 721-Op.Interstadual sem CPF/CNPJ'); if (nfe.Ide.idDest = doInterestadual) and (EstaVazio(Trim(NFe.Dest.CNPJCPF))) then AdicionaErro('721-Rejeição: Operação interestadual deve informar CNPJ ou CPF'); GravaLog('Validar: 723-Op.interna com idEstrangeiro'); if (nfe.Ide.idDest = doInterna) and (NaoEstaVazio(Trim(NFe.Dest.idEstrangeiro))) and (NFe.Ide.indFinal <> cfConsumidorFinal)then AdicionaErro('723-Rejeição: Operação interna com idEstrangeiro informado deve ser para consumidor final'); GravaLog('Validar: 724-Nome destinatário'); if EstaVazio(Trim(NFe.Dest.xNome)) then AdicionaErro('724-Rejeição: NF-e sem o nome do destinatário'); GravaLog('Validar: 726-Sem Endereço destinatário'); if EstaVazio(Trim(NFe.Dest.EnderDest.xLgr)) then AdicionaErro('726-Rejeição: NF-e sem a informação de endereço do destinatário'); GravaLog('Validar: 509-EX e município'); if (NFe.Dest.EnderDest.UF <> 'EX') and not ValidarMunicipio(NFe.Dest.EnderDest.cMun) then AdicionaErro('509-Rejeição: Informado código de município diferente de "9999999" para operação com o exterior'); GravaLog('Validar: 727-Op exterior e UF'); if (nfe.Ide.idDest = doExterior) and (NFe.Dest.EnderDest.UF <> 'EX') then AdicionaErro('727-Rejeição: Operação com Exterior e UF diferente de EX'); GravaLog('Validar: 771-Op.Interstadual e UF EX'); if (nfe.Ide.idDest = doInterestadual) and (NFe.Dest.EnderDest.UF = 'EX') then AdicionaErro('771-Rejeição: Operação Interestadual e UF de destino com EX'); GravaLog('Validar: 772-Op.Interstadual e UF igual'); if (nfe.Ide.idDest = doInterestadual) and (NFe.Dest.EnderDest.UF = NFe.Emit.EnderEmit.UF) then AdicionaErro('772-Rejeição: Operação Interestadual e UF de destino igual à UF do emitente'); GravaLog('Validar: 773-Op.Interna e UF diferente'); if (nfe.Ide.idDest = doInterna) and (NFe.Dest.EnderDest.UF <> NFe.Emit.EnderEmit.UF) and (NFe.Ide.indPres <> pcPresencial) then AdicionaErro('773-Rejeição: Operação Interna e UF de destino difere da UF do emitente - não presencial'); GravaLog('Validar: 790-Op.Exterior e Destinatário ICMS'); if (NFe.Ide.idDest = doExterior) and (NFe.Dest.indIEDest <> inNaoContribuinte) then AdicionaErro('790-Rejeição: Operação com Exterior para destinatário Contribuinte de ICMS'); if NFe.infNFe.Versao < 4 then begin GravaLog('Validar: 768-NFe < 4.0 com formas de pagamento'); if (NFe.pag.Count > 0) then AdicionaErro('768-Rejeição: NF-e não deve possuir o grupo de Formas de Pagamento'); end else begin GravaLog('Validar: 769-NFe >= 4.0 sem formas pagamento'); if (NFe.pag.Count <= 0) then AdicionaErro('769-Rejeição: NF-e deve possuir o grupo de Formas de Pagamento'); end; end; for I:=0 to NFe.autXML.Count-1 do begin GravaLog('Validar: 325-'+IntToStr(I)+'-CPF download'); if (Length(Trim(OnlyNumber(NFe.autXML[I].CNPJCPF))) <= 11) and not ValidarCPF(NFe.autXML[I].CNPJCPF) then AdicionaErro('325-Rejeição: CPF autorizado para download inválido'); GravaLog('Validar: 323-'+IntToStr(I)+'-CNPJ download'); if (Length(Trim(OnlyNumber(NFe.autXML[I].CNPJCPF))) > 11) and not ValidarCNPJ(NFe.autXML[I].CNPJCPF) then AdicionaErro('323-Rejeição: CNPJ autorizado para download inválido'); end; fsvTotTrib := 0; fsvBC := 0; fsvICMS := 0; fsvICMSDeson := 0; fsvBCST := 0; fsvST := 0; fsvFCPST := 0; fsvProd := 0; fsvFrete := 0; fsvSeg := 0; fsvDesc := 0; fsvII := 0; fsvIPI := 0; fsIPIDevol := 0; fsvPIS := 0; fsvCOFINS := 0; fsvOutro := 0; fsvServ := 0; FaturamentoDireto := False; NFImportacao := False; for I:=0 to NFe.Det.Count-1 do begin with NFe.Det[I] do begin if Trim(Prod.NCM) <> '00' then begin // validar NCM completo somente quando não for serviço GravaLog('Validar: 777-'+IntToStr(I)+'-NCM info'); if Length(Trim(Prod.NCM)) < 8 then AdicionaErro('777-Rejeição: Obrigatória a informação do NCM completo'); end; if (NFe.Ide.modelo = 65) then begin GravaLog('Validar: 725-'+IntToStr(I)+'-NFCe CFOP invalido'); if (pos(OnlyNumber(Prod.CFOP), 'XXXX,5101,5102,5103,5104,5115,5401,5403,5405,5653,5656,5667,5933') <= 0) then AdicionaErro('725-Rejeição: NFC-e com CFOP inválido'); GravaLog('Validar: 774-'+IntToStr(I)+'-NFCe indicador Total'); if (Prod.IndTot = itNaoSomaTotalNFe) then AdicionaErro('774-Rejeição: NFC-e com indicador de item não participante do total'); GravaLog('Validar: 736-'+IntToStr(I)+'-NFCe Grupo veiculos novos'); if (NaoEstaVazio(Prod.veicProd.chassi)) then AdicionaErro('736-Rejeição: NFC-e com grupo de Veículos novos'); GravaLog('Validar: 737-'+IntToStr(I)+'-NCM info'); if (Prod.med.Count > 0) then AdicionaErro('737-Rejeição: NFC-e com grupo de Medicamentos'); GravaLog('Validar: 738-'+IntToStr(I)+'-NFCe grupo Armamentos'); if (Prod.arma.Count > 0) then AdicionaErro('738-Rejeição: NFC-e com grupo de Armamentos'); GravaLog('Validar: 348-'+IntToStr(I)+'-NFCe grupo RECOPI'); if (NaoEstaVazio(Prod.nRECOPI)) then AdicionaErro('348-Rejeição: NFC-e com grupo RECOPI'); GravaLog('Validar: 766-'+IntToStr(I)+'-NFCe CST 50'); if (Imposto.ICMS.CST = cst50) then AdicionaErro('766-Rejeição: NFC-e com CST 50-Suspensão'); GravaLog('Validar: 740-'+IntToStr(I)+'-NFCe CST 51'); if (Imposto.ICMS.CST = cst51) then AdicionaErro('740-Rejeição: NFC-e com CST 51-Diferimento'); GravaLog('Validar: 741-'+IntToStr(I)+'-NFCe partilha ICMS'); if (Imposto.ICMS.CST in [cstPart10,cstPart90]) then AdicionaErro('741-Rejeição: NFC-e com Partilha de ICMS entre UF'); GravaLog('Validar: 742-'+IntToStr(I)+'-NFCe grupo IPI'); if ((Imposto.IPI.cEnq <> '') or (Imposto.IPI.vBC <> 0) or (Imposto.IPI.qUnid <> 0) or (Imposto.IPI.vUnid <> 0) or (Imposto.IPI.pIPI <> 0) or (Imposto.IPI.vIPI <> 0)) then AdicionaErro('742-Rejeição: NFC-e com grupo do IPI'); GravaLog('Validar: 743-'+IntToStr(I)+'-NFCe grupo II'); if (Imposto.II.vBc > 0) or (Imposto.II.vDespAdu > 0) or (Imposto.II.vII > 0) or (Imposto.II.vIOF > 0) or (Copy(Prod.CFOP,1,1) = '3') then AdicionaErro('743-Rejeição: NFC-e com grupo do II'); GravaLog('Validar: 746-'+IntToStr(I)+'-NFCe grupo PIS-ST'); if (Imposto.PISST.vBc > 0) or (Imposto.PISST.pPis > 0) or (Imposto.PISST.qBCProd > 0) or (Imposto.PISST.vAliqProd > 0) or (Imposto.PISST.vPIS > 0) then AdicionaErro('746-Rejeição: NFC-e com grupo do PIS-ST'); GravaLog('Validar: 749-'+IntToStr(I)+'-NFCe grupo COFINS-ST'); if (Imposto.COFINSST.vBC > 0) or (Imposto.COFINSST.pCOFINS > 0) or (Imposto.COFINSST.qBCProd > 0) or (Imposto.COFINSST.vAliqProd > 0) or (Imposto.COFINSST.vCOFINS > 0) then AdicionaErro('749-Rejeição: NFC-e com grupo da COFINS-ST'); end; GravaLog('Validar: 528-'+IntToStr(I)+'-ICMS BC e Aliq'); if (Imposto.ICMS.CST in [cst00,cst10,cst20,cst70]) and (NFe.Ide.finNFe = fnNormal) and (ComparaValor(Imposto.ICMS.vICMS, Imposto.ICMS.vBC * (Imposto.ICMS.pICMS/100), 0.01) <> 0) then AdicionaErro('528-Rejeição: Valor do ICMS difere do produto BC e Alíquota'); GravaLog('Validar: 625-'+IntToStr(I)+'-Insc.SUFRAMA'); if (Imposto.ICMS.motDesICMS = mdiSuframa) and (EstaVazio(NFe.Dest.ISUF))then AdicionaErro('625-Rejeição: Inscrição SUFRAMA deve ser informada na venda com isenção para ZFM'); GravaLog('Validar: 530-'+IntToStr(I)+'-ISSQN e IM'); if EstaVazio(NFe.Emit.IM) and ((Imposto.ISSQN.vBC > 0) or (Imposto.ISSQN.vAliq > 0) or (Imposto.ISSQN.vISSQN > 0) or (Imposto.ISSQN.cMunFG > 0) or (Imposto.ISSQN.cListServ <> '')) then AdicionaErro('530-Rejeição: Operação com tributação de ISSQN sem informar a Inscrição Municipal'); GravaLog('Validar: 287-'+IntToStr(I)+'-Cod.Município FG'); if (Imposto.ISSQN.cMunFG > 0) and not ValidarMunicipio(Imposto.ISSQN.cMunFG) then AdicionaErro('287-Rejeição: Código Município do FG - ISSQN: dígito inválido'); if Prod.IndTot = itSomaTotalNFe then begin fsvTotTrib := fsvTotTrib + Imposto.vTotTrib; fsvBC := fsvBC + Imposto.ICMS.vBC; fsvICMS := fsvICMS + Imposto.ICMS.vICMS; fsvICMSDeson := fsvICMSDeson + Imposto.ICMS.vICMSDeson; fsvBCST := fsvBCST + Imposto.ICMS.vBCST; fsvST := fsvST + Imposto.ICMS.vICMSST; fsvFCPST := fsvFCPST + Imposto.ICMS.vFCPST; fsvFrete := fsvFrete + Prod.vFrete; fsvSeg := fsvSeg + Prod.vSeg; fsvDesc := fsvDesc + Prod.vDesc; fsvII := fsvII + Imposto.II.vII; fsvIPI := fsvIPI + Imposto.IPI.vIPI; fsIPIDevol := fsIPIDevol + vIPIDevol; fsvPIS := fsvPIS + Imposto.PIS.vPIS; fsvCOFINS := fsvCOFINS + Imposto.COFINS.vCOFINS; fsvOutro := fsvOutro + Prod.vOutro; fsvServ := fsvServ + Imposto.ISSQN.vBC; //VERIFICAR // quando for serviço o produto não soma do total de produtos, quando for nota de ajuste também irá somar if (Prod.NCM <> '00') or ((Prod.NCM = '00') and (NFe.Ide.finNFe = fnAjuste)) then fsvProd := fsvProd + Prod.vProd; end; if Prod.veicProd.tpOP = toFaturamentoDireto then FaturamentoDireto := True; if Copy(Prod.CFOP,1,1) = '3'then NFImportacao := True; end; end; if FaturamentoDireto then fsvNF := (fsvProd+fsvFrete+fsvSeg+fsvOutro+fsvII+fsvIPI+fsvServ)-(fsvDesc+fsvICMSDeson) else fsvNF := (fsvProd+fsvST+fsvFCPST+fsvFrete+fsvSeg+fsvOutro+fsvII+fsvIPI+fsIPIDevol+fsvServ)-(fsvDesc+fsvICMSDeson); GravaLog('Validar: 531-Total BC ICMS'); if (NFe.Total.ICMSTot.vBC <> fsvBC) then AdicionaErro('531-Rejeição: Total da BC ICMS difere do somatório dos itens'); GravaLog('Validar: 532-Total ICMS'); if (NFe.Total.ICMSTot.vICMS <> fsvICMS) then AdicionaErro('532-Rejeição: Total do ICMS difere do somatório dos itens'); GravaLog('Validar: 795-Total ICMS desonerado'); if (NFe.Total.ICMSTot.vICMSDeson <> fsvICMSDeson) then AdicionaErro('795-Rejeição: Total do ICMS desonerado difere do somatório dos itens'); GravaLog('Validar: 533-Total BC ICMS-ST'); if (NFe.Total.ICMSTot.vBCST <> fsvBCST) then AdicionaErro('533-Rejeição: Total da BC ICMS-ST difere do somatório dos itens'); GravaLog('Validar: 534-Total ICMS-ST'); if (NFe.Total.ICMSTot.vST <> fsvST) then AdicionaErro('534-Rejeição: Total do ICMS-ST difere do somatório dos itens'); GravaLog('Validar: 564-Total Produto/Serviço'); if (NFe.Total.ICMSTot.vProd <> fsvProd) then AdicionaErro('564-Rejeição: Total do Produto / Serviço difere do somatório dos itens'); GravaLog('Validar: 535-Total Frete'); if (NFe.Total.ICMSTot.vFrete <> fsvFrete) then AdicionaErro('535-Rejeição: Total do Frete difere do somatório dos itens'); GravaLog('Validar: 536-Total Seguro'); if (NFe.Total.ICMSTot.vSeg <> fsvSeg) then AdicionaErro('536-Rejeição: Total do Seguro difere do somatório dos itens'); GravaLog('Validar: 537-Total Desconto'); if (NFe.Total.ICMSTot.vDesc <> fsvDesc) then AdicionaErro('537-Rejeição: Total do Desconto difere do somatório dos itens'); GravaLog('Validar: 601-Total II'); if (NFe.Total.ICMSTot.vII <> fsvII) then AdicionaErro('601-Rejeição: Total do II difere do somatório dos itens'); GravaLog('Validar: 538-Total IPI'); if (NFe.Total.ICMSTot.vIPI <> fsvIPI) then AdicionaErro('538-Rejeição: Total do IPI difere do somatório dos itens'); GravaLog('Validar: 602-Total PIS'); if (NFe.Total.ICMSTot.vPIS <> fsvPIS) then AdicionaErro('602-Rejeição: Total do PIS difere do somatório dos itens sujeitos ao ICMS'); GravaLog('Validar: 603-Total COFINS'); if (NFe.Total.ICMSTot.vCOFINS <> fsvCOFINS) then AdicionaErro('603-Rejeição: Total da COFINS difere do somatório dos itens sujeitos ao ICMS'); GravaLog('Validar: 604-Total vOutro'); if (NFe.Total.ICMSTot.vOutro <> fsvOutro) then AdicionaErro('604-Rejeição: Total do vOutro difere do somatório dos itens'); GravaLog('Validar: 610-Total NF'); if not NFImportacao and (NFe.Total.ICMSTot.vNF <> fsvNF) then begin if (NFe.Total.ICMSTot.vNF <> (fsvNF+fsvICMSDeson)) then AdicionaErro('610-Rejeição: Total da NF difere do somatório dos Valores compõe o valor Total da NF.'); end; GravaLog('Validar: 685-Total Tributos'); if (NFe.Total.ICMSTot.vTotTrib <> fsvTotTrib) then AdicionaErro('685-Rejeição: Total do Valor Aproximado dos Tributos difere do somatório dos itens'); if (NFe.Ide.modelo = 65) and (NFe.infNFe.Versao < 4) then begin GravaLog('Validar: 767-NFCe soma pagamentos'); fsvTotPag := 0; for I := 0 to NFe.pag.Count-1 do begin fsvTotPag := fsvTotPag + NFe.pag[I].vPag; end; if (NFe.Total.ICMSTot.vNF <> fsvTotPag) then AdicionaErro('767-Rejeição: NFC-e com somatório dos pagamentos diferente do total da Nota Fiscal'); end; //TODO: Regrar W01. Total da NF-e / ISSQN end; Result := EstaVazio(Erros); if not Result then begin Erros := ACBrStr('Erro(s) nas Regras de negócios da nota: '+ IntToStr(NFe.Ide.nNF) + sLineBreak + Erros); end; GravaLog('Fim da Validação. Tempo: '+FormatDateTime('hh:nn:ss:zzz', Now - Inicio)+sLineBreak+ 'Erros:' + Erros); //DEBUG //WriteToTXT('c:\temp\Notafiscal.txt', Log); FErroRegrasdeNegocios := Erros; end;
  7. Semana que vem iremos colocar em alguns clientes nossos, por causa do fim do ano, também fizemos uma parada.
  8. Usei um certificado de emitente cadastrado no Amazonas
  9. Boa noite, Caso ajude alguém ... Exatamente a algumas horas baixei os fontes mais recentes do ACBr e vi que não estava emitindo NFC-e 4.0 para o Amazonas, Encontrei o link abaixo que informava os novos links para a 4.0 e fiz essa pequena alteração no ACBrNFe.pas, com isso conseguir emitir. function TACBrNFe.EhAutorizacao( AVersao: TpcnVersaoDF; AModelo: TpcnModeloDF; AUFCodigo: Integer ): Boolean; begin Result := (AVersao >= ve310); if (AModelo = moNFCe) And (AVersao < ve400) then Result := not (AUFCodigo in [13]); // AM end; http://portalnfce.sefaz.am.gov.br/desenvolvedor/enderecos-webservices/ [NFCe_AM_P] NfeAutorizacao_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeAutorizacao NFeRetAutorizacao_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeRetAutorizacao NfeConsultaProtocolo_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeConsulta2 NfeRecepcao_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeRecepcao2 RecepcaoEvento_1.00=https://nfce.sefaz.am.gov.br/nfce-services/services/RecepcaoEvento NfeStatusServico_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeStatusServico2 NfeRetRecepcao_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeRetRecepcao2 NfeInutilizacao_3.10=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeInutilizacao2 AdministrarCSCNFCe_1.00=https://nfce.sefaz.am.gov.br/nfce-services/services/CscNFCe NfeAutorizacao_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeAutorizacao4 NFeRetAutorizacao_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeRetAutorizacao4 NfeConsultaProtocolo_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeConsulta4 NfeInutilizacao_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeInutilizacao4 NfeStatusServico_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/NfeStatusServico4 RecepcaoEvento_4.00=https://nfce.sefaz.am.gov.br/nfce-services/services/RecepcaoEvento4 URL-QRCode=http://sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp URL-ConsultaNFCe=http://sistemas.sefaz.am.gov.br/nfceweb/formConsulta.do [NFCe_AM_H] NfeAutorizacao_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeAutorizacao NFeRetAutorizacao_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeRetAutorizacao NfeConsultaProtocolo_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeConsulta2 NfeRecepcao_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeRecepcao2 RecepcaoEvento_1.00=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/RecepcaoEvento NfeStatusServico_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeStatusServico2 NfeRetRecepcao_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeRetRecepcao2 NfeInutilizacao_3.10=https://homnfce.sefaz.am.gov.br/nfce-services-nac/services/NfeInutilizacao2 AdministrarCSCNFCe_1.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/CscNFCe NfeAutorizacao_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/NfeAutorizacao4 NFeRetAutorizacao_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/NfeRetAutorizacao4 NfeConsultaProtocolo_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/NfeConsulta4 NfeInutilizacao_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/NfeInutilizacao4 NfeStatusServico_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/NfeStatusServico4 RecepcaoEvento_4.00=https://homnfce.sefaz.am.gov.br/nfce-services/services/RecepcaoEvento4 URL-QRCode=http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp URL-ConsultaNFCe=http://homnfce.sefaz.am.gov.br/nfceweb/formConsulta.do
  10. Boa tarde, Tinha esquecido de setar a propriedade ACBrNFSe.Configuracoes.Geral.SSLLib := libCapicom; com isso, resolveu meu caso!
  11. Boa tarde, Também estou passando pelo mesmo problema, TDFeSSLXmlsignclass.assinar não implementado algum caminho a seguir? obrigado!
  12. Blz Italo, esta 100% Obrigado
  13. Boa tarde pessoal, Hoje eu atualizei o ACBRNFSe e passou a dar esse erro "Não foi possível carregar o arquivo: <XML>" na hora de assinar o arquivo. Olhando o XML percebi que o erro estava gerando por falta de um espaço entre o xmlns:ns3 e xmlns:ns4 <ns3:EnviarLoteRpsEnvio xmlns:ns3="http://www.ginfes.com.br/servico_enviar_lote_rps_envio_v03.xsd"<Aqui>xmlns:ns4="http://www.ginfes.com.br/tipos_v03.xsd"> Vi que o espaço foi retirado recentemente no ACBrNFSeWebServices.pas linha 699. Anterior: if FPrefixo2 <> '' then xmlns2 := ' xmlns:' + StringReplace(FPrefixo2, ':', '', []) + '="' else xmlns2 := ' xmlns="'; if FPrefixo3 <> '' then xmlns3 := ' xmlns:' + StringReplace(FPrefixo3, ':', '', []) + '="' else xmlns3 := ' xmlns="'; if FPrefixo4 <> '' then xmlns4 := ' xmlns:' + StringReplace(FPrefixo4, ':', '', []) + '="' else xmlns4 := ' xmlns="'; Atual: if FPrefixo2 <> '' then xmlns2 := 'xmlns:' + StringReplace(FPrefixo2, ':', '', []) + '="' else xmlns2 := 'xmlns="'; if FPrefixo3 <> '' then xmlns3 := 'xmlns:' + StringReplace(FPrefixo3, ':', '', []) + '="' else xmlns3 := 'xmlns="'; if FPrefixo4 <> '' then xmlns4 := 'xmlns:' + StringReplace(FPrefixo4, ':', '', []) + '="' else xmlns4 := 'xmlns="'; Essa alteração esta correta? ou tem um outro lugar que eu possa configurar para incluir esse espaço? A minha solução a principio foi alterar a linha 761 do ACBrNFSeWebServices.pas incluindo um espaço entre FNameSpaceDad e xmlns4 FNameSpaceDad := FNameSpaceDad + ' ' + xmlns4 + FNameSpace + FSeparador + FDefTipos + '"'; Obrigado
  14. Também estou passando pelo mesmo problema com as margens, e ao setar a propriedade PrintMode para pmSplit a margem corta mais ainda!! Uma ajuda???? Obrigado
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.