/* SET_DWGUPTODATE: set de dwg_uptodate-velden op SYSDATE van de records die
 * nog niet een waarde hebben.
 * TRICKY: er wordt ipv. '=' 'IN' gebruikt, omdat reference_key meestal
 * een SELECT-statement is en IN gelijk is aan = voor een keiharde waarde.
 *
 * History:
 */

#define SET_VERWIJDER_CHILDREN_DEEL(child_table, parent_key, parent_verwijder,  \
        dummy1, child_verwijder, child_key, dummy2)           \
 BEGIN                                                                         \
    IF :new.parent_verwijder IS NOT NULL OR                                    \
      (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)    \
    THEN                                                                       \
        UPDATE child_table                                                     \
        SET child_verwijder = :new.parent_verwijder                            \
        WHERE child_table.child_key = :new.parent_key                          \
        AND ins_alg_ruimte_type NOT IN ('W','T');                              \
    END IF;                                                                    \
 END

#define SET_VERWIJDER_CHILDREN_DEELT(child_table, parent_key, parent_verwijder,  \
        dummy1, child_verwijder, child_key, dummy2)           \
 BEGIN                                                                         \
    IF :new.parent_verwijder IS NOT NULL OR                                    \
      (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)    \
    THEN                                                                       \
        UPDATE child_table                                                     \
        SET child_verwijder = :new.parent_verwijder                            \
        WHERE child_table.child_key = :new.parent_key                          \
        AND ins_alg_ruimte_type = 'T';\
    END IF;                                                                    \
 END

#define SET_VERWIJDER_CHILDREN_DEELWP(child_table, parent_key, parent_verwijder,        \
        dummy1, child_verwijder, child_key, dummy2)           \
 BEGIN                                                                         \
    IF :new.parent_verwijder IS NOT NULL                                       \
    _THEN                                                                       \
        UPDATE child_table                                                     \
        SET child_verwijder = :new.parent_verwijder                            \
        WHERE child_table.child_key = :new.parent_key                          \
        AND child_table.ins_alg_ruimte_type = 'W'                              \
        AND child_table.ins_deel_verwijder IS NULL;                            \
    _ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
    _THEN                                                                       \
        UPDATE child_table                                                     \
        SET child_verwijder = :new.parent_verwijder                            \
        WHERE child_table.child_key = :new.parent_key                          \
       AND ins_alg_ruimte_type = 'W';                                          \
     _END_IF;                                                                   \
 END
