|
|
|
|
|
|
|
|
|
|
|
|
|
- Multi-lingual functionality:
- Include in the CompanyDetails entity a field called ‘multilingual’ (booelan)
- Create new entity called ‘Languages’ containing, language (English, French, German, Spanish) , flag icon file, and abbreviation
- Selection of flag switches language of text
- Page count
- Add field in the Products entity for pageCount and pageCountAdmin
- When a page is loaded add to the pageCount (and if an Admin user add to pageCountAdmin only
|
|
|
-
|
Complete
|
| |
|
|
|
Transfers - Add 3 new fields – 1) “Price Adjustment” (float) and 2) “isSharedAllowed” (boolean) and “sharedTransfers” (relation linked to Transfer Entity – ManyToMany).
- Price Adjustment: Each transfer will have a price, which will be composed of the “standard price” plus the possibility of a manual ‘adjustment’ (which most of the time is zero). The adjustment might be positive or negative and for example might be because the customer wants something special (eg snacks/drinks in the car, or a stopover en route) etc. The “standard price” will be calculated from the destination combination (eg VRB to GVA), the number of passengers and potentially the time of day, and we will designed an entity to capture that. And the Price Adjustment is a manual input. The standard price is computed dynamically – but I want to save it in case the formula changes as we can’t change a price already given (hence a field is required. Make sense?
- IsSharedAllowed. The concept I want to introduce here is that I want to offer people the ability to share a taxi. Typically the vehicles will take 7 people, so if you are a family of 4, you have 3 spare seats. I will only allow a share if the others are on the same flight/train (if inbound – as sometimes flights are late and don’t want any additional waiting) or within [10] mins for a flight/train departure. So if a client says yes to “isSharedAllowed” we will try to combine and split the costs.
- To do that we might need to link transfers together using the sharedTransfers field which will contain which transfers are being combined (typically 2 clients (ie 2 transfers) but could be more, eg 4 passengers +2 passengers +1 passenger) And then we can assign all [3] transfers to the same vehicle/driver….
- For the train pickup service that is the same concept – we will have a bus (say 13 seats) that can take various combinations of passengers to fill it (could be 13 single travellers). That service will take people from LeChable train to their chalets in Verbier. Does that make sense?
|
|
|
-
|
Complete
|
| |
|
|
|
Bookings index - In each transfer (T1..T4), show as much info as possible
- Flights. Blue for Arrival, Green for Departure. Hover for flight details including scheduled and actual times. Show a warning sign if later than x
- Completed trips background colour green
- Accommodation via a popup (name, address. afiiliate, diff access)
- Times shown in icon with error sign if missing or late
Bookings - Show updated flight details in each booking, including flight times when departed/arrived
Flight trips - I am developing a PHP symfony PS project that looks at flight times. I have 2 sources for the scheduled flight times (departure and arrival) data and i want to use both to cross-check. My fields are respectively 1) scheduledDepartureTime and scheduledDepartureTimeGvach and 2) scheduledArrivalTime and scheduledArrivalTimeGvach
- In order to save real estate on the page I want to consolidate this data to a single figure, but have colours identify any discrepancies. My thought is that the display should be (using departures es the example)
- If only the scheduledDeparture time is present (and the scheduledDepartureTimeGvach is null), then display the scheduledDeparture, in grey
- If both scheduledDeparture and scheduledDepartureTimeGvach are availablen and the the same then display either one (scheduledDepartureTimeGvach) in black
- If both are available but are different by more than 10mins, the show scheduledDepartureTimeGvach in black with red !, with the ability to show the scheduledDepartureTime via a tooltip/hover
|
|
|
-
|
Complete
|
| |
|
|
|
Email Template - if the field AffiliateBooking is set to “Direct to Consumer”, then:
- Set specificAffiliate to null
- Set aggregateComfirmation to "Single Booking"
|
|
|
|
Complete
|
| |
|
|
|
Client confirmation button - I want to be able to launch the client confirmation button either in (1) new mode or (2) direct to send (with a popup confirming).
- This is because if i know I amnot going to edit the confirmation before sending what is the point in shwoing the screen
- How to display: Double-click to go stright to send?
- In the top right corner of the booking, show the history of the confirmations sent similar to the booking index view
|
|
|
-
|
Complete
|
| |
|
|
|
SBB - Fix SBB scrape to include all the trains for the day (currently just taking 4-5 trains (one screen's worth), whereas I would expect there to be 30-40 trains per day (for GVA to Martigny as an example)
- I think SBB changed the design of their page?
|
|
|
|
Complete
|
| |
|
|
|
Transfer - The number of Child and Babies should be capped at (Total Pax -1)
- ie If the total passengers is 5, you can't have 3 children + 2 babies. Assumption is that there is always 1 adult
- In the booking Notes we should include ages of children. or should we make this a new field? (ChildAges, BabyAges)? As free text.
|
|
|
-
|
Complete
|
| |
|
|
|
Taxi site - Track the history of the flights to build up a picture as to the on-going schedule
- Email Hermes to see if they will send us the scheduled flights
|
|
|
-
|
Complete
|
| |
|
|
|
Transfer - 3 buttons at the top:
- ‘Save’ - This updates the database but returns the user to the same screen (ie opens the Edit if new or stays on the Edit if in Edit mode)
- ‘Discard’ - Closes the screen and doesn't save. Prompt a "Are you sure?
- ‘Save & Close’ - Saves the record and returns to the Bookings Index
- Cancel transfer
- This is essentially a new field. All the details are saved, but the transfer will disappear from (or zero costs) in any bills or from the driver's manifest
- City- Address
- The chalet name disappears after 2-3 seconds.
- The search should include the Affiliate name, so I can search for “Bramble”
- Cancel button should be in Extras
|
|
|
|
Complete
|
| |
|
|
|
Feedback on Transfer Macro - Date should show the DoW (eg Sun 16 May 2025)
- Destinations
- Should be sorted by “SortOder” and then alphabetically on "City"- with a break before ‘20’ (or different colour) (this is because the first 5 or 6 are the common ones, and the others are rare)
- Add buttons change order, but keep 20 as 20
|
|
|
|
Complete
|
| |
|
|
|
Flight scrape - Saves the kayak link into the Details Link - whereas this should be used for the GVA.CH scrape
- Duplicates seem to still being produced (eg if you run the scrape a second time)
- Doesn't seem to detect or save the airline code.
- Plus airlines have created a bunch of blank airlines (linked to flights - ie can't delete)
- Does scraping make more sense, as the airline is shown in the drop-down? https://www.justfly.com/
|
|
|
|
Complete
|
| |
|
|
|
New Booking - When switching direction, retain the address (and date). Delete the flights (if applicable)
- If Shared, add a link to the SBB train times (on the correct date and direction)
|
|
|
-
|
Complete
|
| |
|
|
|
Affiliates - if this can be done in less than 1 hours…. as it will only take 2 hours to do it manually…
- Cycle through each of the afffiliates and extract all of the data (including the icon) and either save to a CSV or import directly into the Affiliates entity
- Do not need to collect the following data:
- Image file if difficult - I can collate manually (it is a 10min job to do all of them)
- SMS recipients (this is probably stale info by now)
Accommodation Resort contacts - Import the Resort Contacts.
- Need a new entity for them,, User with ROLE_RESORT_CLIENT
- Add a new entity ResortContact and create new record alongside new User
Clients - Extract all client info (188 pages) from this view.
- http://alpexstage.caponica.com/controlroom/customer/list
|
|
|
|
Complete
|
| |
|
|
|
New booking - from email - Ability to ‘suck in’ an email into a Booking.
- The contents of the Email (include To: From, Date, cc, Subject and the main body) should be brought into a single field which is appended at the bottom of the Booking screen (full width of screen and deep).
- The email from field should populate the Booking.Email field.
- Think of it this way. Say we get the following email from john.smith@gmail.com “Subject: Reservation request for Smith family… Body: Hello Alpinexpress, I would like to book 2 transfers. the first on 1 March 2026, picking up at Geneva airport. We are on EZ 1234 from gatwick. we need to go to Chalet Makini in Verbier. We are 3 people. And we are returning a week later on the flight EZ23456 at 11.30am. thank you, John Smith +44 758877444444”
- We should be able to see the full email (not just the body, but also the email address of sender, date/time and subject) and then we can make sure we have uploaded the email accurately and kept a record of that in the booking.
- In truth it is really for auditing and to help the booker convert an email to a set of transfers
- Systematically, it needs to pull in the From, CC, Subject and Body fields from the email, and format nicely into a single field. Then it should fill name the client email with the senders email. That's it. Does that make sense?
- We have some of this functionality already - just not bringing it into a new booking.
- The process of adding a new booking should move the email to DONE directory
- In Company Details we have fields that define where to look in the email for new bookings and where to place them once uploaded. And the email login and password - do you remember that?
|
|
|
-
|
Complete
|
| |
|
|
|
Clients - Can't make entity
- Add new fields:
- Add link to their trips
- 12month PV
- List of bookings, with first date and PV
|
|
|
-
|
Complete
|
| |
|
|
|
Feedback on Transfer Macro - The time box should be a format for time (24hrs) and width should match the dates
- Date should show the DoW (eg Sun 16 May 2025) TODO
- Destination
- Should be sorted by “SortOder” and then alphabetically on "City"- with a break before ‘20’ TODO
- Handling Destination is a "Train Station"
- If you change the Destination from a City to a train/airport (eg from Verbier to Martigny Train) then the From Address field should switch to Train time/Flight
- When Destination is a City (eg Verbier), the Accommodation dropdown needs to contain all the information (see attached screenshot). 2 lines required for each address:
- Symbol to indicate the “Type”
- ‘House’ for a Chalet
- ‘Knife and fork’ for a Restaurant
- ‘Office building’ for a Hotel
- Then show the Chalet Name, Apartment details, and then the Affiliate (in brackets)
- Then line below should have the street and house number
- Looking at the database entry for the Transfer:
- PassengerName and PassengerEmail and PassengerMobile should not be inherited from the Booking.
- This is an over-ride should the transfer not be in the name of the Booking. So unless populated manully, it should be null
- Trip date should be not nullable. Time should not be nullable but have a TBD over-ride or (TBD checkbox)
- Should we rename TripXX to TransferXX in all the fields?
- The addressStart and addressEnd still seems to be a string field rather than a relation field related to the Accommodation entity
- We need this to be linked because the driver will be given various info points from the Accommodation entity (eg Door Code, GPS location, Driver notes, Client notes, Associated Resort Contact). But there neeeds to be a manual over-ride “Other” available
- Layout of Pax Child/baby. Try to get on 1 line
- The Hide/Show extra fields
- The Passenger Name/Email/Mobile should be here. (These are the “over-ride ones in case the names is not the same as the Passenger details for the ”Booking" as a whole
- Delete Button should be hidden
- There should be a “Cancel trip flag” - which is similar to delete but retains the info for document record keeping purposes
- Notes needs to be a bigger field
- The timestamps can be indicated in pop-ups without expanding the section. The user will only expand if they want to edit - which is rare as the times are generated by the system.
Feedback on the Booking section (on the left) - When you save the booking, you should show the ID of the “Booking”. This is the customer reference number
- Client email and client mobile should be nullable
- Client details should be saved in the Clients entity if unique (ie that database grows)
- Status should be: Confirmed/Inquiry/Cancelled (no need for cancel booking field)
- Booking history: This should save the logged-user and time of creation
- Payment link expiry: First trip date time less 24 hours
- Still has the word “Transfers” on the bottom left
|
|
|
-
|
Complete
|
| |
|
|
|
Shared Transfers Conceptual overview: - The Shared Service is a bus service from LeChable to Verbier (about 10mins drive) that can be shared by multiple passengers allowing people to complete their journey without hiring an expensive taxi
- It is a bus with up to 13 seats.
- LeChable is where the train arrives, at the bottom of the mountain. Verbier is the mountain village where the skiers stay.
- Uphill (arrivals, at start of holiday): LeChable→ Verbier
- Downhill (departures, at end of holiday): Verbier → LeChable
- There is a Shuttle (ie a bus available) for every train that starts/ends at LeChable that goes to/from GVA. Typical tourist from, say London….
- Arrival:
- Flight: London→ GVA
- Train: GVA→ LeChable
- Shuttle bus: LeChable→Verbier (uphill)
- Departure:
- Shuttle bus: Verbier→LeChable (downhill)
- Train: LeChable → GVA
- Flight: GVA→ London
- Therefore
- The uphill shuttle (LC→V) is derived from the fight arrivals and then matched train GVA→LC (working forward from the flight arrival time)
- The downhill shuttle (V→LC) is derived from the fight departures and then matched train LC→GVA (working backwards from the flight departure time)
- Each passenger is assigned to their best shuttle according to their flight details. See flight_trip index - which assigns them to the best train time.
- Let's first assume infinite capacity for the Shuttle and then consider how to limit the seats.
Assigning Transfers to a Shuttle Bus - A “Shared” Transfer (in a booking) needs to be assigned to a shuttle
- This is important as there are limited seats and the shuttle driver needs to know who they are picking up and where they are taking them to
- Also, I want to be able to see the list of shuttles and how many seats are booked (and free = 13 - # booked), as during the day as flights are late/early people may need to be bumped to earlier/later shuttles. This should only applies to the Arrivals (Uphill) shuttles as people will take their chosen Shuttle on the Departures (downhill) in time to catch their planes (ie we are ‘upstream’ of any flight delays). But we should be able to bump people up down the shuttles schedule easily/quickly and indeed enable the user to do that themselves (we should send them an email/whatsapp when we think they are on their train and confirm etc).
Pricing - There is also the pricing of Shared to consider
|
|
|
-
|
Complete
|
| |
|
|
|
New booking - For taxi drop-offs at train stations, add the ‘10’ mins required to buy their ticket to the travel time
- eg Train time : 12;00 ; drive time = 32mins, then leave Verbier time is 12.00 - 32mins -10mins = 11:18
- For all drive times add 5mins and multiply by 1.1 (dynamically controlled in settings).
- Airport bookings
- Is showing the Geneva flights for Zurich Airport or Sion Airport. It needs to match on airport too. Let's add some Zurich and Sion flights to test
|
|
|
-
|
Complete
|
| |
|
|
|
Customer confirmations - Launching the email from the Booking menu - where you have 2 choices, namely to edit or just send as standard.
- The edited version should open in a new tab (target =_blank) DONE
- Looking at the formatting
- The email fragments placed at the bottom of the page seem to be within the ‘grid’ so don't use the full page. DONE
- I think at the top of the page you should show the To and CC fields and make them editable. DONE
- Can you widen the grid so that the text doesn't wrap? DONE
- Tab titles - Bookings and Client Confirmation emails DONE
- Currently they are all the same ("VBC-1234 (Stephen Nurse)"), so you can't tell if it is a booking page, or confirmation page.
- Suggest we update the tab title to enable us to distinguish and include some more key details (status and affiliate)
- Booking:
- [B] at the start, to indicate booking. Or can you have an icon (ticket icon)?
- [PT] is all Privates, {ST} is all Shared, [PST] if a combination
- Can we add green tick/red cross/grey question-mark to indicate status
- If affiliate, then affiliate code in bracket (eg BS, which is the code for Bramble Ski)?
- <Ticket-icon> [PT] <green tick>: 13085: Stephen Nurse [BS]
- Emails:
- Perhaps an envelope icon to start to indicate an email
- Affiliate code in bracket (eg BS, which is the code for Bramble Ski)?
- <Envelope-icon> [PT] <green tick>: 13085: Stephen Nurse [BS] Shared Shuttle
- The heading for Uphill text says “Drop-up address". Should be “Drop-off”
- Save vs Send
- Can the email actually be sent so we can see how it looks in Outlook or on a phone. STILL TO DO
- Set send address to nurse_stephen@hotmail.com or your email while we are testing
- Deleting a booking
- Should delete all associated confirmations too (cascade). We will disable this button in live
Booking - The status field (confirmed, enquiry, cancelled) can never be null. DONE
- For the Shared Shuttle, no need to display the text in red at the top (9 km, 20 mins Suggested Time:xxx). This is helpful for Private Transfers, but is known for the Shared DONE
Imported emails - What's the difference between:
- http://localhost:8000/emails_import/index
- http://localhost:8000/booking/index_pending_emails
- index_pending_emails view:
- Display date as 12-Nov-25 DONE
- Sort by date+time DONE
- The text includes formatting code “1 private transfer from V-Verbier to GVA. To get flight to LGW at 3pm. 5 pax” DONE
- Show the first 2-3 lines, Hover over to show the full text DONE
- Perhaps show the number of bookings with that email address as counter (to help indicate if a regular/important customer) DONE
Confirmations - http://localhost:8000/client_confirmations/index
- Include sorting buttons, similar to booking.
- Must be searchable by Booking ID and/or name and/or tel number
- No wrap on all columns DONE
- Include a button on a confirmation that takes you to all emails on that booking specific booking DONE
- Booking ID→ ID to save space DONE
- Show content with a hover. DONE
- By- show initials and hover over for fullName. Save space. Auto - show computer icon DONE
|
|
|
-
|
Complete
|
| |
|
|
|
New booking - Flights should be sorted as follows:
- GVA pickup (ie Flight Arrivals): By scheduled flight arrival time
- GVA drop-offs (ie Flight Departures). By scheduled flight departure time
- Note, by "scheduled" I mean the gvach if it exists and the plain scheduled one if not
- Departure times from trips to/from an airport not computed yet. Should reference the flight arrival or departure times with the formulas agreed.
|
|
|
-
|
Complete
|
| |
|
|
|
Transfers - The Cancel button should be a checkbox, that can be unchecked to allow the transfer to be uncancelled
- Add a ‘Copy’ button that copies all the details of a given transfer, and does a Save-Re-Open too.
- This is because we are often asked to do similar trips (eg pick up the family at 8am to take to school Mon, Tues, Weds)
- Without opening the Extras section, we should be able to see the content, if populated, in the Transfer main box, using icons and title/hover
- For Passenger Name
- For the Driver, show the Departed and Arrived Times via icons and the mins late/early (see template/transfer/parts/trip_times_body.html.twig)
- By the accommodation, if picked from the dropdown list, have a link to the accommodation/show record and also a pop-up box(es) with all the content summarised
- Key icon for door-code
- Warning icon if Difficult Access
- 3 Notes fields (Driver Icon, User Icon, Office icon)
- Map marker
Booking - If there are more than 1 transfer, they transfers should be ordered by Date-Time, and ordered Transfer#1, Transfer #2, Transfer #3 etc
- Cancelled transfers should appear in the list (in order) but without a Transfer number
- Why does the Zero Commission and Follow-Up Flag display differently?
- Fields for notes doesn't expand when typing
- Last edited time/user required
Email confirmations and history - Under the Customer Details (below mobile) have an icon/link to customer confirmations, It should include the count sent and a link that shows all confirmations for this booking
- Similarly for WhatsApp messages
|
|
|
|
Complete
|
| |
|
|
|
Email received into the mailbox - Ability to import in an email into a Booking.
- Populates the “EmailImport” field with the content
- Popluates Client-email from the sentFrom field of the email
- Will need to save in the website the email login and password and the directory (i.e. "_Taxi Bookings To Be Uploaded”) to look into.
- When the import is done, it moves the email to a new directory (i.e. "_Taxi Bookings Uploaded”)
|
|
|
|
Complete
|
| |
|
|
|
New Booking. - When you save a New Booking, it selects ‘1’ for the ZeroCommission and followUpFlag fields, even if unchecked. This is the form (same for both):
->add('followUpFlag', CheckboxType::class, [ 'required' => false, 'empty_data' => false, 'label' => 'Follow Up', ]) - The dropdowns are slow and repeatedly trigger. Most notable is for the Client Name/email/tel and the flight details
|
|
|
|
Complete
|
| |
|
|
|
New/Edit Booking - When the Destination is a City….
- Standard: If the address is selected from the list of accommodations, can you put the chalet name in the original dialogue box, with a ‘x’ there to change, and the address etc in the line below.
- Other: If the selected address is ‘Other’, it doesn't display the accommodation details when reopened in Edit mode. It does save in the DB and can be accessed in the index.html.twig
- Check database (StartAddress, StartAddressOverRide, EndAddress, EndAddressOverRide) and how they change if you change Destination. Specifically, changing the Destination (eg Verbier change to [Chamonix]) should clear accommodation if selected from the dropdown list (as that would be in Verbier)
Transfer #1 - The default transfer #1 on a new booking is a trip from GVA to Verbier on the next [Sunday].
- However the transfer_macro does not offer the user a list of flights. One has to switch to another destination and back to GVA to trigger the population of flights (need to confirm if still true) Let's wait to test on Saturday when we can upload some flights to test
Transfer #2 - When adding a new transfer(trip 2), the defaults should be:
- Date: Date of trip #1+ 1 week
- Destinations: Same as trip #1 but in the opposite direction
- Accommodation: Same as trip #1
|
|
|
|
Complete
|
| |
|
|
|
Flight selector in New Booking - Find a date where there are flights available.
- Select “LGW” (for London Gatwick LGW)…. Initially this will show the LGW flights but then shows others
|
|
|
-
|
Complete
|
| |
|
|
|
Flight Index - Where the train times are shown in the view, hover over to show the 2 preceding and 5 following train departure times.
- When a flight arrival is delayed, show the new expected train time and the previous one in a warning box
|
|
|
|
Complete
|
| |
|
|
|
Populate flights - The challenge is to get the Flight data populated such that you have the schedule of flight past and present as far as possible.
- For the updated times (ie delays/cancellations) you need to scrape the live site from the airport (eg gva.ch for Geneva airport, https://www.hermesairports.com/flight-info/arrivals-and-departures-pfo for Pathos)
- So practically there are two tasks,
- Build the forward schedule (so clients can book a trip say 2 weeks in advance
- Check and update live times on the day of the flight.
- And the objective is to then marry that data
- In absence of the list of flights, can we scrape kayak for all the destinations served by the airport to build a list of flights?
- Chat GPT tells me the PFO site is easy to scrape as simple HTML, but the GVA site is harder
- The basic idea is that we should get updated flight info from the live sites (gva.ch for Geneva and https://www.hermesairports.com for Pathos) but use aviationstack free account to get the schedule a rolling 3 months in advance
- On Tuesday, can you work on the scrapers for PFO and GVA?
|
|
|
|
Complete
|
| |
|
|
|
Transfer - Clicking out an accommodation does not delete it
|
|
|
|
Complete
|
| |
|
|
|
Destinations - Add the following fields:
- Default address (used for airports and train stations)
- Default longitude and latitude
- Notes
Accommodation Street - Add a field “defaultLongitude” and “defaultLatitude”.
- This is used to guide the map function when none of the buildings on that street has a GPS location…. That will allow you to allocate buildings to the street numbers
|
|
|
-
|
Complete
|
| |
|
|
|
Transfers Destination is a City - If the Destintaion IS a city (for either the start or end of the transfer), we need to show the dropdown list of accommodations to know where to pickup or drop off. Include the possibility of "Other"
- Save the accommodation id if picked from the dropdown (ie not ‘other’)
- If Other, save the input in a new field
- We will need 2 fields as we may have new locations in both the pickup and dropoff . Create two new fields
- addressStartOverRide
- addressEndOverRide
- Note: if the Destination is NOT a city (eg airport or train station), then do not show the address field at all (as there is effectively only 1 address)
Destination is a Train Station - If the Destination is a Train station, ask for train time and perhaps the origin/destination location. So the 2 fields are
- trainTime (time)
- trainOriginOrDestination (string)
- Depending on whether Transfer picks up at Martigny or drop offs, we can work out the direction of the journey and check the times. But as far as capturing data- these are the 2 fields
Destination is an Airport (eg GVA) - We need to know the flight details (time, airline, city of origin or end) for both for (1) pickups from at airport (ie where the transfer starts at GVA) and (2) drop-offs at the airport (ie where the transfer ends at GVA)
- However it is the case that only one of the Start or End is an airport - (ignoring the case where we are picking someone up at one airport and driving them to a second airport to take another flight - that never happens)
- So while we need to capture the details of the flight (airline, flight number, destination/origin city, time) if not found in the flight database. we can work out if it is a departure or arrival from whether the Transfer is picking up or dropping off at the airport. So in the Transfer Entity you can use the same fields for Over-rides on the flights
- flightOverRideAirline
- flightOverRideFlightNumber
- flightOverRideFlightTime
- flightOverRideFlightCity
|
|
|
-
|
Complete
|
| |
|
|
|
Live site. - Setting up the login https://axtools.atts-systems.com/backdoor causes an error. This is part of ATS, but I can't replicate on ATS
- “An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pause_for_bookmark' cannot be null”
|
|
|
|
Complete
|
| |
|
|
|
New booking Client search - The client dropdown list of ‘matching’ clients only displays the client name and their email address. The phone number is not displayed
- However, you can search by tel number, even if not displayed
- If you select a client in error, perhaps there could be a quick way to reset?
Chalet address - If a selected accommodation is picked, it should not show the Other Address
- And if you do select Other, it seems to maintain the link to a prior address
Date selection - Online (users) should not be able to select a date in the past. Nor too far ahead (eg 6months)
- In the backend, we should allow historic dates but a warning flag to show if the travel date is in the past
Billing - Payment link not required if Outstanding = 0
- Outstanding calculation is not correct. Doesn't include the surcharges to the Trip prices, nor capture the Paid amount.
|
|
|
|
Complete
|
| |
|
|
|
New Bookings (default settings) - Automatically add 1 transfer, with certain default assumptions.
- Create records in the SystemSettings entity to define the default settings.
- DestinationStart (eg “GVA”)
- DestinationEnd (eg “VRB”)
- Date: Following [Saturday]
- Passenger #: 1
- Baby:0 Child: 0
- Add 3 buttons on each transfer
- Delete transfer (in hidden fields, next to cancel)
- Copy transfer (in hidden fields). This makes an exact copy of the transfer details other than the assigned driver/vehicle and times
- Imagine being asked to create a series of transfers like the same pickup from chalet X to go to ski-lifts every day of the week at say 7am. Easiest way to do that is to create it once, then copy changing the day by +1 day
- Importantly, do not copy the driver/vehicle details as these are not assigned and history is unique (ie when the driver arrrived)
- Return trip - this reverses the To/From. Make the date 1 week later. Same number of passengers. Not hidden - bottom right (could be an icon)
- Create fields called lastSaved and savedBy
- (I have created them already) , that stores the time of last saved.
- Show time and initials in top right. of screen
- These seem to still appear at the bottom of the booking page on the left
- CreatedBy and CreatedOn fields are not being saved at the moment
- Moved to bottom of page, in light grey
|
|
|
-
|
Complete
|
| |
|
|
|
Pricing - In Settings create a formula for the derivation of a price derived from
- Entity: HighVolume Days
- Early start time/ Late finish time/premium
- Weekend
- Shared price P1, P2, P3, P4, P5, P6, P7, P8
|
|
|
-
|
Complete
|
| |
|
|
|
Transfer_macro - When you have a flight, display the flight details so easy on the eye - presumably this can be der0vied from the flight id:
- Flight #/airline
- To/From
- Either the Scheduled Departure (for depatures) or Arrival (for Arrivals) time
- Updated time (ie delays etc)
- In the Transfer_macro, when spooling through the flights, only show the flights where the Date of the flight equals the date of the trip and the ‘direction’ is correct, namely:
- Airport pickups: (ie meeting clients at the airport and taking to the resort- i.e. destinationStart = Airport) - then we are meeting a flight arrival
- If transfer.destinationStart = 'GVA", then look for flightTrips where flightTrip.arrivalAirport = destinationStart
- Airport dropoffs: (ie depositing clients at the airport and starting from the resort- i.e. destinationEnd = Airport) - then we are meeting a flight departure
- If transfer.destinationEnd = 'GVA", then look for flightTrips where flightTrip.departureAirport = destinationEnd
- Compute the pickup time derived from flight or train times
- For pickups it is the flight/train arrival time plus the baggage time (eg 20mins for flights, 2mins for trains)
- For drop-offs (going to the airport), you have to work backwards from take flight time…. less commute time (see routes entity) and the check-in time allowance ,
- System Settings contain the airport and train station delays
|
|
|
|
Complete
|
| |
|
|
|
Managing the shuttles For Arrivals. - Look at scheduled flight arrival time
- Find next train to LeChable that is at least 45mins post scheduled flight arrival
For Departures - Look at scheduled flight departure time
- Find the first train to GVA from LeChable that arrives at least 2 hours before the scheduled flight departure time
|
|
|
|
Complete
|
| |
|
|
|
Client confirmations - As well as saving the client confirmations, can the confirmation be sent out
- While testing hard-code the To field to: nurse_stephen@hotmail.com
- Should we use the Live/Testing field in CompanyDetails for this?
Email fragments - I have added another fragment for Shared_Waiting_List.
- That doesn't follow the other logic so the inclusion criteria should look at the Name of the template (eg Shared_Waiting_List) or something similar.
|
|
|
-
|
Complete
|
| |
|
|
|
|