Ir para conteúdo
  • Cadastre-se

leandroksc

Membros
  • Total de ítens

    49
  • Registro em

  • Última visita

Tudo que leandroksc postou

  1. Perdão, realmente esqueci de postar um arquivo, segue em anexo! ACBrPAF.pas
  2. 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!
  3. Precisei fazer algumas alterações ao salvar os registros Z, segue arquivo em anexo. ACBrPAF_Z_Class.pas
  4. 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
  5. 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.
  6. 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á!
  7. 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!
  8. 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!
  9. 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!
  10. 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.
  11. 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
  12. leandroksc

    Quebra de Linha

    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
  13. 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!!
  14. 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!
  15. Perfeito Daniel, vou ficar no aguardo de uma correção definitiva então. Obrigado!
  16. Ao carregar a lista de cidades, este componente não estava convertendo o UTF8. Eu fiz um ajuste no código pra funcionar corretamente a busca por cidades que contenham acentos. Favor verificar se esta modificação procede, aqui pra mim funcionou! Obrigado! Segue arquivo fonte em anexo ACBrIBGE.pas
  17. Amigos, estou com problema paga homologar a remessa para o Banco Amazônia. Segue a resposta do banco em relação ao arquivo de remessa de teste enviado: Encontrado erro no registro da Linha [12]; Campo: [C070]; Posição: [24,29]; Valor: [000000]; Motivo: Código Ocorrência [ 03 = [ArquivoForaDePadrao] - Quantidade de titulos em cobrança simples inválida , 000000 diferente de 000003 ] Encontrado erro no registro da Linha [12]; Campo: [C071]; Posição: [30,46]; Valor: [00000000000000000]; Motivo: Código Ocorrência [ 03 = [ArquivoForaDePadrao] - Valor total divergente do apresentado no arquivo, 00000000000000000 diferente de 00000000000001500 ] Encontrado erro no registro da Linha [13]; Campo: [G056]; Posição: [24,29]; Valor: [000007]; Motivo: Código Ocorrência [ 03 = [ArquivoForaDePadrao] - Total de Segmentos no Arquivo Inválido, 000007 diferente de 000013 ] Todos os erros são referentes ao Trailler da remessa layout 240. No código, vi que os dois primeiros erros estão ocorrendo pois está sendo preenchido com zeros, não sendo feito a contagem exigida pelo campo. Result := IntToStrZero(ACBrBanco.Numero, 3) + // 1 a 3 - Código do banco '0001' + // 4 a 7 - Número do lote '5' + // 8 - Tipo do registro: Registro trailer do lote Space(9) + // 9 a 17 - Uso exclusivo FEBRABAN/CNAB IntToStrZero((3 * (ARemessa.Count - 3)), 6) + // 18 a 23 - Quantidade de Registro da Remessa {-->} PadRight('', 6, '0') + // 24 a 29 - Quantidade títulos em cobrança {-->} PadRight('', 17, '0') + // 30 a 46 - Valor dos títulos em carteiras} PadRight('', 6, '0') + // 47 a 52 - Quantidade títulos em cobrança PadRight('', 17, '0') + // 53 a 69 - Valor dos títulos em carteiras} PadRight('', 6, '0') + // 70 a 75 - Quantidade títulos em cobrança PadRight('', 17, '0') + // 76 a 92 - Valor dos títulos em carteiras} PadRight('', 6, '0') + // 93 a 98 - Quantidade títulos em cobrança PadRight('', 17, '0') + // 99 a 115 - Valor dos títulos em carteiras} Space(8) + // 116 a 123 - Uso exclusivo FEBRABAN/CNAB} PadRight('', 117, ' '); // 124 a 240 - Uso exclusivo FEBRABAN/CNAB} O estranho é que vi esta mesma implementação para o Banco do Brasil e aparentemente lá ninguém reclamou sobre estes campos! Será uma exigência apenas deste banco Amazônia? Já o terceiro erro está nesta linha, o qual faz este cálculo para extrair a quantidade de registros e não sei se está correto. Result := Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) + // 1 a 3 - Código do banco '9999' + // 4 a 7 - Lote de serviço '9' + // 8 - Tipo do registro: Registro trailer do arquivo Space(9) + // 9 a 17 - Uso exclusivo FEBRABAN/CNAB} '000001' + // 18 a 23 - Quantidade de lotes do arquivo} {-->} IntToStrZero(((ARemessa.Count - 3) * 3) + 4, 6) + // 24 a 29 - Quantidade de registros do arquivo, inclusive este registro que está sendo criado agora} aFEBRABAN + // 30 a 35 - Uso exclusivo FEBRABAN/CNAB} Space(205); // 36 a 240 - Uso exclusivo FEBRABAN/CNAB} Desde já agradeço!!!
  18. Pessoal, estou com problemas para emitir notas para o provedor DSF de Belém/PA. A nota é emitida corretamente pelo sistema mas no retorno vem uma nota vazia, sem praticamente nenhuma informação preenchida. Em contato com a prefeitura, foi informado que o provedor não retorna a nota. Pelo ACBr, logo após enviar a nota, é exibido o preview com uma nota em branco, mas no site a nota está ok com todos os dados. Os fontes estão atualizados. Alguém tem alguma ideia do que fazer pra resolver? Desde já agradeço!
  19. Segue link: http://webservices.sathomologa.sef.sc.gov.br/wsDfeSiv/Recepcao.asmx?WSDL Mas não recomendo desenvolver agora, eles estão fazendo alterações. Ontem mesmo eu estava ajustando o código e o WS alterou a estrutura dos dados 2 vezes, ou seja, vou esperar eles terminarem!
  20. Estamos com homologação marcada, vou fazer as preliminares aqui pra estar na melhor situação possível até a homologação... Não sei se vão cobrar isso, mas vou fazer até onde for possível. Posto aqui então quando os manuais estiverem ok! Valeu Juliomar!
  21. Estou fazendo com base no WSDL. Vou ver se consigo deixar funcionando assim, acabaram de colocar o servidor no ar. Parece que teve uma alteração interessante, com base no WSDL parece que o XML agora deve ser enviado compactado em Zip no formato Base64. Estou analisando ainda e tentando implementar as alterações... Qualquer ajuda será bem vinda!
  22. Pessoal, o WebService mudou, algumas rotinas foram alteradas. Vou fazer os ajustes no ACBr e em breve coloco aqui os fontes alterados.
  23. valdesc, também estou tento o mesmo problema. Esse é um erro interno do Oracle, é uma falha no SQL utilizado no servidor. Eles devem estar fazendo alterações no servidor e ficou instável. Nos resta aguardar a correção...
×
×
  • 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...