wiki:UseCaseScen2

Version 1 (modified by 185022, 5 weeks ago) ( diff )

--

Креирање на достава

Актери

Менаџер

Чекор 1 - Најава на системот

Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.

select u.* 
from manager m join users u on m.user_id=u.user_id
where u.email=input_email and u.pass=input_pass

Чекор 2 - Dashboard

На почетната страница менаџерот ќе има преглед на најнови податоци и податоци од негов интерес, како што се моментална залиха во магацинот, состојба на возилата, преглед и број на новокреирани нарачки, состојба на тековните достави.

curr_user_id е примарниот клуч, односно идентификаторот на моменталниот корисник.

Моментална залиха во магацинот (подредени по број на производи од секој артикл)
select a.article_name, man.manufacturer_name, count(au.article_id) as total_units
from warehouse w
         join manager m on m.warehouse_id = w.warehouse_id
         join article_unit au on au.warehouse_id = w.warehouse_id
         join article a on au.article_id = a.article_id
         join manufacturer man on a.manufacturer_id = man.manufacturer_id
where m.user_id = curr_user_id
group by a.article_name, man.manufacturer_name
order by total_units
Состојба на возила
select v.vehicle_plate,v.vehicle_reg
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join vehicle v on w.warehouse_id=v.warehouse_id
where m.user_id=curr_user_id
group by v.vehicle_plate,v.vehicle_reg
order by v.vehicle_reg
Новокреирани нарачки
select o.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join article_unit au on au.warehouse_id = w.warehouse_id
         join orders o on au.order_id = o.order_id
where m.user_id = curr_user_id
  and o.order_status_id = 1
order by o.order_date desc
Тековни достави
select d.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join article_unit au on w.warehouse_id = au.warehouse_id
         join orders o on au.order_id = o.order_id
         join delivery d on o.delivery_id = d.delivery_id
where m.user_id=curr_user_id and d.delivery_status_id<>4

Чекор 3 - Клика на копчето Креирај достава

Менаџерот е пренасочен кон страница каде што се прикажани сите нарачки кои не се дел од некоја достава.

curr_user_id е примарниот клуч, односно идентификаторот на моменталниот корисник.

select o.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join article_unit au on au.warehouse_id = w.warehouse_id
         join orders o on au.order_id = o.order_id
where m.user_id = curr_user_id
  and o.delivery_id is null
order by o.order_date desc

Следно менаџерот може да ги групира и да ги додава во една достава која ќе ја назначи на некое возило.

Чекор 4 - Додавање на одбраните нарачки во достава и доделување на возило

Листање на достапни возила

curr_user_id е примарниот клуч, односно идентификаторот на моменталниот корисник.

created_delivery_date е датумот за новокреираната достава. Проверуваме кои возила се достапни за тој датум, односно возила од магацинот на корисникот кои веќе немаат назначено достава за тој ден.

select v.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join vehicle v on w.warehouse_id = v.warehouse_id
where m.user_id = curr_user_id and v.vehicle_id not in (select v.vehicle_id
                           from warehouse w
                                    join manager m on w.warehouse_id = m.warehouse_id
                                    join vehicle v on w.warehouse_id = v.warehouse_id
                                    join delivery d on v.vehicle_id = d.vehicle_id
                           where m.user_id=curr_user_id and d.delivery_date = created_delivery_date)
Креирање на достава за одбраното возило

chosen_date е датум кој корисникот го одбира

chosen_vehicle_id е идентификаторот на одбраното возило

insert into delivery(delivery_date_created,delivery_date,delivery_status_id,vehicle_id)
values (current_date,chosen_date,1,chosen_vehicle_id)
Поврзување на одбраните нарачки со креираната достава

created_delivery_id е примарниот клуч на новокреираната достава

selected_orders_id се примарните клучеви на одбраните нарачки, одделени со запирка.

update orders
set delivery_id=created_delivery_id
where order_id in (selected_orders_id);
Note: See TracWiki for help on using the wiki.