Public release from ruodoo-project: 19.0 - 2026-05-10 21:19:01 UTC

This commit is contained in:
CI Publish Bot
2026-05-10 21:19:11 +00:00
commit cbf9e6e6d6
1213 changed files with 183945 additions and 0 deletions

View File

@ -0,0 +1,82 @@
from odoo import models, fields, api
class OrderPrepaidLine(models.Model):
_name = 'order.prepaid.line'
_inherit = "analytic.mixin"
_description = 'Order Prepaid line'
product_id = fields.Many2one(comodel_name='product.product', string='Продукт')
name = fields.Char(string='Метка', compute='_compute_name')
label = fields.Char(string='Метка')
account_id = fields.Many2one(comodel_name='account.account', string='Счёт')
quantity = fields.Float(string='Количество', default=1, digits='Product Unit of Measure')
product_uom_id = fields.Many2one(comodel_name='uom.uom', string='Ед. измерения', compute='_compute_product_uom_id')
price_unit = fields.Float(string='Цена', digits='Product Price', default=1)
tax_ids = fields.Many2many(comodel_name='account.tax', string="Налоги")
prepaid_id = fields.Many2one(comodel_name='order.prepaid', string='Авансовый счет')
sale_ids = fields.Many2many(comodel_name='sale.order.line', string='Связные строки заказа')
analytic_distribution = fields.Json(string='Аналитическое распределение')
price_subtotal = fields.Monetary(
string='Subtotal',
compute='_compute_totals', store=True,
currency_field='currency_id',
)
price_total = fields.Monetary(
string='Total',
compute='_compute_totals', store=True,
currency_field='currency_id',
)
currency_id = fields.Many2one(
comodel_name='res.currency',
string='Currency',
compute='_compute_currency_id', store=True, readonly=False, precompute=True,
required=True,
)
@api.depends('prepaid_id.currency_id')
def _compute_currency_id(self):
for line in self:
line.currency_id = line.prepaid_id.currency_id
@api.depends('quantity', 'price_unit', 'tax_ids', 'currency_id')
def _compute_totals(self):
for line in self:
subtotal = line.quantity * line.price_unit
if line.tax_ids:
taxes_res = line.tax_ids.compute_all(
line.price_unit,
quantity=line.quantity,
currency=line.currency_id,
product=line.product_id,
partner=self.prepaid_id.partner_id,
is_refund=False,
)
line.price_subtotal = taxes_res['total_excluded']
line.price_total = taxes_res['total_included']
else:
line.price_total = line.price_subtotal = subtotal
@api.depends('product_id')
def _compute_product_uom_id(self):
for line in self:
if line.product_id:
line.product_uom_id = line.product_id.uom_id
else:
line.product_uom_id = False
@api.depends('product_id')
def _compute_name(self):
for line in self:
if line.product_id:
line.name = line.product_id.name
else:
line.name = ''