Arregar Catalogo de Cuentas Contables

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
(New page: CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas() RETURNS "numeric" AS $BODY$ DECLARE REGISTRO RECORD; REGISTRO1 RECORD; SALDO_ANT NUMERIC; SALDO_ACT NUMERIC; CADENA...)
Línea 1: Línea 1:
-
 
CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas()
CREATE OR REPLACE FUNCTION "SIMA003".arreglarcuentas()
   RETURNS "numeric" AS
   RETURNS "numeric" AS

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;

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas