BC3 files importer

bc3_importer
REPOSITORY
REPOSITORYOCA/vertical-construction
GIT
GIThttps://github.com/OCA/vertical-construction.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/vertical-construction/tree/16.0/bc3_importer
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYBC3
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binhex
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binhex
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, szalatyzuzanna
WEBSITE
WEBSITEhttps://github.com/OCA/vertical-construction
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
    - sale_management
    - sale
    - sales_team
    - account_payment
    - account
    - product
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES chardet
iteration_utilities
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
bc3_import_wizard_form bc3.import.wizard.wizard.form bc3.import.wizard form New
bc3_version_form_view bc3.version.form bc3.version form New
bc3_version_register_form_view bc3.version.form.register bc3.version.register form New
bc3_version_register_rule_form_view bc3.version.register.rule.form bc3.version.register.rule form New
bc3_version_register_rule_tree_view bc3.version.register.rule.tree bc3.version.register.rule tree New
bc3_version_register_tree_view bc3.version.register.tree bc3.version.register tree New
bc3_version_tree_view bc3.version.tree bc3.version tree New
view_sales_order_bc3 sale.order.form sale.order xpath Inherits sale.view_order_form
Models touched (6)

New fields (9)
  • bc3_file Binary
    required=True string='BC3 file'
  • bc3_file_name Char
    string='BC3 file name'
  • create_products Boolean
    args: 'Create non-existent products'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' domain="['|', ('parent_id','=', False), ('is_company','=', True)]" ondelete='restrict' readonly=False store=True string='Customer/Vendor'
  • product_id Many2one → product.product
    help='Select a product which will be used in the BC3 file.' ondelete='cascade' string='Default product' args: 'product.product'
  • project_id Many2one → project.project
    string='Project' args: 'project.project'
  • sale_id Many2one → sale.order
    args: 'sale.order', 'Sale Order'
  • sequence Integer
  • version_id Many2one → bc3.version
    default=_default_version ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (10)
  • do_action(self)
  • get_groups_matches(self, group_id, check_list, text, group_pattern)
  • get_uom_products(self)
    @api.model
  • line_in_any_dict(self, line_id)
    @api.model
  • line_in_dict(self, code, line_id)
    @api.model
  • lines_reorder(self, seq)
    @api.model
  • parse_line(self, line)
  • search_line(self, code)
    @api.model
  • search_lines(self, code)
    @api.model
  • search_seq_line(self, seq)
    @api.model

New fields (2)
  • name Char
    required=True
  • register_ids One2many → bc3.version.register
    string='Registers' args: 'bc3.version.register', 'version_id'
Public methods (0)

No public methods.

New fields (6)
  • description Text
    args: 'Rule Description'
  • edit_existent Boolean
    args: 'The register may edit existent records'
  • model_id Many2one → ir.model
    domain=['|', '|', ('model', '=', 'sale.order'), ('model', '=', 'sale.order.line'), ('model', '=', 'product.product')] ondelete='cascade' required=True args: 'ir.model', 'Model'
  • name Selection
    required=True selection=[('v', '~V'), ('k', '~K'), ('c', '~C'), ('d', '~D'), ('t', '~T'), ('g', '~G'), ('f', '~F')]
  • rule_ids One2many → bc3.version.register.rule
    string='Rule Lines' args: 'bc3.version.register.rule', 'register_id'
  • version_id Many2one → bc3.version
    ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (1)
  • get_regular_expression(self)
    @api.onchange('description', 'rule_ids')

