Jump to content

paulorsa

Membros
  • Posts

    88
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by paulorsa

  1. Dois cliente aqui do RS estão com o mesmo problema. Aparentemente somente em vendas para clientes sem inscrição estadual.
  2. Este erro acontece no Delphi XE também, mas não acontece no Delphi DX 10.2, mas a alteração indicada pelo próprio erro funciona também no XE e no DX 10.2
  3. É só alterar a unit ACBrDFeHttpIndy.pas trocar os $ENDIF para $IFEND, salvar e instalar.
  4. Você não está totalizando a base do ICMS. no item na tag imposto você tem vBC = 1000.00 e na tag ICMSTot você tem vBC = 0.00
  5. Valeu pelas dicas, já tenho informação suficiente se quiser pode fechar o tópico.
  6. Obrigado pelas dicas Robert, quanto ao valor vou ponderar mais tarde o custo beneficio, só gostaria mesmo de saber a configuração que o pessoal mais usa, quanto a placa só acrescentei pois pretendo trabalhar com dois monitores. Mais uma vez obrigado pelas dicas serão de grande ajuda.
  7. Preciso trocar minha maquina e antes de comprar gostaria da opinião do pessoal que é desenvolvedor, sobre alguns componentes do micro. - Quantidade de memória 8, 16 ou mais? - Armazenamento SSD ou HD ou os dois? - Processador? - Placa de Video? Lembrando que é uma maquina para desenvolvimento de sistemas, que tera instalada Delphi, Lazarus, Visual Studio, SQL Server, Firebird, Oracle, VM's de outros sistemas operacionais, etc. Agradeço desde já a opinião de todos.
  8. Não funcionou pelo seguinte motivo. Na linha 303 do ACBrCTeConhecimentos.pas foi alterada AXMLModal := StringReplace(AXMLModal, ' xmlns="' + ACBRCTE_NAMESPACE + '"', '', [rfReplaceAll, rfIgnoreCase]); corretamente, mas na linha de baixo na 306 onde tem um case. case TACBrCTe(TConhecimentos(Collection).ACBrCTe).IdentificaSchemaModal(AXML) of é passado como parâmetro AXML nesse caso teria que fazer o StringReplace no AXML ou modificar também a ACBrCTe.pas na function TACBrCTe.IdentificaSchemaModal(const AXML: String): TSchemaCTe; fazendo o mesmo StringReplace, se quiser posso fazer só não sei qual seria a melhor opção.
  9. Concordo que o XML não esta correto, mas como o sistema é feito para empresas de contabilidade ele apenas verifica se o XML está validado no SEFAZ, este foi apenas um caso de um xml que eu não consegui validar, mas que o SEFAZ aceito e consta na base deles exatamente como esta ai. É meu cliente que usa a transportadora e não adianta pedir para consertarem o sistema deles pois alegam que se fosse errado o SEFAZ não aceitaria. Fiz a alteração pois meu sistema valida e carrega a base de dados em cima dos XML's de CTe's. Quanto aos outros modais, não tive nenhum com esse problema, acredito (espero) que não tenha mais nenhum, pois isso só ocorre com transportadoras do tipo Rodoviário. (talvez todas usem o mesmo sistema). Tenho outros XML's com a mesma situação, se desejar posso anexar.
  10. Recebi um xml de uma transportadora e para poder validá-lo tive que fazer uma alteração, o xml esta validado no SEFAZ. ACBrCTeConhecimentos.pas _CTe_004_017_836_0057_17_187853.XML
  11. Segue alteração feita na unit ACBrEFDBloco_D_Importar.pas, para importar o registro D190 que estava faltando. ACBrEFDBloco_D_Importar.pas
  12. Eu fiz uma conversão a uma semana atrás de um banco MySQL, apesar de o cliente ter a senha do banco eu não precisei, o que fiz foi, baixar o MySQL do site da MySQL e instalar o servidor na minha máquina, depois via acesso remoto copiei esses arquivos (todos os arquivos), para a pasta do repositório do banco MySQL no meu micro e acessei os dados com Workbench e a senha de instalação do MySQL.
  13. Eu faço assim. Primeiro chamo NFe.NotasFiscais.Items[IndNfe].Validar; e verifico NFe.NotasFiscais.Items[IndNfe].Confirmada e NFe.NotasFiscais.Items[IndNfe].Cancelada vejo se tem alguma coisa em NFe.NotasFiscais.Items[IndNfe].Alertas e NFe.NotasFiscais.Items[IndNfe].ErroValidacaoCompleto Após eu executo o NFe.WebServices.Consulta.NFeChave := NFe.NotasFiscais.Items[IndNfe].NumID; NFe.WebServices.Consulta.Executar; Para verificar se o XML foi cancelado se teve carta de correção ou outro evento gerado. Pois muitos clientes mandam somente o XML da NFe e não mandam os XML's dos eventos.
  14. Gero o arquivo de remessa em uma pasta o usuário entra no site do banco e importa o arquivo.
  15. O usuário faz a nota e salva, salvo a nota toda incluindo o numero dela, só após ele conseguir salvar a nota ou seja, passou por todos os testes de inconsistência necessários, e salvou com sucesso no banco de dados. Ai eu envio o XML.
  16. Estou enviando um PDF, um XML e o executável ACBrNFe_demo compilado com a alteração. O XML não está assinado, mas é possível usar o botão imprimir DANFe do demo para ver como fica. O Demo foi compilado com o Delphi XE. Obs: Essa quebra de página dos Dados Adicionais foi feita, porque a antiga impressão em Rave também quebrava a página quando necessário, mas o emissor gratuito feito em java imprime da mesma forma que já é feita hoje pelo componente. Eu prefiro com a quebra dos Dados Adicionais quando necessário. Alteracao_DANFE_Fortes.rar
  17. Segue unit's para análise. ACBrNFeDANFeRLPaisagem.dfm ACBrNFeDANFeRLPaisagem.pas ACBrNFeDANFeRLRetrato.dfm ACBrNFeDANFeRLRetrato.pas
  18. Em meu entender isso não deve ser feito no ACBr e sim no seu sistema, ele deve gravar o desconto de cada item já rateado e depois alimentar o componente.
  19. Coloque a unit AJBarcode no uses do seu programa.
  20. Parte do código para você dar uma olhada em como achar o tipo que você precisa. unit ACBrBarCode; type TACBrBarCode = class ( TGraphicControl ) private // fsAbout: TACBrAboutInfo; fsBarCode : TAsBarcode ; fsTransparent: Boolean; procedure SetTransparent(const Value: Boolean); function GetAngle: Double; property Typ : TBarcodeType read GetTyp write SetTyp Olhe no Uses para encontra a unit que consta o TBarcodeType. uses {ACBrBase, }Classes, SysUtils, {$IFDEF VisualCLX} QGraphics, QControls, QExtCtrls, QDialogs, {$ELSE} Graphics, Controls, ExtCtrls, Dialogs, {$ENDIF} AJBarcode ; Olhe a unit AJBarcode; type TBarcodeType = ( bcCode_2_5_interleaved, bcCode_2_5_industrial, bcCode_2_5_matrix, bcCode39, bcCode39Extended, bcCode128A, bcCode128B, bcCode128C, bcCode93, bcCode93Extended, bcCodeMSI, bcCodePostNet, bcCodeCodabar, bcCodeEAN8, bcCodeEAN13, bcCodeUPC_A, bcCodeUPC_E0, bcCodeUPC_E1, bcCodeUPC_Supp2, { UPC 2 digit supplemental } bcCodeUPC_Supp5, { UPC 5 digit supplemental } bcCodeEAN128A, bcCodeEAN128B, bcCodeEAN128C );
  21. Eu pedi para um amigo testar no delphi seatle e também funciona, isso quer dizer que é um problema do delphi. Com isso em mente comparei as funções do Delphi XE com a do Delphi Seatle. Delphi XE function SimpleRoundTo(const AValue: Extended; const ADigit: TRoundToRange = -2): Extended; var LFactor: Extended; begin LFactor := IntPower(10, ADigit); if AValue < 0 then Result := Trunc((AValue / LFactor) - 0.5) * LFactor else Result := Trunc((AValue / LFactor) + 0.5) * LFactor; end; Delphi Seatle. function SimpleRoundTo(const AValue: Extended; const ADigit: TRoundToRange = -2): Extended; var LFactor: Extended; begin LFactor := IntPower(10.0, ADigit); if AValue < 0 then Result := Int((AValue / LFactor) - 0.5) * LFactor else Result := Int((AValue / LFactor) + 0.5) * LFactor; end; Como se trata de uma função do Delphi que é usada dentro do RoundABNT, para resolver meu problema eu criei uma Função SimpleRoundToEX igual ao do Delphi Seatle e inclui dentro da unit ACBrUtil, e passei a usar ela no lugar da SimpleRoundTo do Delphi. Eu não sei se essa seria a melhor opção para o projeto, mas rodei a UnitTestes é funcionou direitinho. Segue unit para analise. ACBrUtil.pas acbrutiltest.pas
  22. A exception é gerada ao tentar arredondar o nr 9.41212959024529 em 10 casas. RoundABNT(9.41212959024529,-10) Debugando percebi que na verdade a exception e gerada em uma função do Delphi a SimpleRoundTo. Na unit ACBrUtil na linha 580. PowValue := SimpleRoundTo( FracValue * 10 * Pow, -9) ; // SimpleRoundTo elimina dizimas ; A versão do Delphi que eu uso e a XE. Não sei se em outras versões ou se no Lazarus também ocorre essa exception.
  23. Uma forma bem pratica seria instalar o OnDrive ou GoogleDrive ou Drobox em cada servidor que recebera o xml, dessa forma basta a aplicação salvar o xml já dentro desta pasta e será replicado a todas as outras.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.