summaryrefslogtreecommitdiff
path: root/indoteknik_custom/views
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-07-28 15:09:55 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-07-28 15:09:55 +0700
commitd15ce4e186e2b77f01e8dfd03886298cc733d4c1 (patch)
tree1b32a4c29c4fcea85070fcecb5b77a7d55d30029 /indoteknik_custom/views
parentdeba962d7368a5c4e30441b5a640102608e3dde6 (diff)
parent36a53535dbdc5777266fd9276b4c557259dab6be (diff)
<hafid> merging odoo-backup
Diffstat (limited to 'indoteknik_custom/views')
-rw-r--r--indoteknik_custom/views/account_move.xml16
-rw-r--r--indoteknik_custom/views/approval_payment_term.xml94
-rw-r--r--indoteknik_custom/views/customer_commision.xml12
-rw-r--r--indoteknik_custom/views/ir_sequence.xml70
-rw-r--r--indoteknik_custom/views/mail_template_invoice_reminder.xml51
-rw-r--r--indoteknik_custom/views/mrp_production.xml2
-rwxr-xr-xindoteknik_custom/views/purchase_order.xml35
-rw-r--r--indoteknik_custom/views/purchasing_job.xml12
-rw-r--r--indoteknik_custom/views/refund_sale_order.xml199
-rw-r--r--indoteknik_custom/views/res_partner.xml31
-rwxr-xr-xindoteknik_custom/views/sale_order.xml82
-rw-r--r--indoteknik_custom/views/sale_order_delay.xml44
-rw-r--r--indoteknik_custom/views/stock_picking.xml38
-rw-r--r--indoteknik_custom/views/tukar_guling.xml128
-rw-r--r--indoteknik_custom/views/tukar_guling_po.xml127
-rw-r--r--indoteknik_custom/views/tukar_guling_return_views.xml20
-rw-r--r--indoteknik_custom/views/user_pengajuan_tempo.xml2
-rwxr-xr-xindoteknik_custom/views/x_manufactures.xml40
18 files changed, 974 insertions, 29 deletions
diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml
index 46737a40..9b1c791b 100644
--- a/indoteknik_custom/views/account_move.xml
+++ b/indoteknik_custom/views/account_move.xml
@@ -6,6 +6,12 @@
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
+ <xpath expr="//div[@name='journal_div']" position="after">
+ <field name="reklas_misc_id"
+ string="Journal Entries Reklas"
+ attrs="{'invisible': [('move_type', '!=', 'in_invoice')]}"
+ readonly="1"/>
+ </xpath>
<button name="action_register_payment" position="after">
<button name="indoteknik_custom.action_view_invoice_reklas" string="Reklas"
type="action" class="btn-primary" attrs="{'invisible': [('state', '!=', 'posted')]}"/>
@@ -27,10 +33,16 @@
</field>
<field name="invoice_date" position="after">
<field name="sale_id" readonly="1" attrs="{'invisible': [('move_type', '!=', 'out_invoice')]}"/>
- <field name="purchase_order_id" readonly="1" attrs="{'invisible': [('move_type', '!=', 'in_invoice')]}"/>
+ <!-- <field name="purchase_order_id" readonly="1" attrs="{'invisible': [('move_type', '!=', 'in_invoice')]}"/> -->
</field>
<field name="ref" position="after">
<field name="sale_id" readonly="1" attrs="{'invisible': [('move_type', '!=', 'entry')]}"/>
+ <!-- <field name="refund_so_links" readonly="1" widget="html" attrs="{'invisible': ['|', ('move_type', '!=', 'entry'), ('has_refund_so', '=', False)]}"/>
+ <field name="has_refund_so" invisible="1"/> -->
+ </field>
+ <field name="reklas_misc_id" position="after">
+ <field name="purchase_order_id" context="{'form_view_ref': 'purchase.purchase_order_form'}" options="{'no_create': True}"/>
+ <field name="bill_id" readonly="1"/>
</field>
<field name="partner_shipping_id" position="before">
<field name="real_invoice_id" readonly="1" attrs="{'invisible': [('move_type', '!=', 'out_invoice')]}"/>
@@ -52,6 +64,7 @@
<field name="due_extension"/>
<field name="counter"/>
<field name="nomor_kwitansi"/>
+ <field name="down_payment"/>
</field>
<field name="to_check" position="after">
<field name="already_paid"/>
@@ -59,6 +72,7 @@
<field name="so_shipping_covered_by"/>
<field name="so_delivery_amt"/>
<field name="flag_delivery_amt"/>
+ <field name="length_of_payment"/>
</field>
<field name="amount_untaxed" position="after">
<field name="other_subtotal" invisible="1"/>
diff --git a/indoteknik_custom/views/approval_payment_term.xml b/indoteknik_custom/views/approval_payment_term.xml
new file mode 100644
index 00000000..cc9db914
--- /dev/null
+++ b/indoteknik_custom/views/approval_payment_term.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <record id="approval_payment_term_tree" model="ir.ui.view">
+ <field name="name">approval.payment.term.tree</field>
+ <field name="model">approval.payment.term</field>
+ <field name="arch" type="xml">
+ <tree default_order="create_date desc">
+ <field name="number"/>
+ <field name="partner_id"/>
+ <field name="parent_id"/>
+ <field name="property_payment_term_id"/>
+ <field name="create_date" optional="hide"/>
+ <field name="approve_date" optional="hide"/>
+ <field name="approve_sales_manager" optional="hide"/>
+ <field name="approve_finance" optional="hide"/>
+ <field name="approve_leader" optional="hide"/>
+ <field name="create_uid" optional="hide"/>
+ <field name="sale_order_ids" optional="hide" widget="many2many_tags"/>
+ <field name="total" optional="hide"/>
+ <field name="grand_total" optional="hide"/>
+ <field name="state" widget="badge" decoration-danger="state == 'rejected'"
+ decoration-success="state == 'approved'"
+ decoration-info="state in ['waiting_approval_sales_manager', 'waiting_approval_finance', 'waiting_approval_leader']"/>
+ <field name="change_log_688" optional="hide"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="approval_payment_term_form" model="ir.ui.view">
+ <field name="name">approval.payment.term.form</field>
+ <field name="model">approval.payment.term</field>
+ <field name="arch" type="xml">
+ <form>
+ <header>
+ <button name="button_approve"
+ string="Approve"
+ type="object"
+ attrs="{'invisible': [('approve_leader', '=', True)]}"
+ />
+ <button name="button_reject"
+ string="Reject"
+ type="object"
+ attrs="{'invisible': [('approve_leader', '=', True)]}"
+ />
+ <field name="state" widget="statusbar"
+ statusbar_visible="waiting_approval,approved,rejected"
+ statusbar_colors='{"rejected":"red"}'/>
+ </header>
+ <sheet string="Approval Payment Term">
+ <group>
+ <group>
+ <field name="number" readonly="1"/>
+ <field name="partner_id"/>
+ <field name="parent_id" readonly="1"/>
+ <field name="blocking_stage" attrs="{'readonly': ['|', ('number', '=', False), ('state', 'in', ['approved','rejected'])]}"/>
+ <field name="warning_stage" attrs="{'readonly': ['|', ('number', '=', False), ('state', 'in', ['approved','rejected'])]}"/>
+ <field name="property_payment_term_id" attrs="{'readonly': ['|', ('number', '=', False), ('state', 'in', ['approved','rejected'])]}"/>
+ <field name="active_limit" attrs="{'readonly': ['|', ('number', '=', False), ('state', 'in', ['approved','rejected'])]}"/>
+ </group>
+ <group>
+ <field name="reason"/>
+ <field name="reason_reject" attrs="{'invisible': [('state', '!=', 'rejected')]}"/>
+ <field name="approve_date" readonly="1"/>
+ <field name="approve_sales_manager" readonly="1"/>
+ <field name="approve_finance" readonly="1"/>
+ <field name="approve_leader" readonly="1"/>
+ <field name="sale_order_ids" widget="many2many_tags"/>
+ <field name="total"/>
+ <field name="grand_total"/>
+ </group>
+ </group>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+
+ <record id="approval_payment_term_action" model="ir.actions.act_window">
+ <field name="name">Approval Payment Term</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">approval.payment.term</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem id="menu_approval_payment_term" name="Approval Payment Term"
+ parent="account.menu_finance_receivables"
+ action="approval_payment_term_action"
+ sequence="100"
+ />
+
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/customer_commision.xml b/indoteknik_custom/views/customer_commision.xml
index 37df16ff..514e6284 100644
--- a/indoteknik_custom/views/customer_commision.xml
+++ b/indoteknik_custom/views/customer_commision.xml
@@ -70,7 +70,7 @@
statusbar_visible="draft,pengajuan1,pengajuan2,pengajuan3,pengajuan4,approved"
statusbar_colors='{"reject":"red"}'/>
</header>
- <sheet string="Customer Commision">
+ <sheet string="Customer Benefits">
<div class="oe_button_box" name="button_box"/>
<group>
<group>
@@ -81,6 +81,9 @@
<field name="commision_percent"/>
<field name="commision_amt"/>
<field name="commision_amt_text"/>
+ <field name="cashback" attrs="{'invisible': [('commision_type', 'not in', ['cashback'])]}"/>
+ <field name="total_commision" attrs="{'invisible': [('commision_type', 'not in', ['cashback'])]}"/>
+ <field name="total_cashback_text" attrs="{'invisible': [('commision_type', 'not in', ['cashback'])]}"/>
<field name="grouped_so_number" readonly="1"/>
<field name="grouped_invoice_number" readonly="1"/>
<field name="approved_by" readonly="1"/>
@@ -100,6 +103,7 @@
<field name="notification" readonly="1"/>
<!-- <field name="status" readonly="1"/>-->
<field name="payment_status" readonly="1"/>
+ <field name="biaya_lain_lain"/>
<field name="total_dpp"/>
</group>
</group>
@@ -171,7 +175,7 @@
</record>
<record id="customer_commision_action" model="ir.actions.act_window">
- <field name="name">Customer Commision</field>
+ <field name="name">Customer Benefits</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">customer.commision</field>
<field name="search_view_id" ref="view_customer_commision_filter"/>
@@ -179,14 +183,14 @@
</record>
<menuitem id="menu_customer_commision_acct"
- name="Customer Commision"
+ name="Customer Benefits"
action="customer_commision_action"
parent="account.menu_finance_entries"
sequence="113"
/>
<menuitem id="menu_customer_commision_sales"
- name="Customer Commision"
+ name="Customer Benefits"
action="customer_commision_action"
parent="sale.product_menu_catalog"
sequence="101"
diff --git a/indoteknik_custom/views/ir_sequence.xml b/indoteknik_custom/views/ir_sequence.xml
index 97bf40bb..4915e4c5 100644
--- a/indoteknik_custom/views/ir_sequence.xml
+++ b/indoteknik_custom/views/ir_sequence.xml
@@ -131,7 +131,7 @@
<field name="number_increment">1</field>
</record>
- <record id="sequence_commision_customer" model="ir.sequence">
+ <!-- <record id="sequence_commision_customer" model="ir.sequence">
<field name="name">Customer Commision</field>
<field name="code">customer.commision</field>
<field name="active">TRUE</field>
@@ -139,6 +139,46 @@
<field name="padding">5</field>
<field name="number_next">1</field>
<field name="number_increment">1</field>
+ </record> -->
+
+ <record id="sequence_commision_cashback" model="ir.sequence">
+ <field name="name">Customer Commision Cashback</field>
+ <field name="code">customer.commision.cashback</field>
+ <field name="prefix">CB/%(year)s/</field>
+ <field name="padding">5</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ <field name="active">True</field>
+ </record>
+
+ <record id="sequence_approval_payment_term" model="ir.sequence">
+ <field name="name">Approval Payment Term</field>
+ <field name="code">approval.payment.term</field>
+ <field name="prefix">APT/%(year)s/</field>
+ <field name="padding">5</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ <field name="active">True</field>
+ </record>
+
+ <record id="sequence_commision_fee" model="ir.sequence">
+ <field name="name">Customer Commision Fee</field>
+ <field name="code">customer.commision.fee</field>
+ <field name="prefix">CC/%(year)s/</field>
+ <field name="padding">5</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ <field name="active">True</field>
+ </record>
+
+ <record id="sequence_commision_rebate" model="ir.sequence">
+ <field name="name">Customer Commision Rebate</field>
+ <field name="code">customer.commision.rebate</field>
+ <field name="prefix">RB/%(year)s/</field>
+ <field name="padding">5</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ <field name="active">True</field>
</record>
<record id="sequence_automatic_purchase" model="ir.sequence">
@@ -160,5 +200,33 @@
<field name="number_next">1</field>
<field name="number_increment">1</field>
</record>
+ <record id="seq_tukar_guling" model="ir.sequence">
+ <field name="name">Pengajuan Return SO</field>
+ <field name="code">tukar.guling</field>
+ <field name="active">TRUE</field>
+ <field name="prefix">CCM/%(year)s/%(month)s/</field>
+ <field name="padding">4</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ </record>
+ <record id="seq_tukar_guling_po" model="ir.sequence">
+ <field name="name">Pengajuan Return PO</field>
+ <field name="code">tukar.guling.po</field>
+ <field name="active">TRUE</field>
+ <field name="prefix">VCM/%(year)s/%(month)s/</field>
+ <field name="padding">4</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ </record>
+
+ <record id="seq_refund_sale_order" model="ir.sequence">
+ <field name="name">Refund Sale Order</field>
+ <field name="code">refund.sale.order</field>
+ <field name="prefix">RC/%(year)s/%(month)s/</field>
+ <field name="padding">4</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ <field name="active">True</field>
+ </record>
</data>
</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/mail_template_invoice_reminder.xml b/indoteknik_custom/views/mail_template_invoice_reminder.xml
new file mode 100644
index 00000000..21055eb0
--- /dev/null
+++ b/indoteknik_custom/views/mail_template_invoice_reminder.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="0">
+ <record id="mail_template_invoice_due_reminder" model="mail.template">
+ <field name="name">Invoice Reminder: Due Date Notification</field>
+ <field name="model_id" ref="account.model_account_move"/>
+ <field name="subject">Reminder Invoice Due - ${object.name}</field>
+ <field name="email_from">finance@indoteknik.co.id</field>
+ <field name="email_to">andrifebriyadiputra@gmail.com</field>
+ <field name="body_html" type="html">
+ <div>
+ <p><b>Dear ${object.name},</b></p>
+
+ <p>Berikut adalah daftar invoice Anda yang mendekati atau telah jatuh tempo:</p>
+
+ <table border="1" cellpadding="4" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 12px">
+ <thead>
+ <tr style="background-color: #f2f2f2;" align="left">
+ <th>Invoice Number</th>
+ <th>Tanggal Invoice</th>
+ <th>Jatuh Tempo</th>
+ <th>Sisa Hari</th>
+ <th>Total</th>
+ <th>Referensi</th>
+ </tr>
+ </thead>
+ <tbody>
+ </tbody>
+ </table>
+
+ <p>Mohon bantuan dan kerjasamanya agar tetap bisa bekerjasama dengan baik</p>
+ <p>Terima Kasih.</p>
+ <br/>
+ <br/>
+ <p><b>Best Regards,
+ <br/>
+ <br/>
+ Widya R.<br/>
+ Dept. Finance<br/>
+ PT. INDOTEKNIK DOTCOM GEMILANG<br/>
+ <img src="https://erp.indoteknik.com/api/image/ir.attachment/datas/2135765" alt="Indoteknik" style="max-width: 18%; height: auto;"></img><br/>
+ <a href="https://wa.me/6285716970374" target="_blank">+62-857-1697-0374</a> |
+ <a href="mailto:finance@indoteknik.co.id">finance@indoteknik.co.id</a>
+ </b></p>
+
+ </div>
+ </field>
+ <field name="auto_delete" eval="True"/>
+ </record>
+ </data>
+</odoo>
diff --git a/indoteknik_custom/views/mrp_production.xml b/indoteknik_custom/views/mrp_production.xml
index 3de52a08..5057415f 100644
--- a/indoteknik_custom/views/mrp_production.xml
+++ b/indoteknik_custom/views/mrp_production.xml
@@ -11,7 +11,7 @@
<field name="bom_id" position="after">
<field name="desc"/>
<field name="sale_order"/>
- <field name="is_po"/>
+ <field name="is_po" readonly="1"/>
</field>
<xpath expr="//form/sheet/notebook/page/field[@name='move_raw_ids']/tree/field[@name='product_uom_qty']" position="before">
<field name="vendor_id"/>
diff --git a/indoteknik_custom/views/purchase_order.xml b/indoteknik_custom/views/purchase_order.xml
index 0fbbb5e7..ff223125 100755
--- a/indoteknik_custom/views/purchase_order.xml
+++ b/indoteknik_custom/views/purchase_order.xml
@@ -14,6 +14,29 @@
attrs="{'invisible': ['|', ('sale_order_id', '=', False), ('state', 'not in', ['draft'])]}"
/>
</div>
+ <xpath expr="//button[@name='action_view_invoice']" position="before">
+ <field name="is_cab_visible" invisible="1"/>
+ <button type="object"
+ name="action_view_journal_uangmuka"
+ class="oe_stat_button"
+ icon="fa-book"
+ attrs="{'invisible': [('is_cab_visible', '=', False)]}"
+ style="width: 200px;">
+ <field name="move_id" widget="statinfo" string="Journal Uang Muka"/>
+ <span class="o_stat_text">
+ <t t-esc="record.move_id.name"/>
+ </span>
+ </button>
+ <button type="object"
+ name="action_view_related_bu"
+ class="oe_stat_button"
+ icon="fa-truck"
+ style="width: 200px;"
+ attrs="{'invisible': [('state', 'in', ['draft', 'sent'])]}">
+ <field name="bu_related_count" widget="statinfo" string="BU Related"/>
+ </button>
+ <field name="picking_count" invisible="1"/>
+ </xpath>
<button id="draft_confirm" position="after">
<button name="po_approve"
string="Ask Approval"
@@ -64,7 +87,9 @@
<field name="payment_term_id"/>
<field name="total_cost_service" attrs="{'required': [('partner_id', 'in', [9688, 29712])]}"/>
<field name="total_delivery_amt" attrs="{'required': [('partner_id', 'in', [9688, 29712])]}"/>
- <field name="product_bom_id"/>
+ <field name="product_bom_id" attrs="{'invisible': [('product_bom_id', '=', None)]}"/>
+ <field name="manufacturing_id" attrs="{'invisible': [('product_bom_id', '=', None)]}"/>
+ <!-- <field name="move_id" domain="[('move_type','=','entry')]" context="{'form_view_ref': 'account.view_move_form'}" options="{'no_create': True}"/> -->
</field>
<field name="amount_total" position="after">
<field name="total_margin"/>
@@ -164,6 +189,13 @@
<field name="order_sales_match_line"/>
</page>
</xpath>
+ <xpath expr="//form/sheet/notebook/page[@name='purchase_delivery_invoice']" position="after">
+ <page string="Other Info" name="purchase_order_sales_matches_lines">
+ <group string="Return Doc">
+ <field name="vcm_id"/>
+ </group>
+ </page>
+ </xpath>
</field>
</record>
</data>
@@ -308,6 +340,7 @@
<field name="delivery_amt" optional="hide"/>
<field name="margin_deduct" optional="hide"/>
<field name="hold_outgoing_so" optional="hide"/>
+ <field name="bu_pick" optional="hide"/>
<field name="margin_so"/>
</tree>
</field>
diff --git a/indoteknik_custom/views/purchasing_job.xml b/indoteknik_custom/views/purchasing_job.xml
index bb1c7643..e3866d84 100644
--- a/indoteknik_custom/views/purchasing_job.xml
+++ b/indoteknik_custom/views/purchasing_job.xml
@@ -4,7 +4,7 @@
<field name="name">v.purchasing.job.tree</field>
<field name="model">v.purchasing.job</field>
<field name="arch" type="xml">
- <tree create="false" multi_edit="1">
+ <tree decoration-info="(check_pj == False)" create="false" multi_edit="1">
<field name="product_id"/>
<field name="vendor_id"/>
<field name="purchase_representative_id"/>
@@ -18,6 +18,15 @@
<field name="action"/>
<field name="note"/>
<field name="date_po"/>
+ <field name="so_number"/>
+ <field name="check_pj" invisible="1"/>
+ <button name="action_open_job_detail"
+ string="📄"
+ type="object"
+ icon="fa-file"
+ attrs="{'invisible': [('check_pj','=',True)]}"
+ context="{}"/>
+
</tree>
</field>
</record>
@@ -41,6 +50,7 @@
<field name="item_code"/>
<field name="product"/>
<field name="action"/>
+ <field name="so_number"/>
</group>
<group>
<field name="onhand"/>
diff --git a/indoteknik_custom/views/refund_sale_order.xml b/indoteknik_custom/views/refund_sale_order.xml
new file mode 100644
index 00000000..4f791722
--- /dev/null
+++ b/indoteknik_custom/views/refund_sale_order.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+ <!-- Tree View -->
+ <record id="view_refund_sale_order_tree" model="ir.ui.view">
+ <field name="name">refund.sale.order.tree</field>
+ <field name="model">refund.sale.order</field>
+ <field name="arch" type="xml">
+ <tree string="Refund Sales Orders">
+ <field name="name" readonly="1"/>
+ <field name="created_date" readonly="1"/>
+ <field name="partner_id" readonly="1"/>
+ <field name="sale_order_ids" widget="many2many_tags" readonly="1"/>
+ <field name="uang_masuk" readonly="1"/>
+ <field name="ongkir" readonly="1"/>
+ <field name="total_invoice" readonly="1"/>
+ <field name="amount_refund" readonly="1"/>
+ <field name="status"
+ decoration-info="status == 'draft'"
+ decoration-danger="status == 'reject'"
+ decoration-success="status == 'refund'"
+ decoration-warning="status == 'pengajuan1' or status == 'pengajuan2' or status == 'pengajuan3'"
+ widget="badge"
+ readonly="1"/>
+ <field name="status_payment"
+ decoration-info="status_payment == 'pending'"
+ decoration-danger="status_payment == 'reject'"
+ decoration-success="status_payment == 'done'"
+ widget="badge"
+ readonly="1"/>
+ <field name="refund_date" readonly="1"/>
+ <field name="amount_refund_text" readonly="1" optional="hide"/>
+ <field name="invoice_ids" readonly="1" optional="hide"/>
+ <field name="refund_type" readonly="1" optional="hide"/>
+ <field name="user_ids" readonly="1" optional="hide"/>
+ </tree>
+ </field>
+ </record>
+
+ <!-- Form View -->
+ <record id="view_refund_sale_order_form" model="ir.ui.view">
+ <field name="name">refund.sale.order.form</field>
+ <field name="model">refund.sale.order</field>
+ <field name="arch" type="xml">
+ <form string="Refund Sales Order">
+ <header>
+ <button name="action_ask_approval"
+ type="object"
+ string="Ask Approval"
+ attrs="{'invisible': [('status', '!=', 'draft')]}"/>
+
+ <button name="action_approve_flow"
+ type="object"
+ string="Approve"
+ class="oe_highlight"
+ attrs="{'invisible': [('status', 'in', ['refund', 'reject', 'draft'])]}"/>
+ <button name="action_trigger_cancel"
+ type="object"
+ string="Cancel"
+ attrs="{'invisible': ['|', ('status_payment', '!=', 'pending'), ('status', '=', 'reject')]}" />
+ <button name="action_confirm_refund"
+ type="object"
+ string="Confirm Refund"
+ class="btn-primary"
+ attrs="{'invisible': ['|', ('status', 'not in', ['pengajuan3','refund']), ('status_payment', '!=', 'pending')]}"/>
+ <button name="action_create_journal_refund"
+ string="Journal Refund"
+ type="object"
+ class="oe_highlight"
+ attrs="{'invisible': ['|', ('status', 'not in', ['pengajuan3','refund']), ('journal_refund_state', '=', 'posted')]}"/>
+
+ <field name="status"
+ widget="statusbar"
+ statusbar_visible="draft,pengajuan1,pengajuan2,pengajuan3,reject"
+ attrs="{'invisible': [('status', '!=', 'reject')]}" />
+
+ <field name="status"
+ widget="statusbar"
+ statusbar_visible="draft,pengajuan1,pengajuan2,pengajuan3,refund"
+ attrs="{'invisible': [('status', '=', 'reject')]}" />
+ </header>
+ <sheet>
+ <div class="oe_button_box" name="button_box">
+ <button name="action_open_journal_refund"
+ type="object"
+ class="oe_stat_button"
+ icon="fa-book"
+ width="250px"
+ attrs="{'invisible': ['|', ('journal_refund_move_id', '=', False), ('journal_refund_state', '!=', 'posted')]}">
+ <field name="journal_refund_move_id" string="Journal Refund" widget="statinfo"/>
+ </button>
+ </div>
+ <widget name="web_ribbon"
+ title="PAID"
+ bg_color="bg-success"
+ attrs="{'invisible': [('status_payment', '!=', 'done')]}"/>
+
+ <widget name="web_ribbon"
+ title="CANCEL"
+ bg_color="bg-danger"
+ attrs="{'invisible': [('status_payment', '!=', 'reject')]}"/>
+ <h1>
+ <field name="name" readonly="1"/>
+ </h1>
+ <group col="2">
+ <group>
+ <field name="is_locked" invisible="1"/>
+ <field name="status_payment" invisible="1"/>
+ <field name="journal_refund_state" invisible="1"/>
+
+ <field name="partner_id" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="sale_order_ids" widget="many2many_tags" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="invoice_ids" widget="many2many_tags" readonly="1"/>
+ <field name="invoice_names" widget="html" readonly="1"/>
+ <field name="so_names" widget="html" readonly="1"/>
+ <field name="advance_move_names" widget="html" readonly="1"/>
+ <field name="refund_type" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="note_refund" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ </group>
+ <group>
+ <field name="uang_masuk" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="total_invoice" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="ongkir" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="amount_refund" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="amount_refund_text" readonly="1"/>
+ <field name="uang_masuk_type" required="1" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="bukti_uang_masuk_image" widget="image"
+ attrs="{'invisible': [('uang_masuk_type', '=', 'pdf')], 'readonly': [('is_locked', '=', True)]}"/>
+ <field name="bukti_uang_masuk_pdf" widget="pdf_viewer"
+ attrs="{'invisible': [('uang_masuk_type', '=', 'image')], 'readonly': [('is_locked', '=', True)]}"/>
+ </group>
+ </group>
+
+ <notebook>
+ <page string="Produk Line">
+ <field name="line_ids" attrs="{'readonly': [('is_locked', '=', True)]}">
+ <tree editable="bottom">
+ <field name="product_id"/>
+ <field name="quantity"/>
+ <field name="reason"/>
+ </tree>
+ </field>
+ </page>
+
+ <page string="Other Info">
+ <group col="2">
+ <group>
+ <field name="user_ids" widget="many2many_tags" readonly="1"/>
+ <field name="created_date" readonly="1"/>
+ <field name="refund_date" attrs="{'readonly': [('status', 'not in', ['pengajuan3','refund'])]}"/>
+ </group>
+ <group>
+ <field name="bank" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="account_name" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="account_no" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ </group>
+ </group>
+ </page>
+
+ <page string="Finance Note">
+ <group col="2">
+ <group>
+ <field name="finance_note" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ </group>
+ <group>
+ <field name="bukti_refund_type" reqiured="1" attrs="{'readonly': [('is_locked', '=', True)]}"/>
+ <field name="bukti_transfer_refund_pdf" widget="pdf_viewer" attrs="{'invisible': [('bukti_refund_type', '=', 'image')]}"/>
+ <field name="bukti_transfer_refund_image" widget="image" attrs="{'invisible': [('bukti_refund_type', '=', 'pdf')]}"/>
+ </group>
+ </group>
+ </page>
+
+ <page string="Cancel Reason" attrs="{'invisible': [('status', '=', 'refund')]}">
+ <group>
+ <field name="reason_reject"/>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+ <!-- Action -->
+ <record id="action_refund_sale_order" model="ir.actions.act_window">
+ <field name="name">Refund Sales Order</field>
+ <field name="res_model">refund.sale.order</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <!-- Menu -->
+ <menuitem id="menu_refund_sale_order"
+ name="Refund"
+ parent="sale.sale_order_menu"
+ sequence="10"
+ action="action_refund_sale_order"/>
+</odoo>
diff --git a/indoteknik_custom/views/res_partner.xml b/indoteknik_custom/views/res_partner.xml
index cb9fa3ac..a030a75c 100644
--- a/indoteknik_custom/views/res_partner.xml
+++ b/indoteknik_custom/views/res_partner.xml
@@ -65,6 +65,21 @@
<group name="purchase" position="inside">
<field name="leadtime"/>
</group>
+ <xpath expr="//notebook/page[@name='contact_addresses']" position="before">
+ <page string="Pin Point Location" name="map_location">
+ <group>
+ <button name="geocode_address" type="object" string="Get Pin Point Location" class="btn btn-primary"/>
+ </group>
+ <div style="margin: 16px 0;">
+ <field name="map_view" widget="googlemap" nolabel="1"/>
+ </div>
+ <group>
+ <field name="address_map" readonly="1" force_save="1"/>
+ <field name="latitude" readonly="1" force_save="1"/>
+ <field name="longtitude" readonly="1" force_save="1"/>
+ </group>
+ </page>
+ </xpath>
<field name="vat" position="after">
<field name="email_finance" widget="email"/>
<field name="email_sales" widget="email"/>
@@ -78,6 +93,15 @@
<field name="main_parent_id" invisible="1" />
<field name="site_id" attrs="{'readonly': [('parent_id', '=', False)]}" domain="[('partner_id', '=', main_parent_id)]" context="{'default_partner_id': active_id}" />
</xpath>
+ <xpath expr="//field[@name='child_ids']/form/sheet/group" position="after">
+ <div class="oe_left" style="margin-top: 16px;">
+ <button name="action_open_full_form"
+ type="object"
+ string="Detail Information"
+ class="btn btn-primary"
+ />
+ </div>
+ </xpath>
<xpath expr="//field[@name='property_payment_term_id']" position="attributes">
<attribute name="readonly">0</attribute>
</xpath>
@@ -189,6 +213,13 @@
<field name="dokumen_ktp_dirut" />
</group>
</page>
+ <page string="Aging Info">
+ <group string="Aging Info">
+ <field name="avg_aging" readonly="1"/>
+ <field name="payment_difficulty" attrs="{'readonly': [('parent_id', '!=', False)]}" />
+ <field name="payment_history_url" readonly="1" />
+ </group>
+ </page>
</notebook>
</field>
</record>
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index 0fabf279..c1f1fe61 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -35,7 +35,32 @@
string="UangMuka"
type="action" attrs="{'invisible': [('approval_status', '!=', 'approved')]}"/>
</button>
- <field name="payment_term_id" position="after">
+ <!-- <xpath expr="//header" position="inside">
+ <button name="button_refund"
+ type="object"
+ string="Refund"
+ class="btn-primary"
+ attrs="{'invisible': ['|', ('state', 'not in', ['sale', 'done']), ('has_refund', '=', True)]}" />
+ </xpath> -->
+ <div class="oe_button_box" name="button_box">
+ <field name="advance_payment_move_ids" invisible="1"/>
+ <button name="action_open_advance_payment_moves"
+ type="object"
+ class="oe_stat_button"
+ icon="fa-book"
+ attrs="{'invisible': [('advance_payment_move_ids', '=', [])]}">
+ <field name="advance_payment_move_count" widget="statinfo" string="Journals"/>
+ </button>
+
+ <!-- <button type="object"
+ name="action_view_related_refunds"
+ class="oe_stat_button"
+ icon="fa-refresh"
+ attrs="{'invisible': [('refund_count', '=', 0)]}">
+ <field name="refund_count" widget="statinfo" string="Refund"/>
+ </button> -->
+ </div>
+ <field name="payment_term_id" position="after">
<field name="create_uid" invisible="1"/>
<field name="create_date" invisible="1"/>
<field name="shipping_cost_covered"
@@ -103,10 +128,10 @@
<field name="compute_fullfillment" invisible="1" />
</field>
<field name="tag_ids" position="after">
- <field name="eta_date_start"/>
+ <!-- <field name="eta_date_start"/> -->
<t t-esc="' to '"/>
- <field name="eta_date" readonly="1"/>
- <field name="expected_ready_to_ship"/>
+ <!-- <field name="eta_date" readonly="1"/> -->
+ <!-- <field name="expected_ready_to_ship"/> -->
<field name="ready_to_ship_status_detail"/>
<field name="flash_sale"/>
<field name="margin_after_delivery_purchase"/>
@@ -134,15 +159,29 @@
<field name="real_invoice_id"/>
<field name="approval_status"/>
<field name="sales_tax_id"
- domain="[('type_tax_use','=','sale'), ('active', '=', True)]" required="1"/>
- <field name="carrier_id" required="1"/>
- <field name="delivery_service_type" readonly="1"/>
- <field name="shipping_option_id"/>
+ domain="[('type_tax_use','=','sale'), ('active', '=', True)]" required="1" />
+ <field name="select_shipping_option"/>
+ <field name="carrier_id" required="1" domain="[]" />
+ <field name="delivery_service_type" readonly="1" />
+ <field name="shipping_option_id" />
</field>
<field name="medium_id" position="after">
<field name="date_doc_kirim" readonly="1"/>
<field name="notification" readonly="1"/>
</field>
+ <xpath expr="//page[@name='other_information']/group/group[@name='sale_reporting']" position="after">
+ <group string="ETA">
+ <field name="et_products"/>
+ <field name="eta_date_reserved"/>
+ <field name="expected_ready_to_ship"/>
+ <field name="eta_date_start"/>
+ <field name="eta_date" readonly="1"/>
+ <!-- <field name="has_refund" readonly="1"/> -->
+ </group>
+ <group string="Return Doc">
+ <field name="ccm_id" readonly="1"/>
+ </group>
+ </xpath>
<xpath expr="//form/sheet/notebook/page/field[@name='order_line']"
position="attributes">
<attribute name="attrs">
@@ -208,6 +247,11 @@
<label for="item_percent_margin"/>
<field name="item_percent_margin"/>
</div>
+ <div name="item_percent_margin_before" groups="base.group_no_one"
+ attrs="{'invisible': [('display_type', '!=', False)]}">
+ <label for="item_percent_margin_before"/>
+ <field name="item_percent_margin_before"/>
+ </div>
</div>
<div name="invoice_lines" position="before">
<div name="price_subtotal" groups="base.group_no_one"
@@ -239,6 +283,7 @@
attrs="{'readonly': [('parent.approval_status', '!=', False)]}"
domain="[('type_tax_use','=','purchase')]" options="{'no_create':True}"/>
<field name="item_percent_margin"/>
+ <field name="item_percent_margin_before"/>
<field name="item_margin" optional="hide"/>
<field name="margin_md" optional="hide"/>
<field name="note" optional="hide"/>
@@ -296,10 +341,14 @@
<field name="picking_iu_id"/>
<field name="note_ekspedisi"/>
</field>
+ <field name="select_shipping_option" position="attributes">
+ <attribute name="attrs">
+ {'readonly': [('state', 'in', ['cancel', 'done'])]}
+ </attribute>
+ </field>
<field name="carrier_id" position="attributes">
<attribute name="attrs">
- {'readonly': [('approval_status', '=', 'approved'), ('state', 'not in',
- ['cancel', 'draft'])]}
+ {'readonly': [('state', 'in', ['cancel', 'done'])]}
</attribute>
</field>
<field name="payment_term_id" position="attributes">
@@ -403,7 +452,7 @@
<field name="state" position="after">
<field name="approval_status"/>
<field name="client_order_ref"/>
- <field name="notes"/>
+ <field name="notes" optional="hide"/>
<field name="payment_type" optional="hide"/>
<field name="payment_status" optional="hide"/>
<field name="pareto_status" optional="hide"/>
@@ -428,6 +477,7 @@
<field name="payment_type" optional="hide"/>
<field name="payment_status" optional="hide"/>
<field name="pareto_status" optional="hide"/>
+ <field name="notes" optional="hide"/>
</field>
</field>
</record>
@@ -611,6 +661,16 @@
</record>
</data>
+ <!-- <data>
+ <record id="sale_order_multi_create_refund_ir_actions_server" model="ir.actions.server">
+ <field name="name">Refund</field>
+ <field name="model_id" ref="sale.model_sale_order"/>
+ <field name="binding_model_id" ref="sale.model_sale_order"/>
+ <field name="state">code</field>
+ <field name="code">action = records.open_form_multi_create_refund()</field>
+ </record>
+ </data> -->
+
<data>
<record id="mail_template_sale_order_notification_to_salesperson" model="mail.template">
<field name="name">Sale Order: Notification to Salesperson</field>
diff --git a/indoteknik_custom/views/sale_order_delay.xml b/indoteknik_custom/views/sale_order_delay.xml
new file mode 100644
index 00000000..b2aad8eb
--- /dev/null
+++ b/indoteknik_custom/views/sale_order_delay.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="view_sale_order_delay_tree" model="ir.ui.view">
+ <field name="name">sale.order.delay.tree</field>
+ <field name="model">sale.order.delay</field>
+ <field name="arch" type="xml">
+ <tree>
+ <field name="so_number" />
+ <field name="days_delayed" />
+ <field name="status" />
+ </tree>
+ </field>
+ </record>
+
+ <record id="sale_order_delay_action" model="ir.actions.act_window">
+ <field name="name">Sale Order Delay</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.order.delay</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <record id="view_sale_order_delay_form" model="ir.ui.view">
+ <field name="name">sale.order.delay.form</field>
+ <field name="model">sale.order.delay</field>
+ <field name="arch" type="xml">
+ <form>
+ <sheet>
+ <group>
+ <field name="so_number" />
+ <field name="days_delayed" />
+ <field name="status" />
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <menuitem id="menu_sale_order_delay"
+ name="Sale Order Delay"
+ action="sale_order_delay_action"
+ parent="sale.product_menu_catalog"
+ sequence="8"
+ />
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/stock_picking.xml b/indoteknik_custom/views/stock_picking.xml
index ae77ab9a..f9200dfa 100644
--- a/indoteknik_custom/views/stock_picking.xml
+++ b/indoteknik_custom/views/stock_picking.xml
@@ -17,6 +17,7 @@
<field name="driver_arrival_date" optional="hide"/>
<field name="note_logistic" optional="hide"/>
<field name="note" optional="hide"/>
+ <field name="sj_return_date" optional="hide"/>
<field name="date_reserved" optional="hide"/>
<field name="state_reserve" optional="hide"/>
<field name="state_packing" widget="badge" decoration-success="state_packing == 'packing_done'" decoration-danger="state_packing == 'not_packing'" optional="hide"/>
@@ -49,11 +50,11 @@
type="object"
attrs="{'invisible': ['|', ('state', 'in', ['done']), ('approval_receipt_status', '=', 'pengajuan1')]}"
/>
- <button name="ask_return_approval"
- string="Ask Return/Acc"
- type="object"
- attrs="{'invisible': [('state', 'in', ['draft', 'cancel', 'assigned'])]}"
- />
+<!-- <button name="ask_return_approval"-->
+<!-- string="Ask Return/Acc"-->
+<!-- type="object"-->
+<!-- attrs="{'invisible': [('state', 'in', ['draft', 'cancel', 'assigned'])]}"-->
+<!-- />-->
<button name="action_create_invoice_from_mr"
string="Create Bill"
type="object"
@@ -63,6 +64,12 @@
string="Biteship"
type="object"
/>
+ <!-- <button name="action_sync_biteship_tracking"
+ type="object"
+ string="Lacak dari Biteship"
+ class="btn-primary"
+ attrs="{'invisible': [('biteship_id', '=', False)]}"
+ /> -->
<button name="track_envio_shipment"
string="Tracking Envio"
type="object"
@@ -91,7 +98,9 @@
/>
</button>
<field name="backorder_id" position="after">
+ <field name="select_shipping_option_so"/>
<field name="shipping_method_so_id"/>
+ <field name="shipping_option_so_id"/>
<field name="summary_qty_detail"/>
<field name="count_line_detail"/>
<field name="dokumen_tanda_terima"/>
@@ -183,18 +192,33 @@
<field name="note_logistic"/>
<field name="note_info"/>
<field name="responsible" />
- <field name="carrier_id"/>
+ <field name="carrier_id" attrs="{'invisible': [('select_shipping_option_so', '=', 'biteship')]}" />
+ <field name="biteship_id" invisible="1"/>
<field name="out_code" attrs="{'invisible': [['out_code', '=', False]]}"/>
<field name="picking_code" attrs="{'invisible': [['picking_code', '=', False]]}"/>
<field name="picking_code" string="Picking code (akan digenerate ketika sudah di-validate)" attrs="{'invisible': [['picking_code', '!=', False]]}"/>
<field name="driver_departure_date" attrs="{'readonly':[('invoice_status', '=', 'invoiced')]}"/>
<field name="driver_arrival_date"/>
- <field name="delivery_tracking_no"/>
+ <field name="delivery_tracking_no" attrs="{'invisible': [('select_shipping_option_so', '=', 'biteship')]}"/>
<field name="driver_id"/>
<field name='sj_return_date'/>
<field name="sj_documentation" widget="image" />
<field name="paket_documentation" widget="image" />
</group>
+ <!-- Biteship Group -->
+ <group attrs="{'invisible': [('select_shipping_option_so', '!=', 'biteship')]}">
+ <field name="delivery_tracking_no" />
+ <field name="shipping_method_so_id"/>
+ <field name="shipping_option_so_id"/>
+ <field name="biteship_shipping_price" readonly="1"/>
+ <field name="currency_id" invisible="1"/>
+ <field name="biteship_shipping_status" readonly="1"/>
+ <field name="biteship_driver_name" readonly="1"/>
+ <field name="biteship_driver_phone" readonly="1"/>
+ <field name="biteship_driver_plate_number" readonly="1"/>
+ <button name="action_open_biteship_tracking" string="Visit Biteship Tracking" type="object"/>
+ </group>
+
<group attrs="{'invisible': [('carrier_id', '!=', 151)]}">
<field name="envio_id" invisible="1"/>
<field name="envio_code"/>
diff --git a/indoteknik_custom/views/tukar_guling.xml b/indoteknik_custom/views/tukar_guling.xml
new file mode 100644
index 00000000..a79f8b55
--- /dev/null
+++ b/indoteknik_custom/views/tukar_guling.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <data>
+ <!-- Action -->
+ <record id="action_pengajuan_tukar_guling" model="ir.actions.act_window">
+ <field name="name">Pengajuan Return SO</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">tukar.guling</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <!-- Menu -->
+ <menuitem
+ id="menu_pengajuan_tukar_guling"
+ name="Pengajuan Return SO"
+ parent="sale.sale_order_menu"
+ sequence="7"
+ action="action_pengajuan_tukar_guling"
+ />
+ <!-- Tree View -->
+ <record id="pengajuan_tukar_guling_tree" model="ir.ui.view">
+ <field name="name">pengajuan.tukar.guling.tree</field>
+ <field name="model">tukar.guling</field>
+ <field name="arch" type="xml">
+ <tree create="1" delete="1" default_order="create_date desc">
+ <field name="name"/>
+ <field name="date"/>
+ <field name="origin" string="SO Number"/>
+ <field name="operations" string="Operations"/>
+ <field name="return_type" string="Return Type"/>
+ <field name="state" widget="badge"
+ decoration-info="state in ('draft', 'approval_sales', 'approval_finance','approval_logistic')"
+ decoration-success="state == 'done'"
+ decoration-muted="state == 'cancel'"
+ />
+ <field name="ba_num" string="Nomor BA"/>
+ <field name="date_logistic" string="Approved Date"/>
+ </tree>
+ </field>
+ </record>
+ <!-- Form View -->
+ <record id="pengajuan_tukar_guling_form" model="ir.ui.view">
+ <field name="name">pengajuan.tukar.guling.form</field>
+ <field name="model">tukar.guling</field>
+ <field name="arch" type="xml">
+ <form>
+ <header>
+ <button name="action_submit" string="Submit" type="object"
+ class="btn-primary"
+ attrs="{'invisible': [('state', '!=', 'draft')]}"/>
+ <button name="action_approve" string="Approve" type="object"
+ class="btn-primary"
+ attrs="{'invisible': [('state', 'not in', ['approval_sales', 'approval_finance', 'approval_logistic'])]}"/>
+ <button name="action_cancel" string="Cancel" type="object"
+ class="btn-secondary"
+ attrs="{'invisible': [('state', '=', 'cancel')]}"/>
+ <button name="action_draft" string="Set to Draft" type="object"
+ class="btn-secondary"
+ attrs="{'invisible': [('state', '!=', 'cancel')]}"/>
+ <field name="state" widget="statusbar" readonly="1"
+ statusbar_visible="draft,approval_sales,approval_logistic,approval_finance,done"/>
+ </header>
+ <sheet>
+ <div class="oe_button_box">
+ <button name="action_view_picking"
+ type="object"
+ class="oe_stat_button"
+ icon="fa-truck"
+ attrs="{'invisible': [('picking_ids', '=', False), ('state', 'in', ['draft', 'approval_sales', 'approval_logistic', 'approval_finance'])]}">
+ <field name="picking_ids" widget="statinfo" string="Delivery"/>
+ </button>
+ </div>
+ <div class="oe_title">
+ <h1>
+ <field name="name" readonly="1" class="oe_inline"/>
+ </h1>
+ </div>
+ <group>
+ <group>
+ <field name="date" string="Date" readonly="1"/>
+ <field name="partner_id" readonly="1"/>
+ <field name="return_type" attrs="{'readonly': [('state', 'not in', 'draft')]}"/>
+ <field name="operations"
+ attrs="{'readonly': [('state', 'not in', 'draft')]}"/>
+ <field name="origin" readonly="1"/>
+ </group>
+ <group>
+ <field name="ba_num" string="Nomor BA"/>
+ <field name="notes"/>
+ <field name="date_sales" readonly="1"/>
+ <field name="date_finance" readonly="1"/>
+ <field name="date_logistic" readonly="1"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Product Lines" name="product_lines">
+ <field name="line_ids">
+ <tree string="Product Lines" editable="top" create="0" delete="1">
+ <field name="sequence" widget="handle"/>
+ <field name="product_id" required="0"
+ options="{'no_create': True, 'no_create_edit': True}" readonly="0"/>
+ <field name="name" force_save="0" readonly="1"/>
+ <field name="product_uom_qty" string="Quantity"/>
+ <field name="product_uom" string="UoM"
+ options="{'no_create': True, 'no_create_edit': True}"/>
+ </tree>
+ </field>
+ </page>
+ <page string="Mapping Koli" name="mapping_koli">
+ <field name="mapping_koli_ids">
+ <tree editable="top" create="0" delete="1">
+ <field name="pick_id" readonly="1" force_save="1"/>
+ <field name="product_id" readonly="1" force_save="1"/>
+ <field name="qty_done" force_save="1" readonly="1"/>
+ <field name="qty_return"/>
+ </tree>
+ </field>
+ </page>
+ </notebook>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+ </data>
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/tukar_guling_po.xml b/indoteknik_custom/views/tukar_guling_po.xml
new file mode 100644
index 00000000..77feb05f
--- /dev/null
+++ b/indoteknik_custom/views/tukar_guling_po.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <data>
+ <!-- Action -->
+ <record id="action_pengajuan_tukar_guling_po" model="ir.actions.act_window">
+ <field name="name">Pengajuan Return PO</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">tukar.guling.po</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <!-- Menu -->
+ <menuitem
+ id="menu_pengajuan_tukar_guling_po"
+ name="Pengajuan Return PO"
+ parent="purchase.menu_procurement_management"
+ sequence="3"
+ action="action_pengajuan_tukar_guling_po"
+ />
+ <!-- Tree View -->
+ <record id="pengajuan_tukar_guling_po_tree" model="ir.ui.view">
+ <field name="name">pengajuan.tukar.guling.po.tree</field>
+ <field name="model">tukar.guling.po</field>
+ <field name="arch" type="xml">
+ <tree create="1" delete="1" default_order="create_date desc">
+ <field name="name"/>
+ <field name="date"/>
+ <field name="origin" string="PO Number"/>
+ <field name="operations" string="Operations"/>
+ <field name="return_type" string="Return Type"/>
+ <field name="ba_num" string="Nomor BA"/>
+ <field name="return_type" string="Return Type"/>
+ <field name="state" widget="badge"
+ decoration-info="state in ('draft', 'approval_purchase', 'approval_finance','approval_logistic')"
+ decoration-success="state == 'done'"
+ decoration-muted="state == 'cancel'"
+ />
+ <field name="date_logistic" string="Approved Date"/>
+ </tree>
+ </field>
+ </record>
+ <!-- Form View -->
+ <record id="pengajuan_tukar_guling_po_form" model="ir.ui.view">
+ <field name="name">pengajuan.tukar.guling.po.form</field>
+ <field name="model">tukar.guling.po</field>
+ <field name="arch" type="xml">
+ <form>
+ <header>
+ <button name="action_submit" string="Submit" type="object"
+ class="btn-primary"
+ attrs="{'invisible': [('state', '!=', 'draft')]}"/>
+ <button name="action_approve" string="Approve" type="object"
+ class="btn-primary"
+ attrs="{'invisible': [('state', 'not in', ['approval_purchase', 'approval_finance', 'approval_logistic'])]}"/>
+ <button name="action_cancel" string="Cancel" type="object"
+ class="btn-secondary"
+ attrs="{'invisible': [('state', '=', 'cancel')]}"
+ confirm="Are you sure you want to cancel this record?"/>
+ <button name="action_draft" string="Set to Draft" type="object"
+ class="btn-secondary"
+ attrs="{'invisible': [('state', '!=', 'cancel')]}"
+ confirm="Are you sure you want to reset this record to draft?"/>
+ <field name="state" widget="statusbar" readonly="1"
+ statusbar_visible="draft,approval_purchase,approval_logistic,approval_finance,done"/>
+ </header>
+ <sheet>
+ <div class="oe_button_box">
+ <button name="action_view_picking"
+ type="object"
+ class="oe_stat_button"
+ icon="fa-truck"
+ attrs="{'invisible': [('po_picking_ids', '=', False)]}">
+ <field name="po_picking_ids" widget="statinfo" string="Delivery"/>
+ </button>
+ </div>
+ <div class="oe_title">
+ <h1>
+ <field name="name" readonly="1" class="oe_inline"/>
+ </h1>
+ </div>
+ <group>
+ <group>
+ <field name="vendor_id" readonly="1"/>
+ <field name="date" string="Date" readonly="1"/>
+ <field name="return_type"/>
+ <!-- <field name="ort_num" readonly="1"/>-->
+ <!-- <field name="srt_num" readonly="1"/>-->
+ <field name="operations" string="Operations"
+ attrs="{
+ 'required': [('return_type', 'in', ['revisi_po', 'tukar_guling'])]
+ }"/>
+ <field name="origin" readonly="1"/>
+ <!-- <field name="origin_so" readonly="1"/>-->
+ </group>
+ <group>
+ <field name="ba_num" string="Nomor BA"/>
+ <field name="notes"/>
+ <field name="date_purchase" readonly="1"/>
+ <field name="date_finance" readonly="1"/>
+ <field name="date_logistic" readonly="1"/>
+ </group>
+ </group>
+ <!-- Product Lines -->
+ <notebook>
+ <page string="Product Lines" name="product_lines" create="0" edit="0">
+ <field name="line_ids" delete="1" readonly="1">
+ <tree string="Product Lines">
+ <field name="sequence" widget="handle"/>
+ <field name="product_id" required="1"
+ options="{'no_create': True, 'no_create_edit': True}"/>
+ <field name="name" force_save="1"/>
+ <field name="product_uom_qty" string="Quantity"/>
+ <field name="product_uom" string="UoM"
+ options="{'no_create': True, 'no_create_edit': True}"/>
+ </tree>
+ </field>
+ </page>
+ </notebook>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+ </data>
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/tukar_guling_return_views.xml b/indoteknik_custom/views/tukar_guling_return_views.xml
new file mode 100644
index 00000000..9312005a
--- /dev/null
+++ b/indoteknik_custom/views/tukar_guling_return_views.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Inherit the return picking form view -->
+ <record id="view_stock_return_picking_form_inherit" model="ir.ui.view">
+ <field name="name">stock.return.picking.form.inherit.tukar.guling</field>
+ <field name="model">stock.return.picking</field>
+ <field name="inherit_id" ref="stock.view_stock_return_picking_form"/>
+ <field name="priority" eval="20"/> <!-- Higher than stock_account -->
+ <field name="arch" type="xml">
+ <!-- Add fields above the product moves table -->
+ <xpath expr="//field[@name='product_return_moves']" position="before">
+ <div class="row mb-3">
+ <div class="col-12">
+ <field name="return_type" class="oe_inline"/>
+ </div>
+ </div>
+ </xpath>
+ </field>
+ </record>
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/user_pengajuan_tempo.xml b/indoteknik_custom/views/user_pengajuan_tempo.xml
index 4eebe9e4..f9dca4ca 100644
--- a/indoteknik_custom/views/user_pengajuan_tempo.xml
+++ b/indoteknik_custom/views/user_pengajuan_tempo.xml
@@ -204,7 +204,7 @@
<field name="subject">Pengajuan Tempo Harus di Periksa!</field>
<field name="email_from">"Indoteknik.com" &lt;noreply@indoteknik.com&gt;</field>
<field name="reply_to">sales@indoteknik.com</field>
- <field name="email_to">vita@indoteknik.co.id</field>
+ <field name="email_to">putra@indoteknik.co.id,Darren@indoteknik.co.id</field>
<!-- <field name="email_to">sapiabon768@gmail.com</field>-->
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Inter, Helvetica, Verdana, Arial,sans-serif; line-height: 24px; color: #454748; width: 100%; border-collapse:separate;">
diff --git a/indoteknik_custom/views/x_manufactures.xml b/indoteknik_custom/views/x_manufactures.xml
index 01e90a1e..02061251 100755
--- a/indoteknik_custom/views/x_manufactures.xml
+++ b/indoteknik_custom/views/x_manufactures.xml
@@ -3,7 +3,7 @@
<record id="x_manufactures_action" model="ir.actions.act_window">
<field name="name">Manufacture</field>
<field name="res_model">x_manufactures</field>
- <field name="view_mode">tree,form</field>
+ <field name="view_mode">kanban,tree,form</field> <!-- Tambahkan kanban di sini -->
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add Manufactures!
@@ -11,6 +11,44 @@
</field>
</record>
+ <record id="x_manufactures_kanban" model="ir.ui.view">
+ <field name="name">Manufactures Kanban</field>
+ <field name="model">x_manufactures</field>
+ <field name="arch" type="xml">
+ <kanban default_group_by="x_manufacture_level">
+ <field name="id"/> <!-- Tambahkan ini -->
+ <field name="x_name"/>
+ <field name="x_logo_manufacture"/>
+ <field name="x_manufacture_level"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div class="oe_kanban_global_click">
+ <div class="o_kanban_image">
+ <img t-if="record.x_logo_manufacture.raw_value"
+ t-att-src="kanban_image('x_manufactures', 'x_logo_manufacture', record.id.raw_value)"
+ alt="Logo" class="img-fluid" width="64" height="64"/>
+ <img t-else=""
+ src="/web/static/src/img/placeholder.png"
+ alt="No Logo" class="img-fluid" width="64" height="64"/>
+ </div>
+ <div class="o_kanban_details">
+ <strong><field name="x_name"/></strong>
+ <div>
+ <span class="badge badge-secondary">
+ <field name="x_manufacture_level"/>
+ </span>
+ </div>
+ <div t-if="record.x_short_desc.raw_value">
+ <small><field name="x_short_desc"/></small>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
<record id="x_manufactures_tree" model="ir.ui.view">
<field name="name">Manufactures</field>
<field name="model">x_manufactures</field>