TIP: You can type at any time to perform a new search.
CNAB Structure
l10n_br_cnab_structure · OCA/l10n-brazil
🛠 Migration considerations
cnab_line_form_view— View 'cnab_line_form_view' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_line_tree_view— View 'cnab_line_tree_view' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_operation_form— View 'cnab_operation_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_preview_wizard_form— View 'cnab_preview_wizard_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_structure_form_view— View 'cnab_structure_form_view' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_structure_payment_mode_form— View 'cnab_structure_payment_mode_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcejournal_cnab_import_view_form— View 'journal_cnab_import_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcel10n_br_cnab_return_event_form_view_structure— View 'l10n_br_cnab_return_event_form_view_structure' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcel10n_br_cnab_return_log_form_view_structure— View 'l10n_br_cnab_return_log_form_view_structure' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcecnab_batch_tree_view— View 'cnab_batch_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_line_field_tree_view— View 'cnab_line_field_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_line_fields_group_condition_tree_view— View 'cnab_line_fields_group_condition_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_line_fields_group_tree_view— View 'cnab_line_fields_group_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_line_tree_view— View 'cnab_line_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_operation_tree— View 'cnab_operation_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcecnab_structure_tree_view— View 'cnab_structure_tree_view' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcel10n_br_cnab_return_log_tree_view_structure— View 'l10n_br_cnab_return_log_tree_view_structure' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · source
Found by automated static analysis: patterns worth a look before/after upgrading this module to a newer Odoo version.
- Repository
- OCA/l10n-brazil · module folder · Try on Runboat
- Module version
- Category
- Uncategorized
- Folder size
- 1.01 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-brazil
- Last tracking update
- 2026-08-14 22:57:26
- Authors
- Odoo Community Association (OCA), Escodoo, Engenere
- Maintainers
- Odoo Community Association (OCA), Escodoo, Engenere
- Committers
- Raphaël Valyi, Weblate, OCA-git-bot, oca-ci, Antonio Neto, Antônio Neto, Kaynnan Lemes, CristianoMafraJunior, kaynnan
- Odoo dependencies
- Python dependencies
- pyyaml, unidecode, erpbrasil.base, email-validator, num2words, phonenumbers
- System dependencies
- None
- Required by
- None
- Description
This module adds functionality for implementing brazilian banking automation by CNAB file exchange.
Code Analysis ⓘ
Views touched (25)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
cnab_batch_form_view |
l10n_br_cnab.batch | form | New | |
cnab_batch_tree_view |
l10n_br_cnab.batch | tree | New | |
cnab_import_wizard |
cnab.import.wizard.form | cnab.import.wizard | form | New |
cnab_line_field_form_view |
l10n_br_cnab.line.field | form | New | |
cnab_line_field_group_condition_form_view |
cnab.line.group.field.condition | form | New | |
cnab_line_field_group_form_view |
cnab.line.field.group | form | New | |
cnab_line_field_tree_view |
l10n_br_cnab.line.field | tree | New | |
cnab_line_fields_group_condition_tree_view |
cnab.line.group.field.condition | tree | New | |
cnab_line_fields_group_tree_view |
cnab.line.field.group | tree | New | |
cnab_line_form_view |
l10n_br_cnab.line | form | New | |
cnab_line_tree_view |
l10n_br_cnab.line | tree | New | |
cnab_operation_form |
cnab.data.management.form | cnab.data.management | form | New |
cnab_operation_kanban |
cnab.data.management.kanban | cnab.data.management | kanban | New |
cnab_operation_search |
cnab.data.management.search | cnab.data.management | search | New |
cnab_operation_tree |
cnab.data.management.tree | cnab.data.management | tree | New |
cnab_preview_wizard_form |
cnab.preview.wizard.form | cnab.preview.wizard | form | New |
cnab_structure_form_view |
l10n_br_cnab.structure | form | New | |
cnab_structure_payment_mode_form |
cnab_structure_payment_mode_form | account.payment.mode | form | Inherits l10n_br_account_payment_order.l10n_br_account_payment_mode_form |
cnab_structure_payment_order_form |
cnab_structure_payment_order_form | account.payment.order | form | Inherits account_payment_order.account_payment_order_form |
cnab_structure_tree_view |
l10n_br_cnab.structure | tree | New | |
field_select_wizard_form |
field.select.wizard.form | field.select.wizard | form | New |
journal_cnab_import_view_form |
journal.cnab.import.view.form | account.journal | form | Inherits account.view_account_journal_form |
l10n_br_cnab_return_event_form_view_structure |
l10n_br_cnab.return.event.form.view.structure | l10n_br_cnab.return.event | form | New |
l10n_br_cnab_return_log_form_view_structure |
l10n_br_cnab.return.log.form.view.structure | l10n_br_cnab.return.log | form | New |
l10n_br_cnab_return_log_tree_view_structure |
l10n_br_cnab.return.log.tree | l10n_br_cnab.return.log | tree | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (22)
New fields (10)
-
default_outbound_cnab_processorSelectionhelp='CNAB Processor to be used in a payment order when it is not defined in the payment mode'selection=[('oca_processor', 'OCA Processor')]string='CNAB Processor' -
default_outbound_cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'help='CNAB Structure to be used in a payment order when it is not defined in the payment mode.'string='CNAB Structure' -
inbound_discount_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Discount Account for CNAB inbound payments.'string='Inbound Discount Account'tracking=True -
inbound_interest_fee_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Interest and Fees Account for CNAB inbound payments.'string='Inbound Interest and Fees Account'tracking=True -
inbound_rebate_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Rebate Account for CNAB inbound payments.'string='Inbound Rebate Account'tracking=True -
outbound_discount_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Discount Account for CNAB outbound payments.'string='Outbound Discount Account'tracking=True -
outbound_interest_fee_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Interest and Fees Account for CNAB outbound payments.'string='Outbound Interest and Fees Account'tracking=True -
outbound_rebate_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Rebate Account for CNAB outbound payments.'string='Outbound Rebate Account'tracking=True -
tariff_charge_account_idMany2one → account.accountcheck_company=Truecomodel_name='account.account'help='Default account for bank tariff.'string='Tariff Account'tracking=True -
used_to_import_cnabBooleanstring='Journal used for import CNAB'
No public methods.
New fields (6)
-
batch_template_idMany2one → l10n_br_cnab.batchcomodel_name='l10n_br_cnab.batch'compute='_compute_batch_template_id' -
cnab_beneficiary_nameCharcompute='_compute_cnab_beneficiary_name'help='Name of the beneficiary (Nome do Favorecido) that will be informed in the CNAB.' -
cnab_payment_way_idMany2one → cnab.payment.waycomodel_name='cnab.payment.way'compute='_compute_cnab_payment_way_id' -
cnab_pix_transfer_type_idMany2one → cnab.pix.transfer.typecomodel_name='cnab.pix.transfer.type'compute='_compute_cnab_pix_transfer_type_id'store=False -
cnab_pix_type_idMany2one → cnab.pix.key.typecomodel_name='cnab.pix.key.type'compute='_compute_cnab_pix_type_id'store=False -
service_typeSelectioncompute='_compute_cnab_payment_way_id'selection=TIPO_SERVICOstore=True
No public methods.
New fields (3)
-
cnab_payment_way_idsMany2many → cnab.payment.waycomodel_name='cnab.payment.way'domain="[('cnab_structure_id', '=', cnab_structure_id)]"relation='payment_mode_cnab_payment_way_rel'string='CNAB Payment Ways' -
cnab_structure_idMany2one → l10n_br_cnab.structureargs: 'l10n_br_cnab.structure' -
cnab_structure_okBooleandefault=Falsestring='Allowed in CNAB (OCA Processor)'
No public methods.
New fields (2)
-
cnab_processorSelectioncompute='_compute_cnab_processor'selection='_selection_cnab_processor' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'compute='_compute_cnab_structure_id'
-
generate_payment_file(self)Returns (payment file as string, filename) -
generated2uploaded(self)
New fields (13)
-
backup_fileBinaryattachment=Truecopy=Falsereadonly=True -
backup_filenameCharcopy=False -
company_idMany2one → res.companydefault=<expr>required=Truestring='Company' args: 'res.company' -
csv_fileBinaryattachment=Truehelp='Upload the CSV file for restore operations.' -
csv_filenameChar -
detected_modelMany2one → ir.modelcomodel_name='ir.model'compute='_compute_detected_model'help='Model detected automatically from the uploaded CSV filename.'store=True -
is_complete_backupBooleandefault=Truehelp='If checked, all CNAB models will be backed up.'string='Complete Backup' -
is_lockedBooleancompute='_compute_is_locked'help='Operation is locked when completed, in error, or manually locked.'store=True -
nameChardefault=<expr>required=Truestring='Operation Name'tracking=True -
operation_statusSelectioncopy=Falsedefault='draft'required=Trueselection=OPERATION_STATUSstring='Status'tracking=True -
operation_typeSelectiondefault='backup'required=Trueselection=OPERATION_TYPEtracking=True -
records_processedIntegercopy=Falsedefault=0readonly=True -
target_modelSelectiondefault='complete'help="Select the model to backup or choose 'Complete Backup' for all."selection=TARGET_MODELS_SELECTIONtracking=True
-
action_lock_operation(self)Manually lock the operation to prevent further changes. -
action_process_operation(self)Execute the selected operation (backup, upgrade, restore). -
action_reset_to_draft(self)Reset the operation to draft status (system administrators only). -
unlink(self) -
write(self, vals)
New fields (10)
-
bank_account_cnab_idMany2one → account.accountcomodel_name='account.account'related='journal_id.default_account_id' -
bank_idMany2one → res.bankcomodel_name='res.bank'related='journal_id.bank_id' -
cnab_formatCharrelated='cnab_structure_id.cnab_format' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'domain="[('bank_id', '=', bank_id),('payment_method_id', 'in', payment_method_ids),('state', '=', 'approved')]" -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>required=Truestring='Company' -
filenameChar -
journal_idMany2one → account.journalcomodel_name='account.journal'help='Only journals where the CNAB Import is allowed.'required=True -
payment_method_idsMany2many → account.payment.methodcomodel_name='account.payment.method'compute='_compute_payment_method_ids' -
return_fileBinary -
typeSelectionargs: [('inbound', 'Inbound Payment'), ('outbound', 'Outbound Payment')]
-
import_cnab(self)
New fields (5)
-
cnab_line_idMany2one → l10n_br_cnab.lineondelete='cascade'required=Truestates={'draft': [('readonly', False)]} args: 'l10n_br_cnab.line' -
condition_idsOne2many → cnab.line.group.field.conditioncomodel_name='cnab.line.group.field.condition'inverse_name='cnab_group_id'readonly=Truestates={'draft': [('readonly', False)]} -
field_idsOne2many → l10n_br_cnab.line.fieldcomodel_name='l10n_br_cnab.line.field'domain="[('cnab_line_id', '=', cnab_line_id)]"inverse_name='cnab_group_id'readonly=Truestates={'draft': [('readonly', False)]} -
nameCharstates={'draft': [('readonly', False)]} -
stateSelectionreadonly=Truerelated='cnab_line_id.state'
-
default_get(self, fields)@api.model
New fields (6)
-
cnab_group_idMany2one → cnab.line.field.groupcomodel_name='cnab.line.field.group'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_line_idMany2one → l10n_br_cnab.linecomodel_name='l10n_br_cnab.line'related='cnab_group_id.cnab_line_id' -
field_idMany2one → l10n_br_cnab.line.fieldcomodel_name='l10n_br_cnab.line.field'domain="[('cnab_line_id', '=', cnab_line_id)]"readonly=Truestates={'draft': [('readonly', False)]} -
json_valueCharreadonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Value (JSON format)' -
operatorSelectiondefault='in'readonly=Truerequired=Trueselection=[('in', 'in'), ('not in', 'not in')]states={'draft': [('readonly', False)]} -
stateSelectionreadonly=Truerelated='cnab_group_id.state'
-
default_get(self, fields_list)@api.modelOverride default_get
New fields (5)
-
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'required=Truestring='Cnab Structure' -
codeCharrequired=True -
descriptionChar -
gen_liquidation_moveBooleanhelp='Mark this option if this occurrence corresponds to a liquidation move.'string='Generate Liquidation Move' -
nameCharcompute='_compute_name'
No public methods.
New fields (6)
-
batch_idMany2one → l10n_br_cnab.batchcomodel_name='l10n_br_cnab.batch'string='Cnab Batch' -
clearinghouse_codeCharhelp='Centralizing Clearing House Code\n(Código da Câmara Centralizadora)' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'required=Truestring='Cnab Structure' -
codeCharrequired=True -
descriptionChar -
nameCharcompute='_compute_name'
No public methods.
New fields (5)
-
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'required=Truestring='Cnab Structure' -
codeCharrequired=True -
descriptionChar -
key_typeSelectionrequired=Trueselection=PartnerPix.KEY_TYPESstring='PIX Key Type' -
nameCharcompute='_compute_name'
No public methods.
New fields (5)
-
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'required=Truestring='Cnab Structure' -
codeCharrequired=True -
descriptionChar -
nameCharcompute='_compute_name' -
type_domainSelectionselection=AccountPaymentLine.PIX_TRANSFER_TYPESstring='Transfer Type'
No public methods.
New fields (6)
-
cnab_fileBinarystring='CNAB File' -
cnab_file_nameCharcompute='_compute_cnab_file_name' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure' -
outputTextstring='CNAB Text Output' -
output_yamlTextcompute='_compute_cnab_txt'string='CNAB YAML Output' -
payment_order_idMany2one → account.payment.ordercomodel_name='account.payment.order'string='Payment Order'
-
load_file(self)Action for download CNAB File
New fields (7)
-
cnab_field_idMany2one → l10n_br_cnab.line.fieldcomodel_name='l10n_br_cnab.line.field'string='CNAB Field' -
current_viewChar -
model_idMany2one → ir.modelstring='Related Model' args: 'ir.model' -
new_field_idMany2one → ir.model.fieldscomodel_name='ir.model.fields'domain="[('model_id', '=', parent_model_id)]" -
notation_fieldChar -
notation_field_viewCharcompute='_compute_notation_field_view' -
parent_model_idMany2one → ir.modelcomodel_name='ir.model'compute='_compute_parent_model_id'string='Parent Model'
-
action_add_field(self)Action Add Field -
action_confirm(self)Action Confirm -
action_remove_last_field(self)Action Confirm
New fields (5)
-
cnab_payment_way_idsOne2many → cnab.payment.waycomodel_name='cnab.payment.way'domain="[('cnab_structure_id', '=', cnab_structure_id)]"help='Payments ways that use the structure of this batch.'inverse_name='batch_id'readonly=Truestates={'draft': [('readonly', False)]}string='Payments Ways' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'domain="[('cnab_format', '=', '240')]"help='Only structures with code equal to 240 is allowed.'readonly=Truestates={'draft': [('readonly', False)]} -
line_idsOne2many → l10n_br_cnab.linecomodel_name='l10n_br_cnab.line'domain="[('cnab_format', '=', '240')]"help='Only structures with code equal to 240 is allowed.'inverse_name='batch_id'readonly=Truestates={'draft': [('readonly', False)]} -
nameCharreadonly=Truestates={'draft': [('readonly', False)]} -
stateSelectiondefault='draft'readonly=Trueselection=[('draft', 'Draft'), ('review', 'Review'), ('approved', 'Approved')]
-
check_batch(self) -
get_header(self)Returns the batch header record -
get_segments(self)Returns the batch segments records -
get_trailer(self)Returns the batch trailer record -
output(self, bank_lines, seq_batch)Generates and returns a batch object with the cnab output data. -
unlink(self)
New fields (18)
-
batch_idMany2one → l10n_br_cnab.batchcomodel_name='l10n_br_cnab.batch'ondelete='cascade'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_formatCharrelated='cnab_structure_id.cnab_format'states={'draft': [('readonly', False)]} -
cnab_payment_way_idsMany2many → cnab.payment.waycomodel_name='cnab.payment.way'domain="[('cnab_structure_id', '=', cnab_structure_id)]"help='Payment Ways that must use this segment.'readonly=Truestates={'draft': [('readonly', False)]}string='Payments Ways' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'readonly=Truerequired=Truestates={'draft': [('readonly', False)]} -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'readonly=Truerequired=Truestates={'draft': [('readonly', False)]} -
communication_flowSelectionrequired=Truestates={'draft': [('readonly', False)]} args: [('sending', 'Sending'), ('return', 'Return'), ('both', 'Sending and Return')] -
content_dest_model_idMany2one → ir.modelcomodel_name='ir.model'compute='_compute_dest_source_model_id'help='Related model that will provide the destination of the contents of return CNAB files.'states={'draft': [('readonly', False)]}string='Content Destination' -
content_source_model_idMany2one → ir.modelcomodel_name='ir.model'compute='_compute_content_source_model_id'help='Related model that will provide the origin of the contents of CNABfiles.'states={'draft': [('readonly', False)]}string='Content Source' -
current_viewSelectiondefault='general'required=Truestates={'draft': [('readonly', False)]} args: [('general', 'General'), ('sending', 'Sending'), ('return', 'Return')] -
field_idsOne2many → l10n_br_cnab.line.fieldcomodel_name='l10n_br_cnab.line.field'inverse_name='cnab_line_id'readonly=Truestates={'draft': [('readonly', False)]} -
group_idsOne2many → cnab.line.field.groupcomodel_name='cnab.line.field.group'inverse_name='cnab_line_id'readonly=Truestates={'draft': [('readonly', False)]} -
nameCharcompute='_compute_name'store=True -
requeridBooleanstates={'draft': [('readonly', False)]} -
resource_refReferenceselection='_selection_target_model'states={'draft': [('readonly', False)]}string='Reference' -
segment_codeCharstates={'draft': [('readonly', False)]} -
sequenceIntegerreadonly=Truestates={'draft': [('readonly', False)]} -
stateSelectiondefault='draft'readonly=Trueselection=[('draft', 'Draft'), ('review', 'Review'), ('approved', 'Approved')] -
typeSelectionreadonly=Truestates={'draft': [('readonly', False)]} args: [('header', 'Header'), ('segment', 'Segment'), ('trailer', 'Trailer')]
-
action_general_view(self) -
action_return_view(self) -
action_sending_view(self) -
check_line(self) -
is_requerid(self, payment_way)checks if the segment is required based on the information provided. -
output(self, resource_ref, record_type, **kwargs)Compute CNAB output with all fields for this Line -
unlink(self)
New fields (23)
-
assumed_commaIntegerhelp='indicates the position of the comma within a numeric field.'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_group_idMany2one → cnab.line.field.groupreadonly=Truestates={'draft': [('readonly', False)]} args: 'cnab.line.field.group' -
cnab_line_idMany2one → l10n_br_cnab.lineondelete='cascade'readonly=Truerequired=Truestates={'draft': [('readonly', False)]} args: 'l10n_br_cnab.line' -
computed_nameCharcompute='_compute_name'string='Field' -
content_dest_fieldCharhelp='Inform the field with the origin of the content, expressed with dot notation.'readonly=Truestates={'draft': [('readonly', False)]}string='Content Destination Field' -
content_dest_model_idMany2one → ir.modelcomodel_name='ir.model'related='cnab_line_id.content_dest_model_id' -
content_source_fieldCharhelp='Inform the field with the origin of the content, expressed with dot notation.'readonly=Truestates={'draft': [('readonly', False)]} -
content_source_model_idMany2one → ir.modelcomodel_name='ir.model'related='cnab_line_id.content_source_model_id' -
default_valueCharreadonly=Truestates={'draft': [('readonly', False)]} -
end_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='End Position' -
meaningCharreadonly=Truestates={'draft': [('readonly', False)]} -
nameCharreadonly=Truestates={'draft': [('readonly', False)]} -
notesCharreadonly=Truestates={'draft': [('readonly', False)]} -
preview_fieldCharcompute='_compute_preview_field' -
ref_nameCharcompute='_compute_ref_name'help="Unique reference name to identify the cnab field, can be used to search the field content in python expressions in 'Dynamic Content'. It is generated automatically by aggregating the field name, starting position and ending position. ex:. 'field_name_001-015'"string='Reference Name' -
related_field_idMany2one → ir.model.fieldsreadonly=Truestates={'draft': [('readonly', False)]} args: 'ir.model.fields' -
resource_refReferencerelated='cnab_line_id.resource_ref'string='Reference' -
return_dynamic_contentCharreadonly=Truestates={'draft': [('readonly', False)]} -
sending_dynamic_contentCharhelp="Expression in Python to define the final value of the content,you can use the following predefined words:\n\n'content' returns the value of the mapped content source field.\n'time' class to handle date.\n'seq_batch' returns the batch sequence.\n'seq_record_detail' returns the sequence for detail record in the batch.\n'payment_way_code' return the batch payment way\n'payment_type_code' return the batch payment type\n'qty_batches' returns the number of batches\n'qty_records' returns the number of records\n'batch_detail_lines' returns a list of batch detail records.'segment_code' returns the code of the segment defined in the header of the line."readonly=Truestates={'draft': [('readonly', False)]} -
sizeIntegercompute='_compute_size' -
start_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Start Position' -
stateSelectiondefault='draft'readonly=Trueselection=[('draft', 'Draft'), ('review', 'Review'), ('approved', 'Approved')] -
typeSelectionreadonly=Truestates={'draft': [('readonly', False)]} args: [('alpha', _('Alphanumeric')), ('num', _('Numeric'))]
-
action_approve(self) -
action_change_field(self)Action for open select field wizard" -
action_change_field_return(self)Action for open select field wizard for mapping return content -
action_change_field_sending(self)Action for open select field wizard for mapping sending content -
action_draft(self) -
action_review(self) -
check_field(self) -
eval_compute_value(self, content, python_expression, **kwargs)Execute python code and return computed value -
format(self, size, value_type, value)formats the value according to the specification -
output(self, resource_ref, **kwargs)Compute output value for this field -
unlink(self)
New fields (6)
-
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'ondelete='cascade'required=True -
match_bank_typeSelectiondefault='any'required=True args: [('same', 'Same Bank'), ('other', 'Other Bank'), ('any', 'Any')] -
match_partner_typeSelectiondefault='any'required=True args: [('employee', 'Employee'), ('supplier', 'Supplier'), ('any', 'Any')] -
payment_way_idMany2one → cnab.payment.waycomodel_name='cnab.payment.way'domain="[('cnab_structure_id', '=', cnab_structure_id)]"required=True -
sequenceIntegerdefault=10 -
service_typeSelectionrequired=Trueselection=TIPO_SERVICO
No public methods.
New fields (29)
-
additional_infoChar -
balanceFloatcompute='_compute_balance'help='Balance = Payment Value + Discount Value + Rebate Value - Fees' -
bank_codeChar -
batch_codeChar -
centralizing_chamber_codeChar -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure'related='cnab_return_log_id.cnab_structure_id' -
doc_purposeChar -
expected_payment_dateDate -
gen_liquidation_moveBooleanhelp='If check, this CNAB Event will generate a liquidity move line.'string='Generate Liquidation Move' -
generated_move_idMany2one → account.movecomodel_name='account.move' -
journal_idMany2one → account.journalcomodel_name='account.journal'related='cnab_return_log_id.journal_id' -
move_line_idsMany2many → account.move.linecomodel_name='account.move.line'ondelete='restrict' -
move_type_codeChar -
occurrence_code_1Char -
occurrence_code_2Char -
occurrence_code_3Char -
occurrence_code_4Char -
occurrence_code_5Char -
partner_bank_accountChar -
partner_bank_account_dacChar -
partner_bank_branchChar -
partner_bank_codeChar -
partner_documentCharhelp="Partners's document number, it can be a CNPJ or CPF." -
partner_nameChar -
partner_notificationChar -
record_typeChar -
seq_numberChar -
stateSelectionselection=[('error', 'Error'), ('ignored', 'Ignored'), ('ready', 'Ready to Genereta Move'), ('confirmed', 'Confirmed')] -
ted_purposeChar
-
action_ignore_event(self) -
check_gen_liquidation_move(self) -
confirm_event(self) -
create(self, vals)@api.modelOverride Create Method -
create_liq_move(self) -
create_tariff_move(self) -
get_description_occurrence(self, event_code)Get occurrence description by occurrence code -
load_bank_payment_line(self)When for cnab outbound payment processed by this module the bank_payment_line_id is filled based on your_number field -
load_description_occurrences(self)Generate occurrence description for all occurrences -
set_move_line_ids(self) -
set_occurrence_date(self)
New fields (11)
-
bank_acc_numberCharcompute='_compute_bank_acc_number'inverse='_inverse_bank_acc_number' -
bank_account_cnab_idMany2one → account.accountcomodel_name='account.account'readonly=Truerelated='journal_id.default_account_id' -
bank_idMany2one → res.bankcomodel_name='res.bank'related='journal_id.bank_id' -
cnab_structure_idMany2one → l10n_br_cnab.structurecomodel_name='l10n_br_cnab.structure' -
cnpj_cpfChar -
company_idMany2one → res.companycomodel_name='res.company'string='Company' -
header_fileChar -
journal_idMany2one → account.journalcomodel_name='account.journal' -
return_fileBinary -
stateSelectionselection=[('draft', 'Draft'), ('confirmed', 'Confirmed')] -
typeSelectionargs: [('inbound', 'Inbound Payment'), ('outbound', 'Outbound Payment')]
-
action_confirm_return_log(self) -
unlink(self)
New fields (1)
-
seq_numberChar
No public methods.
New fields (32)
-
bank_idMany2one → res.bankcomodel_name='res.bank'readonly=Truestates={'draft': [('readonly', False)]} -
batch_idsOne2many → l10n_br_cnab.batchcomodel_name='l10n_br_cnab.batch'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_formatCharrelated='payment_method_id.code' -
cnab_occurrence_idsOne2many → cnab.occurrencecomodel_name='cnab.occurrence'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_payment_rule_idsOne2many → l10n_br_cnab.payment.rulecomodel_name='l10n_br_cnab.payment.rule'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]}string='Payment Rules' -
cnab_payment_way_idsOne2many → cnab.payment.waycomodel_name='cnab.payment.way'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_pix_key_type_idsOne2many → cnab.pix.key.typecomodel_name='cnab.pix.key.type'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
cnab_pix_transfer_type_idsOne2many → cnab.pix.transfer.typecomodel_name='cnab.pix.transfer.type'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
conf_bank_end_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Bank Last Position' -
conf_bank_start_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Bank Start Position' -
conf_batch_end_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Batch Last Position' -
conf_batch_start_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Batch Start Position' -
conf_detail_end_posIntegerhelp='Last position of sequencial identification of Detail Records. Only for detail records.'readonly=Truestates={'draft': [('readonly', False)]} -
conf_detail_start_posIntegerhelp='Position of sequencial identification of Detail Records. Only for detail records.'readonly=Truestates={'draft': [('readonly', False)]} -
conf_payment_way_end_posIntegerhelp='Payment Way last position in Header Batch Records. Only for Header Batch Records.'readonly=Truestates={'draft': [('readonly', False)]} -
conf_payment_way_start_posIntegerhelp='Payment Way start position in Header Batch Records. Only for Header Batch Records.'readonly=Truestates={'draft': [('readonly', False)]} -
conf_record_type_end_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Record Type Last Position' -
conf_record_type_start_posIntegerreadonly=Truestates={'draft': [('readonly', False)]}string='Record Type Start Position' -
conf_segment_end_posIntegerhelp='Last position of segment of an detail record. Only for detail records.'readonly=Truestates={'draft': [('readonly', False)]} -
conf_segment_start_posIntegerhelp='Start position of segment of an detail record. Only for detail records.'readonly=Truestates={'draft': [('readonly', False)]} -
content_source_model_idMany2one → ir.modelcomodel_name='ir.model'compute='_compute_content_source_model_id'help='Related model that will provide the origin of the contents of CNAB files.'string='Content Source' -
line_idsOne2many → l10n_br_cnab.linecomodel_name='l10n_br_cnab.line'inverse_name='cnab_structure_id'readonly=Truestates={'draft': [('readonly', False)]} -
nameCharreadonly=Truestates={'draft': [('readonly', False)]} -
payment_method_idMany2one → account.payment.methodcomodel_name='account.payment.method'domain=[('code', 'in', CNAB_CODES)]states={'draft': [('readonly', False)]} -
payment_typeSelectionrelated='payment_method_id.payment_type' -
record_type_batch_header_idIntegerhelp='What`s the identification for header of batch type?'readonly=Truestates={'draft': [('readonly', False)]}string='Batch Header Type ID' -
record_type_batch_trailer_idIntegerhelp='What`s the identification for trailer of batch type?'readonly=Truestates={'draft': [('readonly', False)]}string='Batch Trailer Type ID' -
record_type_detail_idIntegerhelp='What`s the identification for detail type?'readonly=Truestates={'draft': [('readonly', False)]}string='Detail Type ID' -
record_type_file_header_idIntegerhelp='What`s the identification for header of file type?'readonly=Truestates={'draft': [('readonly', False)]}string='File Header Type ID' -
record_type_file_trailer_idIntegerhelp='What`s the identification for trailer of file type?'readonly=Truestates={'draft': [('readonly', False)]}string='File Trailer Type ID' -
stateSelectiondefault='draft'readonly=Trueselection=[('draft', 'Draft'), ('review', 'Review'), ('approved', 'Approved')] -
unique_seq_per_segmentBooleandefault=Falsehelp='Defines seq_record_detail behavior. If True, each physical segment gets a unique number (1,2,3...). If False, segments within the same bank line share the same number. Note: This differs from seq_batch (starts at 0001 per file).'readonly=Truestates={'draft': [('readonly', False)]}string='Unique Sequence per Segment'
-
action_approve(self) -
action_draft(self) -
action_review(self) -
check_structure(self) -
get_header(self)Returns the file header record -
get_trailer(self)Returns the file trailer record -
output(self, pay_order)Receives a Payment Order record and returns the data in the CNAB structure -
output_dicts(self, pay_order)Receives a Payment Order record and returns a Cnab Data Object" -
output_yaml(self, pay_order)Receives a Payment Order record and returns the data in the CNAB structure in YAML format. -
unlink(self)
Loading…
Loading…