Креирање на достава
Актери
Менаџер
Чекор 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);