[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