wiki:UseCaseNovaNaracka

Version 9 (modified by 201156, 4 weeks ago) ( diff )

--

Актер: Менаџер на производство

-Менаџерот прима нарачка од клиент за нов артикл, воведува нов артикл, воведува нова фирма однсоно клиент и прави соодветна нарачка во листата на нарачки.

Чекор 1.

Менаџерот прима нарачка од нов непознат клиент за нов артикл, по примањето менаџерот како корисник на системот оди во формата за внес на нов клиент односно нова фирма. При што се појавува форма за внес. По внес на потребните податоци - Naziv, Adresa, Broj.

По внесот на податоците и клик на копчето „Поднеси“ во sql следи следната скрипта со променливите од полињата:


CREATE OR REPLACE FUNCTION insert_firma(
    p_naziv VARCHAR(255),
    p_adresa VARCHAR(255),
    p_broj VARCHAR(255)
) RETURNS VOID AS $$
BEGIN
    INSERT INTO Firma (Naziv, Adresa, Broj)
    VALUES (p_naziv, p_adresa, p_broj);
END;
$$ LANGUAGE plpgsql;

Чекор 2.

По внес на фирма Менаџерот оди да го внесе артиклот кој клиентот го нарачал при што ја отвора формата за внес на артикл. Ги поплнува полињата за - Naziv, Cena, EdMera, StapkaDDV, Zaliha.

По внес на податоците повторно клика на копчето „Поднеси“ при што во sql следи следната скрипта со променливите од полињата за внес:


CREATE OR REPLACE FUNCTION insert_artikl(
    p_naziv_artikl VARCHAR(255),
    p_cena DECIMAL(10,2),
    p_edmera VARCHAR(255),
    p_stapka_ddv DECIMAL(5,2),
    p_zaliha INT
) RETURNS VOID AS $$
BEGIN
    INSERT INTO Artikl (Naziv, Cena, EdMera, Stapka, Zaliha)
    VALUES (p_naziv_artikl, p_cena, p_edmera, p_stapka_ddv, p_zaliha);
END;
$$ LANGUAGE plpgsql;

Чекор 3.

По внес на артикли и клиент формира нарачка во формата за внес на нарачка при што бира фирма, бира артикли кој што сега ги внесол внесува количина и датум на почеток и крај за планот за изработка во sql базата на податоци одат следните повици:

Креирање Нарачка

CREATE OR REPLACE FUNCTION create_full_naracka(
    p_kolicina INT,
    p_datum DATE,
    p_opis TEXT,
    p_firma_naziv VARCHAR(100),
    p_artikl_naziv VARCHAR(100),
    p_datum_start DATE,
    p_datum_end DATE
) RETURNS VOID AS $$
DECLARE
    v_naracka_id INT;
    v_firma_id INT;
    v_artikl_id INT;
    v_cena DECIMAL(10,2);
    v_izrabotka_plan_id INT;
BEGIN
    -- Get FirmaID
    SELECT FirmaID INTO v_firma_id
    FROM Firma
    WHERE Naziv = p_firma_naziv;
    
    -- Get ArtiklID and Cena
    SELECT ArtiklID, Cena INTO v_artikl_id, v_cena
    FROM Artikl
    WHERE Naziv = p_artikl_naziv;
    
    -- Insert into Naracka
    INSERT INTO Naracka (FirmaID, Datum, Opis)
    VALUES (v_firma_id, p_datum, p_opis)
    RETURNING NarackaID INTO v_naracka_id;
    
    -- Insert into Naracka_Artikl
    INSERT INTO Naracka_Artikl (NarackaID, ArtiklID, Kolicina, Cena)
    VALUES (v_naracka_id, v_artikl_id, p_kolicina, v_cena);
    
    -- Get IzrabotkaPlanID
    SELECT IzrabotkaPlanID INTO v_izrabotka_plan_id
    FROM IzrabotkaPlan
    WHERE DatumStart = p_datum_start AND DatumEnd = p_datum_end;
    
    -- Insert into Naracka_IzrabotkaPlan
    INSERT INTO Naracka_IzrabotkaPlan (NarackaID, IzrabotkaPlanID)
    VALUES (v_naracka_id, v_izrabotka_plan_id);
END;
$$ LANGUAGE plpgsql;


Note: See TracWiki for help on using the wiki.