Pesquisar na Comunidade
Showing results for tags 'ACBrUtil'.
Encontrado 11 registros
-
Bom dia, estou com uma situação estranha em relação ao arredondamento realizado pelo SAT. Eu envio a seguinte TAG de produto <prod> <cProd>717827</cProd> <cEAN>030471782701</cEAN> <xProd>PIMENTA BIQUINHO</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <indRegra>A</indRegra> </prod> E o SAT me retorna <prod> <cProd>717827</cProd> <cEAN>030471782701</cEAN> <xProd>PIMENTA BIQUINHO</xProd> <NCM>07096000</NCM> <CFOP>5102</CFOP> <uCom>UNI</uCom> <qCom>0.9950</qCom> <vUnCom>0.990</vUnCom> <vProd>0.98</vProd> <indRegra>A</indRegra> <vItem>0.98</vItem> </prod> Ele está retornando o valor do item como R$ 0,98 , porém realizo o arredondamento da multiplicação entre qCom e vUnCom, através da função ABNTRoundTo da unit ACBrUtil, e o valor retornado é R$ 0,99. Até parece que o SAT está ignorando a regra de arredondamento 'A'. Alguém já pegou algum caso assim?
- 27 replies
-
- acbrutil
- arredondamento
-
(e 1 mais)
Tags:
-
Olá PessoALL, ACBRUtil.LerTagXML() não está buscando o conteudo da TAG LogDeDados dentro do XML: XML ORIGINAL (NÃO É UM ARQUIVO) <SSA_EAI xmlns=""><Principal><TASK><Status>-2</Status><Processo>NFSE </Processo><LogDeDados>Iniciar o processo NFSE Com ID [BD42809] <br /> Serviço (1000027) não registrado como Item de Estoque, ou sem vínculo com o Código de Serviços Municipais para a cidade da empresa <br /> Item de estoque 1000027 não cadastrado <br /> Operação não realizada identificador de integracao BD42809 <br /> </LogDeDados></TASK></Principal></SSA_EAI> procedure TfrmPrincipal.Button6Click(Sender: TObject); var wProtocolo : String ; wXML : TStringlist ; begin //localiza protocolo em pdx_MySql.ssa_retorno_protocolo pdx_qryGrvSSA.Close ; pdx_qryGrvSSA.Open('select ssa_protocolo from ssa_retorno_protocolo where ssa_protocolo = :pProtocolo', [edit2.text]); pdx_qryGrvSSA.FetchAll ; if pdx_qryGrvSSA.RecordCount > 0 then begin try wProtocolo := pdx_qryGrvSSA.FieldByName('ssa_protocolo').AsString ; wTag := 'LogdeDados' ; wXML := TStringList.Create ; wXMl.LoadFromStream(GetSSA_EAISoap.ConsultTask('fbqwerft',wProtocolo).XMLNode.XML); ShowMessage(ACBRUtil.LerTagXML(GetSSA_EAISoap.ConsultTask(wXML.Text, wTag)) ; finally end; end; end;
-
Erro na compilação ACBrBase e ACBrUtil do ACBrSat
um tópico no fórum postou Geraldo Penteado Rocha ACBrSAT
Após atualização do ACBr não consigo mais compilar o aplicativo porque ocorrem os seguintes erros: [dcc32 Error] ACBrBase.pas(106): E1012 Constant expression violates subrange bounds Linha 105: {$IFDEF RTL230_UP} Linha 106: [ComponentPlatformsAttribute(piacbrAllPlatforms)] [dcc32 Fatal Error] ACBrUtil.pas(2212): F2063 Could not compile used unit 'ACBrConsts.pas' Linha 2212: Result := StrIsNumber( AValue ) ; Por favor, como devo proceder? Grato, Geraldo -
Prezados, Atualizei hoje o Acbr para a versão 17438. Tudo instalado sem erros. Quando abro o Delphi aparece essa mensagem: Qualquer dica para resolução é apreciada.
- 3 replies
-
- acbrnfe
- acbr_pcncomum
-
(e 1 mais)
Tags:
-
Erro ao instalar os componente Delphi_Rio 3.0, segue anexo o arquivo de log. log_Delphi_10.3_Rio.txt
-
Bom dia, erro ao compilar ACBRUTIL.PAS, baixado agora pela manhã. Em vermelho o erro e a correção. function Split(const ADelimiter, AString: string): TSplitResult; var i: Integer; vRows: TStrings; begin vRows := TStringList.Create; try vRows.Delimiter := ADelimiter[1]; {$IFDEF CompilerVersion >= 18} //Delphi 2006+ vRows.StrictDelimiter := True; vRows.DelimitedText := AString; {$ELSE} vRows.DelimitedText := '"' + StringReplace(AString, ADelimiter, '"' + ADelimiter + '"', [rfReplaceAll]) + '"'; {$IFEND} ->>>>> correto ->>>>> {$ENDIF} SetLength(Result, vRows.Count); for i := 0 to vRows.Count - 1 do Result := vRows.Strings; finally FreeAndNil(vRows); end; end; Atenciosamente Sérgio
-
Nunca mandei nada para correção, então não sei como fazer isso, gostaria que se tiver uma forma melhor de fazer que me notifiquem. Na função do RoundABNT, na verificação das regras 2.3 e 2.4 ( regra do par ou ímpar), era observado o valor errado para verificar se o mesmo era par ou ímpar. Regras: function RoundABNT(const AValue: Double; const Digits: SmallInt): Double; var Pow, PowValue, RestPart, FracValue : Extended; IntCalc, FracCalc, LastNumber, IntValue : Int64; Begin Pow := intpower(10, abs(Digits) ); PowValue := AValue / 10 ; IntValue := trunc(PowValue); FracValue := frac(PowValue); PowValue := SimpleRoundTo( FracValue * 10 * Pow, -9) ; // SimpleRoundTo elimina dizimas ; IntCalc := trunc( PowValue ); FracCalc := trunc( frac( PowValue ) * 100); if (FracCalc > 50) then Inc( IntCalc ) else if (FracCalc = 50) then begin LastNumber := trunc( frac( IntCalc / 100) * 10); if odd(LastNumber) then Inc( IntCalc ) else begin RestPart := frac( PowValue * 10 ) ; if RestPart > 0 then Inc( IntCalc ); end ; end ; Result := ((IntValue*10) + (IntCalc / Pow)); end; Alterada a linha: Na variável LastNumber era salvo o ultimo número a ser considerado e na verdade era pra ser salvo o ultimo número anterior a ele. A regra realmente é confusa, mas (infelizmente) existe e temos que segui-la.
-
Pessoal, eu tenho uma dúvida quanto a geração de remessas pelo acbr. Tenho um cliente que gera boletos para o banco do brasil. Mas o banco do brasil retornou um e-mail referente aos protestos pq estavam indo com as posições 222 e 223 do segmento P erradas. Motivo retornado pelo banco: Segmento P, Posições 222 a 223: Preencher com a quantidade de dias corridos paraprotesto. Até aí tudo bem, eu verifiquei e percebi que o erro está quando o sistema usa a função PadL. O meu cliente utiliza 6 dias corridos para protesto, mas o PadL retorna 60 quando deveria retornar 06. Segue o codigo como que está no segmento P na unit ACBrUtil: IfThen((DataProtesto <> null) and (DataProtesto > Vencimento), PadL(IntToStr(DaysBetween(DataProtesto, Vencimento)), 2, '0'), '00') + //222 a 223 - Prazo para protesto (em dias corridos) Alterei para PadLeft e funcionou perfeitamente. Alguém pode corrigir isso e subir para o SVN novamente, ou devo apenas corrigir aqui nos meus fontes? Detalhe: Estou usando o trunk2 e já atualizei o acbrUtil.
-
Pessoal fiz a a Atualização Trunk2 conforme manda o figurino mas agora esta aparecendo uma serie de erros releacionados principalmente ao ACBrNFeUtil. d [Error] ACBrNFeUtil.pas(109): Undeclared identifier: 'TLayOut' [Error] ACBrNFeUtil.pas(109): Undeclared identifier: 'TpcnModeloDF' [Error] ACBrNFeUtil.pas(109): Undeclared identifier: 'moNFe' [Error] ACBrNFeUtil.pas(109): Undeclared identifier: 'TpcnVersaoDF' [Error] ACBrNFeUtil.pas(109): Undeclared identifier: 've200' [Error] ACBrNFeUtil.pas(363): Undeclared identifier: 'DFeUtil' [Error] ACBrNFeUtil.pas(365): Missing operator or semicolon [Error] ACBrNFeUtil.pas(366): Missing operator or semicolon [Error] ACBrNFeUtil.pas(367): Missing operator or semicolon [Error] ACBrNFeUtil.pas(368): Missing operator or semicolon [Error] ACBrNFeUtil.pas(425): Undeclared identifier: 'DFeUtil' [Error] ACBrNFeUtil.pas(430): Undeclared identifier: 'DFeUtil' [Error] ACBrNFeUtil.pas(435): Undeclared identifier: 'DFeUtil' [Error] ACBrNFeUtil.pas(454): Undeclared identifier: 'LayNfeEnvDPEC' [Error] ACBrNFeUtil.pas(454): Undeclared identifier: 'DFeUtil' [Error] ACBrNFeUtil.pas(455): Undeclared identifier: 'LayNfeConsultaDPEC' [Error] ACBrNFeUtil.pas(455): Duplicate case label [Error] ACBrNFeUtil.pas(455): Missing operator or semicolon [Error] ACBrNFeUtil.pas(456): Undeclared identifier: 'LayNFeEventoAN' [Error] ACBrNFeUtil.pas(456): Duplicate case label [Error] ACBrNFeUtil.pas(456): Missing operator or semicolon [Error] ACBrNFeUtil.pas(457): Undeclared identifier: 'LayNfeConsNFeDest' [Error] ACBrNFeUtil.pas(457): Duplicate case label [Error] ACBrNFeUtil.pas(457): Missing operator or semicolon [Error] ACBrNFeUtil.pas(458): Undeclared identifier: 'LayNfeDownloadNFe' [Error] ACBrNFeUtil.pas(458): Duplicate case label [Error] ACBrNFeUtil.pas(458): Missing operator or semicolon [Error] ACBrNFeUtil.pas(459): Undeclared identifier: 'LayDistDFeInt' . . . . alguem passou por isso ?
-
Alterações ACBrECFNaoFiscal, ACBrECFVirtualPrinter, ACBrUtil
um tópico no fórum postou Alan Leonidas da Silva ACBrSerial
Olá a todos. Estou anexando nesse post 3 arquivos alterados para atender a seguinte necessidade: 1) Estamos utilizando o componente ACBrECFNaoFiscal (ACBrECFVirtualPrinter) para fazer o inicio de vendas, onde temos casos de itens arredondam e outros truncam; Ex: Combustível trunca e Demais produtos arredonda. No ECFVirtual por padrão arredondava sempre. Para resolver esse caso fiz a seguinte alteração no método vendaitem: Procedure VendeItem( Codigo, Descricao : String; AliquotaECF : String; Qtd : Double ; ValorUnitario : Double; ValorDescontoAcrescimo : Double = 0; Unidade : String = ''; TipoDescontoAcrescimo : String = '%'; DescontoAcrescimo : String = 'D'; CodDepartamento: Integer = -1 ) ; override ; Se as property ArredondaPorQtd e ArredondaItemMFD estiverem igual a False. O valor total será truncado (Trunca) do contrário irá arredondar (RoundABNT); Essa alteração foi feito em ambos fontes: ACBrECFNaoFiscal e ACBrECFVirtualPrinter. Dentro do ACBrUtil, criei a function Trunca. Em todos nossos testes resolveu e atendeu corretamente. Espero não ter feito nada de incorreto. Me coloco a disposição para quaisquer esclarecimento. Muito obrigado pela atenção e ajuda. ACBrECFNaoFiscal.pas ACBrECFVirtualPrinter.pas ACBrUtil.pas- 1 reply
-
- acbrecfvirtualprinter
- acbrecfnaofiscal
- (e 1 mais)
-
Eu ATUALIZANDO este pacote aqui e acontece o seguinte erro: Undeclared identifier: 'LerTagXML' Vi que esta função 'LerTagXml' esta na declarada certinho na Unit 'AcbrUtilis'. log_Delphi_2010.txt