[ApiModule]
- Changed
ApiTokensRepository to use new DatabaseTransaction API. remp/crm#3330
[AppleAppstoreModule]
- Changed
VerifyPurchaseV2ApiHandler to handle only AUTO_RENEWABLE product type transactions. remp/respekt#273
[ApplicationModule]
- BREAKING: Updated
twig/twig to v3. remp/crm#3343
- This version removes features deprecated in v2 and adds some new deprecations, which will be removed in v4.
- We recommend that you go through the
v2 deprecations and v3 deprecations and verify, that you don’t use the listed features (primarily in sales funnels).
- BREAKING: Removed not used columns from
calendar table. remp/crm#3337
- Columns are removed without a replacement. If you use them, replace them with your own logic / native PHP formatter.
- IMPORTANT: Added new extended implementation of Hermes\Emitter
Crm\ApplicationModule\Hermes\TransactionEmitter which supports delaying event emitting until transaction commit or throwing events emitted during the transaction away if the transaction was rolled back. remp/crm#2218
- IMPORTANT: Added new
DatabaseTransaction wrapper which allows to nest transactions even with start/commit/rollback function calls. remp/crm#3330
- Added callbacks
onCommit and onRollback. (example usage: to be able to delay event dispatching during transaction)
DatabaseTransaction is now implemented within ReplicaManager which forces all queries to be executed on the primary database during transaction.
- It is recommended to update transactions to use new
DatabaseTransaction API (directly via DI or via Repository->getTransaction()) to ensure correct transaction handling within nested transactions. remp/crm#3330
- Updated Font Awesome to v6 in the default frontend layouts. remp/crm#2936
- Fixed duplication of query calls if primary database enforce flag was set. remp/crm#3342
- Removed useless property assign in
AuditLogRepository. remp/crm#3330
- Fixed
ApplicationConfig to read config entry from the database when it’s not present in cache yet. remp/crm#3347
[FamilyModule]
- Fixed recurrent payments VAT resolving - previously, VAT changes were ignored, now current VAT of subscription type items is always used. remp/helpdesk#3159
- Fixed Subscription Transfer provider which wrongly evaluated slave subscriptions which belonged to customizable master subscription type. remp/crm#3294
[GiftsModule]
- BREAKING: Updated frontend icons used in the module to Font Awesome v6. remp/crm#2936
- If you have registered your own frontend layout, please update your font awesome to the latest v6 version.
- Added generic event for scenarios allowing the gift donor to be notified in scenarios. remp/respekt#319
[GooglePlayBillingModule]
- Added purchase type validation to
VerifyPurchaseApiHandler. Handler allows only subscription purchases. remp/respekt#273
[IssuesModule]
- Removed useless property assign in
IssueBaseRepository. remp/crm#3330
[InvoicesModule]
- BREAKING: Updated frontend icons used in the module to Font Awesome v6. remp/crm#2936
- If you have registered your own frontend layout, please update your font awesome to the latest v6 version.
- Added
EuVatValidator, for validating EU Vat IDs using VIES. remp/crm#3284
- Added
vat_id_consultations DB table. remp/crm#3284
- Added
VatModeDataProvider, which uses new VatModeDetector for selecting user VAT mode (see VatProcessor in PaymentsModule for details). remp/crm#3284
- Changed
InvoicesRepository to use new DatabaseTransaction API. remp/crm#3330
[PaymentsModule]
- IMPORTANT - Added support for VAT modes (B2B, B2B reverse-charge and B2C modes), processed by
VatProcessor class. remp/crm#3284
- Payment VAT is be modified depending on a selected mode. VAT changes are applied just before saving or updating the payment in
PaymentsRepository.
- Current
VatProcessor always selects B2C mode as a default mode.
- To choose a different mode for the user, implement
VatModeDataProviderInterface data provider.
- When using
PaymentsModule together with CRM InvoicesModule, it implements this interface in VatModeDataProvider class. Correct VAT mode is selected depending on user invoice address.
- Fixed type error when editing payment with items without link to subscription type item. remp/respekt#317
- Added anonymization of recurrent payments cid. remp/crm#3268
- Added handle anonymize cid-s in
RecurrentPaymentsUserDataProvider.
- Added
CancellableTokenInterface which defines methods for payment gateways which support payment cid (external_token) anonymization.
- Implemented
cancelToken method in Comfortpay payment gateway.
- Changed
PaymentItemsRepository and ChangePaymentSubscriptionTypeFormFactory to use new DatabaseTransaction API. remp/crm#3330
- Fixed possibly broken admin payments filter if the filter data provider joined the table with ambiguous column names. remp/crm#3351
- Changed type of
$amountFrom and $amountTo parameters in ParsedMailLogsRepository::all from int to float to avoid losing the precision. remp/crm#3356
- Added command
payments:change_vat to handle VAT rate change. remp/crm#3357
[PrintModule]
- BREAKING: Updated frontend icons used in the module to Font Awesome v6. remp/crm#2936
- If you have registered your own frontend layout, please update your font awesome to the latest v6 version.
[ProductsModule]
- BREAKING: Changed signature of
PostalFeeConditionInterface::isReached method. Parameter $value is now optional. remp/respekt#320
- If you implement
PostalFeeConditionInterface, alter your implementation of isReached method to accept nullable $value.
- Updated Font Awesome to v6 in the default frontend layout. remp/crm#2936
- Change country postal fee condition - configuration value is now optional and used only when required by the implementation. remp/respekt#320
- Changed
OrdersRepository and CountryPostalFeesFormFactory to use new DatabaseTransaction API. remp/crm#3330
- Removed brand name “Denník N” from translation strings. remp/novydenik#1316
- Added command
products:change_vat to handle VAT rate change. remp/crm#3357
[RempMailerModule]
- Added command to subscribe users of segment to selected newsletter. remp/respekt#301
[SalesFunnelModule]
- Fixed convert
address_id value to integer in SalesFunnelFrontendPresenter::renderSubmit. remp/respekt#271
- Changed
SalesFunnelTagsRepository to use new DatabaseTransaction API. remp/crm#3330
- Refactored
SalesFunnelFrontendPresenter::validateFunnel to call BasePresenter::onlyLoggedIn instead of redirecting to custom login page. remp/crm#3288
[ScenariosModule]:
- Changed
ScenariosRepository to use new DatabaseTransaction API. remp/crm#3330
[SegmentModule]
- Fixed
isIn segment check crashing in case tested column was requested with prefix (e.g. users.id) but segment fields were not prefixed (id, email). remp/crm3344
[SubscriptionsModule]
- Changed subscription edit form to display only active subscription types. remp/crm#3262
- Changed
SubscriptionTypeTagsRepository and SubscriptionTransferConfirmationFormFactory to use new DatabaseTransaction API. remp/crm#3330
[UpgradesModule]
- BREAKING: Updated frontend icons used in the module to Font Awesome v6. remp/crm#2936
- If you have registered your own frontend layout, please update your font awesome to the latest v6 version.
[UsersModule]
- Fixed incorrectly escaped header in admin user detail, when showing user who is also an institution. remp/helpdesk#3129
- Changed
UsersRepository, UserConnectedAccountsRepository, AccessTokensRepository to use new DatabaseTransaction API. remp/crm#3330