| | 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 | }}} |