| | 2 | |
| | 3 | == Materialized Views |
| | 4 | [attachment:MaterializedViews.sql] |
| | 5 | |
| | 6 | == Functions |
| | 7 | [attachment:Functions.sql] |
| | 8 | |
| | 9 | == Procedures |
| | 10 | [attachment:Procedures.sql] |
| | 11 | |
| | 12 | == Triggers |
| | 13 | [attachment:Triggers.sql] |
| | 14 | |
| | 15 | == Materialized Views Explained |
| | 16 | **1. mv_fuel_consumption** - Потрошувачка на гориво |
| | 17 | • Го следи целото горивно досие за секое возило. За секое возило ги брои вкупните пристигнувања, вкупните литри и трошоци, просечните вредности по пристигнување, датумот на последно пристигнување и посебно потрошувачката само во последните 30 дена (и литри и трошоци). Ги вклучува сите возила дури и ако немаат ниту едно пристигнување. |
| | 18 | **2. mv_passenger_complaints** - Жалби по патник |
| | 19 | • За секој патник го брои вкупниот број на поднесени жалби и го памети датумот на последната жалба. Ги вклучува и патниците без ниедна жалба. |
| | 20 | **3. mv_revenue_by_route** - Финансиски извештај по линија |
| | 21 | • За секоја линија/рута ги прикажува: агенцијата, вкупниот број патувања, бројот на продадени билети, бруто-приходот (сума на сите цени), реално наплатениот приход односно само completed плаќањата и просечната цена на билет. Откажаните и рефундираните билети се исклучени. |
| | 22 | **4. mv_trip_delays** - Доцнења по патување |
| | 23 | • За секое патување со регистрирано доцнење ги прикажува: датумот, рутата, возилото, возачот, вкупниот број записи за доцнење, вкупните и просечните минути доцнење, максималното доцнење и сите причини споени во еден текст. Патувањата без доцнење не се прикажуваат. |
| | 24 | **5. mv_vehicle_occupany_stats** - Патници по возило |
| | 25 | • За секое возило го пресметува просечниот и максималниот број на патници врз основа на логираните записи во capacity_log, заедно со вкупниот број на тие записи. |
| | 26 | |
| | 27 | == Functions Explained |
| | 28 | |
| | 29 | == Procedures Explained |
| | 30 | **1. add_trip** - Додавање ново возење |
| | 31 | • Креира ново возење со зададен идентификатор, рута, возило, возач, датум, почетно и крајно време и опционален наслов. Возењето се внесува со статус scheduled. |
| | 32 | **2. buy_ticket** - Купување билет |
| | 33 | • Купува билет за патник на одредено возење. Ако е зададено тарифно правило, цената ја пресметува преку calculate_ticket_price, инаку ја зема base_price од типот на билет. Билетот се внесува со статус valid. |
| | 34 | **3. report_delay** - Евидентирање доцнење и известување патници |
| | 35 | • Го запишува доцнењето во delay_log, го менува статусот на возењето во delayed и автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење. |
| | 36 | **4. assign_discount_to_passenger** - Доделување попуст на патник |
| | 37 | • Му доделува попуст на патник со зададен датум на истекување. Пред внесување проверува дали патникот веќе го има тој попуст активен. |
| | 38 | **5. complete_trip** - Завршување возење |
| | 39 | • Го завршува возењето со проверка дали е во статус in_progress. По потврда го менува статусот на возењето во completed и ги означува сите валидни билети како used. |
| | 40 | **6. refund_ticket** - Враќање билет |
| | 41 | • Го рефундира билетот со проверка дали постои и дали е во статус valid. По потврда го менува статусот на билетот во refunded и го ажурира поврзаното плаќање исто така во refunded. |
| | 42 | **7. schedule_driver** - Закажување распоред за возач |
| | 43 | • Му закажува смена на возач за одреден датум со почетно и крајно време. Пред внесување проверува дали возачот веќе има закажано за тој датум. |
| | 44 | |
| | 45 | == Triggers Explained |