ProGestion/BD/Script.sql
2007-06-21 16:12:43 +00:00

134 lines
4.0 KiB
SQL

CREATE DOMAIN CLASEFACTURA AS
VARCHAR(1) CHARACTER SET ISO8859_1
COLLATE ISO8859_1;
CREATE DOMAIN REFERENCIAS AS
VARCHAR(8) CHARACTER SET ISO8859_1
COLLATE ISO8859_1;
CREATE TABLE FACTURASCLIENTE (
CODIGO CODIGOS NOT NULL,
FECHAALTA FECHAS NOT NULL,
USUARIO NOMBRES NOT NULL,
CLASEFACTURA CLASEFACTURA NOT NULL,
REFERENCIA REFERENCIAS,
FECHAFACTURA FECHAS NOT NULL,
FECHAVENCIMIENTO FECHAS,
PAGADA VARCHAR(1) NOT NULL,
BASEIMPONIBLE IMPORTES2,
IVA PORCENTAJES,
IMPORTEIVA IMPORTES2,
IMPORTETOTAL IMPORTES2,
OBSERVACIONES OBSERVACIONES,
FORMAPAGO OBSERVACIONES,
CODIGOCONTACTO CODIGOS,
NIFCIF NIFCIFS,
NOMBRE NOMBRES,
CALLE CALLES,
PROVINCIA PROVINCIAS,
CODIGOPOSTAL CODIGOSPOSTALES,
POBLACION POBLACIONES,
CODIGOOBRA CODIGOS,
DESCUENTO PORCENTAJES,
IMPORTEDESCUENTO IMPORTES2
);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT PK_FACTURASCLIENTE PRIMARY KEY (CODIGO);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT FK_FACTURASCLIENTE FOREIGN KEY (CODIGOCONTACTO) REFERENCES CONTACTOS (CODIGO);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT FK_FACTURASCLIENTE2 FOREIGN KEY (CODIGOOBRA) REFERENCES OBRAS (CODIGO);
CREATE TABLE DETALLESFACTURASCLIENTE (
CODIGOFACTURA CODIGOS NOT NULL,
NUMCONCEPTO NUMCONCEPTOS NOT NULL,
DESCRIPCION DESCRIPCIONES,
CANTIDAD CANTIDADES,
IMPORTEUNIDAD IMPORTES2,
IMPORTETOTAL IMPORTES2,
POSICION SMALLINT NOT NULL,
TIPO CHAR(1)
);
ALTER TABLE DETALLESFACTURASCLIENTE ADD CONSTRAINT PK_DETALLESFACTURASCLIENTE PRIMARY KEY (CODIGOFACTURA, NUMCONCEPTO);
ALTER TABLE DETALLESFACTURASCLIENTE ADD CONSTRAINT FK_DETALLESFACTURASCLIENTE FOREIGN KEY (CODIGOFACTURA) REFERENCES FACTURASCLIENTE (CODIGO);
CREATE TABLE RECIBOSCLIENTE (
CODIGO CODIGOS NOT NULL,
FECHAALTA FECHAS NOT NULL,
USUARIO NOMBRES NOT NULL,
FECHARECIBO FECHAS NOT NULL,
IMPORTE IMPORTES2,
TEXTO OBSERVACIONES,
CODIGOCONTACTO CODIGOS,
NIFCIF NIFCIFS,
NOMBRE NOMBRES,
CALLE CALLES,
PROVINCIA PROVINCIAS,
CODIGOPOSTAL CODIGOSPOSTALES,
POBLACION POBLACIONES,
CODIGOOBRA CODIGOS
);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT PK_RECIBOSCLIENTE PRIMARY KEY (CODIGO);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT FK_RECIBOSCLIENTE FOREIGN KEY (CODIGOCONTACTO) REFERENCES CONTACTOS (CODIGO);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT FK_RECIBOSCLIENTE2 FOREIGN KEY (CODIGOOBRA) REFERENCES OBRAS (CODIGO);
CREATE GENERATOR GEN_FACTURASCLIENTE;
SET GENERATOR GEN_FACTURASCLIENTE TO 1;
CREATE GENERATOR GEN_RECIBOSCLIENTE;
SET GENERATOR GEN_RECIBOSCLIENTE TO 1;
/**PROCEDURES**/
DECLARE EXTERNAL FUNCTION LPAD
CSTRING(255),
INTEGER,
CSTRING(1)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf'
DAR_REFERENCIA_FACTURACLIENTE
OUTPUT REFERENCIA VARCAHR 8
VARIABLES AUX INTEGER
BEGIN
AUX = 0;
SELECT COALESCE(MAX(CAST(SUBSTRING(REFERENCIA from 1 for 2) AS INTEGER)), 0)
FROM FACTURASCLIENTE
where (SUBSTRING(REFERENCIA from 4 for 4) = SUBSTRING(CURRENT_DATE FROM 1 FOR 4))
and (CLASEFACTURA <> 'P')
INTO AUX;
AUX = AUX + 1;
REFERENCIA = LPAD(CAST(AUX AS VARCHAR(2)), 2, '0') || '/' || SUBSTRING(CURRENT_DATE FROM 1 FOR 4);
SUSPEND;
END
DAR_REFERENCIA_FACTURAPROFORMA
IDEM
BEGIN
AUX = 0;
SELECT COALESCE(MAX(CAST(SUBSTRING(REFERENCIA from 1 for 2) AS INTEGER)), 0)
FROM FACTURASCLIENTE
where (SUBSTRING(REFERENCIA from 4 for 4) = SUBSTRING(CURRENT_DATE FROM 1 FOR 4))
and (CLASEFACTURA = 'P')
INTO AUX;
AUX = AUX + 1;
REFERENCIA = LPAD(CAST(AUX AS VARCHAR(2)), 2, '0') || '/' || SUBSTRING(CURRENT_DATE FROM 1 FOR 4);
SUSPEND;
END