Ir para conteúdo
  • Cadastre-se

Renato Chiari

Membros
  • Total de ítens

    106
  • Registro em

  • Última visita

Tudo que Renato Chiari postou

  1. Boa tarde a todos. Precisei implementar o envio de "informações complementares" na NFS-e Padrão Nacional, porém ambas as propriedades "InformacoesComplementares" e "OutrasInformacoes" estão sendo ignoradas na hora da geração do DPS. Olhando o layout do padrão nacional vi que as tags acima não estão previstas, porém existe outra semelhante, a "xInfComp": Fiz um teste informando através da propriedade "Servico.infoCompl.xInfComp" e a informação foi gerada sem problemas, aparecendo no local desejado quando gero o PDF direto no sistema da NFSe Nacional: Fiz uma alteração no arquivo "ACBrNFSeXDANFSeRLRetrato.pas", adicionando as linhas abaixo na procedure "rbOutrasInformacoesBeforePrint" if fpNFSe.Servico.infoCompl.xInfComp <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.Servico.infoCompl.xInfComp, FQuebradeLinha, #13#10, [rfReplaceAll])); Segue o arquivo alterado, acredito que seja interessante incluir no SVN. ACBrNFSeXDANFSeRLRetrato.pas
  2. Bom dia, estou com este mesmo problema em um cliente, ele também utiliza certificado A3. Alguém conseguiu encontrar alguma solução?
  3. Bom dia pessoal, consegui implementar a junção de arquivos PDF com GhostScript, utilizando a dll "gsdll32.dll". Criei uma classe com o método de junção com base em alguns exemplos da internet, gostaria de compartilhar aqui caso mais alguém tenha essa necessidade. UnitPdfUtil.pas Link para download da dll (não consegui postar aqui por ser maior que 2Mb): https://drive.google.com/file/d/1j7IQRsdL7izhcaiOj42fRuS45LYMm4n-/view?usp=sharing
  4. Boa tarde Italo, Ah legal cara, se puder ajudar em algo!
  5. Seria pra facilitar o envio dos conhecimentos por e-mail, esta transportadora presta serviço para uma usina e emite dezenas de conhecimentos por dia, desta forma enviaria um único PDF por e-mail.
  6. Surgiu a necessidade em um cliente de gerar um único arquivo PDF contendo vários DACTEs. Se eu adiciono vários conhecimentos ao componente e executo o método "Conhecimentos.Imprimir" é gerada uma única impressão contento todos os conhecimentos adicionados, porém se eu executo o método "Conhecimentos.ImprimirPDF" o componente gera um arquivo PDF para cada conhecimento. Até entendo o motivo disso, assim evita o envio indevido de algum conhecimento, mas existe alguma forma de gerar um único arquivo PDF?
  7. Bom dia, a Sefaz publicou um complemento sobre a parada obrigatória, nele diz que os serviços de autorização não serão afetados, tanto que não será ativada contingência em nenhum estado. Fonte: http://www.nfe.fazenda.gov.br/portal/informe.aspx?ehCTG=false&Informe=gv5XFF3hh0Y=
  8. Boa tarde, Apenas para dar um retorno, hoje o cliente entrou em contato para informar que conseguiu emitir o conhecimento, segundo ele, o contador informou que havia faltado entregar alguns documentos, acredito que seja em relação a mudança do regime tributário para MEI. Obrigado pela ajuda!
  9. Boa tarde @Renato Rubinho obrigado pela resposta! Acabei de verificar o CNAE e está OK, continua sendo de transportadora, quanto ao contato com a Sefaz o contador informou que já fez, vou confirmar como ele realizou e qualquer coisa também abro um para reforçar. Vou relatando aqui caso consiga algo, obrigado por enquanto!
  10. Bom dia pessoal, Estou com um cliente recebendo a rejeição "IE do emitente não vinculada ao CNPJ", porém o CNPJ e a IE passadas para a emissão estão corretos. O problema começou quando o cliente mudou o regime tributário de Simples Nacional para MEI, e isso já faz alguns dias, seguem prints do XML do conhecimento, e do cadastro do emitente no Sintegra e no Cadastro Centralizado de Contribuinte, ocultei parte das informações para não expor os dados do cliente, alguém já passou por algo parecido? XML do conhecimento: Sintegra: Cadastro Centralizado de Contribuinte
  11. @Marcos Gerene Correto, realmente está bem estranha essa rejeição... Vamos aguardar.
  12. Posso estar errado, mas no meu entendimento, a partir de 2019 a tag <vICMSUFRemet> ficaria sempre com valor 0? Pois <vICMSUFDest> pega o valor calculado do Difal multiplicado por <pICMSInterPart> que a partir de 2019 passou a ser 100%, e a diferença dessas última multiplicação é informada na tag <vICMSUFRemet> que por consequência a partir de 2019 ficou com 0%. Me corrijam se estiver enganado.
  13. blz, vou ver se consigo o erro em um projeto teste pq até então só está ocorrendo neste mesmo.
  14. Fiz esses testes que você propôs @Juliomar Marchetti, mas o problema persiste. E também o Call Stack não funcionou fazendo o processo de excluir .dproj para o Delphi recriar ele. A única mudança foi que alterando a criação do form para a forma que você colocou ele não da o erro "A component named FormFrenteDeCaixa already exists" se eu tento abrir novamente o form logo em seguida. Porém o Acess Violation persiste. Uma coisa que percebi, é que o Acess Violation não ocorre somente quando dou um ".free" no Form, ele ocorre em outros locais também, a impressão que da é que cada vez da em um local diferente, as vezes uma linha que deu o erro em uma tentativa passa sem problemas no próximo teste e o erro vai dar em outra linha diferente. Tá bem doidão, rs. Fazendo os mesmos testes com esse sistema mas usando os fontes no Delphi 7 o problema não ocorre.
  15. Bom dia pessoal! Estou enfrentando um problema de Access Violation, e vocês sabem que esses erros geralmente são chatos pra caramba de resolver... Esse erro em questão está bem estranho, é um projeto que anteriormente era em Delphi 7, mas recentemente fiz a migração para o Seattle. O erro ocorre (onde consegui identificar) ao dar ".free" em um formulário, eu sigo aquela receitinha de bolo padrão p/ exibir novos formulários: Application.CreateForm(TFormTeste, FormTeste); FormTeste.ShowModal; FormTeste.Free; Estou tentando usar a Call Stack do Delphi para ver se encontro onde o problema realmente ocorre, mas não consigo, na janela da Call Stack aparece a mensagem "Process is not accessible", acredito que pelo fato do projeto ser originalmente de outro Delphi falta alguma configuração pra a Call funcionar no Seattle, alguém sabe como posso habilitar isso? Ah, e se alguém já passou pelo mesmo problema no ".free" ou tiver alguma dica, agradeço muito! Obrigado.
  16. Boa tarde, Na verdade esse cliente fez confusão, o que eles vão precisar é da NFS-e e não da NF-e. De qualquer forma obrigado pelos esclarecimentos.
  17. Renato Chiari

    Dúvidas NF-e em MG

    Boa tarde, Vamos implantar nosso software emissor da NF-e em um novo cliente de MG, será nosso primeiro cliente em MG, gostaria de confirmar se existem alguma particularidade quanto a NF-e em Minas, algo que funcione diferente de SP e que eu precise me atentar. Vi aqui pelos Mapas Fiscais que lá existe o PAF-ECF, até onde sabemos não implica em nada com a NF-e, esta informação está correta? Agradeço a ajuda e dicas que possam me dar.
  18. É exatamente isso que você disse @Juliomar Marchetti olhando a norma da ABNT no link que o @Daniel Simoes postou, o valor correto deve ser mesmo o 244,36, confesso que não sabia da regra que o 5 só pode ser arredondado "pra cima" caso o número seguinte a ele for >= 0, ou se o número anterior a ele (casa que será mantida) for ímpar, sendo assim 244,365 de acordo com a ABNT deve ficar 244,36, pra mim que o 5 sempre era arredondado "pra cima", rs. Sendo assim, meu sistema estava arredondando da forma correta desde o início... E realmente o erro está na API da prefeitura que nesse caso exigia o arredondamento "pra cima". Muito obrigado pela atenção de vocês! @bylaardt muito boa a sua dica de sempre primeiro multiplicar e depois dividir!
  19. Boa tarde Daniel, não conhecia a RoundABNT. Porém testando com ela houve o mesmo problema, mas consegui o arredondamento correto utilizando o SimpleRoundTo fazendo uma alteração no meu código, antes o cálculo era feito da seguinte maneira: Servico.Valores.ValorIss := SimpleRoundTo(Servico.Valores.BaseCalculo * (Servico.Valores.Aliquota / 100), -2); Notei que existe uma diferença de tipos de dados entre as propriedades BaseCalculo e Aliquota, a BaseCalculo é do tipo Currency, já a Aliquota é do tipo Double, resolvi testar atribuindo o valor da Aliquota a uma variável do tipo Currency e realizar o cálculo usando a variável criada, ficando da seguinte maneira: aliqIss := Servico.Valores.Aliquota; Servico.Valores.ValorIss := SimpleRoundTo(Servico.Valores.BaseCalculo * (aliqIss / 100), -2); Desta forma o arredondamento ficou correto, porém usando a função RoundABNT com esse mesmo procedimento da variável o arredondamento insistiu em ficar errado, debugando ela vi que o problema ocorre no mesmo momento em que a fração é separada do valor. Acredito que o problema ocorreu por existir essa diferença de tipos de valores reais onde cada um dos tipos (Currency e Double) possuem precisões diferentes. Esse é um daqueles probleminhas chatos de se resolver e que não entendemos ao certo o motivo, mas fica aqui a maneira que consegui contornar caso alguém passe pelo mesmo problema. Obrigado pelo retorno EMBarbosa, vou dar uma olhada no artigo que você passou. Abraço!
  20. Boa tarde, hoje passei por um problema de arredondamento em um cálculo de ISS, consegui resolver com uma "gambiarra" que encontrei na internet, rs, mas gostaria de entender o motivo do problema, vou explicar melhor. Um cliente estava emitindo uma nota de serviço onde o valor do serviço prestado era de R$ 11.000,00 e a alíquota do ISS era de 2,2215%. Calculando o ISS ficaria da seguinte maneira: 11000,00 * (2,2215 / 100) = 244,365 Até aí tudo certo, o problema está na hora de arredondar o valor o ISS para 2 casas decimais, o correto nesse caso seria ficar 244,37, porém as funções do Delphi arredondam para 244,36 e essa diferença no arredondamento gerou rejeição na hora da emissão da nota. Utilizava a função SimpleRoundTo para arredondar, e até mesmo tentando fazer algo "na mão" não resolvia o problema, consegui o resultado esperado com a seguinte função que encontrei na internet (que em partes é parecida com a SimpleRoundTo: function ArredondaNumero(Valor:Extended;Decimais:Integer):Extended; var Factor, Fraction: Extended; begin Factor := IntPower(10, Decimais); Valor := StrToFloat(FloatToStr(Valor * Factor)); Result := Int(Valor); Fraction := Frac(Valor); if Fraction >= 0.5 then Result := Result + 1 else if Fraction <= -0.5 then Result := Result - 1; Result := Result / Factor; end; A "gambiarra" que faz essa função retornar o resultado esperado está na linha "Valor := StrToFloat(FloatToStr(Valor * Factor));", onde o valor é convertido para String e depois retornado para Float, se retiro as conversões e atribuo o cálculo diretamente na variável "Valor" o arredondamento fica errado. Debugando é possível perceber que na linha em que é extraída a fração do valor "Fraction := Frac(Valor);" a fração não vem a correta que seria "0,5", e sim "0,49999999999789", por isso o problema no arredondamento. Fiz testes usando variáveis dos tipos Double e Extended e em ambas o problema ocorre; Alguém já passou por isso ou saberia me dizer o motivo do problema? Utilizo o Delphi Seattle.
  21. Deu certo Luis, era isso mesmo, não tinha me atentado a esta propriedade. Valeu, obrigado!
  22. Bom dia, Gostaria de uma orientação, de alguém que já passou pelo problema abaixo ou sabe como proceder Temos um cliente que emitiu um CT-e de forma incorreta, ele indicou que o tomador do frente era o Remetente, porém o correto seria o Destinatário, o problema é que perceberam o erro quando já não era mais possível cancelar este CT-e para assim emitir um novo com a correção. Portanto o Remetente emitiu o evento de "Prestação de Serviço em Desacordo" e agora pelo que entendi cabe a transportadora (nosso cliente) emitir um CT-e de Anulação e depois um de Substituição corrigindo a informação incorreta. Estou implementando pois até então não tínhamos a opção de "Anulação" em nosso sistema, fazendo testes em ambiente de homologação a emissão da Anulação ocorreu sem problemas, porém ao emitir o documento de Substituição estou recebendo a seguinte rejeição: "A indicação do tomador do CT-e de substituição deve ser igual a do CT-e substituído", de acordo com a mensagem da rejeição eu não posso alterar a indicação do tomador, mas como então posso fazer o documento de Substiuição? Nesse caso o cliente deve emitir somente a Anulação e um novo documento do tipo "Normal" com a indicação do tomador correta? Desde já, obrigado!
  23. Tentei atualizar a Midas e nada. Fiz até um novo projeto só para testar com um DBEdit ligado a um ClientDataSet sem conexão com BD, apenas trabalhando em memória e o problema ocorre, sinal que não tem nada relacionado com o BD apenas entre DBEdit/ClientDataSet. Inclusive testei a Midas de duas formas, usando a dll registrada e apenas adicionando MidasLib aos uses.
×
×
  • 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...