TIP: You can type at any time to perform a new search.
Account Edi Ubl Cii Purchase Match
account_edi_ubl_cii_purchase_match · OCA/edi
Security findings
Migration considerations
account_move_form_view— For a target of Odoo 17.0+: view 'account_move_form_view' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/edi · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Uncategorized
- Folder size
- 0.14 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/edi
- Last tracking update
- 2026-08-07 08:09:21
- Authors
- ACSONE SA/NV, Odoo Community Association (OCA)
- Maintainers
- ACSONE SA/NV, Odoo Community Association (OCA)
- Committers
- Weblate, OCA-git-bot, oca-ci, Souheil Bejaoui
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- account_edi_ubl_cii_purchase_match_product_packaging
- Description
This module extends the UBL vendor bill import process to improve how vendor bill lines are linked to purchase order lines. Instead of replacing the imported UBL lines with the purchase order lines (standard behavior), this module: 1. **Reads the OrderReference** in the UBL document. 2. **Identifies the corresponding Purchase Order** using the vendor reference (`partner_ref`) or the purchase order ref. 3. **Matches each UBL line** with a purchase order line based on: - product name, - supplier product name 4. **Links the vendor bill line** to the matched PO line 5. When a user manually selects a purchase order line from the bill: - the system stores the supplier product name, - future imports will auto-match using that supplier information. This ensures accurate line-level linking while preserving the supplier’s invoice data.
Code Analysis
Views touched (3)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_move_form_view |
account.move | form | Inherits account.view_move_form | |
account_move_line_select_purchase_line_wizard_form_view |
account.move.line.select.purchase.line.wizard | form | New | |
purchase_order_line_form_view |
purchase.order.line | form | Inherits purchase.purchase_order_line_form2 |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
purchase_mismatchBooleancompute='_compute_purchase_mismatch'help='Checked when this invoice has at least one line that does not fully match its related purchase order line.' -
purchase_mismatch_detailsTextcompute='_compute_purchase_mismatch'help='Human-readable description of the differences between invoice lines and their related purchase order lines.'
No public methods.
New fields (3)
-
purchase_line_mismatchBooleancompute='_compute_purchase_line_mismatch'help='Checked when this invoice line does not fully match its related purchase order line.' -
purchase_line_mismatch_detailsTextcompute='_compute_purchase_line_mismatch'help='Human-readable description of the differences between this invoice line and the related purchase order line.' -
supplier_product_codeCharreadonly=True
-
action_select_purchase_line(self) -
action_show_purchase_line(self)
New fields (16)
-
currency_idMany2onerelated='move_line_id.currency_id' -
descriptionCharrelated='move_line_id.name' -
move_line_idMany2one → account.move.linecomodel_name='account.move.line'readonly=Truerequired=True -
move_line_price_subtotalMonetaryrelated='move_line_id.price_subtotal'string='Move line Subtotal' -
move_line_price_unitFloatrelated='move_line_id.price_unit'string='Move line Unit Price' -
move_line_quantityFloatrelated='move_line_id.quantity' -
partner_idMany2one → res.partnercomodel_name='res.partner'readonly=True -
po_line_price_subtotalMonetaryrelated='purchase_order_line_id.price_subtotal'string='PO line Subtotal' -
po_line_price_unitFloatrelated='purchase_order_line_id.price_unit'string='PO line Unit Price' -
po_line_product_uom_qtyFloatrelated='purchase_order_line_id.product_uom_qty'string='Ordered Qty' -
po_line_qty_invoicedFloatrelated='purchase_order_line_id.qty_invoiced' -
po_line_qty_receivedFloatrelated='purchase_order_line_id.qty_received' -
product_domainBinarycompute='_compute_product_domain' -
product_idMany2one → product.productcomodel_name='product.product'domain='product_domain' -
purchase_order_idsMany2many → purchase.ordercomodel_name='purchase.order'domain="[('partner_id', '=', partner_id), ('state', 'in', ('purchase', 'done'))]"relation='account_move_line_purchase_match_wizard_rel' -
purchase_order_line_idMany2one → purchase.order.linecomodel_name='purchase.order.line'compute='_compute_purchase_order_line_id'domain="[('order_id', 'in', purchase_order_ids), ('product_id', '=', product_id)]"readonly=Falsestore=Truestring='Line'
-
select_purchase_line(self)