Subversion Repositories Integrator Subversion

Rev

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

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