Ir para conteúdo
  • Cadastre-se

cantelli.r

Membros
  • Total de ítens

    118
  • Registro em

  • Última visita

Tudo que cantelli.r postou

  1. Atualizei esta semana para ver se tinha alguma UF nova da NFCe, porém, irém verificar amanhã cedinho se está tudo certo mesmo e testar novamente e dou um retorno. Obrigado pelos retornos!
  2. Boa tarde Régys, segue o log em anexo. Abri o demo; ativei; tentei gerar o gerencial completo com uma linha em branco no início, deu erro; desativei o demo e saí. Obrigado pelo retorno. acbrlog.txt
  3. Boa tarde senhores. Estou com um problema nos relatórios gerenciais quando utilizados no protocolo EscECF, no meu caso testei com a IF MP-4200 TH FI da Bematech. Imprimo um gerencial que inicia com uma linha em branco (quebra de linha) e está dando erro já de início. Se alguém tiver esta impressora e puder testar para ver se é problema do meu equipamento ou algo no componente mesmo... Para efetuar o teste basta ir no demo ACBrECF, menu Relatórios > Relatório Gerencial > Relatório Gerencial Completo Teste 1: Apenas dê um enter no início da primeira linha, deixando uma linha em branco no início. Teste 2: Remova a linha em branco do teste anterior, deixando a primeira linha com um texto válido. Após o título TESTE DE RELATÓRIO, insira 10 linhas em branco. (Este segundo teste é apenas para verificar se pode ser problema com as quebras de linha mesmo.) Fico no aguardo, caso alguém conseguir efetuar um teste e me dar um retorno. Obrigado!
  4. Certo Daniel, acredito que pode ser sim. Fiz alguns testes e acabei conseguindo deixar todas as dlls na mesma pasta do .EXE, assim tudo está funcionando conforme preciso. Abraço.
  5. Eu que agradeço pelo retorno, Daniel! Como comentei, dessa forma está passando corretamente o PathDLL, porém, por algum motivo, o componente ainda está buscando a dll no diretório do exe. Quando na unit "ACBrECFBematech", é chamada a função "LoadDLLFunctions", na função "Bematech_FI_VersaoDll", está retornando a versão da dll que está na pasta do exe. Tentei descobrir o porque, e não consegui, aparentemente estaria tudo certo... a variável "sLibName" está correta, mas está carregando a dll errada. Agora realmente fiquei sem saber o que está acontecendo. Se alguém puder me ajudar, agradeço!
  6. Fazendo mais alguns testes, entendi melhor o problema. Como estou usando o protocolo EscECF, ele cria a classe da bematech (neste caso) ao necessitar de alguma função de sua dll, através da função CriarECFClassPorMarca. O que fiz por enquanto para resolver meu problema, foi atlerar justamente a função CriarECFClassPorMarca, adicionando a última linha: function TACBrECFEscECF.CriarECFClassPorMarca: TACBrECFClass; begin Result := nil; if IsBematech then Result := TACBrECFBematech.create(fpOwner) else if IsEpson then Result := TACBrECFEpson.create(fpOwner); Result.PathDLL := Self.PathDLL; end; Porém, não sei se seria a melhor forma de ser feito. Fiquei na dúvida se essa propriedade deveria ser herdada automaticamente ou não... Desta forma está funcionando, mas caso alguém tiver uma solução que considere mais correta para este caso por favor me informe. Obrigado!
  7. Boa tarde senhores. Estou precisando trabalhar na minha empresa com duas versões da Bemafi32.dll da Bematech, por ter encontrado problemas ao usar a dll versão 7 com IFs do convênio anterior ao 09/09. Para tal, criei uma subpasta para armazenar a Bemafi32.dll versão 7 (convênio 09/09). Após criar o componente AcbrECF, atribuo o valor dessa subpasta à propriedade "AcbrECF.ECF.PathDLL". ECF := TACBrECF.Create(Application); ECF.Modelo := ecfEscECF; ECF.ECF.PathDLL := ExtractFilePath(Application.ExeName)+'bematech09\'; Se eu verificar o valor da propriedade antes de chamar qualquer função, está lá o valor que atribuí, porém, na classe da bematech (ACBrECFBematech) onde dá a carga nas funções da dll, o valor de "PathDLL" está zerado, então não é considerado o valor por mim atribuído: procedure BematechFunctionDetect( FuncName: String; var LibPointer: Pointer; LibName : String = cLIB_Bema ) ; var sLibName: string; begin if not Assigned( LibPointer ) then begin // Verifica se exite o caminho das DLLs if Length(PathDLL) > 0 then sLibName := PathWithDelim(PathDLL); Tentei verificar no código mas não encontrei nada de estranho. Alguém tem alguma ideia do que pode estar acontecendo? Estou atribuindo o valor para a propriedade errada? Ou a classe da bematech estaria olhando para a propriedade errada? Agradeço desde já!
  8. São retornados pelo ECF sim Elton. O que fiz por enquanto foi calcular na minha aplicação o total vendido com base no total do imposto e na alíquota, que são os valores retornados. Vou ver se encontro alguma forma de obter do ECF o total vendido por alíquota. Encontrando ou não, postarei mais tarde minha sugestão para alteração no código, ou retornando o valor do ECF, ou fazendo o cálculo.. Abraço!
  9. Bom dia senhores. Fazendo alguns testes, reparei que ao carregar as alíquotas utilizando o protocolo escECF, na propriedade "Total", está me retornando o total do imposto de determinada alíquota, diferente dos outros protocolos que me retornam o total vendido para aquela alíquota (Testei com a MP-2100). Posso fazer o cálculo para obter o total vendido na aplicação sem problema nenhum, porém, não seria interessante este cálculo já ser feito na unit ACBrECFEscECF, na função "CarregaAliquotas", assim retornando o valor total vendido, como é feito com os outros modelos? Nos retornos do comando pelo que vi, não há o valor total vendido, não sei se isso é algo do convênio 09/09 mesmo, que talvez não tenha este retorno... Abraço.
  10. Aparentemente, ativando antes e desativando após o comando, mesmo se desligar e religar o ECF, os comandos continuam sendo enviados corretamente, no caso de USB conectada direto sem conversor. Fiz um exemplo simples testando com a Leitura X ACBrECF1.Device.Ativar; ACBrECF1.LeituraX; ACBrECF1.Device.Desativar; Testei com Daruma FS700, Bematech MP-4200 TH FI e Bematech MP-4000. Teoricamente resolveria meu problema. Vou agora ver qual a melhor forma de colocar isso na minha aplicação.
  11. Bom, não consegui resolver o problema, mas pelo que vi está ligado ao fato da COM virtual mesmo. Ao desligar o ECF, deve perder a referência daquela "COM", conforme o Daniel Simões mencionou nesse post: O interessante é que, com a DLL do fabricante e utilizando ECFs da Bematech (testei com MP-4000 TH FI e MP-4200 TH FI), funciona. Com a Daruma, o mesmo problema ocorre mesmo com a DLL do fabricante. Pelo que conversei com o pessoal da Bematech, quando utilizada a DLL, a cada envio de comando é aberta a porta e após, é fechada. Sei que estes problemas com USB vêm de tempos, e que há soluções como utilizar adaptador USB-Serial, porém, nesses casos em que funciona com a DLL do fabricante, talvez fosse interessante conseguirmos fazer funcionar diretamente com o ACBr também, certo? Ainda mais pelo fato de que os ECFs do convênio 09/09 só virão com USB. No geral, funcionou muito bem o ACBr com o protocolo escECF aqui para mim, diretamente na USB, sem conversor. Apenas este "probleminha" no desligamento que me incomodou, que convenhamos, é o de menos, uma vez que na homologação pode se usar o conversor para resolver este problema. Se eu descobrir alguma novidade em relação à isso postarei aqui. Caso alguém tiver alguma dica ou algo do tipo, estou à disposição para efetuar testes. Abraço.
  12. Obrigado pelo retorno Juliomar, mudei para a COM2, mas o problema continua... Vou tentar fazer mais alguns testes pois estou achando que é algo com a COM virtual...
  13. Boa tarde senhores, estou com um problema com a impressora Bematech MP-4200 TH FI, que utiliza o protocolo escECF. Após eu desligar o ECF e ligá-lo novamente, não consigo mais comunicação com o ECF. Por exemplo, no demo ECFTeste: - Ativo o componente com o modelo ecfEscECF; - Envio uma leitura X; - Desligo o ECF; - Religo; - Envio uma leitura X - ERRO: Impressora BEMATECH - MP-4200 TH FI não está respondendo. Caso eu desative a impressora, ao tentar ativá-la de novo, obtenho o erro: Communication error 2: O sistema não pode encontrar o arquivo especificado. Se eu desligar e ligar o ECF novamente e reabrir o programa, normalmente funciona. Obs.: 1 - Como o ECF é USB, utilizo uma porta (COM10) emulada, através de um driver da bematech mesmo. 2 - Fiz testes diretamente com a dll da bematech (7.xxx), sem utilizar o ACBrECF, e este problema não me ocorre. Desligo o ECF, ligo de novo, e continua funcionando normalmente os comandos. 3 - Estou testando com o equipamento físico, não utilizo emulador. Alguém passou por algo parecido? Obrigado.
  14. Bom, como estou utilizando agora o envio síncrono, então melhor ignorar o recibo. Até porque daqui a pouco ele deve sumir do -pro-rec.xml, segundo o que foi dito. Obrigado pela ajuda Ítalo! Abraço!
  15. Bom dia Italo, obrigado pela resposta. Acabei de encontrar meu problema verificando o componente. Recentemente foi feita uma alteração na ACBrNFeWebServices, linha 1619: //if (FConfiguracoes.Geral.ModeloDF = moNFe) or (not ASincrono) then if (FConfiguracoes.Geral.ModeloDF = moNFe) and (not ASincrono) then Com essa alteração, passou a não entrar mais nessa condição, visto que uso NFCe. Logo, não tenho mais retorno utilizando: "ACBrNFe.WebServices.Retorno.Recibo" Porém, na função ACBrNfe.Enviar, eu estava deixando o parametro Sincrono como "False". Alterando este para True, passei a ter retorno usando: ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.chNFe A única informação que eu não tenho nesse caso é o número do Recibo, porém, nessa minha rotina não haveria problemas sem ele. Seria o "mais correto" utilizar desta forma para ler os retornos? Envio Síncrono e lendo os retornos através do "procNFe" de cada NF? Obrigado!
  16. cantelli.r

    Retornos Nfce Após Envio

    Senhores, estou implementando a NFCe e até hoje de manhã estava tudo ok. Após atualizar os fontes, estou tendo problemas para ler os retornos. Logo após o comando de Enviar(iLote), eu verifico alguns retornos como: ACBrNFe.WebServices.Retorno.Recibo ACBrNFe.WebServices.Retorno.Protocolo Porém, após a atualização está vindo tudo em branco, como se não houvesse retorno. Estou lendo de maneira errada? Há outra forma de obter os retornos? Visto que estou seguindo o exemplo. Mesmo utilizando: ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.chNFe a tag está sem valor algum. Obrigado!
  17. Acabei de atualizar os fontes e fiz alguns testes no Delphi XE2. Aparentemente está tudo ok agora. Obrigado Daniel.
  18. Roberto.Godinho, também tenho essa dúvida. O que você respondeu está claro no manual, a dúvida é COMO informar. Sei que teremos que gerenciar, mas haverão casos que ficará distorcida essa informação, Ex.: Vlr. Venda……..: 20,00 Pago em cartão….: 10,00 Pago em cheque….: 15,00 Troco………….: 5,00 No Danfe vai aparecer exatamente a informação acima. No xml, porém, devo descontar os 5,00 de troco, de uma das formas? Lembrando que troco normalmente é dinheiro. Logo, a informação que irá para a sefaz estará um tanto quanto distorcida. Mas não vejo outra forma de tratar isto sem uma tag para troco.
  19. Bom dia senhores. Em relação à ER 2.01 do PAFECF, como já foi discutido em outros tópicos, agora temos que gerar os arquivos MF e MFD em formato binário (Item 4 e 5 do requisito VII). Alguém conseguiu gerar, ou sabe como faço para gerar da Dataregis? (Modelo 3202DT). Estou conseguindo apenas gerar em txt, através das funções "EmiteLeituraMF" e "LeImpressao". Tentei contato com o suporte da Dataregis, e após ficar umas 2 hrs esperando ser atendido, desisti.
  20. Agora, relato de quem já homologou ainda não vi...
  21. jonesalmeida, Você deve estar usando uma versão do delphi igual ou maior que 2009 né? (String = UnicodeString). Veja na Unit "ACBrSATEmuladorSP" nas funções está sendo passado: PAnsiChar(codigoDeAtivacao) tem que passar: PAnsiChar(AnsiString(codigoDeAtivacao)) Exemplo da função EnviarDadosVenda: Antes: Resp := ACBrSATEmuladorSPstatic.EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao), PAnsiChar(dadosVenda) ) ; Depois: Resp := ACBrSATEmuladorSPstatic.EnviarDadosVenda( numeroSessao, PAnsiChar(AnsiString(codigoDeAtivacao)), PAnsiChar(dadosVenda) ) ; Para resolver o problema na "raiz", creio que a property codigoDeAtivacao deveria ser AnsiString.
  22. Obrigado pelas respostas amigos. Exatamente Daniel, creio também que vai ser disponibilizado algo, uma vez que não encontrei outra forma de gerar uma assinatura válida de 344. Como o emulador aceita qualquer string de 344 dígitos, por enquanto vai assim né. Sei que é uma preocupação digamos que adiantada, mas como vi que vocês já haviam adicionado uma assinatura, pensei que talvez já estivesse no padrão correto. Bom, o negócio é aguardar pra ver. Outra dúvida quanto ao demo. Estou usando uma impressora não fiscal, Bematech MP-4200 TH. Ela só tem USB, porém, o driver emula uma Serial. Só que, ao mandar a impressão na COM emulada, as fontes não ficam de acordo, saindo na impressão os caracteres "M0", "M1"... Vocês saberiam me dizer qual fonte seria a correspondente para a impressão do ticket? No caso de eu desenvolver uma impressão com um gerador de relatórios ou algo do tipo, para imprimir em qualquer impressora, e não direto na serial... Sei que poderia usar qualquer fonte monoespaçada, mas pelo que vi em uma imagem do André em seu blog, ficou legal a fonte utilizada pelo ACBr para impressão. Abraço.
  23. Boa tarde pessoal. Gostaria de uma informações de vocês se possível. Até então estava desenvolvendo uma classe própria para trabalhar com o SAT. Ontem baixei os fontes desenvolvidos por vocês do ACBr. Vi que vocês adicionaram uma constante com um assinatura padrão nela, "cAssinatura". Vocês saberiam me informar como eu gero uma assinatura própria do CNPJ de minha software house + o do meu cliente? Meu questionamento é a respeito de como devo assinar, com qual certificado. Seria o e-CNPJ da ICP-Brasil?! Pois assinei com este, porém a assinatura ficou enorme, não respeitando o padrão de 344 dígitos solicitados pelo SAT. Não encontrei maiores informações nos manuais à respeito dessa assinatura. Se alguém puder me esclarecer algo em relação à isso fico grato.
  24. Olha, acho que teria que dar um f7 na linha "if not (Self.ConsLote.Executar)" e verificar onde dá o erro pra ter certeza do que é amigo. Acredito que vai dar erro ao tentar acessar alguma propriedade da lista das NFs. Qualquer coisa faça uns testes gerando tudo na mesma pasta, alterando a seguinte propriedade do componente: "ACBrNFSe.Configuracoes.Arquivos.AdicionarLiteral := False". Veja quais arquivos está gerando para um único envio.. Qualquer coisa posta a lista dos arquivos gerados aí.. Abraç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.