from odoo.exceptions import UserError from odoo.tools.float_utils import float_round from odoo import models, fields, api, _ import logging _logger = logging.getLogger(__name__) class ReturnPicking(models.TransientModel): _inherit = 'stock.return.picking' def create_returns(self): if ( self.env.user.id not in [12, 10, 2, 15, 22] and 'BU/IN' in self.picking_id.name and 'PO/' in self.picking_id.origin and self.picking_id.picking_type_code == 'incoming' ): raise UserError(_("Anda tidak memiliki akses untuk melakukan Retur Barang")) # super harus manggil class ini sendiri res = super(ReturnPicking, self).create_returns() return res class ReturnPickingLine(models.TransientModel): _inherit = 'stock.return.picking.line' @api.onchange('quantity') def _onchange_quantity(self): for rec in self: if rec.move_id and rec.quantity > 0: qty_done = rec.move_id.quantity_done if qty_done == 0: qty_done = rec.move_id.product_uom_qty if rec.quantity > qty_done: raise UserError( _("Quantity yang Anda masukkan (%.2f) tidak boleh melebihi quantity done yaitu: %.2f untuk produk %s") % (rec.quantity, qty_done, rec.product_id.name) )