from odoo import fields, models, api class StockMove(models.Model): _inherit = 'stock.move' line_no = fields.Integer('No', default=0) def _prepare_account_move_line_from_mr(self, po_line, qty, move=False): po_line.ensure_one() aml_currency = move and move.currency_id or po_line.currency_id date = move and move.date or fields.Date.today() res = { 'display_type': po_line.display_type, 'sequence': po_line.sequence, 'name': '%s: %s' % (po_line.order_id.name, po_line.name), 'product_id': po_line.product_id.id, 'product_uom_id': po_line.product_uom.id, 'quantity': qty, 'price_unit': po_line.currency_id._convert(po_line.price_unit, aml_currency, po_line.company_id, date, round=False), 'tax_ids': [(6, 0, po_line.taxes_id.ids)], 'analytic_account_id': po_line.account_analytic_id.id, 'analytic_tag_ids': [(6, 0, po_line.analytic_tag_ids.ids)], 'purchase_line_id': po_line.id, } if not move: return res if self.currency_id == move.company_id.currency_id: currency = False else: currency = move.currency_id res.update({ 'move_id': move.id, 'currency_id': currency and currency.id or False, 'date_maturity': move.invoice_date_due, 'partner_id': move.partner_id.id, }) return res def _create_account_move_line(self, credit_account_id, debit_account_id, journal_id, qty, description, svl_id, cost): self.ensure_one() if self.picking_id.is_internal_use: AccountMove = self.env['account.move'].with_context(default_journal_id=journal_id) # 538 is static id for "Biaya Umum Lain-Lain" on account.account model # 440 is static id for "PPN Keluaran" on account.account model debit_account_id = self.picking_id.account_id.id if self.picking_id.account_id.id else 538 tax = cost * (11 / 100) move_lines = self._prepare_account_move_line(qty, cost, credit_account_id, debit_account_id, description) move_lines += self._prepare_account_move_line(qty, tax, 440, debit_account_id, description) if move_lines: date = self._context.get('force_period_date', fields.Date.context_today(self)) new_account_move = AccountMove.sudo().create({ 'journal_id': journal_id, 'line_ids': move_lines, 'date': date, 'ref': description, 'stock_move_id': self.id, 'stock_valuation_layer_ids': [(6, None, [svl_id])], 'move_type': 'entry', }) new_account_move._post() return True return super(StockMove, self)._create_account_move_line(credit_account_id, debit_account_id, journal_id, qty, description, svl_id, cost) class StockMoveLine(models.Model): _inherit = 'stock.move.line' line_no = fields.Integer('No', default=0) manufacture = fields.Many2one('x_manufactures', string="Brands", related="product_id.x_manufacture", store=True)