= Нарачка == Креирање === Актери - Администратор - Обичен корисник (комерцијалист) === Чекори - Корисникот се најавува во системот. - Корисникот се движи до делот "Orders" и кликнува на копчето "Create Orders". - Се прикажува формулар со полиња за детали за нарачката (датум на нарачка, проценет датум на испорака, статус, лична карта на вработен, купувач, примач, транспортен систем) и листа на производи што треба да се додадат во нарачката. - Корисникот го пополнува формуларот со валидни информации и избира производи што ќе ги поврзе со нарачката. - Апликацијата создава нов запис во табелата {{{ORDER}}} и ги поврзува избраните производи со додавање записи во табелата {{{ORDER_PRODUCT}}}. {{{#!sql -- Insert the order INSERT INTO "ORDER" (order_date, estimated_delivery_date, status, employee_id, buyer_id, receiver_id, transport_id) VALUES ('2025-01-01', '2025-02-01', 'Pending', 1, 1, 1, 1) RETURNING order_id; -- Assume the returned order_id is 5. Associate products with the order INSERT INTO ORDER_PRODUCT (order_id, product_id) VALUES (5, 1), (5, 2); }}} - Корисникот добива известување со кое потврдува дека нарачката е успешно креирана. ==== Алтернативно сценарио - Корисникот не ги пополнува сите потребни полиња или не избира ниту еден производ. - Системот прикажува известување што покажува дека мора да се изберат сите полиња и барем еден производ. == Промена === Актери - Администратор - Обичен корисник (комерцијалист) === Чекори - Корисникот се најавува во системот. - Корисникот навигира до делот "Orders" и избира одредена нарачка за уредување. - Се прикажува формулар со претходно пополнети детали за тековната нарачка и листа на поврзани производи. - Корисникот ги менува деталите за нарачката и ја ажурира листата на поврзани производи (додавање или отстранување производи) и го доставува формуларот. - Апликацијата го ажурира записот во табелата {{{ORDER}}} и ги прилагодува поврзаните записи во табелата {{{ORDER_PRODUCT}}}. {{{#!sql -- Update order details UPDATE "ORDER" SET status = 'Shipped', estimated_delivery_date = '2025-02-10' WHERE order_id = 5; -- Remove existing product associations DELETE FROM ORDER_PRODUCT WHERE order_id = 5; -- Add new product associations INSERT INTO ORDER_PRODUCT (order_id, product_id) VALUES (5, 2), (5, 3); }}} - Корисникот добива известување со кое потврдува дека нарачката е успешно ажурирана. ==== Алтернативно сценарио - Корисникот испраќа невалидни информации или не избира никакви производи. - Системот прикажува известување што укажува на специфичната грешка. == Преглед === Актери - Администратор - Обичен корисник (комерцијалист) === Чекори - Корисникот се најавува во системот. - Корисникот се движи до делот "Orders" и избира одредена нарачка за гледање. - Системот ги презема деталите за нарачката од табелата {{{ORDER}}} и поврзаните производи од табелата {{{ORDER_PRODUCT}}}. {{{#!sql -- Retrieve order details SELECT * FROM "ORDER" WHERE order_id = 5; -- Retrieve associated products SELECT p.* FROM PRODUCT p INNER JOIN ORDER_PRODUCT op ON p.product_id = op.product_id WHERE op.order_id = 5; }}} - Деталите за нарачката, заедно со списокот на поврзани производи, му се прикажуваат на корисникот. ==== Алтернативно сценарио - Системот не може да ја пронајде бараната нарачка. - Системот прикажува порака што покажува дека нарачката не е пронајдена. == Бришење === Актери - Администратор - Обичен корисник (комерцијалист) === Чекори - Корисникот се најавува во системот. - Корисникот се движи до делот "Orders" и избира одредена нарачка за бришење. - Се појавува дијалог за потврда и корисникот го потврдува бришењето. - Системот го брише записот за нарачка од табелата {{{ORDER}}} и ги отстранува поврзаните производи од табелата {{{ORDER_PRODUCT}}}. {{{#!sql -- Remove product associations DELETE FROM ORDER_PRODUCT WHERE order_id = 5; -- Delete the order DELETE FROM "ORDER" WHERE order_id = 5; }}} - Корисникот добива известување со кое потврдува дека нарачката е успешно избришана. ==== Алтернативно сценарио - Корисникот го откажува бришењето. - Системот не ја брише нарачката или нејзините поврзани производи.