diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-12-30 14:09:50 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-12-30 14:09:50 +0700 |
| commit | 7d5204a92422848f617af2d0e50d7069bf9f7824 (patch) | |
| tree | 139718306bb1be2d9cccd3de8fb4c56c0a5b6b1b | |
| parent | efe91d5ed3170b1d8e2dc217a05261dfbd9687d5 (diff) | |
<iman> add form merchant
| -rw-r--r-- | indoteknik_api/controllers/api_v1/lead.py | 22 | ||||
| -rwxr-xr-x | indoteknik_custom/__manifest__.py | 2 | ||||
| -rwxr-xr-x | indoteknik_custom/models/__init__.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/models/res_partner.py | 76 | ||||
| -rw-r--r-- | indoteknik_custom/models/user_form_merchant.py | 42 | ||||
| -rw-r--r-- | indoteknik_custom/models/user_merchant_request.py | 96 | ||||
| -rwxr-xr-x | indoteknik_custom/security/ir.model.access.csv | 4 | ||||
| -rw-r--r-- | indoteknik_custom/views/res_partner.xml | 38 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_form_merchant.xml | 77 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_merchant_request.xml | 112 |
10 files changed, 464 insertions, 7 deletions
diff --git a/indoteknik_api/controllers/api_v1/lead.py b/indoteknik_api/controllers/api_v1/lead.py index f0cfa1be..7a964b21 100644 --- a/indoteknik_api/controllers/api_v1/lead.py +++ b/indoteknik_api/controllers/api_v1/lead.py @@ -32,7 +32,7 @@ class Lead(controller.Controller): @controller.Controller.must_authorized() def create_merchant(self, **kw): params = self.get_request_params(kw, { - "name": ["required"], + "name_merchant": ["required"], "address": [], "state": [], "city": [], @@ -44,7 +44,7 @@ class Lead(controller.Controller): "account_number": [], "email_company": [], "email_sales": [], - "email_finnance": [], + "email_finance": [], "phone": [], "mobile": [], "file_dokumenKtpDirut ": [], @@ -53,14 +53,24 @@ class Lead(controller.Controller): "file_sppkp": [], "file_suratPernyataan": [], "file_fotoKantor": [], - "description": [] + "description": [], }) + filtered_params = {key: value for key, value in params['value'].items() if value} + lead = request.env['user.form.merchant'].create(filtered_params) + + partner_id = int(kw.get('partner_id')) + + partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1) if not params['valid']: return self.response(code=400, description=params) - # params['value']['user_id'] = 20 + main_partner = partner.get_main_parent() - # lead = request.env['crm.lead'].create(params['value']) + user_merchant_request = request.env['user.merchant.request'].create({ + 'user_id': partner.id, + 'merchant_id': lead.id, + 'user_company_id': main_partner.id + }) - return self.response(True)
\ No newline at end of file + return self.response(True) diff --git a/indoteknik_custom/__manifest__.py b/indoteknik_custom/__manifest__.py index 89f62524..b0f29747 100755 --- a/indoteknik_custom/__manifest__.py +++ b/indoteknik_custom/__manifest__.py @@ -30,6 +30,8 @@ 'views/web_logging/user_activity_log.xml', 'views/web_logging/web_utm_source.xml', 'views/user_company_request.xml', + 'views/user_form_merchant.xml', + 'views/user_merchant_request.xml', 'views/vit_kelurahan.xml', 'views/vit_kecamatan.xml', 'views/vit_kota.xml', diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py index ad6d75dd..25f56052 100755 --- a/indoteknik_custom/models/__init__.py +++ b/indoteknik_custom/models/__init__.py @@ -134,3 +134,5 @@ from . import find_page from . import approval_retur_picking from . import va_multi_approve from . import va_multi_reject +from . import user_form_merchant +from . import user_merchant_request diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index da4a6cb6..79962c2b 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -75,6 +75,30 @@ class ResPartner(models.Model): "Set its value to 0.00 to disable " "this feature", tracking=3) + # MERCHANT + name_merchant = fields.Char(string='Name') + address_merchant = fields.Char(string='Alamat') + state_merchant = fields.Many2one('res.country.state', string='State') + city_merchant = fields.Many2one('vit.kota', string='Kota') + district_merchant = fields.Many2one('vit.kecamatan', string='Kecamatan') + subDistrict_merchant = fields.Many2one('vit.kelurahan', string='Kelurahan') + zip_merchant = fields.Char(string='Kode Pos') + bank_name_merchant = fields.Char(string='Nama Bank') + rekening_name_merchant = fields.Char(string='Nama Rekening') + account_number_merchant = fields.Char(string='Nomor Rekening Bank') + email_company_merchant = fields.Char(string='Email Perusahaan') + email_sales_merchant = fields.Char(string='Email Sales') + email_finance_merchant = fields.Char(string='Email Finance') + phone_merchant = fields.Char(string='No. Telepon Perusahaan') + mobile_merchant = fields.Char(string='No. Handphone') + file_dokumenKtpDirut = fields.Binary(string="KTP Dirut/Direktur", tracking=True, track_visibility="onchange") + file_kartuNama = fields.Binary(string="Kartu Nama", tracking=True, track_visibility="onchange") + file_npwp = fields.Binary(string="NPWP", tracking=True, track_visibility="onchange") + file_sppkp = fields.Binary(string="SPPKP", tracking=True, track_visibility="onchange") + file_suratPernyataan = fields.Binary(string="Surat Pernyataan Nomor Rekening", tracking=True, track_visibility="onchange") + file_fotoKantor = fields.Binary(string="Foto Gudang / Kantor Bagian Depan", tracking=True, track_visibility="onchange") + description = fields.Text(string='Deskripsi') + @api.model def _default_payment_term(self): return self.env.ref('__export__.account_payment_term_26_484409e2').id @@ -136,6 +160,31 @@ class ResPartner(models.Model): vals['company_type_id'] = vals.get('company_type_id', self.company_type_id.id if self.company_type_id else None) + # Merchant + vals['name_merchant'] = vals.get('name_merchant', self.name_merchant) + vals['address_merchant'] = vals.get('address_merchant', self.address_merchant) + vals['state_merchant'] = vals.get('state_merchant', self.state_merchant) + vals['city_merchant'] = vals.get('city_merchant', self.city_merchant) + vals['district_merchant'] = vals.get('district_merchant', self.district_merchant) + vals['subDistrict_merchant'] = vals.get('subDistrict_merchant', self.subDistrict_merchant) + vals['zip_merchant'] = vals.get('zip_merchant', self.zip_merchant) + vals['bank_name_merchant'] = vals.get('bank_name_merchant', self.bank_name_merchant) + vals['rekening_name_merchant'] = vals.get('rekening_name_merchant', self.rekening_name_merchant) + vals['account_number_merchant'] = vals.get('account_number_merchant', self.account_number_merchant) + vals['email_company_merchant'] = vals.get('email_company_merchant', self.email_company_merchant) + vals['email_sales_merchant'] = vals.get('email_sales_merchant', self.email_sales_merchant) + vals['email_finance_merchant'] = vals.get('email_finance_merchant', self.email_finance_merchant) + vals['phone_merchant'] = vals.get('phone_merchant', self.phone_merchant) + vals['mobile_merchant'] = vals.get('mobile_merchant', self.mobile_merchant) + vals['file_dokumenKtpDirut'] = vals.get('file_dokumenKtpDirut', self.file_dokumenKtpDirut) + vals['file_kartuNama'] = vals.get('file_kartuNama', self.file_kartuNama) + vals['file_npwp'] = vals.get('file_npwp', self.file_npwp) + vals['file_sppkp'] = vals.get('file_sppkp', self.file_sppkp) + vals['file_suratPernyataan'] = vals.get('file_suratPernyataan', self.file_suratPernyataan) + vals['file_fotoKantor'] = vals.get('file_fotoKantor', self.file_fotoKantor) + vals['description'] = vals.get('description', self.description) + + # Simpan hanya field yang perlu di-update pada child vals_for_child = { 'customer_type': vals.get('customer_type'), @@ -144,7 +193,32 @@ class ResPartner(models.Model): 'sppkp': vals.get('sppkp'), 'alamat_lengkap_text': vals.get('alamat_lengkap_text'), 'industry_id': vals.get('industry_id'), - 'company_type_id': vals.get('company_type_id') + 'company_type_id': vals.get('company_type_id'), + + # Merchant + 'name_merchant': vals.get('name_merchant'), + 'address_merchant': vals.get('address_merchant'), + 'state_merchant': vals.get('state_merchant'), + 'city_merchant': vals.get('city_merchant'), + 'district_merchant': vals.get('district_merchant'), + 'subDistrict_merchant': vals.get('subDistrict_merchant'), + 'zip_merchant': vals.get('zip_merchant'), + 'bank_name_merchant': vals.get('bank_name_merchant'), + 'rekening_name_merchant': vals.get('rekening_name_merchant'), + 'account_number_merchant': vals.get('account_number_merchant'), + 'email_company_merchant': vals.get('email_company_merchant'), + 'email_sales_merchant': vals.get('email_sales_merchant'), + 'email_finance_merchant': vals.get('email_finance_merchant'), + 'phone_merchant': vals.get('phone_merchant'), + 'mobile_merchant': vals.get('mobile_merchant'), + 'file_dokumenKtpDirut': vals.get('file_dokumenKtpDirut'), + 'file_kartuNama': vals.get('file_kartuNama'), + 'file_npwp': vals.get('file_npwp'), + 'file_sppkp': vals.get('file_sppkp'), + 'file_suratPernyataan': vals.get('file_suratPernyataan'), + 'file_fotoKantor': vals.get('file_fotoKantor'), + 'description': vals.get('description'), + } # Lakukan update pada semua child secara rekursif diff --git a/indoteknik_custom/models/user_form_merchant.py b/indoteknik_custom/models/user_form_merchant.py new file mode 100644 index 00000000..96568f6c --- /dev/null +++ b/indoteknik_custom/models/user_form_merchant.py @@ -0,0 +1,42 @@ +from odoo import models, fields, api +from odoo.exceptions import UserError +from odoo.http import request + + +class UserFormMerchant(models.Model): + _name = 'user.form.merchant' + _inherit = ['mail.thread', 'mail.activity.mixin'] + name = fields.Char(string='Name', required=True) + name_merchant = fields.Char(string='Name') + address = fields.Char(string='Alamat') + state = fields.Many2one('res.country.state', string='State') + city = fields.Many2one('vit.kota', string='Kota') + district = fields.Many2one('vit.kecamatan', string='Kecamatan') + subDistrict = fields.Many2one('vit.kelurahan', string='Kelurahan') + zip = fields.Char(string='Kode Pos') + bank_name = fields.Char(string='Nama Bank') + rekening_name = fields.Char(string='Nama Rekening') + account_number = fields.Char(string='Nomor Rekening Bank') + email_company = fields.Char(string='Email Perusahaan') + email_sales = fields.Char(string='Email Sales') + email_finance = fields.Char(string='Email Finance') + phone = fields.Char(string='No. Telepon Perusahaan') + mobile = fields.Char(string='No. Handphone') + file_dokumenKtpDirut = fields.Binary(string="KTP Dirut/Direktur", tracking=True, track_visibility="onchange") + file_kartuNama = fields.Binary(string="Kartu Nama", tracking=True, track_visibility="onchange") + file_npwp = fields.Binary(string="NPWP", tracking=True, track_visibility="onchange") + file_sppkp = fields.Binary(string="SPPKP", tracking=True, track_visibility="onchange") + file_suratPernyataan = fields.Binary(string="Surat Pernyataan Nomor Rekening", tracking=True, track_visibility="onchange") + file_fotoKantor = fields.Binary(string="Foto Gudang / Kantor Bagian Depan", tracking=True, track_visibility="onchange") + description = fields.Text(string='Deskripsi') + + @api.depends('name', 'name_merchant') + def name_get(self): + result = [] + for record in self: + if record.name_merchant: + display_name = record.name_merchant + else: + display_name = "DETAIL FORM MERCHANT" + result.append((record.id, display_name)) + return result
\ No newline at end of file diff --git a/indoteknik_custom/models/user_merchant_request.py b/indoteknik_custom/models/user_merchant_request.py new file mode 100644 index 00000000..b47f6d1d --- /dev/null +++ b/indoteknik_custom/models/user_merchant_request.py @@ -0,0 +1,96 @@ +from odoo import models, fields, api, _ +from odoo.exceptions import UserError +from odoo.http import request + + +class RejectReasonWizardMerchant(models.TransientModel): + _name = 'reject.reason.wizard.merchant' + _description = 'Wizard for Reject Reason' + + request_id = fields.Many2one('user.merchant.request', string='Request') + reason_reject = fields.Text(string='Reason for Rejection', required=True) + + def confirm_reject(self): + merchant = self.request_id + if merchant: + merchant.write({'reason_reject': self.reason_reject}) + merchant.state_merchant = 'reject' + return {'type': 'ir.actions.act_window_close'} + + +class ConfirmApprovalWizardMerchant(models.TransientModel): + _name = 'confirm.approval.wizard.merchant' + _description = 'Wizard Konfirmasi Approval' + + merchant_id = fields.Many2one('user.merchant.request', string='Merchant', required=True) + + def confirm_approval(self): + merchant = self.merchant_id + if merchant.state_merchant == 'draft': + merchant.state_merchant = 'approved' + + +class UserMerchantRequest(models.Model): + _name = 'user.merchant.request' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = 'user_id' + + user_id = fields.Many2one('res.partner', string='User') + merchant_id = fields.Many2one('user.form.merchant', string='Form Merchant') + user_company_id = fields.Many2one('res.partner', string='Company') + state_merchant = fields.Selection([ + ('draft', 'Pengajuan Merchant'), + ('approved', 'Approved Merchant'), + ('reject', 'Rejected'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft') + reason_reject = fields.Char(string='Reaject Reason') + + def button_approve(self): + for merchant in self: + return { + 'type': 'ir.actions.act_window', + 'name': 'Konfirmasi Approve', + 'res_model': 'confirm.approval.wizard.merchant', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_merchant_id': merchant.id, + }} + + def button_reject(self): + return { + 'type': 'ir.actions.act_window', + 'name': _('Reject Reason'), + 'res_model': 'reject.reason.wizard.merchant', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_request_id': self.id}, + } + + def write(self, vals): + is_approve = True if self.state_merchant == 'approved' or vals.get('state_merchant') == 'approved' else False + if is_approve: + self.user_company_id.name_merchant = self.merchant_id.name_merchant + self.user_company_id.address_merchant = self.merchant_id.address + self.user_company_id.state_merchant = self.merchant_id.state + self.user_company_id.city_merchant = self.merchant_id.city + self.user_company_id.district_merchant = self.merchant_id.district + self.user_company_id.subDistrict_merchant = self.merchant_id.subDistrict + self.user_company_id.zip_merchant = self.merchant_id.zip + self.user_company_id.bank_name_merchant = self.merchant_id.bank_name + self.user_company_id.rekening_name_merchant = self.merchant_id.rekening_name + self.user_company_id.account_number_merchant = self.merchant_id.account_number + self.user_company_id.email_company_merchant = self.merchant_id.email_company + self.user_company_id.email_sales_merchant = self.merchant_id.email_sales + self.user_company_id.email_finance_merchant = self.merchant_id.email_finance + self.user_company_id.phone_merchant = self.merchant_id.phone + self.user_company_id.mobile_merchant = self.merchant_id.mobile + self.user_company_id.file_dokumenKtpDirut = self.merchant_id.file_dokumenKtpDirut + self.user_company_id.file_kartuNama = self.merchant_id.file_kartuNama + self.user_company_id.file_npwp = self.merchant_id.file_npwp + self.user_company_id.file_sppkp = self.merchant_id.file_sppkp + self.user_company_id.file_suratPernyataan = self.merchant_id.file_suratPernyataan + self.user_company_id.file_fotoKantor = self.merchant_id.file_fotoKantor + self.user_company_id.description = self.merchant_id.description + + return super(UserMerchantRequest, 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 2375df9d..7bf84d2c 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -148,3 +148,7 @@ access_sales_order_fulfillment_v2,access.sales.order.fulfillment.v2,model_sales_ access_v_move_outstanding,access.v.move.outstanding,model_v_move_outstanding,,1,1,1,1 access_va_multi_approve,access.va.multi.approve,model_va_multi_approve,,1,1,1,1 access_va_multi_reject,access.va.multi.reject,model_va_multi_reject,,1,1,1,1 +access_user_form_merchant,access.user.form.merchant,model_user_form_merchant,,1,1,1,1 +access_user_merchant_request,access.user.merchant.request,model_user_merchant_request,,1,1,1,1 +access_reject_reason_wizard_merchant,reject.reason.wizard.merchant,model_reject_reason_wizard_merchant,,1,1,1,0 +access_confirm_approval_wizard_merchant,confirm.approval.wizard.merchant,model_confirm_approval_wizard_merchant,,1,1,1,0 diff --git a/indoteknik_custom/views/res_partner.xml b/indoteknik_custom/views/res_partner.xml index 7b13fef7..5fcc7de5 100644 --- a/indoteknik_custom/views/res_partner.xml +++ b/indoteknik_custom/views/res_partner.xml @@ -80,6 +80,44 @@ <xpath expr="//field[@name='property_supplier_payment_term_id']" position="attributes"> <attribute name="readonly">1</attribute> </xpath> + <notebook> + <page string="Merchant"> + <group> + <group> + <field name="name_merchant" /> + <field name="address_merchant" /> + <field name="state_merchant" /> + <field name="city_merchant" /> + <field name="district_merchant" /> + <field name="subDistrict_merchant" /> + <field name="zip_merchant" /> + </group> + <group> + <field name="bank_name_merchant" /> + <field name="rekening_name_merchant" /> + <field name="account_number_merchant" /> + </group> + <group> + <field name="file_dokumenKtpDirut" widget="pdf_viewer"/> + <field name="file_kartuNama" widget="pdf_viewer"/> + <field name="file_npwp" widget="pdf_viewer"/> + <field name="file_sppkp" widget="pdf_viewer"/> + <field name="file_suratPernyataan" widget="pdf_viewer"/> + <field name="file_fotoKantor" widget="image"/> + </group> + <group> + <field name="email_company_merchant" widget="email"/> + <field name="email_sales_merchant" widget="email"/> + <field name="email_finance_merchant" widget="email"/> + <field name="phone_merchant" widget="phone"/> + <field name="mobile_merchant" widget="phone"/> + </group> + <group> + <field name="description" /> + </group> + </group> + </page> + </notebook> </field> </record> </data> diff --git a/indoteknik_custom/views/user_form_merchant.xml b/indoteknik_custom/views/user_form_merchant.xml new file mode 100644 index 00000000..f4f91933 --- /dev/null +++ b/indoteknik_custom/views/user_form_merchant.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<odoo> + <record id="user_form_merchant_tree" model="ir.ui.view"> + <field name="name">user.form.merchant.tree</field> + <field name="model">user.form.merchant</field> + <field name="arch" type="xml"> + <tree create="1" default_order="create_date desc"> + <field name="name_merchant"/> + <field name="email_company"/> + <field name="phone"/> + <field name="description"/> + <field name="create_date"/> + </tree> + </field> + </record> + + <record id="user_form_merchant_form" model="ir.ui.view"> + <field name="name">user.form.merchant.form</field> + <field name="model">user.form.merchant</field> + <field name="arch" type="xml"> + <form create="0"> + <sheet> + <group> + <group> + <field name="name_merchant" /> + <field name="address" /> + <field name="state" /> + <field name="city" /> + <field name="district" /> + <field name="subDistrict" /> + <field name="zip" /> + </group> + <group> + <field name="bank_name" /> + <field name="rekening_name" /> + <field name="account_number" /> + </group> + <group> + <field name="file_dokumenKtpDirut" widget="pdf_viewer"/> + <field name="file_kartuNama" widget="pdf_viewer"/> + <field name="file_npwp" widget="pdf_viewer"/> + <field name="file_sppkp" widget="pdf_viewer"/> + <field name="file_suratPernyataan" widget="pdf_viewer"/> + <field name="file_fotoKantor" widget="image"/> + </group> + <group> + <field name="email_company" widget="email"/> + <field name="email_sales" widget="email"/> + <field name="email_finance" widget="email"/> + <field name="phone" widget="phone"/> + <field name="mobile" widget="phone"/> + </group> + <group> + <field name="description" /> + </group> + </group> + </sheet> + </form> + </field> + </record> + + <record id="action_user_form_merchant" model="ir.actions.act_window"> + <field name="name">User Form Merchant</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">user.form.merchant</field> + <field name="view_mode">tree,form</field> + </record> + + <menuitem + id="menu_user_form_merchant" + name="User Form Merchant" + parent="contacts.menu_contacts" + sequence="3" + action="action_user_form_merchant" + /> + +</odoo>
\ No newline at end of file diff --git a/indoteknik_custom/views/user_merchant_request.xml b/indoteknik_custom/views/user_merchant_request.xml new file mode 100644 index 00000000..c67daae4 --- /dev/null +++ b/indoteknik_custom/views/user_merchant_request.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<odoo> + <record id="user_merchant_request_tree" model="ir.ui.view"> + <field name="name">user.merchant.request.tree</field> + <field name="model">user.merchant.request</field> + <field name="arch" type="xml"> + <tree create="1" default_order="create_date desc"> + <field name="user_id"/> + <field name="merchant_id"/> + <field name="state_merchant" decoration-success="state_merchant == 'approved'" decoration-danger="state_merchant == 'reject'" widget="badge" optional="show"/> + <field name="create_date"/> + </tree> + </field> + </record> + + <record id="user_merchant_request_form" model="ir.ui.view"> + <field name="name">user.merchant.request.form</field> + <field name="model">user.merchant.request</field> + <field name="arch" type="xml"> + <form create="0"> + <header> + <button name="button_approve" + string="Approve Merchant" + attrs="{'invisible': [('state_merchant', 'in', ['approved','reject'])]}" + type="object" + class="oe_highlight"/> + <button name="button_reject" + string="Reject" + attrs="{'invisible': [('state_merchant', 'in', ['approved','reject'])]}" + type="object" + groups="purchase.group_purchase_manager" + class="oe_highlight"/> + <field name="state_merchant" widget="statusbar" + statusbar_visible="draft,approved" + statusbar_colors='{"reject":"red"}'/> + </header> + <sheet> + <group> + <group> + <field name="user_id" readonly="1"/> + <field name="merchant_id"/> + </group> + </group> + </sheet> + <div class="oe_chatter"> + <field name="message_ids" widget="mail_thread"/> + </div> + </form> + </field> +</record> + + + + + <!-- Wizard for Reject Reason --> +<record id="view_reject_reason_wizard_merchant_form" model="ir.ui.view"> + <field name="name">reject.reason.wizard.merchant.form</field> + <field name="model">reject.reason.wizard.merchant</field> + <field name="arch" type="xml"> + <form string="Reject Reason"> + <group> + <field name="reason_reject" widget="text"/> + </group> + <footer> + <button string="Confirm" type="object" name="confirm_reject" class="btn-primary"/> + <button string="Cancel" class="btn-secondary" special="cancel"/> + </footer> + </form> + </field> +</record> + +<record id="action_reject_reason_wizard_merchant" model="ir.actions.act_window"> + <field name="name">Reject Reason</field> + <field name="res_model">reject.reason.wizard.merchant</field> + <field name="view_mode">form</field> + <field name="target">new</field> +</record> + + +<record id="view_confirm_approval_wizard_merchant_form" model="ir.ui.view"> + <field name="name">confirm.approval.wizard.merchant.form</field> + <field name="model">confirm.approval.wizard.merchant</field> + <field name="arch" type="xml"> + <form string="Konfirmasi Approval"> + <group> + <p>Apakah Anda yakin ingin mengapprove merchant ini?</p> + </group> + <footer> + <button string="Batal" class="btn-secondary" special="cancel"/> + <button string="Konfirmasi" type="object" name="confirm_approval" class="btn-primary"/> + </footer> + </form> + </field> +</record> + + + + <record id="action_user_merchant_request" model="ir.actions.act_window"> + <field name="name">User Merchant Request</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">user.merchant.request</field> + <field name="view_mode">tree,form</field> + </record> + + <menuitem + id="menu_user_merchant_request" + name="User Merchant Request" + parent="contacts.menu_contacts" + sequence="3" + action="action_user_merchant_request" + /> +</odoo>
\ No newline at end of file |
