| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 432 |
| Technical Name |
deltatech_actions |
| License | OPL-1 |
| Website | https://www.terrabit.ro |
| Versions | 17.0 18.0 19.0 |
Deltatech Actions
Cleaning and other actions
Provides a set of scheduled maintenance actions (cron jobs) to keep an Odoo database clean and performant. All jobs are disabled by default and run in dry mode (no data is changed until explicitly enabled by an administrator).
Key features:
- ✓Delete duplicate XML (EDI/ANAF) attachments on invoices — cron: Delete duplicate xml attachments
- ✓Delete old generated PDF attachments on invoices — cron: Delete pdf invoice attachments
- ✓Delete old generated PDF attachments on sale orders — cron: Delete pdf sale order attachments
- ✓Delete old generated PDF attachments on stock pickings — cron: Delete pdf pickings attachments
- ✓Delete old chatter messages (with linked non-ANAF attachments) — cron: Delete mail messages
- ✓Create missing stock reordering rules for storable products — cron: Create missing reordering rules (0/0)
- ✓Merge duplicate contacts by e-mail address — cron: Merge duplicate contacts by email
- ✓Merge duplicate companies by VAT number — cron: Merge duplicate companies by VAT
- ✓Normalize company name suffixes (SRL → S.R.L., SA → S.A., etc.) — cron: Normalize company names
- ✓Force-cancel a sale order together with all its pickings, stock moves
and account moves via a server action
(
force_cancel_order_and_moves); the server action must be created manually for security reasons
Configuration
All scheduled actions provided by this module are disabled by
default and run in dry mode (dry_run=True), meaning they only
log what would be deleted without making any changes. Before activating
a cron job, review its parameters and switch dry_run to False.
To configure the scheduled actions, navigate to Settings > Technical > Automation > Scheduled Actions.
Delete duplicate xml attachments
Model: account.move. Removes duplicate XML (EDI/ANAF) attachments on
invoices.
Parameters passed in the cron code field:
- ✓
limit— number of invoice groups to inspect per run (default:10) - ✓
duplicates— minimum number of same-name attachments before deletion starts (default:10) - ✓
max_attachments_to_delete— safety cap on attachments deleted per run (default:50) - ✓
dry_run— set toFalseto enable actual deletion (default:True)
Delete pdf invoice attachments
Model: account.move. Removes old generated PDF attachments from
invoices.
Parameters:
- ✓
limit— maximum number of attachments to delete per run (default:5000) - ✓
pattern— name prefix filter, e.g."INV/%"(empty string matches all) - ✓
max_date_days— delete attachments older than this many days (default:90) - ✓
dry_run— set toFalseto enable actual deletion (default:True)
Delete pdf sale order attachments
Model: sale.order. Removes old generated PDF attachments from sale
orders.
Parameters: same as Delete pdf invoice attachments (pattern example:
"Pro forma/%").
Delete pdf pickings attachments
Model: stock.picking. Removes old generated PDF (and octet-stream)
attachments from stock pickings.
Parameters: same as Delete pdf invoice attachments (default pattern:
"Label%").
Delete mail messages
Model: mail.message. Removes old chatter messages and their linked
attachments, excluding ANAF/XML/ZIP/plain-text attachments.
Parameters:
- ✓
limit— maximum messages to delete per run (default:5000) - ✓
pattern— optional subject filter, e.g."Facturx%"(default:"%"= all) - ✓
max_date_days— delete messages older than this many days (default:90) - ✓
exclude_models— list of model name patterns to skip, e.g.["business.%", "project.%", "helpdesk.%"] - ✓
dry_run— set toFalseto enable actual deletion (default:True)
Create missing reordering rules (0/0)
Model: product.product. Creates stock reordering rules for storable
products that have none. Requires the deltatech_auto_reorder_rule
module to be installed. No extra parameters.
Merge duplicate contacts by email
Model: res.partner. Merges individual contacts (non-company, no VAT)
that share the same e-mail address, using Odoo’s built-in
base.partner.merge.automatic.wizard. Parameter: limit (pairs
merged per run, default: 10).
Merge duplicate companies by VAT
Model: res.partner. Merges company records that share the same VAT
number. Parameter: limit (pairs merged per run, default: 10).
Normalize company names
Model: res.partner. Standardizes legal-form suffixes in company
names (e.g. srl → S.R.L., sa → S.A., pfa →
P.F.A., ii → I.I.). Processes up to 500 records per cron
run. No extra parameters to configure.
Force-cancel server action
The method force_cancel_order_and_moves on sale.order cancels a
confirmed sale order together with all its linked stock pickings, stock
moves, stock move lines and account moves by writing their state
directly to cancel. This bypasses normal workflow checks and
must be used with care.
To activate it, create a Server Action manually:
- Go to Settings > Technical > Actions > Server Actions.
- Create a new action on model
Sale Order. - Set action type to Execute Python Code and call
record.force_cancel_order_and_moves(). - Add the action to the sale order’s Action menu if needed.
Bug Tracker
Bugs are tracked on Terrabit Issues. In case of trouble, please check there if your issue has already been reported.
Do not contact contributors directly about support or help with technical issues.
Credits
Authors
- Terrabit
- Dan Stoica
Maintainers
This module is part of the dhongu/deltatech project on GitHub.
You are welcome to contribute.
Need help getting started?
We are an Odoo partner building apps for the Romanian market (SAGA & WinMentor export; Romanian accounting localization in progress). Direct support from the team that built the module.
Contact Terrabit →| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 432 |
| Technical Name |
deltatech_actions |
| License | OPL-1 |
| Website | https://www.terrabit.ro |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module