Odoo18-Base/addons/l10n_in_ewaybill_stock/models/stock_picking.py
2025-01-06 10:57:38 +07:00

40 lines
1.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, fields, models
from odoo.exceptions import UserError
class StockPicking(models.Model):
_inherit = "stock.picking"
l10n_in_ewaybill_id = fields.One2many('l10n.in.ewaybill', 'picking_id', string='Ewaybill')
def _get_l10n_in_ewaybill_form_action(self):
return self.env.ref('l10n_in_ewaybill_stock.l10n_in_ewaybill_form_action')._get_action_dict()
def action_l10n_in_ewaybill_create(self):
self.ensure_one()
if (
product_with_no_hsn := self.move_ids.mapped('product_id').filtered(
lambda product: not product.l10n_in_hsn_code
)
):
raise UserError(_("Please set HSN code in below products: \n%s", '\n'.join(
[product.name for product in product_with_no_hsn]
)))
if self.l10n_in_ewaybill_id:
raise UserError(_("Ewaybill already created for this picking."))
action = self._get_l10n_in_ewaybill_form_action()
ewaybill = self.env['l10n.in.ewaybill'].create({
'picking_id': self.id,
'type_id': self.env.ref('l10n_in_ewaybill_stock.type_delivery_challan_sub_others').id,
})
action['res_id'] = ewaybill.id
return action
def action_open_l10n_in_ewaybill(self):
self.ensure_one()
action = self._get_l10n_in_ewaybill_form_action()
action['res_id'] = self.l10n_in_ewaybill_id.id
return action