vivutio / ticketing-module
Ticketing for vivutio: tickets bought from airlines, ferries, coaches and railways for travellers, recorded by hand, issued, changed, refunded or voided, and billed to the traveller or a client.
Package info
github.com/utafitilabs/vivutio-ticketing-module
Type:symfony-bundle
pkg:composer/vivutio/ticketing-module
Requires
- php: >=8.4
- doctrine/doctrine-bundle: ^3.0
- doctrine/orm: ^3.5
- psr/clock: ^1.0
- symfony/clock: ^8.0
- symfony/config: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/framework-bundle: ^8.0
- symfony/http-foundation: ^8.0
- symfony/http-kernel: ^8.0
- symfony/routing: ^8.0
- symfony/security-bundle: ^8.0
- symfony/security-core: ^8.0
- symfony/security-csrf: ^8.0
- symfony/security-http: ^8.0
- symfony/twig-bundle: ^8.0
- symfony/uid: ^8.0
- twig/twig: ^3.21
- vivutio/vivutio: ^0.1.32
Requires (Dev)
- doctrine/doctrine-migrations-bundle: ^4.0
- friendsofphp/php-cs-fixer: ^3.95
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^13.2
- symfony/browser-kit: ^8.0
- symfony/css-selector: ^8.0
- symfony/dom-crawler: ^8.0
- symfony/filesystem: ^8.0
- symfony/yaml: ^8.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Ticketing for vivutio. Tickets a travel agency buys from airlines, ferries, coaches and railways for travellers: recorded by hand as the carrier made them, held to the carrier's time limit or issued with a ticket number a traveller, then changed, refunded or voided, every step kept on the ticket.
Contents
Install
In a vivutio installation:
composer require vivutio/ticketing-module php bin/console doctrine:migrations:migrate
Its recipe registers the bundle and mounts its pages with
config/routes/ticketing.yaml, a file the installation owns.
How it works
The agency keeps its carriers: an airline with its two-letter code and three-digit ticket prefix, a ferry, a coach or a railway, and how the agency buys from each. No list is shipped, so none goes stale.
A ticket is made in the carrier's or a booking system's own pages and recorded here: the carrier and its reference, the class and baggage, up to six legs (from, to, the day, leaving and arriving), and up to nine travellers, each with a fare, a ticket number once issued and a seat. A ticket is of its carrier's kind. It is referred to as "TK-0001".
It is recorded held, to the carrier's time limit, or issued. A held ticket is issued with a ticket number for each traveller (an airline's start with its prefix) or let go. An issued ticket is changed as the carrier changed it, with what the carrier charged; refunded, keeping what the carrier returns and what the agency keeps; or voided, the carrier's same-day cancel, only on the day it was issued in the organization's time zone.
It is billed to the traveller who pays, or to a client among the partners: a company or a tour operator traded with now. The money shown is the fares, the agency's fee for each traveller, the taxes in the fares and what the carrier charged for changes.
The module names no other module; it reads partners through the core's
PartnerDirectoryInterface and keeps only a partner's id.
Who may do what
| Pair | Who |
|---|---|
tickets.read |
The register, a ticket's page and the carriers |
tickets.record |
Recording a new ticket |
tickets.manage |
Issuing, letting go, changing, refunding and voiding; adding carriers |
Each is a module pair, held where the person's department allows it too. The
suite extends the core's authority test base; tests/authority-table.md is
the reviewed table.
Development
composer update composer check
Licence
AGPL-3.0-or-later. See LICENSE.