Arregar Catalogo de Cuentas Contables
De CidesaWiki
(Diferencias entre revisiones)
| Línea 68: | Línea 68: | ||
</pre> | </pre> | ||
| + | --[[Usuario:Pablosilva|Pablosilva]] 17:24 9 dic 2008 (VET) | ||
Revisión de 21:24 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;
--Pablosilva 17:24 9 dic 2008 (VET)