diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-25 11:53:29 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-25 11:53:29 +0700 |
| commit | 13c90b5a95391d797b89c39b90c1430400ed29b7 (patch) | |
| tree | 1df668fee68e72a76cbcc5255e5d533b3721d190 /indoteknik_custom | |
| parent | 0f7f7fa273295fadde403c4ff9333b3bbe14489a (diff) | |
| parent | 029e8fce907060de2a2514b5abc731f4cd9da96e (diff) | |
Merge branch 'staging' into release
Diffstat (limited to 'indoteknik_custom')
| -rwxr-xr-x | indoteknik_custom/__manifest__.py | 3 | ||||
| -rwxr-xr-x | indoteknik_custom/models/__init__.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/models/midtrans.py | 25 | ||||
| -rw-r--r-- | indoteknik_custom/models/res_partner.py | 1 | ||||
| -rw-r--r-- | indoteknik_custom/models/res_partner_company_type.py | 7 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/models/user_company_request.py | 31 | ||||
| -rwxr-xr-x | indoteknik_custom/security/ir.model.access.csv | 4 | ||||
| -rw-r--r-- | indoteknik_custom/views/midtrans.xml | 15 | ||||
| -rw-r--r-- | indoteknik_custom/views/res_partner.xml | 3 | ||||
| -rw-r--r-- | indoteknik_custom/views/res_partner_company_type.xml | 43 | ||||
| -rwxr-xr-x | indoteknik_custom/views/sale_order.xml | 7 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_company_request.xml | 60 |
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 |
