mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 20:32:15 +00:00
67 lines
1.8 KiB
SQL
67 lines
1.8 KiB
SQL
CREATE OR REPLACE PROCEDURE update_quality
|
|
IS
|
|
CURSOR c_items IS
|
|
SELECT name, sell_in, quality FROM item FOR UPDATE;
|
|
l_item c_items%ROWTYPE;
|
|
l_name item.name%TYPE;
|
|
l_sell_in item.sell_in%TYPE;
|
|
l_quality item.quality%TYPE;
|
|
BEGIN
|
|
FOR l_item IN c_items
|
|
LOOP
|
|
l_name := l_item.name;
|
|
l_sell_in := l_item.sell_in;
|
|
l_quality := l_item.quality;
|
|
|
|
IF l_name <> 'Aged Brie' AND l_name <> 'Backstage passes to a TAFKAL80ETC concert' THEN
|
|
IF l_quality > 0 THEN
|
|
IF l_name <> 'Sulfuras, Hand of Ragnaros' THEN
|
|
l_quality := l_quality - 1;
|
|
END IF;
|
|
END IF;
|
|
ELSE
|
|
IF (l_quality < 50) THEN
|
|
l_quality := l_quality + 1;
|
|
IF l_name = 'Backstage passes to a TAFKAL80ETC concert' THEN
|
|
IF l_sell_in < 11 THEN
|
|
IF l_quality < 50 THEN
|
|
l_quality := l_quality + 1;
|
|
END IF;
|
|
END IF;
|
|
IF l_sell_in < 6 THEN
|
|
IF l_quality < 50 THEN
|
|
l_quality := l_quality + 1;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
IF l_name <> 'Sulfuras, Hand of Ragnaros' THEN
|
|
l_sell_in := l_sell_in - 1;
|
|
END IF;
|
|
|
|
IF l_sell_in < 0 THEN
|
|
IF l_name <> 'Aged Brie' THEN
|
|
IF l_name <> 'Backstage passes to a TAFKAL80ETC concert' THEN
|
|
IF l_quality > 0 THEN
|
|
IF l_name <> 'Sulfuras, Hand of Ragnaros' THEN
|
|
l_quality := l_quality - 1;
|
|
END IF;
|
|
END IF;
|
|
ELSE
|
|
l_quality := l_quality - l_quality;
|
|
END IF;
|
|
ELSE
|
|
IF l_quality < 50 THEN
|
|
l_quality := l_quality + 1;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
UPDATE item
|
|
SET name = l_name, sell_in = l_sell_in, quality = l_quality WHERE CURRENT OF c_items;
|
|
END LOOP;
|
|
END update_quality;
|
|
/
|