Ir para conteúdo
  • Cadastre-se

José Mauro

Membros
  • Total de ítens

    115
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que José Mauro postou

  1. O valor deve ser calculado pela sua aplicação. Basicamente você precisa realizar o seguinte cálculo: Vlr. Aprox += Vlr. Liq. Prod. n * Perc. Aprox. Trib. n onde: Vlr. Aprox: será o valor calculado pela sua aplicação que será enviado ao jACBr; Vlr. Liq. Prod: valor líquido do produto vendido; Perc. Aprox. Trib: valor aproximado de tributos associado ao item vendido com base em alguma fonte, normalmente IBPT; n: refere-se aos produtos em questão. Desta forma o percentual aproximado de tributos deve ser um campo presente na sua estrutura de produtos e, após o cálculo, seu valor submetido ao jACBr. Att.
  2. Boa tarde mascjunior, A classe Imposto.java está no pacote jACBrFramework.serial.ecf. Já o método getInfoRodapeCupom encontra-se disponível na classe ACBrECF. Verifique se você está com a última versão do jACBrFramework estas funcionalidades foram acrescidas no final do ano passado 28/12/2013. Você pode chamar o método para informar antes do método fecharCupom. Att.,
  3. Bom dia mascjunior, Este recurso foi acrescentando na lib em java. Dê uma olhada no link abaixo que há um exemplo de uso e uma explicação sobre o comportamento: Basicamente você tem duas possibilidades: 1) Informar a fonte e valor: Imposto lImposto = getEcf().getInfoRodapeCupom().getImposto(); lImposto.setFonte("IBPT"); lImposto.setValorAproximado(pValorAprox); 2) Informar o texto já formatado para impressão: Imposto lImposto = getEcf().getInfoRodapeCupom().getImposto(); lImposto.setTexto(pTexto); Qualquer dúvida estamos à disposição. Att.
  4. Se houve movimentação durante o dia o método retorna perfeitamente. A questão é quando você tira a RZ que o comportamento estava diferente, hoje já consegui contornar para a situação que precisava, talvez já deva até ter modificado a lib que é importada pelo JNI. Quando sobrar um tempo dou uma olhada e revejo com mais calma.
  5. Sem problema edsonmoretti pode deixar da forma que for coerente em seu contexto. Foi colocado desta forma porque um contexto estático é inicializado a nível somente uma vez dentro da JVM e economiza recursos caso haja mais de um acionamento. Só tome cuidado quando for fazer algum merge com as possíveis melhorias, correções que podem vir na biblioteca para não perder a suas personalizações. Abraço.
  6. Olá edsonmoretti, Primeiramente gostaríamos de agradecer a contribuição, realmente é um fator que complica bastante as configurações de ambiente. Alteramos apenas um detalhe para detecção da JVM, quando o bean ManagementFactory.getOperatingSystemMXBean().getArch() é acionado, há várias combinações possíveis de retorno dependendo do SO em questão, internamente é acionado System.getProperty("os.arch"). Segundo a Oracle o modelo correto para fazer esta distinção é obtendo a propriedade, System.getProperty("sun.arch.data.model"), conforme pode ser visto no link: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html, questão "When writing Java code, how do I distinguish between 32 and 64-bit operation?". Devido a isto o código ficou da seguinte forma: class PegarDLLpelaArqSO { private static String library = ""; public static String pegarArq() { if (library.isEmpty()) { library = System.getProperty("sun.arch.data.model").equals("64") ? "ACBrFramework64" : "ACBrFramework32"; } return library; } } A modificação está presente no SVN. Qualquer melhoria que fizer ou achar necessária nos informe para aumentarmos a solidez da biblioteca em java. Att., José Mauro
  7. Bom dia Willian, Esta funcionalidade foi acrescida a poucos dias e está em processo de validação. Alguns testes foram feitos para determinados blocos e esta funcional. Há um pequeno teste na lib, ProgramTestSpedFiscal.java. Caso encontre algum problema nos informe por favor. Att. José Mauro.
  8. Bom dia rpassos. Tive um problema parecido com a geração dos arquivos pelo ACBrPAF e ACBrSintegra, para resolvê-lo foi preciso especificar o encoding correto da aplicação. Há algumas formas que você pode tratar isto, dentre elas: especificar em tempo de execução o encoding, e.g., System.setProperty("file.encoding", "cp1252") usando variável de ambiente ao executar a aplicação, e.g., No meu caso o encoding utilizado foi o cp1252. José Mauro.
  9. Bom dia Rafael, O bloco 9 do SPED Fiscal estava acionando as chamadas do interop do bloco 1. Segue em anexo o patch com alteração. Att. José Mauro patch-ajuste-chamada-bloco9.zip patch-ajuste-chamada-bloco9.zip
  10. Boa tarde Rafael Dias, tudo bem? Sem em anexo dois patches. O primeiro contém algumas melhorias no jAcbrFramework (gerado do caminho ACBrFramework/jACBrFramework), já o segundo é uma alteração no projeto em .NET para gerar o interop relacionado ao sped, ACBrSpedFiscalInterop(gerado em ACBrFramework/ACBrFramework.Net). Está sendo iniciado o encapsulamento do Sped no jAcbrFramework e assim que finalizado será disponibilizado. Obrigado. José Mauro jACBrFramework_arquivo_mf_mfd_ajustesChave.zip patch-exportar-interop-sped-fiscal.zip
  11. Pessoal, boa tarde. Fiz alguns testes e está relacionado a utilização do JNA. Consegui resolvendo alterando o Interop de adição de ECF's autorizada, para: int AAC_IdentPaf_ECFsAutorizados_New(int aacHandle, ACBrAACInterop.TECFAutorizado.ByValue ecfAutorizado);
  12. Bom dia pessoal, tudo bem? Estou com um problema na geração do relatório de parâmetros de configuração com base no arquivo auxiliar gerado pelo ACBrAAC. Foi feito um teste onde são passadas algumas informações para gravação do arquivo, conforme abaixo: ACBrECF ecf = new ACBrECF(); ecf.setModelo(2); ecf.getDevice().setPorta("COM1"); ACBrAAC lAcbr = new ACBrAAC(); lAcbr.setKey(getChavePrivada()); lAcbr.setNomeArquivoAuxiliar("C:\\teste.txt"); lAcbr.setArqLOG("C:\\log_acbr.txt"); lAcbr.setEfetuarFlush(true); IdenticacaoPaf paf = lAcbr.getIdentPaf(); Empresa emp = paf.getEmpresa(); InfoPaf info = paf.getPaf(); ArquivoListaAutenticados lstAut = paf.getArquivoListaAutenticados(); paf.setNumeroLaudo("Laudo"); paf.setVersaoER("Versao"); lstAut.setMD5("MD5"); lstAut.setNome("Nome"); emp.setRazaoSocial("Razão Social"); emp.setCnpj("123123"); info.setNomeAplicativo("PAF"); info.setVersaoAplicativo("1.0"); AACECF ecfAutoriz = new AACECF(); ecfAutoriz.setCni(1); ecfAutoriz.setCro(1); ecfAutoriz.setNumeroSerie("EMULADOR"); ecfAutoriz.setValorGT(0); paf.getEcfsAutorizados().add(ecfAutoriz); lAcbr.salvarArquivo(); Após a gravação o arquivo foi gerado com sucesso. Porém ao chamar a função para geração do relatório, código abaixo, obtenho erro. ACBrAAC lAcbr = new ACBrAAC(); lAcbr.setKey(getChavePrivada()); lAcbr.setNomeArquivoAuxiliar("C:\\teste.txt"); lAcbr.setArqLOG("C:\\log_acbr.txt"); lAcbr.abrirArquivo(); ACBrECF ecf = new ACBrECF(); ecf.setModelo(2); ecf.getDevice().setPorta("COM1"); ecf.setAAC(lAcbr); ecf.ativar(); ecf.pafMF_RelParametrosConfiguracao(lAcbr.getIdentPaf().getPaf(), 1); ecf.desativar(); Como pode ser visto no primeiro trecho de código a impressora que é ativada foi adicionada no arquivo auxiliar (Emulador Bematech). Sei que ela foi gravada porque quando faço um get para obter as impressoras autorizadas ela vem, porém com a série criptografada. A mensagem de erro é: "ECF de Número de série EMULADOR não encontrado no Arquivo Auxiliar Criptografado.". Em anexo o log do processo. Têm alguma ideia de onde eu esteja errando? Desde já agradeço a ajuda. José Mauro log_acbr.txt
  13. Muito obrigado pela ajuda. Estamos evoluindo a lib em java e iremos enviando os patches dos recursos que formos encapsulando para a comunidade.
  14. Olá Régys, muito obrigado pelo esclarecimentos. Restou uma dúvida somente no item: "8. O Menu Fiscal Registros do Paf-ECF", devo gerar os registros de acordo com a função que for selecionada no menu? Por exemplo: U1 e P2, para produtos (antes P1 e P2); R01, R02.... R07 para movimentação da ECF, etc; Seria essa a ideia? É que como a movimentação é por período não vejo forma de ligá-la ao produto, exceto se seja para apresentar apenas os produtos e estoques que tiveram movimentação no período, é isto? Mais uma vez muito obrigado. José Mauro
  15. Blza. Nao sabia que o comportamento era esse. Obrigado pela explicaçao.
  16. Pessoal, boa tarde! Poderiam por favor verificar se há algum problema na formação do valor aproximado de tributos. Ocorre que se informo o campo texto, somente ele é exibido, ou seja, não aparece valor ou fonte. Estou utilizando o jACBrFramework, mas creio que esta parte ainda não esteja no repositório, poderiam por favor verificar se acontece para nas outras linguagens do framework? Abaixo o exemplo do código: Imposto lImposto = ecf.getInfoRodapeCupom().getImposto(); lImposto.setFonte("IBPT"); lImposto.setTexto("Val. Aprox. Impostos"); lImposto.setValorAproximado(1); Este trecho é executado imediatamente antes do fechamento do cupom. Exemplo sem informar a linha 3: ------------------------------------------------ Val.Aprox.Impostos R$1.00(4.63%) Fonte:IBPT MENSAGEM FECHAMENTO ------------------------------------------------ BEMATECH MP-2100 TH FI ECF-IF VERSÃO:01.00.01 ECF:001 LJ:0001 QQQQQQQQQQQQQEREQQ 27/12/2013 16:37:30 FAB:EMULADOR BR ------------------------------------------------ Exemplo informando todos os campos: ------------------------------------------------ Val. Aprox. Impostos MENSAGEM FECHAMENTO ------------------------------------------------ BEMATECH MP-2100 TH FI ECF-IF VERSÃO:01.00.01 ECF:001 LJ:0001 QQQQQQQQQQQQQEQOQQ 27/12/2013 16:34:17 FAB:EMULADOR BR ------------------------------------------------ Por agora é plenamente contornável, mas quando puderem deem uma olhada por favor. José Mauro
  17. Boa tarde pessoal, tudo bem? Estivemos importando algumas funcionalidades para a lib em Java, jACBrFramewok, e o nosso colega Rafael Dias irá versioná-las para que outras pessoas possam ir evoluindo a sua utilização. Bem, após a importação do ACBrPAF, ACBrAAC, ACBrEAD e alguns recursos do ACBrECF, começamos a pegar os requisitos de homologação e utilizar, devidamente, as funcionalidades encapsuladas. Estávamos utilizando algumas dicas contidas em, http://www.regys.com.br/homologacao-do-paf-ecf-parte-2-menu-fiscal/, para nos localizarmos sobre cada item pertencente ao menu fiscal, mas como houve mudanças da versão dos requisitos ficaram algumas dúvidas no ar e acredito que possa ser interessante centralizá-las e evoluirmos a base de conhecimento. Gostaria da ajuda de vocês para associar os itens do Requisito VII com as respectivas funcionalidades do ACBr. Abaixo um resumo: Item 2: LX -> Qual função deve ser acionada, ECF_PafMF_LX_Impressao ou ECF_LeituraX? (Em que uma se difere da outra) Item 3: LMF(S/C) -> Para a leitura da memória fiscal, simples ou completa, qual dos métodos deve ser utilizado? ECF_PafMF_LMFC_Cotepe1704 - período e saída na ECF ECF_PafMF_LMFC_Cotepe1704_CRZ - crz e saída na ECF ECF_PafMF_LMFC_Espelho - período e saída em arquivo ECF_PafMF_LMFC_Espelho_CRZ - data e saída em arquivo ECF_PafMF_LMFC_Impressao - período e saída na ECF ECF_PafMF_LMFC_Impressao_CR Z- crz e saída na ECF ECF_PafMF_LMFS_Espelho - período e saída em arquivo ECF_PafMF_LMFS_Espelho_CRZ- data e saída em arquivo ECF_PafMF_LMFS_Impressao - período e saída na ECF ECF_PafMF_LMFS_Impressao_CRZ- crz e saída na ECF Ainda em relação ao item 3, nesta versão ainda continua precisando dos itens Espelho MFD e Arq. MFD.? É que não ficou explícito para mim. Item 4: Para a geração do arquivo MF deve ser acionada a função ECF_PafMF_ArqMF? Item 5: Para a geração do arquivo MFD deve ser acionada a função ECF_PafMF_ArqMFD? Item 11: Para a identificação do PAF, deve ser acionada a função ECF_PafMF_RelIdentificacaoPafECF? Item 13: Do que se trata este item? Lendo ele parece que o subitem a), fala sobre o sintegra e o subitem b ) fala sobre o PAF_Preenche_H. Item 14: Tab. Índice Técnico Produção -> como funciona este item? Item 15: Parametros de Configuração -> para este item deve ser acionada a função PafMF_RelParametrosConfiguracao? Item 17: Este item é o mais complicado, minha opinião, antes havia um desmembramento que ficava mais fácil de entender, Arq. Prod, Meios de Pagamento, Estoque e Mov. Ecf. Estas funcionalidades continuam precisando, correto? Em relação a geração dos itens supracitados, seria: Para Estoque gerar o tipo de registro E através do PAF_SaveFileTXT_E; Para Tab. Prod. gerar o tipo de registro P através do PAF_SaveFileTXT_P; Para a Mov. Ecf. gerar o tipo de registro R através do PAF_SaveFileTXT_R; Para os Meios de Pagamento acionar a função ECF_PafMF_RelMeiosPagamento; Estes seriam os passos? É que vi no ANEXO IV que há vários registros que devem ser informados, tirando os que são específicos a determinados segmentos, quais são necessários para cada funcionalidade? Pessoal sei que são muitas perguntas, mas qualquer ajuda será bem muita bem vinda. Além disso acredito que este tópico possa vir a ser uma postagem interessante para auxiliar os marinheiros de primeira viagem, assim como eu, neste processo de homologação. Desde já agradeço. José Mauro
  18. José Mauro

    Patch Acbrpaf E Acbraac

    Prezado Rafael Dias, Segue em anexo o patch para acrescentar o ACBrPAF e o ACBrAAC. Todos os interops foram atualizados com a versão mais recente do ACBrFramework. Além disso a casca para inserir o ACBrEAD foi criada. Os pacotes ainda estão em validação, até agora usei o Registro E para geração do estoque e o registro P para o relatório de produtos e ambos funcionaram perfeitamente. Há um problema nos registros H e R referente a lixo de memória, achei bem estranho porque segue a mesma ideia dos outros, vou dar uma olhada com mais calma quando for gerar estes registros. Abraço. José Mauro patch-ACBrPAF-ACBrAAC-ACBrEAD.zip
  19. Opa... Achei aqui.. Dei uma mudada no JavaDefExporter para acertar um pouco a padronização dos nomes em java e também para mudar o array de caracteres para array de bytes nas estruturas que são trafegadas via jna. Atualizei todos os interops do jACbrFramework vou dar uma testar e encapsular o ACbrPAF e quando estiver OK coloco o patch aqui. Em anexo o patch com estas modificações. Vlw. patch-layout-interop-java.zip
  20. Como consigo rodar aquele DefExporter para gerar o Interop atualizado? O resto vai na unha na boa...
  21. José Mauro

    Dúvida: Acbrpaf

    Pessoal, bom dia. Vi que há o Interop ACBrPAFInterop, para o encapsulamento de algumas funções necessárias para os relatórios de gerencialmente fiscal. Estou precisando de um em específico, Tab. Prod., por isso vou começar o encapsulamento das funções. Para passar minimamente na homologação quais registros devem ser informados? Ps.: O caminho para geração deste arquivo é realmente esta lib, correto? Agradeço a todos. Abraços.
  22. Prezado Rafael Dias, Segue em anexo o patch com o acréscimo da funcionalidade para geração do relatório de meios de pagamento. Um abraço., pafMF_RelMeiosPagamento.zip
  23. Prezado Rafael Dias, Segue em anexo o patch para geração dos arquivos do sintegra. Foi necessário criar um construtor sobrecarregado para receber o Charset associado a máquina local para que não haja problema na conversão da string para o array de bytes que será enviado a lib. Há um exemplo em: jACBrFramework.Test.ProgramTestSintegra.java. Todos os registros, exceto o registro 56, foram validados e comparados com as tabelas do regulamento de ICMS. Foram detectadas duas coisas: no registro 77, a biblioteca está somando 1 ao campo tipo de receita, e.g., se envio 1 - Receita Própria, o arquivo é gerado com o valor 2 - Receita de terceiros; o bloco 90 estoura o tamanho quando precisa totalizar vários registros; Como melhoria irei fazendo à medida que der tempo a geração das tabelas, e.g., tipos de receitas para facilitar a alimentação da biblioteca. Att., José Mauro geracao-sintegra.zip
  24. Blza.. Estou encapsulando a parte do sintegra e assim que terminar coloco o patch ai. Vlw!!!
  25. Prezado Rafael Dias, Segue em anexo um patch com a correção para buscar o tipo da alíquota cadastrada. Foi adequado ao tipo retornando (TAliquotaRec) da lib AcbrFramework. Att., recuperacaoTipoAliquota.zip
×
×
  • 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.

The popup will be closed in 10 segundos...