| Version 9 (modified by , 3 days ago) ( diff ) |
|---|
Додавање на продукт
Оваа функционалност овозможува додавање на нов продукт во системот.
Функција fn_validate_seller_package
Проверува дали продавачот има право да објавува продукти.
- Проверува дали корисникот постои и е активен.
- Проверува дали корисникот е верифициран.
- Проверува дали корисникот има активен пакет чиј период на важност не е истечен.
CREATE OR REPLACE FUNCTION fn_validate_seller_package(p_seller_id INT)
RETURNS VOID LANGUAGE plpgsql AS $$
begin
IF NOT EXISTS (
SELECT 1 FROM appuser WHERE user_id = p_seller_id AND is_active = 1
) THEN
RAISE EXCEPTION 'Sellerot ne postoi ili ne e aktiven';
END IF;
IF NOT EXISTS (
SELECT 1 FROM appuser
WHERE user_id = p_seller_id AND is_verified = 1
) THEN
RAISE EXCEPTION 'Sellerot ne e verificiran';
END IF;
IF NOT EXISTS (
SELECT 1 FROM userpackages
WHERE seller_id = p_seller_id
AND CURRENT_TIMESTAMP BETWEEN start_date AND end_date
) THEN
RAISE EXCEPTION 'Sellerot nema aktiven paket (istecen ili ne postoi)';
END IF;
END;
$$;
Функција fn_validate_product_attribute
Валидира парови атрибут:вредност
- Проверува дали атрибутот е дефиниран за категоријата во која припаѓа продуктот.
- Проверува дали внесената вредност е една од дозволените вредности за атрибутот.
CREATE OR REPLACE FUNCTION fn_validate_product_attribute(
p_category_id INT,
p_category_attribute_id INT,
p_attribute_value VARCHAR
)
RETURNS VOID LANGUAGE plpgsql AS $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM categoryattributes
WHERE category_attribute_id = p_category_attribute_id
AND category_id = p_category_id
) THEN
RAISE EXCEPTION 'Atributot % ne pripagja na kategorijata', p_category_attribute_id;
END IF;
IF NOT EXISTS (
SELECT 1 FROM categoryattributesvalues
WHERE category_attribute_id = p_category_attribute_id
AND allowed_value = p_attribute_value
) THEN
RAISE EXCEPTION 'Vrednosta % ne pripagja na atributot', p_attribute_value;
END IF;
END;
$$;
Note:
See TracWiki
for help on using the wiki.
