FactuGES2/Database/scripts/SCRIPT_CONTABILIDAD.SQL

162 lines
5.2 KiB
Plaintext
Raw Normal View History

CREATE TABLE CONT_EJERCICIOS (
ID TIPO_ID NOT NULL,
NOMBRE VARCHAR(255),
FECHA_INICIO DATE,
FECHA_FIN DATE,
ESTADO VARCHAR(255),
LONG_SUB_CUENTA SMALLINT,
ID_ASIENTO_APERTURA TIPO_ID,
ID_ASIENTO_PERYGAN TIPO_ID,
ID_ASIENTO_CIERRE TIPO_ID);
ALTER TABLE CONT_EJERCICIOS ADD CONSTRAINT PK_CONT_EJERCICIOS PRIMARY KEY (ID);
CREATE TABLE CONT_CUENTAS_ESPECIALES (
ID TIPO_ID NOT NULL,
REFERENCIA varchar(6),
descripcion varchar(255));
ALTER TABLE CONT_CUENTAS_ESPECIALES ADD CONSTRAINT PK_CONT_CUENTAS_ESPECIALES PRIMARY KEY (ID);
CREATE TABLE CONT_EPIGRAFES (
ID TIPO_ID NOT NULL,
REF_EPIGRAFE VARCHAR(6),
ID_PADRE TIPO_ID,
descripcion varchar(255),
ID_EJERCICIO TIPO_ID);
ALTER TABLE CONT_EPIGRAFES ADD CONSTRAINT PK_CONT_EPIGRAFES PRIMARY KEY (ID);
CREATE TABLE CONT_BALANCES (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
REF_BALANCE VARCHAR(255),
NATURALEZA VARCHAR(255),
NIVEL1 tipo_perfil,
DESCRIPCION1 varchar(255),
NIVEL2 TIPO_PERFIL,
DESCRIPCION2 varchar(255),
NIVEL3 TIPO_PERFIL,
DESCRIPCION3 varchar(255));
ALTER TABLE CONT_BALANCES ADD CONSTRAINT PK_CONT_BALANCES PRIMARY KEY (ID);
CREATE TABLE CONT_CUENTAS (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
REF_CUENTA VARCHAR(10),
ID_EJERCICIO TIPO_ID /* TIPO_ID = INTEGER */,
ID_EPIGRAFE TIPO_ID /* TIPO_ID = INTEGER */,
DESCRIPCION VARCHAR(255),
ID_BALANCE TIPO_ID /* TIPO_ID = INTEGER */,
ID_CUENTA_ESPECIAL TIPO_ID /* TIPO_ID = INTEGER */
);
ALTER TABLE CONT_CUENTAS ADD CONSTRAINT PK_CONT_CUENTAS PRIMARY KEY (ID);
CREATE TABLE CONT_SUBCUENTAS (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
REF_SUBCUENTA VARCHAR(15),
DESCRIPCION VARCHAR(255),
ID_CUENTA TIPO_ID /* TIPO_ID = INTEGER */,
ID_EJERCICIO TIPO_ID /* TIPO_ID = INTEGER */
);
ALTER TABLE CONT_SUBCUENTAS ADD CONSTRAINT PK_CONT_SUBCUENTAS PRIMARY KEY (ID);
CREATE TABLE CONT_ASIENTOS (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
FECHA_ASIENTO DATE,
ORDEN INTEGER
);
ALTER TABLE CONT_ASIENTOS ADD CONSTRAINT PK_CONT_ASIENTOS PRIMARY KEY (ID);
CREATE TABLE CONT_APUNTES (
ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
ID_ASIENTO TIPO_ID /* TIPO_ID = INTEGER */,
ID_SUBCUENTA TIPO_ID /* TIPO_ID = INTEGER */,
CONCEPTO VARCHAR(255),
PUNTEADO SMALLINT,
DEBE TIPO_IMPORTE /* TIPO_IMPORTE = NUMERIC(11,2) */,
HABER TIPO_IMPORTE /* TIPO_IMPORTE = NUMERIC(11,2) */,
ID_FACTURA TIPO_ID /* TIPO_ID = INTEGER */,
ID_RECIBO TIPO_ID /* TIPO_ID = INTEGER */
);
ALTER TABLE CONT_APUNTES ADD CONSTRAINT PK_CONT_APUNTES PRIMARY KEY (ID);
CREATE VIEW V_CONT_EPIGRAFES(
ID,
REF_EPIGRAFE,
DESCRIPCION,
ID_EJERCICIO,
ID_PADRE,
EPIGRAFE_PADRE)
AS
select CONT_EPI1.ID, CONT_EPI1.REF_EPIGRAFE, CONT_EPI1.DESCRIPCION, CONT_EPI1.ID_EJERCICIO,
CONT_EPI1.ID_PADRE, CONT_EPI2.DESCRIPCION as EPIGRAFE_PADRE
from CONT_EPIGRAFES CONT_EPI1
left join CONT_EPIGRAFES CONT_EPI2 on (CONT_EPI2.ID = CONT_EPI1.ID_PADRE)
;
CREATE VIEW V_CONT_CUENTAS(
ID,
REF_CUENTA,
ID_EJERCICIO,
DESCRIPCION,
ID_EPIGRAFE,
EPIGRAFE,
ID_BALANCE,
BALANCE,
ID_CUENTA_ESPECIAL,
CUENTA_ESPECIAL)
AS
select CONT_CUENTAS.ID, CONT_CUENTAS.REF_CUENTA, CONT_CUENTAS.ID_EJERCICIO, CONT_CUENTAS.DESCRIPCION,
CONT_CUENTAS.ID_EPIGRAFE, CONT_EPIGRAFES.DESCRIPCION as EPIGRAFE,
CONT_CUENTAS.ID_BALANCE, CONT_BALANCES.REF_BALANCE as BALANCE,
CONT_CUENTAS.ID_CUENTA_ESPECIAL, CONT_CUENTAS_ESPECIALES.DESCRIPCION as CUENTA_ESPECIAL
from CONT_CUENTAS
left join CONT_EPIGRAFES on (CONT_EPIGRAFES.ID = CONT_CUENTAS.ID_EPIGRAFE)
left join CONT_BALANCES on (CONT_BALANCES.ID = CONT_CUENTAS.ID_BALANCE)
left join CONT_CUENTAS_ESPECIALES on (CONT_CUENTAS_ESPECIALES.ID = CONT_CUENTAS.ID_CUENTA_ESPECIAL)
;
DROP VIEW V_CONT_SUBCUENTAS;
DROP VIEW V_CONT_SUBCUENTAS_SALDO;
CREATE VIEW V_CONT_SUBCUENTAS_SALDO(
ID_SUBCUENTA,
DEBE,
HABER,
SALDO)
AS
select cont_subcuentas.ID, COALESCE(SUM(cont_apuntes.DEBE), 0) as DEBE,
COALESCE(SUM(cont_apuntes.HABER), 0) as HABER,
COALESCE(SUM(cont_apuntes.DEBE), 0) - COALESCE(SUM(cont_apuntes.HABER), 0) as SALDO
from cont_subcuentas
left join cont_apuntes on (cont_apuntes.id_subcuenta = cont_subcuentas.ID)
group by cont_subcuentas.ID
;
CREATE VIEW V_CONT_SUBCUENTAS(
ID,
REF_SUBCUENTA,
DESCRIPCION,
ID_EJERCICIO,
ID_CUENTA,
CUENTA,
DEBE,
HABER,
SALDO)
AS
select CONT_SUBCUENTAS.ID, CONT_SUBCUENTAS.REF_SUBCUENTA, CONT_SUBCUENTAS.DESCRIPCION, CONT_SUBCUENTAS.ID_EJERCICIO,
CONT_SUBCUENTAS.ID_CUENTA, CONT_CUENTAS.DESCRIPCION as CUENTA, V_CONT_SUBCUENTAS_SALDO.DEBE, V_CONT_SUBCUENTAS_SALDO.HABER, V_CONT_SUBCUENTAS_SALDO.SALDO
from V_CONT_SUBCUENTAS_SALDO
left join CONT_SUBCUENTAS on (CONT_SUBCUENTAS.ID = V_CONT_SUBCUENTAS_SALDO.ID_SUBCUENTA)
left join CONT_CUENTAS on (CONT_CUENTAS.ID = CONT_SUBCUENTAS.ID_CUENTA)
;