
leandroksc
Membros-
Total de ítens
49 -
Registro em
-
Última visita
Últimos Visitantes
1.010 visualizações
leandroksc's Achievements
-
Perdão, realmente esqueci de postar um arquivo, segue em anexo! ACBrPAF.pas
-
Opa Juliomar, eu verifiquei sim, está na revisão 21275. A única coisa que alterei foi a utilização do Layout na geração do registro Z3, pois este não possui o campo "Laudo" quando é NFC-e. Ficou algo estranho aí na comparação dos fontes? Agradeço o retorno!
-
Precisei fazer algumas alterações ao salvar os registros Z, segue arquivo em anexo. ACBrPAF_Z_Class.pas
-
Ao salvar os Registros do PAF, os registros E não estão sendo salvos no arquivo. Fiz uma pequena alteração, segue em anexo. Espero ter colaborado! ACBrPAF.pas
-
Simular falha de comunicação com a ECF usando um Emulador
leandroksc replied to leandroksc's tópico in ACBrSerial
Sim, este tipo de erro eu já consegui simular, mas ainda não reflete o que ocorre no cliente. Queria ver se tem algo como falha de cabo, sinal ruim, dados corrompidos na comunicação, timeout, etc... Acho que o melhor cenário seria ter a impressora física com um cabo USB de 5m de marca bem duvidosa. Este não é o cenário ideal pra um PDV funcionar, mas o sistema tem que estar preparado para lidar com isso... Meu problema real hoje seria o valor do GT que dá divergência quando ocorre falha de comunicação com a ECF, mas ainda não consegui reproduzir. Em todos os testes que fiz derrubando a ECF no meio da operação não deu problema. -
Simular falha de comunicação com a ECF usando um Emulador
um tópico no fórum postou leandroksc ACBrSerial
Olá pessoal. É possível simular falhas de comunicação aleatórias com a ECF usando um emulador? Estou tratando todos os erros do sistema em relação a comunicação com a ECF, mas pra isso preciso simular as falhas de comunicação que podem ocorrer no cliente. Em ambiente de desenvolvimento é difícil simular, por isso queria ver se via emulador tem como fazer isso. Estou utilizando o emulador Logger II da Elgin, mas pode ser qualquer outro emulador que permita fazer isso. Agradeço desde já! -
Tópico exclusivo para troca de provedor e novas cidades
leandroksc replied to Italo Giurizzato Junior's tópico in ACBrNFSe
Boa tarde mestres! Segue ajuste no link do ambiente de homologação para Belem/PA [1501402] Nome=Belem UF=PA Provedor=Siat NomeURL_H=http://siat.notahomologa.belem.pa.gov.br:8180 NomeURL_P=http://siat.belem.pa.gov.br:8180 Obrigado! -
Obrigado por responder Ítalo! Mas neste caso, o interessante não seria os dados serem tratados na fonte em vez da impressão? Desta forma o componente ainda gera um XML com erro se der um Load e depois um Save. Penso que a informação já deva estar correta no componente e apenas ser passada para a impressão, e não ser tratada na impressão. Isso procede? Muito obrigado!
-
Boa tarde Ítalo, Você fez as alterações mas manteve comentado na função LerNFSe_ABRASF_V1. Nos meus testes, estes deveriam estar descomentados para que funcione corretamente. Encontrou algum problema para deixar comentado? Obrigado!
-
Pelo que vi, esta modificação também se aplica aos demais provedores que usam a divisão por 100. A rotina acima é a LerRPS_ABRASF_V1, mas também tive que alterar a LerNFSe_ABRASF_V1.
-
Boa tarde amigos! Na emissão de NFSe para o provedor Thema, o componente identifica que o valor informado na Alíquota do serviço deve ser dividido por 100 ao ser gravado no XML. Porém ao carregar o XML, esta alíquota deveria ser multiplicada por 100 para ter o valor original, e isso não está ocorrendo. Ao carregar um XML e em seguida gerá-lo novamente, o problema já aparece. Eu fiz uma pequena alteração no arquivo pnfsNFSeR.pas da seguinte forma: if (Leitor.rExtrai(4, 'Valores') <> '') or (Leitor.rExtrai(3, 'Valores') <> '') then begin NFSe.Servico.Valores.ValorServicos := Leitor.rCampo(tcDe2, 'ValorServicos'); NFSe.Servico.Valores.ValorDeducoes := Leitor.rCampo(tcDe2, 'ValorDeducoes'); NFSe.Servico.Valores.ValorTotalRecebido := Leitor.rCampo(tcDe2, 'ValorTotalRecebido'); NFSe.Servico.Valores.ValorPis := Leitor.rCampo(tcDe2, 'ValorPis'); NFSe.Servico.Valores.ValorCofins := Leitor.rCampo(tcDe2, 'ValorCofins'); NFSe.Servico.Valores.ValorInss := Leitor.rCampo(tcDe2, 'ValorInss'); NFSe.Servico.Valores.ValorIr := Leitor.rCampo(tcDe2, 'ValorIr'); NFSe.Servico.Valores.ValorCsll := Leitor.rCampo(tcDe2, 'ValorCsll'); NFSe.Servico.Valores.IssRetido := StrToSituacaoTributaria(ok, Leitor.rCampo(tcStr, 'IssRetido')); NFSe.Servico.Valores.ValorIss := Leitor.rCampo(tcDe2, 'ValorIss'); NFSe.Servico.Valores.OutrasRetencoes := Leitor.rCampo(tcDe2, 'OutrasRetencoes'); NFSe.Servico.Valores.BaseCalculo := Leitor.rCampo(tcDe2, 'BaseCalculo'); NFSe.Servico.Valores.Aliquota := Leitor.rCampo(tcDe3, 'Aliquota'); //Adicionado aqui if (FProvedor in [proThema]) then NFSe.Servico.Valores.Aliquota := (NFSe.Servico.Valores.Aliquota * 100); //-- NFSe.Servico.Valores.ValorLiquidoNfse := Leitor.rCampo(tcDe2, 'ValorLiquidoNfse'); NFSe.Servico.Valores.ValorIssRetido := Leitor.rCampo(tcDe2, 'ValorIssRetido'); NFSe.Servico.Valores.DescontoCondicionado := Leitor.rCampo(tcDe2, 'DescontoCondicionado'); NFSe.Servico.Valores.DescontoIncondicionado := Leitor.rCampo(tcDe2, 'DescontoIncondicionado'); end; Peguei por base o mesmo padrão usado em outros arquivos do fonte. Segue em anexo o arquivo alterado para análise. Obrigado! pnfsNFSeR.pas
-
Boa tarde! Amigos, após a alteração que foi feita no tópico abaixo, a geração do XML ficou sem quebra de linha em um dos nossos clientes. Ele utiliza o provedor BHISS. Pelo que pude verificar no código, parece que a propriedade QuebraLinha do Gerador não está sendo sincronizada com a QuebraDeLinha definida nas configurações do componente. Eu fiz uma pequena alteração aqui que resolveu a questão. Na função TNFSeW_ABRASFv1.GerarXml do aquivo pnfsNFSeW_ABRASFv1.pas estava assim: unction TNFSeW_ABRASFv1.GerarXml: Boolean; begin Gerador.ListaDeAlertas.Clear; Gerador.ArquivoFormatoXML := ''; Gerador.Prefixo := FPrefixo4; if (FProvedor in [proBHISS, proNatal, proProdemge, proPronim, proTinus, proNFSEBrasil]) then FDefTipos := FServicoEnviar; ............. end; Apenas adicionei uma linha como a seguir: unction TNFSeW_ABRASFv1.GerarXml: Boolean; begin Gerador.ListaDeAlertas.Clear; Gerador.ArquivoFormatoXML := ''; Gerador.Prefixo := FPrefixo4; Gerador.Opcoes.QuebraLinha := FQuebradeLinha; //<--Inserido aqui if (FProvedor in [proBHISS, proNatal, proProdemge, proPronim, proTinus, proNFSEBrasil]) then FDefTipos := FServicoEnviar; ............. end; Segue o arquivo em anexo para análise. pnfsNFSeW_ABRASFv1.pas
-
O problema estava no arquivo de cache mesmo, apagando resolveu! Eu achei que o arquivo era substituído ao salvar novamente a lista de cidades... Muito Obrigado!!
-
Delphi 10.2 Tokyo
-
Bom dia Daniel, fiz o teste com esta unit, porém o problema persiste. Ele está encontrando a cidade, mas encontra por ser o nome mais próximo do pesquisado. No meu exemplo, a cidade pesquisada é "Tubarão" (SC), e ao debugar, na rotina "fListaCidades.Find" na linha 938, dentro da subrotina "CompCidadeMunicipioAsc" onde ele compara o "MunicipioIdx", o nome da cidade aparece como "Tubarão". Estes nomes também ficam desta forma no arquivo de cache ACBrIBGE.txt. Obrigado pela atenção!