-
- Downloads
[FIX] account_taxcloud: change display_type filter
Traceback when computing taxes using TaxCloud.
Steps to reproduce:
-Activate TaxCloud in accounting settings, with valids "API ID" and
"API KEY".
-Create an invoice for a USA customer with an invoice line and
"Fiscal Position" set to "Automatic Tax Mapping (TaxCloud)" (in the
"Other Info" tab).
-Confirm
-->Traceback
Traceback:
File
"/src/enterprise/16.0/account_taxcloud/models/taxcloud_request.py",
line 136, in get_all_taxes_values
for item in response.CartItemsResponse.CartItemResponse:
AttributeError: 'NoneType' object has no attribute 'CartItemResponse
Explanation:
-There's a traceback when CartItem is empty (like if there are no move
lines).
-It is empty because of the filter in the function
'_process_lines(self, lines)'.
--> 'lines.filtered(lambda l: not l.display_type)'.
-The goal is to take only move lines that are not Notes or Sections.
-This worked in v15 because display_type was defined as:
display_type = fields.Selection([
('line_section', 'Section'),
('line_note', 'Note'),
], default=False, help="Technical field for UX purpose.")
-But now in v16 it is defined as:
display_type = fields.Selection(
selection=[
('product', 'Product'),
('cogs', 'Cost of Goods Sold'),
('tax', 'Tax'),
('rounding', "Rounding"),
('payment_term', 'Payment Term'),
('line_section', 'Section'),
('line_note', 'Note'),
('epd', 'Early Payment Discount'),
],
compute='_compute_display_type', store=True, readonly=False,
precompute=True, required=True,
)
-The display_type=False does not corresponds anymore to move lines
that are not Sections or Notes, but it corresponds to no move lines at
all.
The fix:
Will filter move lines that are not of type 'line_section' or
'line_note'.
Discussion:
Do I fix the traceback that we get when there a no move lines? This
'issue' is present since at least v14 and it seems like nobody ever
complained.
+:
I've applied the similar change to some lines in the code that also
check if 'display_type' is False for some 'account.move.line' records.
++:
The fix revealed an other issue in the function
'_inter_company_create_invoices' of the file
enterprise/account_inter_company_rules/models/account_move.py:
There's a call on a function that doesn't exist anymore
'line._set_price_and_tax_after_fpos()'. I've deleted the line.
opw-3064174
closes odoo/odoo#106353
Related: odoo/enterprise#34289
Signed-off-by:
William André (wan) <wan@odoo.com>
Please register or sign in to comment