Changes between Initial Version and Version 1 of UseCaseScen2


Ignore:
Timestamp:
12/13/24 14:59:55 (5 weeks ago)
Author:
185022
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseScen2

    v1 v1  
     1= Креирање на достава
     2=== Актери
     3===== Менаџер
     4==== Чекор 1 - Најава на системот
     5Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.
     6{{{#!sql
     7select u.*
     8from manager m join users u on m.user_id=u.user_id
     9where u.email=input_email and u.pass=input_pass
     10}}}
     11
     12==== Чекор 2 - Dashboard
     13На почетната страница менаџерот ќе има преглед на најнови податоци и податоци од негов интерес, како што се моментална залиха во магацинот, состојба на возилата, преглед и број на новокреирани нарачки, состојба на тековните достави. \\\\
     14`curr_user_id` е примарниот клуч, односно идентификаторот на моменталниот корисник.
     15===== Моментална залиха во магацинот (подредени по број на производи од секој артикл)
     16{{{#!sql
     17select a.article_name, man.manufacturer_name, count(au.article_id) as total_units
     18from warehouse w
     19         join manager m on m.warehouse_id = w.warehouse_id
     20         join article_unit au on au.warehouse_id = w.warehouse_id
     21         join article a on au.article_id = a.article_id
     22         join manufacturer man on a.manufacturer_id = man.manufacturer_id
     23where m.user_id = curr_user_id
     24group by a.article_name, man.manufacturer_name
     25order by total_units
     26}}}
     27
     28===== Состојба на возила
     29{{{#!sql
     30select v.vehicle_plate,v.vehicle_reg
     31from warehouse w
     32         join manager m on w.warehouse_id = m.warehouse_id
     33         join vehicle v on w.warehouse_id=v.warehouse_id
     34where m.user_id=curr_user_id
     35group by v.vehicle_plate,v.vehicle_reg
     36order by v.vehicle_reg
     37}}}
     38
     39===== Новокреирани нарачки
     40{{{#!sql
     41select o.*
     42from warehouse w
     43         join manager m on w.warehouse_id = m.warehouse_id
     44         join article_unit au on au.warehouse_id = w.warehouse_id
     45         join orders o on au.order_id = o.order_id
     46where m.user_id = curr_user_id
     47  and o.order_status_id = 1
     48order by o.order_date desc
     49}}}
     50
     51===== Тековни достави
     52{{{#!sql
     53select d.*
     54from warehouse w
     55         join manager m on w.warehouse_id = m.warehouse_id
     56         join article_unit au on w.warehouse_id = au.warehouse_id
     57         join orders o on au.order_id = o.order_id
     58         join delivery d on o.delivery_id = d.delivery_id
     59where m.user_id=curr_user_id and d.delivery_status_id<>4
     60}}}
     61
     62==== Чекор 3 - Клика на копчето `Креирај достава`
     63Менаџерот е пренасочен кон страница каде што се прикажани сите нарачки кои не се дел од некоја достава. \\\\
     64`curr_user_id` е примарниот клуч, односно идентификаторот на моменталниот корисник.
     65{{{#!sql
     66select o.*
     67from warehouse w
     68         join manager m on w.warehouse_id = m.warehouse_id
     69         join article_unit au on au.warehouse_id = w.warehouse_id
     70         join orders o on au.order_id = o.order_id
     71where m.user_id = curr_user_id
     72  and o.delivery_id is null
     73order by o.order_date desc
     74}}}
     75Следно менаџерот може да ги групира и да ги додава во една достава која ќе ја назначи на некое возило.
     76==== Чекор 4 - Додавање на одбраните нарачки во достава и доделување на возило
     77===== Листање на достапни возила
     78`curr_user_id` е примарниот клуч, односно идентификаторот на моменталниот корисник. \\\\
     79`created_delivery_date` е датумот за новокреираната достава. Проверуваме кои возила се достапни за тој датум, односно возила од магацинот на корисникот кои веќе немаат назначено достава за тој ден.
     80{{{#!sql
     81select v.*
     82from warehouse w
     83         join manager m on w.warehouse_id = m.warehouse_id
     84         join vehicle v on w.warehouse_id = v.warehouse_id
     85where m.user_id = curr_user_id and v.vehicle_id not in (select v.vehicle_id
     86                           from warehouse w
     87                                    join manager m on w.warehouse_id = m.warehouse_id
     88                                    join vehicle v on w.warehouse_id = v.warehouse_id
     89                                    join delivery d on v.vehicle_id = d.vehicle_id
     90                           where m.user_id=curr_user_id and d.delivery_date = created_delivery_date)
     91}}}
     92===== Креирање на достава за одбраното возило
     93`chosen_date` е датум кој корисникот го одбира \\\\
     94`chosen_vehicle_id` е идентификаторот на одбраното возило
     95{{{#!sql
     96insert into delivery(delivery_date_created,delivery_date,delivery_status_id,vehicle_id)
     97values (current_date,chosen_date,1,chosen_vehicle_id)
     98}}}
     99===== Поврзување на одбраните нарачки со креираната достава
     100`created_delivery_id` е примарниот клуч на новокреираната достава \\\\
     101`selected_orders_id` се примарните клучеви на одбраните нарачки, одделени со запирка.
     102{{{#!sql
     103update orders
     104set delivery_id=created_delivery_id
     105where order_id in (selected_orders_id);
     106}}}