create database sw;
use sw;
/*alter TABLE PRODUCTOS change clasificacion clasificacion varchar(40) not null*/


CREATE TABLE PROVEEDOR(
RFC CHAR(6) PRIMARY KEY NOT NULL,
nombre VARCHAR(60) NOT NULL,
direccion VARCHAR(150) NOT NULL,
representante varchar (60),
telefono CHAR(12),
email varchar(30)
)engine=innodb;


CREATE TABLE PRODUCTOS(
CLAVE_PRODUCTO char (7) PRIMARY KEY NOT NULL,
CLASIFICACION VARCHAR (40) NOT NULL,
DESCRIPCION VARCHAR (150) NOT NULL,
PRECIO_ALMACEN NUMERIC (6,2) NOT NULL,
EXISTENCIA INT NOT NULL
)engine=innodb;

/*  REVISAR  LA INTEGRIDAD  REFERENCIAL!!!!!!!*/

CREATE TABLE ABASTECE_ALMACEN(
ID Integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
RFC CHAR (6) NOT NULL,
CLAVE_PRODUCTO CHAR (7) NOT NULL,
CANTIDAD INT,
PRECIO_PROVEEDOR NUMERIC(6,2),

FECHA DATE,
FOREIGN KEY (rfc) REFERENCES PROVEEDOR(rfc)
	  ON UPDATE CASCADE ON DELETE no action,

FOREIGN KEY (clave_producto) REFERENCES PRODUCTOS(clave_producto)
	  ON UPDATE CASCADE ON DELETE no action
)engine=innodb;



CREATE TABLE CLIENTES
(
CLAVE_CLIENTE CHAR (6) PRIMARY KEY NOT NULL,
NOMBRE varchar (60) not null,
CURP CHAR (18) NOT NULL,
DIRECCION VARCHAR (150) NOT NULL,
SALDO NUMERIC (6,2) NOT NULL,
LIMITE_CREDITO NUMERIC (6,2) NOT NULL,
TELEFONO CHAR (12),
email varchar (30)
)engine=innodb;




create table pedido (
NUM_PEDIDO INTEGER Auto_increment primary key not null,
cliente char (6) not null,
importe numeric (7,2) not null,
estado boolean,

FOREIGN KEY (cliente) REFERENCES CLIENTES(clave_cliente)
	  ON UPDATE CASCADE ON DELETE CASCADE
)engine=innodb;



create table TRABAJADOR(
RFC CHAR(6) PRIMARY KEY NOT NULL,
NOMBRE VARCHAR(50) NOT NULL,
DIRECCION VARCHAR (100) NOT NULL,
TELEFONO CHAR (12)
)engine=innodb;


CREATE TABLE ORDEN_COMPRAS(
id INTEGER Auto_increment primary key not null,
cliente char(6) not null,
producto char (7) not null,
descripcion varchar (60) not null,
cantidad int not null,
p_salida numeric (6,2) not null,
fecha date not null,
num_pedido Integer not null,
empleado char(10) ,
FOREIGN KEY (producto) REFERENCES PRODUCTOS(clave_producto)
	  ON UPDATE CASCADE ON DELETE no action,

FOREIGN KEY (cliente) REFERENCES CLIENTES(clave_cliente)
	  ON UPDATE CASCADE ON DELETE no action,

FOREIGN KEY (NUM_pedido) REFERENCES PEDIDO(num_pedido)
	  ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY (empleado) REFERENCES TRABAJADOR(RFC)
	  ON UPDATE CASCADE ON DELETE CASCADE

)engine=innodb;






create table pagos(
num_pago integer auto_increment primary key not null,
num_pedido Integer not null,
importe_pago numeric(6,2),
fecha_Pago date,

FOREIGN KEY (num_pedido) REFERENCES PEDIDO(num_pedido)
	  ON UPDATE CASCADE ON DELETE no action
)engine=innodb;




CREATE TABLE FORMULARIO (
CLAVE CHAR (10) PRIMARY KEY NOT NULL,
BASE_CANT VARCHAR (10),
TINTA_CANT VARCHAR(10),
CANT_PINTURA VARCHAR (10),
COLOR VARCHAR (20)
)engine=innodb;
