declare

cursor c IS
SELECT res_rsv_artikel_key,
       res_artikel_nr,
       res_rsv_artikel_aantal,
       res_rsv_artikel_prijs,
       res_rsv_artikel_inkoopprijs
  FROM aarw_imp_catering i
 WHERE NOT EXISTS (SELECT res_artikel_key
                     FROM res_artikel ra
                    WHERE ra.res_artikel_nr = i.res_artikel_nr)
   AND ins_discipline_omschrijving = 'Diverse';
   
v_res_rsv_artikel_prijs NUMBER(8,2);
v_res_artikel_nr  VARCHAR2(100);
v_res_rsv_artikel_aantal NUMBER(3);
v_res_rsv_artikel_inkoopprijs NUMBER(8,2);

BEGIN

     FOR rec in C 
     LOOP
        BEGIN
           v_res_artikel_nr := rec.res_artikel_nr;
           v_res_rsv_artikel_aantal := rec.res_rsv_artikel_aantal;       

           -- pas de artikelnummers aan van de losse artikelen. Deze worden binnen 
           -- RWS nog niet op de juiste catalogus geboekt.
           IF v_res_artikel_nr = 'Los-Fris'   THEN v_res_artikel_nr := 'LOSPROD4'; END IF;
           IF v_res_artikel_nr = 'Los-Gebak'  THEN v_res_artikel_nr := 'LOSPROD6'; END IF;
           IF v_res_artikel_nr = 'Los-Koffie' THEN v_res_artikel_nr := 'LOSPROD1'; END IF;
           IF v_res_artikel_nr = 'Los-Saucys' THEN v_res_artikel_nr := 'LOSPROD7'; END IF;
           IF v_res_artikel_nr = 'Los-Water'  THEN v_res_artikel_nr := 'LOSPROD3'; END IF;
           IF v_res_artikel_nr = 'Los-Waterk' THEN v_res_artikel_nr := 'LOSPROD2'; END IF;
            
            BEGIN
               SELECT v_res_rsv_artikel_aantal * res_artikel_prijs
                 INTO v_res_rsv_artikel_prijs
                 FROM res_artikel ra
               WHERE ra.res_artikel_nr = v_res_artikel_nr
                 AND res_artikel_verwijder IS NULL;
            EXCEPTION WHEN NO_DATA_FOUND
            THEN
               v_res_rsv_artikel_prijs := NULL;
            END;
            --
            BEGIN
               SELECT v_res_rsv_artikel_aantal * res_artikel_inkoopprijs
                 INTO v_res_rsv_artikel_inkoopprijs
                 FROM res_artikel ra
               WHERE ra.res_artikel_nr = v_res_artikel_nr
                 AND res_artikel_verwijder IS NULL;
            EXCEPTION WHEN NO_DATA_FOUND
            THEN
               v_res_rsv_artikel_inkoopprijs := NULL;
            END;
        dbms_output.put_line (v_res_artikel_nr || ' - ' || v_res_rsv_artikel_prijs || ' - ' || v_res_rsv_artikel_inkoopprijs);
        
        UPDATE aarw_imp_catering
           SET res_rsv_artikel_prijs = v_res_rsv_artikel_prijs,
               res_rsv_artikel_inkoopprijs = v_res_rsv_artikel_inkoopprijs,
               res_artikel_nr = v_res_artikel_nr,
               export_datum = NULL,
               mld_opdr_key = NULL
         WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
               
        
        END;
      END LOOP;
  END;
/