martes, 31 de octubre de 2023

GTT (0) -Crear un SCHEMA, nuestras tablas y vistas y cargar datos desde LUCA

 1. Introducción

Vamos a crear un esquema "XIMO_SCHM" y las siguientes tablas:

  1. EDU_NUM_REGS_TABLA Para despreciar las tablas que estan vacías
  2. EDU_TARIFAS_LUCA Para cargar las tarifas de LUCA ya que no se han pasado las tarifas en la copia de seguridad de la BD
  3. EDU_TARI_TARIFAS. Copia de la tabla OPS$GTTORA.TARI_TARIFAS pero con datos que cargaremos de  la tabla anterior.
  4. EDU_OT-LUCA Para cargar los objetos tributarios de LUCA
  5. EDU_BUCLE Tabñla auxiliar para separar principal, recargo, intereses y costas 

1. CREACIÓN DEL ESQUEMA Y TABLESPACES


CREATE USER XIMO_SCHM IDENTIFIED BY "Oracle+1962";

GRANT CREATE SESSION TO XIMO_SCHM;

GRANT CREATE TABLE TO XIMO_SCHM;

GRANT CREATE ANY VIEW TO XIMO_SCHM; --FOR CREATING VIEWS IN ANY SCHEMA

CREATE TABLESPACE XIMO_SCHM_TABLESPACE DATAFILE 'ximo_schm.dat' SIZE 10M AUTOEXTEND ON;

ALTER USER XIMO_SCHM QUOTA 100M ON XIMO_SCHM_TABLESPACE;

---------------------------------------------------------------------------------------

--SCRIPT FOR GRANTING SELECT ON ALL TABLES FORM OPS$GTTORA SCHEMA TO XIMO_SCHM

--@see https://www.support.dbagenesis.com/post/grant-select-on-all-tables-in-a-schema

BEGIN

FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='OPS$GTTORA') LOOP

EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to XIMO_SCHM';

END LOOP;

END;


Sino damos permisos de SELECT a cada una de las tablas del esquema OPS$GTTORA, no se pueden crear vistas en el esquema XIMO_SCHM que hagan referencias a OPS$GTTORA

2. Creación de tablas e insertar datos

2.1 Tabla EDU_NUM_REGS_TABLA


CREATE TABLE XIMO_SCHM.EDU_NUM_REGS_TABLA TABLESPACE XIMO_SCHM_TABLESPACE

AS

SELECT NUM_ROWS,TABLE_NAME,OWNER

--SELECT *

FROM ALL_TABLES A

WHERE A.OWNER IN ('OPS$GTTORA','OPS$AD_GTTL')

ORDER BY TABLE_NAME;

CREATE UNIQUE INDEX XIMO_SCHM.EDU_NUM_REGS_TABLA_TABLE_NAME ON XIMO_SCHM.EDU_NUM_REGS_TABLA(TABLE_NAME, OWNER) TABLESPACE XIMO_SCHM_TABLESPACE ;


COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.NUM_ROWS IS 'NUMERO DE REGISTROS DE LA TABLA';

COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.TABLE_NAME IS 'NOMBRE DE LA TABLA';

COMMENT ON COLUMN XIMO_SCHM.EDU_NUM_REGS_TABLA.OWNER IS 'ESQUEMA';

COMMENT ON TABLE XIMO_SCHM.EDU_NUM_REGS_TABLA IS 'SE GUARDAN EL NUMERO DE REGISTROS DE LAS TABLAS';


------------------------------------------------------------------------------------------

--Actualizar el numero dem registros

BEGIN

FOR t IN (SELECT TABLE_NAME, OWNER

FROM XIMO_SCHM.EDU_NUM_REGS_TABLA)

LOOP


EXECUTE IMMEDIATE 'UPDATE XIMO_SCHM.EDU_NUM_REGS_TABLA EDU SET EDU.NUM_ROWS= (SELECT COUNT(*) FROM '||t.OWNER||'.'||t.TABLE_NAME||') '

