Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
620 blopes 1
package br.com.ec.domain.dto;
2
 
623 blopes 3
import java.util.Date;
620 blopes 4
import java.util.List;
5
 
625 blopes 6
import javax.persistence.Transient;
7
 
624 blopes 8
import br.com.ec.core.util.VerificadorUtil;
629 blopes 9
import br.com.ec.domain.model.NpsPosVenda;
624 blopes 10
 
620 blopes 11
public class PosVendaDTO {
12
 
13
        // INICIAR PÓS-VENDA APÓS A REALIZAÇÃO DE UMA VENDA COM O CONTATO DO CLIENTE
621 blopes 14
        // PARA FINALIZAR, AO MENOS, É PRECISO TER AS DUAS ATIVAÇÕES INICIAIS (AGRADECIMENTO+NPS ATENDIMENTO E NPS DO PRODUTO
623 blopes 15
 
621 blopes 16
        private Long sequencial;
620 blopes 17
        private VendaDTO vendaDTO;
623 blopes 18
        private ClienteDTO clienteDTO;
620 blopes 19
        private Date dataCadastro;
625 blopes 20
        private Date dataInicio;
21
        private Date dataFinalizacao;
627 blopes 22
        private String tipoFinalizacao; // A - ATENDIMENTO ENCERRADO // V - NOVA VENDA
623 blopes 23
        private String observacao;
625 blopes 24
        private String scriptAtivacaoAgradecimento;
620 blopes 25
 
630 blopes 26
        private NpsPosVendaDTO npsPosVendaAgradecimento;
629 blopes 27
        private NpsPosVendaDTO npsPosVendaProduto;
28
 
620 blopes 29
        private List<PosVendaAtivacaoDTO> listaAtivacoes;
30
 
629 blopes 31
        public PosVendaDTO() {}
32
 
33
        public PosVendaDTO(Long sequencial) {
34
                this.sequencial = sequencial;
620 blopes 35
        }
36
 
631 blopes 37
        public static String CONSULTA_DTO_SIMPLES = "e.sequencial, "
38
                        + " (SELECT vd.sequencial FROM Venda vd WHERE vd.sequencial = e.venda.sequencial), "
39
//                      + "e.venda.sequencial, e.venda.dataVenda, "
40
                        + "e.cliente.sequencial, e.cliente.nome, e.cliente.cpfCnpj, e.cliente.dataNascimento,"
627 blopes 41
                        + "e.cliente.contato, e.cliente.telefone, e.dataCadastro, e.dataInicio, e.dataFinalizacao, e.tipoFinalizacao, e.observacao";
631 blopes 42
        public PosVendaDTO(Long sequencial, Long sequencialVenda, Long sequencialCliente, String nomeCliente, String cpfCnpjCliente,
43
                        Date dataNascimentoCliente, String contatoCliente, String telefoneCliente, Date dataCadastro, Date dataInicio, Date dataFinalizacao,
44
                        String tipoFinalizacao, String observacao) {
623 blopes 45
                super();
46
                this.sequencial = sequencial;
47
                VendaDTO vendaDTO = new VendaDTO(sequencialVenda);
48
                this.vendaDTO = vendaDTO;
631 blopes 49
                this.clienteDTO = new ClienteDTO(sequencialCliente, nomeCliente, cpfCnpjCliente, dataNascimentoCliente, contatoCliente, telefoneCliente);
623 blopes 50
                this.dataCadastro = dataCadastro;
627 blopes 51
                this.dataInicio = dataInicio;
623 blopes 52
                this.dataFinalizacao = dataFinalizacao;
53
                this.tipoFinalizacao = tipoFinalizacao;
627 blopes 54
                this.observacao = observacao;
623 blopes 55
        }
56
 
621 blopes 57
        public Long getSequencial() {
58
                return sequencial;
59
        }
60
        public void setSequencial(Long sequencial) {
61
                this.sequencial = sequencial;
62
        }
63
 
620 blopes 64
        public VendaDTO getVendaDTO() {
65
                return vendaDTO;
66
        }
67
        public void setVendaDTO(VendaDTO vendaDTO) {
68
                this.vendaDTO = vendaDTO;
69
        }
70
 
623 blopes 71
        public ClienteDTO getClienteDTO() {
72
                return clienteDTO;
73
        }
74
        public void setClienteDTO(ClienteDTO clienteDTO) {
75
                this.clienteDTO = clienteDTO;
76
        }
77
 
620 blopes 78
        public Date getDataCadastro() {
79
                return dataCadastro;
80
        }
81
        public void setDataCadastro(Date dataCadastro) {
82
                this.dataCadastro = dataCadastro;
83
        }
84
 
625 blopes 85
        public Date getDataInicio() {
86
                return dataInicio;
87
        }
88
        public void setDataInicio(Date dataInicio) {
89
                this.dataInicio = dataInicio;
90
        }
91
 
623 blopes 92
        public Date getDataFinalizacao() {
93
                return dataFinalizacao;
94
        }
95
        public void setDataFinalizacao(Date dataFinalizacao) {
96
                this.dataFinalizacao = dataFinalizacao;
97
        }
98
 
99
        public String getObservacao() {
100
                return observacao;
101
        }
102
        public void setObservacao(String observacao) {
103
                this.observacao = observacao;
104
        }
105
 
106
        public String getTipoFinalizacao() {
107
                return tipoFinalizacao;
108
        }
109
        public void setTipoFinalizacao(String tipoFinalizacao) {
110
                this.tipoFinalizacao = tipoFinalizacao;
111
        }
112
 
630 blopes 113
        public NpsPosVendaDTO getNpsPosVendaAgradecimento() {
114
                return npsPosVendaAgradecimento;
629 blopes 115
        }
630 blopes 116
        public void setNpsPosVendaAgradecimento(NpsPosVendaDTO npsPosVendaAgradecimento) {
117
                this.npsPosVendaAgradecimento = npsPosVendaAgradecimento;
629 blopes 118
        }
119
 
120
        public NpsPosVendaDTO getNpsPosVendaProduto() {
121
                return npsPosVendaProduto;
122
        }
123
        public void setNpsPosVendaProduto(NpsPosVendaDTO npsPosVendaProduto) {
124
                this.npsPosVendaProduto = npsPosVendaProduto;
125
        }
126
 
620 blopes 127
        public List<PosVendaAtivacaoDTO> getListaAtivacoes() {
128
                return listaAtivacoes;
129
        }
130
        public void setListaAtivacoes(List<PosVendaAtivacaoDTO> listaAtivacoes) {
131
                this.listaAtivacoes = listaAtivacoes;
132
        }
133
 
625 blopes 134
        public String getScriptAtivacaoAgradecimento() {
624 blopes 135
                String scriptAtivacaoAgradecimento = "Olá, [Nome]! 👋"
621 blopes 136
                                + "\nAgradecemos por comprar na Espaço Case! 💙"
624 blopes 137
                                + "\nEsperamos que você curta muito o seu novo produto."
625 blopes 138
                                + "\nSe precisar de ajuda com algo ou quiser dicas de uso, estamos por aqui! 😉"
139
                                + "\n\n📲 Siga a gente no Instagram para novidades e promoções: @espacocaseoficial"
140
                                + "\n\nPara melhorar nosso atendimento, que tal responder rapidinho?"
624 blopes 141
                                + "\nDe 1 a 5, qual a probabilidade de você recomendar nosso atendimento para um amigo?"
638 blopes 142
                                + "\n*Avalie no link a baixo:*"
624 blopes 143
                                + "\n👉 [Link]"
144
                                + "";
625 blopes 145
                scriptAtivacaoAgradecimento = scriptAtivacaoAgradecimento.replace("[Link]", linkNpsAtendimento());
624 blopes 146
                if (VerificadorUtil.naoEstaNulo(getClienteDTO())) {
147
                        scriptAtivacaoAgradecimento = scriptAtivacaoAgradecimento.replace("[Nome]", getClienteDTO().getObterPrimeiroNome());
148
                }
149
                return scriptAtivacaoAgradecimento;
621 blopes 150
        }
625 blopes 151
        public void setScriptAtivacaoAgradecimento(String scriptAtivacaoAgradecimento) {
152
                this.scriptAtivacaoAgradecimento = scriptAtivacaoAgradecimento;
153
        }
621 blopes 154
 
625 blopes 155
        public String linkNpsAtendimento() {
156
                return "https://espacocase.net/novo/sistema/comercial/nps_atendimento.xhtml?sq=" + getSequencial();
157
        }
158
 
636 blopes 159
        public String descricaoDaSituacaoAgradecimento() {
160
                return VerificadorUtil.estaNulo(getDataInicio())? "PENDENTE" :
161
                        VerificadorUtil.naoEstaNulo(getNpsPosVendaAgradecimento())?
162
                                        VerificadorUtil.naoEstaNulo(getNpsPosVendaAgradecimento().getDataFinalizacao())? "REALIZADO" : "EM ANDAMENTO" : "EM ANDAMENTO";
163
        }
164
 
630 blopes 165
        public String corDaSituacaoAgradecimento() {
636 blopes 166
                return VerificadorUtil.estaNulo(getDataInicio())? "danger" :
167
                        VerificadorUtil.naoEstaNulo(getNpsPosVendaAgradecimento())?
168
                                        VerificadorUtil.naoEstaNulo(getNpsPosVendaAgradecimento().getDataFinalizacao())? "success" : "warning" : "warning";
625 blopes 169
        }
170
 
629 blopes 171
        public String notaNpsPosVendaAtendimento() {
630 blopes 172
                return VerificadorUtil.naoEstaNulo(getNpsPosVendaAgradecimento())? "" + getNpsPosVendaAgradecimento().getNota() : "SEM NOTA!";
629 blopes 173
        }
174
 
631 blopes 175
        public Long getSequencialDaVenda() {
176
                return VerificadorUtil.naoEstaNulo(getVendaDTO())? VerificadorUtil.naoEstaNulo(getVendaDTO().getSequencial())? getVendaDTO().getSequencial() : null : null;
177
        }
178
 
620 blopes 179
}