gke_arce_rupe2
.rupe
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
migrar_articulos()
Parameters
Name
Type
Mode
Definition
declare rev integer; family_cod varchar(255); family_id integer; sub_family_cod varchar(255); sub_family_id integer; clase_codigo varchar(255); clase_id integer; sub_clase_codigo varchar(255); sub_clase_id integer; art_codigo varchar(255); art_id integer; art_codigo_clase varchar(255); art_codigo_sub_clase varchar(255); art_codigo_familia varchar(255); art_codigo_sub_familia varchar(255); art_codigo_articulo varchar(255); art_crea_fecha timestamp; art_crea_origen integer; art_crea_usu varchar(255); art_descripcion VARCHAR(255); art_fecha_baja date; art_habilitado boolean; art_motivo_baja varchar(255); art_ultmod_fecha timestamp; art_ultmod_origen integer; art_ultmod_usu varchar(255); art_version integer; art_sub_clase_id integer; art_descripcion_nuevo VARCHAR(255); art_fecha_baja_nuevo date; art_motivo_baja_nuevo varchar(255); /* cursor que retorna los articulos en sice*/ C_art CURSOR FOR SELECT sa.fami_cod, sa.subf_cod, sa.clas_cod, sa.subc_cod, sa.cod FROM rupe.sice_articulos sa; reg_art RECORD; BEGIN OPEN C_art; /* Recorro todos los articulos que hay en sice */ LOOP FETCH C_art INTO reg_art; EXIT WHEN NOT FOUND; rev:= rupe.new_revid(); art_fecha_baja = NULL; art_motivo_baja = NULL; art_id = NULL; art_codigo_familia = NULL; art_crea_fecha = NULL; art_crea_origen = NULL; art_crea_usu = NULL; art_descripcion = NULL; art_habilitado = NULL; art_ultmod_fecha = NULL; art_ultmod_origen = NULL; art_ultmod_usu = NULL; art_version = NULL; art_habilitado = FALSE; art_descripcion_nuevo = NULL; art_fecha_baja_nuevo = NULL; art_motivo_baja_nuevo = NULL; art_codigo_clase = NULL; art_codigo_sub_clase = NULL; art_codigo_familia = NULL; art_codigo_sub_familia = NULL; art_codigo_articulo = NULL; select fami_cod, subf_cod, clas_cod, subc_cod, cod into family_cod, sub_family_cod, clase_codigo, sub_clase_codigo, art_codigo from rupe.sice_articulos where fami_cod = reg_art.fami_cod and subf_cod = reg_art.subf_cod and subc_cod = reg_art.subc_cod and cod = reg_art.cod; select fs.ars_id, fs.ars_codigo_articulo,fs.ars_codigo_clase, fs.ars_codigo_familia,fs.ars_codigo_sub_clase, fs.ars_codigo_sub_familia, fs.ars_crea_fecha, fs.ars_crea_origen, fs.ars_crea_usu, fs.ars_descripcion, fs.ars_fecha_baja, fs.ars_habilitado, fs.ars_motivo_baja, fs.ars_ultmod_fecha, fs.ars_ultmod_origen, fs.ars_ultmod_usu, fs.ars_version, fs.ars_sub_clase_scs_id into art_id, art_codigo_articulo, art_codigo_clase, art_codigo_familia,art_codigo_sub_clase, art_codigo_sub_familia, art_crea_fecha, art_crea_origen, art_crea_usu, art_descripcion, art_fecha_baja, art_habilitado, art_motivo_baja, art_ultmod_fecha, art_ultmod_origen, art_ultmod_usu, art_version, art_sub_clase_id from rupe.rupe_articulos_sice fs where fs.ars_codigo_familia = family_cod and fs.ars_codigo_sub_familia= sub_family_cod and fs.ars_codigo_clase = clase_codigo and fs.ars_codigo_sub_clase = sub_clase_codigo and fs.ars_codigo_articulo = art_codigo; select fami_cod, subf_cod, clas_cod, subc_cod, cod, descripcion, fecha_baja, motivo_baja into family_cod, sub_family_cod, clase_codigo, sub_clase_codigo, art_codigo, art_descripcion_nuevo, art_fecha_baja_nuevo, art_motivo_baja_nuevo from sice_articulos where cod = reg_art.cod and fami_cod = reg_art.fami_cod and subf_cod = reg_art.subf_cod and clas_cod = reg_art.clas_cod and subc_cod = reg_art.subc_cod; /*obtengo el id de la sub clase */ select fm.scs_id into sub_clase_id from rupe.rupe_sub_clases_sice fm where fm.scs_codigo_familia = family_cod and fm.scs_codigo_sub_familia = sub_family_cod and fm.scs_codigo_clase = clase_codigo and fm.scs_codigo_sub_clase = sub_clase_codigo; if (art_id is null) then art_habilitado = FALSE; art_crea_usu = 'MIGRA'; art_ultmod_usu = 'MIGRA'; art_crea_origen = 1; art_ultmod_origen = 1; if (art_fecha_baja_nuevo IS NULL) THEN art_habilitado = TRUE; end if; insert into rupe.rupe_articulos_sice (ars_codigo_articulo,ars_codigo_clase, ars_codigo_familia,ars_codigo_sub_clase,ars_codigo_sub_familia,ars_crea_fecha,ars_crea_origen,ars_crea_usu,ars_descripcion,ars_fecha_baja,ars_habilitado,ars_motivo_baja,ars_ultmod_fecha,ars_ultmod_origen,ars_ultmod_usu,ars_version,ars_sub_clase_scs_id) values (art_codigo,clase_codigo,family_cod,sub_clase_codigo, sub_family_cod, current_timestamp, art_crea_origen, art_crea_usu, art_descripcion_nuevo, art_fecha_baja_nuevo, art_habilitado, art_motivo_baja_nuevo, current_timestamp, art_ultmod_origen, art_ultmod_usu, 0, sub_clase_id); select fam.ars_id into art_id from rupe.rupe_articulos_sice fam where fam.ars_codigo_familia = family_cod and fam.ars_codigo_clase = clase_codigo and fam.ars_codigo_sub_familia= sub_family_cod and fam.ars_codigo_sub_clase = sub_clase_codigo and fam.ars_codigo_articulo = art_codigo; insert into audit.rupe_articulos_sice_aud values (art_id,rev,0,art_codigo,clase_codigo,family_cod,sub_clase_codigo, sub_family_cod, current_timestamp, art_crea_origen, art_crea_usu, art_descripcion_nuevo, art_fecha_baja_nuevo, art_habilitado, art_motivo_baja_nuevo, current_timestamp, art_ultmod_origen, art_ultmod_usu, 0, sub_clase_id); else if (art_fecha_baja_nuevo IS NULL) THEN art_habilitado = TRUE; end if; if ((art_sub_clase_id != sub_clase_id) or (art_descripcion != art_descripcion_nuevo) or (art_fecha_baja != art_fecha_baja_nuevo) or (art_motivo_baja != art_motivo_baja_nuevo)) THEN insert into audit.rupe_articulos_sice_aud values (art_id,rev,1,art_codigo_articulo,art_codigo_clase, art_codigo_familia,art_codigo_sub_clase,art_codigo_sub_familia, art_crea_fecha, art_crea_origen, art_crea_usu, art_descripcion_nuevo, art_fecha_baja_nuevo, art_habilitado, art_motivo_baja_nuevo, current_timestamp, art_ultmod_origen, 'MIGRA', art_version+1,sub_clase_id); update rupe.rupe_articulos_sice set ars_descripcion = art_descripcion_nuevo, ars_ultmod_fecha = current_timestamp, ars_ultmod_usu = 'MIGRA', ars_habilitado = art_habilitado, ars_fecha_baja = art_fecha_baja_nuevo, ars_motivo_baja = art_motivo_baja_nuevo, ars_version = (ars_version + 1), ars_sub_clase_scs_id = sub_clase_id where ars_id = art_id; end if; end if; END LOOP; CLOSE C_art; Raise debug 'finalizo el proceso de actualizar los articulos '; END;