Ir para conteúdo
  • Cadastre-se

Anizair Lopes

Membros
  • Total de ítens

    53
  • Registro em

  • Última visita

Tudo que Anizair Lopes postou

  1. Ola, pessoal desculpem a demora mas eu já resolvi os problemas com os cast utilizando o Delphi 6 vou colocar o fonte anexo para que possam analisar obrigado e espero ter contribuido para solucionar esse problema. ACBrUtil.pas
  2. Olá Regys, conforme solicitado estou enviando o arquivo em anexo. ACBrECFEpson.pas
  3. Olá para todos, Aqui na empresa em que trabalho adquirimos recentemente uma impressora Epson TM-T81 FBIII e o problema da hora do software basico ficar zerado eu consegui resolver copiando a mesma codificação da impressora bematech, abaixo segue o codigo para que seja feito a modificação no repositório, no meu teste funcionou perfeitamente. function TACBrECFEpson.GetDataHoraSB: TDateTime; {Var DtStr, HrStr : AnsiString ; } Var Linha, LinhaVer, DtHrStr : AnsiString ; Linhas : TStringList; I, CRZ :Integer; AchouBlocoSB : Boolean ; begin { EpsonComando.Comando := '0402' ; EnviaComando ; DtStr := EpsonResposta.Params[8] ; HrStr := '000000' ; { Atualmente não tem informações de como pegar a hora por comando direto, tem que utilizar a mesma forma que a Bemateh realizar a partir da LMF. A ser implementado.... } {Result := EncodeDateTime( StrToInt(copy(DtStr, 5,4)), // Ano StrToInt(copy(DtStr, 3,2)), // Mes StrToInt(copy(DtStr, 1,2)), // Dia StrToInt(copy(HrStr, 1,2)), // Hora StrToInt(copy(HrStr, 3,2)), // Min StrToInt(copy(HrStr, 5,2)), // Seg 0 ); } Result := 0.0; // verificar se a redução Z está pendente e não fazer se estiver // porque acontecerá erro, conforme consulta ao atendimento da bematech if Estado in [estLivre] then begin Linhas := TStringList.Create; try CRZ := StrToIntDef(NumCRZ, 1) ; LeituraMemoriaFiscalSerial(CRZ, CRZ, Linhas); I := 0 ; AchouBlocoSB := False; while (not AchouBlocoSB) and (I < Linhas.Count) do begin Linha := Linhas[I] ; AchouBlocoSB := (pos('SOFTWARE B', Linha ) > 0) ; Inc( I ) ; end ; Linha := ''; LinhaVer := ''; while AchouBlocoSB and (I < Linhas.Count) and (Linha = LinhaVer) do begin Linha := Trim(Linhas[I]) ; if (Linha <> '') then begin if ( StrIsNumber( copy(Linha,1,2) ) and ( copy(Linha,3,1) = '.' ) and StrIsNumber( copy(Linha,4,2) ) and ( copy(Linha,6,1) = '.' ) and StrIsNumber( copy(Linha,7,2) ) ) then LinhaVer := Linha; end ; Inc( I ) ; end ; if LinhaVer <> '' then begin // 01.00.01 25/06/2009 21:07:40 I := pos('/', LinhaVer ) ; DtHrStr := copy(LinhaVer, I-2, 10 ) ; I := pos(':', LinhaVer ) ; DtHrStr := DtHrStr + ' ' + copy(LinhaVer, I-2, 8 ) ; Result := StringToDateTime( DtHrStr, 'dd/mm/yyyy hh:nn:ss' ) ; end; finally Linhas.Free ; end ; end; end;
  4. Obrigado Juliomar Mas acho que ainda não fui claro o suficiente então vou tentar ser mais claro. A minha aplicação que e responsável por controlar o ECF não tem nenhum tipo de acesso ao Banco de Dados ele somente comunica com o ECF e informa para a minha aplicação o valor do NUMGRG ou NUMCDC. Hoje com a daruma onde ainda não utilizamos o acbr utilizamos uma chamada a dll DarumaFrameWork_rRetornarInformacao_ECF_Daruma('56', strFlag) onde dentro dessa variável strFlag me traz a informação se é um Relatorio gerencial ou Cupom Vinculado que está aberto, mediante isso eu vou solicitar a impressora que me passe para caso de Relatorio Gerencial o NUMGRG e para caso de Cupom Vinculado o NUMCDC com isso passo para minha aplicação que possui acesso ao banco a informação correta que será armazenada. Régys e quando ocorre queda de energia com o um Relatorio Gerencial aberto como o evento te informa se o relatorio é Gerencial ou Cupom vinculado ?
  5. obrigado pelas respostas, mas Daniel para o caso de queda de energia somente este estado para fechamendo do relatorio é o sufiente, mas o meu problema é que eu preciso saber qual numero de documento capturar para armazenar no banco se eu não tenho um estado que me informa se o relatorio que estou fechando é um cupom vinculado ou um relatorio gerencial então fico sem saber qual numero passar ao meu pdv e assim ele guardar no banco a fim de gerar o requisito do PAF para demais documentos fiscais. EMBarbosa não tem como eu controlar isso porque o meu sistema pdv é separado do ECF tenho um aplicação somente para controlar o ecf e quando cai a energia eu perderia todas as variáveis e então por esse motivo preciso consultar o ecf para que ela me informe que o relatório que eu estou fechando é um Gerencial ou um Vinculado. Vocês tem alguma outra solução ou dica ?
  6. Olá conhecendo os estados da ecf conforme mencionado pelo Regys e postado abaixo. TACBrECFEstado = (estNaoInicializada, { Porta Serial ainda nao foi aberta } estDesconhecido, {Porta aberta, mas estado ainda nao definido} estLivre, { Impressora Livre, sem nenhum cupom aberto, pronta para nova venda, Reducao Z e Leitura X ok, pode ou nao já ter ocorrido 1ª venda no dia...} estVenda, { Cupom de Venda Aberto com ou sem venda do 1º Item} estPagamento, { Iniciado Fechamento de Cupom com Formas Pagto pode ou nao ter efetuado o 1º pagto. Nao pode mais vender itens, ou alterar Subtotal} estRelatorio, { Imprimindo Cupom Fiscal Vinculado ou Relatorio Gerencial } estBloqueada, { Reduçao Z já emitida, bloqueada até as 00:00 } estRequerZ, {Reducao Z dia anterior nao emitida. Emita agora } estRequerX, {Esta impressora requer Leitura X todo inicio de dia. Imprima uma Leitura X para poder vender} estNaoFiscal { Comprovante Nao Fiscal Aberto } ) ; lembrando o estado estRelatório informa a existencia de dois estado um para cupom vinculado outro para relatório gerencial, gostaria de saber de vocês como proceder para saber se a impressora está no estado de Relatorio Gerencial ou no Estado de cupom Vinculado ? estou fazendo esta pergunta porque no meu sistema de automação preciso saber esse estado para informar a minha applição o GRG ou CDC para guardar corretamente no banco de dados e posteriormente fazer a geração do arquivo PAF
  7. Bom noite a todos, Descupem-me se fui ofensivo, mas estou também querendo resolver o problema e quando informei que os cast´s foram programado por voces estava me referindo somente a Unit ACBRUtils que está cheio de Cast AnsiString, String que como o EMBarbosa comentou em um outro tópico "sem sentido". e mais uma vez eu peço desculpa se fui ofensivo essa não era a minha intenção. só para fechar o assunto, fiz a remoção dos cast's conforme a orientação do Daniel Simões e os erros foram solucionado. sem mais para o momento sou grato a todos pela colaboração.
  8. Obrigado mais uma vez Daniel, vou fazer as remoções dos cast e qualquer coisa report nesta thread.
  9. Obrigado Daniel Simoes, você tem alguma sugestão que não seja utilizar os cast para que eu possa testar e reportar a comunidade ?
  10. Bom EMBarbosa, o problemas dos casts foram vocês que desenvolveram. Então o que nós precisamos e que resolva a compatibilidade com o Delphi 6, se vai remover o cast ou vai manter o cast não me interessa, somente me interessa que seja compatível com o delphi 6, tentei uma solução mas vejo que vocês não estão com muito interesse em solucionar esse problema para quem utiliza delphi 6. será que é possível manter essa compatibilidade ou vocês irão informar a comunidade geral que o ACBR não é mais compatível com o Delphi 6 ?
  11. Revivendo o assunto, agora estou pensando em utilizar o acbrECF para disponibilizar mais impressora no meu software, mas o problema de access violation com o Delphi 6 continua. pegando a dica do wrgoncalves2008 eu fiz outras alterações no ACBrUtils quando se trata de conversões AnsiString e String, passei a utilizar ACBrStrToAnsi e ACBrStr e esse erro parou de acontecer. A questão é que estes casts utilizando ACBrStr e ACBrStrToAnsi já possuem as diretivas de compilação para compatibilidade com outras versões e a minha questão é porque não utilizar esses casts no repositório ? pois se já foi testado com o Delphi Xe e funcionou perfeitamente ? também na versão do delphi 6 que utilizo aqui funcionou vou colocar aqui as funções que alterei para que possam analisar e corrigir no acbrUtils a fim de que futuras correções não danifiquem o que eu já alterei aqui. WriteToTXT - onde tinha String alterei para ACBrStr; HexToAscii - onde tinha AnsiString alterei para ACBrStrToAnsi e - onde tinha String alterei para ACBrStr IntToStrZero - onde tinha AnsiString alterei para ACBrStrToAnsi Poem_Zeros - onde Tinha AnsiString alterei para ACBrStrToAnsi e - onde tinha String alterei para ACBrStr depois destas correções tudo funcionou perfeitamente no Delphi 6 . no aguardo de qualquer posição da parte de vocês. lembrando que funcionou com o FastMM e sem o FastMM.
  12. Paulo Augusto, lembrando que goiânia não aceita envio de lote eu utilizei o método ACBrNFSe.gerar(numlote) e funcionou perfeitamente.
  13. Olá bom dia, Gostaria de informar que ao carregar uma arquivo de xml para o provedor de goiânia o mesmo não está preenchendo o componente da NFs-e, com isso não consigo enviar notas para a prefeitura. Executei um passo a passo no codigo e identifiquei a possível falha, gostaria que pudessem analisar se estou correto. if pos('</Rps>', ArquivoXML.Text) > 0 then begin while pos('</Rps>', ArquivoXML.Text) > 0 do begin XML := copy(ArquivoXML.Text, 1, pos('</Rps>', ArquivoXML.Text) + 5); //aqui o arquivo está sendo separado e como tem duas tags rps está passando para o //leitor somente um pedaço do arquivo. ArquivoXML.Text := Trim(copy(ArquivoXML.Text, pos('</Rps>',ArquivoXML.Text) + 6, length(ArquivoXML.Text))); LocNFSeR := TNFSeR.Create(Self.Add.NFSe); try LocNFSeR.Leitor.Arquivo := XML; --> aqui é passado somente um pedaço do arquivo. LocNFSeR.VersaoXML := NotaUtil.VersaoXML(XML); // LocNFSeR.Provedor := FConfiguracoes.WebServices.Provedor; LocNFSeR.LerXml; Items[Self.Count-1].XML_Rps := LocNFSeR.Leitor.Arquivo; Items[Self.Count-1].NomeArq := CaminhoArquivo; finally LocNFSeR.Free; end; end; end; end; estou anexando o xml que estou utilizando para ver se é problema no arquivo ou se é a codificação acima que encontra-se errada. NovoTeste.xml
  14. Ola fazendo teste aqui com a nota fiscal de serviço e utlizando o FastMM identifiquei uma leak de memoria na criação do TProvedorGoiania o qual coloco em anexo o relatorio onde está o leak. sem mais para o momento. Nfse_MemoryManager_EventLog.txt Nfse_MemoryManager_EventLog.txt
  15. Boa tarde, hoje eu baixei os fontes do repositório quando fui fazer a instalação do componente acbrnfse no delphi 7 ocorreu alguns problema o qual tive que corrigir manualmente e estarei enviado aqui para que seja corrigido no repositório, então vamos as mudanças. no PACOTE ACBRNFSE.DPK Faltou colocar as duas units abaixo: ACBRProvedor4R.pas ACBRProvedorGovDigital.pas nas Units que vou citar abaixo faltaram colocar a property Versão. pcnDonwloadNfe.pas na Classe TDownloadNFE pcnConstNFeDest.pas na classe TConstNFeDest pcnCCENfe.pas na classe TCCENFe depois de feitas essas mudanças consegui instalar o componente normalmente. solitico que façam a correção para meus futuros updates não tenha que fazer isso novamente.
  16. Boa Tarde estou abrindo este tópico por não ter encontrado nada referente ao assunto, gostaria de saber se será disponibilizado a codificação do DANFE NFs-e para o fastreport. pois estou utilizando o Delphi xe e não possuo o QuickReport instalado somente o fastreport sem mais para o momento sou grato.
  17. Boa tarde Italo fiz os testes e está faltando somente corrigir o CodigoMunicípio que na Unit pnfsConversao o provedor de goiânia está o codigo do município no IBGE mas em goiânia eles não estão assumindo o do IBGE mas uma tabela própria e o codigo é 0025300, nos meus teste gerou um erro devido a este codigo. sem mais para o momento sou grato.
  18. Boa tarde Italo, Baixei a ultima atualização e analisando os fontes percebi que a tag => IncentivoFiscal ainda continua habilitada e para goiânia esta tag não precisa ser enviada. Esta informação fica na linha 744 da Unit pnfsNFSeW. se puder corrigir fico grato.
  19. Olá as mudanças implementadas pelo hugo_fabricio para o provedor de goiânia não foram atualizados no SVN! porque estava fazendo teste com o componente e estava ocasionando erros e quando eu sobrepus o arquivo que o hugo colocou aqui no forum resolveu o problema, ou seja, o arquivo não foi atualizado no SVN, visto que eu já fiz um update no dia 05/04/2013 e não veio estas correções para o provedor de goiânia. Gostaria de solicitar aos responsáveis por estas atualizações para que possa colocar essas mudanças no SVN, afim de evitar problemas quando eu tiver que fazer futuros update no componente. sem mais para o momento sou grato.
  20. Olá Daniel, entendo o seu ponto. A minha pergunta é se a correção que coloquei para compatibilidade com o Delphi 6 pode ser aplicado sem nenhum problema de compatibilidades com outras ides ? E caso eu encontre mais algum problema vou colocandos as correções aqui para análise da equipe ficando a disposição para sanar eventuais dúvidas dos nosso colegas. Obrigado e tenha um bom dia.
  21. Pessoal, eu também estou utilizando Windows XP e Delphi 6. Esta ocorrendo o erro na função IntToStrZero do abrUtil a qual faz a chamada a função que o colega colocou. Para testar eu mudei a linha da geração do Registro 54 onde está wregistro:=wregistro+IntToStrZero(Registros54[i].NumeroItem), 3); para esta linha abaixo: wregistro:=wregistro+TBStrZero(IntToStr(Registros54[i].NumeroItem), 3); e o problema foi solucionado não gerando mais o erro. Deve ser alguma função que não está disponível no Delphi 6, então peço que façam o teste que coloquei em outras versões para ver se ocorre algum erro, caso não ocorra erros nenhum em outras versões sugiro que seja esta a abordagem a ser colocado no componente para fins de compatibilidade com o DELPHI 6. sem mais para o momento sou grato.
  22. Conforme havia falado já finalizei a geração dos arquivos 88SP02 e 88SP03 gostaria que fosse enviado para o SVN, para quando eu efetuar uma atualização do meu componente não perca as codificações que já fiz. segue me anexo o arquivo modificado ACBrSintegra.pas
  23. Obrigado pela resposta vou acrescentar os registro 88SP02 E 88SP03 que são necessário para o meu caso. assim que estiver pronto e testado passo para ser colocado no SVN.
  24. Gostaria de saber se o ACBrSintegra possui os registro referente a portaria PORTARIA SAIF Nº 03 DE 2 DE SETEMBRO DE 2005 de minas Gerais, não consegui identificar estes registros no ACBrSintegra, se não possuir gostaria de saber se posso coloca-los no componente e disponibilizar para ser carregado no SVN ? para mais informações sobre esta portaria segue o link : http://www.fazenda.mg.gov.br/empresas/legislacao_tributaria/portarias/port_saif003_2005.htm
  25. Esqueci de mensionar, mas temos que lembrar que os registros Internos não são criados e sim somente referenciados, com isso não precisamos nos preocupar com o Free de cada registro, pois o objeto principal já se responsabiliza por isso. Ex: Criarmos os TRegistro60A e adicionamos ao Componente no TRegistros60A e assim com os outros.. Internamente no componente é capturado a referencia do Registro60A e adicionado ao Registro60M. Então ao destruir os registros60A do componente AcbrSintegra automaticamente será liberado do Registro60M por ser uma referencia, então devemos somente liberar os Registros internos do Registro60M.
×
×
  • 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.