FUNCTION actExistencia(num_doc_tmp) DEFINE idx,cantidad,num_doc_tmp INTEGER DEFINE movi4 DYNAMIC ARRAY OF RECORD num_doc SMALLINT, bodega SMALLINT, id_seccion INT, id_tramo INT, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, cantidad DECIMAL(12,5), solicitada DECIMAL(12,5) END RECORD LET idx = 1 DECLARE bseccionesDHtmp CURSOR FOR SELECT num_doc,bodega,seccion,tramo, cod_n,cod_grupo,cod_tipo,cod_sec,cantidad_1,solicitado FROM tmpubicacion WHERE num_doc = num_doc_tmp FOREACH bseccionesDHtmp INTO movi4[idx].* IF movi4[idx].cantidad IS NOT NULL THEN IF movi4[idx].solicitada IS NOT NULL THEN LET cantidad = movi4[idx].cantidad - movi4[idx].solicitada ELSE LET cantidad = movi4[idx].cantidad END IF DISPLAY idx,"-cantidad nueva: ",cantidad DISPLAY "num_doc_tmp: ",num_doc_tmp DISPLAY "bodega: ",movi4[idx].bodega DISPLAY "id_seccion: ",movi4[idx].id_seccion DISPLAY "id_tramo: ",movi4[idx].id_tramo DISPLAY "cod_n: ",movi4[idx].cod_n DISPLAY "cod_grupo: ",movi4[idx].cod_grupo DISPLAY "cod_tipo: ",movi4[idx].cod_tipo DISPLAY "cod_sec: ",movi4[idx].cod_sec UPDATE iptb00057 SET cantidad_1 = cantidad WHERE cod_bodega = movi4[idx].bodega AND id_seccion = movi4[idx].id_seccion AND cod_tramo = movi4[idx].id_tramo AND cod_n = movi4[idx].cod_n AND cod_grupo = movi4[idx].cod_grupo AND cod_tipo = movi4[idx].cod_tipo AND cod_sec = movi4[idx].cod_sec DELETE FROM tmpubicacion WHERE bodega = movi4[idx].bodega AND seccion = movi4[idx].id_seccion AND tramo = movi4[idx].id_tramo AND cod_n = movi4[idx].cod_n AND cod_grupo = movi4[idx].cod_grupo AND cod_tipo = movi4[idx].cod_tipo AND cod_sec = movi4[idx].cod_sec AND num_doc = num_doc_tmp END IF LET idx = idx+1 END FOREACH END FUNCTION