CREATE SCHEMA FACTURACION AUTHORITATION DBA;
DROP TABLE FACTURACION.LineaFactura IF EXISTS;
DROP TABLE FACTURACION.Factura IF EXISTS;
DROP TABLE FACTURACION.Clientes IF EXISTS;

CREATE TABLE FACTURACION.Clientes (
       Identificador INT NOT NULL IDENTITY PRIMARY KEY
     , Nombre CHAR(50)
     , Direccion CHAR(100)
     , Poblacion CHAR(60)
     , CP CHAR(10)
     , Provincia CHAR(50)
     , CIF CHAR(13)
     , Telefono CHAR(11)
     , Fax CHAR(11)
     , Activo BIT
);

CREATE TABLE FACTURACION.Factura (
       Numero INT NOT NULL
     , Fecha DATE
     , IdentificadorCliente INT
     , IRPF DOUBLE
     , Anyo INT NOT NULL
     , Cobrada BIT
     , FechaCobro DATE
     , ModoPago CHAR(15)
     , ImporteFactura DOUBLE
     , PRIMARY KEY (Numero, Anyo)
     , CONSTRAINT FK_ClienteFactura FOREIGN KEY (IdentificadorCliente)
                  REFERENCES FACTURACION.Clientes (Identificador)
);

CREATE TABLE FACTURACION.LineaFactura (
       NumeroLinea INT NOT NULL
     , NumeroFactura INT NOT NULL
     , AnyoFactura INT NOT NULL
     , Cantidad DOUBLE
     , Descripcion CHAR(200)
     , Precio DOUBLE
     , IVA DOUBLE
     , PRIMARY KEY (NumeroLinea, NumeroFactura, AnyoFactura)
     , CONSTRAINT FK_LineaFactura_Factura FOREIGN KEY (NumeroFactura, AnyoFactura)
                  REFERENCES FACTURACION.Factura (Numero, Anyo)
);

