jueves, 7 de diciembre de 2023

GTT (15) - BD MUNICIPIO (15). Históricos de valores (V). Ajuste de cuentas

0. Introducción

Las tablas que nos arrojan un poco de luz son:
  1. REOV_REGISTRO_OP_VALOR: Nos da la mayoria de operaciones o estados por el que pasa un valor. En el csaso de cobros, tiene una referencia ID_COBR a la tabla COBR
  2. COBR_COBROS: Nos da una idea de por donde se han hecho los cobros
  3. IMPO_IMPORTES: Esta tabla tiene sus triquiñuelas pues tiene 2 tipos de registros , unos que generan desgloses en la tabla APLI y otros casi completamente inútiles que son usados por la tabla APLI únicamente para saber si son de principal(PR), recargo(R5,R12,R2), interes(ID) costas(CO) o excesos (DD) indicados en el campo COD_IMPORTE. Los primeros pueden ser originarios de un cobro (ID_COBR engacha ala tabla COBR) o de una baja con lo que solamente podemos enganchar con la tabla REOV buscando REOV.COD_TOVA='BP' y REOV.FECHA_EFECTOS_REOV = IMPO.FECHA_COBRO_IMPO y REOV.ID_FIIN=IMPO.ID_FIIN
  4. APLI_APLICACIONES: Esta tabla tiene los desgloses de un IMPO (APLI.ID_IMPO) y para saber el tipo de desglose (principal, recargo...) enlaza con APLI.IMP_ID_IMPO=IMPO_IOD_IMPO y lo vemos en el campo COD_IMPORTE

La tabla IMPO, su campo COD_IMPORTE puede tomar estos valores:

  • IC: Ingreso a cuenta: que debe tener unos desgloses de COST,PPAL, RECA, INTE y EXCESO en la tabla APLI con APLI.ID_IMPO=IMPO.ID_IMPO . Ademas la tabla APLI tiene un campo APLI.IMP_ID_IMPO que apunta a IMPO.ID_IMPO y este IMPO debe ser de COD-IMPORTE (PR,R5,R1,R2,ID,CO y DD)
  • CO: Costas
  • PR: Principal
  • R2: Recargo del 20%. A veces falla y es recardo del 5 o del 10
  • R1: Recargo del 10%
  • R5: Recargo del 5%
  • ID: Intereses de demora
  • BP: Baja parcial (importe ppal) y tiene un desglose en APLI que a punta al IMPO de PR (principal)  APLI.IMP_ID_IMP 

1. Cobros

1.1 Cobros enteros y parciales

Los cobros totales tienen REOV.COD_TOVA='CO' y este mismo códigop, para los cobros parciales es 'IP'

1.2 Cobros con exceso

En este caso, si el exceso es igual al total del recibo, o si el recibo ya estaba previamente pagado, no aparece ningun registro en REOV!! Solamente queda constancia de estos casos en la tala IMPO,COBR y APLI

1.3 Cobros con descuento

Sucede en el caso de las multas cuando se pagan pronto. Aquí aparecen
  1. Un apunte en la tabla REOV con COD_TOVA='DE' , que apunta REOV.ID_COBR a  COBR.ID_CBR y a IMPO.ID_CBR
  2. Una vez tenemos el registro de IMPO, ya sabemos como poder aplicarlo
Veamos una consulta de cálculo de cobros con o sin descuento desglosados . Los movimientyos de cobro aparecen multiples desgloses para detallarel principal, recargo, interés, costas y excesos.

SELECT --IMPO.ID_IMPO, APLI.ID_APLI, IMPO1.ID_IMPO,

IMPO.ID_PADRE_IMPO, IMPO.ID_COBR, IMPO.FECHA_COBRO_IMPO, IMPO.IMPORTE_IMPO, IMPO.COD_IMPORTE,

IMPO1.COD_IMPORTE, REOV.COD_TOVA, IMPO1.IMPORTE_IMPO,

