Ir para conteúdo
  • Cadastre-se

antonio.carlos

Consultores
  • Total de ítens

    1.945
  • Registro em

  • Última visita

  • Days Won

    2

Community Answers

  1. antonio.carlos's post in Gerar remessa stream was marked as the answer   
    Foi enviado commit para o SVN - At revision: 33260
    Logo vamos disponibilizar uma nova versão ACBrLibBoleto com o novo método.. assim que estiver disponível para download, atualize fique à vontade para testar e nos enviar feedback.
  2. antonio.carlos's post in AcbrLib-CTe, não está preenchendo algumas classes de alto nível. was marked as the answer   
    @Ezequias por favor, quando for possível, atualize ACBrLibCTe para ultima versão disponível para download.

    Fiz alguns testes e enviei uma alteração para o SVN commit At revision: 33253 e já esta disponível para NuGet também.
    Referente a classe Entrega, você vai utilizar a Classe Complemento.. 
  3. antonio.carlos's post in Migração do ACBrLib MDFe para net 8.0 was marked as the answer   
    Foi disponibilizado uma nova versão Revision: 33195
    .. por favor atualize e veja se consegue utilizar a versão com net 8..
  4. antonio.carlos's post in Novo no pedaço. Desenvolvimento C# ACBrLib.NFSeMT was marked as the answer   
    Veja o tópico acima, fala sobre ACBrLibNFSe..

    Tópico abaixo como configurar ambiente para uso ACBrLib, usando o programa exemplos disponíveis em nosso svn
    https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/C%23/
    Pode também usar via Nuget:

    Temos um curso que também pode ajudar:
    https://acbr.nutror.com/curso/e4f38b5c7398e4ccca8731c2d305952d389ac693/aula/3188912
  5. antonio.carlos's post in Emissão NFSe Sao Paulo was marked as the answer   
    Os campos e valores a serem preenchidos, melhor caminho é falar com o contador do seu cliente, ele quem vai poder te ajudar nesta etapa..
    ACBrLib disponibiliza apenas os métodos de uso e a documentação exemplos de preenchimento.. 
  6. antonio.carlos's post in ACBrLibPixCd - Status da transação was marked as the answer   
    @dtlinformatica Tudo bem ? 
    Utilizando as credencias que você me disponibilizou por mensagem privada.. Realizei a consulta utilizando o TxId que consta no seu log.. veja teste que realizei utilizando o programa exemplo ACBrLibPIXCD em C#:



    status = 2 (Concluída), veja o retorno nos logs do ACBrLibPIXCD:
    LogACBrLib.txt

    Exatamente igual ao Log do Componente:
    LogPIX.txt

    Observação os dois logs são referente a mesma consulta.. veja o TxId e data e hora dos logs.

    Veja os fontes do componente:
    TACBrPIXStatusCobranca = ( stcNENHUM, stcATIVA, stcCONCLUIDA, stcREMOVIDA_PELO_USUARIO_RECEBEDOR, stcREMOVIDA_PELO_PSP );
    Por desencargo, realizei o mesmo teste utilizando os nossos testes unitários e também obtive o retorno do status = 2 (Concluída).
    LogACBrLibTestesUnitarios.txt

    Estou utilizando a ultima versão disponível no fórum:
     
  7. antonio.carlos's post in Obter Base64 do PDF ACBrSat was marked as the answer   
    Enviado um commit para SVN: Revision: 33183
    Próxima compilação da ACBrLibSAT, atualize na sua máquina e use o método SAT_SalvarPDF.. após o envio do CFe..
  8. antonio.carlos's post in Passo 52 da homologação was marked as the answer   
    Neste caso não será gerado REQNUM.. só marcar na planilha que o teste foi realizado..

    REQNUM só vai ser gerado, quando ocorrer a confirmação da transação.. sendo uma transação autorizada, reversão da transação ou um cancelamento da transação.
  9. antonio.carlos's post in NT2023.004_v1.11 was marked as the answer   
    Foi enviado um commit para o svn, por favor atualize, veja se consegue utilizar as classes, qualquer novidade me avise, por favor !
  10. antonio.carlos's post in Nova descrição para os tipos de pagamentos was marked as the answer   
    @ademar-datalan tudo bem ? 

    Analisando seu pedido, não será possível a inclusão, vou te explicar porque.. 

    Esta função segue o Manual NFe/NFCe em conjunto com as Notas técnicas.. em especifico a NT2023_004 v1.11..

    Olhando a função, ela esta preenchendo os campos com base da Tabela de Códigos das Operadoras de cartão de crédito e/ou débito publicada no Portal Nacional da Nota Fiscal Eletrônica, disponível para download em:
    https://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/NJarYc9nus=

    E também em nosso SVN, no tools:
    https://svn.code.sf.net/p/acbr/code/tools/DFe/NFeNFCe/Outros/

    Olhando este documento, não consta a bandeira que você precisa, tpIntegra for igual a 1..  e se estiver usando os Cartões Banrisul, então neste caso é necessário informar 99 - Outros..
  11. antonio.carlos's post in AcbrLibNfe - Falha Acces Violation na Consulta Sefaz (NFE_StatusServico) was marked as the answer   
    @Sistemas Drogal Quando for possível, atualize, veja se ainda esta com erro
     
  12. antonio.carlos's post in Exemplo em VB6 do ACBrLibPIXCD was marked as the answer   
    @Marcos Pereda Obrigado pela analise e ajuda na solução 😊
    Commit At revision: 32833
  13. antonio.carlos's post in DANFE não imprimi xPed e nItemPedido was marked as the answer   
    Faça um teste por favor.. ative a propriedade ImprimeXPedNitemPed
    https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html
  14. antonio.carlos's post in Configuração PayGoWeb was marked as the answer   
    PW_iAddParam( PWINFO_DESTTCPIP, 127.0.0.1:17502 )
    Esta informando o endereço servidor de homologação da PayGo errado..
    Por favor, tente utilizar este endereço: esba-hom01.tpgweb.io:17500
  15. antonio.carlos's post in Como dar os primeiros passos no TEF para Android was marked as the answer   
    Sim, você pode usar um MP15, com qualquer dispositivo Android ou até mesmo máquina Windows..
    Por exemplo, o Gertec TSG800 não tem inserção de cartão, até onde eu sei ele aceita apenas via contactless, correto ?  por isso o uso do MP15.. 
    Só temos um porém, a PayGo não homologou este modelo de dispositivo Android.. então o melhor caminho é usar um GPOS700X, onde o mesmo foi homologado pela PayGo e temos diversos parceiros utilizando ele.. 
  16. antonio.carlos's post in Demo tef was marked as the answer   
    Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
    Não temos ACBrLib para TEF..

    Nesse caso você deve consumir a DLL da TEF House diretamente em sua linguagem de programação..

    O Projeto ACBr tem uma parceria com a PayGo -> https://projetoacbr.com.br/tef

    No GitHub da PayGo tem alguns exemplos que você pode usar para estudos.
    https://github.com/PGPagamentos
    Documentação:
    https://devpaygo.readme.io/docs/o-que-e-1
  17. antonio.carlos's post in Gerar arquivos CRT e KEY - Itaú was marked as the answer   
    Uma alternativa é buscar uma comunidade da sua linguagem de programação e desenvolver uma aplicação que faça a exportação destes arquivos.. ou seguir com a orientação do Consultor Daniel Info, utilizando um arquivo lote em .bat..
  18. antonio.carlos's post in Erro Segmentation fault (core dumped) módulo NFSe was marked as the answer   
    Programa Exemplo foi enviado para o SVN.
    At revision: 32343
  19. antonio.carlos's post in Método Salvar_PDF na NFSeLib was marked as the answer   
    Foi enviado um commit, implementado o método SalvarPDF no programa exemplo Java..
    At revision: 32161
  20. antonio.carlos's post in Capturar dados PinPad was marked as the answer   
    Olá @Precisa Informatica não, hoje não temos nada no ACBrLib em relação com Pinpad..
  21. antonio.carlos's post in ACBrLibNFSe - Nenhum provedor seleccionado was marked as the answer   
    Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
    Dê uma olhada neste tópico, nele tem alguns itens importantes referente a NFSe.
    Quanto ao erro. você precisa selecionar uma cidade na aba Emitente.. que ACBrLib automaticamente vai carregar o provedor referente a cidade selecionada
    https://acbr.sourceforge.io/ACBrLib/SobreaACBrLibNFSe.html
  22. antonio.carlos's post in C# - Arquivos PDF was marked as the answer   
    Olá @Lindomar S. Menezes não temos.. nesse caso terá que usar uma função externa mesmo..
  23. antonio.carlos's post in C# - Criação da TAG Integrador was marked as the answer   
    Legal, fiz um commit, At revision: 31822
    Logo vai estar disponível para download no fórum.
  24. antonio.carlos's post in codigoderetorno=6003, SAT não vinculado ao AC was marked as the answer   
    Quando é um SAT Novo..
    Equipamento precisar ser ativado -> https://acbr.sourceforge.io/ACBrMonitor/SATAssociarAssinatura.html
    depois vinculado AC -> https://acbr.sourceforge.io/ACBrMonitor/SATAssociarAssinatura.html..

     
  25. antonio.carlos's post in Uso da biblioteca ACBrLib MT com múltiplas Threads was marked as the answer   
    Falha de segmentação SIGSEGV é comum de erro em programação que ocorre quando um programa tenta acessar uma parte da memória que não tem permissão para acessar. Isso geralmente ocorre devido a bugs no código, como acessar um ponteiro nulo, acessar uma área de memória liberada ou escrever além dos limites de um array.

    A linguagem de programação que você utiliza, não é minha linguagem nativa, então tive que fazer algumas pesquisas.. para entender a linguagem e tentar te ajudar..

    Veja se essas opções não te ajuda em relação uso da ACBrLib MultiThread.

    Adicione Sincronização:
    Tente adicionar mutexes (travas) ao redor do código que está usando a biblioteca ACBrLibCTe. Isso pode ajudar a evitar condições de corrida entre as threads,
    #include <dlfcn.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <pthread.h> #define NUMERO_DE_THREADS 1 #define NUMERO_DE_INSTANCIAS 5 #define ACBRLIBCTE "/usr/local/lib/libacbrcte64.so" typedef int (*inicializar_t)(u_int64_t *, char *, char *); typedef int (*finalizar_t)(u_int64_t); inicializar_t inicializar; finalizar_t finalizar; // Mutex para sincronização pthread_mutex_t acbrMutex = PTHREAD_MUTEX_INITIALIZER; void* run(void *); int main() { // Carrega a biblioteca ACBrLibCTe void *lib = dlopen(ACBRLIBCTE, RTLD_LAZY); if (!lib) { fprintf(stderr, "Erro ao carregar a biblioteca\n\n"); exit(1); } // Atualiza os ponteiros para as funções que serão testadas na ACBrLibCte inicializar = (inicializar_t)dlsym(lib, "CTE_Inicializar"); finalizar = (finalizar_t)dlsym(lib, "CTE_Finalizar"); // Cria vetor com as threads criadas pthread_t threads[NUMERO_DE_THREADS]; for(int i=0; i<NUMERO_DE_THREADS; i++) { // Define o número da Thread para mensagem de log int *nr_thread = malloc(sizeof(int)); *nr_thread = i; // Cria a thread e inicia execução pthread_create(&threads[i], NULL, run, (void *) nr_thread); } // Aguarda a finalização de todas as threads for(int i=0; i<NUMERO_DE_THREADS; i++) { pthread_join(threads[i], NULL); } // Encerra o uso da biblioteca dlclose(lib); // Destroi o mutex pthread_mutex_destroy(&acbrMutex); } void * run(void *p) { int nr_thread = *((int *) p); u_int64_t handle[NUMERO_DE_INSTANCIAS]; char *senha = calloc(64, sizeof(char)); strcpy(senha, "senha"); // Cria instâncias da biblioteca ACBrLibCTe for (int i = 0; i < NUMERO_DE_INSTANCIAS; i++) { pthread_mutex_lock(&acbrMutex); // Trava o mutex antes de acessar a biblioteca char *arquivo = calloc(64, sizeof(char)); sprintf(arquivo, "acbrlib-%d.ini", i); int retorno = inicializar(&handle[i], arquivo, senha); printf("(Thread #%2d - Instância #%2d) Função <<<CTE_Inicializar>>> [Retorno da Biblioteca: %d] [Handle retornado : %lu]\n", nr_thread, i, retorno, handle[i]); pthread_mutex_unlock(&acbrMutex); // Destrava o mutex após acessar a biblioteca } // Finaliza as instâncias da biblioteca ACBrLibCTe for (int i = 0; i < NUMERO_DE_INSTANCIAS; i++) { pthread_mutex_lock(&acbrMutex); int retorno = finalizar(handle[i]); printf("(Thread #%2d - Instância #%2d) Função <<<CTE_Finalizar >>> [Retorno da Biblioteca: %d] [Handle finalizado: %lu]\n", nr_thread, i, retorno, handle[i]); pthread_mutex_unlock(&acbrMutex); } // Libera o parâmetros free(p); return NULL; }
    Inicialização Global:
    Inicie a biblioteca uma vez no início do programa, antes de criar qualquer thread, e compartilhe o handle entre as threads. Isso evita a necessidade de inicialização concorrente. Aqui está um exemplo:
    #include <dlfcn.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <pthread.h> #define NUMERO_DE_THREADS 1 #define NUMERO_DE_INSTANCIAS 5 #define ACBRLIBCTE "/usr/local/lib/libacbrcte64.so" typedef int (*inicializar_t)(u_int64_t *, char *, char *); typedef int (*finalizar_t)(u_int64_t); inicializar_t inicializar; finalizar_t finalizar; u_int64_t globalHandle; void* run(void *); int main() { // Carrega a biblioteca ACBrLibCTe void *lib = dlopen(ACBRLIBCTE, RTLD_LAZY); if (!lib) { fprintf(stderr, "Erro ao carregar a biblioteca\n\n"); exit(1); } // Atualiza os ponteiros para as funções que serão testadas na ACBrLibCte inicializar = (inicializar_t)dlsym(lib, "CTE_Inicializar"); finalizar = (finalizar_t)dlsym(lib, "CTE_Finalizar"); // Inicializa a biblioteca globalmente char *senha = calloc(64, sizeof(char)); strcpy(senha, "senha"); char *arquivo = "acbrlib-global.ini"; int retorno = inicializar(&globalHandle, arquivo, senha); // Cria vetor com as threads criadas pthread_t threads[NUMERO_DE_THREADS]; for(int i=0; i<NUMERO_DE_THREADS; i++) { // Define o número da Thread para mensagem de log int *nr_thread = malloc(sizeof(int)); *nr_thread = i; // Cria a thread e inicia execução pthread_create(&threads[i], NULL, run, (void *) nr_thread); } // Aguarda a finalização de todas as threads for(int i=0; i<NUMERO_DE_THREADS; i++) { pthread_join(threads[i], NULL); } // Finaliza a instância global da biblioteca retorno = finalizar(globalHandle); printf("(Global) Função <<<CTE_Finalizar >>> [Retorno da Biblioteca: %d] [Handle finalizado: %lu]\n", retorno, globalHandle); // Encerra o uso da biblioteca dlclose(lib); } void * run(void *p) { int nr_thread = *((int *) p); u_int64_t handle[NUMERO_DE_INSTANCIAS]; char *senha = calloc(64, sizeof(char)); strcpy(senha, "senha"); // Cria instâncias da biblioteca ACBrLibCTe for (int i = 0; i < NUMERO_DE_INSTANCIAS; i++) { char *arquivo = calloc(64, sizeof(char)); sprintf(arquivo, "acbrlib-%d.ini", i); int retorno = inicializar(&handle[i], arquivo, senha); printf("(Thread #%2d - Instância #%2d) Função <<<CTE_Inicializar>>> [Retorno da Biblioteca: %d] [Handle retornado : %lu]\n", nr_thread, i, retorno, handle[i]); } // Finaliza as instâncias da biblioteca ACBrLibCTe for (int i = 0; i < NUMERO_DE_INSTANCIAS; i++) { int retorno = finalizar(handle[i]); printf("(Thread #%2d - Instância #%2d) Função <<<CTE_Finalizar >>> [Retorno da Biblioteca: %d] [Handle finalizado: %lu]\n", nr_thread, i, retorno, handle[i]); } // Libera o parâmetros free(p); return NULL; }
    Como você deve conhecer a linguagem que esta utilizando, acredito que estes dois exemplos possam te ajudar.. 
×
×
  • 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.