New fields (8)
  • field_id Many2one → ir.model.fields
    domain=[('model_id', '=', model_id), ('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' args: 'ir.model.fields', 'Field'
  • field_ids Many2many → ir.model.fields
    domain=[('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' string='Field' args: 'ir.model.fields'
  • is_child Boolean
    args: 'Child'
  • model_id Many2one → ir.model
    ondelete='cascade' args: 'ir.model'
  • primary_key Boolean
    args: 'Primary key'
  • register_id Many2one → bc3.version.register
    ondelete='cascade' string='Register' args: 'bc3.version.register'
  • regular_expression Char
    args: 'Regular expression'
  • sequence Integer
Public methods (1)
  • generate_regular_expression(self, line)

New fields (13)
  • bc3 Boolean
    args: 'BC3 sale order'
  • bc3_base_url Char
    args: 'Base url'
  • bc3_certification_date Date
    args: 'Certification date'
  • bc3_certification_number Char
    args: 'Certification number'
  • bc3_character_set Char
    args: 'Character set'
  • bc3_comment Text
    args: 'Comment'
  • bc3_file_property Char
    args: 'File property'
  • bc3_header Char
    args: 'Header'
  • bc3_identifying_label Char
    args: 'Identifying label'
  • bc3_information_type Char
    args: 'Information Type'
  • bc3_program Char
    args: 'Program'
  • bc3_version_date Date
    args: 'Version date'
  • bc3_version_format Char
    args: 'Version / Format'
Public methods (0)

No public methods.

New fields (1)
  • bc3_code Char
    args: 'Code'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/vertical-construction
GIT
GIThttps://github.com/OCA/vertical-construction.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/vertical-construction/tree/15.0/bc3_importer
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYBC3
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binhex
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binhex
COMMITTERS
COMMITTERSWeblate, oca-ci, szalatyzuzanna
WEBSITE
WEBSITEhttps://github.com/OCA/vertical-construction
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
    - sale_management
    - sale
    - sales_team
    - payment
    - account
    - product
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES chardet
iteration_utilities
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
bc3_import_wizard_form bc3.import.wizard.wizard.form bc3.import.wizard form New
bc3_version_form_view bc3.version.form bc3.version form New
bc3_version_register_form_view bc3.version.form.register bc3.version.register form New
bc3_version_register_rule_form_view bc3.version.register.rule.form bc3.version.register.rule form New
bc3_version_register_rule_tree_view bc3.version.register.rule.tree bc3.version.register.rule tree New
bc3_version_register_tree_view bc3.version.register.tree bc3.version.register tree New
bc3_version_tree_view bc3.version.tree bc3.version tree New
view_sales_order_bc3 sale.order.form sale.order xpath Inherits sale.view_order_form
Models touched (6)

New fields (9)
  • bc3_file Binary
    required=True string='BC3 file'
  • bc3_file_name Char
    string='BC3 file name'
  • create_products Boolean
    args: 'Create non-existent products'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' domain="['|', ('parent_id','=', False), ('is_company','=', True)]" ondelete='restrict' readonly=False store=True string='Customer/Vendor'
  • product_id Many2one → product.product
    help='Select a product which will be used in the BC3 file.' ondelete='cascade' string='Default product' args: 'product.product'
  • project_id Many2one → project.project
    string='Project' args: 'project.project'
  • sale_id Many2one → sale.order
    args: 'sale.order', 'Sale Order'
  • sequence Integer
  • version_id Many2one → bc3.version
    default=_default_version ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (10)
  • do_action(self)
  • get_groups_matches(self, group_id, check_list, text, group_pattern)
  • get_uom_products(self)
    @api.model
  • line_in_any_dict(self, line_id)
    @api.model
  • line_in_dict(self, code, line_id)
    @api.model
  • lines_reorder(self, seq)
    @api.model
  • parse_line(self, line)
  • search_line(self, code)
    @api.model
  • search_lines(self, code)
    @api.model
  • search_seq_line(self, seq)
    @api.model

New fields (2)
  • name Char
    required=True
  • register_ids One2many → bc3.version.register
    string='Registers' args: 'bc3.version.register', 'version_id'
Public methods (0)

No public methods.

New fields (6)
  • description Text
    args: 'Rule Description'
  • edit_existent Boolean
    args: 'The register may edit existent records'
  • model_id Many2one → ir.model
    domain=['|', '|', ('model', '=', 'sale.order'), ('model', '=', 'sale.order.line'), ('model', '=', 'product.product')] ondelete='cascade' required=True args: 'ir.model', 'Model'
  • name Selection
    required=True selection=[('v', '~V'), ('k', '~K'), ('c', '~C'), ('d', '~D'), ('t', '~T'), ('g', '~G'), ('f', '~F')]
  • rule_ids One2many → bc3.version.register.rule
    string='Rule Lines' args: 'bc3.version.register.rule', 'register_id'
  • version_id Many2one → bc3.version
    ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (1)
  • get_regular_expression(self)
    @api.onchange('description', 'rule_ids')

New fields (8)
  • field_id Many2one → ir.model.fields
    domain=[('model_id', '=', model_id), ('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' args: 'ir.model.fields', 'Field'
  • field_ids Many2many → ir.model.fields
    domain=[('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' string='Field' args: 'ir.model.fields'
  • is_child Boolean
    args: 'Child'
  • model_id Many2one → ir.model
    ondelete='cascade' args: 'ir.model'
  • primary_key Boolean
    args: 'Primary key'
  • register_id Many2one → bc3.version.register
    ondelete='cascade' string='Register' args: 'bc3.version.register'
  • regular_expression Char
    args: 'Regular expression'
  • sequence Integer
Public methods (1)
  • generate_regular_expression(self, line)

New fields (13)
  • bc3 Boolean
    args: 'BC3 sale order'
  • bc3_base_url Char
    args: 'Base url'
  • bc3_certification_date Date
    args: 'Certification date'
  • bc3_certification_number Char
    args: 'Certification number'
  • bc3_character_set Char
    args: 'Character set'
  • bc3_comment Text
    args: 'Comment'
  • bc3_file_property Char
    args: 'File property'
  • bc3_header Char
    args: 'Header'
  • bc3_identifying_label Char
    args: 'Identifying label'
  • bc3_information_type Char
    args: 'Information Type'
  • bc3_program Char
    args: 'Program'
  • bc3_version_date Date
    args: 'Version date'
  • bc3_version_format Char
    args: 'Version / Format'
Public methods (0)

No public methods.

New fields (1)
  • bc3_code Char
    args: 'Code'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/vertical-construction
GIT
GIThttps://github.com/OCA/vertical-construction.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/vertical-construction/tree/14.0/bc3_importer
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYBC3
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Binhex
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Binhex
COMMITTERS
COMMITTERSWeblate, szalatyzuzanna
WEBSITE
WEBSITEhttps://github.com/OCA/vertical-construction
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - project
    - analytic
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
    - sale_management
    - sale
    - sales_team
    - payment
    - account
    - product
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES chardet
iteration_utilities
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
bc3_import_wizard_form bc3.import.wizard.wizard.form bc3.import.wizard form New
bc3_version_form_view bc3.version.form bc3.version form New
bc3_version_register_form_view bc3.version.form.register bc3.version.register form New
bc3_version_register_rule_form_view bc3.version.register.rule.form bc3.version.register.rule form New
bc3_version_register_rule_tree_view bc3.version.register.rule.tree bc3.version.register.rule tree New
bc3_version_register_tree_view bc3.version.register.tree bc3.version.register tree New
bc3_version_tree_view bc3.version.tree bc3.version tree New
view_sales_order_bc3 sale.order.form sale.order xpath Inherits sale.view_order_form
Models touched (6)

New fields (9)
  • bc3_file Binary
    required=True string='BC3 file'
  • bc3_file_name Char
    string='BC3 file name'
  • create_products Boolean
    args: 'Create non-existent products'
  • partner_id Many2one → res.partner
    check_company=True comodel_name='res.partner' domain="['|', ('parent_id','=', False), ('is_company','=', True)]" ondelete='restrict' readonly=False store=True string='Customer/Vendor'
  • product_id Many2one → product.product
    help='Select a product which will be used in the BC3 file.' ondelete='cascade' string='Default product' args: 'product.product'
  • project_id Many2one → project.project
    string='Project' args: 'project.project'
  • sale_id Many2one → sale.order
    args: 'sale.order', 'Sale Order'
  • sequence Integer
  • version_id Many2one → bc3.version
    default=_default_version ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (10)
  • do_action(self)
  • get_groups_matches(self, group_id, check_list, text, group_pattern)
  • get_uom_products(self)
    @api.model
  • line_in_any_dict(self, line_id)
    @api.model
  • line_in_dict(self, code, line_id)
    @api.model
  • lines_reorder(self, seq)
    @api.model
  • parse_line(self, line)
  • search_line(self, code)
    @api.model
  • search_lines(self, code)
    @api.model
  • search_seq_line(self, seq)
    @api.model

New fields (2)
  • name Char
    required=True args: 'Name'
  • register_ids One2many → bc3.version.register
    string='Registers' args: 'bc3.version.register', 'version_id'
Public methods (0)

No public methods.

New fields (6)
  • description Text
    args: 'Rule Description'
  • edit_existent Boolean
    args: 'The register may edit existent records'
  • model_id Many2one → ir.model
    domain=['|', '|', ('model', '=', 'sale.order'), ('model', '=', 'sale.order.line'), ('model', '=', 'product.product')] ondelete='cascade' required=True args: 'ir.model', 'Model'
  • name Selection
    required=True selection=[('v', '~V'), ('k', '~K'), ('c', '~C'), ('d', '~D'), ('t', '~T'), ('g', '~G'), ('f', '~F')] string='Name'
  • rule_ids One2many → bc3.version.register.rule
    string='Rule Lines' args: 'bc3.version.register.rule', 'register_id'
  • version_id Many2one → bc3.version
    ondelete='cascade' string='Version' args: 'bc3.version'
Public methods (1)
  • get_regular_expression(self)
    @api.onchange('description', 'rule_ids')

New fields (8)
  • field_id Many2one → ir.model.fields
    domain=[('model_id', '=', model_id), ('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' args: 'ir.model.fields', 'Field'
  • field_ids Many2many → ir.model.fields
    domain=[('ttype', 'not in', ['many2one_reference', 'reference', 'serialized', 'job_serialized', 'selection'])] ondelete='cascade' string='Field' args: 'ir.model.fields'
  • is_child Boolean
    args: 'Child'
  • model_id Many2one → ir.model
    ondelete='cascade' string='Model' args: 'ir.model'
  • primary_key Boolean
    args: 'Primary key'
  • register_id Many2one → bc3.version.register
    ondelete='cascade' string='Register' args: 'bc3.version.register'
  • regular_expression Char
    args: 'Regular expression'
  • sequence Integer
    string='Sequence'
Public methods (1)
  • generate_regular_expression(self, line)

New fields (13)
  • bc3 Boolean
    args: 'BC3 sale order'
  • bc3_base_url Char
    args: 'Base url'
  • bc3_certification_date Date
    args: 'Certification date'
  • bc3_certification_number Char
    args: 'Certification number'
  • bc3_character_set Char
    args: 'Character set'
  • bc3_comment Text
    args: 'Comment'
  • bc3_file_property Char
    args: 'File property'
  • bc3_header Char
    args: 'Header'
  • bc3_identifying_label Char
    args: 'Identifying label'
  • bc3_information_type Char
    args: 'Information Type'
  • bc3_program Char
    args: 'Program'
  • bc3_version_date Date
    args: 'Version date'
  • bc3_version_format Char
    args: 'Version / Format'
Public methods (0)

No public methods.

New fields (1)
  • bc3_code Char
    args: 'Code'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/vertical-construction
PULL REQUEST
PULL REQUEST[17.0][MIG] bc3_importer: Migration to 17.0 (#40)