APLI.IMPORTE_APLI, APLI.PORC_RECARGO_APRE_APLI

FROM OPS$GTTORA.IMPO_IMPORTES IMPO

JOIN OPS$GTTORA.APLI_APLICACIONES APLI ON APLI.ID_IMPO=IMPO.ID_IMPO

JOIN OPS$GTTORA.IMPO_IMPORTES IMPO1 ON IMPO1.ID_IMPO =APLI.IMP_ID_IMPO

LEFT JOIN OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV ON REOV.ID_COBR=IMPO.ID_COBR

WHERE

--EXISTS(

-- SELECT * FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV

-- WHERE REOV.ID_EPER=IMPO.ID_PADRE_IMPO AND REOV.COD_TOVA IN('IP')) --'DV'

ORDER BY IMPO.ID_PADRE_IMPO DESC, IMPO.ID_IMPO

;


Y obtenemos

ID_PADRE_IMPO|ID_COBR |FECHA_COBRO_IMPO       |IMPORTE_IMPO|COD_IMPORTE|COD_IMPORTE|COD_TOVA|IMPORTE_IMPO|IMPORTE_APLI|PORC_RECARGO_APRE_APLI|
-------------+--------+-----------------------+------------+-----------+-----------+--------+------------+------------+----------------------+
    135109810|50440251|2023-09-27 00:00:00.000|      -10000|IC         |PR         |CO      |       20000|       10000|                      |
    135109810|50440256|2023-09-27 00:00:00.000|      -10000|IC         |PR         |DE      |       20000|       10000|                      |

    134430524|50433428|2023-09-13 00:00:00.000|        -204|IC         |CO         |IP      |         500|         204|                      |
    134430524|50433429|2023-09-13 00:00:00.000|        -400|IC         |R5         |IP      |         407|           4|                     5|
    134430524|50433429|2023-09-13 00:00:00.000|        -400|IC         |CO         |IP      |         500|         296|                      |
    134430524|50433429|2023-09-13 00:00:00.000|        -400|IC         |PR         |IP      |        8171|         100|                      |
    134430524|50433430|2023-09-13 00:00:00.000|       -2657|IC         |PR         |IP      |        8171|        2531|                      |
    134430524|50433430|2023-09-13 00:00:00.000|       -2657|IC         |R5         |IP      |         407|         126|                     5|
    134430524|50433431|2023-09-13 00:00:00.000|       -5817|IC         |PR         |IP      |        8171|        5540|                      |
    134430524|50433431|2023-09-13 00:00:00.000|       -5817|IC         |R5         |IP      |         407|         277|                     5|

    132207554|50265942|2023-08-02 00:00:00.000|      -13723|IC         |PR         |CO      |       13723|       13723|                      |
    132207554|50265948|2023-08-02 00:00:00.000|      -13723|IC         |DD         |        |       13723|       13723|                      |

    131921525|49832229|2023-05-03 00:00:00.000|       -7867|IC         |CO         |CO      |         500|         500|                     0|
    131921525|49832229|2023-05-03 00:00:00.000|       -7867|IC         |PR         |CO      |        6697|        6697|                     0|
    131921525|49832229|2023-05-03 00:00:00.000|       -7867|IC         |R1         |CO      |         670|         670|                    10|
    131921525|50040385|2023-05-03 00:00:00.000|       -7867|IC         |DD         |        |        7867|        7867|                      |