||' WHERE EDU.TABLE_NAME = '''|| t.TABLE_NAME || ''' AND EDU.OWNER = ''' || t.OWNER || '''' ;

dbms_output.put_line( t.TABLE_NAME) ;

dbms_output.put_line( 'UPDATE XIMO_SCHM.EDU_NUM_REGS_TABLA EDU SET EDU.NUM_ROWS= (SELECT COUNT(*) FROM '||t.OWNER||'.'||t.TABLE_NAME||') '

||' WHERE EDU.TABLE_NAME = '''|| t.TABLE_NAME || ' AND EDU.OWNER = ' || t.OWNER || '' ) ;


END LOOP;

END;


2.2 Tabla EDU_TARIFAS_LUCA


CREATE TABLE XIMO_SCHM.EDU_TARIFAS_LUCA_CSV (

--ID_SUBO INT(11),

ID_SUBO NUMBER(10,0),

NOMBRE_SUBO VARCHAR(100),

MANCOMUNIDAD VARCHAR(100),

ID_CORG NUMBER(10,0),

ID_CSUB NUMBER(10,0),

ID_CREC NUMBER(10,0),

ID_SCOR NUMBER(10,0),

COD_CONC VARCHAR(100),

NOMBRE_PARA_SUBO_CSUB VARCHAR(100),

COD_TSUC VARCHAR(100),

NOMBRE_PARA_SUBO_CREC VARCHAR(100),

ID_GRTR NUMBER(10,0),

ID_TARI NUMBER(10,0),

DESCR_TARI VARCHAR(100),

DESCR_TITC VARCHAR(100),

VALOR_TARIFA_FIJA NUMBER(10,2),

DESCR_MCTA VARCHAR(100),

DESDE_TRTA VARCHAR(100),

HASTA_TRTA VARCHAR(100),

IMPORTE_UNIDAD NUMBER(10,2),

PORCENTAJE NUMBER(10,4),

IMPORTE_FIJO NUMBER(10,2)

) TABLESPACE XIMO_SCHM_TABLESPACE;



COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_SUBO IS 'ID SUBORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_SUBO IS 'NOMBRE SUBORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CORG IS 'ID CONCEPTO ORGANIZACION';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CSUB IS 'ID SUBCONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_CREC IS 'ID SUBCONCEPTO RECAUDABLE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_SCOR IS 'ID SUBCONCEPTO ORGANIZACION';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.COD_CONC IS 'CODIGO CONCEPTO (EJ. GU, BA,..)';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_PARA_SUBO_CSUB IS 'NOMBRE DEL SUBCONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.COD_TSUC IS 'CODIGO SUBCONCEPTO (EJ GU1,GU2,GU3..)';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.NOMBRE_PARA_SUBO_CREC IS 'NOMBRE SUBCONCEPTO RECAUDABLE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_GRTR IS 'ID GRUPO TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.ID_TARI IS 'ID TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_TARI IS 'DESCRIPCION TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.VALOR_TARIFA_FIJA IS 'VALOR TARIFA FIJA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_TITC IS 'DESCRIPCION TIPO TARIFA (FIJA, POR TRAMOS..)';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESCR_MCTA IS 'DESCRIPCION TIPO DE CALCULO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.DESDE_TRTA IS 'TRAMO DESDE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.HASTA_TRTA IS 'TRAMO HASTA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.IMPORTE_UNIDAD IS 'IMPORTE POR UNIDAD';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.PORCENTAJE IS 'PORCENTAJE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARIFAS_LUCA_CSV.IMPORTE_FIJO IS 'IMPORTE FIJO';

COMMENT ON TABLE XIMO_SCHM.EDU_TARIFAS_LUCA_CSV IS 'TARIFAS IMPORTADAS DE LUCA';



Y ahora importamos sus datos desde DBEaver con el formato CSV del fiochero descargado por LUCA
Con el boton derecho sobre la tabla hacemos importar, elegimos CSV y seguimos con lo que nos pide

 

2.3 Tabla EDU_TARI_TARIFAS

Creamos una tabla de tarifas igual que TARI_TARIFAS y le añadimos campos específicos del subconcepto donde se aplica

