ITA - DDT: documento di trasporto

l10n_it_ddt
REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_ddt
VERSION
VERSION 1.10.1
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, tafaRU, Alex Comba, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, sergiocorato, Simone Rubino, Lara Baggio, Alfredo Zamora, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_ddt
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_package_preparation_line
    - stock_picking_package_preparation
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - stock_account
    - stock
    - barcodes
    - product_expiry
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (32)
XML IDNameModelTypeStatus
ddt_stock_picking_package_preparation_form ddt.stock.picking.package.preparation.form stock.picking.package.preparation button Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_search ddt.stock.picking.package.preparation.search stock.picking.package.preparation search New
ddt_stock_picking_package_preparation_tree ddt.stock.picking.package.preparation.tree stock.picking.package.preparation field Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
delivery_data delivery_data ir.ui.view qweb New
invoice_form_view_ddt account.invoice.form.ddt account.invoice notebook Inherits account.invoice_form
product_template_form_view_ddt_invoicing product.template.form.ddt.invoicing product.template field Inherits sale.product_template_form_view_invoice_policy
report_ddt report_ddt ir.ui.view qweb New
report_ddt_main report_ddt_main ir.ui.view qweb New
sale_order_form_view_ddt sale.order.form.ddt sale.order notebook Inherits sale.view_order_form
sppp_line_stock_picking_package_preparation_form_ddt sppp.line.stock.picking.package.preparation.form.ddt stock.picking.package.preparation xpath Inherits stock_picking_package_preparation_line.sppp_line_stock_picking_package_preparation_form
stock_goods_description_form stock.picking.goods_description.form stock.picking.goods_description form New
stock_location_form_view_inherit stock.location.form.inherit stock.location xpath Inherits stock.view_location_form
stock_picking_package_preparation_invoicing_form stock.picking.package.preparation.invoicing.form stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
stock_picking_package_preparation_invoicing_tree stock.picking.package.preparation.invoicing.tree stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
stock_picking_tree_ddt stock.picking.tree.ddt stock.picking field Inherits stock.vpicktree
view_add_pickings_to_ddt Add Pickings to TD add.pickings.to.ddt form New
view_carriage_condition_form stock.picking.carriage_condition.form stock.picking.carriage_condition form New
view_carriage_condition_tree stock.picking.carriage_condition.tree stock.picking.carriage_condition tree New
view_ddt_create_invoice TD Create Invoice ddt.create.invoice form New
view_ddt_from_pickings TD from Pickings ddt.from.pickings form New
view_ddt_invoicing TD Invoicing ddt.invoicing form New
view_ddt_type_form stock.ddt.type.form stock.ddt.type form New
view_ddt_type_tree stock.ddt.type.tree stock.ddt.type tree New
view_goods_description_tree stock.picking.goods_description.tree stock.picking.goods_description tree New
view_order_form_view_ddt sale.order.form.view.ddt sale.order xpath Inherits sale_stock.view_order_form_inherit_sale_stock
view_partner_form_ddt res.partner.form.ddt res.partner xpath Inherits base.view_partner_form
view_picking_form stock.picking.form.ddt stock.picking xpath Inherits stock.view_picking_form
view_picking_internal_search view.picking.search.ddt stock.picking field Inherits stock.view_picking_internal_search
view_transportation_method_form stock.picking.transportation_method.form stock.picking.transportation_method form New
view_transportation_method_tree stock.picking.transportation_method.tree stock.picking.transportation_method tree New
view_transportation_reason_form stock.picking.transportation_reason.form stock.picking.transportation_reason form New
view_transportation_reason_tree stock.picking.transportation_reason.tree stock.picking.transportation_reason tree New
Models touched (18)

New fields (15)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • carrier_tracking_ref Char
    copy=False string='Tracking Reference'
  • ddt_ids One2many → stock.picking.package.preparation
    string='TD' args: 'stock.picking.package.preparation', 'invoice_id'
  • dimension Char
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • gross_weight_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Gross Weight UoM'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • volume_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Volume UoM'
  • weight Float
    string='Weight'
  • weight_manual_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Net Weight UoM'
Public methods (0)

No public methods.

New fields (3)
  • ddt_id Many2one → stock.picking.package.preparation
    related='ddt_line_id.package_preparation_id' store=True string='TD' args: 'stock.picking.package.preparation'
  • ddt_line_id Many2one → stock.picking.package.preparation.line
    string='TD line' args: 'stock.picking.package.preparation.line'
  • ddt_sequence Integer
    related='ddt_line_id.sequence' store=True string='TD sequence'
Public methods (0)

No public methods.

New fields (1)
  • ddt_id Many2one → stock.picking.package.preparation
    args: 'stock.picking.package.preparation'
Public methods (1)
  • add_to_ddt(self)
    @api.multi

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    default=_get_ddt_ids args: 'stock.picking.package.preparation'
Public methods (1)
  • create_invoice(self)
    @api.multi

New fields (1)
  • picking_ids Many2many → stock.picking
    default=_get_picking_ids args: 'stock.picking'
Public methods (1)
  • create_ddt(self)
    @api.multi

New fields (4)
  • date_from Date
    required=True string='Start Date'
  • date_invoice Date
    string='Invoice Date'
  • date_to Date
    required=True string='End Date'
  • journal_id Many2one → account.journal
    default=_default_journal domain=[('type', '=', 'sale')] string='Journal' args: 'account.journal'
Public methods (1)
  • create_invoices(self)
    @api.multi

New fields (1)
  • ddt_invoice_exclude Boolean
    default=True help='If flagged this service will not be automatically invoiced from DDT.' string='Exclude from DDT invoicing'
Public methods (0)

No public methods.

New fields (8)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • ddt_code_group Char
    string='Code group'
  • ddt_invoice_exclude Boolean
    help='If flagged services will not be automatically invoiced from DDT. If set on the partner, this parameter willbe automatically applied to Sale Orders.' string='Do not invoice services from DDT'
  • ddt_invoicing_group Selection
    default='billing_partner' required=True args: TD_INVOICING_GROUPS, 'TD invoicing group'
  • ddt_show_price Boolean
    help='Show prices and discounts in TD report' string='TD show prices'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (0)

