gke_arce_rupe2
.rupe
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
generar_datos_productos()
Parameters
Name
Type
Mode
Definition
declare /* variables auxiliares para actualizar los registros */ aux_prv_id integer; aux_codigo_producto integer; aux_descripcion VARCHAR(255); aux_tipo_producto VARCHAR(255); aux_vso_articulo_ars_id integer; aux_vso_sub_clase_scs_id integer; aux_vso_clase_cls_id integer; aux_vso_sub_familia_sfs_id integer; aux_vso_familia_fms_id integer; articulo_habilitado boolean; sub_clase_habilitado boolean; clase_habilitado boolean; sub_familia_habilitado boolean; familia_habilitado boolean; habilitado boolean; vinculacion_procesada integer; /* cursor que retorna los productos o servicios de los proveedores */ C_producto CURSOR FOR SELECT v.vso_id FROM rupe.rupe_vinculaciones_sice_proveedor v; reg_producto RECORD; BEGIN delete from rupe.exportar_productos_indicador; OPEN C_producto; LOOP FETCH C_producto INTO reg_producto; EXIT WHEN NOT FOUND; select id_vinculacion from rupe.exportar_productos_indicador into vinculacion_procesada where id_vinculacion = reg_producto.vso_id; if not found then select vso_articulo_ars_id,vso_sub_clase_scs_id,vso_clase_cls_id,vso_sub_familia_sfs_id,vso_familia_fms_id,vso_proveedor_prv_id into aux_vso_articulo_ars_id,aux_vso_sub_clase_scs_id,aux_vso_clase_cls_id,aux_vso_sub_familia_sfs_id,aux_vso_familia_fms_id,aux_prv_id from rupe.rupe_vinculaciones_sice_proveedor where vso_id = reg_producto.vso_id; aux_codigo_producto := null; aux_descripcion := null; aux_tipo_producto := null; habilitado := false; articulo_habilitado := false; sub_clase_habilitado := false; clase_habilitado := false; sub_familia_habilitado := false; familia_habilitado := false; if not (aux_vso_articulo_ars_id is null) and not (aux_vso_sub_clase_scs_id is null) and not (aux_vso_clase_cls_id is null) and not (aux_vso_sub_familia_sfs_id is null) and not (aux_vso_familia_fms_id is null) then aux_tipo_producto := 'ARTICULO'; select ars_codigo_articulo, ars_descripcion,ars_habilitado into aux_codigo_producto,aux_descripcion,articulo_habilitado from rupe.rupe_articulos_sice where ars_id = aux_vso_articulo_ars_id; select scs_habilitado into sub_clase_habilitado from rupe.rupe_sub_clases_sice where scs_id = aux_vso_sub_clase_scs_id; select cls_habilitado into clase_habilitado from rupe.rupe_clases_sice where cls_id = aux_vso_clase_cls_id; select sfs_habilitado into sub_familia_habilitado from rupe.rupe_sub_familias_sice where sfs_id = aux_vso_sub_familia_sfs_id; select fms_habilitado into familia_habilitado from rupe.rupe_familias_sice where fms_id = aux_vso_familia_fms_id; if articulo_habilitado and sub_clase_habilitado and clase_habilitado and sub_familia_habilitado and familia_habilitado then habilitado := true; end if; end if; if (aux_vso_articulo_ars_id is null) and not (aux_vso_sub_clase_scs_id is null) and not (aux_vso_clase_cls_id is null) and not (aux_vso_sub_familia_sfs_id is null) and not (aux_vso_familia_fms_id is null) then aux_tipo_producto := 'SUB_CLASE'; select scs_codigo_clase,scs_descripcion,scs_habilitado into aux_codigo_producto,aux_descripcion,sub_clase_habilitado from rupe.rupe_sub_clases_sice where scs_id = aux_vso_sub_clase_scs_id; select cls_habilitado into clase_habilitado from rupe.rupe_clases_sice where cls_id = aux_vso_clase_cls_id; select sfs_habilitado into sub_familia_habilitado from rupe.rupe_sub_familias_sice where sfs_id = aux_vso_sub_familia_sfs_id; select fms_habilitado into familia_habilitado from rupe.rupe_familias_sice where fms_id = aux_vso_familia_fms_id; if sub_clase_habilitado and clase_habilitado and sub_familia_habilitado and familia_habilitado then habilitado := true; end if; end if; if (aux_vso_articulo_ars_id is null) and (aux_vso_sub_clase_scs_id is null) and not (aux_vso_clase_cls_id is null) and not (aux_vso_sub_familia_sfs_id is null) and not (aux_vso_familia_fms_id is null) then aux_tipo_producto := 'CLASE'; select cls_codigo_clase,cls_descripcion,cls_habilitado into aux_codigo_producto,aux_descripcion,clase_habilitado from rupe.rupe_clases_sice where cls_id = aux_vso_clase_cls_id; select sfs_habilitado into sub_familia_habilitado from rupe.rupe_sub_familias_sice where sfs_id = aux_vso_sub_familia_sfs_id; select fms_habilitado into familia_habilitado from rupe.rupe_familias_sice where fms_id = aux_vso_familia_fms_id; if clase_habilitado and sub_familia_habilitado and familia_habilitado then habilitado := true; end if; end if; if (aux_vso_articulo_ars_id is null) and (aux_vso_sub_clase_scs_id is null) and (aux_vso_clase_cls_id is null) and not (aux_vso_sub_familia_sfs_id is null) and not (aux_vso_familia_fms_id is null) then aux_tipo_producto := 'SUB_FAMILIA'; select sfs_codigo_familia,sfs_descripcion,sfs_habilitado into aux_codigo_producto,aux_descripcion,sub_familia_habilitado from rupe.rupe_sub_familias_sice where sfs_id = aux_vso_sub_familia_sfs_id; select fms_habilitado into familia_habilitado from rupe.rupe_familias_sice where fms_id = aux_vso_familia_fms_id; if sub_familia_habilitado and familia_habilitado then habilitado := true; end if; end if; if (aux_vso_articulo_ars_id is null) and (aux_vso_sub_clase_scs_id is null) and (aux_vso_clase_cls_id is null) and (aux_vso_sub_familia_sfs_id is null) and not (aux_vso_familia_fms_id is null) then aux_tipo_producto := 'FAMILIA'; select fms_codigo_familia,fms_descripcion,fms_habilitado into aux_codigo_producto,aux_descripcion,familia_habilitado from rupe.rupe_familias_sice where fms_id = aux_vso_familia_fms_id; if familia_habilitado then habilitado := true; end if; end if; if habilitado then insert into rupe.exportar_productos_indicador values (reg_producto.vso_id,aux_prv_id,aux_codigo_producto,aux_descripcion,aux_tipo_producto); end if; end if; END LOOP; CLOSE C_producto; Raise debug 'finalizo el proceso de generar tabla para exportar productos '; END;