summaryrefslogtreecommitdiff
path: root/indoteknik_custom
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-25 11:53:29 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-25 11:53:29 +0700
commit13c90b5a95391d797b89c39b90c1430400ed29b7 (patch)
tree1df668fee68e72a76cbcc5255e5d533b3721d190 /indoteknik_custom
parent0f7f7fa273295fadde403c4ff9333b3bbe14489a (diff)
parent029e8fce907060de2a2514b5abc731f4cd9da96e (diff)
Merge branch 'staging' into release
Diffstat (limited to 'indoteknik_custom')
-rwxr-xr-xindoteknik_custom/__manifest__.py3
-rwxr-xr-xindoteknik_custom/models/__init__.py2
-rw-r--r--indoteknik_custom/models/midtrans.py25
-rw-r--r--indoteknik_custom/models/res_partner.py1
-rw-r--r--indoteknik_custom/models/res_partner_company_type.py7
-rwxr-xr-xindoteknik_custom/models/sale_order.py2
-rw-r--r--indoteknik_custom/models/user_company_request.py31
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv4
-rw-r--r--indoteknik_custom/views/midtrans.xml15
-rw-r--r--indoteknik_custom/views/res_partner.xml3
-rw-r--r--indoteknik_custom/views/res_partner_company_type.xml43
-rwxr-xr-xindoteknik_custom/views/sale_order.xml7
-rw-r--r--indoteknik_custom/views/user_company_request.xml60
13 files changed, 201 insertions, 2 deletions
diff --git a/indoteknik_custom/__manifest__.py b/indoteknik_custom/__manifest__.py
index a794a822..449fd09c 100755
--- a/indoteknik_custom/__manifest__.py
+++ b/indoteknik_custom/__manifest__.py
@@ -16,6 +16,7 @@
'views/delivery_order.xml',
'views/product_pricelist.xml',
'views/res_groups.xml',
+ 'views/res_partner_company_type.xml',
'views/res_partner.xml',
'views/product_pricelist_item.xml',
'views/product_public_category.xml',
@@ -25,6 +26,7 @@
'views/sale_monitoring.xml',
'views/sale_monitoring_detail.xml',
'views/user_activity_log.xml',
+ 'views/user_company_request.xml',
'views/vit_kelurahan.xml',
'views/vit_kecamatan.xml',
'views/vit_kota.xml',
@@ -62,6 +64,7 @@
'views/leads_monitoring.xml',
'views/ip_lookup.xml',
'views/wati.xml',
+ 'views/midtrans.xml',
'report/report.xml',
'report/report_banner_banner.xml',
'report/report_banner_banner2.xml',
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index 62a024e3..ebbf2e09 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -19,6 +19,7 @@ from . import purchase_order_line
from . import purchase_order
from . import purchase_outstanding
from . import purchase_pricelist
+from . import res_partner_company_type
from . import res_partner
from . import res_users
from . import sale_monitoring_detail
@@ -32,6 +33,7 @@ from . import stock_picking_type
from . import stock_picking
from . import stock_vendor
from . import user_activity_log
+from . import user_company_request
from . import users
from . import website_brand_homepage
from . import website_categories_homepage
diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py
index 76dee447..c99c8410 100644
--- a/indoteknik_custom/models/midtrans.py
+++ b/indoteknik_custom/models/midtrans.py
@@ -1,5 +1,6 @@
from odoo import fields, models, api
import logging
+import json
_logger = logging.getLogger(__name__)
@@ -25,6 +26,30 @@ class MidtransNotification(models.Model):
], string='Payment Status',
help='Payment Gateway Status / Midtrans / Web, https://docs.midtrans.com/en/after-payment/status-cycle')
+ def _parse_notification(self):
+ query = [
+ ('payment_status', '=', False)
+ ]
+ notifications = self.env['midtrans.notification'].search(query, order='id')
+ for notif in notifications:
+ payment_status = json.loads(notif.json_raw)['transaction_status']
+ payment_type = json.loads(notif.json_raw)['payment_type']
+ gross_amount = json.loads(notif.json_raw)['gross_amount']
+ order_id = json.loads(notif.json_raw)['order_id']
+
+ orders = order_id.split('_')
+ order = orders[0].replace('-', '/')
+ sale_order = self.env['sale.order'].search([('name', '=', order)], limit=1)
+
+ notif.payment_status = payment_status
+ notif.sale_order_id = sale_order.id
+
+ sale_order.payment_type = payment_type
+ sale_order.gross_amount = gross_amount
+ sale_order.payment_status = payment_status
+
+ _logger.info('Success Parsing Midtrans Notification %s' % notif.id)
+
class MidtransRecurring(models.Model):
_name = 'midtrans.recurring'
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index 403245fb..1cdf7c72 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -5,3 +5,4 @@ class ResPartner(models.Model):
_inherit = 'res.partner'
reference_number = fields.Char(string="Reference Number")
+ company_type_id = fields.Many2one('res.partner.company_type', string='Company Type')
diff --git a/indoteknik_custom/models/res_partner_company_type.py b/indoteknik_custom/models/res_partner_company_type.py
new file mode 100644
index 00000000..2bd356a1
--- /dev/null
+++ b/indoteknik_custom/models/res_partner_company_type.py
@@ -0,0 +1,7 @@
+from odoo import models, fields
+
+
+class ResPartnerCompanyType(models.Model):
+ _name = 'res.partner.company_type'
+
+ name = fields.Char('Name') \ No newline at end of file
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index ae769ae7..2dcfa718 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -69,6 +69,8 @@ class SaleOrder(models.Model):
('authorize', 'Authorize'),
], string='Payment Status', help='Payment Gateway Status / Midtrans / Web, https://docs.midtrans.com/en/after-payment/status-cycle')
date_doc_kirim = fields.Datetime(string='Tanggal Kirim di SJ', help="Tanggal Kirim di cetakan SJ yang terakhir, tidak berpengaruh ke Accounting")
+ payment_type = fields.Char(string='Payment Type', help='Jenis pembayaran dengan Midtrans')
+ gross_amount = fields.Float(string='Gross Amount', help='Jumlah pembayaran yang dilakukan dengan Midtrans')
@api.model
def _generate_so_access_token(self, limit=50):
diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py
new file mode 100644
index 00000000..2467261a
--- /dev/null
+++ b/indoteknik_custom/models/user_company_request.py
@@ -0,0 +1,31 @@
+from odoo import models, fields
+from odoo.exceptions import UserError
+
+
+class UserCompanyRequest(models.Model):
+ _name = 'user.company.request'
+ _rec_name = 'user_id'
+
+ user_id = fields.Many2one('res.partner', string='User')
+ user_company_id = fields.Many2one('res.partner', string='Company')
+ user_input = fields.Char(string='User Input')
+ is_approve = fields.Selection([
+ ('approved', 'Approve'),
+ ('rejected', 'Reject'),
+ ], string='Approval')
+
+ def write(self, vals):
+ is_approve = vals.get('is_approve')
+ if self.is_approve and is_approve:
+ raise UserError('Tidak dapat mengubah approval yang sudah diisi')
+
+ if not self.is_approve and is_approve:
+ if is_approve == 'approved':
+ self.user_id.parent_id = self.user_company_id.id
+ else:
+ new_company = self.env['res.partner'].create({
+ 'name': self.user_input
+ })
+ self.user_id.parent_id = new_company.id
+ return super(UserCompanyRequest, self).write(vals)
+ \ No newline at end of file
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index 977f3a1b..d5142381 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -33,4 +33,6 @@ access_midtrans_recurring,access.midtrans.recurring,model_midtrans_recurring,,1,
access_midtrans_account,access.midtrans.account,model_midtrans_account,,1,1,1,1
access_ip_lookup,access.ip.lookup,model_ip_lookup,,1,1,1,1
access_ip_lookup_line,access.ip.lookup.line,model_ip_lookup_line,,1,1,1,1
-access_wati_notification,access.wati.notification,model_wati_notification,,1,1,1,1 \ No newline at end of file
+access_wati_notification,access.wati.notification,model_wati_notification,,1,1,1,1
+access_user_company_request,access.user.company.request,model_user_company_request,,1,1,1,1
+access_res_partner_company_type,access.res.partner.company_type,model_res_partner_company_type,,1,1,1,1 \ No newline at end of file
diff --git a/indoteknik_custom/views/midtrans.xml b/indoteknik_custom/views/midtrans.xml
new file mode 100644
index 00000000..1773b9fd
--- /dev/null
+++ b/indoteknik_custom/views/midtrans.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+ <record id="cron_midtrans_parsing" model="ir.cron">
+ <field name="name">Midtrans: Parsing Notification</field>
+ <field name="interval_number">17</field>
+ <field name="interval_type">minutes</field>
+ <field name="numbercall">-1</field>
+ <field name="doall" eval="False"/>
+ <field name="model_id" ref="model_midtrans_notification"/>
+ <field name="code">model._parse_notification()</field>
+ <field name="state">code</field>
+ <field name="priority">100</field>
+ <field name="active">False</field>
+ </record>
+</odoo>
diff --git a/indoteknik_custom/views/res_partner.xml b/indoteknik_custom/views/res_partner.xml
index 673718c4..47f41ab2 100644
--- a/indoteknik_custom/views/res_partner.xml
+++ b/indoteknik_custom/views/res_partner.xml
@@ -9,6 +9,9 @@
<field name="vat" position="after">
<field name="reference_number"/>
</field>
+ <field name="industry_id" position="after">
+ <field name="company_type_id"/>
+ </field>
</field>
</record>
</data>
diff --git a/indoteknik_custom/views/res_partner_company_type.xml b/indoteknik_custom/views/res_partner_company_type.xml
new file mode 100644
index 00000000..ed21c1c9
--- /dev/null
+++ b/indoteknik_custom/views/res_partner_company_type.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <record id="res_partner_company_type_tree" model="ir.ui.view">
+ <field name="name">res.partner.company_type.tree</field>
+ <field name="model">res.partner.company_type</field>
+ <field name="arch" type="xml">
+ <tree>
+ <field name="name"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="res_partner_company_type_form" model="ir.ui.view">
+ <field name="name">res.partner.company_type.form</field>
+ <field name="model">res.partner.company_type</field>
+ <field name="arch" type="xml">
+ <form>
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_res_partner_company_type" model="ir.actions.act_window">
+ <field name="name">Company Type</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">res.partner.company_type</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem
+ id="menu_res_partner_company_type"
+ name="Company Type"
+ parent="contacts.res_partner_menu_config"
+ sequence="2"
+ action="action_res_partner_company_type"
+ />
+</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index ff684451..d6df24a0 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -69,13 +69,18 @@
</field>
<page name="customer_signature" position="after">
- <page string="Customer PO" name="customer_purchase_order">
+ <page string="Website" name="customer_purchase_order">
<group>
<group>
<field name="partner_purchase_order_name" readonly="True"/>
<field name="partner_purchase_order_description" readonly="True"/>
<field name="partner_purchase_order_file" readonly="True"/>
</group>
+ <group>
+ <field name="gross_amount" readonly="True"/>
+ <field name="payment_type" readonly="True"/>
+ <field name="payment_status" readonly="True"/>
+ </group>
</group>
</page>
</page>
diff --git a/indoteknik_custom/views/user_company_request.xml b/indoteknik_custom/views/user_company_request.xml
new file mode 100644
index 00000000..2efc1e9b
--- /dev/null
+++ b/indoteknik_custom/views/user_company_request.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <record id="user_company_request_tree" model="ir.ui.view">
+ <field name="name">user.company.request.tree</field>
+ <field name="model">user.company.request</field>
+ <field name="arch" type="xml">
+ <tree create="0" default_order="is_approve desc">
+ <field name="user_id"/>
+ <field name="user_company_id"/>
+ <field name="user_input"/>
+ <field
+ name="is_approve"
+ widget="badge"
+ decoration-success="is_approve == 'approved'"
+ decoration-danger="is_approve == 'rejected'"
+ />
+ <field name="create_date"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="user_company_request_form" model="ir.ui.view">
+ <field name="name">user.company.request.form</field>
+ <field name="model">user.company.request</field>
+ <field name="arch" type="xml">
+ <form create="0">
+ <sheet>
+ <group>
+ <group>
+ <field name="user_id" readonly="1"/>
+ <field name="user_company_id" readonly="1"/>
+ <field name="user_input" readonly="1"/>
+ <field
+ name="is_approve"
+ required="1"
+ decoration-success="is_approve == 'approved'"
+ decoration-danger="is_approve == 'rejected'"
+ />
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_user_company_request" model="ir.actions.act_window">
+ <field name="name">User Company Request</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">user.company.request</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem
+ id="menu_user_company_request"
+ name="User Company Request"
+ parent="contacts.menu_contacts"
+ sequence="3"
+ action="action_user_company_request"
+ />
+</odoo> \ No newline at end of file