Imprimir DANFE


#1

Boa tarde a todos,

sigo estudando o adempiere para implantação.

Gerei xml, transmiti o lote pra sefaz. e agora? como imprimo o DANFE?

Tem que fazer um DANFE na unha ou tem algum formato de impressao pronto?

e mais uma questão: em que pé esta o envio de pdf do danfe + xml por email?

valeu!!


#2

Boa tarde,

você verificou já buscou no sistema da sefaz pela chave de acesso e gerar o DANFE a partir de lá?

abraço.


#3

Sapelli, estou com a mesma dúvida. Conseguiu fazer a impressão do danfe?


#4

Até agora eu só consegui gerar o xml para ser transmitido. Pelo que pude perceber ele não ainda permite a geração do DANFE em PDF ou equivalente.

É isso mesmo, entendi correto ? Ou tem alguma função que faz isso e não encontramos ?

Obrigado


#5

Olá, os arquivos JRXML encontram-se em www.kenos.com.br/files_dw/Danfe.zip

Para abrir os arquivos será necessário o IReport, basta modificar as informações nos parâmetros LOGOURL e SUBREPORT indicando onde se encontra os mesmos como por exemplo “http://servidor:8080/webApp/logo.jpg” e para o SUBREPORT a mesma coisa passando o nome do Sub Relatório que também se encontra no Danfe.zip, logo após fazer a compilação do Arquivo para .Jasper, no Adempiere criar um cadastro de Relatório/Processo indicando o caminho do Jasper no servidor e logo depois vincular o processo na aba Nota Fiscal no campo Processo, a impressão do Danfe ficará disponível na Janela da Nota Fiscal no botão de Impressão.


#6

Obrigado pelo arquivo.

Tentei rodar a query direto no iReport, antes mesmo de cadastrar no Adempiere.

Cadastrei um datasource, apontando para o banco adempiere que tenho no PostgreSQL e rodei o preview dentro do iReport. Ele pediu o “RECORD_ID” e informei o código de uma NFe que já tenho emitida.

A execução da query dá um erro e retorna o seguinte:

ERRO: função nfeno(character varying) não existe SQL state: 42883

Alguma idéia do que pode estar errado ?

Abs,


#7

Seguem as functions:

Function nfeid:

CREATE OR REPLACE FUNCTION adempiere.nfeid (in nfe varchar) RETURNS varchar AS
$BODY$
DECLARE
        v_Count         NUMERIC;
        v_Result        VARCHAR;
        v_String        VARCHAR;
BEGIN
	v_Count   :=    1;
    v_Result  :=   '';
     
    IF nfe IS NULL OR nfe= ''  THEN
    
        RETURN 0;
        
    END IF;
      
    LOOP
            IF (MOD(v_Count-1,4) = 0) THEN
          
          v_Result := v_Result || ' ';
          
      END IF;
    
      v_Result := v_Result || charAt(nfe,v_Count::int4);
    
      EXIT WHEN (v_Count = LENGTH(nfe));
      v_Count := v_Count + 1;
    
    END LOOP;
    
    RETURN v_Result;
END
$BODY$
LANGUAGE 'plpgsql'

Function nfeno:

CREATE OR REPLACE FUNCTION adempiere.nfeno (in nfe varchar) RETURNS varchar AS
$BODY$
DECLARE
        v_Count         NUMERIC;
        v_Result        VARCHAR;
        v_String        VARCHAR;
        v_NFe           VARCHAR;
BEGIN
	v_Count   :=    0;
    v_Result  :=   '';
     
    IF nfe IS NULL OR nfe= ''  THEN
    
        RETURN 0;
        
    END IF;

    v_NFe := lpad(nfe, 9, '0');
      
    LOOP
            IF (MOD(v_Count-1,3) = 0) THEN
          
          v_Result := v_Result || '.';
          
      END IF;
    
      v_Result := v_Result || charAt(v_NFe,v_Count::int4);
    
      EXIT WHEN (v_Count = LENGTH(v_NFe));
      v_Count := v_Count + 1;
    
    END LOOP;
    
    RETURN substring(v_Result,2,12);
END
$BODY$
LANGUAGE 'plpgsql'

#8

Obrigado Ricardo, funcionou !

Abs,


#9

Bom Dia Senhores,

Até entao eu obtive o .jasper do modelo fornecido pela sefaz e adaptei para receber um XML como datasource, elimininando a necessidade de sqls e afins, apenas sendo necessario passar numero do protocolo e o logotipo como parametros, entretanto acabei retirando a parte de contigencia visto que pessoal aqui nunca usou. Caso alguem queira dar uma olhada so enviar uma mp.

Att.


#10

Fernando,

Tenho interesse nesse jasper que aceita o XML direto. Tentei te chamas por MP sem sucesso. Se puder me enviar, agradeceria muito.

Obrigado


#11

Respondi sua MP. mas qual email posso te encaminha?!
Att.


#12

Fernando, pq isso não pode ser incluso no AdempiereLBR ?


#13

Nao vejo problema algum, nao foi repassado antes pois quando cheguei a fazer já havia uma versão funcional que atendesse as necessidades do pessoal, acabei fazendo mais pela dificuldade de manter com SQL. Vou te repassar para que você possa analisar e verificar se cabe substituir o que há atualmente.

Att.


#14

Pessoal,

cheguei a uma boa solução ao problema da impressão da Danfe a partir do XML unindo partes fornecidas pelo colega Fernando e ajustando os arquivos do jasper.

os arquivos estão em ww.com.br/adempiere-danfe.zip

Seguem os passos para utilizar:

  • colocar o arquivo da classe na pasta nfe2/src/org/adempierelbr/process/ e fazer o processo para gerar e ativar no novo customization.jar
  • compilar os jrxml no iReport
  • criar um processo de relatório (janela Relatório & Processo) apontando para a classe (org.adempierelbr.process.ProcGenerateDanfe)
  • anexar ao registro do processo os dois arquivos .jasper
  • na janela Janela, Aba & Campo, buscar por “Nota Fiscal (SO)” e alterar a aba “Header”, associando o novo processo a ela.

Após feito isso, ao selecionar um registro de nota fiscal (saída) o botão de impressão gerará a DANFE.

Obrigado pela ajuda de todos, espero que este trabalho seja útil.
Abraços,
Claudemir


#15

Claudemir, show de bola! seria muito interessante se fosse incorporado ao projeto. Mas vejo que tem alguma correcoes e sugestoes ja ha varios meses no tracker sem qualquer sinal de vida.
Abraco


#16

Bom dia, desenvolvi uma documentação para impressão de DANFE, a partir do que o Claudemir desenvolveu.

O arquivo Documentacao.rar voce deve descompactar e colocar a pasta reports no seguinte caminho: C:\Users\workspace\localization_br\nfe2\src, ou seja, no local src da nfe2 na branch que você possui.

O ProcessGenerateDanfe.java você coloca no caminho: C:\Users\workspace\localization_br\nfe2\src\org\adempierelbr\process, ou seja, dentro do process do adempierelbr, org, nfe2 da sua branch.

Espero ter ajudado!

Abraço.


#17

Paulo, ficou bem fácil de entender. Show de bola!

Abraço
Alan


#18

Boa tarde Alan,

muito obrigado, a intenção é criar documentação fácil de entender.

Pretendo fazer outros tutoriais daqui pra frente.

Abraço.


#19

Olá, e para quem não tem os fontes? É possível fazer uso desta solução? Ou o único jeito é compilando nova versão mesmo?


#20

Creio que somente com estes fontes.