No public methods.

New fields (17)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • create_ddt Boolean
    args: 'Automatically create the TD'
  • ddt_carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_ids Many2many → stock.picking.package.preparation
    compute='_compute_ddt_ids' string='Related TDs' args: 'stock.picking.package.preparation'
  • ddt_invoice_exclude Boolean
    help='If flagged services from this SO will not be automatically invoiced from DDT. This parameter can be set on partners and automatically applied to Sale Orders.' string='DDT do not invoice services'
  • ddt_invoicing_group Selection
    default='billing_partner' required=True args: TD_INVOICING_GROUPS, 'TD invoicing group'
  • ddt_show_price Boolean
    help='Show prices and discounts in TD report' string='TD show prices'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • gross_weight_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Gross Weight UoM'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • volume_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Volume UoM'
  • weight Float
    string='Weight'
  • weight_manual_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Net Weight UoM'
Public methods (4)
  • action_confirm(self)
    @api.multi
  • action_invoice_create(self, grouped=False, final=False)
    @api.multi
  • action_view_ddt(self)
    @api.multi
  • onchange_partner_id(self)
    @api.multi@api.onchange('partner_id')

New fields (9)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • default_carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Default Carriage Condition' args: 'stock.picking.carriage_condition'
  • default_goods_description_id Many2one → stock.picking.goods_description
    string='Default Description of Goods' args: 'stock.picking.goods_description'
  • default_note Text
    string='Default Note'
  • default_transportation_method_id Many2one → stock.picking.transportation_method
    string='Default Method of Transportation' args: 'stock.picking.transportation_method'
  • default_transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Default Reason for Transportation' args: 'stock.picking.transportation_reason'
  • name Char
    required=True
  • note Text
    string='Note'
  • sequence_id Many2one → ir.sequence
    required=True args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (1)
  • type_ddt_id Many2one → stock.ddt.type
    string='TD type' args: 'stock.ddt.type'
Public methods (0)

No public methods.

New fields (4)
  • ddt_ids Many2many → stock.picking.package.preparation
    column1='stock_picking_id' column2='stock_picking_package_preparation_id' comodel_name='stock.picking.package.preparation' copy=False relation='stock_picking_pack_prepare_rel' string='TD'
  • ddt_supplier_date Date
    copy=False string='Supplier TD Date'
  • ddt_supplier_number Char
    copy=False string='Supplier TD Number'
  • ddt_type Many2one → stock.ddt.type
    related='picking_type_id.default_location_src_id.type_ddt_id' args: 'stock.ddt.type'
Public methods (5)
  • create(self, values)
    @api.model
  • get_ddt_shipping_partner(self)
  • open_form_current(self)
    @api.multi
  • unlink(self)
    @api.multi
  • write(self, values)
    @api.multi

New fields (2)
  • name Char
    required=True string='Carriage Condition'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Description of Goods'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (23)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • carrier_tracking_ref Char
    copy=False string='Tracking Reference'
  • check_if_picking_done Boolean
    compute='_compute_check_if_picking_done'
  • ddt_number Char
    copy=False string='TD Number'
  • ddt_show_price Boolean
    string='Show prices on report'
  • ddt_type_id Many2one → stock.ddt.type
    default=_default_ddt_type states={'done': [('readonly', True)], 'cancel': [('readonly', True)]} string='TD Type' args: 'stock.ddt.type'
  • dimension Char
  • display_name Char
    compute='_compute_clean_display_name' string='Name'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • gross_weight_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Gross Weight UoM'
  • invoice_id Many2one → account.invoice
    copy=False readonly=True string='Invoice' args: 'account.invoice'
  • parcels Integer
    args: 'Packages'
  • partner_shipping_id Many2one → res.partner
    string='Shipping Address' args: 'res.partner'
  • show_deadline_date Selection
    string='Show lot deadline on report' args: [('life_date', 'End of Life Date'), ('use_date', 'Best before Date'), ('removal_date', 'Removal Date')]
  • to_be_invoiced Boolean
    help="This depends on 'To be Invoiced' field of the Reason for Transportation of this TD" string='To be Invoiced'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • volume_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Volume UoM'
  • weight_manual Float
    help='Fill this field with the value you want to be used as weight. Leave empty to let the system to compute it' string='Force Net Weight'
  • weight_manual_uom_id Many2one → uom.uom
    default=<expr> args: 'uom.uom', 'Net Weight UoM'
Public methods (11)
  • action_done(self)
    @api.multi
  • action_invoice_create(self)
    @api.multi
    Create the invoice associated to the TD. :returns: list of created invoices
  • action_put_in_pack(self)
    @api.multi
  • action_send_ddt_mail(self)
    @api.multi
  • check_linked_picking(self, picking)
    @api.model
  • create_td_grouped_invoices(self)
    @api.multi
    Create the invoices, grouped by `group_key` (see `get_td_group_key`). :return: ( dictionary group_key -> invoice record-set, dictionary invoice -> TD record-set, )
  • get_td_group_key(self)
    @api.multi
    Get the grouping key for current TD.
  • on_change_partner(self)
    @api.onchange('partner_id', 'ddt_type_id')
  • other_operations_on_ddt(self, invoice)
    @api.multi
    Once invoices are created with stockable products, we add them all the invoiceable services available in the SO related to the DDTs linked to the invoice. Override this method in order to execute other additional operation on the invoices created from DDT.
  • set_done(self)
    @api.multi
  • unlink(self)
    @api.multi

New fields (4)
  • discount Float
    default=0.0 digits=dp.get_precision('Discount') string='Discount (%)'
  • price_unit Float
    default=0.0 digits=dp.get_precision('Product Price') args: 'Unit Price'
  • sale_line_id Many2one
    readonly=True related='move_id.sale_line_id' store=True string='Sale order line'
  • tax_ids Many2many → account.tax
    string='Taxes' args: 'account.tax'
