/* Autor: Guilherme, Data: 03/10/2017 */
use central;

/* Criar tabela de pedido de compra */
create table pedidos_compra (
  id_pedido_compra integer unsigned not null auto_increment,
  data_em_construcao datetime not null comment 'Data inicio de construcao',
  cod_fornecedor integer unsigned not null comment 'Sem constraint, alguns clientes cod_fornecedor ta double',
  nome_fornecedor varchar(100) not null comment 'Nome do fornecedor',
  status tinyint(1) not null default 1 comment '1=em_construcao 2=construido',
  data_construido datetime comment 'Data em passou de construcao para construido',
  descricao varchar(45) comment 'Descricao para o pedido',
  observacoes varchar(100) comment 'Observacoes do pedido',
  cancelado boolean not null default false comment 'Indica se o pedido foi cancelado',
  motivo_cancelamento varchar(100) comment 'Motivo do cancelamento do pedido',
  data_cancelamento datetime comment 'Data do cancelamento do pedido',
  rel_sug_data_inicial date comment 'data inicial relatorio sugestao de compras',
  rel_sug_data_final date comment 'data final relatorio sugestao de compras',
  n_loja integer comment 'Loja do pedido',
  constraint pk_id_pedido_compra primary key(id_pedido_compra)
) comment 'inicialmente para rcweb. rel_sug = sugestao de compras' ENGINE=InnoDB;
/* */

 /* Criar tabela dos itens do pedido de compra */
create table produtos_pedidos_compra (
  id_produto_pedido_compra integer unsigned not null auto_increment,
  id_pedido_compra integer unsigned not null,
  codigo_interno integer unsigned not null,
  codigo_de_barras varchar(14) not null comment 'codigo de barras do item',
  descricao varchar(50) not null comment 'Descricao do item',
  embalagem varchar(5) not null comment 'Unidade compra do produto KG, UN etc',
  qtd_por_embalagem decimal(10, 3) not null comment 'Quantidade por unidade_de_compra',
  qtd_desejada decimal(10, 3) not null comment 'Qtd desejada compra.Refere-se a embalagem/qtd_por_embalagem',
  total_unidades_desejadas decimal(10, 3) not null comment 'qtd_desejada X qtd_por_embalagem',
  custo_por_embalagem decimal(10, 2) not null comment 'Custo por caixa.Refere-se a embalagem/qtd_por_embalagem',
  custo_por_unidade decimal(10, 2) not null comment 'Custo de cada unidade.',
  n_loja integer not null comment 'Loja para quem e o item',
  observacoes varchar(100) comment 'observacoes sobre o item',
  ult_ent_embalagem varchar(5) comment 'reference a ultima entrada',
  ult_ent_qtd_por_embalagem decimal(10, 3) comment 'referente a ultima entrada',
  ult_ent_qtd_desejada decimal(10, 3) comment 'referente a ultima entrada',
  ult_ent_total_unidades_desejada decimal(10, 3) comment 'referente a ultima entrada',
  ult_ent_custo_por_embalagem decimal(10, 2) comment 'referente a ultima entrada, custo caixa',
  ult_ent_custo_por_unidade decimal(10, 2) comment 'referente a ultima entrada, custo de cada unidade',
  ult_ent_nnota integer comment 'referente a ultima entrada',
  ult_ent_ncompra integer comment 'referente a ultima entrada',
  ult_ent_data_entrada datetime comment 'referente a ultima entrada',
  rel_sug_sugestao_de_compra decimal(10, 3) comment 'sugestao de compra do relatorio',
  constraint pk_id_produto_pedido_compra primary key(id_produto_pedido_compra),
  constraint fk_prod_ped_comp_ped_comp foreign key(id_pedido_compra) references pedidos_compra(id_pedido_compra)
) comment 'ult_ent = ultima entrada rel_sug = sugestao de compras' ENGINE=InnoDB;
/* */

