Subversion Repositories Integrator Subversion

Rev

Rev 495 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
495 blopes 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
 
5
import javax.persistence.Column;
6
import javax.persistence.EmbeddedId;
7
import javax.persistence.Entity;
8
import javax.persistence.JoinColumn;
9
import javax.persistence.ManyToOne;
10
import javax.persistence.MapsId;
11
import javax.persistence.Table;
12
import javax.persistence.Transient;
497 blopes 13
import javax.xml.bind.annotation.XmlElement;
495 blopes 14
 
15
import org.hibernate.annotations.ForeignKey;
16
 
497 blopes 17
import com.mchange.lang.DoubleUtils;
18
 
19
import br.com.ec.core.exception.NegocioException;
495 blopes 20
import br.com.ec.core.generic.identidade.Identidade;
497 blopes 21
import br.com.ec.core.util.VerificadorUtil;
22
import br.com.ec.domain.model.nfe.TipoNotaFiscalImpostoIcms;
23
import br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe;
24
import br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS;
495 blopes 25
 
26
@Entity
27
@Table(name="sec_imposto_icms", schema="sc_sec")
28
public class ImpostoIcms implements Serializable, Identidade {
29
 
30
        private static final long serialVersionUID = 1L;
31
 
32
        private ImpostoIcmsId impostoIcmsId;
33
        private CompraProduto compraProduto;
34
        private String tipoImposto;
35
 
497 blopes 36
        private String codigoOrigem; //orig
37
 
38
        private String codigoSituacaoTributaria; //CST
39
        private Double baseCalculo; //vBC
40
        private Double aliquotaFCP; //pFCP
41
        private Double valorFCP; //vfcp
42
        private Double aliquotaIcms; //picms
43
        private Double valorIcms; //icms
44
 
45
        private String codigoSituacaoOperacaoSimplesNacional; //CSOSN
46
        private String modalidadeDeterminacaoBC; //modBC
495 blopes 47
        private Double percentualReducaoBC; //predBC
497 blopes 48
        private String modalidadeDeterminacaoBCST; //modBCST
495 blopes 49
        private Double percentualMagemValorAdicionadoST; //pmvast
497 blopes 50
        private Double baseCalculoST; //vBCST
495 blopes 51
        private Double aliquotaIcmsST; //picmsst
52
        private Double valorIcmsST; //icmsst
497 blopes 53
 
54
        private Double baseCalculoFCP; //vBCFCPST
55
        private Double aliquotaFCPST; //pFCPST
56
        private Double valorFCPST; //vFCPST
57
        private Double aliquotaCreditoSimplesNacional; //pCredSN
58
        private Double valorCreditoIcmsSimplesNacional; //vCredICMSSN
59
 
60
        private String xmlImposto;
495 blopes 61
 
62
        public ImpostoIcms() {
63
                this.impostoIcmsId = new ImpostoIcmsId();
64
        }
65
 
66
        public ImpostoIcms(ImpostoIcmsId impostoIcmsId) {
67
                this.impostoIcmsId = impostoIcmsId;
68
        }
69
 
70
        public ImpostoIcms(CompraProduto compraProduto, String tipoImposto) {
71
                impostoIcmsId = new ImpostoIcmsId();
72
                setCompraProduto(compraProduto);
73
                setTipoImposto(tipoImposto);
74
        }
75
 
76
        @Override
77
        @Transient
78
        public Object getId() {
79
                return getImpostoIcmsId();
80
        }
81
        @Override
82
        public void setId(Object id) {
83
                this.impostoIcmsId = (ImpostoIcmsId) id;
84
        }
85
 
86
        @EmbeddedId
87
        public ImpostoIcmsId getImpostoIcmsId() {
88
                return impostoIcmsId;
89
        }
90
        public void setImpostoIcmsId(ImpostoIcmsId impostoIcmsId) {
91
                this.impostoIcmsId = impostoIcmsId;
92
        }
93
 
94
        @ManyToOne
95
        @ForeignKey(name="fk_impostoicms_compraprodutoimposto")
96
        @MapsId(value="sequencialCompraProduto")
97
        @JoinColumn(name = "seq_compraproduto", nullable = false)
98
        public CompraProduto getCompraProduto() {
99
                return compraProduto;
100
        }
101
        public void setCompraProduto(CompraProduto compraProduto) {
102
                this.compraProduto = compraProduto;
103
        }
104
 
105
        @Column(name="tip_imposto", nullable = false, insertable = false, updatable = false)
106
        public String getTipoImposto() {
107
                return tipoImposto;
108
        }
109
        public void setTipoImposto(String tipoImposto) {
110
                this.tipoImposto = tipoImposto;
111
        }
112
 
113
        @Column(name="cod_origem")
497 blopes 114
        public String getCodigoOrigem() {
495 blopes 115
                return codigoOrigem;
116
        }
497 blopes 117
        public void setCodigoOrigem(String codigoOrigem) {
495 blopes 118
                this.codigoOrigem = codigoOrigem;
119
        }
120
 
497 blopes 121
        @Column(name="cod_st")
122
        public String getCodigoSituacaoTributaria() {
123
                return codigoSituacaoTributaria;
124
        }
125
        public void setCodigoSituacaoTributaria(String codigoSituacaoTributaria) {
126
                this.codigoSituacaoTributaria = codigoSituacaoTributaria;
127
        }
128
 
129
        @Column(name="val_bc")
130
        public Double getBaseCalculo() {
131
                return baseCalculo;
132
        }
133
        public void setBaseCalculo(Double baseCalculo) {
134
                this.baseCalculo = baseCalculo;
135
        }
136
 
137
        @Column(name="val_pfcp")
138
        public Double getAliquotaFCP() {
139
                return aliquotaFCP;
140
        }
141
        public void setAliquotaFCP(Double aliquotaFCP) {
142
                this.aliquotaFCP = aliquotaFCP;
143
        }
144
 
145
        @Column(name="val_vfcp")
146
        public Double getValorFCP() {
147
                return valorFCP;
148
        }
149
        public void setValorFCP(Double valorFCP) {
150
                this.valorFCP = valorFCP;
151
        }
152
 
153
        @Column(name="val_picms")
154
        public Double getAliquotaIcms() {
155
                return aliquotaIcms;
156
        }
157
        public void setAliquotaIcms(Double aliquotaIcms) {
158
                this.aliquotaIcms = aliquotaIcms;
159
        }
160
 
161
        @Column(name="val_icms")
162
        public Double getValorIcms() {
163
                return valorIcms;
164
        }
165
        public void setValorIcms(Double valorIcms) {
166
                this.valorIcms = valorIcms;
167
        }
168
 
169
        @Column(name="cod_sosn")
170
        public String getCodigoSituacaoOperacaoSimplesNacional() {
171
                return codigoSituacaoOperacaoSimplesNacional;
172
        }
173
        public void setCodigoSituacaoOperacaoSimplesNacional(String codigoSituacaoOperacaoSimplesNacional) {
174
                this.codigoSituacaoOperacaoSimplesNacional = codigoSituacaoOperacaoSimplesNacional;
175
        }
176
 
495 blopes 177
        @Column(name="cod_modbc")
497 blopes 178
        public String getModalidadeDeterminacaoBC() {
495 blopes 179
                return modalidadeDeterminacaoBC;
180
        }
497 blopes 181
        public void setModalidadeDeterminacaoBC(String modalidadeDeterminacaoBC) {
495 blopes 182
                this.modalidadeDeterminacaoBC = modalidadeDeterminacaoBC;
183
        }
184
 
185
        @Column(name="val_predbc")
186
        public Double getPercentualReducaoBC() {
187
                return percentualReducaoBC;
188
        }
189
        public void setPercentualReducaoBC(Double percentualReducaoBC) {
190
                this.percentualReducaoBC = percentualReducaoBC;
191
        }
192
 
193
        @Column(name="cod_modbcst")
497 blopes 194
        public String getModalidadeDeterminacaoBCST() {
495 blopes 195
                return modalidadeDeterminacaoBCST;
196
        }
497 blopes 197
        public void setModalidadeDeterminacaoBCST(String modalidadeDeterminacaoBCST) {
495 blopes 198
                this.modalidadeDeterminacaoBCST = modalidadeDeterminacaoBCST;
199
        }
200
 
201
        @Column(name="val_pmvast")
202
        public Double getPercentualMagemValorAdicionadoST() {
203
                return percentualMagemValorAdicionadoST;
204
        }
205
        public void setPercentualMagemValorAdicionadoST(Double percentualMagemValorAdicionadoST) {
206
                this.percentualMagemValorAdicionadoST = percentualMagemValorAdicionadoST;
207
        }
208
 
209
        @Column(name="val_bcst")
210
        public Double getBaseCalculoST() {
211
                return baseCalculoST;
212
        }
213
        public void setBaseCalculoST(Double baseCalculoST) {
214
                this.baseCalculoST = baseCalculoST;
215
        }
216
 
217
        @Column(name="val_picmsst")
218
        public Double getAliquotaIcmsST() {
219
                return aliquotaIcmsST;
220
        }
221
        public void setAliquotaIcmsST(Double aliquotaIcmsST) {
222
                this.aliquotaIcmsST = aliquotaIcmsST;
223
        }
224
 
225
        @Column(name="val_icmsst")
226
        public Double getValorIcmsST() {
227
                return valorIcmsST;
228
        }
229
        public void setValorIcmsST(Double valorIcmsST) {
230
                this.valorIcmsST = valorIcmsST;
231
        }
232
 
497 blopes 233
        @Column(name="val_bcfcpst")
234
        public Double getBaseCalculoFCP() {
235
                return baseCalculoFCP;
236
        }
237
        public void setBaseCalculoFCP(Double baseCalculoFCP) {
238
                this.baseCalculoFCP = baseCalculoFCP;
239
        }
240
 
241
        @Column(name="val_pfcpst")
242
        public Double getAliquotaFCPST() {
243
                return aliquotaFCPST;
244
        }
245
        public void setAliquotaFCPST(Double aliquotaFCPST) {
246
                this.aliquotaFCPST = aliquotaFCPST;
247
        }
248
 
249
        @Column(name="val_fcpst")
250
        public Double getValorFCPST() {
251
                return valorFCPST;
252
        }
253
        public void setValorFCPST(Double valorFCPST) {
254
                this.valorFCPST = valorFCPST;
255
        }
256
 
257
        @Column(name="val_pcredsn")
258
        public Double getAliquotaCreditoSimplesNacional() {
259
                return aliquotaCreditoSimplesNacional;
260
        }
261
        public void setAliquotaCreditoSimplesNacional(Double aliquotaCreditoSimplesNacional) {
262
                this.aliquotaCreditoSimplesNacional = aliquotaCreditoSimplesNacional;
263
        }
264
 
265
        @Column(name="val_credsn")
266
        public Double getValorCreditoIcmsSimplesNacional() {
267
                return valorCreditoIcmsSimplesNacional;
268
        }
269
        public void setValorCreditoIcmsSimplesNacional(Double valorCreditoIcmsSimplesNacional) {
270
                this.valorCreditoIcmsSimplesNacional = valorCreditoIcmsSimplesNacional;
271
        }
272
 
273
        @Column(name="xml_imposto")
274
        public String getXmlImposto() {
275
                return xmlImposto;
276
        }
277
        public void setXmlImposto(String xmlImposto) {
278
                this.xmlImposto = xmlImposto;
279
        }
280
 
281
        // TODO: ALTERAR OS VALORES, BASEANDO-SE NA QUANTIDADE INFORMADA
282
        public void preencherDados(ICMS icms, Integer quantidade) {
283
                if (VerificadorUtil.naoEstaNulo(icms.getICMS00())) {
284
                        this.setTipoImposto(TipoNotaFiscalImpostoIcms.ICMS00_CST00.getValor());
285
                        this.setCodigoOrigem(icms.getICMS00().getOrig());
286
                        this.setModalidadeDeterminacaoBC(icms.getICMS00().getModBC());
287
                        this.setCodigoSituacaoTributaria(icms.getICMS00().getCST());
288
                        if (VerificadorUtil.naoEstaNulo(icms.getICMS00().getPFCP())) {
289
                                this.setAliquotaFCP(new Double(icms.getICMS00().getPFCP()));
290
                                this.setValorFCP(new Double(icms.getICMS00().getVFCP()));
291
                        }
292
                        this.setAliquotaIcms(new Double(icms.getICMS00().getPICMS()));
293
                        this.setBaseCalculo(new Double(icms.getICMS00().getVBC()));
294
                        this.setValorIcms(new Double(icms.getICMS00().getVICMS()));
295
                } else if (VerificadorUtil.naoEstaNulo(icms.getICMSSN101())) {
296
                        this.setTipoImposto(TipoNotaFiscalImpostoIcms.ICMSSN101_CSOSN101.getValor());
297
                        this.setCodigoSituacaoOperacaoSimplesNacional(icms.getICMSSN101().getCSOSN());
298
                        this.setCodigoOrigem(icms.getICMSSN101().getOrig());
299
                        this.setAliquotaCreditoSimplesNacional(new Double(icms.getICMSSN101().getPCredSN()));
300
                        this.setValorCreditoIcmsSimplesNacional(new Double(icms.getICMSSN101().getVCredICMSSN()));
301
                } else if (VerificadorUtil.naoEstaNulo(icms.getICMSSN201())) {
302
                        this.setTipoImposto(TipoNotaFiscalImpostoIcms.ICMSSN201_CSOSN201.getValor());
303
                        icms.getICMSSN201().getCSOSN();
304
                        icms.getICMSSN201().getModBCST();
305
                        icms.getICMSSN201().getOrig();
306
                        icms.getICMSSN201().getPCredSN();
307
                        icms.getICMSSN201().getPFCPST();
308
                        icms.getICMSSN201().getPICMSST();
309
                        icms.getICMSSN201().getPMVAST();
310
                        icms.getICMSSN201().getPRedBCST();
311
                        icms.getICMSSN201().getVBCFCPST();
312
                        icms.getICMSSN201().getVBCST();
313
                        icms.getICMSSN201().getVCredICMSSN();
314
                        icms.getICMSSN201().getVFCPST();
315
                        icms.getICMSSN201().getVICMSST();
316
                } else if (VerificadorUtil.naoEstaNulo(icms.getICMSSN500())) {
317
 
318
                } else if (VerificadorUtil.naoEstaNulo(icms.getICMSSN900())) {
319
 
320
                } else {
321
                        throw new NegocioException("TIPO DE ICMS NÃO IMPLEMENTADO: " + icms.toString());
322
                }
323
        }
324
 
495 blopes 325
}