]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0470.schema.config_update_hard_due_dates_repairs.sql
LP#1178377: Make bib source optional element from unapi.bre
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0470.schema.config_update_hard_due_dates_repairs.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0470');
4
5 CREATE OR REPLACE FUNCTION config.update_hard_due_dates () RETURNS INT AS $func$
6 DECLARE
7     temp_value  config.hard_due_date_values%ROWTYPE;
8     updated     INT := 0;
9 BEGIN
10     FOR temp_value IN
11       SELECT  DISTINCT ON (hard_due_date) *
12         FROM  config.hard_due_date_values
13         WHERE active_date <= NOW() -- We've passed (or are at) the rollover time
14         ORDER BY hard_due_date, active_date DESC -- Latest (nearest to us) active time
15    LOOP
16         UPDATE  config.hard_due_date
17           SET   ceiling_date = temp_value.ceiling_date
18           WHERE id = temp_value.hard_due_date
19                 AND ceiling_date <> temp_value.ceiling_date; -- Time is equal if we've already updated the chdd
20
21         IF FOUND THEN
22             updated := updated + 1;
23         END IF;
24     END LOOP;
25
26     RETURN updated;
27 END;
28 $func$ LANGUAGE plpgsql;
29
30 COMMIT;