| | 41 | |
| | 42 | |
| | 43 | |
| | 44 | = Функција fn_validate_product_attribute |
| | 45 | |
| | 46 | Валидира парови атрибут:вредност |
| | 47 | |
| | 48 | * Проверува дали атрибутот е дефиниран за категоријата во која припаѓа продуктот. |
| | 49 | * Проверува дали внесената вредност е една од дозволените вредности за атрибутот. |
| | 50 | |
| | 51 | {{{ |
| | 52 | CREATE OR REPLACE FUNCTION fn_validate_product_attribute( |
| | 53 | p_category_id INT, |
| | 54 | p_category_attribute_id INT, |
| | 55 | p_attribute_value VARCHAR |
| | 56 | ) |
| | 57 | RETURNS VOID LANGUAGE plpgsql AS $$ |
| | 58 | BEGIN |
| | 59 | IF NOT EXISTS ( |
| | 60 | SELECT 1 FROM categoryattributes |
| | 61 | WHERE category_attribute_id = p_category_attribute_id |
| | 62 | AND category_id = p_category_id |
| | 63 | ) THEN |
| | 64 | RAISE EXCEPTION 'Atributot % ne pripagja na kategorijata', p_category_attribute_id; |
| | 65 | END IF; |
| | 66 | |
| | 67 | IF NOT EXISTS ( |
| | 68 | SELECT 1 FROM categoryattributesvalues |
| | 69 | WHERE category_attribute_id = p_category_attribute_id |
| | 70 | AND allowed_value = p_attribute_value |
| | 71 | ) THEN |
| | 72 | RAISE EXCEPTION 'Vrednosta % ne pripagja na atributot', p_attribute_value; |
| | 73 | END IF; |
| | 74 | END; |
| | 75 | $$; |
| | 76 | }}} |
| | 77 | |
| | 78 | |
| | 79 | |