I have three models.
model 1 populasi.unit
id | name | lokasi_unit |
1 | mobil_1 | I want to put a specific lokasi.name value in here. where populasi_unit.id = unit_mobilisasi.unit_mobilisasi_id |
model 2 unit.mobilisasi
id | unit_mobilisasi_id | lokasi_mobilisasi_id | mobilisasi_date |
1 | fields.Many2one('populasi.unit' string='Kode Unit') | fields.Many2one('lokasi', string='Lokasi") | fields.Date(string="Mobilisation Date") |
model 3 lokasi
id | name |
1 | Singapore |
2 | Belgia |
3 | Canada |
this is my model
#Inside unit_populasi.py
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models
class PopulasiUnit(models.Model):
_name = 'populasi.unit'
_description = 'Populasi Unit'
name = fields.Char(string='Kode Unit', required=True)
kode_aktiva = fields.Char(string='Kode Aktiva')
type_equipment = fields.Many2one('unit.type', string='Tipe Equipment')
unit_model = fields.Many2one('unit.model', string='Unit Model')
nama_aset = fields.Char(string='Nama Aset')
plat_nomor = fields.Char(string='Plat Nomor')
sn_unit = fields.Char(string='Nomor Rangka')
sn_engine = fields.Char(string='Nomor Mesin')
tahun_pembelian = fields.Char(string='Tahun Pembelian')
spesifikasi = fields.Text(string='Spesifikasi')
pengguna_id = fields.Many2one('hr.employee', string='Pengguna')
kondisi_unit = fields.Many2one('unit.kondisi', string='Kondisi Unit')
milik = fields.Many2one('res.company', string='Milik')
keterangan = fields.Text(string='Keterangan')
unit_image = fields.Image(string='Gambar unit')
odometer = fields.Integer(string='Odometer')
hourmeter = fields.Integer(string='Hour Meter')
fuel = fields.Integer(string='BBM')
mobilisasi_line = fields.One2many('unit.mobilisasi', 'unit_mobilisasi_id', string='Lokasi Mobilisasi', ondelete='cascade')
operasional_line = fields.One2many('unit.operasional', 'unit_operasional_id', string='Operasional Unit', ondelete='cascade')
lokasi_unit = fields.Many2one('unit.mobilisasi', string='Lokasi Unit')
@api.model
def _get_lokasi_mobilisasi(self):
self._cr.execute("""
CREATE OR REPLACE VIEW crm_partner_report_assign AS (
SELECT dd.name
FROM populasi_unit aa
JOIN unit_mobilisasi bb
ON aa.id = bb.unit_mobilisasi_id
JOIN (SELECT MAX(tanggal_mobilisasi) AS MaxDate
FROM unit_mobilisasi
GROUP BY unit_mobilisasi_id) cc
ON bb.tanggal_mobilisasi = cc.MaxDate AND unit_mobilisasi_id = '1'
JOIN lokasi dd
ON bb.lokasi_mobilisasi_id = dd.id
)""")
#inside unit_mobilisasi.py
from odoo import api, fields, models
class UnitMobilisasi(models.Model):
_name = "unit.mobilisasi"
_description = "Mobilisasi Unit"
_order = 'tanggal_mobilisasi desc'
unit_mobilisasi_id = fields.Many2one('populasi.unit', string='Kode Unit')
tanggal_mobilisasi = fields.Date(string='Tanggal Mobilisasi')
lokasi_awal_id = fields.Many2one('lokasi', string='Lokasi Awal')
lokasi_mobilisasi_id = fields.Many2one('lokasi', string='Lokasi Kirim')
image_mobilisasi = fields.Image(string="Gambar Mobilisasi")
unit_image = fields.Image(string='Gambar unit')
#inside lokasi.py
from odoo import api, fields, models
class Lokasi(models.Model):
_name = 'lokasi'
_description = 'Lokasi'
name = fields.Char(string='Lokasi')