From afda28eb5bcda235c3c0b9479884894f9cd88c8c Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 1 Oct 2024 17:30:48 +0700 Subject: add inrernal input --- indoteknik_custom/models/user_company_request.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/user_company_request.py') diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index d540b0f6..f86f3872 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -1,4 +1,4 @@ -from odoo import models, fields +from odoo import models, fields, api from odoo.exceptions import UserError from odoo.http import request @@ -13,14 +13,32 @@ class UserCompanyRequest(models.Model): ('approved', 'Approve'), ('rejected', 'Reject'), ], string='Approval') + 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') 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.user_id.parent_id = self.user_company_id.id -- cgit v1.2.3 From 27a603a8bc4750dcacd295e07144c5ce2621783c Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 2 Oct 2024 15:10:46 +0700 Subject: cr estimated shipping price + cr user company request --- indoteknik_custom/models/user_company_request.py | 34 +++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/user_company_request.py') diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index d540b0f6..1b3434b1 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -1,4 +1,4 @@ -from odoo import models, fields +from odoo import models, fields, api from odoo.exceptions import UserError from odoo.http import request @@ -13,6 +13,38 @@ class UserCompanyRequest(models.Model): ('approved', 'Approve'), ('rejected', 'Reject'), ], string='Approval') + similar_company_ids = fields.Many2many('res.partner', compute="_compute_similar_companies", string="Similar Companies") + + @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 + ORDER BY levenshtein(name::text, %s) ASC + """ + # Using '%' to match the partial company name + 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 + def write(self, vals): user = self.get_user_by_email(self.user_id.email) -- cgit v1.2.3 From a7be93f4825967807f12e6bfbebcf090af8500fa Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 24 Oct 2024 11:02:01 +0700 Subject: cr user company request --- indoteknik_custom/models/user_company_request.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'indoteknik_custom/models/user_company_request.py') diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 6d809385..86e66934 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -23,24 +23,25 @@ class UserCompanyRequest(models.Model): 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 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 + WHERE (name ILIKE %s OR levenshtein(name::text, %s) < 3) + AND active = TRUE AND is_company = TRUE ORDER BY levenshtein(name::text, %s) ASC """ - # Using '%' to match the partial company name + # 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 -- cgit v1.2.3