in mrp_prod_custom.py :
class MRPProduction(models.Model):
_inherit = "mrp.production"
_order = "is_priority_search desc"
sale_id = fields.Many2one('sale.order', string="SO #", compute="_get_sale_id", store=True)
sale_id_unlink = fields.Many2one('sale.order', string="SO #", related="sale_id")
# Update from source if sale_id is NULL. For not auto generated MO.
@api.depends('sale_line_id', 'origin')
def _get_sale_id(self):
for result in self:
result.sale_id = None
if result.sale_line_id:
result.sale_id = result.sale_line_id.order_id
elif result.origin:
sale_id = self.env['sale.order'].sudo().search([('name', '=', result.origin)])
result.sale_id = sale_id[0] if len(sale_id) else None
if result.sale_id and result.sale_id.commitment_date:
# once get sale_line_id, udpate date_deadline from commitment_date in sale_order
result.date_deadline = result.sale_id.commitment_date - timedelta(days=2)
result.date_deadline_actual = result.sale_id.commitment_date
sale_mrp_production_ids = fields.One2many(comodel_name='mrp.production', string="SPK List", related="sale_id.mrp_production_ids")
sale_date_order = fields.Datetime(string="Order Date", related="sale_id.date_order")
sale_date_order_actual = fields.Datetime(string="Order Date", related="sale_id.date_order_actual")
so there's in acc_move_custom.xml:
record model="ir.ui.view" id="flexypack_account_form">
field name="name">flexypack.account.form field name="model">account.move
field name="inherit_id" ref="account.view_move_form"/>
field name="arch" type="xml">
data>
xpath expr="//field[@name='ref']" position="after">
field name="is_sales_document" invisible="1"/>
field name="paid_all_approval_approved" invisible="1"/>
field name="is_claimed_for_sale_id" invisible="1"/>
field name="is_referral_reward"/>
field name="production_ids" />
field name="production_names" />
!-- -->
field name="extra"/>
/xpath>
xpath expr="//page[@id='invoice_tab']" position="before">
field name="return_sale_id" invisible="1"/>
page id="sales_out_invoice_line_ids_tab" string="Return Invoice Lines" attrs="{'invisible': ['|', ('type', '!=', 'out_refund'), ('return_sale_id', '=', False)]}"> field name="sales_out_invoice_line_ids">
tree string="Journal Items" default_order="sequence, date desc, move_name desc, id">
!-- Displayed fields -->
field name="sequence" widget="handle"/>
field name="move_name" invisible="1"/>
field name="product_id" optional="show" domain="['|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]"/> /tree>
/field>
/page>
/xpath>
xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
field name="production_id" string="No SPK"/>
field name="production_ids" />
field name="production_names" />
/xpath>
in this acc_move_custom.py:
class AccountMove(models.Model):
_inherit = 'account.move'
notes = fields.Text(string='Notes')
production_ids = fields.One2many(string='Manufacturing Orders', comodel_name='mrp.production',related='sale_id.mrp_production_ids')
class AccountMoveLineCustom(models.Model):
_inherit = 'account.move.line'
brand_id = fields.Many2one(comodel_name="partner.brand", string="Brand")
variant_id = fields.Many2one(comodel_name="res.partner.brand.variant", string="Variant")
order_lines = fields.Many2many('sale.order.line','sale_order_line_invoice_rel','invoice_line_id', 'order_line_id', string='Order Lines', copy=False)
acc_move_id = fields.Many2one('account.move')
mrp_prod_ids = fields.Many2one('mrp.production')
production_ids = fields.Char(string='Manufacturing Orders',related='mrp_prod_ids.name')
# production_ids = fields.Char(string='Manufacturing Orders',related='mrp_prod_ids.sale_mrp_production_ids.name')
stock_move_id = fields.Many2one("stock.move", string="Stock Move", domain="[('picking_id', '=', delivery_id)]")
production_id = fields.Many2one(related="stock_move_id.created_production_id", string="Nomor SPK")
fp_final_invoice_id = fields.Many2one('fp.final.invoice.line')
production_names = fields.Many2one('fp_final_invoice_id.production_id', string="Nomor SPK", store=True)
# @api.depends('fp_final_invoice_id')
# def _compute_production_id(self):
# for line in self:
# if line.fp_final_invoice_id:
# line.production_id = line.fp_final_invoice_id.production_id
# else:
# line.production_id = False
# production_ids = fields.One2many(string='Manufacturing Orders', comodel_name='mrp.production',
# related='sale_id.mrp_production_ids')
I
already tried to show the data of 'production_id', 'production_names',
and 'production_ids', in:
xpath expr="//field[@name='ref']" position="after">
it's show, but when I add in:
xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
I'm tried get 'name' field from mrp.production, but the data won't show, it's empty.