Public methods (3)
  • allow_invoice_line(self)
    @api.multi
    This method allows or not the invoicing of a specific DDT line. It can be inherited for different purposes, e.g. for proper invoicing of kit.
  • invoice_line_create(self, invoice_id, qty)
    @api.multi
    :param invoice_id: integer :param qty: float quantity to invoice
  • quantity_by_lot(self)
    @api.multi
    Build a dictionary mapping each lot in the current line to its quantity (if the product is tracked with lots)

New fields (2)
  • name Char
    required=True string='Method of Transportation'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    required=True string='Reason For Transportation'
  • note Text
    string='Note'
  • to_be_invoiced Boolean
    string='To be Invoiced'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_ddt
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
COMMITTERS
COMMITTERSLorenzo Battistini, Alex Comba, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_ddt
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_package_preparation_line
    - stock_picking_package_preparation
odoo/odoo:
    - sale_stock
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - analytic
    - web_planner
    - portal
    - http_routing
    - account_invoicing
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (29)
XML IDNameModelTypeStatus
ddt_stock_picking_package_preparation_form ddt.stock.picking.package.preparation.form stock.picking.package.preparation button Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_search ddt.stock.picking.package.preparation.search stock.picking.package.preparation search New
ddt_stock_picking_package_preparation_tree ddt.stock.picking.package.preparation.tree stock.picking.package.preparation field Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
delivery_data delivery_data ir.ui.view qweb New
invoice_form_view_ddt account.invoice.form.ddt account.invoice notebook Inherits account.invoice_form
report_ddt report_ddt ir.ui.view qweb New
report_ddt_main report_ddt_main ir.ui.view qweb New
sale_order_form_view_ddt sale.order.form.ddt sale.order notebook Inherits sale.view_order_form
sppp_line_stock_picking_package_preparation_form_ddt sppp.line.stock.picking.package.preparation.form.ddt stock.picking.package.preparation xpath Inherits stock_picking_package_preparation_line.sppp_line_stock_picking_package_preparation_form
stock_goods_description_form stock.picking.goods_description.form stock.picking.goods_description form New
stock_location_form_view_inherit stock.location.form.inherit stock.location xpath Inherits stock.view_location_form
stock_picking_package_preparation_invoicing_form stock.picking.package.preparation.invoicing.form stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
stock_picking_package_preparation_invoicing_tree stock.picking.package.preparation.invoicing.tree stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
stock_picking_tree_ddt stock.picking.tree.ddt stock.picking field Inherits stock.vpicktree
view_add_pickings_to_ddt Add Pickings to DDT add.pickings.to.ddt form New
view_carriage_condition_form stock.picking.carriage_condition.form stock.picking.carriage_condition form New
view_carriage_condition_tree stock.picking.carriage_condition.tree stock.picking.carriage_condition tree New
view_ddt_create_invoice DdT Create Invoice ddt.create.invoice form New
view_ddt_from_pickings DdT from Pickings ddt.from.pickings form New
view_ddt_invoicing DdT Invoicing ddt.invoicing form New
view_ddt_type_form stock.ddt.type.form stock.ddt.type form New
view_ddt_type_tree stock.ddt.type.tree stock.ddt.type tree New
view_goods_description_tree stock.picking.goods_description.tree stock.picking.goods_description tree New
view_order_form_view_ddt sale.order.form.view.ddt sale.order xpath Inherits sale_stock.view_order_form_inherit_sale_stock
view_partner_form_ddt res.partner.form.ddt res.partner xpath Inherits base.view_partner_form
view_transportation_method_form stock.picking.transportation_method.form stock.picking.transportation_method form New
view_transportation_method_tree stock.picking.transportation_method.tree stock.picking.transportation_method tree New
view_transportation_reason_form stock.picking.transportation_reason.form stock.picking.transportation_reason form New
view_transportation_reason_tree stock.picking.transportation_reason.tree stock.picking.transportation_reason tree New
Models touched (18)

New fields (10)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_ids One2many → stock.picking.package.preparation
    string='DDT' args: 'stock.picking.package.preparation', 'invoice_id'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight Float
    string='Weight'
Public methods (0)

No public methods.

New fields (3)
  • ddt_id Many2one → stock.picking.package.preparation
    related='ddt_line_id.package_preparation_id' store=True string='Ddt' args: 'stock.picking.package.preparation'
  • ddt_line_id Many2one → stock.picking.package.preparation.line
    string='Ddt line' args: 'stock.picking.package.preparation.line'
  • ddt_sequence Integer
    related='ddt_line_id.sequence' store=True string='Ddt sequence'
Public methods (0)

No public methods.

New fields (1)
  • ddt_id Many2one → stock.picking.package.preparation
    args: 'stock.picking.package.preparation'
Public methods (1)
  • add_to_ddt(self)
    @api.multi

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    default=_get_ddt_ids args: 'stock.picking.package.preparation'
Public methods (1)
  • create_invoice(self)
    @api.multi

New fields (1)
  • picking_ids Many2many → stock.picking
    default=_get_picking_ids args: 'stock.picking'
Public methods (1)
  • create_ddt(self)
    @api.multi

New fields (4)
  • date_from Date
    required=True string='Start Date'
  • date_invoice Date
    string='Invoice Date'
  • date_to Date
    required=True string='End Date'
  • journal_id Many2one → account.journal
    default=_default_journal domain=[('type', '=', 'sale')] string='Journal' args: 'account.journal'
Public methods (1)
  • create_invoices(self)
    @api.multi

New fields (7)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • ddt_code_group Char
    string='Code group'
  • ddt_invoicing_group Selection
    default='billing_partner' args: [('nothing', 'One DDT - One Invoice'), ('billing_partner', 'Billing Partner'), ('shipping_partner', 'Shipping Partner'), ('code_group', 'Code group')], 'DDT invoicing group'
  • ddt_show_price Boolean
    default=False help='Show prices and discounts in ddt report' string='DDT show prices'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (0)

No public methods.

