Changes between Version 10 and Version 11 of DatabaseProgramming


Ignore:
Timestamp:
06/14/26 15:55:54 (3 days ago)
Author:
231072
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v10 v11  
    168168$$;
    169169}}}
     170
     171
     172
     173== Управување со кошничка
     174
     175Оваа функционалност овозможува додавање, бришење и ажурирање на продукти во кошничката.
     176
     177= Функција fn_validate_product_stock
     178
     179Проверува дали постои доволна количина од избраниот продукт за извршување на бараната операција.
     180
     181{{{
     182CREATE OR REPLACE FUNCTION fn_validate_product_stock(
     183    p_product_id INT,
     184    p_quantity   INT
     185)
     186RETURNS VOID LANGUAGE plpgsql AS $$
     187DECLARE all_stock INT;
     188BEGIN
     189    SELECT quantity INTO all_stock
     190    FROM product
     191    WHERE product_id = p_product_id AND is_active = TRUE;
     192
     193    IF NOT FOUND THEN
     194        RAISE EXCEPTION 'Produktot ne postoi ili ne e aktiven';
     195    END IF;
     196
     197    IF p_quantity > all_stock THEN
     198        RAISE EXCEPTION 'Nema dovolno zaliha. Barate: %, dostapno: %', p_quantity, all_stock;
     199    END IF;
     200END;
     201$$;
     202}}}
     203
     204
     205= Функција fn_calc_cart_total
     206
     207Ја пресметува вкупната вредност на кошничката.
     208
     209{{{
     210CREATE OR REPLACE FUNCTION fn_calc_cart_total(p_cart_id INT)
     211RETURNS INT LANGUAGE plpgsql AS $$
     212DECLARE v_total INT;
     213BEGIN
     214    SELECT COALESCE(SUM(quantity * price_at_time), 0)
     215    INTO v_total
     216    FROM cartitems
     217    WHERE cart_id = p_cart_id;
     218
     219    RETURN v_total;
     220END;
     221$$;
     222}}}
     223
     224
     225