--CREATE TABLE XIMO_SCHM.EDU_TARI_TARIFAS TABLESPACE XIMO_SCHM_TABLESPACE AS (SELECT * FROM OPS$GTTORA.TARI_TARIFAS TARI);


CREATE TABLE "XIMO_SCHM"."EDU_TARI_TARIFAS"

(ID_TARI NUMBER(10,0) NOT NULL ENABLE,

COD_TITC VARCHAR2(1) NOT NULL ENABLE,

COD_STTA VARCHAR2(2) NOT NULL ENABLE,

DESCR_TARI VARCHAR2(100) NOT NULL ENABLE,

NOMBRE_UNIDADES_TARI VARCHAR2(240),

VALOR_FIJA_TARI NUMBER(21,6),

CUOTA_MINIMA_TARI NUMBER(17,2),

FECHA_DESDE_TARI DATE,

FECHA_HASTA_TARI DATE,

COD_MCTA VARCHAR2(2) NOT NULL ENABLE,

ELIMINADO_TARI VARCHAR2(1) NOT NULL ENABLE,

ID_GRTR NUMBER(10,0),

CUOTA_MAXIMA_TARI NUMBER(17,2),

COD_MCTA_CORREC VARCHAR2(2),

FECHA_PRES_LIQ_PROV_TARI NUMBER(4,0),

FECHA_PRES_LIQ_DEFS_TARI NUMBER(4,0),

COD_USUA_TARI VARCHAR2(20),

FECHA_ACCION_TARI DATE,

DOBLE_UNID_TARI VARCHAR2(1),

APLICACION_TARI VARCHAR2(1),

APLI_PRORRATEO_TARI VARCHAR2(1),

FORMULA_CALCULO_TARI CLOB,

--Campos añadidos por nosotrosque hacen referencia al concepto y subconcepto

ID_CORG NUMBER(10,0),

ID_CSUB NUMBER(10,0),

ID_CREC NUMBER(10,0),

ID_SCOR NUMBER(10,0),

NOMBRE_PARA_SUBO_CSUB VARCHAR2(100),

NOMBRE_PARA_SUBO_CREC VARCHAR2(100)

) TABLESPACE XIMO_SCHM_TABLESPACE;


CREATE INDEX "XIMO_SCHM"."IX_TARI_EDU_GRTR" ON "XIMO_SCHM"."EDU_TARI_TARIFAS" ("ID_GRTR") TABLESPACE XIMO_SCHM_TABLESPACE;

CREATE INDEX "XIMO_SCHM"."IX_TARI_EDU_TARI" ON "XIMO_SCHM"."EDU_TARI_TARIFAS" ("ID_TARI") TABLESPACE XIMO_SCHM_TABLESPACE;


COMMENT ON TABLE XIMO_SCHM.EDU_TARI_TARIFAS IS 'TABLA DE TARIFAS SIMILARES A TARI_TARIFAS DE GTT PERO SE HA AMPLIADO CON ALLGUNOS CAMPOS. SE HA CAPTURADO DESDE LA TABLA EDU_TARIFAS_LUCA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_TARI IS 'ID TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_TITC IS 'COD TIPO TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_STTA IS 'CODIGO TIPO DE CALCULO (F-IJA, T-RAMOS..)';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.DESCR_TARI IS 'DESCRIPCION TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_UNIDADES_TARI IS 'NOMBRE DE LAS UNIDADES EMPLEADAS EN LA TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.VALOR_FIJA_TARI IS 'VALOR DE LA TRAIFA FIJA EN SU CASO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.CUOTA_MINIMA_TARI IS 'CUOTA MINIMA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_DESDE_TARI IS 'FECHA DESDE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_HASTA_TARI IS 'FECHA HASTA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_MCTA IS 'COD MODOI DE CALCULO DE LA TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ELIMINADO_TARI IS 'ELIMINADA S/N';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_GRTR IS 'ID GRUPO TARIFA - PODEMOS RELACIONAR ID_TARI CON ID_GRTR';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.CUOTA_MAXIMA_TARI IS 'CUOTA MAXIMA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_MCTA_CORREC IS 'CORRECTOR ??';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_PRES_LIQ_PROV_TARI IS 'DIAS DE PRESCRIPCION PROVISIONAL';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_PRES_LIQ_DEFS_TARI IS 'DIAS DE PRESCRIPCION DEFINITIVA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.COD_USUA_TARI IS 'CODIGO USUARIO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FECHA_ACCION_TARI IS 'FECHA ACCION';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.DOBLE_UNID_TARI IS 'DOBLE UNIODAD DE LA TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.APLICACION_TARI IS 'APLICACION';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.APLI_PRORRATEO_TARI IS 'PRORRATEO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.FORMULA_CALCULO_TARI IS 'FORMULA';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CORG IS 'ID CONCEPTO ORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CSUB IS 'ID SUBCONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_CREC IS 'ID SUBCONCEPTO RECAUDABLE';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.ID_SCOR IS 'ID SUBCONCEPTO ORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_PARA_SUBO_CSUB IS 'NOMBRE PARA SUBCONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_TARI_TARIFAS.NOMBRE_PARA_SUBO_CREC IS 'NOMBRE PARA SUBCONCEPTO RECAUDABLE';




