diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-11-29 11:27:56 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-11-29 11:27:56 +0700 |
| commit | e3724de1677288345db05b9934f5197d11c1a713 (patch) | |
| tree | 4e3a9e8098d79d7900a49b08732cf78342fb9a8a | |
| parent | 57ea4bce8d785ba47a12ce0b3808a7d45e4add54 (diff) | |
<iman> pengajuan tempo
| -rw-r--r-- | indoteknik_custom/models/user_pengajuan_tempo_request.py | 57 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_pengajuan_tempo_request.xml | 9 |
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> |
