Subversion Repositories Integrator Subversion

Rev

Rev 170 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
 
5
import javax.faces.bean.ManagedBean;
6
import javax.faces.bean.RequestScoped;
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.primefaces.model.StreamedContent;
11
 
195 espaco 12
import br.com.ec.core.util.VerificadorUtil;
106 espaco 13
import br.com.ec.domain.model.NotaFiscal;
14
import br.com.ec.domain.model.Venda;
170 espaco 15
import br.com.ec.domain.model.tipos.nfe.TipoModeloNotaFiscal;
16
import br.com.ec.domain.model.tipos.nfe.TipoNotaFiscal;
106 espaco 17
import br.com.ec.domain.service.notafiscal.NotaFiscalService;
195 espaco 18
import br.com.ec.web.exception.VerificadorLancamentoException;
19
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
20
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
106 espaco 21
 
22
@Named
23
@ManagedBean
24
@RequestScoped
25
public class EmissorCupomBean implements Serializable {
26
 
27
//      private static final String SEM_FOTO_JPG = "sem_foto.jpg";
28
 
29
        private static final long serialVersionUID = 1L;
30
 
31
        private Boolean emitirCupom = false;
32
        private Boolean permitirEmissaoNotaFiscal = false;
33
        private Boolean atualizarPagina = false;
34
        private Venda vendaSelecionada;
35
        private StreamedContent cupomGerado;
36
 
37
        private NotaFiscalService notaFiscalService;
38
 
39
        @Inject
40
        public EmissorCupomBean(NotaFiscalService notaFiscalService) {
41
                this.notaFiscalService = notaFiscalService;
42
        }
43
 
44
        public Boolean getEmitirCupom() {
45
                return emitirCupom;
46
        }
47
        public void setEmitirCupom(Boolean emitirCupom) {
48
                this.emitirCupom = emitirCupom;
49
        }
50
 
51
        public Boolean getPermitirEmissaoNotaFiscal() {
52
                return permitirEmissaoNotaFiscal;
53
        }
54
        public void setPermitirEmissaoNotaFiscal(Boolean permitirEmissaoNotaFiscal) {
55
                this.permitirEmissaoNotaFiscal = permitirEmissaoNotaFiscal;
56
        }
57
 
58
        public Boolean getAtualizarPagina() {
59
                return atualizarPagina;
60
        }
61
        public void setAtualizarPagina(Boolean atualizarPagina) {
62
                this.atualizarPagina = atualizarPagina;
63
        }
64
 
65
        public Venda getVendaSelecionada() {
66
                return vendaSelecionada;
67
        }
68
        public void setVendaSelecionada(Venda vendaSelecionada) {
69
                this.vendaSelecionada = vendaSelecionada;
70
        }
71
        public Long getSequencialVendaSelecionada() {
72
                return VerificadorUtil.naoEstaNulo(getVendaSelecionada())? getVendaSelecionada().getSequencial() : null;
73
        }
74
 
75
        public StreamedContent getCupomGerado() {
76
                if (getEmitirCupom()) {
77
                        setCupomGerado(gerarCupom(getVendaSelecionada()));
78
                        return cupomGerado;
79
                }
80
                return cupomGerado;
81
        }
82
        public void setCupomGerado(StreamedContent cupomGerado) {
83
                this.cupomGerado = cupomGerado;
84
        }
85
 
86
        /*************************************/
87
 
88
        public StreamedContent gerarCupom(final Venda venda) {
89
                setEmitirCupom(false);
90
                return notaFiscalService.gerarCupom(venda);
91
        }
92
 
93
        public void gerarNfe(final Venda venda) {
94
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
95
                        @Override
96
                        public void execute() {
97
                                venda.setEmitirNotaFiscal(true);
98
                                setCupomGerado(gerarCupom(venda));
99
                        }
100
                });
101
        }
102
 
103
        public void prepararGerarCupom(Venda venda) {
104
                setEmitirCupom(true);
105
                venda.verificarSePermiteEmissaoNotaFiscal();
106
                verificarSeNotaFiscalFoiEmitida(venda);
107
                setVendaSelecionada(venda);
108
        }
109
 
110
        private void verificarSeNotaFiscalFoiEmitida(Venda venda) {
170 espaco 111
                if (notaFiscalService.verificarSeNotaFiscalJaVinculadaComVenda(venda, TipoModeloNotaFiscal.MODELO_NFCE_65.getValor(), TipoNotaFiscal.NFCE_SAIDA.getValor())) {
106 espaco 112
                        venda.setEmitirNotaFiscal(true);
113
                }
114
        }
115
 
116
        public StreamedContent downloadNotaFiscal(final NotaFiscal notaFiscal) {
117
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
118
                        @Override
119
                        public StreamedContent execute() {
120
                                return notaFiscalService.retornarCupomEmitidoEmPDF(notaFiscal);
121
                        }
122
                });
123
        }
124
 
125
}