Ir para conteúdo
  • Cadastre-se

vasilvei

Membros
  • Total de ítens

    64
  • Registro em

  • Última visita

Tudo que vasilvei postou

  1. vasilvei

    Ead Ao Gerar Arquivos

    Bom bia gostaria de uma ajuda para desenvolver a assinatura do EAD. quando eu mando gerar os arquivos espelho, LMFC por exemplo ele gera mas dá um erro da chave, eu tentei implementar o ACbrEAD.java: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jACBrFramework.serial.ecf; import com.sun.jna.ptr.IntByReference; import jACBrFramework.ACBrClass; import jACBrFramework.ACBrEventListener; import jACBrFramework.ACBrException; import jACBrFramework.ChaveEventObject; import jACBrFramework.interop.ACBrEADInterop; import java.nio.ByteBuffer; /** * * @author Valde */ public class ACBrEAD extends ACBrClass { public ACBrEAD() throws ACBrException { } @Override protected void onInitialize() throws ACBrException { IntByReference handle = new IntByReference(); int ret = ACBrEADInterop.INSTANCE.EAD_Create(handle); checkResult(ret); setHandle(handle.getValue()); } @Override protected void onFinalize() throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_Destroy(getHandle()); checkResult(ret); setHandle(0); } @Override protected void checkResult(int result) throws ACBrException { switch (result) { case -1: String message; int LEN = 1024; ByteBuffer buffer = ByteBuffer.allocate(LEN); int ret = ACBrEADInterop.INSTANCE.EAD_GetUltimoErro(getHandle(), buffer, LEN); message = fromUTF8(buffer, ret); throw new ACBrException(message); case -2: throw new ACBrException("ACBr EAD não inicializado."); } } public void addOnGetChavePrivada(ACBrEventListener<ChaveEventObject> listener) { if (!hasListeners("OnGetChavePrivada")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePrivada(getHandle(), new ACBrEADInterop.GetChavePrivadaCallback() { @Override public String invoke() { return OnGetChavePrivada(); } }); } addListener("OnGetChavePrivada", listener); } public void removeOnPAFGetKeyRSA(ACBrEventListener<ChaveEventObject> listener) { removeListener("OnGetChavePrivada", listener); if (!hasListeners("OnGetChavePrivada")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePrivada(getHandle(), null); } } private String OnGetChavePrivada() { ChaveEventObject e = new ChaveEventObject(this, ""); notifyListeners("OnGetChavePrivada", e); return e.getChave(); } public void addOnGetChavePublica(ACBrEventListener<ChaveEventObject> listener) { if (!hasListeners("OnGetChavePublica")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePublica(getHandle(), new ACBrEADInterop.GetChavePublicaCallback() { @Override public String invoke() { return OnGetChavePublica(); } }); } addListener("OnGetChavePublica", listener); } public void removeOnGetChavePublica(ACBrEventListener<ChaveEventObject> listener) { removeListener("OnGetChavePublica", listener); if (!hasListeners("OnGetChavePublica")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePublica(getHandle(), null); } } private String OnGetChavePublica() { ChaveEventObject e = new ChaveEventObject(this, ""); notifyListeners("OnGetChavePublica", e); return e.getChave(); } // Funções /** * @return String * @param arquivo local para gravar o arquivo * @param remove boolean * @throws ACBrException */ public String assinarArquivoComEAD(String nomeArquivo, boolean remove) throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_AssinarArquivoComEAD(getHandle(), toUTF8(nomeArquivo), remove, returnBuffer, STR_BUFFER_LEN); checkResult(ret); return fromUTF8(returnBuffer, ret); } public String calcularChavePublica() throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_CalcularChavePublica(getHandle(), returnBuffer, STR_BUFFER_LEN); checkResult(ret); return fromUTF8(returnBuffer, ret); } public void calcularEADArquivo(String nomeArquivo) throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_CalcularEADArquivo(getHandle(), toUTF8(nomeArquivo), returnBuffer, STR_BUFFER_LEN); checkResult(ret); } //int EAD_GerarChaves(int eadHandle, ByteBuffer ChavePUB, ByteBuffer ChavePRI, int bufferLen); //int EAD_GerarXMLeECFc(int eadHandle, String NomeSH, String PathArquivo); //int EAD_MD5FromFile(int eadHandle, String Arquivo, ByteBuffer MD5, int bufferLen); //int EAD_MD5FromString(int eadHandle, String AString, ByteBuffer MD5, int bufferLen); public void gerarChaves() throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_GerarChaves(getHandle(), returnBuffer, returnBuffer, STR_BUFFER_LEN); checkResult(ret); } public void gerarXMLeECFc(String nomeSH, String pathArquivo) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_GerarXMLeECFc(getHandle(), toUTF8(nomeSH), toUTF8(pathArquivo)); checkResult(ret); } public void removeEADArquivo(String nomeArquivo) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_RemoveEADArquivo(getHandle(), toUTF8(nomeArquivo)); checkResult(ret); } public boolean verificaEAD(String ead) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEAD(getHandle(), toUTF8(ead)); checkResult(ret); return ret != 0; } public boolean verificaEADArquivo(String nomeArquivo) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEADArquivo(getHandle(), toUTF8(nomeArquivo)); checkResult(ret); return ret != 0; } } Só que eu não sei como usar, se eu mando fazer isso: public static void gerarXMLeECFc(){ try { ACBrEAD.gerarXMLeECFc("Belsystem Sistemas de automção LTDA", "c:\\Arena\\"); } catch (ACBrException ex) { Logger.getLogger(Ead.class.getName()).log(Level.SEVERE, null, ex); } } ele dá null... pelo que eu entendi tem que gerar as chaves publicas e privadas antes, e sentar no medoto do AcbrECF. public void addOnPAFCalcEAD(ACBrEventListener<PAFCalcEADEventObject> listener) { if (!hasListeners("onPAFCalcEAD")) { ACBrECFInterop.INSTANCE.ECF_SetOnPAFCalcEAD(getHandle(), new ACBrECFInterop.PAFCalcEADCallback() { @Override public void invoke(String value) { onPAFCalcEAD(toUTF8(value)); } }); } addListener("onPAFCalcEAD", listener); } public void removeOnPAFCalcEAD(ACBrEventListener<PAFCalcEADEventObject> listener) { removeListener("onPAFCalcEAD", listener); if (!hasListeners("onPAFCalcEAD")) { ACBrECFInterop.INSTANCE.ECF_SetOnPAFCalcEAD(getHandle(), null); } } private void onPAFCalcEAD(String value) { PAFCalcEADEventObject e = new PAFCalcEADEventObject(this, value); notifyListeners("onPAFCalcEAD", e); } mas como eu faço isso... Resumindo eu gostaria de uma ajuda... -Para terminar a implementação do AcbrEAD.java, e com eu faço para usa-lo. -Como setar o EAD no AcbrECF.java. por gentileza alguém pode me ajudar.
  2. vasilvei

    Acbrbal

    Bom dia galera estou tentando implementar o ACBrBAL para o java, estou com algumas dúvidas, para setar a porta eu devo fazer igual faz no ACBRecf com o device? int BAL_LePeso(int balHandle, int timeout, DoubleByReference peso); como eu faço para implementar esse método no meu ACBrBAL.java? eu não sei como usa esse DoubleByReference. Obrigado!
  3. Obrigado! foi muito esclarecedor.
  4. Boa tarde algumas dúvidas... Eu baixei http://acbrframework...s/codigo-fonte/ do svn e percebi que dentro de :...\ACBrFramework\ACBrFramework\x86 tem uma dll, ACBrFramework32.dll, porém quando eu coloco no meu projeto diz que não encontrou o modolo. esse não seria a mesma que esta no projeto do jacbr... outra coisa quando eu abro um relatório gerencial esta saida a palavra 'teste' loca abaixo onde diz relatório gerencial. para finalizar: eu seu abrir ...\ACBrFramework\ACBrFramework no lazarus eu consigo gerar a dll para eu utilizar no java? Obrigado!
  5. Rafael como eu faço para setar a ead, você citou aqui nesse post: eu estou tentando desenvolver o EAD: ele esta gerando os arquivos, porém quando termina de gerar ele dá um erro de leitura de chave, isso que eu estou meio perdido como setar essa chave??? eu quero muito ajudar no projeto, mas meus conhecimentos são um pouco limitado, se alguém puder me dar um empurrãozinho ficarei muito agradecido...
  6. Seriam essas alterações: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jACBrFramework.serial.ecf; import com.sun.jna.ptr.IntByReference; import jACBrFramework.ACBrClass; import jACBrFramework.ACBrEventListener; import jACBrFramework.ACBrException; import jACBrFramework.ChaveEventObject; import jACBrFramework.interop.ACBrEADInterop; import java.nio.ByteBuffer; /** * * @author Valde */ public class ACBrEAD extends ACBrClass { public ACBrEAD() throws ACBrException {} @Override protected void onInitialize() throws ACBrException { IntByReference handle = new IntByReference(); int ret = ACBrEADInterop.INSTANCE.EAD_Create(handle); checkResult(ret); setHandle(handle.getValue()); } @Override protected void onFinalize() throws ACBrException{ int ret = ACBrEADInterop.INSTANCE.EAD_Destroy(getHandle()); checkResult(ret); setHandle(0); } @Override protected void checkResult(int result) throws ACBrException { switch (result) { case -1: String message; int LEN = 1024; ByteBuffer buffer = ByteBuffer.allocate(LEN); int ret = ACBrEADInterop.INSTANCE.EAD_GetUltimoErro(getHandle(), buffer, LEN); message = fromUTF8(buffer, ret); throw new ACBrException(message); case -2: throw new ACBrException("ACBr EAD não inicializado."); } } public void addOnGetChavePrivada(ACBrEventListener<ChaveEventObject> listener) { if (!hasListeners("OnGetChavePrivada")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePrivada(getHandle(), new ACBrEADInterop.GetChavePrivadaCallback() { @Override public String invoke() { return OnGetChavePrivada(); } }); } addListener("OnGetChavePrivada", listener); } public void removeOnPAFGetKeyRSA(ACBrEventListener<ChaveEventObject> listener) { removeListener("OnGetChavePrivada", listener); if (!hasListeners("OnGetChavePrivada")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePrivada(getHandle(), null); } } private String OnGetChavePrivada() { ChaveEventObject e = new ChaveEventObject(this, ""); notifyListeners("OnGetChavePrivada", e); return e.getChave(); } public void addOnGetChavePublica(ACBrEventListener<ChaveEventObject> listener) { if (!hasListeners("OnGetChavePublica")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePublica(getHandle(), new ACBrEADInterop.GetChavePublicaCallback() { @Override public String invoke() { return OnGetChavePublica(); } }); } addListener("OnGetChavePublica", listener); } public void removeOnGetChavePublica(ACBrEventListener<ChaveEventObject> listener) { removeListener("OnGetChavePublica", listener); if (!hasListeners("OnGetChavePublica")) { ACBrEADInterop.INSTANCE.EAD_SetOnGetChavePublica(getHandle(), null); } } private String OnGetChavePublica() { ChaveEventObject e = new ChaveEventObject(this, ""); notifyListeners("OnGetChavePublica", e); return e.getChave(); } // Funções /** * @return String * @param arquivo local para gravar o arquivo * @param remove boolean * @throws ACBrException */ public String assinarArquivoComEAD(String nomeArquivo, boolean remove) throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_AssinarArquivoComEAD(getHandle(), toUTF8(nomeArquivo), remove, returnBuffer, STR_BUFFER_LEN); checkResult(ret); return fromUTF8(returnBuffer, ret); } public String calcularChavePublica() throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_CalcularChavePublica(getHandle(), returnBuffer, STR_BUFFER_LEN); checkResult(ret); return fromUTF8(returnBuffer, ret); } public void calcularEADArquivo(String nomeArquivo) throws ACBrException { ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN); int ret = ACBrEADInterop.INSTANCE.EAD_CalcularEADArquivo(getHandle(), toUTF8(nomeArquivo), returnBuffer, STR_BUFFER_LEN); checkResult(ret); } //int EAD_GerarChaves(int eadHandle, ByteBuffer ChavePUB, ByteBuffer ChavePRI, int bufferLen); //int EAD_GerarXMLeECFc(int eadHandle, String NomeSH, String PathArquivo); //int EAD_MD5FromFile(int eadHandle, String Arquivo, ByteBuffer MD5, int bufferLen); //int EAD_MD5FromString(int eadHandle, String AString, ByteBuffer MD5, int bufferLen); public void removeEADArquivo(String nomeArquivo) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_RemoveEADArquivo(getHandle(), toUTF8(nomeArquivo)); checkResult(ret); } public boolean verificaEAD(String ead) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEAD(getHandle(), toUTF8(ead)); checkResult(ret); return ret != 0; } public boolean verificaEADArquivo(String nomeArquivo) throws ACBrException { int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEADArquivo(getHandle(), toUTF8(nomeArquivo)); checkResult(ret); return ret != 0; } }
  7. Eu uso uma ecf epson, quando eu tiro uma leitura de memória fiscal espelho, ele gera o arquivo porém dá erro ao ler a chave, por que ocorre isso? porém no final do arquivo ele gera: 000000041A008000BC12874181D09F7FBE477FA92B5FFCE60EF63C3A332F71CAD68AE89AB60EFC7510976A40067BE0B7F666B5D84FE4D095A1B5BE7A353438EBD45D62AC736EBE6C4FBACFB43AF10AC048F2676157F14A528D875D882BA267BC7AC702B2D896325B670F5B4D650A313FCEDF9AA6CF51EB5B49202D398F8DAD6CD5E1E2D6AE30EBBE seria a assinatura EAD.?
  8. Ola Rafael e Wagner Wagner conseguiu desenvolver algo a mais do EAD? Rafael nesse post você falou que deveria setar a chave : o setar que você fala é esse métodos: int EAD_SetOnGetChavePrivada(int eadHandle, ACBrEADInterop.GetChavePrivadaCallback method); int EAD_SetOnGetChavePublica(int eadHandle, ACBrEADInterop.GetChavePublicaCallback method); ?
  9. -Para gerar a leituras de memória fiscal, é necessário ter a dll das ecf's? -Tentei gerar aqui ele geral só que dá erro na chave de acesso, o por que ocorre isso? estou usando esses metodos: public void pafMF_LMFC_Espelho(int CRZInicial, int CRZFinal, String CaminhoArquivo) throws ACBrException { int ret = ACBrECFInterop.INSTANCE.ECF_PafMF_LMFC_Espelho_CRZ(getHandle(), CRZInicial, CRZFinal, toUTF8(CaminhoArquivo)); checkResult(ret); }
  10. Galera eu mudei a chamada do medoto public void pafMF_LMFC_Impressao(int CRZInicial, int CRZFinal) throws ACBrException { ele estava chamado o mesmo método da Data. ficou assim: public void pafMF_LMFC_Impressao(int CRZInicial, int CRZFinal) throws ACBrException { int ret = ACBrECFInterop.INSTANCE.ECF_PafMF_LMFC_Impressao_CRZ(getHandle(), CRZInicial, CRZFinal); checkResult(ret); }
  11. Segue o código, testei aqui deu certo. Abs. package jACBrFramework.serial.ecf; public class Aliquota { //<editor-fold defaultstate="collapsed" desc="Fields"> private String indice; private double aliquota; private boolean tipo; private double total; private boolean sequencia; //</editor-fold> //<editor-fold defaultstate="collapsed" desc="Properties"> public Aliquota(String indice, double aliquota, boolean tipo, double total, boolean sequencia) { this.indice = indice; this.aliquota = aliquota; this.tipo = tipo; this.total = total; this.sequencia = sequencia; } public String getIndice() { return indice; } public double getAliquota() { return aliquota; } public boolean getTipo() { return tipo; } public double getTotal() { return total; } public boolean getSequencia() { return sequencia; } //</editor-fold> } /*ACBrECF.java - INICIO*/ public void lerTotaisAliquota() throws ACBrException { int ret = ACBrECFInterop.INSTANCE.ECF_LerTotaisAliquota(getHandle()); checkResult(ret); carregaAliquotas(ret); } private void carregaAliquotas(int count) throws ACBrException { Aliquota[] array = new Aliquota[count]; for (int i = 0; i < count; i++) { ACBrECFInterop.AliquotaRec record = new ACBrECFInterop.AliquotaRec(); int ret = ACBrECFInterop.INSTANCE.ECF_GetAliquota(getHandle(), record, i); checkResult(ret); Aliquota item = new Aliquota(fromUTF8(record.Indice), record.Aliquota, record.Tipo, record.Total, record.Sequencia); array[i] = item; } this.aliquotas = array; } public void carregaAliquotas() throws ACBrException { int ret = ACBrECFInterop.INSTANCE.ECF_CarregaAliquotas(getHandle()); checkResult(ret); carregaAliquotas(ret); } public Aliquota[] getAliquota() throws ACBrException { return aliquotas; } /*ACBrECF.java - FINAL*/
  12. tem algum metodo que eu possa dar uma olhada para usar como exemplo e tentar desenvolver esse?
  13. Para eu pegar o valores totais das aliquotas como faço usando o novo jacbr?
  14. vasilvei

    jACBRframework

    Valeu Rafael pela resposta, deixar eu te explicar o meu problema: Eu estou fazendo o TEF, e tem uma rotina de homologação que devo deixar somente papel na ecf para quando estiver imprimindo o comprovante do TEF(o cupom vinculado), acabe o papel, eu devo substituir o papel, e mandar reemprimir o cupom vinculado, porém quando eu faço isso ele diz 0E0B - Meio de pagamento não encontrado., e é o mesmo dados que estou passando para imprimir que passei naquele que faltou o papel. eu entendi que dá esse erro porque o valor e o coo que estou passando, já foi imprimido o CV. É por esse motivo que dá esse erro o qual seria o motivo? como eu poderia resolver o meu problema?
  15. vasilvei

    jACBRframework

    Boa tarde tem esse médoto public native void estornaPagamento(String codFormaPagtoEstornar, String codFormaPagtoEfetivar, double valor, String observacao) throws ACBrException; porém ele não esta implementado para a ECF epson, como eu faço para implementar ele?
  16. vasilvei

    jACBRframework

    Beleza! outra duvida? DllImport int ECF_PafMF_LMFS_Espelho(const INTPTR ecfHandle, const double DataInicial, const double DataFinal, const PCHAR CaminhoArquivo); DllImport int ECF_PafMF_LMFS_Espelho_CRZ(const INTPTR ecfHandle, const int CRZInicial, const int CRZFinal, const PCHAR CaminhoArquivo); eles já gerar o EAD no final do arquivo automaticamente?
  17. vasilvei

    jACBRframework

    Boa tarde Rafael eu vi que tem no projeto JacrbrFramework c++, as .h: ACBrPAF.h ACBrEAD.h ... no caso se eu quiser usar no java eu devo fazer: Criar um JACBrPAF.cpp e um JACBrPAF.h e mesmo para EAD, ou dar um include das ACBrPAF.h, ACBrEAD.h no JACBrECF.h? qual a forma correta?
  18. vasilvei

    jACBRframework

    Eu coloquei a dll lá e deu certo eu passo: Ecf.pafMFMFDEspelho(dtInicialDb, dtFinalDb, "C:\\Arena\\EspelhoMFD\\DATA\\" ); ele gera o arquivo certo porém dá essa msg: Erro ao copiar C:\Arena\EspelhoMFD\DATA\ACBr_ESP.txt para C:\Arena\EspelhoMFC\DATA\ mas o arquivo esta lá... por que dá esse erro?
  19. vasilvei

    jACBRframework

    Bom dia Rafael. Só basta colocar a dll no diretório?
  20. vasilvei

    jACBRframework

    Cara to fazendo aqui epelhoMFD e tals ta feito no c++, e jacbr, porém quando eu chamo ele dá esse erro: "Erro ao carregar a função:EPSON_Obter_Dados_MF_MFD de: InterfaceEpson.dll" eu uso uma ECF Epson TM-T81F
  21. Bom dia! Gostaria de saber como faço para quando eu usar o comando ACBrECF.setOperador("João"); ele imprimir o relatório gerencial mostrando o operador.
  22. vasilvei

    jACBRframework

    Sim, ainda tenho que implementar mais algumas funções na JNI, para a minha homologação do PAF, assim tiver proto eu te aviso. Abraço.
  23. vasilvei

    jACBRframework

    Deu certo Obrigado! static int rgMonthDays[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; public static double toDouble(LocalDateTime date) { // source code copied from MFC 4.21 and modified. int wYear = date.getYear(); int wMonth = date.getMonthOfYear(); int wDay = date.getDayOfMonth(); int wHour = date.getHourOfDay(); int wMinute = date.getMinuteOfHour(); int wSecond = date.getSecondOfMinute(); // Check for leap year and set the number of days in the month boolean bLeapYear = ((wYear & 3) == 0) && ((wYear % 100) != 0 || (wYear % 400) == 0); int nDaysInMonth = rgMonthDays[wMonth] - rgMonthDays[wMonth - 1] + ((bLeapYear && wDay == 29 && wMonth == 2) ? 1 : 0); // Cache the date in days and time in fractional days long nDate; double dblTime; //It is a valid date; make Jan 1, 1AD be 1 nDate = wYear * 365L + wYear / 4 - wYear / 100 + wYear / 400 + rgMonthDays[wMonth - 1] + wDay; // If leap year and it's before March, subtract 1: if (wMonth >= 2 && bLeapYear) { --nDate; } // Offset so that 12/30/1899 is 0 nDate -= 693959L; dblTime = (((long) wHour * 3600L) + // hrs in seconds ((long) wMinute * 60L) + // mins in seconds ((long) wSecond)) / 86400.; double dtDest = (double) nDate + ((nDate >= 0) ? dblTime : -dblTime); return dtDest; }
  24. vasilvei

    jACBRframework

    Cara não consegui criar a função no util.java para a conversão de dateToDouble, pode me dar uma ajuda?
×
×
  • 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.