wiki:UseCaseScen2

Version 2 (modified by 185022, 7 days ago) ( diff )

--

Креирање на достава

Актери

Менаџер

Чекор 1 - Најава на системот

Корисникот се најавува на системот со внесување на својот email и лозинка. Лозинката во позадина се хешира и таа се проверува во базата.

select user_id as userId,
                           user_name as userName,
                           user_surname as userSurname,
                           user_pass as userPassword,
                           user_email as userEmail,
                           user_mobile as userMobile,
                           user_salt as userSalt,
                           user_active as userActive,
                           user_image as userImage,
                           user_role as userRole,
                           clazz_
                    from users
                    where user_email = ?1

Чекор 2 - Dashboard

На почетната страница менаџерот ќе има преглед на најнови податоци и податоци од негов интерес, како што се моментална залиха во магацинот, состојба на возилата, преглед и број на новокреирани нарачки, состојба на тековните достави.

Моментална залиха во магацинот (подредени по број на производи од секој артикл)
select a.art_name as articleName,
                           man.man_name as manufacturerName,
                           count(au.unit_id) as totalUnits
                    from warehouse w
                        join manager m on m.wh_id = w.wh_id
                        join article_unit au on au.wh_id = w.wh_id
                        join unit_price up on au.unit_id = up.unit_id
                        join price p on p.price_id=up.price_id
                        join article a on p.art_id=a.art_id
                        join manufacturer man on a.man_id = man.man_id
                    where m.user_id = :manager
                    group by a.art_name, man.man_name
                    order by totalUnits
Состојба на возила
select v.veh_id as id,
                            v.veh_carry_weight as carryWeight,
                            v.veh_service_interval as serviceInterval,
                            v.veh_kilometers as kilometers,
                            v.veh_last_service as lastServiceDate,
                            v.veh_last_service_km as lastServiceKm,
                            v.veh_plate as plate,
                            v.veh_vin as vin,
                            v.veh_reg as registrationDate,
                            w.wh_id as whId,
                            c.city_name as city,
                            r.region_name as region,
                            d.user_id as driverId,
                            u1.user_name as driverName,
                            u1.user_email as driverEmail,
                            u1.user_mobile as driverPhone,
                            u1.user_image as driverImg
                     from warehouse w
                     join city c on w.city_id = c.city_id
                     join region r on c.region_id = r.region_id
                     join manager m on w.wh_id = m.wh_id
                     join users u on m.user_id = u.user_id
                     join vehicle v on w.wh_id=v.wh_id
                     join driver d on d.veh_id=v.veh_id
                     join users u1 on d.user_id=u1.user_id
                     where m.user_id = :manager
                     group by v.veh_id, v.veh_carry_weight, v.veh_service_interval, v.veh_kilometers, v.veh_last_service, v.veh_last_service_km, v.veh_plate, v.veh_vin, v.veh_reg, w.wh_id, c.city_name, r.region_name, d.user_id, u1.user_name, u1.user_email, u1.user_mobile, u1.user_image
                     order by v.veh_reg
Новокреирани нарачки
select o.ord_id as id,
                           o.ord_date as ordDate,
                           o.ord_sum as ordSum,
                           o.ord_fulfillment_date as ordFulfillmentDate,
                           c.cust_company_name as customerName,
                           o.ord_comment as ordComment,
                           o.o_status_id as oStatusId,
                           o.cust_id as customerId,
                           o.del_id as deliveryId,
                           o.pf_id as pfId
                    from warehouse w
                        join manager m on w.wh_id= m.wh_id
                        join article_unit au on au.wh_id = w.wh_id
                        join orders o on au.ord_id = o.ord_id
                        join customer c on o.cust_id = c.user_id
                        join order_status os on os.o_status_id = o.o_status_id
                    where m.user_id = ?1
Тековни достави
select d.del_id as id,
                           d.del_date_created as dateCreated,
                           d.del_date as deliveryDate,
                           d.del_start_km as delStartKm,
                           d.del_end_km as delEndKm,
                           to_char(d.del_start_time, 'HH24:MI:22') as delStartTime,
                           to_char(d.del_end_time, 'HH24:MI:SS') as delEndTime,
                           d.d_status_id as dStatusId,
                           ds.d_status_name as delStatus,
                           v.veh_id as vehId,
                           dr.user_id as driverId,
                           u.user_name as driverName,
                           u.user_image as driverImage
                    from warehouse w
                        join manager m on w.wh_id = m.wh_id
                        join article_unit au on w.wh_id = au.wh_id
                        join orders o on au.ord_id = o.ord_id
                        join delivery d on o.del_id = d.del_id
                        join delivery_status ds on d.d_status_id=ds.d_status_id
                        join vehicle v on v.veh_id=d.veh_id
                        join driver dr on dr.veh_id=v.veh_id
                        join users u on u.user_id=dr.user_id
                    where m.user_id=:manager and d.d_status_id<>4

Чекор 3 - Клика на копчето Креирај достава

Менаџерот е пренасочен кон страница каде што се прикажани сите нарачки кои не се дел од некоја достава.

select o.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join article_unit au on au.warehouse_id = w.warehouse_id
         join orders o on au.order_id = o.order_id
where m.user_id = curr_user_id
  and o.delivery_id is null
order by o.order_date desc

Следно менаџерот може да ги групира и да ги додава во една достава која ќе ја назначи на некое возило.

Чекор 4 - Додавање на одбраните нарачки во достава и доделување на возило

Листање на возила
select v.*
from warehouse w
         join manager m on w.warehouse_id = m.warehouse_id
         join vehicle v on w.warehouse_id = v.warehouse_id
where m.user_id = curr_user_id and v.vehicle_id not in (select v.vehicle_id
                           from warehouse w
                                    join manager m on w.warehouse_id = m.warehouse_id
                                    join vehicle v on w.warehouse_id = v.warehouse_id
                                    join delivery d on v.vehicle_id = d.vehicle_id
                           where m.user_id=curr_user_id and d.delivery_date = created_delivery_date)
Креирање на достава за одбраното возило
insert into delivery(del_date_created, del_date, del_start_km, del_end_km, del_start_time, del_end_time, d_status_id, veh_id)
values (?1,?2,?3,?4,?5,?6,?7,?8)
Поврзување на одбраните нарачки со креираната достава
update orders
set ord_date=?2,ord_sum=?3,ord_fulfillment_date=?4,ord_comment=?5,o_status_id=?6,cust_id=?7,del_id=?8,pf_id=?9
where ord_id=?1
Note: See TracWiki for help on using the wiki.