Y lo llenamos 


--Insertamos valores desde la tabla de LUCA

INSERT INTO XIMO_SCHM.EDU_TARI_TARIFAS ETARI

(

ID_TARI,COD_TITC,

COD_STTA,

DESCR_TARI,NOMBRE_UNIDADES_TARI,

VALOR_FIJA_TARI,

CUOTA_MINIMA_TARI,FECHA_DESDE_TARI,FECHA_HASTA_TARI,COD_MCTA,

ELIMINADO_TARI,ID_GRTR,CUOTA_MAXIMA_TARI,COD_MCTA_CORREC,FECHA_PRES_LIQ_PROV_TARI,FECHA_PRES_LIQ_DEFS_TARI,

COD_USUA_TARI,FECHA_ACCION_TARI,DOBLE_UNID_TARI,APLICACION_TARI,APLI_PRORRATEO_TARI,

FORMULA_CALCULO_TARI ,

--Campos añadidos por nosotrosque hacen referencia al concepto y subconcepto

ID_CORG, ID_CSUB, ID_CREC, ID_SCOR,

NOMBRE_PARA_SUBO_CSUB,

NOMBRE_PARA_SUBO_CREC

)

SELECT DISTINCT

LCSV.ID_TARI,TITC.COD_TITC,

CASE

WHEN TITC.COD_TITC ='F' THEN 'F' --Único

WHEN TITC.COD_TITC ='S' THEN 'IS' --Indice de situacion

WHEN TITC.COD_TITC ='C' THEN 'CV' --Categoria de via

WHEN TITC.COD_TITC ='P' THEN 'TB' --Combinada

WHEN TITC.COD_TITC ='M' THEN 'TM' --Múltiples tramos

WHEN TITC.COD_TITC ='N' THEN 'N' --Nuevas tarifas OR configuración

WHEN TITC.COD_TITC ='T' THEN


CASE

WHEN LCSV.IMPORTE_FIJO IS NOT NULL THEN 'AL' --Alternativo

ELSE 'AC' --aCUMULATIVO

END

ELSE 'F'

END COD_STTA,

DESCR_TARI,NOMBRE_UNTA AS NOMBRE_UNIDADES_TARI,

VALOR_TARIFA_FIJA AS VALOR_FIJA_TARI, 0 AS CUOTA_MINIMA_TARI,

