from odoo import fields, models, api, _ from odoo.exceptions import AccessError, UserError, ValidationError from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT import logging _logger = logging.getLogger(__name__) class SalesOrderFullfillmentV2(models.Model): _name = 'sales.order.fulfillment.v2' sale_order_id = fields.Many2one('sale.order', string='Sale Order') sale_order_line_id = fields.Many2one('sale.order.line', string='Sale Order Line') picking_id = fields.Many2one('stock.picking', string='Picking') move_id = fields.Many2one('stock.move', string='Move') move_line_id = fields.Many2one('stock.move.line', string='Move Line') product_id = fields.Many2one('product.product', string='Product') so_qty = fields.Float(string='SO Qty') reserved_stock_qty = fields.Float(string='Reserved Stock Qty', help='Sudah ter-reserved oleh sistem') delivered_qty = fields.Float(string='Delivered Qty', help='Yang sudah terkirim ke Customer') po_ids = fields.Many2many('purchase.order', string='Purchase Order', help='PO yang dibuat, bisa lebih dari satu') po_qty = fields.Float(string='PO Qty', help='Totalan dari semua PO Outstanding') received_qty = fields.Float(string='Received Qty', help='Totalan dari barang yang diterima dari PO tsb') purchaser = fields.Char(string='Purchaser') class SalesOrderFullfillment(models.Model): _name = 'sales.order.fullfillment' sales_order_id = fields.Many2one('sale.order', string='Sale Order') product_id = fields.Many2one('product.product', string='Product') reserved_from = fields.Char(string='Reserved From', copy=False) qty_fullfillment = fields.Float(string='Qty') user_id = fields.Many2one('res.users', string='Responsible', compute='get_user_id') def get_user_id(self): for rec in self: po = self.env['purchase.order'].search([('name', '=', rec.reserved_from)], limit=1) if po: rec.user_id = po.user_id.id else: rec.user_id = False