Observamos que
  • el registro 135109810 tiene un descuento (COD_TOVA=DE)
  • el registro  134430524 tiene 4 cobros parciales y se desglosan en pñrincipal (PR), recargo del 5% (R5) y costas (CO), pero no tiene interese de demora
  • el registro 132207554 tiene en la misma fecha un cobro normal que se aplica a principal y además un duplicado de cobro (DD)
  • el registro 131921525 tiene en la misma fecha un cobro que se desglosa en costas (CO), principal (PR), recargo del 10%( (R1) y un exceso de cobro (DD)

2. Bajas

Van ligadas a un expediente de baja. No deja rastro en la tablas IMPO,APLI,COBR, salvo algunas bajas parciales (BP). La tabla REOV muestra los movimientos

Las bajas totales aparecen en estas tablas: BJVA_BAJA_VALO y PAVA_PROP_APROBACION_VAL y van enganchadas con ID_REOV a REOV.ID_REOV

2.1 Bajas TOTALES

Las bajas totales seran


SELECT BJVA.RESULTADO_BJVA, REOV.*

FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV

LEFT JOIN OPS$GTTORA.BJVA_BAJA_VALO BJVA ON BJVA.ID_REOV = REOV.ID_REOV --BJVA.ID_EPER = REOV.ID_EPER

WHERE

REOV.COD_TOVA IN ('PB')

AND EXISTS(

SELECT * FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV1

WHERE REOV1.ID_EPER=REOV.ID_EPER AND REOV1.COD_TOVA IN('BA'))

ORDER BY REOV.ID_EPER DESC, REOV.ID_REOV

;

Y obtenemos

RESULTADO_BJVA                  |ID_REOV  |COD_TOVA|COD_USUA |ID_EPER  |REG_ID_EPER|FECHA_EFECTOS_REOV|FECHA_OPERACION_REOV   |NUMEXP_ORGA_REOV|ORGANO_AUTORIZ_REOV             |OBSERV_REOV|FECHA_DOC_AUTORIZ_REOV |COD_TESV|COD_TSEV|COSTAS_REOV|RECARGO_REOV|INTERESES_REOV|COD_IMPORTE_REOV|PRINCIPAL_REOV|TIPO_RECARGO_REOV|TIPO_FAC_REOV|EJER_CONTRAIDO_REOV|EJERCICIO_FACT_REOV|MES_FACT_REOV|NUMERO_FACT_REOV|ID_SUBO|ID_ORGA|COD_DESG_REOV|COD_CONC|ID_COBR|COD_MOTI|ESTADO_TOVA_REOV|ID_FIIN|PREVIO_COSTAS_REOV|PREVIO_PRINCIPAL_REOV|PREVIO_TIPO_RECARGO_REOV|PREVIO_RECARGO_REOV|PREVIO_INTERESES_REOV|NUM_EXP_EXT_REOV|ID_REAP|ID_FIJU|NUM_DECRETO_REOV|REF_EXTERNA_REOV|OP_AUTO_REOV|
--------------------------------+---------+--------+---------+---------+-----------+------------------+-----------------------+----------------+--------------------------------+-----------+-----------------------+--------+--------+-----------+------------+--------------+----------------+--------------+-----------------+-------------+-------------------+-------------------+-------------+----------------+-------+-------+-------------+--------+-------+--------+----------------+-------+------------------+---------------------+------------------------+-------------------+---------------------+----------------+-------+-------+----------------+----------------+------------+
Error de hecho                  |158086803|PB      |22546128 |134961045|           |                  |2023-09-22 11:21:27.000|09022023000028  |Ayuntamiento                    |BA         |                       |E       |Con     |          0|        1000|             0|R5              |         20000|                5|             |               2023|                   |             |                |  46240|      9|Om           |ML      |       |1       |                |       |                 0|                    0|                       0|                  0|                    0|1391542Y        |       |       |                |                |N           |
Otras Causas                    |157979015|PB      |73916807 |134571884|           |                  |2023-09-08 12:00:26.000|09032023001330  |Ayuntamiento                    |BA         |                       |E       |Con     |          0|        1656|             0|R5              |         33126|                5|             |               2023|                   |             |                |  46240|      9|C            |IA      |       |35      |                |       |                 0|                    0|                       0|                  0|                    0|                |       |       |                |                |N           |
Otras Causas                    |157450605|PB      |73916807 |134169191|           |                  |2023-07-07 10:04:25.000|09032023000813  |Ayuntamiento                    |BA         |                       |V       |Not     |          0|           0|             0|                |         20670|                0|             |               2020|                   |             |                |  46240|      9|V            |IU      |       |35      |                |       |                 0|                    0|                       0|                  0|                    0|                |       |       |                |                |N           |
Otras Causas                    |157450606|PB      |73916807 |134169184|           |                  |2023-07-07 10:04:25.000|09032023000813  |Ayuntamiento                    |BA         |                       |V       |Not     |          0|           0|             0|                |         20670|                0|             |               2021|                   |             |                |  46240|      9|V            |IU      |       |35      |                |       |                 0|                    0|                       0|                  0|                    0|                |       |       |                |                |N           |
Error de hecho                  |157398554|PB      |22546128 |133994695|           |                  |2023-07-04 12:20:16.000|09022023000020  |Ayuntamiento                    |BA         |                       |E       |Pem     |          0|         400|             0|R5              |          8000|                5|             |               2023|                   |             |                |  46240|      9|Om           |ML      |       |1       |                |       |                 0|                    0|                       0|                  0|                    0|1391542Y        |       |       |                |                |N           |
Error de hecho                  |157398505|PB      |22546128 |133860144|           |                  |2023-07-04 12:12:21.000|09022023000020  |Ayuntamiento                    |BA         |                       |E       |Pem     |          0|        1000|             0|R5              |         20000|                5|             |               2023|                   |             |                |  46240|      9|Om           |ML      |       |1       |                |       |                 0|                    0|                       0|                  0|                    0|1391542Y        |       |       |                |                |N           |
Error de hecho                  |157181465|PB      |22546128 |133320353|           |                  |2023-06-16 12:26:31.000|09022023000019  |Ayuntamiento                    |BA         |                       |E       |EMN     |        500|         400|             0|R5              |          8000|                5|             |               2023|                   |             |                |  46240|      9|Om           |ML      |       |1       |                |       |                 0|                    0|                       0|                  0|                    0|1391542Y        |       |       |                |                |N           |

Observamos que hay que enganchar las tablas con la propuesta de baja (PB) y no con la baja (BA) en si.

2.1 Bajas PARCIALES

Las bajas totales se obtienen así


SELECT --IMPO.ID_IMPO, APLI.ID_APLI, IMPO1.ID_IMPO,

IMPO.ID_PADRE_IMPO, IMPO.ID_COBR, IMPO.FECHA_COBRO_IMPO, IMPO.IMPORTE_IMPO, IMPO.COD_IMPORTE,

IMPO1.COD_IMPORTE, REOV.COD_TOVA, IMPO1.IMPORTE_IMPO,

APLI.IMPORTE_APLI, APLI.PORC_RECARGO_APRE_APLI, REOV.REG_ID_EPER, REOV.NUMEXP_ORGA_REOV

FROM OPS$GTTORA.IMPO_IMPORTES IMPO

JOIN OPS$GTTORA.APLI_APLICACIONES APLI ON APLI.ID_IMPO=IMPO.ID_IMPO

JOIN OPS$GTTORA.IMPO_IMPORTES IMPO1 ON IMPO1.ID_IMPO =APLI.IMP_ID_IMPO

--LEFT JOIN OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV ON REOV.ID_COBR=IMPO.ID_COBR

LEFT JOIN OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV ON REOV.ID_EPER =IMPO.ID_PADRE_IMPO AND REOV.ID_FIIN =IMPO.ID_FIIN

WHERE

IMPO.COD_IMPORTE ='BP'

-- EXISTS(

-- SELECT * FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV

-- WHERE REOV.ID_EPER=IMPO.ID_PADRE_IMPO AND REOV.COD_TOVA IN('BP')) --'DV',DE

ORDER BY IMPO.ID_PADRE_IMPO DESC, IMPO.ID_IMPO

;


Y obtenemos

ID_PADRE_IMPO|ID_COBR|FECHA_COBRO_IMPO       |IMPORTE_IMPO|COD_IMPORTE|COD_IMPORTE|COD_TOVA|IMPORTE_IMPO|IMPORTE_APLI|PORC_RECARGO_APRE_APLI|REG_ID_EPER|NUMEXP_ORGA_REOV|
-------------+-------+-----------------------+------------+-----------+-----------+--------+------------+------------+----------------------+-----------+----------------+
    132828326|       |2023-05-23 12:37:22.000|      -16000|BP         |PR         |BP      |       20000|       16000|                      |  133959641|09052023000071  |

    132380596|       |2023-05-16 13:17:14.000|       -6550|BP         |R5         |BP      |         550|         289|                     5|  133816434|09052023000068  |
    132380596|       |2023-05-16 13:17:14.000|       -6550|BP         |CO         |BP      |         500|         500|                      |  133816434|09052023000068  |
    132380596|       |2023-05-16 13:17:14.000|       -6550|BP         |PR         |BP      |       11000|        5761|                      |  133816434|09052023000068  |

Observamos que las bajas parciales pueden tener varios desgloses (principal, costas etc)

3. Devoluciones

Van ligadas a un expediente de devolución. No deja rastro en la tablas IMPO,APLI,COBR. Solo aparece en REOV y en las actuaciones del expediente. Hay un enlace al expediente REOV.REG_ID_EPER. La información de la devolución aparece duplicada en la tabla SEDE_SEGUIM_DEVOLUCIONES y sus campos importantes son: ID_EPER_SEDE(id del valor), ID_REGE_SEDE(id del expediente) y los importes(PRINCIPAL_SEDE,RECARGO_SEDE,INTERESES_SEDE,COSTAS_VALOR_SEDE,COSTAS_REGE_SEDE,INTERESES_DEMORA_SEDE,TOTAL_SED)

Veamos la consulta

SELECT REOV.ID_EPER, REOV.COD_TOVA,REOV.REG_ID_EPER,REOV.NUMEXP_ORGA_REOV, REOV.FECHA_OPERACION_REOV,

SEDE.PRINCIPAL_SEDE, SEDE.RECARGO_SEDE, SEDE.INTERESES_SEDE, SEDE.COSTAS_VALOR_SEDE, SEDE.COSTAS_REGE_SEDE,

SEDE.INTERESES_DEMORA_SEDE, SEDE.TOTAL_SEDE

FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV-- WHERE REOV.COD_TOVA ='DV'

JOIN OPS$GTTORA.SEDE_SEGUIM_DEVOLUCIONES SEDE

ON SEDE.ID_EPER_SEDE = REOV.ID_EPER

AND SEDE.ID_REGE_SEDE =REOV.REG_ID_EPER

AND REOV.COD_TOVA IN ('DV') -- Solo devoluciones y exzcluimos propuestas (PD)

ORDER BY REOV.ID_EPER DESC, REOV.ID_REOV ;


Y obtenemos

ID_EPER  |COD_TOVA|REG_ID_EPER|NUMEXP_ORGA_REOV|FECHA_OPERACION_REOV   |PRINCIPAL_SEDE|RECARGO_SEDE|INTERESES_SEDE|COSTAS_VALOR_SEDE|COSTAS_REGE_SEDE|INTERESES_DEMORA_SEDE|TOTAL_SEDE|
---------+--------+-----------+----------------+-----------------------+--------------+------------+--------------+-----------------+----------------+---------------------+----------+
134586018|DV      |  134596861|09032023001151  |2023-09-11 18:01:01.000|          1720|           0|             0|                0|                |                   12|      1732|
134571986|DV      |  134876011|09032023001303  |2023-09-08 18:00:42.000|         19140|           0|             0|                0|                |                  134|     19274|
134563401|DV      |  134563606|09032023001132  |2023-09-04 18:00:37.000|          5050|           0|             0|                0|                |                   24|      5074|
134563400|DV      |  134596955|09032023001152  |2023-09-11 18:01:05.000|          5050|           0|             0|                0|                |                   39|      5089|
134430687|DV      |  134558822|09032023001131  |2023-08-07 18:02:25.000|          3300|           0|             0|                0|                |                    4|      3304|



4. Fraccionamientos

Veamos varias consultas para ver información de los fraccionamientos

SELECT * FROM OPS$GTTORA.FRAC_FRACC_APLICACION_COSE; --COSTAS DE LOS RECIBOS


--RECIBODS, FRACCIONAMIENTOS Y APLICACION

SELECT REFR.*,'---------', FRRE.*,'---------------------------',FRAV.*

FROM OPS$GTTORA.REFR_REGISTRO_FRACCIONAMIENTOS REFR

LEFT JOIN OPS$GTTORA.FRRE_FRACCIONES_REFERENCIAS FRRE ON FRRE.ID_ACTU=REFR.ID_ACTU

LEFT JOIN OPS$GTTORA.FRAV_FRACC_APLICACION_VALOR FRAV ON FRAV.ID_ACTU =REFR.ID_ACTU AND FRAV.NUM_FRAC_FRRE =FRRE.NUM_FRAC_FRRE

WHERE REFR.ANYO_REFR >2021;


Se dedicará un post especial para los fraccionamientos.

5. Planes de pago

Las cuentas de cobro de los planes de pago se pueden seguirt con las mismas consultas que la de los cobros vistos anteriormente. Si queremos resringir la consulta a ellos, basta con aladir una clausula a WHERE


SELECT --IMPO.ID_IMPO, APLI.ID_APLI, IMPO1.ID_IMPO,

IMPO.ID_PADRE_IMPO, IMPO.ID_COBR, IMPO.FECHA_COBRO_IMPO, IMPO.IMPORTE_IMPO, IMPO.COD_IMPORTE,

IMPO1.COD_IMPORTE, REOV.COD_TOVA, IMPO1.IMPORTE_IMPO,

APLI.IMPORTE_APLI, APLI.PORC_RECARGO_APRE_APLI

FROM OPS$GTTORA.IMPO_IMPORTES IMPO

JOIN OPS$GTTORA.APLI_APLICACIONES APLI ON APLI.ID_IMPO=IMPO.ID_IMPO

JOIN OPS$GTTORA.IMPO_IMPORTES IMPO1 ON IMPO1.ID_IMPO =APLI.IMP_ID_IMPO

LEFT JOIN OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV ON REOV.ID_COBR=IMPO.ID_COBR

WHERE

EXISTS(

SELECT * FROM OPS$GTTORA.REOV_REGISTRO_OP_VALOR REOV

WHERE REOV.ID_EPER=IMPO.ID_PADRE_IMPO AND REOV.COD_TOVA IN('PL'))

ORDER BY IMPO.ID_PADRE_IMPO DESC, IMPO.ID_IMPO

;


y obtenemos en algunos casos un  monton de iongresos parciales


ID_PADRE_IMPO|ID_COBR |FECHA_COBRO_IMPO       |IMPORTE_IMPO|COD_IMPORTE|COD_IMPORTE|COD_TOVA|IMPORTE_IMPO|IMPORTE_APLI|PORC_RECARGO_APRE_APLI|
-------------+--------+-----------------------+------------+-----------+-----------+--------+------------+------------+----------------------+
    134620049|50323923|2023-06-07 00:00:00.000|      -27098|IC         |PR         |CO      |       27098|       27098|                      |

    132743747|49793728|2023-01-05 00:00:00.000|        -866|IC         |PR         |        |       45242|         866|                      |
    132743747|49793729|2023-02-06 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |
    132743747|49840400|2023-03-06 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |
    132743747|50086604|2023-04-07 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |
    132743747|50152951|2023-05-08 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |
    132743747|50323980|2023-06-07 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |
    132743747|50411241|2023-07-07 00:00:00.000|       -7396|IC         |PR         |        |       45242|        7396|                      |




No hay comentarios :

Publicar un comentario