Wednesday, January 3, 2024
3 changes · 17.0
Resolved issues and error corrections
This update fixes multiple payroll calculation errors in the Hong Kong payroll system, including incorrect handling of unpaid leave, voluntary contribution display, and payment-in-lieu calculations. It also adds comprehensive unit tests and improves the MPF export file format to ensure accurate employee payments and compliance reporting.
This fix resolves an issue where recurring subscription payments were incorrectly marked as failed even though the payment was successfully processed. The problem occurred due to database conflicts when multiple systems tried to update subscription records simultaneously. The fix improves how subscription status is updated during payment processing to prevent these conflicts and ensure accurate payment status reporting.
Original PR description
Steps: - Install subscription app and razorpay provider. - Configure and publish razorpay provider. - Create a subscription and pay via razorpay. - Now change system date to next recurring date.…
Steps: - Install subscription app and razorpay provider. - Configure and publish razorpay provider. - Create a subscription and pay via razorpay. - Now change system date to next recurring date. Issue: - Subscription is in `Payment Failure` state even though payment is successfully captured. Cause: - Because of concurrent update in database while creating transaction from token for recurring charges - When razorpay make tokenize request via `_send_payment_request` method then transaction process data via `_handle_notification_data` and from web-hook so it tries to write on transaction with same data multiple times and at same time subscription also tries to write so because of concurrent update it skips to write on subscription and subscription stays in `Payment Failure` state. Fix: - Handle writing on subscription in there state changing method instead of trying to write in between when transaction processing so it does skip writing on subscription and properly set/remove subscription state. task-3652228
This fix prevents the Point of Sale system from crashing when checking payment terminal status with multiple payment methods using the same Worldline terminal. The system now checks the terminal status only once per device instead of multiple times, eliminating a critical error that would crash the service. An error message has also been added to alert users when no Worldline terminal is configured.
Original PR description
Before this commit: To reproduce the issue (v15 and >): 1. Install PoS and IoT 2. Enable Wordline and configure a worldline payment terminal on the IoT 3. Create 2 payment methods using the same Worldline payment terminal (for instance, if you have a specific meal/eco vouchers bank account) 4. Set them as available payment method of a PoS session 5. Open the PoS session 6. Click the "Last Transaction Status" on the top right => will cause a SEGFAULT on the Worldline driver crashing Odoo service After this commit: We first filter per IoT IP to perform the action once per IoT box Also added an error message if no worldline terminal is configured opw-3630370 Forward-Port-Of: odoo/enterprise#53435 Forward-Port-Of: odoo/enterprise#52340