New fields (12)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • create_ddt Boolean
    args: 'Automatically create the DDT'
  • ddt_carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_ids Many2many → stock.picking.package.preparation
    compute='_compute_ddt_ids' string='Related DdTs' args: 'stock.picking.package.preparation'
  • ddt_invoicing_group Selection
    default='billing_partner' args: [('nothing', 'One DDT - One Invoice'), ('billing_partner', 'Billing Partner'), ('shipping_partner', 'Shipping Partners'), ('code_group', 'Code group')], 'DDT invoicing group'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight Float
    string='Weight'
Public methods (3)
  • action_confirm(self)
    @api.multi
  • action_view_ddt(self)
    @api.multi
  • onchange_partner_id(self)
    @api.multi@api.onchange('partner_id')

New fields (8)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • default_carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Default Carriage Condition' args: 'stock.picking.carriage_condition'
  • default_goods_description_id Many2one → stock.picking.goods_description
    string='Default Description of Goods' args: 'stock.picking.goods_description'
  • default_transportation_method_id Many2one → stock.picking.transportation_method
    string='Default Method of Transportation' args: 'stock.picking.transportation_method'
  • default_transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Default Reason for Transportation' args: 'stock.picking.transportation_reason'
  • name Char
    required=True
  • note Text
    string='Note'
  • sequence_id Many2one → ir.sequence
    required=True args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (1)
  • type_ddt_id Many2one → stock.ddt.type
    string='Type DDT' args: 'stock.ddt.type'
Public methods (0)

No public methods.

New fields (1)
  • ddt_type Many2one → stock.ddt.type
    related='picking_type_id.default_location_src_id.type_ddt_id' args: 'stock.ddt.type'
Public methods (0)

No public methods.

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    column1='stock_picking_id' column2='stock_picking_package_preparation_id' comodel_name='stock.picking.package.preparation' copy=False relation='stock_picking_pack_prepare_rel' string='DdT'
Public methods (5)
  • create(self, values)
    @api.model
  • get_ddt_shipping_partner(self)
  • open_form_current(self)
    @api.multi
  • unlink(self)
    @api.multi
  • write(self, values)
    @api.multi

New fields (2)
  • name Char
    required=True string='Carriage Condition'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Description of Goods'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (17)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • check_if_picking_done Boolean
    compute='_compute_check_if_picking_done'
  • ddt_number Char
    copy=False string='DdT Number'
  • ddt_type_id Many2one → stock.ddt.type
    default=_default_ddt_type string='DdT Type' args: 'stock.ddt.type'
  • display_name Char
    compute='_compute_clean_display_name' string='Name'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • invoice_id Many2one → account.invoice
    copy=False readonly=True string='Invoice' args: 'account.invoice'
  • parcels Integer
    args: 'Parcels'
  • partner_shipping_id Many2one → res.partner
    string='Shipping Address' args: 'res.partner'
  • show_price Boolean
    string='Show prices on report'
  • to_be_invoiced Boolean
    compute='_compute_to_be_invoiced' help="This depends on 'To be Invoiced' field of the Reason for Transportation of this DDT" store=True string='To be Invoiced'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight_manual Float
    help='Fill this field with the value you want to be used as weight. Leave empty to let the system to compute it' string='Force Net Weight'
Public methods (7)
  • action_invoice_create(self)
    @api.multi
    Create the invoice associated to the DDT. :returns: list of created invoices
  • action_put_in_pack(self)
    @api.multi
  • action_send_ddt_mail(self)
    @api.multi
  • check_linked_picking(self, picking)
    @api.model
  • on_change_partner(self)
    @api.onchange('partner_id', 'ddt_type_id')
  • set_done(self)
    @api.multi
  • unlink(self)
    @api.multi

New fields (4)
  • discount Float
    default=0.0 digits=dp.get_precision('Discount') string='Discount (%)'
  • price_unit Float
    default=0.0 digits=dp.get_precision('Product Price') args: 'Unit Price'
  • sale_line_id Many2one
    readonly=True related='move_id.sale_line_id' store=True string='Sale order line'
  • tax_ids Many2many → account.tax
    string='Taxes' args: 'account.tax'
Public methods (2)
  • invoice_line_create(self, invoice_id, qty)
    @api.multi
    :param invoice_id: integer :param qty: float quantity to invoice
  • quantity_by_lot(self)
    @api.multi
    Build a dictionary mapping each lot in the current line to its quantity (if the product is tracked with lots)

New fields (2)
  • name Char
    required=True string='Method of Transportation'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (3)
  • name Char
    required=True string='Reason For Transportation'
  • note Text
    string='Note'
  • to_be_invoiced Boolean
    string='To be Invoiced'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/10.0/l10n_it_ddt
