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
- 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)