TIP: You can type at any time to perform a new search.
Avalara Avatax Connector
account_avatax · OCA/account-fiscal-rule
- Repository
- OCA/account-fiscal-rule · module folder · Try on Runboat
- Module version
- 3.4.4
- Category
- Accounting
- Folder size
- 5.05 MB
- License
- AGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://github.com/OCA/account-fiscal-rule
- Last tracking update
- 2026-08-07 07:38:32
- Authors
- Odoo Community Association (OCA), Fabrice Henrion
- Maintainers
- Odoo Community Association (OCA), Fabrice Henrion
- Committers
- Pedro M. Baeza, GitHub, Daniel Reis, Bhavesh Odedra, OCA-git-bot, oca-travis, Atchuthan, Sodexis, Steven Campbell
Code Analysis ⓘ
Views touched (14)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | tree | New |
invoice_form_view_editable_field |
invoice.form.view.editable | account.move | form | Inherits view_move_form_inherit_1 |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | tree | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | form | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | form | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | form | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | form | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | form | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | tree | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | form | Inherits account.view_tax_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (13)
New fields (1)
-
is_avataxBooleanstring='Use Avatax API'
No public methods.
New fields (9)
-
avatax_amountFloatcopy=Falsestring='AvaTax' -
exemption_codeCharcompute=_compute_onchange_exemptionhelp='It show the customer exemption number'readonly=Falsestore=True args: 'Exemption Number' -
exemption_code_idMany2one → exemption.codecompute=_compute_onchange_exemptionhelp='It show the customer exemption code'readonly=Falsestore=True args: 'exemption.code', 'Exemption Code' -
exemption_lockedBooleanhelp="Exemption code won't be automatically changed, for instance, when changing the Customer." -
invoice_doc_noCharhelp='Reference of the invoice'readonly=Truestates={'draft': [('readonly', False)]} args: 'Source/Ref Invoice No' -
location_codeCharreadonly=Truestates={'draft': [('readonly', False)]} args: 'Location Code' -
tax_address_idMany2one → res.partnercompute='_compute_tax_address_id' args: 'res.partner', 'Tax Shipping Address' -
tax_on_shipping_addressBooleandefault=True args: 'Tax based on shipping address' -
warehouse_idMany2one → stock.warehouseargs: 'stock.warehouse', 'Warehouse'
-
avatax_commit_taxes(self) -
avatax_compute_taxes(self, commit=False)Called from Invoice's Action menu. Forces computation of the Invoice taxes -
button_draft(self)Sets invoice to Draft, either from the Posted or Cancelled states -
get_origin_tax_date(self) -
is_avatax_calculated(self)Only apply Avatax for these types of documents. Can be extended to support other types. -
onchange_reset_avatax_amount(self)@api.onchange('tax_address_id', 'fiscal_position_id')When changing quantities or prices, reset the Avatax computed amount. The Odoo computed tax amount will then be shown, as a reference. The Avatax amount will be recomputed upon document validation. -
onchange_warehouse_id(self)@api.onchange('warehouse_id') -
post(self)
New fields (1)
-
avatax_amt_lineFloatcopy=Falsestring='AvaTax Line'
-
onchange_reset_tax_amt(self)@api.onchange('price_unit', 'discount', 'quantity')When changing quantities or prices, reset the Avatax computed amount. The Odoo computed tax amount will then be shown, as a reference. The Avatax amount will be recomputed upon document validation.
New fields (1)
-
is_avataxBooleanargs: 'Is Avatax'
-
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True)Adopted as the central point to inject custom tax computations. Avatax logic is triggered if the "avatax_invoice" is set in the context. To find the Avatax amount, we search an Invoice line with the same quantity, price and product. -
get_avalara_tax(self, tax_rate, doc_type)@api.model
New fields (20)
-
account_numberCharhelp='Account Number provided by AvaTax'required=True args: 'Account Number' -
activeBooleandefault=Truehelp='Uncheck the active field to hide the record' args: 'Active' -
auto_generate_customer_codeBooleandefault=Truehelp="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time." args: 'Automatically generate missing customer code' -
company_codeCharhelp='The company code as defined in the Admin Console of AvaTax'required=True args: 'Company Code' -
company_idMany2one → res.companydefault=<expr>help='Company which has subscribed to the AvaTax service'required=True args: 'res.company', 'Company' -
country_idsMany2many → res.countrydefault=_get_avatax_supported_countrieshelp='Countries where address validation will be used' args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries' -
default_shipping_code_idMany2one → product.tax.codehelp='The default shipping code which will be passed to Avalara' args: 'product.tax.code', 'Default Shipping Code' -
disable_address_validationBooleanhelp='Check to disable address validation' args: 'Disable Address Validation' -
disable_tax_calculationBooleandefault=Truehelp='No tax calculation requests will be sent to the AvaTax web service.' args: 'Disable AvaTax Calculation' -
disable_tax_reportingBooleanhelp='No transactions will be recorded in the Avatax service.' args: 'Disable Document Recording/Commiting' -
enable_immediate_calculationBooleanhelp='Tax is computed immediately, as document lines are being added. Warning: will cause heavy traffic on the Avatax service.' args: 'Immediate AvaTax Calculation' -
force_address_validationBooleanhelp='Only compute taxes if addresses were validated by the Avatax service' args: 'Require Validated Addresses' -
license_keyCharhelp='License Key provided by AvaTax'required=True args: 'License Key' -
loggingBooleanhelp='Enables detailed AvaTax transaction logging within application' args: 'Log API Request Details' -
logging_responseBooleanhelp='Enables detailed AvaTax transaction logging within application' args: 'Log API Response Details' -
request_timeoutIntegerdefault=300help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds' args: 'Request Timeout' -
result_in_uppercaseBooleanhelp='Check is address validation results desired to be in upper case' args: 'Return validation results in upper case' -
service_urlSelectiondefault='https://rest.avatax.com/api/v2'help='The url to connect with'string='Service URL' args: [('https://sandbox-rest.avatax.com/api/v2', 'REST API Test'), ('https://rest.avatax.com/api/v2', 'REST API Production')] -
upc_enableBooleanhelp='Allows ean13 to be reported in place of Item Reference as upc identifier.' args: 'Enable UPC Taxability' -
validation_on_saveBooleanhelp='Automatically validates addresses when they are created or modified when Customer profile is saved.' args: 'Automatic Address Validation'
-
commit_transaction(self, doc_code, doc_type) -
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, is_override=None, currency_id=None, ignore_error=None) -
get_avatax_rest_service(self) -
ping(self) -
unvoid_transaction(self, doc_code, doc_type) -
void_transaction(self, doc_code, doc_type)
New fields (16)
-
cityCharargs: 'City' -
countryCharargs: 'Country' -
date_validationDate -
original_cityCharreadonly=True args: 'Original City' -
original_countryCharreadonly=True args: 'Original Country' -
original_stateCharreadonly=True args: 'Original State' -
original_streetCharreadonly=True args: 'Original Street' -
original_street2Charreadonly=True args: 'Original Street2' -
original_zipCharreadonly=True args: 'Original Zip' -
partner_latitudeFloatargs: 'Latitude' -
partner_longitudeFloatargs: 'Longitude' -
stateCharargs: 'State' -
streetCharargs: 'Street' -
street2Charargs: 'Street2' -
validation_methodChar -
zipCharargs: 'Zip'
-
accept_valid_address(self)Updates the existing address with the valid address returned by the service. -
default_get(self, fields)@api.modelReturns the default values for the fields.
New fields (1)
-
nameCharargs: 'Name'
-
default_get(self, fields)@api.model -
ping(self)@api.modelCall the AvaTax's Ping Service to test the connection.
New fields (2)
-
codeCharargs: 'Code' -
nameCharrequired=True args: 'Name'
-
name_get(self)@api.depends('name', 'code')
New fields (2)
-
applicable_tax_code_idMany2one → product.tax.codecompute=_compute_applicable_tax_code args: 'product.tax.code', 'Applicable AvaTax Code' -
tax_code_idMany2one → product.tax.codeargs: 'product.tax.code', 'AvaTax Code'
No public methods.
New fields (3)
-
descriptionCharargs: 'Description' -
nameCharrequired=True args: 'Code' -
typeSelectionhelp='Type of tax code as defined in AvaTax'required=True args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')], 'Type'
No public methods.
New fields (2)
-
applicable_tax_code_idMany2one → product.tax.codecompute=_compute_applicable_tax_code args: 'product.tax.code', 'Applicable AvaTax Code' -
tax_code_idMany2one → product.tax.codehelp='AvaTax Product Tax Code' args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
get_avatax_config_company(self)Returns the AvaTax configuration for the Company
New fields (10)
-
customer_codeCharcopy=False args: 'Customer Code' -
date_validationDatecopy=Falsehelp='The date the address was last validated by AvaTax and accepted'readonly=True args: 'Last Validation Date' -
exemption_code_idMany2one → exemption.codedeprecated=True args: 'exemption.code', 'Exemption Code (Deprecated)' -
exemption_numberChardeprecated=True args: 'Exemption Number (Deprecated)' -
property_exemption_code_idMany2one → exemption.codecompany_dependent=Truehelp='The type of exemption granted' args: 'exemption.code', 'Exemption Code' -
property_exemption_numberCharcompany_dependent=Truehelp='The State identification number relevant fot the exemption' args: 'Exemption Number' -
property_tax_exemptBooleancompany_dependent=Truehelp='This company or address can claim for tax exemption' args: 'Is Tax Exempt' -
tax_exemptBooleandeprecated=True args: 'Is Tax Exempt (Deprecated))' -
validated_on_saveBooleanhelp='Indicates if the address is already validated on save before calling the wizard' args: 'Validated On Save' -
validation_methodSelectioncopy=Falsehelp='It gets populated when the address is validated by the method'readonly=True args: [('avatax', 'AVALARA'), ('usps', 'USPS'), ('other', 'Other')], 'Address Validation Method'
-
button_avatax_validate_address(self)Method is used to verify of state and country -
check_exemption_number(self)@api.depends('property_tax_exempt', 'property_exemption_code_id', 'property_exemption_number')When tax exempt check then atleast exemption number or exemption code should be filled -
create(self, vals)@api.model -
generate_cust_code(self)Auto populate customer code -
get_country_from_code(self, code)Returns the country from the code. -
get_state_from_code(self, state_code, country_code)Returns the state from the code. -
get_valid_address_vals(self, validation_on_save=False) -
multi_address_validation(self, validation_on_save=False) -
onchange_tax_exemption(self)@api.onchange('tax_exempt') -
write(self, vals)