VERSION
VERSION 1.9.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Openforce di Camilli Alessandro, Davide Corio, Francesco Apruzzese
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, GitHub, Stéphane Bidoul (ACSONE), tafaRU, Alex Comba, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Simone Rubino, Alessandro Camilli, Roberto Fichera, jackjack82, gabriele_baldessari, mborrini
WEBSITE
WEBSITEhttps://odoo-community.org/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_package_preparation_line
    - stock_picking_package_preparation
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - 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 (30)
XML IDNameModelTypeStatus
ddt_stock_picking_package_preparation_form ddt.stock.picking.package.preparation.form stock.picking.package.preparation button Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_search ddt.stock.picking.package.preparation.search stock.picking.package.preparation search New
ddt_stock_picking_package_preparation_tree ddt.stock.picking.package.preparation.tree stock.picking.package.preparation field Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
delivery_data delivery_data ir.ui.view qweb New
invoice_form_view_ddt account.invoice.form.ddt account.invoice notebook Inherits account.invoice_form
product_template_form_view_ddt_invoicing product.template.form.ddt.invoicing product.template field Inherits sale.product_template_form_view_invoice_policy
report_ddt report_ddt ir.ui.view qweb New
report_ddt_main report_ddt_main ir.ui.view qweb New
sale_order_form_view_ddt sale.order.form.ddt sale.order notebook Inherits sale.view_order_form
sppp_line_stock_picking_package_preparation_form_ddt sppp.line.stock.picking.package.preparation.form.ddt stock.picking.package.preparation xpath Inherits stock_picking_package_preparation_line.sppp_line_stock_picking_package_preparation_form
stock_goods_description_form stock.picking.goods_description.form stock.picking.goods_description form New
stock_location_form_view_inherit stock.location.form.inherit stock.location xpath Inherits stock.view_location_form
stock_picking_package_preparation_invoicing_form stock.picking.package.preparation.invoicing.form stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
stock_picking_package_preparation_invoicing_tree stock.picking.package.preparation.invoicing.tree stock.picking.package.preparation xpath Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
stock_picking_tree_ddt stock.picking.tree.ddt stock.picking field Inherits stock.vpicktree
view_add_pickings_to_ddt Add Pickings to DDT add.pickings.to.ddt form New
view_carriage_condition_form stock.picking.carriage_condition.form stock.picking.carriage_condition form New
view_carriage_condition_tree stock.picking.carriage_condition.tree stock.picking.carriage_condition tree New
view_ddt_create_invoice DdT Create Invoice ddt.create.invoice form New
view_ddt_from_pickings DdT from Pickings ddt.from.pickings form New
view_ddt_invoicing DdT Invoicing ddt.invoicing form New
view_ddt_type_form stock.ddt.type.form stock.ddt.type form New
view_ddt_type_tree stock.ddt.type.tree stock.ddt.type tree New
view_goods_description_tree stock.picking.goods_description.tree stock.picking.goods_description tree New
view_order_form_view_ddt sale.order.form.view.ddt sale.order xpath Inherits sale_stock.view_order_form_inherit_sale_stock
view_partner_form_ddt res.partner.form.ddt res.partner xpath Inherits base.view_partner_form
view_transportation_method_form stock.picking.transportation_method.form stock.picking.transportation_method form New
view_transportation_method_tree stock.picking.transportation_method.tree stock.picking.transportation_method tree New
view_transportation_reason_form stock.picking.transportation_reason.form stock.picking.transportation_reason form New
view_transportation_reason_tree stock.picking.transportation_reason.tree stock.picking.transportation_reason tree New
Models touched (18)

New fields (10)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_ids One2many → stock.picking.package.preparation
    string='DDT' args: 'stock.picking.package.preparation', 'invoice_id'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight Float
    string='Weight'
Public methods (0)

No public methods.

New fields (3)
  • ddt_id Many2one → stock.picking.package.preparation
    related='ddt_line_id.package_preparation_id' store=True string='Ddt' args: 'stock.picking.package.preparation'
  • ddt_line_id Many2one → stock.picking.package.preparation.line
    string='Ddt line' args: 'stock.picking.package.preparation.line'
  • ddt_sequence Integer
    related='ddt_line_id.sequence' store=True string='Ddt sequence'
Public methods (0)

No public methods.

New fields (1)
  • ddt_id Many2one → stock.picking.package.preparation
    args: 'stock.picking.package.preparation'
Public methods (1)
  • add_to_ddt(self)
    @api.multi

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    default=_get_ddt_ids args: 'stock.picking.package.preparation'
Public methods (1)
  • create_invoice(self)
    @api.multi

New fields (1)
  • picking_ids Many2many → stock.picking
    default=_get_picking_ids args: 'stock.picking'
Public methods (1)
  • create_ddt(self)
    @api.multi

New fields (4)
  • date_from Date
    required=True string='Start Date'
  • date_invoice Date
    string='Invoice Date'
  • date_to Date
    required=True string='End Date'
  • journal_id Many2one → account.journal
    default=_default_journal domain=[('type', '=', 'sale')] string='Journal' args: 'account.journal'
Public methods (1)
  • create_invoices(self)
    @api.multi

New fields (1)
  • ddt_invoice_exclude Boolean
    default=True help='If flagged this service will not be automatically invoiced from DDT.' string='Exclude from DDT invoicing'
Public methods (0)

No public methods.

New fields (8)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • ddt_code_group Char
    string='Code group'
  • ddt_invoice_exclude Boolean
    help='If flagged services will not be automatically invoiced from DDT. If set on the partner, this parameter willbe automatically applied to Sale Orders.' string='Do not invoice services from DDT'
  • ddt_invoicing_group Selection
    default='billing_partner' args: [('nothing', 'One DDT - One Invoice'), ('billing_partner', 'Billing Partner'), ('shipping_partner', 'Shipping Partner'), ('code_group', 'Code group')], 'DDT invoicing group'
  • ddt_show_price Boolean
    default=False help='Show prices and discounts in ddt report' string='DDT show prices'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (0)

No public methods.

New fields (14)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • create_ddt Boolean
    args: 'Automatically create the DDT'
  • ddt_carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_count Integer
    compute='_compute_ddt_count' string='DDTs'
  • ddt_ids Many2many → stock.picking.package.preparation
    compute='_compute_ddt_ids' string='Related DdTs' args: 'stock.picking.package.preparation'
  • ddt_invoice_exclude Boolean
    help='If flagged services from this SO will not be automatically invoiced from DDT. This parameter can be set on partners and automatically applied to Sale Orders.' string='DDT do not invoice services'
  • ddt_invoicing_group Selection
    default='billing_partner' args: [('nothing', 'One DDT - One Invoice'), ('billing_partner', 'Billing Partner'), ('shipping_partner', 'Shipping Partners'), ('code_group', 'Code group')], 'DDT invoicing group'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • parcels Integer
    args: 'Parcels'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight Float
    string='Weight'
Public methods (3)
  • action_confirm(self)
    @api.multi
  • action_view_ddt(self)
    @api.multi
  • onchange_partner_id(self)
    @api.multi@api.onchange('partner_id')

