Arregar Catalogo de Cuentas Contables
De CidesaWiki
(Diferencias entre revisiones)
Pablosilva (Discusión | contribuciones)
(New page: CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas() RETURNS "numeric" AS $BODY$ DECLARE REGISTRO RECORD; REGISTRO1 RECORD; SALDO_ANT NUMERIC; SALDO_ACT NUMERIC; CADENA...)
Edición más nueva →
(New page: CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas() RETURNS "numeric" AS $BODY$ DECLARE REGISTRO RECORD; REGISTRO1 RECORD; SALDO_ANT NUMERIC; SALDO_ACT NUMERIC; CADENA...)
Edición más nueva →
Revisión de 21:13 9 dic 2008
CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas()
RETURNS "numeric" AS
$BODY$ DECLARE
REGISTRO RECORD; REGISTRO1 RECORD; SALDO_ANT NUMERIC; SALDO_ACT NUMERIC; CADENA VARCHAR; SALDOS CURSOR IS SELECT A.CODCTA,A.DESCTA,A.CARGAB,A.DEBCRE FROM CONTABB A ORDER BY CODCTA DESC; CUANTOS NUMERIC; I INTEGER; MONCRE NUMERIC;
BEGIN
set search_path to "SIMA003";
OPEN SALDOS;
FETCH SALDOS INTO REGISTRO;
IF FOUND THEN
LOOP
------------------AGREGAR RUPTURAS FALTANTES
CADENA:=RTRIM(REGISTRO.CODCTA);
for I in reverse LENGTH(CADENA)..1 loop
IF SUBSTR(REGISTRO.CODCTA,I,1)='-' THEN
CADENA:=SUBSTR(REGISTRO.CODCTA,1,I-1);
SELECT COUNT(*) INTO CUANTOS FROM CONTABB WHERE CODCTA=RPAD(CADENA,32,' ');
IF CUANTOS=0 THEN-- NO LO ENCONTRO ENTONCES INSERTO
INSERT INTO CARGABLES SELECT RPAD(CADENA,32,' '),'I' FROM CONTABB WHERE CODCTA=REGISTRO.CODCTA;
INSERT INTO CONTABB SELECT RPAD(CADENA,32,' '),DESCTA,FECINI,FECCIE,SALANT,DEBCRE,CARGAB,SALPRGPER,SALACUPER,SALPRGPERFOR FROM CONTABB WHERE CODCTA=REGISTRO.CODCTA;
--COMMIT;
ELSE
--SRW.MESSAGE(100,'COMO CONSEGUI EL NIVEL ENTONCES NO BUSCO MAS');
EXIT;
END IF;
--SRW.MESSAGE(100,'AQUI BUSCO, SI NO CONSIGO INSERTO, DE LO CONTRARIO NO DEBERIA SEGUIR');
END IF;
end loop; -----------------------FIN AGREGAR RUPTURAS
-------------------DETERMINAR CARGABLES SELECT COUNT(*) INTO CUANTOS FROM CONTABB WHERE CODCTA LIKE RTRIM(REGISTRO.CODCTA)||'%' AND LENGTH(RTRIM(REGISTRO.CODCTA))<LENGTH(RTRIM(CODCTA));
IF CUANTOS=0 THEN --ENTONCES ES CARGABLE
INSERT INTO CARGABLES SELECT CODCTA,CARGAB FROM CONTABB WHERE CODCTA=REGISTRO.CODCTA AND CARGAB='N';
UPDATE CONTABB SET CARGAB='C' WHERE CODCTA=REGISTRO.CODCTA;
--COMMIT;
ELSE
INSERT INTO CARGABLES SELECT CODCTA,CARGAB FROM CONTABB WHERE CODCTA=REGISTRO.CODCTA AND CARGAB='C';
UPDATE CONTABB SET CARGAB='N' WHERE CODCTA=REGISTRO.CODCTA;
--COMMIT;
END IF;
-------------------FIN DETERMINAR CARGABLES
FETCH SALDOS INTO REGISTRO;
IF NOT FOUND THEN
EXIT;
END IF;
END LOOP;
END IF;
CLOSE SALDOS;
RETURN 0;
END; $BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "SIMA003".arreglarcuentas() OWNER TO wiki;