summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-11-29 11:27:56 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-11-29 11:27:56 +0700
commite3724de1677288345db05b9934f5197d11c1a713 (patch)
tree4e3a9e8098d79d7900a49b08732cf78342fb9a8a
parent57ea4bce8d785ba47a12ce0b3808a7d45e4add54 (diff)
<iman> pengajuan tempo
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo_request.py57
-rw-r--r--indoteknik_custom/views/user_pengajuan_tempo_request.xml9
2 files changed, 0 insertions, 66 deletions
diff --git a/indoteknik_custom/models/user_pengajuan_tempo_request.py b/indoteknik_custom/models/user_pengajuan_tempo_request.py
index 6c04ab7c..438d48cc 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo_request.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo_request.py
@@ -7,75 +7,18 @@ class UserPengajuanTempoRequest(models.Model):
_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')
- similar_company_ids = fields.Many2many('res.partner', compute="_compute_similar_companies", string="Similar Companies")
pengajuan_tempo_id = fields.Many2one('user.pengajuan.tempo', string='Form Tempo')
-
- @api.depends('user_input')
- def _compute_similar_companies(self):
- for record in self:
- if record.user_input:
- record.similar_company_ids = [(6, 0, self.get_similar_companies(record.user_input))]
- else:
- record.similar_company_ids = [(6, 0, [])]
-
- # def get_similar_companies(self, user_input):
- # query = """
- # SELECT id
- # FROM res_partner
- # WHERE levenshtein(name::text, %s) < 3
- # ORDER BY levenshtein(name::text, %s) ASC
- # """
- # self.env.cr.execute(query, (user_input, user_input))
- # return [row[0] for row in self.env.cr.fetchall()]
-
- def get_similar_companies(self, user_input):
- query = """
- SELECT id
- FROM res_partner
- WHERE (name ILIKE %s OR levenshtein(name::text, %s) < 3)
- AND active = TRUE AND is_company = TRUE
- ORDER BY levenshtein(name::text, %s) ASC
- """
- # Menggunakan '%' untuk mencocokkan nama perusahaan sebagian
- self.env.cr.execute(query, ('%' + user_input + '%', user_input, user_input))
- company_ids = [row[0] for row in self.env.cr.fetchall()]
- return company_ids
-
- internal_input = fields.Char(string='Internal Input')
- company_type = fields.Char(string='Company Type', compute='_compute_company_type')
-
- @api.depends('user_company_id.customer_type')
- def _compute_company_type(self):
- for record in self:
- if record.user_company_id.customer_type == 'nonpkp':
- record.company_type = 'Non PKP'
- elif record.user_company_id.customer_type == 'pkp':
- record.company_type = 'PKP'
- else:
- record.company_type = 'company type belum di set'
-
def write(self, vals):
user = self.get_user_by_email(self.user_id.email)
- user.parent_name = self.user_input
is_approve = vals.get('is_approve')
- is_internal_input = vals.get('internal_input')
company_id = ''
- if not self.user_company_id:
- company_id = request.env['res.partner'].search([('id', '=', vals.get('user_company_id'))], limit=1)
if self.is_approve and is_approve:
raise UserError('Tidak dapat mengubah approval yang sudah diisi')
- if is_internal_input:
- if self.user_company_id.nama_wajib_pajak == self.user_company_id.name:
- self.user_company_id.nama_wajib_pajak = is_internal_input
- self.user_company_id.name = is_internal_input
-
if not self.is_approve and is_approve:
if is_approve == 'approved':
self.pengajuan_tempo_id.partner_id = self.user_id.id
diff --git a/indoteknik_custom/views/user_pengajuan_tempo_request.xml b/indoteknik_custom/views/user_pengajuan_tempo_request.xml
index 19d00d44..3b08799c 100644
--- a/indoteknik_custom/views/user_pengajuan_tempo_request.xml
+++ b/indoteknik_custom/views/user_pengajuan_tempo_request.xml
@@ -7,16 +7,12 @@
<tree create="1" default_order="create_date desc">
<field name="user_id"/>
<field name="pengajuan_tempo_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="internal_input"/>
- <field name="company_type"/>
<field name="create_date"/>
</tree>
</field>
@@ -32,17 +28,12 @@
<group>
<field name="user_id" readonly="1"/>
<field name="pengajuan_tempo_id"/>
- <field name="similar_company_ids" invisible="1"/>
- <field name="user_company_id" domain="[('id', 'in', similar_company_ids)]"/>
- <field name="user_input" readonly="1"/>
<field
name="is_approve"
required="1"
decoration-success="is_approve == 'approved'"
decoration-danger="is_approve == 'rejected'"
/>
- <field name="internal_input" />
- <field name="company_type" readonly="1"/>
</group>
</group>
</sheet>