| 1 | = Креирање на нарачка |
| 2 | === Актери |
| 3 | ===== Потрошувач |
| 4 | ==== Чекор 1 - Најава на системот |
| 5 | Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата. |
| 6 | {{{#!sql |
| 7 | select * |
| 8 | from customer c |
| 9 | where c.email=input_email and c.pass=input_pass |
| 10 | }}} |
| 11 | |
| 12 | ==== Чекор 2 - Dashboard |
| 13 | Овде на почетната страна корисникот ќе има приказ на своите активни нарачки и активни достави доколку има. |
| 14 | ===== Листање на активни нарачки |
| 15 | {{{#!sql |
| 16 | select * |
| 17 | from orders o |
| 18 | where o.customer_id=curr_usr_id and o.order_status_id between 2 and 6 |
| 19 | }}} |
| 20 | Статусите на нарачки со id меѓу 2 и 6 се: ''Pending, Confirmed, Processing, Shipped, Out for Delivery'' |
| 21 | ===== Листање на активни достави |
| 22 | {{{#!sql |
| 23 | select d.* |
| 24 | from delivery d join orders o on o.delivery_id=d.delivery_id |
| 25 | where o.customer_id=curr_usr_id and d.delivery_status_id !=4; |
| 26 | }}} |
| 27 | Статус на достава број 4 е ''Delivered'', односно, тука се листат сите достави на моменталниот корисник кои се со статус различен од ''Delivered''. |
| 28 | |
| 29 | ==== Чекор 3 - Корисникот клика на копчето `Направи нарачка` |
| 30 | По клик на копчето корисникот е пренасочен кон форма каде ја пополнува со посакуваните продукти и нивната количина. Тука нема листање на ништо првично во формата. |
| 31 | |
| 32 | ==== Чекор 4 - Пополнување на форма |
| 33 | Тука корисникот може да пристапи на два начини. |
| 34 | * Да пребарува низ сите продукти со пишување во поле за пребарување или |
| 35 | * Да пребарува по категории, производители со селектирање од листа/drop-down мени. |
| 36 | ===== Пребарување по име на продукт со внесување на букви/збор |
| 37 | {{{#!sql |
| 38 | select a.article_name |
| 39 | from article a |
| 40 | where article_name like 'input string' |
| 41 | }}} |
| 42 | ===== Пребарување по листање на категории или производители |
| 43 | {{{#!sql |
| 44 | select c.category_name |
| 45 | from category c |
| 46 | }}} |
| 47 | {{{#!sql |
| 48 | select m.manufacturer_name |
| 49 | from manufacturer m |
| 50 | }}} |
| 51 | |
| 52 | ==== Чекор 5 - Креирање на нарачката во позадина |
| 53 | По одбирање на производот, корисникот одбира посакувана количина и клика на копчето `Креирај ја нарачката`. По ова се креира нарачка во базата. |
| 54 | ===== Внесување на податоците во табелата за нарачки |
| 55 | {{{#!sql |
| 56 | insert into orders (order_date, order_sum, order_status_id, order_fulfillment_date, customer_id, delivery_id, pro_forma_id) |
| 57 | values (curr_date, sum, 1, null, curr_usr_id, null, null) |
| 58 | }}} |
| 59 | |
| 60 | ===== Кога менаџерот ќе ја потврди нарачката и ќе ја креира профактурата |
| 61 | {{{#!sql |
| 62 | insert into pro_forma (pro_forma_status_id, pro_forma_deadline, pro_forma_date_created) |
| 63 | values (1, order_date_created + 1 week, current date) |
| 64 | }}} |
| 65 | {{{#!sql |
| 66 | update orders |
| 67 | set pro_forma_id=created_pf_id and order_status_id=2 |
| 68 | where order_id=the_orders_id |
| 69 | }}} |
| 70 | |
| 71 | Во првиот код се креира нова профактура за таа нарачка, а во вториот се поврзува постоечката нарачка со новокреираната профактура и статусот на нарачката се променува во ''Pending''. |