/* Criar a tabela de bonificações do pedido */
create table bonificacoes_pedidos_compra (
  id_bonificacao_pedido_compra integer unsigned not null auto_increment,
  id_pedido_compra integer unsigned not null,
  constraint pk_id_bonificacao_pedido_compra primary key(id_bonificacao_pedido_compra),
  constraint fk_bon_ped_comp_ped_comp foreign key(id_pedido_compra) references pedidos_compra(id_pedido_compra)
) comment 'rcweb. bonificacoes para um pedido de compra' ENGINE=InnoDB;
/* */

/* Criar a tabela de produtos da bonificação */
create table produtos_bonificacoes_pedidos_compra (
  id_produto_bonificacao_pedido_compra integer unsigned not null auto_increment,
  id_bonificacao_pedido_compra integer unsigned not null comment 'bonificacao',
  codigo_interno integer unsigned not null,
  codigo_de_barras varchar(14) not null comment 'codigo de barras do item',
  descricao varchar(50) not null comment 'Descricao do item',
  embalagem varchar(5) not null comment 'Unidade compra do produto KG, UN etc',
  qtd_por_embalagem decimal(10, 3) not null comment 'Quantidade por unidade_de_compra',
  qtd decimal(10, 3) not null comment 'Qtd desejada compra.Refere-se a embalagem/qtd_por_embalagem',
  total_unidades decimal(10, 3) not null comment 'qtd_desejada X qtd_por_embalagem',
  custo_por_embalagem decimal(10, 2) not null comment 'Custo por caixa.Refere-se a embalagem/qtd_por_embalagem',
  custo_por_unidade decimal(10, 2) not null comment 'Custo de cada unidade.',
  n_loja integer not null comment 'Loja para quem e o item',
  observacoes varchar(100) comment 'observacoes sobre o item',
  constraint pk_prod_bon_ped_comp primary key(id_produto_bonificacao_pedido_compra),
  constraint fk_pro_bon_pe_com_pe_com foreign key(id_bonificacao_pedido_compra) references bonificacoes_pedidos_compra(id_bonificacao_pedido_compra)
) comment 'inicialmente para rcweb. produtos das bonificacoes' ENGINE=InnoDB;
/* */

/* Criar tabelas de vendedores */
create table vendedores (
	id_vendedor integer unsigned not null auto_increment,
    cod_fornecedor integer not null comment 'Sem constraint, alguns clientes cod_fornecedor ta double',
    nome varchar(100) not null,
    email varchar(100),
    telefone_1 varchar(13),
    telefone_2 varchar(13),
    observacoes varchar(200),
    removido boolean not null default false comment 'indica se ele foi apagado',
    constraint pk_vendedores primary key(id_vendedor)
) comment 'inicialmente para rcweb. vendedores dos fornece' ENGINE=InnoDB;

create table vendedores_produtos (
	id_vendedor_produto integer unsigned not null auto_increment,
    id_vendedor integer unsigned not null,
    codigo_interno integer unsigned not null comment 'codigo interno produto',
    codigo_barras varchar(14) not null,
    descricao varchar(50) not null comment 'desc do produto',
    constraint pk_ven_prod primary key(id_vendedor_produto),
    constraint fk_ven_prod_ven foreign key(id_vendedor) references vendedores(id_vendedor)
) comment 'inicialmente para rcweb. prods associados';

create table vendedores_pedidos_compra (
	id_vendedor_pedido_compra integer unsigned not null auto_increment,
    id_vendedor integer unsigned not null,
    id_pedido_compra integer unsigned not null,
    constraint pk_ven_pe_com primary key(id_vendedor_pedido_compra),
    constraint fk_ven_pe_com_ven foreign key(id_vendedor) references vendedores(id_vendedor),
    constraint fk_ven_pe_com_pe_com foreign key(id_pedido_compra) references pedidos_compra(id_pedido_compra)
) comment 'inicialmente para rcweb. venddres nos pedds de comp' ENGINE=Innodb;