wiki:UseCaseScen3

Version 1 (modified by 185022, 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 се:

  1. Pending Pickup
  2. In Transit
  3. 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)
Доставување нарачка

Кога возачот ќе ја заврши доставата клика на копче кое ја означува нарачката за доставена и статусот на истата се променува во Delivered

update orders
set order_status_id=7
where order_id=selected_order_id

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

Завршување на доставувањето

Кога сите нарачки ќе се достават и возачот ќе се врати во магацинот тој клика на копчето Заврши ја доставата. Внесува број на километри на возилото, а време на завршување се менува автоматски при клик на копчето.

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 
Note: See TracWiki for help on using the wiki.