TO_DATE('2000/01/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AS FECHA_DESDE_TARI, TO_DATE('2999/01/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss') AS FECHA_HASTA_TARI,COD_MCTA,

'N' AS ELIMINADO_TARI,ID_GRTR,99999999 AS CUOTA_MAXIMA_TARI,NULL AS COD_MCTA_CORREC,30 AS FECHA_PRES_LIQ_PROV_TARI,60 AS FECHA_PRES_LIQ_DEFS_TARI,

'EDU' AS COD_USUA_TARI,NULL AS FECHA_ACCION_TARI,NULL AS DOBLE_UNID_TARI,NULL AS APLICACION_TARI,NULL AS APLI_PRORRATEO_TARI,

NULL AS FORMULA_CALCULO_TARI,

ID_CORG, ID_CSUB, ID_CREC, ID_SCOR,

NOMBRE_PARA_SUBO_CSUB,

NOMBRE_PARA_SUBO_CREC

FROM XIMO_SCHM.EDU_TARIFAS_LUCA_CSV LCSV

LEFT JOIN OPS$GTTORA.TITC_TIPOS_TARIFAS_CONCEPTOS TITC ON TITC.DESCR_TITC =LCSV.DESCR_TITC

--LEFT JOIN STTA_SUBTIPOS_TARIFAS STTA ON STTA.COD_TITC =TITC.COD_TITC

-- AND STTA.COD_STTA = -----

LEFT JOIN OPS$GTTORA.UNTA_UNIDADES_TARIFA UNTA ON UNTA.ID_TARI =LCSV.ID_TARI

LEFT JOIN OPS$GTTORA.MCTA_MODO_CALCULO_TARIFA MCTA ON MCTA.DESCR_MCTA=LCSV.DESCR_MCTA

ORDER BY ID_TARI;




y algunos de los registros que se obtienen


|TAXA PEL SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS                         |S                      |S             |                       48|IN      |
   5642|BA      |FEM                   |SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS                                  |S                      |N             |                       48|IN      |
   5667|PP      |PÀRQUING PASSEIG      |APARCAMENT DE VEHICLES EN EL PÀRQUIN SUBTERRANI MUNICIPAL DEL P. PAIS VALENCIA|S                      |N             |                       48|IN      |
   5539|BA      |TASA BASURA TRIMESTRAL|TASA BASURA TRIMESTRAL                                                        |S                      |S             |                       48|IN      |
   5545|IR      |IBI RÚSTICA           |IMPUESTO SOBRE BIENES INMUEBLES DE NATURALEZA RÚSTICA                         |S                      |S             |                       48|IN      |
   5546|IU      |IBI URBANA            |IMPUESTO SOBRE BIENES INMUEBLES DE NATURALEZA URBANA                          |S                      |S             |                       48|IN      |
   5626|IR      |IBI RÚSTIC            |IMPOST SOBRE BÉNS IMMOBLES RÚSTICS                                            |S                      |N             |                       48|IN      |
   5583|BA      |TASA BASURA           |TASA BASURA                                                                   |S                      |S             |                       48|IN      |
   5625|IU      |IBI URBANA            |IMPOST SOBRE BÉNS IMMOBLES DE NATURALESA URBANA                               |S                      |N             |                       48|IN      |
   5633|BA      |FEM                   |TAXA PEL SERVEI DE RECOLLIDA DE RESIDUS SÒLIDS URBANS                         |S                      |S             |                       48|IN      |


2.4 Tabla EDU_OT_LUCA


CREATE TABLE XIMO_SCHM.EDU_OT_LUCA(

ID_ORGA_OT NUMBER(10,0)

,NOMBRE_ORGA VARCHAR2(100)

,ID_PERS NUMBER(10,0)

,NIF_SUJETO_PAS VARCHAR2(10)

,NOMBRE_SUJETO_PAS VARCHAR2(100)

,NIF_CONTRIBUYENTE VARCHAR2(10)

,NOMBRE_CONTRIBUYENTE VARCHAR2(100)

,DIRECCION_CONTRIBUYENTE VARCHAR2(200)

,ID_EPER_OT NUMBER(10,0)

,ID_DOTP NUMBER(10,0)

,ESTADO VARCHAR2(25)

,TIPO_BAJA VARCHAR2(100)

,TIPO_OT VARCHAR2(5)

,COD_CONC VARCHAR2(5)

,CONCEPTO VARCHAR2(100)

,SUBCONCEPTO VARCHAR2(100)

,TARIFA VARCHAR2(100)

,ID_SUBO NUMBER(10,0)

,NOMBRE_SUBO VARCHAR2(100)

,NUMERO_FIJO_TASA VARCHAR2(100)

,ORDEN VARCHAR2(30)

,DIRECCIÓN_OT_CODIFICADA VARCHAR2(150)

,ORIGEN_VIA VARCHAR2(50)

,COD_VIA_OT NUMBER(10,0)

,SIGLA_OT VARCHAR2(10)

,NOMBRE_CALLE_OT VARCHAR2(100)

,NUMERO_OT NUMBER(10,0)

,BLOQUE_OT VARCHAR2(30)

,ESCALERA_OT VARCHAR2(30)

,PLANTA_OT VARCHAR2(30)

,PUERTA_OT VARCHAR2(30)

,CP_OT NUMBER(10,0)

,DESCRIPCION_OT VARCHAR2(100)

,REF_CATASTRAL_ASOCIADA VARCHAR2(30)

,FECHA_INC_PADRON_DOTP DATE

,SUBCONCEPTOS NUMBER(10,0)

,TARIFAS NUMBER(10,0)

,BONIFICACIONES NUMBER(10,0)

,IBAN VARCHAR2(30)

) TABLESPACE XIMO_SCHM_TABLESPACE;


CREATE INDEX XIMO_SCHM.IX_EDU_OT_LUCA_ID_EPER_OT ON XIMO_SCHM.EDU_OT_LUCA ("ID_EPER_OT") TABLESPACE XIMO_SCHM_TABLESPACE;


COMMENT ON TABLE XIMO_SCHM.EDU_OT_LUCA IS 'OBJETOS TRIBUTARIOS OBTENIDOS POR LUCA PARA HACER COMPROBACIONES';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_ORGA_OT IS 'ID ORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_ORGA IS 'NOMBRE ORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_PERS IS 'ID DE LA PERSONA';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NIF_SUJETO_PAS IS 'NIF SUJETO PASIVO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_SUJETO_PAS IS 'NOMBRE SUJETO PASIVO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NIF_CONTRIBUYENTE IS 'NIF CONTRIBUYENTE';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_CONTRIBUYENTE IS 'NOMBRE CONTRIBUYENTE';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DIRECCION_CONTRIBUYENTE IS 'DIRECCION CONTRIBUYENTE';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_EPER_OT IS 'IDENTIFICADOR DEL OBJETO TRIBUTARIO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_DOTP IS 'ID DOTP OTROS DATOS DE TASAS';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ESTADO IS 'ESTADO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TIPO_BAJA IS 'TIPO DE BAJA';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TIPO_OT IS 'TIPO DE OBJETO TRIBUTARIO (TP)';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.COD_CONC IS 'CODIGO CONCEPTO (GU, BA,..)';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.CONCEPTO IS 'CONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SUBCONCEPTO IS 'SUBCONCEPTO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TARIFA IS 'NOMBRE DE LA TARIFA';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ID_SUBO IS 'ID SUBORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_SUBO IS 'NOMBRE SUBORGANISMO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NUMERO_FIJO_TASA IS 'NUMERO FIJO';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ORDEN IS 'ORDEN DEL SUBCONCEPTO (SOLO PARA EL CASO QUE SE TENGAN VARIOS SUBCONCPTOS EN LA MISMA LIQUIDACION)';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DIRECCIÓN_OT_CODIFICADA IS 'DIRECCION OT CODIFICADA';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ORIGEN_VIA IS 'ORIGEN';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.COD_VIA_OT IS 'CODIGO VIA OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SIGLA_OT IS 'SIGLA VIA OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NOMBRE_CALLE_OT IS 'CALLE OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.NUMERO_OT IS 'NUM OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.BLOQUE_OT IS 'BLOQUE OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.ESCALERA_OT IS 'ESCALERA OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.PLANTA_OT IS 'PLANTA OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.PUERTA_OT IS 'PUERTA OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.CP_OT IS 'CP OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.DESCRIPCION_OT IS 'DESCRIPCION OT';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.REF_CATASTRAL_ASOCIADA IS 'REFERENCIA CATASTRAL';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.FECHA_INC_PADRON_DOTP IS 'FECHA INCLUSION EN EL PADRON';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.SUBCONCEPTOS IS 'NUMERO DE SUBCONCEPTOS QUE CONTIENE';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.TARIFAS IS 'NUMERO DE TARIFAS QUE CONTIENE';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.BONIFICACIONES IS 'BONIFICACIONES';

COMMENT ON COLUMN XIMO_SCHM.EDU_OT_LUCA.IBAN IS 'IBAN DOMICILIACION';


y con click derecho sobre la tabla - importar- csv seguimos loos pasos e importamos los objetos tributarios obtenidos en LUCA

3. Vista que engloba tanto a valores temporales (VATE) como "permanentes"(VALO). Se verá en un blog posterior

Esta vista muestra tanto los valores temporales como los permanentes


CREATE OR REPLACE VIEW XIMO_SCHM.XIMO_VALORS

AS

SELECT VATE.IDENTIFICADOR_VATE,

LPAD(VALO.ANYO_CARGO_CARG,4,'0')||LPAD(VALO.ID_ORGA ,2,'0') ||

LPAD(VALO.ID_SUBO,5,'0') || VALO.COD_CONC || LPAD(VALO.EMISION_CARG,2,'0') ||

VALO.COD_TVAL || LPAD(VALO.NUMERO_VALO,6,'0') AS IDENTIFICADOR_VALO,

VATE.ID_EPER,

VALO.ID_EPER AS ID_EPER_VALOR ,

--TPDL.ID_TPDL,

OTPT.ID_OTPD,

OT.ID_EPER_OT,

EPER.ID_PERS,

PERS.NIF_PERG, PERS.NOMBRE_PERG,

NVL(VATE.COD_TVAL,VALO.COD_TVAL) AS COD_TVAL,

NVL(VATE.COD_CONC,VALO.COD_CONC) AS COD_CONC,

VATE.TIPO_VATE,

VATE.ESTADO_VATE,

TESV.*,

TSEV.*,

TFVA.*,

SVAL.DESCR_SVAL,

VATE.COD_USUA,

NVL(VATE.FECHA_GRABACION_VATE,

NVL(VALO.FECHA_CARGA_VALO,

TO_DATE(TO_CHAR(NVL(VATE.EJERCICIO_VATE,2000))||'-01-01','YYYY-MM-DD'))) AS FECHA_GRABACION_VATE,

VATE.PERIODO_VATE,

VALO.ANYO_CARGO_CARG, VALO.EMISION_CARG, VALO.NUMERO_VALO,

VALO.ID_CARG, VALO.NUMERO_CARG,

NVL(VATE.OBJETO_TRIB_VATE,VALO.OBJETO_TRIB_VALO) AS OBJETO_TRIB_VATE,

NVL(VATE.DEUDA_VATE,VALO.IMPORTE_VALO) AS IMPORTE,

VATE.ID_EPER_ORIG_VATE,

NVL(VATE.NUM_EXP_LID_VATE, VALO.NUM_EXP_LID_VALO) AS NUM_EXP_LID_VATE,

NVL(VATE.ID_CSUB,VALO.ID_CSUB) AS ID_CSUB,

CSUB.NOMBRE_PARA_SUBO_CSUB,

VALO.ID_REGE

--SELECT COUNT(*)

FROM OPS$GTTORA.VATE_VALORES_TEMPORALES VATE -- NUM_EXP_LID_VATE, ID_EPER_ORIG_VATE-> ID_TPDL??, IDENTIFIADOR_VATE, ID_EPER_VALO-> VALO.ID_EPER,COPD_CONC,

FULL OUTER JOIN OPS$GTTORA.VALO_VALORES VALO ON VALO.ID_EPER=VATE.ID_EPER_VALOR -- ID_CARG, NUMERO_VALO!!!

--LEFT JOIN "OPS$GTTORA".TPDL_TP_DETALLE_LIQUIDACION TPDL ON TPDL.ID_TPDL =VATE.ID_EPER_ORIG_VATE

LEFT JOIN OPS$GTTORA.OTPT_OBJETOS_TRIB_PREV_VOLU OTPT ON OTPT.ID_OTPT = VATE.ID_EPER_ORIG_VATELEFT JOIN OPS$GTTORA.OT_OBJETO_TRIBUTARIO OT ON OT.ID_EPER_OT =VATE.ID_EPER_ORIG_VATE

LEFT JOIN OPS$GTTORA.EPER_ELEMENTOS_PERSONA EPER ON EPER.ID_EPER = GREATEST (NVL(VATE.ID_EPER,-1), NVL(VALO.ID_EPER,-1))

LEFT JOIN OPS$GTTORA.CSUB_CONCEPTOS_SUBORGANISMO CSUB ON CSUB.ID_CSUB = GREATEST (NVL(VATE.ID_CSUB,-1), NVL(VALO.ID_CSUB ,-1))

LEFT JOIN OPS$GTTORA.PERS_PERSONAS pers ON pers.ID_PERS =EPER.ID_PERS

LEFT JOIN OPS$GTTORA.TESV_TIPOS_ESTADO_VALOR TESV ON TESV.COD_TESV =VALO.COD_TESV

LEFT JOIN OPS$GTTORA.TSEV_TSUBE_VALOR TSEV ON TSEV.COD_TSEV =VALO.COD_TSEV

LEFT JOIN OPS$GTTORA.TFVA_TIPOS_FORMATO_VALOR TFVA ON TFVA.COD_TFVA =VALO.COD_TFVA

LEFT JOIN OPS$GTTORA.SVAL_SUBTIPO_VALORES SVAL ON SVAL.COD_SVAL =VALO.COD_SVAL

;


4. Tabla de las personas incluso en un agrupación

Esta tabla muestra las personas y los distintos ID_PERS que haya tomado esta persona. El problema surge cuando se elimina el registro de la tabla PERS y se da de alta en la tabla AGP, por tanto hay que consultar las 2 tablas en busca de la persona.

Pero sale el error:
SQL Error [1950] [42000]: ORA-01950: No existen privilegios en el tablespace USERS, seguramente es porque no hemos seleccionados el TABLESPACE XIMO_SCHM_TABLESPACE

CREATE TABLE XIMO_SCHM.PERS_XIMO TABLESPACE XIMO_SCHM_TABLESPACE

AS

(

SELECT DISTINCT NVL(AGPE.ID_PERS_AGPE,PERS.ID_PERS) AS ID_PERS_XIMO,

PERS.ID_PERS,PERS.NIF_PERG, PERS.NOMBRE_PERG

FROM OPS$GTTORA.PERS_PERSONAS PERS

LEFT JOIN

(

OPS$GTTORA.EPER_ELEMENTOS_PERSONA EPER

JOIN OPS$GTTORA.AGPE_AGRUPACIONES_PERSONAS AGPE ON EPER.TIPO_EPER ='AG' AND AGPE.ID_EPER = EPER.ID_EPER

)

ON EPER.ID_PERS IN (PERS.ID_PERS)

) ;


-- INDEXES ------

CREATE UNIQUE INDEX XIMO_SCHM.IDX_PERS_XIMO_1 ON XIMO_SCHM.PERS_XIMO (ID_PERS_XIMO) TABLESPACE XIMO_SCHM_TABLESPACE;

CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_2 ON XIMO_SCHM.PERS_XIMO (ID_PERS) TABLESPACE XIMO_SCHM_TABLESPACE;

CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_3 ON XIMO_SCHM.PERS_XIMO (NIF_PERG) TABLESPACE XIMO_SCHM_TABLESPACE;

CREATE INDEX XIMO_SCHM.IDX_PERS_XIMO_4 ON XIMO_SCHM.PERS_XIMO (NOMBRE_PERG)TABLESPACE XIMO_SCHM_TABLESPACE;


5. Tabla EDU_BUCLE

CREATE TABLE XIMO_SCHM.EDU_BUCLE(

ID_BUCLE NUMBER(10,0),

DESCR VARCHAR(10)

) TABLESPACE XIMO_SCHM_TABLESPACE;


---incluimos valores

INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (0, 'PRINCIPAL');

INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (1, 'RECARGO');

INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (2, 'INTERESES');

INSERT INTO XIMO_SCHM.EDU_BUCLE (ID_BUCLE, DESCR) VALUES (3, 'COSTAS');






6. Tablas para facilitar las consultas de personas y documentos