Last active
June 9, 2017 03:33
-
-
Save BrunoDSouza/7160c358bfb3733f8b6812d8a28d469d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE produto( | |
IDPRODUTO INT AUTO_INCREMENT, | |
COD_TIPO INT, | |
COD_FORNECEDOR INT, | |
DESCRICAO VARCHAR(100) NOT NULL, | |
MEDIDA VARCHAR(20) NOT NULL, | |
VL_COMPRA REAL NOT NULL, | |
VL_VENDA REAL, | |
CONSTRAINT CK_VLVENDA CHECK(VL_VENDA > VL_COMPRA), | |
PRIMARY KEY(IDPRODUTO), | |
FOREIGN KEY(COD_TIPO) | |
REFERENCES tipo_produto(ID_TIPO), | |
FOREIGN KEY(COD_FORNECEDOR) | |
REFERENCES fornecedor(IDFORNECEDOR) | |
); | |
CREATE TABLE movimentacoes( | |
IDMOVIMENTACAO INT AUTO_INCREMENT, | |
COD_TIPOMOVIMENTO INT NOT NULL, | |
COD_PRODUTO INT, | |
COD_SETOR INT , | |
DT_MOVIMENTO TIMESTAMP DEFAULT NOW(), | |
QTD_ITENS INT NOT NULL, | |
VL_UNITARIO REAL NOT NULL, | |
USUARIO VARCHAR(255) NOT NULL, | |
CONSTRAINT CK_QTD CHECK(QTD_ITENS > 0), | |
PRIMARY KEY(IDMOVIMENTACAO), | |
FOREIGN KEY(COD_PRODUTO) | |
REFERENCES produto(IDPRODUTO) | |
ON DELETE NO ACTION | |
ON UPDATE NO ACTION, | |
FOREIGN KEY(COD_SETOR) | |
REFERENCES setor(IDSETOR) | |
ON DELETE NO ACTION | |
ON UPDATE NO ACTION, | |
FOREIGN KEY(COD_TIPOMOVIMENTO) | |
REFERENCES tipo_movimento(IDTIPOMOVIMENTO) | |
ON DELETE NO ACTION | |
ON UPDATE NO ACTION | |
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Entity | |
@Table(name="movimentacoes") | |
public class Movimentacao { | |
@Id | |
@GeneratedValue(strategy = GenerationType.IDENTITY) | |
@Column(name="idmovimentacao") | |
private Long codigo; | |
@NotNull | |
@Enumerated(EnumType.ORDINAL) | |
@Column(name="cod_tipomovimento") | |
private TipoMovimentacao tipoMovimentacao; | |
@NotNull | |
@Valid | |
@JoinColumn(name="cod_produto", nullable = false) | |
@ManyToOne | |
private Produto produto; | |
@NotNull | |
@Valid | |
@JoinColumn(name="cod_setor") | |
@ManyToOne | |
private Setor setor; | |
@NotNull | |
@Column(name="qtd_itens") | |
private Long qtd_produto; | |
@NotNull | |
@DateTimeFormat(pattern = "dd-MM-yyyy") | |
@Column(name="dt_movimento") | |
private Date dtMovimentacao = Calendar.getInstance().getTime(); | |
@NotBlank | |
@Column(name="usuario") | |
private String usuario = "Administrator"; | |
@Column(name="vl_unitario") | |
@NotNull | |
private Double vl_unitario; | |
/*Getters and Setters*/ | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Entity | |
@Table(name="produto") | |
@ProductConstraint | |
public class Produto { | |
/** @Membros Privados **/ | |
@Id | |
@Column(name="idproduto", nullable = false) | |
@GeneratedValue(strategy = GenerationType.IDENTITY) | |
private Long codigo; | |
@NotNull | |
@JoinColumn(name="cod_tipo", nullable = false) | |
@ManyToOne | |
private TipoProduto tipoproduto; | |
@NotNull | |
@ManyToOne | |
@JoinColumn(name="cod_fornecedor", nullable = false) | |
private Fornecedor fornecedor; | |
@NotBlank | |
@Column(name="descricao") | |
@Size(message="O tamanho do nome deve possuir no máximo 100 caracteres!", max = 100) | |
private String nome; | |
@Column(name="medida") | |
@NotNull | |
@Enumerated(EnumType.ORDINAL) | |
private TipoMedida medida; | |
@Column(name="vl_compra") | |
@NotNull | |
@NumberFormat(pattern = "#,##0.00") | |
@Min(message="O Valor de compra deve ser maior que R$0,00!", value = 1) | |
private Double vl_compra; | |
@Column(name="vl_venda") | |
@NotNull | |
@NumberFormat(pattern = "#,##0.00") | |
@Min(message="O Valor de venda deve ser maior que R$0,00", value = 1) | |
private Double vl_venda; | |
/*Propriedades não mapeadas*/ | |
@Transient | |
private Long qtd_estoque; | |
@Transient | |
private Long estoque_min; | |
@OneToMany(mappedBy="produto") | |
private List<Movimentacao> movimentacoes = new ArrayList<Movimentacao>(); | |
/** @Getter e Setters **/ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment