Ir para conteúdo
  • Cadastre-se

carlosmarian

Membros
  • Total de ítens

    235
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que carlosmarian postou

  1. Acho que o atributo "NotaLegalDF" não esta sendo persistido no arquivo de configuração no método "TACBrAAC.SalvarArquivo". ... if GravarConfigApp then begin Ini.WriteBool('PAF', 'RealizaPreVenda', fsIdentPAF.Paf.RealizaPreVenda); ... Ini.WriteBool('PAF', 'MinasLegal', fsIdentPAF.Paf.MinasLegal); //Falta tratar o atributo abaixo. Ini.WriteBool('PAF', 'NotaLegalDF', fsIdentPAF.Paf.NotaLegalDF); end; At+ ACBrAAC.pas ACBrAAC.pas
  2. Olá, funcionou corretamente(como já era de se esperar ). Só uma sugestão, talvez formatar o valor que é apresentado na mensagem. Muito obrigado pela atenção. at+
  3. Desculpe, talvez eu tenha entendido errado a funcionalidade aplicada a este novo atributo. Troco no cartão na minha interpretação se trata do PREMIA da Cielo ou a opção de fazer saque junto com um pagamento quando a forma de pagamento for exclusivamente cartão. Estou correto? at+
  4. OK, vou efetuar mais alguns testes, pq inicialmente eu informei valor para este atributo mas não tive o bloqueio quando o valor ultrapassou o limite estabelecido. Obrigado pela atenção.
  5. Olá, verifique que foi adicionado um atributo a classe "TACBrTEFD", "TrocoMaximo". Já pode ser usado este atributo? Qual seria a regra para utiliza-lo, é que não achei nada sobre isso no exemplo. Obrigado pela atenção.
  6. Olá, tive o retorno do cliente de que a partir do momento que ele mudou para o horário de verão o sistema não tem mais conseguido transmitir os CCe. Avaliando o retorna da SEFAZ Status "578 - Rejeicao: A data do evento nao pode ser maior que a data do processamento", é possível constatar que no envio a tag "dhEvento" possui este valor "2012-10-22T17:25:29-03:00", já os dados do retorno da SEFAZ a tag "dhRegEvento" possui o seguinte valor "2012-10-22T17:25:39-02:00". No fonte pcnCCeNFe.pas método TCCeNFe.GerarXML a tag "dhEvento" é montada com valor fixo "-03:00", acredito que isso possa ser o problema. Exemplo de XML: <?xml version="1.0" encoding="UTF-8" ?> - - - 42 1 0000000000000 0000000000000000000000000000000000000000000 2012-10-22T17:25:29-03:00 110110 1 1.00 - Carta de Correcao QUANTIDADE DE VOLUME = 01 VOLUME A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. 7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularizacao de erro ocorrido na emissao de documento fiscal, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da operacao ou da prestacao; II - a correcao de dados cadastrais que implique mudanca do remetente ou do destinatario; III - a data de emissao ou de saida. ..... - 1 SVRS20110530105153 42 578 Rejeicao: A data do evento nao pode ser maior que a data do processamento 00000000000000000000000000000000000000000000 110110 1 2012-10-22T17:25:39-02:00 Já que é necessário ter esta informação junto com a data será que não seria melhor criar um atributo para isso? At+
  7. Olá, Existe alguma restrição para que a impressão das informações(Observacao) no Fechamento do cupom fiscal(TACBrECF.FechaCupom) referente ao MD5 ou nro de PV, DAV e DA-OS ocorram em linhas separadas? Hj no meu caso esta imprimindo um CF referente a pré-venda assim: "MD-5:1111111111112223334445556667677888PV0000000004". Será que não poderia ser impresso cada item em uma linha separada? Exemplo: ... procedure TACBrECF.FechaCupom(Observacao: AnsiString; IndiceBMP : Integer); //função para tratar a informação adicional: function TrataEnterFinalLInha(pPrefixo, pValor : String):String; begin Result := EmptyStr; if Trim(pValor) = EmptyStr then Exit; {Limpa as possíveis quebras de linha já incluidas pelos usuários} Result := StringReplace(pValor,CR+LF,#10,[rfReplaceAll]) ; Result := StringReplace(Result,'|',#10,[rfReplaceAll]) ; Result := pPrefixo + Result + #10; end; var .... { Tirando os Acentos e trocando todos os #13+#10 e '|' por #10 } Observacao := StringReplace(Observacao,CR+LF,#10,[rfReplaceAll]) ; Observacao := StringReplace(Observacao,'|',#10,[rfReplaceAll]) ; { montar o rodape quando as informações de rodapé forem passadas } RodapePafECF := EmptyStr; //Aqui, para cada item chama rotina que trata e adiciona quebra se for necessário. // atende ao requisito do Paf-ECF RodapePafECF := RodapePafECF + TrataEnterFinalLInha('MD-5:', InfoRodapeCupom.MD5); // atende ao requisito do paf-ECF V item 2 RodapePafECF := RodapePafECF + TrataEnterFinalLInha('PV', InfoRodapeCupom.PreVenda); // atende ao requisito do paf-ECF VI item 5 RodapePafECF := RodapePafECF + TrataEnterFinalLInha('DAV', InfoRodapeCupom.Dav); // atende ao requisito do paf-ECF XLI item 1 RodapePafECF := RodapePafECF + TrataEnterFinalLInha('DAV-OS', InfoRodapeCupom.DavOs); // atende ao requisito VII-A 2-A (Cupom Mania [RJ]) if InfoRodapeCupom.CupomMania then .... InfoRodapeCupom.Clear; end; ...
  8. Alguém já passou pela homologação e tem experiência de como este teste tem sido aplicado e validado pelo homologador? Obrigado.
  9. Olá, este relatório não teria que ter um formato diferente? De acordo com o que esta definido no manual do PAF. Estou lendo no manual e diz que deveria(ou sugere) ser algo assim: 01/01/2012 - Dinheiro - Cupom fiscal - 12,00 01/01/2012 - Dinheiro - Cupom fiscal - 8,00 SOMA DO DIA 01/01/2012 - 20,00 02/01/2012 - Dinheiro - Cupom fiscal - 10,00 02/01/2012 - Cheque - Cupom fiscal - 8,00 SOMA DO DIA 02/01/2012 - 18,00 TOTAL DO PERÍODO SELECIONADO: DINHEIRO: 30,00 CHEQUE: 8 SOMA TOTAL: 38,00 E esta sendo gerado algo similar a isso: DATA DE ACUMULAÇÃO: 19/09/2012 Identificacao Tipo Valor R$ --------------- ------------------- ------------ NÃO É DOCUMENTO FISCAL DINHEIRO CF 784,29 ------------------------------------------------ Sub-Total 784,29 DATA DE ACUMULAÇÃO: 20/09/2012 Identificacao Tipo Valor R$ --------------- ------------------- ------------ CHEQUE CF 10,00 NÃO É DOCUMENTO FISCAL DINHEIRO CF 118,53 ------------------------------------------------ Sub-Total 128,53 TOTAL GERAL TESTE MSG Identificacao Valor R$ NÃO É DOCUMENTO FISCAL --------------------------- -------------------- CHEQUE 10,00 DINHEIRO 902,82 ------------------------------------------------ TOTAL 912,82 Isso não deve gerar problemas durante a Homologação do PAF-ECF né?
  10. Subi na revisão 3931. Se possível, verificar se está tudo certo. Obrigado Valeu, tudo correto.
  11. Olá, Estou efetuando os testes de pré-certificação e estou com uma dúvida. Com a adição do tratamento do "Premia", não posso mais subtotalizar os cupom antes de chamar o CTR. O problema começa aii... se eu efetuar pagamento em Dinheiro + Cartão já não funciona mais. Como a forma de pagamento cartão deve ser a última, eu deve efetuar a subtotalização antes de lançar o pagamento em dinheiro, fazendo isso gera erro ao efetuar o pagamento com cartão, já que ele vai tentar lançar um novo desconto. Fora os possíveis problemas legais que isso pode acarretar. At++
  12. É, talvez possa ser alguma coisa na minha impressora, é uma DARUMA FS 600 e ela acabou de voltar da assistência técnica, onde atualizaram o software dela. Mas vou ter que manter a alteração que fiz no fonte, pq senão não consigo imprimir alguns documentos. at+
  13. Hummm... Não sei, acho que o mais correto mesmo seria revisar o tratamento, pq isso pode ocasionar erro em outras funcionalidades. Até pq o negrito existe para a impressora, só teria que verificar exatamente o pq foi colocar o fsComandosImpressao[0] := #0;para impressora DARUMA. at+
  14. Teste executado e problema resolvido. At+
  15. Olá, algum retorno sobre isso? Estou usando Delphi 2009 e tbm não esta mais inicializando o GP. Alterei o tipo do parâmetro da rotina "ACBRUtil.RunCommand" de "AnsiString" para "String" e o GP passou a ser inicializado corretamente. at+
  16. Olá, no log encontramos a linha abaixo o que nos levou a acreditar que a não impressão total seria algo relacionado a formatação em negrito: -- 19:26:19:275 LinhaRelatorioGerencial( "================================================[CR][LF]LAUDO NUMERO: [ESC]G[1]URB0152011[ESC]G[CR][LF]", 0 ) TX -> [FS]F[231]================================================[LF]LAUDO NUMERO: [ESC]G[1]URB9999999[ESC]G[LF][255]W 19:26:19:533 RX <- :0000000[231][CR] O trecho em negrito acima, mostra que não estava fechando corretamente o comando de negrito. Inicialmente tentamos diminuir o tamanho da string para verificar se não era algum limite da impressora, mas sem sucesso. Abaixo segue o log gerado depois da nossa alteração: -- 08:02:48:674 LinhaRelatorioGerencial( "================================================[CR][LF]LAUDO NUMERO: [ESC]G[1]xxx9992099[ESC]G0[CR][LF]================================================[CR][LF][CR][LF][ESC]G[1]EMPRESA DESENVOLVEDORA[ESC]G0[CR][LF]------------------------------------------------[CR][LF]CNPJ........: 00000000000000[CR][LF]Razao Social: xxxxxxxxxxxxxxxxxx[CR][LF]Endereco....: [CR][LF]Cidade/UF...: /[CR][LF]", 0 ) TX -> [FS]F[231]================================================[LF]LAUDO NUMERO: [ESC]G[1]xxx9992099[ESC]G0[LF]================================================[LF][LF][ESC]G[1]EMPRESA DESENVOLVEDORA[ESC]G0[LF]------------------------------------------------[LF]CNPJ........: 00000000000000[LF]Razao Social: xxxxxxxxxxxxxxxxxx[LF]Endereco....: [LF]Cidade/UF...: /[LF][255]K 08:02:49:162 RX <- :0000000[231][CR] O trecho em negrito acima mostra que com a alteração o comando de negrito passa a ser escrito de forma correta, e o relatório foi impresso corretamente.
  17. Olá, estou homologando o PAF com a impressora DARUMA e ao executar a impressão da Identificação PAF(PafMF_RelIdentificacaoPafECF), o texto foi impresso somente até o nro do laudo. Acredito que o que pode ter levado a esta problema foi que existe uma exceção para o caracter '#0' (fsComandosImpressao[0] := #0 ; ) no create da classe(TACBrECFDaruma.create) e no evento traduzir tag(TACBrECFDaruma.TraduzirTag) a tah que identifica o fim do negrito é "#0". Com isso se alterar a tag de fim de negrito de "#0" para "'0'" a impressão ocorre sem erros. Atual: function TACBrECFDaruma.TraduzirTag(const ATag: AnsiString): AnsiString; const C_ON = #1; C_OFF = #0; Alterado: function TACBrECFDaruma.TraduzirTag(const ATag: AnsiString): AnsiString; const C_ON = #1; C_OFF = '0'; At+
  18. Olá, Acredito que sim, a primeira(do Leonardo S Barbosa) implementa os registros D195 e D197. Só deve se atender que no fonte que ele colocou não esta a implementação de outros registros, pode estar meio desatualizado. Mas a implementação dos registros D195 e D197 estão oK. A segunda foi para complementar a 1º, gerando os registros de totalizadores(9900) para o D195 e D197 . at+
  19. Olá, Durante o processo de implantação do CT-e usando componente ACBr tive uma pequena dificuldade para guardar o arquivo XML da inutilização. Verificando no fonte o arquivo final (com sufixo "-ProcInutCTe.xml") é gerado com um prefixo que concatena a hora atual e isso pode dificultar muito a obtenção do arquivo gerado. Sugiro a seguinte alteração(com base no que é feito na NF-e), retirar o prefixo da hora atual e deixar somente a chave. Fonte atual(ACBrCTeWebServices.pas): .. function TCTeInutilizacao.Executar: Boolean; .. if FConfiguracoes.Geral.Salvar then FConfiguracoes.Geral.Save(FormatDateTime('yyyymmddhhnnss',Now)+FCTeChave+'-ProcInutCTe.xml', FXML_ProcInutCTe); if FConfiguracoes.Arquivos.Salvar then FConfiguracoes.Geral.Save(FormatDateTime('yyyymmddhhnnss',Now)+FCTeChave+'-ProcInutCTe.xml', FXML_ProcInutCTe, FConfiguracoes.Arquivos.GetPathInu ); .. Alteração (ACBrCTeWebServices.pas): .. function TCTeInutilizacao.Executar: Boolean; .. if FConfiguracoes.Geral.Salvar then FConfiguracoes.Geral.Save(StringReplace(FCTeChave,'ID','',[rfIgnoreCase])+'-ProcInutCTe.xml', FXML_ProcInutCTe); if FConfiguracoes.Arquivos.Salvar then FConfiguracoes.Geral.Save(StringReplace(FCTeChave,'ID','',[rfIgnoreCase])+'-ProcInutCTe.xml', FXML_ProcInutCTe, FConfiguracoes.Arquivos.GetPathInu); .. Obrigado pela atenção.
  20. Obrigado pela alteração no registros D195, ATENÇÃO: teria tbm que dar manutenção no fonte "ACBrSpedFiscal.pas", onde trata os totalizadores: ... procedure TACBrSPEDFiscal.WriteRegistroD001; begin ... if Bloco_D.RegistroD190Count > 0 then begin with New do begin REG_BLC := 'D190'; QTD_REG_BLC := Bloco_D.RegistroD190Count; end; end; //inicio novo trecho if Bloco_D.RegistroD195Count > 0 then begin with New do begin REG_BLC := 'D195'; QTD_REG_BLC := Bloco_D.RegistroD195Count; end; end; if Bloco_D.RegistroD197Count > 0 then begin with New do begin REG_BLC := 'D197'; QTD_REG_BLC := Bloco_D.RegistroD197Count; end; end; ////final novo trecho if Bloco_D.RegistroD300Count > 0 then begin with New do begin REG_BLC := 'D300'; QTD_REG_BLC := Bloco_D.RegistroD300Count; end; end; ... OBS: só atenção que este seu fonte esta retirando as implementações do registros D695, D696 e D697. At+
  21. Olá. Banco : 104 :-> TACBrTipoCobranca.cobCaixaSicob no fonte "ACBrCaixaEconomicaSICOB.pas", o valor da remessa para produção esta "REMESSA-PRODUÇÃO", recebi o retorno de critica onde informa que deveria ser "REMESSA-PRODUCAO" ou "REMESSA-TESTE DV AGENCIA". Obrigado pela atenção.
  22. Outra conversão: interface function StrToCodIndIncTributaria(var ok: boolean; const s: string): TACBrCodIndIncTributaria; function StrToIndAproCred(var ok: boolean; const s: string): TACBrIndAproCred; function StrToCodIndTipoCon(var ok: boolean; const s: string): TACBrCodIndTipoCon; implementation //Codigo indicador da incidencia tributária no período (0110) function StrToCodIndIncTributaria(var ok: boolean; const s: string): TACBrCodIndIncTributaria; begin result := StrToEnumerado(ok, s, ['1', '2', '3'], [codEscrOpIncNaoCumulativo, codEscrOpIncCumulativo, codEscrOpIncAmbos ]); end; //Código indicador de método de apropriação de créditos comuns, no caso de incidencia no regime não cumulativo(COD_INC_TRIB = 1 ou 3)(0110) function StrToIndAproCred(var ok: boolean; const s: string): TACBrIndAproCred; begin result := StrToEnumerado(ok, s, ['1', '2'], [indMetodoApropriacaoDireta, indMetodoDeRateioProporcional ]); end; //Código indicador do Tipo de Contribuição Apurada no Período(0110) function StrToCodIndTipoCon(var ok: boolean; const s: string): TACBrCodIndTipoCon; begin result := StrToEnumerado(ok, s, ['1', '2'], [codIndTipoConExclAliqBasica, codIndTipoAliqEspecificas ]); end;
  23. Outra conversão: interface function StrToIndCredOri(var ok: boolean; const s: string): TACBrIndCredOri; function StrToBaseCalculoCredito(var ok: boolean; const s: string): TACBrBaseCalculoCredito; implementation function StrToBaseCalculoCredito(var ok: boolean; const s: string): TACBrBaseCalculoCredito; begin result := StrToEnumerado(ok, s, ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18'], [bccVazio, bccAqBensRevenda, bccAqBensUtiComoInsumo, bccAqServUtiComoInsumo, bccEnergiaEletricaTermica, bccAluguelPredios, bccAluguelMaqEquipamentos, bccArmazenagemMercadoria, bccConArrendamentoMercantil, bccMaqCredDepreciacao, bccMaqCredAquisicao, bccAmortizacaoDepreciacaoImoveis, bccDevolucaoSujeita, bccOutrasOpeComDirCredito, bccAtTransporteSubcontratacao, bccAtImobCustoIncorrido, bccAtImobCustoOrcado, bccAtPresServ, bccEstoqueAberturaBens]); end; function StrToIndCredOri(var ok: boolean; const s: string): TACBrIndCredOri; begin result := StrToEnumerado(ok, s, ['0', '1'], [TACBrIndCredOri.icoOperProprias, TACBrIndCredOri.icoEvenFusaoCisao]); end;
  24. Olá, correto Kiko Fernandes, a rotina que trata o status 101 esta logo abaixo do tratamento que hoje eu sugeri que fosse revisado. valeu por lembrar, eu esqueci de comentar que onde hoje trata só o 101, não existe a necessidade de manutenção. at+
  25. Estava com problema para recuperar os dados de protocolo na consulta da NFe quando ela esta denegada. Acredito que o problema esta na leitura do XML(pcnRetConsSitNFe.pas) método(TRetConsSitNFe.LerXml: boolean), ele trata os status 100 e 101 quando deveria tratar 100 e 110. Hoje ele faz if FcStat in [100,101] then, mas acredito que o correto seria if FcStat in [100,110] then, fiz um teste aqui e funcionou. Acredito que esta correção poderá resolver o problema relatado no topico (viewtopic.php?f=6&t=5412&p=28066&hilit=DENEGADA#p28066). Obrigado pela atençã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.