New fields (8)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • default_carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Default Carriage Condition' args: 'stock.picking.carriage_condition'
  • default_goods_description_id Many2one → stock.picking.goods_description
    string='Default Description of Goods' args: 'stock.picking.goods_description'
  • default_transportation_method_id Many2one → stock.picking.transportation_method
    string='Default Method of Transportation' args: 'stock.picking.transportation_method'
  • default_transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Default Reason for Transportation' args: 'stock.picking.transportation_reason'
  • name Char
    required=True
  • note Text
    string='Note'
  • sequence_id Many2one → ir.sequence
    required=True args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (1)
  • type_ddt_id Many2one → stock.ddt.type
    string='Type DDT' args: 'stock.ddt.type'
Public methods (0)

No public methods.

New fields (2)
  • ddt_ids Many2many → stock.picking.package.preparation
    column1='stock_picking_id' column2='stock_picking_package_preparation_id' comodel_name='stock.picking.package.preparation' copy=False relation='stock_picking_pack_prepare_rel' string='DdT'
  • ddt_type Many2one → stock.ddt.type
    related='picking_type_id.default_location_src_id.type_ddt_id' args: 'stock.ddt.type'
Public methods (5)
  • create(self, values)
    @api.model
  • get_ddt_shipping_partner(self)
  • open_form_current(self)
    @api.multi
  • unlink(self)
    @api.multi
  • write(self, values)
    @api.multi

New fields (2)
  • name Char
    required=True string='Carriage Condition' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Description of Goods' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (17)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • check_if_picking_done Boolean
    compute='_compute_check_if_picking_done'
  • ddt_number Char
    copy=False string='DdT Number'
  • ddt_type_id Many2one → stock.ddt.type
    default=_default_ddt_type string='DdT Type' args: 'stock.ddt.type'
  • display_name Char
    compute='_compute_clean_display_name' string='Name'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • gross_weight Float
    string='Gross Weight'
  • invoice_id Many2one → account.invoice
    copy=False readonly=True string='Invoice' args: 'account.invoice'
  • parcels Integer
    args: 'Parcels'
  • partner_shipping_id Many2one → res.partner
    string='Shipping Address' args: 'res.partner'
  • show_price Boolean
    string='Show prices on report'
  • to_be_invoiced Boolean
    compute='_compute_to_be_invoiced' help="This depends on 'To be Invoiced' field of the Reason for Transportation of this DDT" store=True string='To be Invoiced'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
  • weight_manual Float
    help='Fill this field with the value you want to be used as weight. Leave empty to let the system to compute it' string='Force Net Weight'
Public methods (8)
  • action_invoice_create(self)
    @api.multi
    Create the invoice associated to the DDT. :returns: list of created invoices
  • action_put_in_pack(self)
    @api.multi
  • action_send_ddt_mail(self)
    @api.multi
  • check_linked_picking(self, picking)
    @api.model
  • on_change_partner(self)
    @api.onchange('partner_id', 'ddt_type_id')
  • other_operations_on_ddt(self, invoice)
    @api.multi
    Once invoices are created with stockable products, we add them all the invoiceable services available in the SO related to the DDTs linked to the invoice. Override this method in order to execute other additional operation on the invoices created from DDT.
  • set_done(self)
    @api.multi
  • unlink(self)
    @api.multi

New fields (4)
  • discount Float
    default=0.0 digits=dp.get_precision('Discount') string='Discount (%)'
  • price_unit Float
    default=0.0 digits=dp.get_precision('Product Price') args: 'Unit Price'
  • sale_line_id Many2one
    readonly=True related='move_id.procurement_id.sale_line_id' store=True string='Sale order line'
  • tax_ids Many2many → account.tax
    string='Taxes' args: 'account.tax'
Public methods (3)
  • allow_invoice_line(self)
    @api.multi
    This method allows or not the invoicing of a specific DDT line. It can be inherited for different purposes, e.g. for proper invoicing of kit.
  • invoice_line_create(self, invoice_id, qty)
    @api.multi
    :param invoice_id: integer :param qty: float quantity to invoice
  • quantity_by_lot(self)

New fields (2)
  • name Char
    required=True string='Method of Transportation' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (3)
  • name Char
    required=True string='Reason For Transportation' translate=True
  • note Text
    string='Note' translate=True
  • to_be_invoiced Boolean
    string='To be Invoiced'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/9.0/l10n_it_ddt
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Apulia Software, Davide Corio, Francesco Apruzzese
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Apulia Software, Davide Corio, Francesco Apruzzese
COMMITTERS
COMMITTERSeLBati, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, oca-travis, Weblate, Ciro Urselli
WEBSITE
WEBSITEhttp://www.odoo-italia.org/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_package_preparation_line
    - stock_picking_package_preparation
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 (22)
XML IDNameModelTypeStatus
ddt_stock_picking_package_preparation_form ddt.stock.picking.package.preparation.form stock.picking.package.preparation button Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_search ddt.stock.picking.package.preparation.search stock.picking.package.preparation search New
ddt_stock_picking_package_preparation_tree ddt.stock.picking.package.preparation.tree stock.picking.package.preparation field Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
delivery_data delivery_data ir.ui.view qweb New
invoice_form_view_ddt account.invoice.form.ddt account.invoice notebook Inherits account.invoice_form
report_ddt report_ddt ir.ui.view qweb New
report_ddt_main report_ddt_main ir.ui.view qweb New
sale_order_form_view_ddt sale.order.form.ddt sale.order notebook Inherits sale.view_order_form
stock_goods_description_form stock.picking.goods_description.form stock.picking.goods_description form New
view_add_pickings_to_ddt Add Pickings to DDT add.pickings.to.ddt form New
view_carriage_condition_form stock.picking.carriage_condition.form stock.picking.carriage_condition form New
view_carriage_condition_tree stock.picking.carriage_condition.tree stock.picking.carriage_condition tree New
view_ddt_from_pickings DdT from Pickings ddt.from.pickings form New
view_ddt_type_form stock.ddt.type.form stock.ddt.type form New
view_ddt_type_tree stock.ddt.type.tree stock.ddt.type tree New
view_goods_description_tree stock.picking.goods_description.tree stock.picking.goods_description tree New
view_order_form_view_ddt sale.order.form.view.ddt sale.order xpath Inherits sale_stock.view_order_form_inherit_sale_stock
view_partner_form_ddt res.partner.form.ddt res.partner xpath Inherits base.view_partner_form
view_transportation_method_form stock.picking.transportation_method.form stock.picking.transportation_method form New
view_transportation_method_tree stock.picking.transportation_method.tree stock.picking.transportation_method tree New
view_transportation_reason_form stock.picking.transportation_reason.form stock.picking.transportation_reason form New
view_transportation_reason_tree stock.picking.transportation_reason.tree stock.picking.transportation_reason tree New
Models touched (12)

