Migrar Asignacion Inicial Presupuestaria
De CidesaWiki
1.- Migrar la asignacion de todas las partidas pero a nivel global, es decir, del periodo '00'.
2.- Cargamos la distribucion periodica en base al periodo 00:
INSERT INTO CPASIINI (CODPRE,NOMPRE,PERPRE,ANOPRE,MONASI,MONPRC,MONCOM,MONCAU,MONPAG,MONTRA,MONTRN,MONADI,MONDIM,MONAJU,MONDIS,DIFERE,STATUS ) SELECT CODPRE,NOMPRE, B.PEREJE,ANOPRE,ROUND(MONASI/12,2) AS MONASI,MONPRC,MONCOM,MONCAU,MONPAG, MONTRA,MONTRN,MONADI,MONDIM,MONAJU,ROUND(MONASI/12,2) AS MONDIS,DIFERE,STATUS FROM CPASIINI A,CPPEREJE B WHERE PERPRE='00' ORDER BY CODPRE,PEREJE
3.-Identificamos los titulos con diferencia por redondeo
create or replace view cpdifasiini as select a.codpre,a.monasi,b.monto,(a.monasi-b.monto) as diferencia from cpasiini a,(select codpre,sum(monasi) as monto from cpasiini where perpre<>'00' group by codpre) b where a.codpre=b.codpre and a.perpre='00' and a.monasi<>b.monto
4.- Generar los script para actualizar los titulos con diferencias.
select 'UPDATE CPASIINI SET MONASI=MONASI+('||TO_CHAR(DIFERENCIA,'0.99')||') WHERE CODPRE='||CHR(39)||CODPRE||CHR(39)||' AND PERPRE='||CHR(39)||'12'||CHR(39)||';' from cpdifasiini
el query anterior me genera un update por cada titulo con diferencia, se deben asegurar que al correr el query se trae todos los registros, luego se copian toda la columna y la copian y ejecutan en la herramienta de base de datos de su preferencia.
6.- consulta nuevamente la vista cpdifasiini para asegurarse que viene vacia (sin titulops con diferencias)
select * from cpdifasiini;
Elaborado por: Oswaldo Gutierrez --- Subido por: Vanessa Escalona