24 lines
666 B
PL/PgSQL
24 lines
666 B
PL/PgSQL
ALTER TABLE discount_codes
|
|
ADD COLUMN IF NOT EXISTS applicable_on_sales BOOLEAN NOT NULL DEFAULT FALSE;
|
|
|
|
UPDATE discount_codes
|
|
SET applicable_on_sales = TRUE
|
|
WHERE type != '%';
|
|
|
|
CREATE OR REPLACE FUNCTION discount_code_applicable_on_sales()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
IF NEW.type != '%' THEN
|
|
NEW.applicable_on_sales := TRUE;
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
DROP TRIGGER IF EXISTS discount_code_applicable_on_sales ON discount_codes;
|
|
|
|
CREATE TRIGGER discount_code_applicable_on_sales
|
|
BEFORE INSERT OR UPDATE ON discount_codes
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION discount_code_applicable_on_sales();
|