[AppleAppstoreModule]
- Fixed
UPGRADE notification handling when Verify purchase API call is processed first. remp/crm#3254
- Verify purchase handler stops all active recurrents for user.
- Changed
DID_CHANGE_RENEWAL_STATUS notification handling. Handler throws exception when really missing recurrent payment. remp/crm#3254
- Changed the user identification process during notification handling - now user’s active state is checked. remp/helpdesk#2914
[ApplicationModule]
- BREAKING: Removed method
provide from DataProviderInterface. remp/crm#3284
- After the change, there is no specific requirement on data provider implementation registered in
DataProviderManager.
- If you directly implemented
DataProviderInterface, replace the interface with DefaultDataProviderInterface, containing former provide method.
- If you extended
DataProviderInterface with custom interface, make sure you either implement provide method or extend DefaultDataProviderInterface.
- Added Puerto Rico into the country database. remp/crm#3256
- Added Gibraltar into the country database. remp/crm#3257
- Added French Polynesia into the country database. remp/crm#3258
- Added
localized_countries config to enable localized countries based on the user’s locale. remp/crm#2978
- The config is disabled by default to maintain backwards compatibility. This might change in the future.
- Added
CountriesSelectItemsBuilder to translate country names based on the application configuration. remp/crm#2978
[FamilyModule]
- Added OSS payment country resolution to
RequestFormFactory. remp/crm#3191
- Added implementation of
RecurrentPaymentPaymentItemContainerDataProvider, which changes how recurrent payments for family master subscriptions are created. remp/respekt#257
- Previously, payment items for new payment were created by copying subscription items associated with subscription type. Now, payment items associated with previous payment are always used for creating a new recurrent payment.
- Added transfer implementation to
SubscriptionTransferDataProvider to properly transfer parent subscription (family request) to new parent user. remp/crm#3294
- Added audit log for
family_requests table. remp/crm#3295
- Added the ability to block subscription transfer when the slave subscription is assigned to it. remp/crm#3108
[GiftsModule]
- BREAKING: Changed
GiftPaymentItem constructor - $vat variable is now of type float (previously int). remp/crm#3277
- Added option to specify reference to subscription type item for
GiftPaymentItem. remp/respekt#260
[GooglePlayBillingModule]
- Changed the user identification process during notification handling - now user’s active state is checked. remp/helpdesk#2914
[InvoicesModule]
- BREAKING: Added migration that changes type of
vat column in invoice_items table from int to decimal(10,2). remp/crm#3277
- Migration uses
shared lock on table rows, it’s recommended to run it in off-peak hours.
- Added the ability to transfer invoice address while transferring subscriptions between users. remp/crm#3108
- Added
setLocale call with current locale string in InvoiceGenerator. remp/crm#3277
- This adds ability to use locale-aware Latte filters such as
number in invoice templates.
[PaymentsModule]
- BREAKING: Added
PaymentItemContainerFactory, which can create PaymentItemContainer from existing payment. remp/crm#3246
- Each custom payment item type should register itself in container using
registerPaymentItemType method. Otherwise, container with unregistered items is marked as unreliable, and will throw errors during processing.
- BREAKING: Removed obsolete
tb_simple_* configuration values from system. remp/crm#3099
- Please replace them with following configurations:
tb_confirmation_host, tb_confirmation_port, tb_confirmation_username, tb_confirmation_password, tb_confirmation_processed_folder.
- BREAKING: Renamed enum
\Crm\PaymentsModule\Models\ParsedMailLog\State to StateEnum and changed naming convention of names to PascalCase. remp/crm#3243
- BREAKING: Added migration that changes type of
vat column in payments_items table from int to decimal(10,2). remp/crm#3277
- Migration might take a while (without locking the whole table). However, we recommended to run it in off-peak hours.
- BREAKING Changed
PaymentItemInterface#vat() method return type to from int to float. remp/crm#3277
- BREAKING Changed
PaymentItemInterface#forceVat() - $vat parameter type changed from int to float. remp/crm#3277
- BREAKING: Changed
DonationPaymentItem constructor - $vat variable is now of type float (previously int). remp/crm#3277
- BREAKING: Renamed
addItemsFromPaymentToContainer method of PaymentItemContainerFactory to addItemsFromPayment. remp/crm#3243
- DEPRECATED: Deprecated
PaymentsRepository::STATUS_* constants. Use Payment\PaymentStatusEnum::* enum instead. remp/crm#3261
- Changed
PaymentsRepository#copyPayment internals. Method now it internally calls add method and supports One Stop Shop. remp/crm#3246
- Method now emits
NewPaymentEvent, previously not emitted.
- Method now emits
new-payment Hermes asynchronous event, previously not emitted.
- Added OSS payment country resolution to
payments:single_charge command. remp/crm#3191
- Added OSS payment country resolution to
AttachRenewalPaymentEventHandler handler. remp/crm#3191
- Added OSS payment country resolution to
MethodsPresenter, used for authorization payments for new card registrations. remp/crm#3191
- Added default country as OSS fallback country resolver. remp/crm#3191
- Added registration of scenario’s generic event
attach_renewal_payment. This was added in version 3.2.0 and accidentally registered in internal config. remp/crm#3231, remp/novydenik#1147
- Added
BeforeRecurrentPaymentExpiresEvent which is fired by Scenarios before payment expires. remp/crm#3231
- Added scenario’s generic event and handler for stopping recurrent payments from Scenarios. remp/crm#3231
- Added
payments.dataprovider.recurrent_payment_payment_item_container data provider to RecurrentPaymentResolver, adding ability to change logic of creation of PaymentItemContainer when creating recurrent payment. remp/respekt#257
- Fixed OSS VAT rates update when updating payment country of existing payment to default country. Previously, update to default country did not update VAT rates of payment items. remp/respekt#260
- Added the ability to transfer payments and recurrent payments while transferring subscriptions between users. remp/crm#3108
- Added ability to prevent payment gateway override with
BeforeBankTransferMailProcessingEvent when bank transfer/mail payment is received. remp/crm#3147
- Added ability to prevent OSS VAT change on payment items in
PaymentItemContainer. remp/crm#3273
- Reverted formatting from
price back to number in AvgSubscriptionPaymentWidget. remp/crm#3212
- Added One Stop Shop implementation to admin payment form (implemented in
PaymentFormOneStopShopInputsFactory). remp/crm#3191
- Added migration that changes type of
reduced, ebook and standard columns in vat_rates table from float to decimal(10,2). remp/crm#3277
- Changed
DonationPaymentItem OSS default VAT rate to 0%. remp/crm#3283
- Added filter by source account number to parsed mails listing filter. remp/respekt#279
- Refactored
PaymentsRepository::STATUS_* to separated Payment\PaymentStatusEnum::* enum. remp/crm#3261
- Fixed calling
PaymentsRepository::update instead of updateStatus method in PaymentRefundFormFactory. remp/respekt#280
- Added option to allow zero total price in payment container. remp/crm#3300
[PrintModule]
- Added the ability to transfer print subscriptions while transferring subscriptions between users. remp/crm#3108
- Changed
print addresses default flag. Marked most recent print address for each user as default. remp/novydenik#1261
- Each user with
print address must have one marked as default.
- Users can edit only default print address in account detail.
- Added widget to swap default print addresses. remp/novydenik#1261
- Changed
ExportEngine to prioritize default print address over non-default. remp/novydenik#1261
[ProductsModule]
- BREAKING: Changed address parameter in
EbookProviderInterface::getDownloadLinks() to nullable. remp/crm#3199
- BREAKING: Changed
PostalFeePaymentItem constructor - $vat variable is now of type float (previously int). remp/crm#3277
- Some ebook distribution centers (providers) do not require address (user’s email is enough).
- Updated
EbookProvider to catch exception and log it (will maintain previous behavior - no change for frontend user).
- If your distribution center (provider) requires address, check for it in your
EbookProviderInterface implementation and throw exception.
- Reverted formatting from
price back to number in AvgProductsPaymentWidget. remp/crm#3212
- Added auto login after user registration in
CheckoutFormFactory. remp/helpdesk#2995
[RempMailerModule]
- Fixed filter set for
MailLogQueryBuilder in MailReceivedCriteria. remp/crm#3263
[SalesFunnelModule]
- BREAKING: Added mandatory
$user to PaymentItemContainerReadyEvent constructor as second parameter. remp/respekt#245
- If you emit this event, check that you pass correct parameters to constructor.
- Added deprecation info for rendering sales funnels in iframes. More info: README. remp/crm#3251
[ScenariosModule]
- BREAKING: A trait
NotificationTemplateParamsTrait now needs access to ApplicationConfig to work properly. remp/novydenik#1269
- Added
BeforeRecurrentPaymentExpiresEventGenerator to check card expiration dates in advance. remp/crm#3231
- Added trait
TimeframeScenarioTrait which contains validation of TimeframeParam and returns operator and limit which can be further used within selection. remp/remp#2998
- Partially refactored
NotificationTemplateParamsTrait. remp/novydenik#1269
- Fixed
TestUserCommand type error error when using --user_id option. remp/novydenik#1269
[SubscriptionsModule]
- BREAKING: Added migration that changes type of
vat column in subscription_type_items table from int to decimal(10,2). remp/crm#3277
- BREAKING: Changed
SubscriptionTypePaymentItem constructor - $vat variable is now of type float (previously int). remp/crm#3277
- Added the ability to transfer subscription between users. remp/crm#3108
[UsersModule]
- BREAKING: Changed
ViewObjects\Address to include id, type and country view object instead of country_id. remp/crm#3183
- BREAKING: From now
AddressChangeRequestsRepository::acceptRequest() will throw an exception if the request is already rejected. remp/crm#3266
- DEPRECATED: Deprecated
AddressChangeRequestsRepository::STATUS_* constants. Use AddressChangeRequest\StatusEnum::* enum instead. remp/crm#3266
- Fixed performance issues when logging in or using the API. remp/crm#3194
- Added phone number as search possibility in the admin user filter form. remp/respekt#180
- Added
NewAddressChangeRequestEvent event and emit after creating new address change request. remp/crm#3239
- Added new
UserEnabledEvent event when user is reactivated (switched from disabled to enabled). github.com/remp2020/crm-users-module#20
- Added scenario condition
UserCreatedAtCriteria for user element. Filters users created before or after some timeframe. remp/remp#2998
- Fixed
AddressChangeRequestsRepository::acceptRequest() to not let accept the same request multiple times. remp/crm#3266
- Added API endpoint
/v1/user/addresses, used for listing user’s own addresses. remp/respekt#245
- Added
ViewObjects\Country view object. remp/crm#3183
- Added new
UserResetPasswordSuccessEvent which emits after successful password reset change. respekt#261
- Added telephone number to user detail invoice address info. remp/respekt#278