wiki:UseCasePromenaDatum

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

--

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

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


Чекор 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;


Note: See TracWiki for help on using the wiki.