Version 2 (modified by 5 weeks ago) ( diff ) | ,
---|
Ивршување на достава
Актери
Возач
Чекор 1 - Најава на системот
Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.
select * from users u where u.email=input_email and u.pass=input_pass
Чекор 2 - Dashboard
На почетната страница возачите ќе имаат податоци само за новите достави кои ѝм е назначени, и за своите минати достави кои ги извршиле.
curr_user_id
е идентификаторот на моменталниот корисник
Листа на ново назначени достави
select de.* from driver d join vehicle v on d.vehicle_id = v.vehicle_id join delivery de on v.vehicle_id = de.vehicle_id where d.user_id=curr_user_id and de.delivery_status_id =1 order by de.delivery_date desc;
Листа на веќе извршени достави
Статуси на доставата со броеви 1-3 се:
- Pending Pickup
- In Transit
- Out for Delivery
Односно ги листаме сите достави кои биле доделени на моменталниот корисник-возач.
select de.* from driver d join vehicle v on d.vehicle_id = v.vehicle_id join delivery de on v.vehicle_id = de.vehicle_id where d.user_id=curr_user_id and de.delivery_status_id not between 1 and 3 order by de.delivery_date;
Чекор 3 - Започнување достава
Возачот, или со клик на копчето Започни достава
или со директен клик на доставата за тој ден од почетната страница, е пренасочен кон друг/а поглед/страница, пред официјално да го започне доставувањето тој пополнува податоци за своето возило - почетни километри и клика на копчето Започни
, времето на започнување на доставата автоматски се пополнува при клик на копчето.
inserted_km
е внесениот број на километри од корисникот
selected_delivery_id
е одбраната достава
update delivery set delivery_start_km=inserted_km and delivery_start_time=current_time where delivery_id=selected_delivery_id
Исто така на екран ќе му се испечатат детално сите нарачки и детали за доставата. Нарачките ќе може да ги подреди како сака.
Листање на сите нарачки од доставата
curr_user_id
е идентификаторот на моменталниот корисник
selected_delivery_id
е идентификаторот на доставата која ја започна корисникот
select o.* from driver d join vehicle v on d.vehicle_id = v.vehicle_id join delivery de on v.vehicle_id = de.vehicle_id join orders o on de.delivery_id = o.delivery_id where d.user_id = curr_user_id and de.delivery_id=selected_delivery_id
Промена на статуси на нарачките
Командата подолу ги променува статусот на сите нарачки од доставата во статус Out for delivery
with relevant_orders as (select o.order_id from delivery de join vehicle v on de.vehicle_id = v.vehicle_id join driver d on v.vehicle_id = d.vehicle_id join orders o on de.delivery_id = o.delivery_id where d.user_id = 1 and de.delivery_id = 1) update orders set order_status_id=6 where order_id in (select order_id from relevant_orders)
Чекор 4 - Доставување нарачка
Кога возачот ќе ја заврши доставата клика на копче кое ја означува нарачката за доставена и статусот на истата се променува во Delivered
update orders set order_status_id=7 where order_id=selected_order_id
Доколку нарачката била откажена или вратена, возачот може да одбере друг статус мануелно за завршената нарачка, соодветно на ист начин со различен број на статус се менува во база.
Чекор 5 - Завршување на доставувањето
Кога сите нарачки ќе се достават и возачот ќе се врати во магацинот тој клика на копчето Заврши ја доставата
. Внесува број на километри на возилото, а време на завршување се менува автоматски при клик на копчето.
inserted_km
е внесениот број на километри од корисникот
selected_delivery_id
е одбраната достава
update delivery set delivery_end_km=inserted_km and delivery_end_time=current_time where delivery_id=selected_delivery_id