New fields (5)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • parcels Integer
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (0)

No public methods.

New fields (1)
  • ddt_id Many2one → stock.picking.package.preparation
    args: 'stock.picking.package.preparation'
Public methods (1)
  • add_to_ddt(self)
    @api.multi

New fields (1)
  • picking_ids Many2many → stock.picking
    default=_get_picking_ids args: 'stock.picking'
Public methods (1)
  • create_ddt(self)
    @api.multi

New fields (4)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (0)

No public methods.

New fields (7)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • create_ddt Boolean
    args: 'Automatically create the DDT'
  • ddt_ids Many2many → stock.picking.package.preparation
    compute='_compute_ddt_ids' string='Related DdTs' args: 'stock.picking.package.preparation'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • parcels Integer
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
Public methods (3)
  • action_confirm(self)
    @api.multi
  • action_view_ddt(self)
    @api.multi
  • onchange_partner_id(self)
    @api.multi@api.onchange('partner_id')

New fields (3)
  • name Char
    required=True
  • note Text
    string='Note'
  • sequence_id Many2one → ir.sequence
    required=True args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    column1='stock_picking_id' column2='stock_picking_package_preparation_id' comodel_name='stock.picking.package.preparation' copy=False relation='stock_picking_pack_prepare_rel' string='DdT'
Public methods (4)
  • create(self, values)
    @api.model
  • get_ddt_shipping_partner(self)
  • unlink(self)
    @api.multi
  • write(self, values)
    @api.multi

New fields (2)
  • name Char
    required=True string='Carriage Condition'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Description of Goods'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (11)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    string='Carriage Condition' args: 'stock.picking.carriage_condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_number Char
    string='DdT Number'
  • ddt_type_id Many2one → stock.ddt.type
    default=_default_ddt_type string='DdT Type' args: 'stock.ddt.type'
  • display_name Char
    compute='_compute_display_name' string='Name'
  • goods_description_id Many2one → stock.picking.goods_description
    string='Description of Goods' args: 'stock.picking.goods_description'
  • parcels Integer
  • partner_shipping_id Many2one → res.partner
    string='Shipping Address' args: 'res.partner'
  • transportation_method_id Many2one → stock.picking.transportation_method
    string='Method of Transportation' args: 'stock.picking.transportation_method'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    string='Reason for Transportation' args: 'stock.picking.transportation_reason'
  • volume Float
    args: 'Volume'
Public methods (3)
  • action_put_in_pack(self)
    @api.multi
  • on_change_partner(self)
    @api.onchange('partner_id', 'ddt_type_id')
  • set_done(self)
    @api.multi

New fields (2)
  • name Char
    required=True string='Method of Transportation'
  • note Text
    string='Note'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Reason For Transportation'
  • note Text
    string='Note'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/8.0/l10n_it_ddt
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Apulia Software, Davide Corio, Francesco Apruzzese
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Apulia Software, Davide Corio, Francesco Apruzzese
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, GitHub, Stéphane Bidoul (ACSONE), Alex Comba, Andrea Cometa, Francesco Apruzzese, OCA Transbot, Nicola Malcontenti, oca-travis, Weblate, sergio, andrea4ever, Claudio Ponziani
WEBSITE
WEBSITEhttp://www.odoo-italia.org/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_picking_package_preparation_line
    - stock_picking_package_preparation
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - web_kanban_sparkline
    - account_voucher
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - board
    - edi
    - email_template
    - procurement
    - stock_account
    - stock
    - web_kanban_gauge
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
ddt_sppp_line_stock_picking_package_preparation_form ddt.sppp.line.stock.picking.package.preparation.form stock.picking.package.preparation xpath Inherits stock_picking_package_preparation_line.sppp_line_stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_form ddt.stock.picking.package.preparation.form stock.picking.package.preparation button Inherits stock_picking_package_preparation.stock_picking_package_preparation_form
ddt_stock_picking_package_preparation_search ddt.stock.picking.package.preparation.search stock.picking.package.preparation search New
ddt_stock_picking_package_preparation_tree ddt.stock.picking.package.preparation.tree stock.picking.package.preparation field Inherits stock_picking_package_preparation.stock_picking_package_preparation_tree
delivery_data delivery_data ir.ui.view qweb New
invoice_form_view_ddt account.invoice.form.ddt account.invoice xpath Inherits account.invoice_form
report_ddt report_ddt ir.ui.view qweb New
report_ddt_main report_ddt_main ir.ui.view qweb New
sale_order_form_view_ddt sale.order.form.ddt sale.order xpath Inherits sale.view_order_form
stock_goods_description_form stock.picking.goods_description.form stock.picking.goods_description form New
view_add_pickings_to_ddt Add Pickings to DDT add.pickings.to.ddt form New
view_carriage_condition_form stock.picking.carriage_condition.form stock.picking.carriage_condition form New
view_carriage_condition_tree stock.picking.carriage_condition.tree stock.picking.carriage_condition tree New
view_ddt_create_invoice Create Invoice ddt.create.invoice form New
view_ddt_from_pickings DdT from Pickings ddt.from.pickings form New
view_ddt_type_form stock.ddt.type.form stock.ddt.type form New
view_ddt_type_tree stock.ddt.type.tree stock.ddt.type tree New
view_goods_description_tree stock.picking.goods_description.tree stock.picking.goods_description tree New
view_order_form_view_ddt sale.order.form.view.ddt sale.order xpath Inherits sale_stock.view_order_form_inherit
view_partner_form_ddt res.partner.form.ddt res.partner xpath Inherits base.view_partner_form
view_transportation_method_form stock.picking.transportation_method.form stock.picking.transportation_method form New
view_transportation_method_tree stock.picking.transportation_method.tree stock.picking.transportation_method tree New
view_transportation_reason_form stock.picking.transportation_reason.form stock.picking.transportation_reason form New
view_transportation_reason_tree stock.picking.transportation_reason.tree stock.picking.transportation_reason tree New
Models touched (14)

