- docker-compose.yml: odoo:17.0 (port 8069) + postgres:16 (internal, no publish) - Addon saat_invest: model saat.saham / saat.transaksi / saat.portofolio - P/L computed (realized FIFO, unrealized dari harga_sekarang) - action_recalculate() endpoint untuk Flutter - seed 5 saham IDX (BBRI, TLKM, BBCA, ASII, PTBA) - JSON-RPC end-to-end terverifikasi: create beli/jual -> recalculate -> portfolio (avg_cost 4525, realized 65000, unrealized 220000, nilai 3840000) - PLAN.md: rancangan disetujui Bozz - Login Odoo admin/admin (ganti password master di .env, jangan commit)
63 lines
2.5 KiB
XML
63 lines
2.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="view_saat_portofolio_list" model="ir.ui.view">
|
|
<field name="name">saat.portofolio.list</field>
|
|
<field name="model">saat.portofolio</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Portofolio Saham" create="false" delete="false">
|
|
<field name="saham_id"/>
|
|
<field name="sisa_lembar"/>
|
|
<field name="avg_cost"/>
|
|
<field name="harga_sekarang"/>
|
|
<field name="nilai_sekarang"/>
|
|
<field name="realized_pl" widget="monetary"/>
|
|
<field name="unrealized_pl" widget="monetary"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_saat_portofolio_form" model="ir.ui.view">
|
|
<field name="name">saat.portofolio.form</field>
|
|
<field name="model">saat.portofolio</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Portofolio">
|
|
<sheet>
|
|
<group>
|
|
<field name="saham_id" readonly="1"/>
|
|
<field name="harga_sekarang"/>
|
|
</group>
|
|
<group string="Posisi">
|
|
<group>
|
|
<field name="total_beli_lembar"/>
|
|
<field name="total_beli_biaya"/>
|
|
<field name="total_jual_lembar"/>
|
|
<field name="total_jual_hasil"/>
|
|
</group>
|
|
<group>
|
|
<field name="sisa_lembar"/>
|
|
<field name="avg_cost"/>
|
|
<field name="nilai_sekarang"/>
|
|
<field name="realized_pl"/>
|
|
<field name="unrealized_pl"/>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_saat_portofolio" model="ir.actions.act_window">
|
|
<field name="name">Portofolio</field>
|
|
<field name="res_model">saat.portofolio</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
Klik <b>Rekalkulasi</b> (menu Form) untuk memperbarui posisi dari transaksi.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_saat_portofolio" name="Portofolio" parent="menu_saat_root"
|
|
action="action_saat_portofolio" sequence="30"/>
|
|
</odoo>
|