TIP: You can type at any time to perform a new search.
Malaysia - E-invoicing
l10n_my_edi · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Accounting/Localizations/EDI
- Folder size
- 0.53 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-10 04:10:33
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Josse Colpaert, Odoo Translation Bot, Joren Van Onder, Julien Castiaux, Andrea Grazioso (agr-odoo), william-andre, Gaetan Vanden Bergh (gavb), Ali Alfie (alal), Yosua Nicolaus, Dylan Kiss (dyki), Nicolas Viseur (vin), dijo-odoo, manv-afk, yagp-odoo, Antoine Dupuis, Anton Romanova (roan), Michaël Mattiello, masm-odoo, Vincent Sevestre, Krzysztof Magusiak (krma), devp-odoo, kkuj-odoo, mojem, Laurent Smet (LAS), adip-odoo, Uemus, Arnav Varshney, Woojang Pyeon, jand-odoo, Woojang (WOPY), erle
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- l10n_my_edi_pos
- Description
This modules allows the user to send their invoices to the MyInvois system.
Code Analysis ⓘ
Views touched (15)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
myinvois_consolidate_invoice_wizard_form |
myinvois.consolidate.invoice.wizard.form | myinvois.consolidate.invoice.wizard | form | New |
myinvois_document_form_view |
myinvois.document.form.view | myinvois.document | form | New |
myinvois_document_list_view |
myinvois.document.list.view | myinvois.document | list | New |
myinvois_document_status_update_form |
myinvois.document.status.update.wizard.form | myinvois.document.status.update.wizard | form | New |
portal_my_details_fields |
portal_my_details_fields | ir.ui.view | qweb | Inherits account.portal_my_details |
product_template_form_view |
product.template.form.inherit | product.template | form | Inherits product.product_template_form_view |
report_invoice |
report_invoice | ir.ui.view | qweb | Inherits account.report_invoice |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
res_config_settings_view_form |
res.config.settings.view.form.inherit.proxy.user | res.config.settings | form | Inherits account.res_config_settings_view_form |
view_classification_list |
l10n_my_edi.industry_classification.list | l10n_my_edi.industry_classification | list | New |
view_company_form_inherit_l10n_my_myinvois |
res.company.form.inherit.l10n_my_myinvois | res.company | form | Inherits base.view_company_form |
view_invoice_list_inherit_l10n_my_myinvois |
account.move.list.inherit.l10n_my_myinvois | account.move | list | Inherits account.view_invoice_tree |
view_move_form_inherit_l10n_my_myinvois |
account.move.form.inherit.l10n_my_myinvois | account.move | form | Inherits account.view_move_form |
view_partner_form_inherit_l10n_my_myinvois |
res.partner.form.inherit.l10n_my_myinvois | res.partner | form | Inherits account.view_partner_property_form |
view_tax_form_inherit_l10n_my_myinvois |
account.tax.form.inherit.l10n_my_myinvois | account.tax | form | Inherits account.view_tax_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (14)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (6)
-
l10n_my_edi_custom_form_referenceCharhelp='Reference Number of Customs Form No.1, 9, etc.'string='Customs Form Reference Number' -
l10n_my_edi_display_tax_exemption_reasonBooleancompute='_compute_l10n_my_edi_display_tax_exemption_reason'export_string_translation=Falsestring='Display Tax Exemption Reason' -
l10n_my_edi_document_idsMany2many → myinvois.documentcolumn1='invoice_id'column2='document_id'comodel_name='myinvois.document'copy=Falsename='MyInvois Documents'relation='myinvois_document_invoice_rel' -
l10n_my_edi_exemption_reasonCharhelp="Buyer’s sales tax exemption certificate number, special exemption as per gazette orders, etc.\nOnly applicable if you are using a tax with a type 'Exempt'."string='Tax Exemption Reason' -
l10n_my_edi_stateSelectioncompute='_compute_l10n_my_edi_state'export_string_translation=Falsehelp='State of this document on the MyInvois portal.\nA document awaiting validation will be automatically updated once the validation status is available.'selection=[('in_progress', 'Validation In Progress'), ('valid', 'Valid'), ('rejected', 'Rejected'), ('invalid', 'Invalid'), ('cancelled', 'Cancelled')]store=Truestring='MyInvois State'tracking=True -
l10n_my_invoice_need_ediBooleancompute='_compute_l10n_my_invoice_need_edi'export_string_translation=False
-
action_invoice_sent(self)The wizard should not be available for invoices sent to MyInvois but not yet validated. This is because before validation the ID used for the QR code is not available and the user should NOT send the invoice yet. -
action_l10n_my_edi_send_invoice(self)This action will create the MyInvois Document for this invoice if it does not already exist. Once done, it will trigger the sending of said document to the platform. -
action_l10n_my_edi_update_status(self) -
action_show_myinvois_documents(self) -
button_request_cancel(self)
New fields (1)
-
l10n_my_edi_classification_codeSelectioncompute='_compute_l10n_my_edi_classification_code'copy=Falsereadonly=Falseselection=CLASSIFICATION_CODES_LISTstore=Truestring='Malaysian classification code'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
l10n_my_tax_exemption_reasonCharhelp='The reason for tax exemption, used when submitting consolidated invoices including this tax.'string='Malaysian Tax Exemption Reason' -
l10n_my_tax_typeSelectioncompute='_compute_l10n_my_tax_type'readonly=Falseselection=[('01', 'Sales Tax'), ('02', 'Service Tax'), ('03', 'Tourism Tax'), ('04', 'High-Value Goods Tax'), ('05', 'Sales Tax on Low Value Goods'), ('06', 'Not Applicable'), ('E', 'Tax exemption (where applicable)')]store=Truestring='Malaysian Tax Type'
No public methods.
New fields (1)
-
proxy_typeSelectionondelete={'l10n_my_edi': 'cascade'}selection_add=[('l10n_my_edi', 'Malaysian EDI')]
No public methods.
New fields (2)
-
codeCharrequired=True -
nameCharrequired=True
No public methods.
New fields (3)
-
consolidation_typeSelectionrequired=Trueselection=[('invoice', 'Invoice')] -
date_fromDaterequired=Truestring='Date From' -
date_toDaterequired=Truestring='Date To'
-
button_consolidate(self)By default, we only consolidated orders that are in the range, done and not invoiced. We do allow to also consolidate invoices linked to a cancelled consolidated invoice. Note that doing so lock the cancelled invoice into its cancelled state.
New fields (18)
-
activeBooleandefault=Truestring='Active' -
company_currency_idMany2onerelated='company_id.currency_id'string='Company Currency' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>readonly=Truerequired=True -
currency_idMany2one → res.currencycomodel_name='res.currency'required=True -
invoice_idsMany2many → account.movecheck_company=Truecolumn1='document_id'column2='invoice_id'comodel_name='account.move'name='Invoices'relation='myinvois_document_invoice_rel' -
myinvois_custom_form_referenceCharhelp='Reference Number of Customs Form No.1, 9, etc.'string='Customs Form Reference Number' -
myinvois_document_long_idCharcopy=Falsereadonly=Truestring='MyInvois Long ID' -
myinvois_error_document_hashCharcopy=Falseexport_string_translation=Falsereadonly=Truestring='Document Hash' -
myinvois_exemption_reasonCharhelp="Buyer’s sales tax exemption certificate number, special exemption as per gazette orders, etc.\nOnly applicable if you are using a tax with a type 'Exempt'."string='Tax Exemption Reason' -
myinvois_external_uuidCharcopy=Falsehelp='Unique ID assigned to a specific document when sent to MyInvois.'index=Truereadonly=Truestring='MyInvois ID' -
myinvois_fileBinarycopy=Falseexport_string_translation=Falsereadonly=Truestring='MyInvois XML File' -
myinvois_file_idMany2one → ir.attachmentcomodel_name='ir.attachment'compute=<expr>copy=Falsedepends=['myinvois_file']export_string_translation=False -
myinvois_issuance_dateDatecopy=Falsereadonly=Truestring='Issuance Date' -
myinvois_retry_atCharcopy=Falseexport_string_translation=Falsereadonly=Truestring='Document Retry At' -
myinvois_stateSelectioncopy=Falsehelp='State of this document on the MyInvois portal.\nA document awaiting validation will be automatically updated once the validation status is available.'readonly=Trueselection=[('in_progress', 'Validation In Progress'), ('valid', 'Valid'), ('rejected', 'Rejected'), ('invalid', 'Invalid'), ('cancelled', 'Cancelled')]string='MyInvois State'tracking=True -
myinvois_submission_uidCharcopy=Falsehelp='Unique ID assigned to a batch of documents when sent to MyInvois.'readonly=Truestring='Submission UID' -
myinvois_validation_timeDatetimecopy=Falsereadonly=Truestring='Validation Time' -
nameCharcompute='_compute_name'copy=Falseindex='trigram'store=True
-
action_cancel_submission(self)Cancel the document on the platform. -
action_generate_xml_file(self)Generate a xml file for each of the MyInvois documents in self. If the document already as a file, the previous file's name is updated to include an (old) tag to avoid confusion in the attachment list. -
action_show_myinvois_documents(self)Open the documents in self in the correct view based on the amount of records. -
action_submit_to_myinvois(self)Submit all new documents in self to MyInvois. This can also be used on invalid documents to re-submit them after correcting the error. -
action_update_submission_status(self)Fetches the status of all the documents in self. Note that the endpoint reached to do so will differ based on the amount of documents in the recordset.
New fields (3)
-
document_idMany2one → myinvois.documentcomodel_name='myinvois.document'readonly=Truerequired=Truestring='Document To Update' -
new_statusCharhelp='New status to set on the document.'readonly=Truerequired=True -
reasonCharhelp='Reason for updating the document.'required=True
-
button_request_update(self)
New fields (1)
-
l10n_my_edi_classification_codeSelectionselection=CLASSIFICATION_CODES_LISTstring='Malaysian classification code'
No public methods.
New fields (7)
-
l10n_my_edi_default_import_journal_idMany2one → account.journalcomodel_name='account.journal'domain="[('type', '=', 'purchase')]"help='The journal on which invoices imported from MyInvois will be booked. Leave empty to use the default purchase journal.'string='Default import journal' -
l10n_my_edi_industrial_classificationMany2onereadonly=Falserelated='partner_id.l10n_my_edi_industrial_classification' -
l10n_my_edi_modeSelectiondefault='test'selection=[('test', 'Pre-Production'), ('prod', 'Production')] -
l10n_my_edi_proxy_user_idMany2one → account_edi_proxy_client.usercomodel_name='account_edi_proxy_client.user'compute='_compute_l10n_my_edi_proxy_user_id' -
l10n_my_identification_numberCharreadonly=Falserelated='partner_id.l10n_my_identification_number' -
l10n_my_identification_number_placeholderCharcompute='_compute_l10n_my_identification_number_placeholder' -
l10n_my_identification_typeSelectionreadonly=Falserelated='partner_id.l10n_my_identification_type'
No public methods.
New fields (5)
-
l10n_my_accept_processingBoolean -
l10n_my_edi_company_vatCharrelated='company_id.vat' -
l10n_my_edi_default_import_journal_idMany2onereadonly=Falserelated='company_id.l10n_my_edi_default_import_journal_id' -
l10n_my_edi_modeSelectionreadonly=Falserelated='company_id.l10n_my_edi_mode' -
l10n_my_edi_proxy_user_idMany2onerelated='company_id.l10n_my_edi_proxy_user_id'
-
action_l10n_my_edi_allow_processing(self)We always expect the user to give his consent by pressing the button, in any mode, to enable the edi. -
action_l10n_my_edi_unregister(self)Send a notification to the proxy to free the ID (vat) of the user, and archive the local proxy user. Useful if there has been a misconfiguration or the user wishes to use a new database/... -
action_open_company_form(self)This will be used to ease the configuration by allowing to quickly access the company.
New fields (7)
-
l10n_my_edi_display_tin_warningBooleancompute='_compute_l10n_my_edi_display_tin_warning' -
l10n_my_edi_industrial_classificationMany2one → l10n_my_edi.industry_classificationcomodel_name='l10n_my_edi.industry_classification'compute='_compute_l10n_my_edi_industrial_classification'readonly=Falsestore=Truestring='Ind. Classification' -
l10n_my_edi_malaysian_tinCharhelp='The value set in this field will be used as TIN for the customer/supplier.\nIf left empty, the Tax ID field will be used.'string='Malaysian TIN' -
l10n_my_identification_numberCharstring='ID Number' -
l10n_my_identification_number_placeholderCharcompute='_compute_l10n_my_identification_number_placeholder' -
l10n_my_identification_typeSelectiondefault='BRN'help='The identification type and number used by the MyTax/MyInvois system to identify the user.\nNote: For MyPR and MyKAS to use NRIC scheme'selection=[('NRIC', 'MyKad/MyTentera/MyPR/MyKAS'), ('BRN', 'Business Registration Number'), ('PASSPORT', 'Passport'), ('ARMY', 'Army')]string='ID Type' -
l10n_my_tin_validation_stateSelectioncompute='_compute_l10n_my_tin_validation_state'export_string_translation=Falsehelp='Technical field, hold the result of TIN validation using MyInvois API.\nIt is non blocking, and will simply help ensure that the customer of an invoice is valid to avoid submission errors.'readonly=Falseselection=[('valid', 'Valid'), ('invalid', 'Invalid')]store=Truestring='Tin Validation State'
-
action_validate_tin(self)Calling this action will reach our EDI proxy in order to validate the TIN against the provided identification information.
Loading…
Loading…