wiki:UseCaseModel/AddingShipment

Version 36 (modified by 153093, 7 days ago) ( diff )

--

Додавање достава

Актери:

  • Магационер

Чекори во сценариото:

Чекор 1.

  • Магационерот навигира на Достави копчето од менито при што се прикажува табела со сите идни и минати достави.

select
    s.shipment_id as ShipmentId,
    TO_CHAR(s.shipment_date, 'DD-MM-YYYY') as ShipmentDate,
    (
        SELECT STRING_AGG(DISTINCT c.customer_name, ', ')
        FROM shipment_load sl
        JOIN customer c ON sl.customer_id = c.customer_id
        WHERE sl.shipment_id = s.shipment_id
    ) as Customers,
    CONCAT(e.employee_name, ' ', e.employee_surname) AS EmployeeFullName,
    CONCAT(v.make, ' ', v.model, ' (', v.registration, ')') AS VehicleInfo
FROM shipment s
JOIN employee e ON s.employee_id = e.employee_id
JOIN vehicle v ON s.vehicle_id = v.vehicle_id
ORDER BY s.shipment_date desc";

Чекор 2.

  • Магационерот го клика копчето Додади достава над табелата

Чекор 3.

  • Приказ на форма за додавање со популирани листи од Вработени, Возила за вработениот, Клиенти и Вина

  • Приказ на Вработени
select
    e.employee_id as Id,
    CONCAT(e.employee_name, ' ', e.employee_surname) AS Name
from employee e
  • Приказ на Возила (Филтрација на страна на клиент, се прикажуваат само возилата што може да ги вози избраниот вработен)
    select
        v.vehicle_id as Id,
        CONCAT(vd.make, ' ', vd.model, ' (', v.registration, ')') AS Name,
        edv.employee_id as EmployeeId,
        vd.capacity as Capacity
    from employee_drives_vehicle edv
    join vehicle v on edv.vehicle_id = v.vehicle_id
    join vehicle_details vd on v.vehicle_details_id = vd.vehicle_details_id
    
  • Приказ на Клиенти
    select
        c.customer_id as Id,
        CONCAT(c.customer_name , ' (', a.city , ' ', a.street ,' ',a.building_number, ' ', a.postcode, ')') AS Name,
        CONCAT(a.city ,' ', a.street ,' ',a.building_number,' ', a.postcode) AS Address
    from customer c
    join address a on c.address_id = a.address_id 
    
  • Приказ на Вина
    select
        w.wine_id as Id,
        CONCAT(w.wine_name , ' (', wt.wine_type_name,', ', wt.wine_type_region,')') AS Name,
        w.base_price as BasePrice
    from wine w
    join wine_type wt on w.wine_type_id = wt.wine_type_id 
    

Чекор 4.

  • Магационерот внесува податоци за доставата (на кој клиент кое вино и по која цена, кој вработен и со кое возило ке врши достава) и клика Додади
  • Податоците се валидираат

Чекор 5.

  • Успешно додавање на достава
  • Додаваме плаќање, достава и товар по редослед.
    BEGIN;
    
    INSERT INTO public.Payment (Payment_Id, Payment_Status)
    VALUES
        (15, 0);
    
    INSERT INTO public.Shipment (Shipment_Id, Employee_Id, Payment_Id, Vehicle_Id, Shipment_Date)
    VALUES
        (15, 1, 15, 1, now());
    
    INSERT INTO public.shipment_load (Shipment_Id, Customer_Id, Wine_Id, Wine_Agreed_Price, Wine_Base_Price, Wine_Quantity)
    VALUES
        (15, 1, 1, 150, 50, 20),
        (15, 1, 2, 90, 80, 50),
        (15, 2, 2, 100, 80, 50);
    
    COMMIT;
    

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.