| Version 15 (modified by , 5 days ago) ( diff ) |
|---|
Functions, procedures and triggers
Функции
Certification Expiry
- Параметри: DaysUntil (број на денови од моменталниот датум до датумот на истекување)
- Резултат: табела со колони - EmployeeID, Name, Surname, Active, !CertificationID, CertificationType, AirplaneModel, ExpirationDate, DaysUntilExpiration, IsExpired
Со оваа фунцкија се излистуваат сите сертификати и медицински прегледи на вработените кои истекуваат за DaysUntil.
Connecting Flights
- Параметри: DepartureCode (код на аеродромот од кој се полетува), ArrivalCode (кон на аеродромот од кој се слетуава), Date (датум на лет)
- Резултат: табела со колони - flight1_Number, flight1_Departure, flight1_Arrival, connection, layoverMinutes, flight2_Number, flight2_Departure, flight2_Arrival
Оваа функција пронаоѓа лет од аеродром со код DepartureCode до аеродром со код ArrivalCode на датум Date. Многу дестинации и рути помеѓу два аеродроми во реални авиокомпании немаат директни летови, туку најчесто се поврзани. Со функцијата Connecting Flights овозможено е пронаоѓање на некои поврзани летови, при што се нуди информација и за аеродромот каде се поврзуваат и времето на чекање. Функцијата враќа само два поврзани лета поради тоа што во реалното функционирање на авиокомпании се употребуваат хабови (аердроми кои имаат летови до речиси сите понудени дестинации) - со ова се избегнува потребата од поврзување на повеќе летови, со што се подобрува искуството на корисниците.
Find Alternative Flights
- Параметри: !CancelledFlightID (ID на откажаниот лет) и MaxHours (максимален број на часови од полетувањето на откажаниот лет и ново пронајдениот лет)
- Резултат: табела со колони - FlightID, FlightNumber, Departure, Arrival, HoursFromOriginal, SeatClass, AvailableSeats
Оваа функција наоѓа алтернативни летови од одреден лет при откажување. Како аргументи ги прима ID на откажаниот лет, преку чии податоци знае како да пребара нови летови, и максималниот број на часови до полетувањето на новиот пронајден лет. За секој лет се прикажуваат детали, како и бројот на слободни седишта од секоја класа.
Get Flight Crew
- Параметри: !FlightID (ID на летот)
- Резултат: табела со колони - EmployeeId, Name, Surname, DateOfBirth, Rolе
Оваа функција враќа детални податоци за вработените на секој лет - лични податоци, како и нивната улога на летот (пилот, копилот или стјуардеса).
Процедури
Add Baggage
- Параметри: TicketId (ID на карта), BaggageTypeId (ID на тип на багаж), Weight (тежина на багаж), Height (висина на багаж), Length (должина на багаж), Width (ширина на багаж)
Оваа процедура се употребува за додавање на багаж на одредена карта. Кога патникот сака да додаде нов багаж на својата карта за одреден лет, процедурата ги проверува соодветно валидноста на летот, картата, како и димензиите во споредба со одбраниот тип на багаж. По проверките за валидација се додава нова редица во табелата Baggage.
Assign Seat
- Параметри: !TicketID (ID на картата), !SeatID (ID на седиштето на конкретен лет)
Оваа процедура се употребува за доделување на слободно седиште на некој патник на даден лет. Се проверува дали постојат летот и картата на корисникот, дали корисникот веќе се има качено на авионот (картата има статус Boarded), дали веќе е доделено тоа седиште на таа карта, дали седиштето припаѓа на истиот лет со картата, дали се совпаѓа со избраната класа, и дали е веќе резервирано. Доколку не е, во табелата Ticket се ажурира полето SeatID, и на атрибутот Reserved во табелата Seat му се доделува вредност true.
Check In
- Параметри: !TicketID (ID на картата)
Оваа процедура сетира статус на картата - Boarded. Пред да се направи тоа, се прават проверки дали картата не е Boarded и дали веќе е CheckedIn. Исто така, се проверува дали е започнат процесот на чекирање (од 8 часа до 45 минути до полетување). Исто така, доколку нема доделено седиште, системот автоматски му доделува седиште од иста класа како со картата на патникот.
Board
- Параметри: !TicketID (ID на картата)
Оваа процедура сетира статус на картата - Boarded. Пред да се направи тоа, се прават проверки дали картата е CheckedIn и дали веќе е Boarded. Исто така, се проверува дали е дозволен влез на авионот (од 1 час до 15 минути до полетување).
Cancel Flight
- Параметри: !FlightID (ID на летот), CancellationReason (причина за откажување)
Со оваа процедура вработените во авиокомпанијата можат да откажат одреден лет и да наведат причина за истото. Се вршат проверки дали летот постои, дали е веќе откажан или дали е веќе полетан. Доколку поминат проверките, се менува статусот на летот во Cancelled, се додава нова колона во табелата CancelledFlight и се менува статусот на сите карти за тој лет во Cancelled.
Change Flight Status
- Параметри: !FlightID (ID на летот), !StatusID (ID на новиот статус)
Со оваа процедура се врши промена на статусот на одреден лет од страна на вработените во авиокомпанијата. Се вршат проверки за тоа дали летот и статусот навистина постојат, дали е летот веќе слетан или откажан (не е дозволено да се промени статусот на слетан или откажан лет).
Purchase Ticket
- Параметри: PassangerID (ID на патникот), FlightID (ID на летот), SeatClassID (ID на класата седиште), SeatID (ID на резервирано седиште), ReservationID (ID на резервација)
Со оваа процедура е овозможено купување на билет за одреден лет. Потребно е да се внесат корисникот, летот, класата, резервацијата и незадолжително може да се внесе и резервирано седиште доколку корисникот сака да го резервира однапред (дополнителната цена се додава на вкупната цена на билетот). Се прават проверки дали постои летот, дали е дозволено купување на билет (треба да има повеќе од 3 часа време до полетување), дали летот е откажан и слично. На крај, се пресметува цената на билетот според растојанието и класата и се додава нова редица во колоната Ticket.
Тригери
Award Mile Points
При слетување на некој лет (ажурирање на статусот на лет во Arrived) на секој патник кој се качил на авионот (поседува карта со статус Boarded) му се доделуваат поени според растојанието на летот и класата на седиштето.
Increase Final Price Baggage
При додавање на куфер на карта на одреден корисник, крајната цена се зголемува според типот на багаж кој се додава. Овој тригер одговара на процедурата Add Baggage.
IncreaseFinalPriceBaggage.sql
Set Seat Reserved
Со купување на нова карта (додавање на редица во табелата Ticket), доколку има однапред резервирано седиште неговиот статус се менува во Reserved. Овој тригер одговара на процедурата Purchase Ticket.
Update Airplane Flight Hours
Кога статусот на некој лет се менува во Arrived, вкупниот број на часови на летање на авионот се зголемуваат за времето кое било потребно да се помине растојанието од почетната до крајната дестинација на летот.
UpdateAirplaneFlightHours.sql
Update Last Maintenance
При извршување на сервис на некој авион (додавање на редица во табелата Maintenance), потребно е атрибутот LastMaintenance на авионот да се ажурира на ID на новиот сервис.
Attachments (16)
- CertificationExpiry.sql (814 bytes ) - added by 7 days ago.
- ConnectingFlights.sql (1.5 KB ) - added by 7 days ago.
- FindAlternativeFlights.sql (2.2 KB ) - added by 7 days ago.
- GetFlightCrew.sql (1004 bytes ) - added by 7 days ago.
- AssignSeat.sql (1.8 KB ) - added by 7 days ago.
- Board.sql (1.4 KB ) - added by 7 days ago.
- CancelFlight.sql (1.2 KB ) - added by 7 days ago.
- ChangeFlightStatus.sql (853 bytes ) - added by 7 days ago.
- CheckInTicket.sql (2.4 KB ) - added by 7 days ago.
- PurchaseTicket.sql (3.6 KB ) - added by 7 days ago.
- AwardMilePoints.sql (1.1 KB ) - added by 7 days ago.
- IncreaseFinalPriceBaggage.sql (455 bytes ) - added by 7 days ago.
- SetSeatReserved.sql (355 bytes ) - added by 7 days ago.
- UpdateAirplaneFlightHours.sql (632 bytes ) - added by 7 days ago.
- UpdateLastMaintenance.sql (609 bytes ) - added by 7 days ago.
- AddBaggage.sql (1.4 KB ) - added by 5 days ago.
Download all attachments as: .zip
