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