New fields (5)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    args: 'stock.picking.carriage_condition', 'Carriage Condition'
  • goods_description_id Many2one → stock.picking.goods_description
    args: 'stock.picking.goods_description', 'Description of Goods'
  • parcels Integer
  • transportation_method_id Many2one → stock.picking.transportation_method
    args: 'stock.picking.transportation_method', 'Method of Transportation'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    args: 'stock.picking.transportation_reason', 'Reason for Transportation'
Public methods (1)
  • onchange_partner_id(self, cr, uid, ids, type, partner_id, date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, context=None)

New fields (1)
  • ddt_id Many2one → stock.picking.package.preparation
    args: 'stock.picking.package.preparation'
Public methods (1)
  • add_to_ddt(self)
    @api.multi

New fields (3)
  • date Date
    args: 'Date'
  • group Boolean
    default=True args: 'Group DDT by partner'
  • journal_id Many2one → account.journal
    required=True args: 'account.journal', 'Journal'
Public methods (2)
  • check_ddt_data(self, ddts)
  • create_invoice(self)
    @api.multi

New fields (1)
  • picking_ids Many2many → stock.picking
    default=_get_picking_ids args: 'stock.picking'
Public methods (1)
  • create_ddt(self)
    @api.multi

New fields (4)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    args: 'stock.picking.carriage_condition', 'Carriage Condition'
  • goods_description_id Many2one → stock.picking.goods_description
    args: 'stock.picking.goods_description', 'Description of Goods'
  • transportation_method_id Many2one → stock.picking.transportation_method
    args: 'stock.picking.transportation_method', 'Method of Transportation'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    args: 'stock.picking.transportation_reason', 'Reason for Transportation'
Public methods (0)

No public methods.

New fields (7)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    args: 'stock.picking.carriage_condition', 'Carriage Condition'
  • create_ddt Boolean
    args: 'Automatically create the DDT'
  • ddt_ids Many2many → stock.picking.package.preparation
    compute='_get_ddt_ids' string='Related DdTs' args: 'stock.picking.package.preparation'
  • goods_description_id Many2one → stock.picking.goods_description
    args: 'stock.picking.goods_description', 'Description of Goods'
  • parcels Integer
  • transportation_method_id Many2one → stock.picking.transportation_method
    args: 'stock.picking.transportation_method', 'Method of Transportation'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    args: 'stock.picking.transportation_reason', 'Reason for Transportation'
Public methods (3)
  • action_ship_create(self, cr, uid, ids, context=None)
  • action_view_ddt(self, cr, uid, ids, context=None)
  • onchange_partner_id(self, cr, uid, ids, partner_id, context=None)

New fields (5)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • name Char
    required=True
  • note Text
    string='Note'
  • restrict_pickings Boolean
    default=True help='Pickings already in other DDTs cannot be added to DDTs having this type'
  • sequence_id Many2one → ir.sequence
    required=True args: 'ir.sequence'
Public methods (0)

No public methods.

New fields (1)
  • ddt_ids Many2many → stock.picking.package.preparation
    column1='stock_picking_id' column2='stock_picking_package_preparation_id' comodel_name='stock.picking.package.preparation' copy=False relation='stock_picking_pack_prepare_rel' string='DdT'
Public methods (3)
  • create(self, values)
    @api.model
  • unlink(self)
    @api.multi
  • write(self, values)
    @api.multi

New fields (2)
  • name Char
    required=True string='Carriage Condition' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Description of Goods' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (14)
  • carriage_condition_id Many2one → stock.picking.carriage_condition
    args: 'stock.picking.carriage_condition', 'Carriage Condition'
  • carrier_id Many2one → res.partner
    string='Carrier' args: 'res.partner'
  • ddt_number Char
    copy=False string='DdT Number'
  • ddt_type_id Many2one → stock.ddt.type
    default=_default_ddt_type string='DdT Type' args: 'stock.ddt.type'
  • display_name Char
    compute='_compute_display_name' string='Name'
  • goods_description_id Many2one → stock.picking.goods_description
    args: 'stock.picking.goods_description', 'Description of Goods'
  • invoice_id Many2one → account.invoice
    copy=False readonly=True string='Invoice' args: 'account.invoice'
  • parcels Integer
  • partner_invoice_id Many2one → res.partner
    args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    args: 'res.partner'
  • transportation_method_id Many2one → stock.picking.transportation_method
    args: 'stock.picking.transportation_method', 'Method of Transportation'
  • transportation_reason_id Many2one → stock.picking.transportation_reason
    args: 'stock.picking.transportation_reason', 'Reason for Transportation'
  • volume Float
    args: 'Volume'
  • weight_manual Float
    help='Fill this field with the value you want to be used as weight. Leave empty to let the system to compute it' string='Force Weight'
Public methods (5)
  • action_put_in_pack(self)
    @api.multi
  • create_invoice(self)
    @api.multi
  • on_change_partner(self)
    @api.onchange('partner_id', 'ddt_type_id')
  • set_done(self)
    @api.multi
  • unlink(self)
    @api.multi

New fields (1)
  • invoiceable Selection
    default='invoiceable' args: [('none', 'None'), ('invoiceable', 'Invoiceable')]
Public methods (1)
  • get_move_data(self)
    @api.multi

New fields (2)
  • name Char
    required=True string='Method of Transportation' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True string='Reason For Transportation' translate=True
  • note Text
    string='Note' translate=True
Public methods (0)

No public methods.