40 lines
1.5 KiB
Python
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
|