Ir para conteúdo
  • Cadastre-se

Marcio Martins

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Tudo que Marcio Martins postou

  1. Bom dia. Conseguiram resolver este problema. Ainda continuo, o interessante é na revisão 7741 funciona. Estou na revisão 8870
  2. Caros, segue em anexo LOG da instalação que tentei fazer no Delphi XE7 com Update 1 e Windows 7 64bits Detalhes: Embarcadero® Delphi XE7 Version 21.0.17707.5020 Instalação usando Open SSL ao invés de CAPICON Usando somente FortesReport Imagens e LOG em anexo. log_Delphi_XE7.txt
  3. Estou passando por este (Error: signature failed) problema na NFSe. Usando capicom funciona normal, porém ao usar OpenSSL dá erro na Unit ACBrNFSeUtil neste trecho: if (xmlSecDSigCtxSign(dsigCtx, node) < 0) then raise Exception.Create('Error: signature failed') Ambiente: Estou usando Delphi XE7 sobre Windows 8.1 64bits Usando o projeto de exemplo (ACBr\Exemplos\ACBrNFSe\Delphi) da NFSe
  4. Olá Ítalo, minha dúvida não é em relação à emissão do CT-e de Anulação/Substituição e sim como devo proceder quando eu já emiti o CT-e original, coloquei-o num MDF-e, o mesmo foi autorizado e agora preciso emitir um CT-e de Anulação e/ou Substituição, ou seja, não tenho como tirar o CT-e original do MDF-e que foi autorizado, pois o prazo de cancelamento do MDF-e já expirou. Sendo assim, eu teria no MDF-e um CT-e que não tem mais valor fiscal, pois foi anulado e substituído por outro. Foi emitido o CT-e 1 (Original), depois o CT-e 2 (de Anulação) e por fim o CT-e 3 (de Substituição), como a SEFAZ trata esse cenário? Através do CT-e 1, que foi informado no MDF-e , a SEFAZ em uma possível fiscalização, irá considerar o CT-e 3 como sendo o correto, ou o CT-e 1?
  5. Olá Ítalo, o problema é que o erro no conhecimento só foi notado quando o destinatário da Carga recebeu a mercadoria e viu que o valor do frete, que é FOB, estava errado.
  6. Caros, estou com o seguinte cenário: Fluxos possíveis na emissão dos CT-e's de Anulação e Substituição: 1º) Tomador Não contribuinte Procedimento Sefaz: Emitir o CT-e Original > Emitir o CT-e de Anulação > Emitir o CT-e de Substituição 2º) Tomador contribuinte Procedimento Sefaz: Emitir o CT-e Original > Emitir o CT-e de Substituição. Dúvida: Ao emitir a Anulação/Substituição de um CT-e, como proceder com os CT-e's que já foram lançados em MDF-e's (Manifestos Eletrônicos), CF-e's(Cartas Frete Eletrônicas), por exemplo? Uma vez que os documentos acima já foram autorizados e nem sempre poderão ser cancelados, pois, como exemplo, o MDF-e tem um prazo de cancelamento de 24 horas. Alguém poderia me auxiliar?
  7. Desculpe por tudo, e mais uma vez obrigado. Irei fazer os testes e qualquer coisa retorno. Gostaria de sugerir que alguns destes métodos fossem para um kernel comum, para evitar duplicação de código.
  8. Bom dia Italo. Verifiquei o log e não vi a alterações. As units que anexei no poste anterior, já estão com os ajustes.
  9. Segue em anexo, ajustes no ACBrMdfe para uso com Openssl e Delphi XE pcteRetConsSitCTe.pas A função TRetConsSitCTe.LerXml nem sempre é utilizada verificando o seu resultado logo, quando ocorre um erro, este não é evidenciado. Solução proposta: Disparar a exceção ao invés de emudecê-la. pcteRetConsStatServ.pas TRetConsStatServ.LerXml - Mesmo caso anterior ACBrMDFeConfiguracoes.pas Adicionando a opropriedade IniFinXMLSECAutomatico ACBrMDFeUtil.pas Ajustes nas rotinas que tratam de assinar XML pmdfeMDFeW.pas Ajustes na tag Rodo.veicReboque para gerar tpCar e UF apenas quando a versão for a 1.00a pcteRetConsSitCTe.pas pcteRetConsStatServ.pas ACBrMDFeConfiguracoes.pas ACBrMDFeUtil.pas pmdfeMDFeW.pas
  10. Concordo, hoje eu uso um DEFINE, mas o uso da versão é bem melhor e concordo também ser padrão.
  11. Para resolver o meu problema, tive que comentar o código abaixo na unit pmdfeMDFeW. veicTracao // Gerador.wCampoCNPJCPF('#33', '#34', MDFe.Rodo.veicTracao.Prop.CNPJCPF, CODIGO_BRASIL); Gerador.wCampo(tcStr, '#35', 'RNTRC ', 08, 08, 1, SomenteNumeros(MDFe.Rodo.veicTracao.Prop.RNTRC), DSC_RNTRC); { Gerador.wCampo(tcStr, '#36', 'xNome ', 01, 60, 1, MDFe.Rodo.veicTracao.Prop.xNome, DSC_XNOME); if MDFe.Rodo.veicTracao.Prop.IE <> '' then begin if MDFe.Rodo.veicTracao.Prop.IE = 'ISENTO' then Gerador.wCampo(tcStr, '#37', 'IE ', 00, 14, 1, MDFe.Rodo.veicTracao.Prop.IE, DSC_IE) else Gerador.wCampo(tcStr, '#37', 'IE ', 02, 14, 1, SomenteNumeros(MDFe.Rodo.veicTracao.Prop.IE), DSC_IE); if (FOpcoes.ValidarInscricoes) then if not ValidarIE(MDFe.Rodo.veicTracao.Prop.IE, MDFe.Rodo.veicTracao.Prop.UF) then Gerador.wAlerta('#37', 'IE', DSC_IE, ERR_MSG_INVALIDO); end; Gerador.wCampo(tcStr, '#38', 'UF ', 02, 02, 1, MDFe.Rodo.veicTracao.Prop.UF, DSC_CUF); if not ValidarUF(MDFe.Rodo.veicTracao.Prop.UF) then Gerador.wAlerta('#38', 'UF', DSC_UF, ERR_MSG_INVALIDO); Gerador.wCampo(tcStr, '#39', 'tpProp ', 01, 01, 1, TpPropToStr(MDFe.Rodo.veicTracao.Prop.tpProp), DSC_TPPROP); } Gerador.wGrupo('/prop'); // Gerador.wCampo(tcStr, '#21', 'tpRod ', 02, 02, 1, TpRodadoToStr(MDFe.Rodo.veicTracao.tpRod), ''); // Gerador.wCampo(tcStr, '#22', 'tpCar ', 02, 02, 1, TpCarroceriaToStr(MDFe.Rodo.veicTracao.tpCar), ''); // Gerador.wCampo(tcStr, '#23', 'UF ', 02, 02, 1, MDFe.Rodo.veicTracao.UF, DSC_CUF); veicReboque // Gerador.wCampoCNPJCPF('#33', '#34', MDFe.Rodo.veicReboque.Prop.CNPJCPF, CODIGO_BRASIL); Gerador.wCampo(tcStr, '#35', 'RNTRC ', 08, 08, 1, SomenteNumeros(MDFe.Rodo.veicReboque.Prop.RNTRC), DSC_RNTRC); { Gerador.wCampo(tcStr, '#36', 'xNome ', 01, 60, 1, MDFe.Rodo.veicReboque.Prop.xNome, DSC_XNOME); if MDFe.Rodo.veicReboque.Prop.IE <> '' then begin if MDFe.Rodo.veicReboque.Prop.IE = 'ISENTO' then Gerador.wCampo(tcStr, '#37', 'IE ', 00, 14, 1, MDFe.Rodo.veicTracao.Prop.IE, DSC_IE) else Gerador.wCampo(tcStr, '#37', 'IE ', 02, 14, 1, SomenteNumeros(MDFe.Rodo.veicReboque.Prop.IE), DSC_IE); if (FOpcoes.ValidarInscricoes) then if not ValidarIE(MDFe.Rodo.veicReboque.Prop.IE, MDFe.Rodo.veicReboque.Prop.UF) then Gerador.wAlerta('#37', 'IE', DSC_IE, ERR_MSG_INVALIDO); end; Gerador.wCampo(tcStr, '#38', 'UF ', 02, 02, 1, MDFe.Rodo.veicReboque.Prop.UF, DSC_CUF); if not ValidarUF(MDFe.Rodo.veicReboque.Prop.UF) then Gerador.wAlerta('#38', 'UF', DSC_UF, ERR_MSG_INVALIDO); Gerador.wCampo(tcStr, '#39', 'tpProp ', 01, 01, 1, TpPropToStr(MDFe.Rodo.veicReboque.Prop.tpProp), DSC_TPPROP); } Gerador.wGrupo('/prop'); Eu me pegunto, se não seria melhor ter um DEFINE ou algo do gênero para que cada não tenha que fazer isso? Eu particularmente estou sempre atualizando, por conta das novidades e correções. Uma outra sugestão seria usar um branch para este caso, ou migrar para um DVCS como o Git ou Mercurial. Seria mais fácil contribuir e fazer fork's em casos com este. Fica a dica.
  12. Bom dia a todos. Estou tendo o mesmo problema Rejeicao: Falha no Schema XML especifico para o modal, alguém já conseguiu? Estou usando a versão a revisão 7972 (11/10/2013) do ACBr junto com os Schema /trunk/Exemplos/ACBrMDFe/Delphi/Schemas/V100/PL_MDFe_100a_pre (correcao).zip da revisão 5970. Mensagem de Retorno: Chave MDF-e: 23131000435179000100580000000011271079747501 Manifesto: FOR - 1127 Status: Erro Envio Retorno: <msgmdfe>Manifesto(s) não confirmado(s): 1127->Rejeicao: Falha no Schema XML especifico para o modal </msgmdfe> XML gerado (MDFe_FOR - 1127.XML). XML assinado (23131000435179000100580000000011271079747501.xml). 23131000435179000100580000000011271079747501.xml MDFe_FOR - 1127.XML
  13. Acredito que é mesmo problema que passei. Fiz o ajuste e solicite a inclusão no fonte oficial no post:
  14. Ao enviar um CTe de substituição é reportado o seguinte erro: TAG: ID:#352/refCte(Chave do CTe) - Nenhum valor informado. '' violates pattern constraint of '[0-9]{44}'. Este mesmo erro é reportado aqui no forum no link: Trecho XML: <infCteSub> <chCte>23130900435179000100570010000173451153356992</chCte> <tomaICMS> <refCte>23130900435179000100570010000173451153356992</refCte> </tomaICMS> </infCteSub> Notem quem o chCte e tomaICMS estão no mesmo nível, e refCte dento de tormaICMS. No código abaixo depois de extrair o tomaICMS, lê-se a tag refNFe e em seguida extrai a tag refNF, porém, como mostra o exemplo acima não há refNF. (Maiores informações no manual) Quando lê a refCte nada é encontrado pois está no contexto da refNF. Trecho do arquivo pcteCTeR_V104.inc iniciado na linha 909 if Leitor.rExtrai(2, 'infCteSub') <> '' then begin CTe.infCTeSub.chCte := Leitor.rCampo(tcStr, 'chCte'); if Leitor.rExtrai(3, 'tomaICMS') <> '' then begin CTe.infCTeSub.tomaICMS.refNFe := Leitor.rCampo(tcStr, 'refNFe'); if Leitor.rExtrai(4, 'refNF') <> '' then begin CTe.infCTeSub.tomaICMS.refNF.CNPJ := Leitor.rCampo(tcStr, 'CNPJ'); CTe.infCTeSub.tomaICMS.refNF.modelo := Leitor.rCampo(tcStr, 'mod'); CTe.infCTeSub.tomaICMS.refNF.serie := Leitor.rCampo(tcInt, 'serie'); CTe.infCTeSub.tomaICMS.refNF.subserie := Leitor.rCampo(tcInt, 'subserie'); CTe.infCTeSub.tomaICMS.refNF.nro := Leitor.rCampo(tcInt, 'nro'); CTe.infCTeSub.tomaICMS.refNF.valor := Leitor.rCampo(tcDe2, 'valor'); CTe.infCTeSub.tomaICMS.refNF.dEmi := Leitor.rCampo(tcDat, 'dEmi'); end; CTe.infCTeSub.tomaICMS.refCte := Leitor.rCampo(tcStr, 'refCte'); end; if Leitor.rExtrai(3, 'tomaNaoICMS') <> '' then begin CTe.infCTeSub.tomaNaoICMS.refCteAnu := Leitor.rCampo(tcStr, 'refCteAnu'); end; end; Solução: if Leitor.rExtrai(2, 'infCteSub') <> '' then begin CTe.infCTeSub.chCte := Leitor.rCampo(tcStr, 'chCte'); if Leitor.rExtrai(3, 'tomaICMS') <> '' then begin CTe.infCTeSub.tomaICMS.refCte := Leitor.rCampo(tcStr, 'refCte'); CTe.infCTeSub.tomaICMS.refNFe := Leitor.rCampo(tcStr, 'refNFe'); if Leitor.rExtrai(4, 'refNF') <> '' then begin CTe.infCTeSub.tomaICMS.refNF.CNPJ := Leitor.rCampo(tcStr, 'CNPJ'); CTe.infCTeSub.tomaICMS.refNF.modelo := Leitor.rCampo(tcStr, 'mod'); CTe.infCTeSub.tomaICMS.refNF.serie := Leitor.rCampo(tcInt, 'serie'); CTe.infCTeSub.tomaICMS.refNF.subserie := Leitor.rCampo(tcInt, 'subserie'); CTe.infCTeSub.tomaICMS.refNF.nro := Leitor.rCampo(tcInt, 'nro'); CTe.infCTeSub.tomaICMS.refNF.valor := Leitor.rCampo(tcDe2, 'valor'); CTe.infCTeSub.tomaICMS.refNF.dEmi := Leitor.rCampo(tcDat, 'dEmi'); end; end; if Leitor.rExtrai(3, 'tomaNaoICMS') <> '' then begin CTe.infCTeSub.tomaNaoICMS.refCteAnu := Leitor.rCampo(tcStr, 'refCteAnu'); end; end; Fiz vários testes e agora funciona perfeitamente. Gostaria de solicitar a inclusão no fonte oficial do projeto.
×
×
  • 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.

The popup will be closed in 10 segundos...