vivutio / payment-module
Payments for vivutio: what the organization is owed for its bookings and tickets, gathered from every module, and the payments received against it, recorded by hand.
Package info
github.com/utafitilabs/vivutio-payment-module
Type:symfony-bundle
pkg:composer/vivutio/payment-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
Payments for vivutio. What the organization is owed for its bookings and tickets, gathered by the core from every module that charges, and the payments received against it, recorded by hand as they came.
Contents
Install
In a vivutio installation:
composer require vivutio/payment-module php bin/console doctrine:migrations:migrate
Its recipe registers the bundle and mounts its pages with
config/routes/payment.yaml, a file the installation owns.
How it works
A module that charges for something (a tour booking, a ticket) says so to the
core through ChargeSourceInterface: a reference, who owes it (a partner, or
a party paying directly), the amount and currency, when it was raised and
when it falls due. This module reads every charge through the core's
ChargesInterface and names no module.
Payments shows what is owed, paid and overdue: a row a charge, with what it comes to, what has been paid, what is owed, and where it stands (unpaid, part paid, paid, overdue). A charge's page lists its payments and records one as it came: the amount (never more than is owed), the day received, how (bank transfer, mobile money, cash, card, cheque) and the payer's reference. A payment recorded wrongly is struck out with why, never deleted.
The payments are said back to the core through PaymentSourceInterface, for
whoever keeps the books. Taking payments through a provider (DPO Pay, Pesapal,
Selcom, Stripe) comes later.
Who may do what
| Pair | Who |
|---|---|
payments.read |
The register and a charge's page |
payments.record |
Recording a payment |
payments.manage |
Striking a payment out |
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.