Changes between Initial Version and Version 1 of UseCaseScen3


Ignore:
Timestamp:
12/13/24 16:58:32 (5 weeks ago)
Author:
185022
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseScen3

    v1 v1  
     1= Ивршување на достава
     2=== Актери
     3===== Возач
     4
     5==== Чекор 1 - Најава на системот
     6Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.
     7{{{#!sql
     8select *
     9from users u
     10where u.email=input_email and u.pass=input_pass
     11}}}
     12
     13==== Чекор 2 - Dashboard
     14На почетната страница возачите ќе имаат податоци само за новите достави кои ѝм е назначени, и за своите минати достави кои ги извршиле.\\\\
     15`curr_user_id` е идентификаторот на моменталниот корисник
     16
     17===== Листа на ново назначени достави
     18{{{#!sql
     19select de.*
     20from driver d join vehicle v on d.vehicle_id = v.vehicle_id
     21join delivery de on v.vehicle_id = de.vehicle_id
     22where d.user_id=curr_user_id and de.delivery_status_id =1
     23order by de.delivery_date desc;
     24}}}
     25
     26===== Листа на веќе извршени достави
     27Статуси на доставата со броеви 1-3 се:
     28 1. Pending Pickup
     29 2. In Transit
     30 3. Out for Delivery
     31Односно ги листаме сите достави кои биле доделени на моменталниот корисник-возач.
     32
     33{{{#!sql
     34select de.*
     35from driver d join vehicle v on d.vehicle_id = v.vehicle_id
     36join delivery de on v.vehicle_id = de.vehicle_id
     37where d.user_id=curr_user_id and de.delivery_status_id not between 1 and 3
     38order by de.delivery_date;
     39}}}
     40
     41==== Чекор 3 - Започнување достава
     42Возачот, или со клик на копчето `Започни достава` или со директен клик на доставата за тој ден од почетната страница, е пренасочен кон друг/а поглед/страница, пред официјално да го започне доставувањето тој пополнува податоци за своето возило - почетни километри и клика на копчето `Започни`, времето на започнување на доставата автоматски се пополнува при клик на копчето.
     43
     44`inserted_km` е внесениот број на километри од корисникот \\\\
     45`selected_delivery_id` е одбраната достава
     46
     47{{{#!sql
     48update delivery
     49set delivery_start_km=inserted_km and delivery_start_time=current_time
     50where delivery_id=selected_delivery_id
     51}}}
     52
     53Исто така на екран ќе му се испечатат детално сите нарачки и детали за доставата. Нарачките ќе може да ги подреди како сака.
     54
     55===== Листање на сите нарачки од доставата
     56`curr_user_id` е идентификаторот на моменталниот корисник \\\\
     57`selected_delivery_id` е идентификаторот на доставата која ја започна корисникот
     58{{{#!sql
     59select o.*
     60from driver d join vehicle v on d.vehicle_id = v.vehicle_id
     61join delivery de on v.vehicle_id = de.vehicle_id
     62join orders o on de.delivery_id = o.delivery_id
     63where d.user_id = curr_user_id and de.delivery_id=selected_delivery_id
     64}}}
     65
     66===== Промена на статуси на нарачките
     67Командата подолу ги променува статусот на сите нарачки од доставата во статус `Out for delivery`
     68{{{#!sql
     69with relevant_orders as (select o.order_id
     70                         from delivery de
     71                                  join vehicle v on de.vehicle_id = v.vehicle_id
     72                                  join driver d on v.vehicle_id = d.vehicle_id
     73                                  join orders o on de.delivery_id = o.delivery_id
     74                         where d.user_id = 1
     75                           and de.delivery_id = 1)
     76update orders
     77set order_status_id=6
     78where order_id in (select order_id from relevant_orders)
     79}}}
     80
     81===== Доставување нарачка
     82Кога возачот ќе ја заврши доставата клика на копче кое ја означува нарачката за доставена и статусот на истата се променува во `Delivered`
     83{{{#!sql
     84update orders
     85set order_status_id=7
     86where order_id=selected_order_id
     87}}}
     88
     89Доколку нарачката била откажена или вратена, возачот може да одбере друг статус мануелно за завршената нарачка, соодветно на ист начин со различен број на статус се менува во база.
     90
     91===== Завршување на доставувањето
     92Кога сите нарачки ќе се достават и возачот ќе се врати во магацинот тој клика на копчето `Заврши ја доставата`. Внесува број на километри на возилото, а време на завршување се менува автоматски при клик на копчето.
     93
     94`inserted_km` е внесениот број на километри од корисникот \\\\
     95`selected_delivery_id` е одбраната достава
     96
     97{{{#!sql
     98update delivery
     99set delivery_end_km=inserted_km and delivery_end_time=current_time
     100where delivery_id=selected_delivery_id
     101}}}