134 lines
4.0 KiB
MySQL
134 lines
4.0 KiB
MySQL
|
|
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
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|