wiki:AppDesign

ИС Фагус

Апликативен дизајн

Кориснички сценарија

Најава на корисници

Почеток на информацискиот систем не води до страна за најавување на корисници на системот. При внесување на корисничко име и лозинка и со клик на копчето Вработен или Клиент не води до Почетната Страна на најавениот корисник.

Query:

select id_korisnik from korisnik k 
where k.korisnicko_ime = "username" and k.lozinka = "lozinka";
select * from klienti k  
where k.korisnicko_ime = "username" and k.lozinka = "lozinka";

Почетна страна Клиенти

Почетната страна на Клиентите се состои од нарачките кои го нарачали и прогресот до каде им е нарачката.

View за процент по завршени делови:

select 
naracka_za_klient_so_vkupno_izraboteni_delovi.id_del,
(naracka_za_klient_so_vkupno_izraboteni_delovi.vkupno_izraboteni_delovi/nssom.kolicina::double precision)*100 as procent_po_del
from 
-- public.percent_per_order source

CREATE OR REPLACE VIEW percent_per_order
AS SELECT n2.id_naracka,
    n2.naslov,
    ffq.id_klient,
    ffq.procent_po_naracka
   FROM naracka n2
     JOIN ( SELECT fq.id_naracka,
            fq.id_klient,
            avg(fq.procent_po_del) AS procent_po_naracka
           FROM ( SELECT naracka_za_klient_so_vkupno_izraboteni_delovi.id_del,
                    naracka_za_klient_so_vkupno_izraboteni_delovi.id_naracka,
                    naracka_za_klient_so_vkupno_izraboteni_delovi.id_klient,
                    naracka_za_klient_so_vkupno_izraboteni_delovi.vkupno_izraboteni_delovi::double precision / nssom.kolicina::double precision * 100::double precision AS procent_po_del
                   FROM ( SELECT DISTINCT n.id_naracka,
                            d2.id_del,
                            n.id_klient,
                            sum(enid.br_na_zavrseni_delovi) / count(DISTINCT enn.id_evidencija) AS vkupno_izraboteni_delovi
                           FROM evidencija_na_naracki enn
                             JOIN evidencija_naracki_izraboteni_delovi enid ON enn.id_evidencija = enid.id_evidencija
                             JOIN evidencija_se_odnesuva_na_mebel esonm ON enn.id_evidencija = esonm.id_evidencija
                             JOIN mebel m2 ON esonm.id_mebel = m2.id_mebel
                             JOIN mebel_se_sostoi_od_delovi mssod ON m2.id_mebel = mssod.id_mebel
                             JOIN delovi d2 ON mssod.id_del = d2.id_del
                             JOIN naracka n ON enn.id_naracka = n.id_naracka
                          GROUP BY n.id_naracka, d2.id_del, n.id_klient) naracka_za_klient_so_vkupno_izraboteni_delovi
                     JOIN naracka_se_sostoi_od_mebel nssom ON naracka_za_klient_so_vkupno_izraboteni_delovi.id_naracka = nssom.id_naracka) fq
          GROUP BY fq.id_naracka, fq.id_klient) ffq ON n2.id_naracka = ffq.id_naracka;

Query за сите нарачки:

select * from naracka n 
where n.id_klient = "id_od_sesija"

Клиент страна за продукти

Се листаат сите продукти со цена и можност за додавање во кошничка

View:

CREATE OR REPLACE VIEW furniture_view
AS SELECT m.id_mebel,
    m.naziv,
    m.tip,
    m.cena
   FROM mebel m;

Со избирање на продукт креира кошничка доколку не постои и се додава селектираниот продукт во кошничката

Query:

insert into kosnicka_se_sostoi_od_mebel(id_kosnicka,id_mebel)
values(kosnicka_id,praten_selektiran_produkt_id)

kosnicka_id се добива од сервисниот слој во апликацијата во каде ја наоѓа моменталната кошничка на клиентот доколку не постои креира нова

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

insert into naracka_se_sostoi_od_mebel(id_mebel,id_naracka,kolicina)
values(izran_mebel,naracka_id_session,kolicina)

Страна за менаџери

Доколку се најави Менаџер се добива страна со сите нови нарачки со можност да се креира налог.

View:

CREATE OR REPLACE VIEW manager_orders_view
AS SELECT n.id_naracka,
    n.datum_napravena,
    n.naslov,
    n.opis
   FROM naracka n
  WHERE n.datum_isporacana IS NULL;;

Страна за магационер

Доколку се најави магационер се добива табели со сите материјали во магацинот со сите детали со можност да се внесе примање на постоечки материјал количина и издавање на постоечки материјал количина

View за сите материјали:

CREATE OR REPLACE VIEW material_view
AS SELECT m.id_materijal,
    m.velicina,
    m.naziv,
    m.dostapen_broj
   FROM materijali m;

Query за додавање на количина :

update materijali set dostapen_broj=dostapen_broj+vnesen_broj
where id_materijal=id_od_materijalot_za_koj_se_dodava

Query за одземање на количина :

update materijali set dostapen_broj=dostapen_broj-vnesen_broj
where id_materijal=id_od_materijalot_za_koj_se_dodava

Страна доколку се најави Шеф

Шефовите во системот внесуваат информации до каде е работата за дадениот налог. Почетната страна е со сите налози креирани со копче измени за секој налог на кој се додава нова информација за изработените делови

View за наогање на сите налози:

CREATE OR REPLACE VIEW chief_warrant_view
AS SELECT n2.id_nalog,
    n.id_naracka,
    n.naslov
   FROM nalozi n2
     JOIN nalozi_kreira_naracka nkn ON n2.id_nalog = nkn.id_nalog
     JOIN naracka n ON nkn.id_naracka = n.id_naracka;

Откако ќе се избере налог се добива страна со избирање на машина, избирање на вработен, избирање на кој дел, и колку делови се изработени

Query:

select * from vraboteni_vo_proizvodsvo;
select * from mashini;
select * from delovi;
insert into evidencija_na_naracki(datum,id_naracka)
values(to_date(now(),"MMDDYYYY"),se_zema_od_nalogot_koj_e_selektiran)
insert into evidencija_naracki_izraboteni_delovi (id_del,id_evidencija,br_na_zavrseni_delovi)
values(id_od_izbraniot_del,evidencija_id_session,brojot_na_zavrseni_delovi)
insert into evidencija_se_odnesuva_na_mebel (id_evidencija,id_mebel)
values(id_evidencija_session,izran_mebel);
Last modified 3 years ago Last modified on 09/30/21 14:15:59

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.