Changes between Version 2 and Version 3 of UseCaseScen3


Ignore:
Timestamp:
02/15/25 17:39:47 (7 days ago)
Author:
185022
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseScen3

    v2 v3  
    66Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.
    77{{{#!sql
    8 select *
    9 from users u
    10 where u.email=input_email and u.pass=input_pass
     8select user_id as userId,
     9                           user_name as userName,
     10                           user_surname as userSurname,
     11                           user_pass as userPassword,
     12                           user_email as userEmail,
     13                           user_mobile as userMobile,
     14                           user_salt as userSalt,
     15                           user_active as userActive,
     16                           user_image as userImage,
     17                           user_role as userRole,
     18                           clazz_
     19                    from users
     20                    where user_email = ?1
    1121}}}
    1222
    1323==== Чекор 2 - Dashboard
    14 На почетната страница возачите ќе имаат податоци само за новите достави кои ѝм е назначени, и за своите минати достави кои ги извршиле.\\\\
    15 `curr_user_id` е идентификаторот на моменталниот корисник
    16 
    17 ===== Листа на ново назначени достави
     24На почетната страница возачите ќе имаат податоци само за новите достави кои ѝм е назначени, и за своите минати достави кои ги извршиле.
     25===== Листа на активни назначени достави
    1826{{{#!sql
    19 select de.*
    20 from driver d join vehicle v on d.vehicle_id = v.vehicle_id
    21 join delivery de on v.vehicle_id = de.vehicle_id
    22 where d.user_id=curr_user_id and de.delivery_status_id =1
    23 order by de.delivery_date desc;
     27select del.del_id as deliveryId,
     28                           u.user_name as driverName,
     29                           del.del_date as deliveryDate,
     30                           del.del_date_created as deliveryCreatedDate,
     31                           del.d_status_id as deliveryStatus,
     32                           ds.d_status_name as deliveryStatusName
     33                    from delivery del
     34                    join delivery_status ds on del.d_status_id = ds.d_status_id
     35                    join vehicle v on del.veh_id = v.veh_id
     36                    join driver d on v.veh_id = d.veh_id
     37                    join users u on u.user_id = d.user_id
     38                    where d.user_id = ?1 and del.d_status_id = 1
    2439}}}
    2540
    26 ===== Листа на веќе извршени достави
    27 Статуси на доставата со броеви 1-3 се:
    28  1. Pending Pickup
    29  2. In Transit
    30  3. Out for Delivery
    31 Односно ги листаме сите достави кои биле доделени на моменталниот корисник-возач.
    32 
     41===== Листа на достави кои се извршуваат во моментот
    3342{{{#!sql
    34 select de.*
    35 from driver d join vehicle v on d.vehicle_id = v.vehicle_id
    36 join delivery de on v.vehicle_id = de.vehicle_id
    37 where d.user_id=curr_user_id and de.delivery_status_id not between 1 and 3
    38 order by de.delivery_date;
     43select del.del_id as deliveryId,
     44                           u.user_name as driverName,
     45                           del.del_date as deliveryDate,
     46                           del.del_date_created as deliveryCreatedDate,
     47                           del.d_status_id as deliveryStatus,
     48                           ds.d_status_name as deliveryStatusName
     49                    from delivery del
     50                    join delivery_status ds on del.d_status_id = ds.d_status_id
     51                    join vehicle v on del.veh_id = v.veh_id
     52                    join driver d on v.veh_id = d.veh_id
     53                    join users u on u.user_id = d.user_id
     54                    where d.user_id = ?1 and del.d_status_id = 3
    3955}}}
    4056
     
    4258Возачот, или со клик на копчето `Започни достава` или со директен клик на доставата за тој ден од почетната страница, е пренасочен кон друг/а поглед/страница, пред официјално да го започне доставувањето тој пополнува податоци за своето возило - почетни километри и клика на копчето `Започни`, времето на започнување на доставата автоматски се пополнува при клик на копчето.
    4359
    44 `inserted_km` е внесениот број на километри од корисникот \\\\
    45 `selected_delivery_id` е одбраната достава
     60===== Наоѓање на доставата според примарниот клуч
     61{{{#!sql
     62select d.del_id as delId,
     63                           d.del_date_created as delDateCreated,
     64                           d.del_date as delDate,
     65                           d.del_start_km as delStartKm,
     66                           d.del_end_km as delEndKm,
     67                           to_char(d.del_start_time, 'HH24:MI:22') as delStartTime,
     68                           to_char(d.del_end_time, 'HH24:MI:SS') as delEndTime,
     69                           d.d_status_id as delStatusId,
     70                           d.veh_id as veh_id
     71                    from delivery d
     72                    where d.del_id = ?1
     73}}}
     74
     75===== Внесување на почетно време и километража за доставата
     76{{{#!sql
     77update delivery
     78set del_date_created = ?2,del_date = ?3,del_start_km = ?4,del_end_km = ?5,del_start_time = ?6,del_end_time = ?7,d_status_id = ?8,veh_id = ?9
     79where del_id = ?1
     80}}}
     81
     82==== Чекор 4 - Завршување на доставувањето
     83Кога сите нарачки ќе се достават и возачот ќе се врати во магацинот тој клика на копчето `Заврши ја доставата`. Внесува број на километри на возилото, а време на завршување се менува автоматски при клик на копчето.
    4684
    4785{{{#!sql
    4886update delivery
    49 set delivery_start_km=inserted_km and delivery_start_time=current_time
    50 where delivery_id=selected_delivery_id
     87set del_date_created = ?2,del_date = ?3,del_start_km = ?4,del_end_km = ?5,del_start_time = ?6,del_end_time = ?7,d_status_id = ?8,veh_id = ?9
     88where del_id = ?1
    5189}}}
    52 
    53 Исто така на екран ќе му се испечатат детално сите нарачки и детали за доставата. Нарачките ќе може да ги подреди како сака.
    54 
    55 ===== Листање на сите нарачки од доставата
    56 `curr_user_id` е идентификаторот на моменталниот корисник \\\\
    57 `selected_delivery_id` е идентификаторот на доставата која ја започна корисникот
    58 {{{#!sql
    59 select o.*
    60 from driver d join vehicle v on d.vehicle_id = v.vehicle_id
    61 join delivery de on v.vehicle_id = de.vehicle_id
    62 join orders o on de.delivery_id = o.delivery_id
    63 where d.user_id = curr_user_id and de.delivery_id=selected_delivery_id
    64 }}}
    65 
    66 ===== Промена на статуси на нарачките
    67 Командата подолу ги променува статусот на сите нарачки од доставата во статус `Out for delivery`
    68 {{{#!sql
    69 with 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)
    76 update orders
    77 set order_status_id=6
    78 where order_id in (select order_id from relevant_orders)
    79 }}}
    80 
    81 ==== Чекор 4 - Доставување нарачка
    82 Кога возачот ќе ја заврши доставата клика на копче кое ја означува нарачката за доставена и статусот на истата се променува во `Delivered`
    83 {{{#!sql
    84 update orders
    85 set order_status_id=7
    86 where order_id=selected_order_id
    87 }}}
    88 
    89 Доколку нарачката била откажена или вратена, возачот може да одбере друг статус мануелно за завршената нарачка, соодветно на ист начин со различен број на статус се менува во база.
    90 
    91 ==== Чекор 5 - Завршување на доставувањето
    92 Кога сите нарачки ќе се достават и возачот ќе се врати во магацинот тој клика на копчето `Заврши ја доставата`. Внесува број на километри на возилото, а време на завршување се менува автоматски при клик на копчето.
    93 
    94 `inserted_km` е внесениот број на километри од корисникот \\\\
    95 `selected_delivery_id` е одбраната достава
    96 
    97 {{{#!sql
    98 update delivery
    99 set delivery_end_km=inserted_km and delivery_end_time=current_time
    100 where delivery_id=selected_delivery_id
    101 }}}