= Креирање на нарачка === Актери ===== Потрошувач ==== Чекор 1 - Најава на системот Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата. {{{#!sql select * from customer c where c.email=input_email and c.pass=input_pass }}} ==== Чекор 2 - Dashboard Овде на почетната страна корисникот ќе има приказ на своите активни нарачки и активни достави доколку има. ===== Листање на активни нарачки {{{#!sql select * from orders o where o.customer_id=curr_usr_id and o.order_status_id between 2 and 6 }}} Статусите на нарачки со id меѓу 2 и 6 се: ''Pending, Confirmed, Processing, Shipped, Out for Delivery'' ===== Листање на активни достави {{{#!sql select d.* from delivery d join orders o on o.delivery_id=d.delivery_id where o.customer_id=curr_usr_id and d.delivery_status_id !=4; }}} Статус на достава број 4 е ''Delivered'', односно, тука се листат сите достави на моменталниот корисник кои се со статус различен од ''Delivered''. ==== Чекор 3 - Корисникот клика на копчето `Направи нарачка` По клик на копчето корисникот е пренасочен кон форма каде ја пополнува со посакуваните продукти и нивната количина. Тука нема листање на ништо првично во формата. ==== Чекор 4 - Пополнување на форма Тука корисникот може да пристапи на два начини. * Да пребарува низ сите продукти со пишување во поле за пребарување или * Да пребарува по категории, производители со селектирање од листа/drop-down мени. ===== Пребарување по име на продукт со внесување на букви/збор {{{#!sql select a.article_name from article a where article_name like 'input string' }}} ===== Пребарување по листање на категории или производители {{{#!sql select c.category_name from category c }}} {{{#!sql select m.manufacturer_name from manufacturer m }}} ==== Чекор 5 - Креирање на нарачката во позадина По одбирање на производот, корисникот одбира посакувана количина и клика на копчето `Креирај ја нарачката`. По ова се креира нарачка во базата. ===== Внесување на податоците во табелата за нарачки {{{#!sql insert into orders (order_date, order_sum, order_status_id, order_fulfillment_date, customer_id, delivery_id, pro_forma_id) values (curr_date, sum, 1, null, curr_usr_id, null, null) }}} ===== Кога менаџерот ќе ја потврди нарачката и ќе ја креира профактурата {{{#!sql insert into pro_forma (pro_forma_status_id, pro_forma_deadline, pro_forma_date_created) values (1, order_date_created + 1 week, current date) }}} {{{#!sql update orders set pro_forma_id=created_pf_id and order_status_id=2 where order_id=the_orders_id }}} Во првиот код се креира нова профактура за таа нарачка, а во вториот се поврзува постоечката нарачка со новокреираната профактура и статусот на нарачката се променува во ''Pending''.