Stock Picking Invoicing

stock_picking_invoicing
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/19.0/stock_picking_invoicing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, sergio, oca-ci, Maksym Yankin
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create invoices directly from picking, without
having to use sale or purchase orders.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.list (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking notebook Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.list.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.list (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (9)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=<expr> readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_as_invoiced(self)
    Button to set Invoice State to Invoiced.
  • set_as_not_billable(self)
    Button to set Invoice State to Not Billable.
  • set_to_be_invoiced(self)
    Button to set Invoice State to To Be Invoice.

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/18.0/stock_picking_invoicing
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSRaphaël Valyi, Enric Tobella, Weblate, OCA-git-bot, Magno Costa, oca-ci, Ricard Calvo, eugenio
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create invoices directly from picking, without
having to use sale or purchase orders.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.list (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking notebook Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.list.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.list (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (9)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_as_invoiced(self)
    Button to set Invoice State to Invoiced.
  • set_as_not_billable(self)
    Button to set Invoice State to Not Billable.
  • set_to_be_invoiced(self)
    Button to set Invoice State to To Be Invoice.

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/17.0/stock_picking_invoicing
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, david-s73
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - sale_stock
    - sale
    - sales_team
    - account_payment
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create invoices directly from picking, without
having to use sale or purchase orders.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking notebook Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (7)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_as_invoiced(self)
    Button to set Invoice State to Invoiced.
  • set_as_not_billable(self)
    Button to set Invoice State to Not Billable.
  • set_to_be_invoiced(self)
    Button to set Invoice State to To Be Invoice.

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/16.0/stock_picking_invoicing
VERSION
VERSION 1.0.4
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 02:42:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
    - sale_stock
    - sale
    - sales_team
    - account_payment
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES astor
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking notebook Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (8)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_as_invoiced(self)
    Button to set Invoice State to Invoiced.
  • set_as_not_billable(self)
    Button to set Invoice State to Not Billable.
  • set_to_be_invoiced(self)
    Button to set Invoice State to To Be Invoice.

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/15.0/stock_picking_invoicing
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
    - sale_stock
    - sale
    - sales_team
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking field Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (8)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_to_be_invoiced(self)
    Update invoice_state of current pickings to "2binvoiced". :return: dict

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/14.0/stock_picking_invoicing
VERSION
VERSION 1.0.6
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSRaphaël Valyi, Pedro M. Baeza, OCA Transbot, Sébastien Alix, oca-travis, Weblate, OCA-git-bot, Magno Costa, oca-ci, Antônio Neto
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
    - sale_stock
    - sale
    - sales_team
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock.view_move_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking field Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (8)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungroup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_to_be_invoiced(self)
    Update invoice_state of current pickings to "2binvoiced". :return: dict

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/13.0/stock_picking_invoicing
VERSION
VERSION 3.1.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, OCA-git-bot, Magno Costa
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - sale_stock
    - sale
    - sales_team
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock_picking_invoice_link.view_move_picking_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking field Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (7)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • button_draft(self)
  • unlink(self)
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
  • get_split_pickings(self)
  • get_split_pickings_grouped(self, pickings)
  • get_split_pickings_nogrouped(self, pickings)
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungrup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • action_assign(self)
    If any stock move is to be invoiced, picking status is updated
  • set_to_be_invoiced(self)
    Update invoice_state of current pickings to "2binvoiced". :return: dict

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/12.0/stock_picking_invoicing
VERSION
VERSION 3.1.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSRenato Lima, GitHub, Luis Felipe Mileo, OCA Transbot, oca-travis, Weblate, OCA-git-bot, sergiocorato, Magno Costa, Marcel Savegnago
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - http_routing
    - digest
    - sale_stock
    - sale
    - sales_team
    - payment
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
stock_picking_type_kanban stock.picking.type.kanban stock.picking.type field Inherits stock.stock_picking_type_kanban
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock_picking_invoice_link.view_move_form
view_move_picking_form stock.move.form.invoice_state stock.move field Inherits stock_picking_invoice_link.view_move_picking_form
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking field Inherits stock_picking_invoice_link.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_internal_search stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_picking_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_picking_move_tree
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
view_stock_return_picking_form_inherit Return lines stock.return.picking field Inherits stock.view_stock_return_picking_form
Models touched (7)

New fields (0)

No new fields.

Public methods (3)
  • action_cancel(self)
    @api.multi
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • action_invoice_draft(self)
    @api.multi
  • unlink(self)
    @api.multi
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (7)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase', 'Create Supplier Invoice'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_sale_journal Boolean
Public methods (8)
  • action_generate(self)
    @api.multi
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
    @api.multi
  • get_split_pickings(self)
    @api.multi
  • get_split_pickings_grouped(self, pickings)
    @api.multi
  • get_split_pickings_nogrouped(self, pickings)
    @api.multi
  • onchange_group(self)
    @api.onchange('group')
  • ungroup_moves(self, grouped_moves_list)
    Ungrup your moves, split them again, grouping by fiscal position, max itens per invoice and etc :param grouped_moves_list: :return: list of grouped moves list

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • action_assign(self)
    @api.multi
    If any stock move is to be invoiced, picking status is updated
  • set_to_be_invoiced(self)
    @api.multi
    Update invoice_state of current pickings to "2binvoiced". :return: dict

New fields (1)
  • count_picking_2binvoiced Integer
    compute='_compute_picking_2binvoiced'
Public methods (0)

No public methods.

New fields (1)
  • invoice_state Selection
    default='none' required=True selection=[('2binvoiced', 'To be refunded/invoiced'), ('none', 'No invoicing')] string='Invoicing'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/10.0/stock_picking_invoicing
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot, François Honoré
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
view_move_form_inherit stock.move.form.inherit stock.move field Inherits stock.view_move_form
view_move_picking_from_stockaccount_inherit stock.move.form.invoice_state stock.move field Inherits stock.view_move_picking_form
view_move_picking_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_picking_tree
view_move_tree stock.move.tree (in stock_picking_invoicing) stock.move field Inherits stock.view_move_tree
view_picking_inherit_form2 stock.picking.form.inherit stock.picking notebook Inherits stock.view_picking_form
view_picking_inherit_tree2 stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
view_picking_invoicing_inherit_tree stock.picking.search.inherit stock.picking field Inherits stock.view_picking_internal_search
view_stock_invoice_onshipping Stock Invoice Onshipping stock.invoice.onshipping form New
Models touched (6)

New fields (1)
  • picking_ids Many2many → stock.picking
    column1='invoice_id' column2='picking_id' comodel_name='stock.picking' copy=True readonly=True relation='stock_picking_account_invoice_m2m'
Public methods (2)
  • action_cancel(self)
    @api.multi
    Inherit to update related picking as '2binvoiced' when the invoice is cancelled (only for invoices, not refunds) :return: bool
  • unlink(self)
    @api.multi
    Inherit the unlink to update related picking as "2binvoiced" (only for invoices, not refunds) :return:

New fields (1)
  • stock_move_ids Many2many → stock.move
    column1='invoice_line_id' column2='stock_move_id' comodel_name='stock.move' readonly=True relation='stock_move_account_move_line_m2m' string='Stock moves'
Public methods (0)

No public methods.

New fields (11)
  • group Selection
    default='picking' help="Group pickings/moves to create invoice(s):\nPicking: One invoice per picking;\nPartner: One invoice for each picking's partner;\nPartner/Product: One invoice per picking's partner and group product into a single invoice line." required=True selection=[('picking', 'Picking'), ('partner', 'Partner'), ('partner_product', 'Partner/Product')]
  • invoice_date Date
  • journal_type Selection
    default=_get_journal_type readonly=True selection=[('purchase_refund', 'Refund Purchase'), ('purchase', 'Create Supplier Invoice'), ('sale_refund', 'Refund Sale'), ('sale', 'Create Customer Invoice')]
  • purchase_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase')]" ondelete='cascade'
  • purchase_refund_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'purchase_refund')]" ondelete='cascade'
  • sale_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale')]" ondelete='cascade'
  • sale_refund_journal Many2one → account.journal
    comodel_name='account.journal' default=<expr> domain="[('type', '=', 'sale_refund')]" ondelete='cascade'
  • show_purchase_journal Boolean
  • show_purchase_refund_journal Boolean
    string='Show Refund Purchase Journal'
  • show_sale_journal Boolean
  • show_sale_refund_journal Boolean
    string='Show Refund Sale Journal'
Public methods (7)
  • action_generate(self)
    @api.multi
    Launch the invoice generation :return:
  • default_get(self, fields_list)
    @api.model
    Inherit to add default invoice_date :param fields_list: list of str :return: dict
  • get_partner_sum(self, pickings, partner, inv_type, picking_type, usage)
    @api.multi
  • get_split_pickings(self)
    @api.multi
  • get_split_pickings_grouped(self, pickings)
    @api.multi
  • get_split_pickings_nogrouped(self, pickings)
    @api.multi
  • onchange_group(self)
    @api.onchange('group')

New fields (1)
  • invoice_state Selection
    copy=False default='none' help='Invoiced: an invoice already exists\nTo Be Invoiced: need to be invoiced\nNot Applicable: no invoice to create' selection=[('invoiced', 'Invoiced'), ('2binvoiced', 'To Be Invoiced'), ('none', 'Not Applicable')] string='Invoice Status'
Public methods (0)

No public methods.

New fields (1)
  • invoice_line_ids Many2many → account.invoice.line
    column1='stock_move_id' column2='invoice_line_id' comodel_name='account.invoice.line' readonly=True relation='stock_move_account_move_line_m2m' string='Invoice Line'
Public methods (0)

No public methods.

New fields (1)
  • invoice_ids Many2many → account.invoice
    column1='picking_id' column2='invoice_id' comodel_name='account.invoice' copy=False readonly=True relation='stock_picking_account_invoice_m2m'
Public methods (1)
  • set_to_be_invoiced(self)
    @api.multi
    Update invoice_state of current pickings to "2binvoiced". :return: dict
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/9.0/stock_picking_invoicing
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttp://www.agilebg.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_tip
    - web_planner
    - procurement
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
stock_picking_invoice_out_form stock.picking.invoice.form stock.picking button Inherits stock.view_picking_form
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • set_to_be_invoiced(self)
    @api.multi