Jump to content

Wagner Fonseca

Membros
  • Posts

    22
  • Joined

  • Last visited

Posts posted by Wagner Fonseca

  1. Bom dia Wagner,

    Você deve usar somente o método Enviar, pois este é capaz de gerar o XML, assinar se necessário, montar o lote, assinar o lote se necessário, validar o lote e enviar para o web services.

    Deu certo, mas quando envio mais de 10 nfse, da erro de timeout.

     

    Att

  2. Bom dia,

     

    Eu gerei o arquivo corretamente.

    Mas qual o comando para enviar?

    ACBrNFSe1.GerarLote(vNumLote);
    
    ACBrNFSe1.Enviar(vNumLote);

    Ocorre um erro.

    "Erro não especificado"  no momento de assinar o XML.

     

    Obrigado.

    2-lot-rps.xml

  3. Bom dia  a todos,

     

    É fato que ainda para o pacote Java, não esta completo com todas as funções necessárias, exemplo o ACBrEAD e o ACBrAAC.

     

    Tomei liberdade para encapsular a classe ACBrEADInterop.java, e criei a ACBrEAD, para encapsular alguns métodos, o método "assinarArquivoComEAD(...)", funcionou! Os métodos que ainda não implementei, não pude entender a funcionalidade, se alguém puder me explicar, eu me a habilito a terminar de implementar os outros métodos.

     

    Por favor, sintam-se  livres para comentar e me corrigir:

    package jACBrFramework.serial.ecf;
    
    import com.sun.jna.ptr.IntByReference;
    import jACBrFramework.ACBrClass;
    import jACBrFramework.ACBrException;
    import jACBrFramework.interop.ACBrEADInterop;
    import java.nio.ByteBuffer;
    
    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.");
            }
        }
        
        // 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 void calcularChavePublica() throws ACBrException {
            ByteBuffer returnBuffer = ByteBuffer.allocate(STR_BUFFER_LEN);
            int ret = ACBrEADInterop.INSTANCE.EAD_CalcularChavePublica(getHandle(), returnBuffer, STR_BUFFER_LEN);
            checkResult(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 void verificaEAD(String ead) throws ACBrException {
            int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEAD(getHandle(), toUTF8(ead));
            checkResult(ret);
        }
        
        public void verificaEADArquivo(String nomeArquivo) throws ACBrException {
            int ret = ACBrEADInterop.INSTANCE.EAD_VerificarEADArquivo(getHandle(), toUTF8(nomeArquivo));
            checkResult(ret);        
        }
        
    }
    

     

    Obrigado;

  4. Bom dia,

     

    Estou tentando implementar no java a geração de arquivo do menu fiscal, a Tabela de Produtos.

     

    Não sei se estou fazendo da maneira correta, observei o código em Delphi e tentei realizar no Java, mas esta ocorrendo erro na chamada do metodo:

     

    public static void geraTabelaProdutos(List<Produto> produtos, String arquivo) {
            /**
             * int PAF_SaveFileTXT_TITP(
             *   int pafHandle, 
             *   ACBrPAFInterop.RegistroMercadoriasRec RegistroMercadorias[], 
             *   int Count, 
             *   ACBrPAFInterop.RegistroInsumosRec RegistroInsumos[], 
             *   String Arquivo, 
             *   String titulo, 
             *   double data)
             */
    
            int i = 0;
            ACBrPAFInterop.RegistroMercadoriasRec mercadorias[] = new ACBrPAFInterop.RegistroMercadoriasRec[produtos.size()];
            ACBrPAFInterop.RegistroInsumosRec insumos[] = new ACBrPAFInterop.RegistroInsumosRec[10];
            
            for (Produto p : produtos) {
                mercadorias[i] = new ACBrPAFInterop.RegistroMercadoriasRec();
                mercadorias[i].Descricao = p.getDescricao().toCharArray();
                mercadorias[i].Codigo = p.getProdCodi().toString().toCharArray();
                mercadorias[i].VlrUnitario = p.getPreco().doubleValue();
                mercadorias[i].CST = p.getClassFisc().getClassCodi().toString().toCharArray();
                mercadorias[i].Unidade = p.getUnidade().getUnidade().toCharArray();
                            
                ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_TITP(
                    i, 
                    mercadorias, 
                    i, 
                    insumos, 
                    arquivo, 
                    "tabela_produtos.txt", 
                    Util.dateToDouble()
                );
            }
          
        }
    

     

    mas ocorre um erro:

     

     

    java.lang.NullPointerException
        at com.sun.jna.Structure.structureArrayCheck(Structure.java:1361)
        at com.sun.jna.Structure.autoWrite(Structure.java:1393)
        at com.sun.jna.Function.convertArgument(Function.java:540)
        at com.sun.jna.Function.invoke(Function.java:258)
        at com.sun.jna.Library$Handler.invoke(Library.java:216)
        at sun.proxy.$Proxy25.PAF_SaveFileTXT_TITP(Unknown Source)
        at br.com.amazonas.clube.pdv.infra.Paf.geraTabelaProdutos(Paf.java:177)
     
    Agradeço desde ja a atenção de todos;
  5. Ola, eu que utilizo Java baixei a mas nova versão da DLL. e tbm o codigo para gerar o jar para poder utilizar na minha aplicação que você pode dar uma olhada aqui pelo SVN: https://acbr.svn.sourceforge.net/svnroot/acbr/ACBrFramework; ou por esse endereço que ja vem com a DLL : http://sourceforge.net/projects/acbrframework/files/jACBrFramework.zip/download

     

    Agora, aproveitando, queria saber se alguém tem algum manual, para utilizar alguns métodos das classes;

     

    No caso do método pafMF_MFD_Espelho(Date DataInicial, Date DataFinal, String CaminhoArquivo), ele pede a dll especifica da impressora.

     

    Alguem tem algum ideia de como fazer isso de uma forma mais interoperável.

     

     

    Agradeço a atenção;

  6. Em primeiro lugar, obrigado pela atenção, estou precisando muito de ajuda com isso.

     

    Bom, eu configurei o path do windows,  

    post-4857-0-64938000-1360946394.jpg

     

    quando limpo e contruo no Netbeans, aparece a seguinte mensagem no compilador:

     

    ...

     

    To run this application from the command line without Ant, try:
    C:\Program Files (x86)\Java\jdk1.6.0_39/bin/java -jar "G:\Desenvolvimento\Codigos\Java\NetBeansProject\Projeto\dist\Projeto.jar"
     
    Agora esta ocorrendo o primeiro erro:
     
    jACBr.ACBrECF.create()V
     
    att.
  7. Obrigado Rafael Batiati,

     

    Eu ja fiz esse dowloads para minha máquina, Alterei o load da Classe ACBrECF.java

     

     

    static
        {
            //Carrega a biblioteca de chamadas nativas JNI
            //System.loadLibrary("ACBrFramework_JNI");
                    
                    try {
                        System.loadLibrary("ACBrFramework64");
                    } catch (UnsatisfiedLinkError e) {
                        System.err.println("Erro ao carregar dll do jACBrFramework.\n" + e);
                        throw new UnsatisfiedLinkError("Erro ao carregar dll do jACBrFramework!");
                    }
        }
     
    Sem problemas aqui tudo bem, mas esta dando um erro, quero saber se alguém pode me ajudar:
     
    jACBr.ACBrECF.create()V
     
    Se alguém puder me ajudar, desde já agradeço.
     
    att
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.