52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from odoo import api, fields, models
|
||
|
import logging
|
||
|
|
||
|
_logger = logging.getLogger(__name__)
|
||
|
|
||
|
|
||
|
class StockMove(models.Model):
|
||
|
_inherit = "stock.move"
|
||
|
_description = "Stock Move Ewaybill"
|
||
|
|
||
|
l10n_in_ewaybill_id = fields.One2many(related="picking_id.l10n_in_ewaybill_id")
|
||
|
company_currency_id = fields.Many2one(related='company_id.currency_id')
|
||
|
|
||
|
# Need to store values because we send it to the ewaybill and we need to keep the same value
|
||
|
ewaybill_price_unit = fields.Monetary(
|
||
|
compute='_compute_l10n_in_ewaybill_price_unit',
|
||
|
currency_field='company_currency_id',
|
||
|
store=True,
|
||
|
readonly=False
|
||
|
)
|
||
|
ewaybill_tax_ids = fields.Many2many(
|
||
|
comodel_name='account.tax',
|
||
|
string="Taxes",
|
||
|
compute='_compute_l10n_in_tax_ids',
|
||
|
store=True,
|
||
|
readonly=False
|
||
|
)
|
||
|
|
||
|
@api.depends('l10n_in_ewaybill_id')
|
||
|
def _compute_l10n_in_ewaybill_price_unit(self):
|
||
|
for line in self:
|
||
|
if line.l10n_in_ewaybill_id.state == 'pending' and line.picking_id.country_code == 'IN':
|
||
|
line.ewaybill_price_unit = line._l10n_in_get_product_price_unit()
|
||
|
|
||
|
@api.depends('l10n_in_ewaybill_id.fiscal_position_id')
|
||
|
def _compute_l10n_in_tax_ids(self):
|
||
|
for line in self:
|
||
|
if line.l10n_in_ewaybill_id.state == 'pending' and line.picking_id.country_code == 'IN':
|
||
|
taxes_details = line._l10n_in_get_product_tax()
|
||
|
taxes = taxes_details['taxes']
|
||
|
if taxes_details['is_from_order']:
|
||
|
# Don't map taxes if they are from sale/purchase order
|
||
|
line.ewaybill_tax_ids = taxes
|
||
|
else:
|
||
|
if fiscal_position := line.l10n_in_ewaybill_id.fiscal_position_id:
|
||
|
taxes = fiscal_position.map_tax(taxes)
|
||
|
line.ewaybill_tax_ids = taxes.filtered_domain(
|
||
|
self.env['account.tax']._check_company_domain(self.company_id)
|
||
|
)
|