= Актер: Менаџер на поризводство, Шеф на производство -Менаџерот создава нарачка од познат купувач и артикл и ја додава на планот за изработка, шефот на поризводство го менува датумот на почеток на нарачката во планот за изработка. ---- == Чекор 1. Менаџерот прима нарачка од познат купувач при што веднаш по примањето се насочува кон формата за формирање нарачка во системот при што избира фирма од комбо бокс избира артикли, внесува количина останатите полиња кои што се потребни за нарачката. Во ова сценарио Менаџерот ја формира нарачката при што датум на почеток го става да биде утрешниот ден видејчи во системот веќе последната нарачка датумот за крај е истиот тој датум. За оваа постапката се прават следните повици до базата: ''Креирање Нарачка'' {{{ 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; }}} ---- == Чекор 2. Шефот на призводство ја добива листата по креирањето на нарчката при што гледа дека е форимирана нова нарачка која што треба да започне со изработка утре. При тоа бидејќи еинформиран дека репро матријали не се достапни за тој датум тој велгува во системот и го менува датумот на почеток на нарачката и датумот за крај на нарачката при што во базата на податоци се извршува следната скрипта: ---- {{{ CREATE OR REPLACE FUNCTION update_naracka_izrabotka_plan( p_naracka_id INT, p_new_start_date DATE, p_new_end_date DATE ) RETURNS VOID AS $$ BEGIN -- Update DatumStart UPDATE Naracka_IzrabotkaPlan SET DatumStart = p_new_start_date WHERE NarackaID = p_naracka_id; -- Update DatumEnd UPDATE Naracka_IzrabotkaPlan SET DatumEnd = p_new_end_date WHERE NarackaID = p_naracka_id; END; $$ LANGUAGE plpgsql; }}}