From 60abd5d10aa4f606cade5ecf7d5c271905d4a18a Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 26 Aug 2024 14:51:43 +0700 Subject: add new register to try --- indoteknik_api/controllers/api_v1/user.py | 80 ++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 13 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index b9fd9f56..cc97d004 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -104,12 +104,24 @@ class User(controller.Controller): name = kw.get('name') email = kw.get('email') password = kw.get('password') - if not name or not email or not password: - return self.response(code=400, description='email, name and password is required') - - company = kw.get('company', False) phone = kw.get('phone') + # Form Data + npwp = kw.get('npwp') # File upload for NPWP + npwp_document = kw.get('npwp_document', False) # String input for NPWP document + sppkp = kw.get('sppkp', False) # File upload for SPPKP + sppkp_document = kw.get('sppkp_document', False) # String input for SPPKP document + email_partner = kw.get('email_partner') + business_name = kw.get('business_name', False) + industry_id = int(kw.get('industry_id', '0') or 0) + company_type_id = int(kw.get('company_type_id', '0') or 0) + nama_wajib_pajak = kw.get('nama_wajib_pajak', False) + is_pkp = kw.get('is_pkp') + type_acc = kw.get('type_acc', False) + + if not name or not email or not password: + return self.response(code=400, description='email, name, and password are required') + response = { 'register': False, 'reason': None @@ -125,38 +137,80 @@ class User(controller.Controller): return self.response(response) + # Create user data user_data = { 'name': name, 'login': email, 'phone': phone, 'password': password, - 'active': False, + 'active': True, 'sel_groups_1_9_10': 9 } user = request.env['res.users'].create(user_data) user.partner_id.email = email + user.partner_id.phone = phone - if company: + if type_acc == 'business': parameter = [ ('company_type', '=', 'company'), - ('name', 'ilike', company) + ('name', 'ilike', business_name) ] match_company = request.env['res.partner'].search(parameter, limit=1) match_ratio = 0 if match_company: - match_ratio = SequenceMatcher(None, match_company.name, company).ratio() + match_ratio = SequenceMatcher(None, match_company.name, business_name).ratio() if match_ratio > 0.8: + # Set the user's partner's parent to the matched company + user.partner_id.parent_id = match_company.id + + # Create a user company request request.env['user.company.request'].create({ 'user_id': user.partner_id.id, 'user_company_id': match_company.id, - 'user_input': company + 'user_input': business_name }) else: - new_company = request.env['res.partner'].create({ - 'name': company - }) - user.parent_id = new_company.id + if not nama_wajib_pajak and not is_pkp: + nama_wajib_pajak = business_name + + new_company_data = { + 'name': business_name if business_name else business_name, + 'company_type_id': company_type_id if company_type_id else False, + 'industry_id': industry_id, + 'customer_type': 'pkp' if is_pkp else 'nonpkp', + 'npwp': npwp if is_pkp else (npwp if npwp else '0000'), + 'sppkp': sppkp if is_pkp else (sppkp if sppkp else '0000'), + 'nama_wajib_pajak': nama_wajib_pajak, + 'email': email_partner, + 'company_type': 'company' + } + new_company = request.env['res.partner'].create(new_company_data) + user.partner_id.parent_id = new_company.id + + if npwp_document: + pdf_data = base64.b64decode(npwp_document) + npwp_attachment = request.env['ir.attachment'].create({ + 'name': 'NPWP Document', + 'type': 'binary', + 'datas': pdf_data, + 'res_model': 'res.partner', + 'res_id': new_company.id, + 'mimetype': 'application/pdf' + }) + new_company.message_post(body="NPWP Uploaded", attachment_ids=[npwp_attachment.id]) + + if sppkp_document: + pdf_data = base64.b64decode(sppkp_document) + sppkp_attachment = request.env['ir.attachment'].create({ + 'name': 'SPPKP Document', + 'type': 'binary', + 'datas': pdf_data, + 'res_model': 'res.partner', + 'res_id': new_company.id, + 'mimetype': 'application/pdf' + }) + new_company.message_post(body="SPPKP Uploaded", attachment_ids=[sppkp_attachment.id]) user.send_activation_mail() -- cgit v1.2.3 From f8367ac86e743ed7c7119c9ebcadba110c115e36 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 26 Aug 2024 16:07:37 +0700 Subject: update make new company pkp --- indoteknik_api/controllers/api_v1/user.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index cc97d004..bacf7009 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -178,9 +178,9 @@ class User(controller.Controller): 'name': business_name if business_name else business_name, 'company_type_id': company_type_id if company_type_id else False, 'industry_id': industry_id, - 'customer_type': 'pkp' if is_pkp else 'nonpkp', - 'npwp': npwp if is_pkp else (npwp if npwp else '0000'), - 'sppkp': sppkp if is_pkp else (sppkp if sppkp else '0000'), + 'customer_type': 'pkp' if is_pkp == 'true' else 'nonpkp', + 'npwp': npwp if is_pkp == 'true' else (npwp if npwp else '0000'), + 'sppkp': sppkp if is_pkp == 'true' else (sppkp if sppkp else '0000'), 'nama_wajib_pajak': nama_wajib_pajak, 'email': email_partner, 'company_type': 'company' -- cgit v1.2.3 From bee9842dda7aff8925f71f520765b0cf017e4526 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 27 Aug 2024 09:53:05 +0700 Subject: cr new register --- indoteknik_api/controllers/api_v1/user.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index cc97d004..2e2a2cc6 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -107,10 +107,10 @@ class User(controller.Controller): phone = kw.get('phone') # Form Data - npwp = kw.get('npwp') # File upload for NPWP - npwp_document = kw.get('npwp_document', False) # String input for NPWP document - sppkp = kw.get('sppkp', False) # File upload for SPPKP - sppkp_document = kw.get('sppkp_document', False) # String input for SPPKP document + npwp = kw.get('npwp') + npwp_document = kw.get('npwp_document', False) + sppkp = kw.get('sppkp', False) + sppkp_document = kw.get('sppkp_document', False) email_partner = kw.get('email_partner') business_name = kw.get('business_name', False) industry_id = int(kw.get('industry_id', '0') or 0) @@ -179,8 +179,8 @@ class User(controller.Controller): 'company_type_id': company_type_id if company_type_id else False, 'industry_id': industry_id, 'customer_type': 'pkp' if is_pkp else 'nonpkp', - 'npwp': npwp if is_pkp else (npwp if npwp else '0000'), - 'sppkp': sppkp if is_pkp else (sppkp if sppkp else '0000'), + 'npwp': npwp if is_pkp else (npwp if npwp else '0.000.000.0-000.000'), + 'sppkp': sppkp if is_pkp else (sppkp if sppkp else ''), 'nama_wajib_pajak': nama_wajib_pajak, 'email': email_partner, 'company_type': 'company' -- cgit v1.2.3 From cda852c61878d46c14c7c04e8eaaf68a268f6149 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 27 Aug 2024 10:31:32 +0700 Subject: cr api new register --- indoteknik_api/controllers/api_v1/user.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 2e2a2cc6..a7e200cd 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -187,6 +187,10 @@ class User(controller.Controller): } new_company = request.env['res.partner'].create(new_company_data) user.partner_id.parent_id = new_company.id + user.partner_id.customer_type = new_company.customer_type + user.partner_id.npwp = new_company.npwp + user.partner_id.sppkp = new_company.sppkp + user.partner_id.nama_wajib_pajak = new_company.nama_wajib_pajak if npwp_document: pdf_data = base64.b64decode(npwp_document) -- cgit v1.2.3 From f7ba6f97d3367e54e3c24eaf24002ca7abbd5383 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 27 Aug 2024 14:48:37 +0700 Subject: update make attachment --- indoteknik_api/controllers/api_v1/user.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index a7e200cd..59684b4c 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -9,6 +9,8 @@ import string import requests import json from difflib import SequenceMatcher +import mimetypes +import base64 class User(controller.Controller): @@ -106,15 +108,20 @@ class User(controller.Controller): password = kw.get('password') phone = kw.get('phone') + # Form Data # Form Data npwp = kw.get('npwp') npwp_document = kw.get('npwp_document', False) + npwp_filename = kw.get('npwp_filename', 'npwp_document') sppkp = kw.get('sppkp', False) sppkp_document = kw.get('sppkp_document', False) + sppkp_filename = kw.get('sppkp_filename', 'sppkp_document') email_partner = kw.get('email_partner') business_name = kw.get('business_name', False) industry_id = int(kw.get('industry_id', '0') or 0) company_type_id = int(kw.get('company_type_id', '0') or 0) + alamat_wajib_pajak = kw.get('alamat_wajib_pajak', False) + alamat_bisnis = kw.get('alamat_bisnis', False) nama_wajib_pajak = kw.get('nama_wajib_pajak', False) is_pkp = kw.get('is_pkp') type_acc = kw.get('type_acc', False) @@ -174,6 +181,9 @@ class User(controller.Controller): if not nama_wajib_pajak and not is_pkp: nama_wajib_pajak = business_name + if not alamat_wajib_pajak and not is_pkp: + alamat_wajib_pajak = alamat_bisnis + new_company_data = { 'name': business_name if business_name else business_name, 'company_type_id': company_type_id if company_type_id else False, @@ -182,7 +192,9 @@ class User(controller.Controller): 'npwp': npwp if is_pkp else (npwp if npwp else '0.000.000.0-000.000'), 'sppkp': sppkp if is_pkp else (sppkp if sppkp else ''), 'nama_wajib_pajak': nama_wajib_pajak, + 'alamat_lengkap_text': alamat_wajib_pajak, 'email': email_partner, + 'street': alamat_bisnis, 'company_type': 'company' } new_company = request.env['res.partner'].create(new_company_data) @@ -191,28 +203,33 @@ class User(controller.Controller): user.partner_id.npwp = new_company.npwp user.partner_id.sppkp = new_company.sppkp user.partner_id.nama_wajib_pajak = new_company.nama_wajib_pajak + user.partner_id.alamat_lengkap_text = new_company.alamat_lengkap_text if npwp_document: + npwp_mimetype, _ = mimetypes.guess_type(npwp_filename) + npwp_mimetype = npwp_mimetype or 'application/octet-stream' pdf_data = base64.b64decode(npwp_document) npwp_attachment = request.env['ir.attachment'].create({ 'name': 'NPWP Document', 'type': 'binary', - 'datas': pdf_data, + 'datas': base64.b64encode(pdf_data), 'res_model': 'res.partner', 'res_id': new_company.id, - 'mimetype': 'application/pdf' + 'mimetype': npwp_mimetype }) new_company.message_post(body="NPWP Uploaded", attachment_ids=[npwp_attachment.id]) if sppkp_document: + sppkp_mimetype, _ = mimetypes.guess_type(sppkp_filename) + sppkp_mimetype = sppkp_mimetype or 'application/octet-stream' pdf_data = base64.b64decode(sppkp_document) sppkp_attachment = request.env['ir.attachment'].create({ 'name': 'SPPKP Document', 'type': 'binary', - 'datas': pdf_data, + 'datas': base64.b64encode(pdf_data), 'res_model': 'res.partner', 'res_id': new_company.id, - 'mimetype': 'application/pdf' + 'mimetype': sppkp_mimetype }) new_company.message_post(body="SPPKP Uploaded", attachment_ids=[sppkp_attachment.id]) -- cgit v1.2.3 From 161d234409fa146f8bab98697f568d7a4c1348e1 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 27 Aug 2024 15:14:53 +0700 Subject: update logic code --- indoteknik_api/controllers/api_v1/user.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 59684b4c..4a61270f 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -178,19 +178,19 @@ class User(controller.Controller): 'user_input': business_name }) else: - if not nama_wajib_pajak and not is_pkp: + if not nama_wajib_pajak and is_pkp == 'false': nama_wajib_pajak = business_name - if not alamat_wajib_pajak and not is_pkp: + if not alamat_wajib_pajak and is_pkp == 'false': alamat_wajib_pajak = alamat_bisnis new_company_data = { 'name': business_name if business_name else business_name, 'company_type_id': company_type_id if company_type_id else False, 'industry_id': industry_id, - 'customer_type': 'pkp' if is_pkp else 'nonpkp', - 'npwp': npwp if is_pkp else (npwp if npwp else '0.000.000.0-000.000'), - 'sppkp': sppkp if is_pkp else (sppkp if sppkp else ''), + 'customer_type': 'pkp' if is_pkp == 'true' else 'nonpkp', + 'npwp': npwp if is_pkp == 'true' else (npwp if npwp else '0.000.000.0-000.000'), + 'sppkp': sppkp if is_pkp == 'true' else (sppkp if sppkp else ''), 'nama_wajib_pajak': nama_wajib_pajak, 'alamat_lengkap_text': alamat_wajib_pajak, 'email': email_partner, -- cgit v1.2.3 From 0633f4fa379370de41195e20058e6e671d27b4a9 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 28 Aug 2024 13:14:07 +0700 Subject: update make user individu data --- indoteknik_api/controllers/api_v1/user.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 4a61270f..3fb10333 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -108,7 +108,6 @@ class User(controller.Controller): password = kw.get('password') phone = kw.get('phone') - # Form Data # Form Data npwp = kw.get('npwp') npwp_document = kw.get('npwp_document', False) @@ -170,6 +169,11 @@ class User(controller.Controller): if match_ratio > 0.8: # Set the user's partner's parent to the matched company user.partner_id.parent_id = match_company.id + user.partner_id.customer_type = match_company.customer_type + user.partner_id.npwp = match_company.npwp + user.partner_id.sppkp = match_company.sppkp + user.partner_id.nama_wajib_pajak = match_company.nama_wajib_pajak + user.partner_id.alamat_lengkap_text = match_company.alamat_lengkap_text # Create a user company request request.env['user.company.request'].create({ @@ -233,6 +237,11 @@ class User(controller.Controller): }) new_company.message_post(body="SPPKP Uploaded", attachment_ids=[sppkp_attachment.id]) + if type_acc == 'individu': + user.partner_id.customer_type = 'nonpkp' + user.partner_id.npwp = '0.000.000.0-000.000' + user.partner_id.nama_wajib_pajak = name + user.send_activation_mail() response['register'] = True -- cgit v1.2.3 From 4aa0f2612225de32d361547f39283c1529fe955b Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 28 Aug 2024 14:09:05 +0700 Subject: update address fakture --- indoteknik_custom/models/res_partner.py | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index ac126337..6a1257f8 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -58,6 +58,46 @@ class ResPartner(models.Model): default=_default_payment_term ) + @api.depends("street", "street2", "city", "state_id", "country_id", "blok", "nomor", "rt", "rw", "kelurahan_id", + "kecamatan_id") + def _alamat_lengkap(self): + for partner in self: + lengkap = partner.street or "" + lengkap += " " + (partner.street2 or '') + + if partner.blok: + lengkap += " Blok: " + partner.blok + ", " + if partner.nomor: + lengkap += " Nomor: " + partner.nomor + ", " + + if partner.rt: + lengkap += " RT: " + partner.rt + if partner.rw: + lengkap += " RW: " + partner.rw + + if partner.kelurahan_id: + lengkap += " Kel: " + partner.kelurahan_id.name + "," + + if partner.kecamatan_id: + lengkap += " Kec: " + partner.kecamatan_id.name + + if partner.kota_id: + lengkap += """ + """ + partner.kota_id.name + "," + + if partner.state_id: + lengkap += " " + partner.state_id.name + + partner.alamat_lengkap = lengkap.upper() + + if partner.company_type == 'person' and not partner.parent_id: + partner.alamat_lengkap_text = partner.street + else: + partner.alamat_lengkap_text = partner.alamat_lengkap + + alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") + alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False) + def write(self, vals): res = super(ResPartner, self).write(vals) -- cgit v1.2.3 From cf31bebc38f23450b7c429bb4b3a567515071a40 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 28 Aug 2024 15:30:24 +0700 Subject: update to handle user company request --- indoteknik_api/controllers/api_v1/user.py | 8 -------- indoteknik_custom/models/user_company_request.py | 5 +++++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 3fb10333..bbf1c8d1 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -167,14 +167,6 @@ class User(controller.Controller): if match_company: match_ratio = SequenceMatcher(None, match_company.name, business_name).ratio() if match_ratio > 0.8: - # Set the user's partner's parent to the matched company - user.partner_id.parent_id = match_company.id - user.partner_id.customer_type = match_company.customer_type - user.partner_id.npwp = match_company.npwp - user.partner_id.sppkp = match_company.sppkp - user.partner_id.nama_wajib_pajak = match_company.nama_wajib_pajak - user.partner_id.alamat_lengkap_text = match_company.alamat_lengkap_text - # Create a user company request request.env['user.company.request'].create({ 'user_id': user.partner_id.id, diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 2467261a..7d28d7ed 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -22,6 +22,11 @@ class UserCompanyRequest(models.Model): if not self.is_approve and is_approve: if is_approve == 'approved': self.user_id.parent_id = self.user_company_id.id + self.user_id.customer_type = self.user_company_id.customer_type + self.user_id.npwp = self.user_company_id.npwp + self.user_id.sppkp = self.user_company_id.sppkp + self.user_id.nama_wajib_pajak = self.user_company_id.nama_wajib_pajak + self.user_id.alamat_lengkap_text = self.user_company_id.alamat_lengkap_text else: new_company = self.env['res.partner'].create({ 'name': self.user_input -- cgit v1.2.3 From 04a39b785c2e3feef390d46e498e27289a10ffb4 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 28 Aug 2024 15:59:17 +0700 Subject: update user active false --- indoteknik_api/controllers/api_v1/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index bbf1c8d1..13a0a293 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -149,7 +149,7 @@ class User(controller.Controller): 'login': email, 'phone': phone, 'password': password, - 'active': True, + 'active': False, 'sel_groups_1_9_10': 9 } -- cgit v1.2.3 From 09ff6a7ea7860698c736afd926b7d249b1509de9 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 29 Aug 2024 13:37:13 +0700 Subject: update phone number missing at web --- indoteknik_api/controllers/api_v1/user.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 13a0a293..4e20e2c8 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -147,7 +147,7 @@ class User(controller.Controller): user_data = { 'name': name, 'login': email, - 'phone': phone, + 'mobile': phone, 'password': password, 'active': False, 'sel_groups_1_9_10': 9 @@ -155,7 +155,7 @@ class User(controller.Controller): user = request.env['res.users'].create(user_data) user.partner_id.email = email - user.partner_id.phone = phone + user.partner_id.mobile = phone if type_acc == 'business': parameter = [ -- cgit v1.2.3 From c3d6ea4ae3ce658a2b01b3b79561d6ebf15f41ef Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 30 Aug 2024 11:05:04 +0700 Subject: ubah format npwp dan sppkp --- indoteknik_api/controllers/api_v1/user.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 4e20e2c8..61bb4425 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -185,8 +185,8 @@ class User(controller.Controller): 'company_type_id': company_type_id if company_type_id else False, 'industry_id': industry_id, 'customer_type': 'pkp' if is_pkp == 'true' else 'nonpkp', - 'npwp': npwp if is_pkp == 'true' else (npwp if npwp else '0.000.000.0-000.000'), - 'sppkp': sppkp if is_pkp == 'true' else (sppkp if sppkp else ''), + 'npwp': npwp if is_pkp == 'true' else (npwp if npwp else '00.000.000.0-000.000'), + 'sppkp': sppkp if is_pkp == 'true' else (sppkp if sppkp else '-'), 'nama_wajib_pajak': nama_wajib_pajak, 'alamat_lengkap_text': alamat_wajib_pajak, 'email': email_partner, -- cgit v1.2.3 From 6d90f84246b1c6ef01b3ba3f1231450b11862719 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 30 Aug 2024 11:52:21 +0700 Subject: udate new register --- indoteknik_api/controllers/api_v1/user.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 61bb4425..1f9c077e 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -191,15 +191,26 @@ class User(controller.Controller): 'alamat_lengkap_text': alamat_wajib_pajak, 'email': email_partner, 'street': alamat_bisnis, - 'company_type': 'company' + 'company_type': 'company', + 'user_id': 3222, + 'property_account_receivable_id': 395, + 'property_account_payable_id': 438, + 'active_limit': True, + 'warning_stage': 4000000, + # 'blocking_stage': 5000000, } new_company = request.env['res.partner'].create(new_company_data) - user.partner_id.parent_id = new_company.id - user.partner_id.customer_type = new_company.customer_type - user.partner_id.npwp = new_company.npwp - user.partner_id.sppkp = new_company.sppkp - user.partner_id.nama_wajib_pajak = new_company.nama_wajib_pajak - user.partner_id.alamat_lengkap_text = new_company.alamat_lengkap_text + request.env['user.company.request'].create({ + 'user_id': user.partner_id.id, + 'user_company_id': new_company.id, + 'user_input': business_name + }) + # user.partner_id.parent_id = new_company.id + # user.partner_id.customer_type = new_company.customer_type + # user.partner_id.npwp = new_company.npwp + # user.partner_id.sppkp = new_company.sppkp + # user.partner_id.nama_wajib_pajak = new_company.nama_wajib_pajak + # user.partner_id.alamat_lengkap_text = new_company.alamat_lengkap_text if npwp_document: npwp_mimetype, _ = mimetypes.guess_type(npwp_filename) @@ -232,6 +243,7 @@ class User(controller.Controller): if type_acc == 'individu': user.partner_id.customer_type = 'nonpkp' user.partner_id.npwp = '0.000.000.0-000.000' + user.partner_id.sppkp = '-' user.partner_id.nama_wajib_pajak = name user.send_activation_mail() -- cgit v1.2.3 From edafc890045d833289ad3b53ce3375625f18e54c Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 30 Aug 2024 14:59:50 +0700 Subject: update jika sppkp diganti di order, parent sppkp juga terganti --- indoteknik_api/controllers/api_v1/sale_order.py | 11 +++++--- indoteknik_custom/models/sale_order.py | 35 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index a50cb264..7edd71f6 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -378,6 +378,9 @@ class SaleOrder(controller.Controller): if not params['valid']: return self.response(code=400, description=params) + # Fetch partner details + sales_partner = request.env['res.partner'].browse(params['value']['partner_id']) + parameters = { 'warehouse_id': 8, 'carrier_id': 1, @@ -405,9 +408,11 @@ class SaleOrder(controller.Controller): 'delivery_service_type': params['value']['delivery_service_type'], 'flash_sale': params['value']['flash_sale'], 'note_website': params['value']['note_website'], - 'customer_type': 'nonpkp', - 'npwp': '0', - 'user_id': 3222 # User ID: Nadia Rauhadatul Firdaus + 'customer_type': sales_partner.customer_type if sales_partner else 'nonpkp', # Get Customer Type from partner + 'npwp': sales_partner.npwp or '0', # Get NPWP from partner + 'sppkp': sales_partner.sppkp, # Get SPPKP from partner + 'email': sales_partner.email, # Get Email from partner + 'user_id': 3222 # User ID: Nadia Rauhadatul Firdaus } sales_partner = request.env['res.partner'].browse(parameters['partner_id']) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 710e99de..16a1f415 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -942,3 +942,38 @@ class SaleOrder(models.Model): order_line.tax_id = tax_id order_line.discount = discount order_line.order_id.use_button = True + + @api.model + def create(self, vals): + # Ensure partner details are updated when a sale order is created + order = super(SaleOrder, self).create(vals) + order._update_partner_details() + return order + + def write(self, vals): + # Call the super method to handle the write operation + res = super(SaleOrder, self).write(vals) + + # Check if the update is coming from a save operation + if any(field in vals for field in ['sppkp', 'npwp', 'email', 'customer_type']): + self._update_partner_details() + + return res + + def _update_partner_details(self): + for order in self: + partner = order.partner_id.parent_id or order.partner_id + if partner: + # Update partner details + partner.sppkp = order.sppkp + partner.npwp = order.npwp + partner.email = order.email + partner.customer_type = order.customer_type + + # Save changes to the partner record + partner.write({ + 'sppkp': partner.sppkp, + 'npwp': partner.npwp, + 'email': partner.email, + 'customer_type': partner.customer_type, + }) \ No newline at end of file -- cgit v1.2.3 From 0801de741384b29a01f5570f420da10953834e22 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 30 Aug 2024 16:13:46 +0700 Subject: update automatic data new register --- indoteknik_api/controllers/api_v1/user.py | 3 +++ indoteknik_custom/models/user_company_request.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 1f9c077e..a8b1a3eb 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -245,6 +245,9 @@ class User(controller.Controller): user.partner_id.npwp = '0.000.000.0-000.000' user.partner_id.sppkp = '-' user.partner_id.nama_wajib_pajak = name + user.partner_id.user_id = 3222 + user.partner_id.property_account_receivable_id= 395 + user.partner_id.property_account_payable_id = 438 user.send_activation_mail() diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 7d28d7ed..69067e9c 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -27,6 +27,9 @@ class UserCompanyRequest(models.Model): self.user_id.sppkp = self.user_company_id.sppkp self.user_id.nama_wajib_pajak = self.user_company_id.nama_wajib_pajak self.user_id.alamat_lengkap_text = self.user_company_id.alamat_lengkap_text + self.user_id.user_id = self.user_company_id.user_id + self.user_id.property_account_receivable_id = self.user_company_id.property_account_receivable_id + self.user_id.property_account_payable_id = self.user_company_id.property_account_payable_id else: new_company = self.env['res.partner'].create({ 'name': self.user_input -- cgit v1.2.3 From dfc764a3f3b2adb9526740342ada58ed4ddfcb11 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 30 Aug 2024 16:41:49 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/user.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index a8b1a3eb..6300eb86 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -195,9 +195,6 @@ class User(controller.Controller): 'user_id': 3222, 'property_account_receivable_id': 395, 'property_account_payable_id': 438, - 'active_limit': True, - 'warning_stage': 4000000, - # 'blocking_stage': 5000000, } new_company = request.env['res.partner'].create(new_company_data) request.env['user.company.request'].create({ -- cgit v1.2.3 From 1da66aee1b99ce8fc10b7a4f1c2437dfce7c9ee4 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 3 Sep 2024 15:41:30 +0700 Subject: cr register --- indoteknik_api/controllers/api_v1/user.py | 1 + indoteknik_custom/models/user_company_request.py | 1 + 2 files changed, 2 insertions(+) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 6300eb86..ea74d297 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -195,6 +195,7 @@ class User(controller.Controller): 'user_id': 3222, 'property_account_receivable_id': 395, 'property_account_payable_id': 438, + 'active': False, } new_company = request.env['res.partner'].create(new_company_data) request.env['user.company.request'].create({ diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 69067e9c..d6134650 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -30,6 +30,7 @@ class UserCompanyRequest(models.Model): self.user_id.user_id = self.user_company_id.user_id self.user_id.property_account_receivable_id = self.user_company_id.property_account_receivable_id self.user_id.property_account_payable_id = self.user_company_id.property_account_payable_id + self.user_company_id.active = True else: new_company = self.env['res.partner'].create({ 'name': self.user_input -- cgit v1.2.3 From 066f8b9d9499be72cdbb4fb0a8d0e6ee766fdc4d Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 3 Sep 2024 16:07:39 +0700 Subject: cr default order --- indoteknik_custom/views/user_company_request.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/views/user_company_request.xml b/indoteknik_custom/views/user_company_request.xml index 2efc1e9b..c9edd3f8 100644 --- a/indoteknik_custom/views/user_company_request.xml +++ b/indoteknik_custom/views/user_company_request.xml @@ -4,7 +4,7 @@ user.company.request.tree user.company.request - + -- cgit v1.2.3 From 4643df754b03eb3f8ae9567bc5b5327934b6cc83 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 4 Sep 2024 17:15:20 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/partner.py | 11 +++++-- indoteknik_api/models/res_users.py | 1 + indoteknik_custom/models/res_partner.py | 46 ++++++++++++++++++++++------ 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index 69a2f861..4716173e 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -116,20 +116,25 @@ class Partner(controller.Controller): def write_partner_by_id(self, **kw): params = self.get_request_params(kw, { 'id': ['required', 'number'], - 'name': [], 'company_type_id': ['number'], 'industry_id': ['number'], 'tax_name': ['alias:nama_wajib_pajak'], 'npwp': [], + 'alamat_lengkap_text':[], + }) + + id_user = self.get_request_params(kw, { + 'id_user': ['number'] }) if not params['valid']: return self.response(code=400, description=params) - + partner = request.env[self._name].search([('id', '=', params['value']['id'])], limit=1) if not partner: return self.response(code=404, description='User not found') - + + # Simpan perubahan data partner.write(params['value']) return self.response({ diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py index d5dff876..2c0a986b 100644 --- a/indoteknik_api/models/res_users.py +++ b/indoteknik_api/models/res_users.py @@ -55,6 +55,7 @@ class ResUsers(models.Model): 'tax_name': user.nama_wajib_pajak or '', 'npwp': user.npwp or '', 'rajaongkir_city_id': user.kecamatan_id.rajaongkir_id or 0, + 'alamat_wajib_pajak': user.alamat_lengkap_text or None, } if user.kota_id: diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 6a1257f8..9f2c82e2 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -98,20 +98,46 @@ class ResPartner(models.Model): alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False) - def write(self, vals): - res = super(ResPartner, self).write(vals) - - # if 'property_payment_term_id' in vals: - # if not self.env.user.is_accounting and vals['property_payment_term_id'] != 26: - # raise UserError('Hanya Finance Accounting yang dapat merubah payment term') + # def write(self, vals): + # res = super(ResPartner, self).write(vals) + # + # # if 'property_payment_term_id' in vals: + # # if not self.env.user.is_accounting and vals['property_payment_term_id'] != 26: + # # raise UserError('Hanya Finance Accounting yang dapat merubah payment term') + # + # # group_id = self.env.ref('indoteknik_custom.group_role_merchandiser').id + # # users_in_group = self.env['res.users'].search([('groups_id', 'in', [group_id])]) + # # if self.env.user.id not in users_in_group.mapped('id'): + # # raise UserError('You name it') + # + # return res - # group_id = self.env.ref('indoteknik_custom.group_role_merchandiser').id - # users_in_group = self.env['res.users'].search([('groups_id', 'in', [group_id])]) - # if self.env.user.id not in users_in_group.mapped('id'): - # raise UserError('You name it') + def write(self, vals): + if self.company_type == 'person': + if self.parent_id: + parent = self.parent_id + vals['customer_type'] = parent.customer_type + vals['nama_wajib_pajak'] = parent.nama_wajib_pajak + vals['npwp'] = parent.npwp + vals['sppkp'] = parent.sppkp + vals['alamat_lengkap_text'] = parent.alamat_lengkap_text + vals['industry_id'] = parent.industry_id.id + vals['company_type_id'] = parent.company_type_id.id + res = super(ResPartner, self).write(vals) return res + @api.onchange('company_type') + def _onchange_company_type(self): + if self.company_type == 'person' and self.parent_id: + self.customer_type = self.parent_id.customer_type + self.npwp = self.parent_id.npwp + self.sppkp = self.parent_id.sppkp + self.nama_wajib_pajak = self.parent_id.nama_wajib_pajak + self.alamat_lengkap_text = self.parent_id.alamat_lengkap_text + self.industry_id = self.parent_id.industry_id.id + self.company_type_id = self.parent_id.company_type_id.id + @api.constrains('property_payment_term_id') def updated_by_payment_term(self): for rec in self: -- cgit v1.2.3 From 95d7027481595aa83d75570044391e68c11e9ce1 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 5 Sep 2024 09:41:47 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/partner.py | 8 ++------ indoteknik_custom/models/res_partner.py | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index 4716173e..f662fd79 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -116,15 +116,12 @@ class Partner(controller.Controller): def write_partner_by_id(self, **kw): params = self.get_request_params(kw, { 'id': ['required', 'number'], + 'name': [], 'company_type_id': ['number'], 'industry_id': ['number'], 'tax_name': ['alias:nama_wajib_pajak'], 'npwp': [], - 'alamat_lengkap_text':[], - }) - - id_user = self.get_request_params(kw, { - 'id_user': ['number'] + 'alamat_lengkap_text': [], }) if not params['valid']: @@ -134,7 +131,6 @@ class Partner(controller.Controller): if not partner: return self.response(code=404, description='User not found') - # Simpan perubahan data partner.write(params['value']) return self.response({ diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 9f2c82e2..3cc1b1aa 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -92,8 +92,8 @@ class ResPartner(models.Model): if partner.company_type == 'person' and not partner.parent_id: partner.alamat_lengkap_text = partner.street - else: - partner.alamat_lengkap_text = partner.alamat_lengkap + if partner.company_type == 'person' and partner.parent_id: + partner.alamat_lengkap_text = partner.parent_id.alamat_lengkap_text alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False) -- cgit v1.2.3 From 84cb69b4ce0a793768fbeca4367d37f21e896615 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 6 Sep 2024 16:20:11 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/partner.py | 12 +++++ indoteknik_custom/models/res_partner.py | 62 ++++++++++++------------ indoteknik_custom/models/user_company_request.py | 2 + 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index f662fd79..b844b6ee 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -123,15 +123,27 @@ class Partner(controller.Controller): 'npwp': [], 'alamat_lengkap_text': [], }) + id_user = self.get_request_params(kw, { + 'id_user': ['number'] + }) + params_user = self.get_request_params(kw, { + 'company_type_id': ['number'], + 'industry_id': ['number'], + 'tax_name': ['alias:nama_wajib_pajak'], + 'npwp': [], + 'alamat_lengkap_text': [], + }) if not params['valid']: return self.response(code=400, description=params) partner = request.env[self._name].search([('id', '=', params['value']['id'])], limit=1) + user = request.env[self._name].search([('id', '=', id_user['value']['id_user'])], limit=1) if not partner: return self.response(code=404, description='User not found') partner.write(params['value']) + user.write(params_user['value']) return self.response({ 'id': partner.id diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 3cc1b1aa..b8a6502c 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -92,14 +92,15 @@ class ResPartner(models.Model): if partner.company_type == 'person' and not partner.parent_id: partner.alamat_lengkap_text = partner.street - if partner.company_type == 'person' and partner.parent_id: - partner.alamat_lengkap_text = partner.parent_id.alamat_lengkap_text + # if partner.company_type == 'person' and partner.parent_id: + # partner.alamat_lengkap_text = partner.parent_id.alamat_lengkap_text + alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") - alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False) + alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False , tracking=3) - # def write(self, vals): - # res = super(ResPartner, self).write(vals) + def write(self, vals): + res = super(ResPartner, self).write(vals) # # # if 'property_payment_term_id' in vals: # # if not self.env.user.is_accounting and vals['property_payment_term_id'] != 26: @@ -110,33 +111,34 @@ class ResPartner(models.Model): # # if self.env.user.id not in users_in_group.mapped('id'): # # raise UserError('You name it') # - # return res - - def write(self, vals): - if self.company_type == 'person': - if self.parent_id: - parent = self.parent_id - vals['customer_type'] = parent.customer_type - vals['nama_wajib_pajak'] = parent.nama_wajib_pajak - vals['npwp'] = parent.npwp - vals['sppkp'] = parent.sppkp - vals['alamat_lengkap_text'] = parent.alamat_lengkap_text - vals['industry_id'] = parent.industry_id.id - vals['company_type_id'] = parent.company_type_id.id - - res = super(ResPartner, self).write(vals) return res - @api.onchange('company_type') - def _onchange_company_type(self): - if self.company_type == 'person' and self.parent_id: - self.customer_type = self.parent_id.customer_type - self.npwp = self.parent_id.npwp - self.sppkp = self.parent_id.sppkp - self.nama_wajib_pajak = self.parent_id.nama_wajib_pajak - self.alamat_lengkap_text = self.parent_id.alamat_lengkap_text - self.industry_id = self.parent_id.industry_id.id - self.company_type_id = self.parent_id.company_type_id.id + # def write(self, vals): + # if self.company_type == 'person': + # if self.parent_id: + # parent = self.parent_id + # vals['customer_type'] = parent.customer_type + # vals['nama_wajib_pajak'] = parent.nama_wajib_pajak + # vals['npwp'] = parent.npwp + # vals['sppkp'] = parent.sppkp + # vals['alamat_lengkap_text'] = parent.alamat_lengkap_text + # vals['industry_id'] = parent.industry_id.id + # vals['company_type_id'] = parent.company_type_id.id + # + # res = super(ResPartner, self).write(vals) + # return res + + @api.depends('company_type', 'parent_id', 'npwp', 'sppkp', 'nama_wajib_pajak','alamat_lengkap_text', 'industry_id', 'company_type_id') + def _related_fields(self): + for partner in self: + if partner.company_type == 'person' and partner.parent_id: + partner.customer_type = partner.parent_id.customer_type + partner.npwp = partner.parent_id.npwp + partner.sppkp = partner.parent_id.sppkp + partner.nama_wajib_pajak = partner.parent_id.nama_wajib_pajak + partner.alamat_lengkap_text = partner.parent_id.alamat_lengkap_text + partner.industry_id = partner.parent_id.industry_id.id + partner.company_type_id = partner.parent_id.company_type_id.id @api.constrains('property_payment_term_id') def updated_by_payment_term(self): diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index d6134650..56bb8d5d 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -27,6 +27,8 @@ class UserCompanyRequest(models.Model): self.user_id.sppkp = self.user_company_id.sppkp self.user_id.nama_wajib_pajak = self.user_company_id.nama_wajib_pajak self.user_id.alamat_lengkap_text = self.user_company_id.alamat_lengkap_text + self.user_id.industry_id = self.user_company_id.industry_id.id + self.user_id.company_type_id = self.user_company_id.company_type_id.id self.user_id.user_id = self.user_company_id.user_id self.user_id.property_account_receivable_id = self.user_company_id.property_account_receivable_id self.user_id.property_account_payable_id = self.user_company_id.property_account_payable_id -- cgit v1.2.3 From 33d2a0583d74182709588313ad0eae70c8569f02 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 12 Sep 2024 12:18:59 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/partner.py | 3 + indoteknik_api/controllers/api_v1/user.py | 143 ++++++++++++++++++++++++++- indoteknik_api/models/res_users.py | 2 + indoteknik_custom/models/res_partner.py | 8 +- 4 files changed, 151 insertions(+), 5 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index b844b6ee..b7dcdb0d 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -66,6 +66,7 @@ class Partner(controller.Controller): 'name': ['required'], 'email': ['required'], 'mobile': ['required'], + 'phone': ['required'], 'street': ['required'], 'city_id': ['required', 'number', 'alias:kota_id'], 'district_id': ['number', 'alias:kecamatan_id'], @@ -95,6 +96,7 @@ class Partner(controller.Controller): 'name': ['required'], 'email': ['required'], 'mobile': ['required'], + 'phone': ['required'], 'street': ['required'], 'city_id': ['required', 'number', 'alias:kota_id'], 'district_id': ['number', 'alias:kecamatan_id'], @@ -122,6 +124,7 @@ class Partner(controller.Controller): 'tax_name': ['alias:nama_wajib_pajak'], 'npwp': [], 'alamat_lengkap_text': [], + 'street': [], }) id_user = self.get_request_params(kw, { 'id_user': ['number'] diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index ea74d297..9a15f404 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -149,7 +149,7 @@ class User(controller.Controller): 'login': email, 'mobile': phone, 'password': password, - 'active': False, + 'active': True, 'sel_groups_1_9_10': 9 } @@ -403,3 +403,144 @@ class User(controller.Controller): x) for x in partners] return self.response(address) + + @http.route(prefix + 'user//switch', auth='public', methods=['PUT', 'OPTIONS'], csrf=False) + @controller.Controller.must_authorized() + def switch_account(self, **kw): + id = kw.get('id') + user = request.env['res.users'].search([('id', '=', id)], limit=1) + + response = { + 'switch': False, + 'reason': None + } + + # Form Data + npwp = kw.get('npwp') + npwp_document = kw.get('npwp_document', False) + npwp_filename = kw.get('npwp_filename', 'npwp_document') + sppkp = kw.get('sppkp', False) + sppkp_document = kw.get('sppkp_document', False) + sppkp_filename = kw.get('sppkp_filename', 'sppkp_document') + email_partner = kw.get('email_partner') + business_name = kw.get('business_name', False) + industry_id = int(kw.get('industry_id', '0') or 0) + company_type_id = int(kw.get('company_type_id', '0') or 0) + alamat_wajib_pajak = kw.get('alamat_wajib_pajak', False) + alamat_bisnis = kw.get('alamat_bisnis', False) + nama_wajib_pajak = kw.get('nama_wajib_pajak', False) + is_pkp = kw.get('is_pkp') + type_acc = kw.get('type_acc', False) + + + response = { + 'switch': False, + 'reason': None + } + + if type_acc == 'business': + parameter = [ + ('company_type', '=', 'company'), + ('name', 'ilike', business_name) + ] + match_company = request.env['res.partner'].search(parameter, limit=1) + match_ratio = 0 + if match_company: + match_ratio = SequenceMatcher(None, match_company.name, business_name).ratio() + if match_ratio > 0.8: + # Create a user company request + request.env['user.company.request'].create({ + 'user_id': user.partner_id.id, + 'user_company_id': match_company.id, + 'user_input': business_name + }) + else: + if not nama_wajib_pajak and is_pkp == 'false': + nama_wajib_pajak = business_name + + if not alamat_wajib_pajak and is_pkp == 'false': + alamat_wajib_pajak = alamat_bisnis + + new_company_data = { + 'name': business_name if business_name else business_name, + 'company_type_id': company_type_id if company_type_id else False, + 'industry_id': industry_id, + 'customer_type': 'pkp' if is_pkp == 'true' else 'nonpkp', + 'npwp': npwp if is_pkp == 'true' else (npwp if npwp else '00.000.000.0-000.000'), + 'sppkp': sppkp if is_pkp == 'true' else (sppkp if sppkp else '-'), + 'nama_wajib_pajak': nama_wajib_pajak, + 'alamat_lengkap_text': alamat_wajib_pajak, + 'email': email_partner, + 'street': alamat_bisnis, + 'company_type': 'company', + 'user_id': 3222, + 'property_account_receivable_id': 395, + 'property_account_payable_id': 438, + 'active': False, + } + new_company = request.env['res.partner'].create(new_company_data) + request.env['user.company.request'].create({ + 'user_id': user.partner_id.id, + 'user_company_id': new_company.id, + 'user_input': business_name + }) + # user.partner_id.parent_id = new_company.id + # user.partner_id.customer_type = new_company.customer_type + # user.partner_id.npwp = new_company.npwp + # user.partner_id.sppkp = new_company.sppkp + # user.partner_id.nama_wajib_pajak = new_company.nama_wajib_pajak + # user.partner_id.alamat_lengkap_text = new_company.alamat_lengkap_text + + if npwp_document: + npwp_mimetype, _ = mimetypes.guess_type(npwp_filename) + npwp_mimetype = npwp_mimetype or 'application/octet-stream' + pdf_data = base64.b64decode(npwp_document) + npwp_attachment = request.env['ir.attachment'].create({ + 'name': 'NPWP Document', + 'type': 'binary', + 'datas': base64.b64encode(pdf_data), + 'res_model': 'res.partner', + 'res_id': new_company.id, + 'mimetype': npwp_mimetype + }) + new_company.message_post(body="NPWP Uploaded", attachment_ids=[npwp_attachment.id]) + + if sppkp_document: + sppkp_mimetype, _ = mimetypes.guess_type(sppkp_filename) + sppkp_mimetype = sppkp_mimetype or 'application/octet-stream' + pdf_data = base64.b64decode(sppkp_document) + sppkp_attachment = request.env['ir.attachment'].create({ + 'name': 'SPPKP Document', + 'type': 'binary', + 'datas': base64.b64encode(pdf_data), + 'res_model': 'res.partner', + 'res_id': new_company.id, + 'mimetype': sppkp_mimetype + }) + new_company.message_post(body="SPPKP Uploaded", attachment_ids=[sppkp_attachment.id]) + + response['switch'] = 'Pending' + return self.response(response) + + @http.route(prefix + 'user//switch_progres', auth='public', methods=['GET', 'OPTIONS'], csrf=False) + # @controller.Controller.must_authorized() + def switch_account_progres(self, **kw): + id = int(kw.get('id')) + user = request.env['res.users'].search([('id', '=', id)], limit=1) + response = { + 'status': '' + } + parameter = [ + ('user_id', '=', id) + ] + new_company_request = request.env['user.company.request'].search(parameter, limit=1) + is_approve = '' + if new_company_request: + # Mengambil nilai is_approve + if new_company_request.is_approve == False: + response['status'] = 'pending' + else: + response['status'] = new_company_request.is_approve + else: + response['status'] = 'unknown' + return self.response(response) \ No newline at end of file diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py index 2c0a986b..b2e8acfe 100644 --- a/indoteknik_api/models/res_users.py +++ b/indoteknik_api/models/res_users.py @@ -43,6 +43,7 @@ class ResUsers(models.Model): 'type': user.type or '', 'name': user.name or '', 'mobile': user.mobile or '', + 'phone': user.phone or '', 'email': user.email or '', 'street': user.street or '', 'street2': user.street2 or '', @@ -56,6 +57,7 @@ class ResUsers(models.Model): 'npwp': user.npwp or '', 'rajaongkir_city_id': user.kecamatan_id.rajaongkir_id or 0, 'alamat_wajib_pajak': user.alamat_lengkap_text or None, + 'alamat_bisnis': user.street or None, } if user.kota_id: diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index b8a6502c..4c6621d4 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -88,7 +88,7 @@ class ResPartner(models.Model): if partner.state_id: lengkap += " " + partner.state_id.name - partner.alamat_lengkap = lengkap.upper() + # partner.alamat_lengkap = lengkap.upper() if partner.company_type == 'person' and not partner.parent_id: partner.alamat_lengkap_text = partner.street @@ -99,8 +99,8 @@ class ResPartner(models.Model): alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False , tracking=3) - def write(self, vals): - res = super(ResPartner, self).write(vals) + # def write(self, vals): + # res = super(ResPartner, self).write(vals) # # # if 'property_payment_term_id' in vals: # # if not self.env.user.is_accounting and vals['property_payment_term_id'] != 26: @@ -111,7 +111,7 @@ class ResPartner(models.Model): # # if self.env.user.id not in users_in_group.mapped('id'): # # raise UserError('You name it') # - return res + # return res # def write(self, vals): # if self.company_type == 'person': -- cgit v1.2.3 From c36fb56b19bbd33e0f6a3d6f16a939f7fb6a0ead Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 12 Sep 2024 15:24:17 +0700 Subject: update new register --- indoteknik_custom/models/res_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 4c6621d4..5e1eba09 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -88,7 +88,7 @@ class ResPartner(models.Model): if partner.state_id: lengkap += " " + partner.state_id.name - # partner.alamat_lengkap = lengkap.upper() + partner.alamat_lengkap = lengkap.upper() if partner.company_type == 'person' and not partner.parent_id: partner.alamat_lengkap_text = partner.street -- cgit v1.2.3 From b14ec46d5c0d8e75558cff9cf38cb2372b82af3b Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 17 Sep 2024 14:04:33 +0700 Subject: update new register --- indoteknik_custom/models/res_partner.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 5e1eba09..b8a6502c 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -99,8 +99,8 @@ class ResPartner(models.Model): alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False , tracking=3) - # def write(self, vals): - # res = super(ResPartner, self).write(vals) + def write(self, vals): + res = super(ResPartner, self).write(vals) # # # if 'property_payment_term_id' in vals: # # if not self.env.user.is_accounting and vals['property_payment_term_id'] != 26: @@ -111,7 +111,7 @@ class ResPartner(models.Model): # # if self.env.user.id not in users_in_group.mapped('id'): # # raise UserError('You name it') # - # return res + return res # def write(self, vals): # if self.company_type == 'person': -- cgit v1.2.3 From 314125a03d680cd2da6e413200abd8eefec2b1ec Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 17 Sep 2024 17:22:50 +0700 Subject: uppdate new register --- indoteknik_api/controllers/api_v1/partner.py | 4 ++-- indoteknik_custom/models/res_partner.py | 31 +--------------------------- 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index b7dcdb0d..3cc6b193 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -66,7 +66,7 @@ class Partner(controller.Controller): 'name': ['required'], 'email': ['required'], 'mobile': ['required'], - 'phone': ['required'], + 'phone': [''], 'street': ['required'], 'city_id': ['required', 'number', 'alias:kota_id'], 'district_id': ['number', 'alias:kecamatan_id'], @@ -96,7 +96,7 @@ class Partner(controller.Controller): 'name': ['required'], 'email': ['required'], 'mobile': ['required'], - 'phone': ['required'], + 'phone': [''], 'street': ['required'], 'city_id': ['required', 'number', 'alias:kota_id'], 'district_id': ['number', 'alias:kecamatan_id'], diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index b8a6502c..7392b10d 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -60,43 +60,14 @@ class ResPartner(models.Model): @api.depends("street", "street2", "city", "state_id", "country_id", "blok", "nomor", "rt", "rw", "kelurahan_id", "kecamatan_id") - def _alamat_lengkap(self): + def _alamat_lengkap_text(self): for partner in self: - lengkap = partner.street or "" - lengkap += " " + (partner.street2 or '') - - if partner.blok: - lengkap += " Blok: " + partner.blok + ", " - if partner.nomor: - lengkap += " Nomor: " + partner.nomor + ", " - - if partner.rt: - lengkap += " RT: " + partner.rt - if partner.rw: - lengkap += " RW: " + partner.rw - - if partner.kelurahan_id: - lengkap += " Kel: " + partner.kelurahan_id.name + "," - - if partner.kecamatan_id: - lengkap += " Kec: " + partner.kecamatan_id.name - - if partner.kota_id: - lengkap += """ - """ + partner.kota_id.name + "," - - if partner.state_id: - lengkap += " " + partner.state_id.name - - partner.alamat_lengkap = lengkap.upper() - if partner.company_type == 'person' and not partner.parent_id: partner.alamat_lengkap_text = partner.street # if partner.company_type == 'person' and partner.parent_id: # partner.alamat_lengkap_text = partner.parent_id.alamat_lengkap_text - alamat_lengkap = fields.Char(string="Alamat Lengkap", required=False, compute="_alamat_lengkap") alamat_lengkap_text = fields.Text(string="Alamat Lengkap", required=False , tracking=3) def write(self, vals): -- cgit v1.2.3 From d299eca8138b07dcbddf540038b8deeb4fcc7c8a Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 18 Sep 2024 17:00:16 +0700 Subject: change false new register --- indoteknik_api/controllers/api_v1/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 9a15f404..4bef2f03 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -149,7 +149,7 @@ class User(controller.Controller): 'login': email, 'mobile': phone, 'password': password, - 'active': True, + 'active': False, 'sel_groups_1_9_10': 9 } -- cgit v1.2.3 From c1d1b273e2eeb3c4713fe174846ec7687ec2026b Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 19 Sep 2024 09:57:39 +0700 Subject: update new register --- indoteknik_api/controllers/api_v1/user.py | 1 + indoteknik_custom/models/res_partner.py | 3 ++- indoteknik_custom/models/user_company_request.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 4bef2f03..4dfc837b 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -203,6 +203,7 @@ class User(controller.Controller): 'user_company_id': new_company.id, 'user_input': business_name }) + # tambahkan send email ke user untuk kasi notifikasi akun bisnis ini dalam review # user.partner_id.parent_id = new_company.id # user.partner_id.customer_type = new_company.customer_type # user.partner_id.npwp = new_company.npwp diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 7392b10d..ef857c55 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -18,7 +18,8 @@ class ResPartner(models.Model): ('pkp', 'PKP'), ('nonpkp', 'Non PKP') ]) - sppkp = fields.Char(string="SPPKP") + sppkp = fields.Char(string="SPPKP", tracking=3) + npwp = fields.Char(string="NPWP", tracking=3) counter = fields.Integer(string="Counter", default=0) leadtime = fields.Integer(string="Leadtime", default=0) digital_invoice_tax = fields.Boolean(string="Digital Invoice & Faktur Pajak") diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 56bb8d5d..40ac4446 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -33,10 +33,12 @@ class UserCompanyRequest(models.Model): self.user_id.property_account_receivable_id = self.user_company_id.property_account_receivable_id self.user_id.property_account_payable_id = self.user_company_id.property_account_payable_id self.user_company_id.active = True + # tambahkan send email kalau bisnis berhsil di buat else: new_company = self.env['res.partner'].create({ 'name': self.user_input }) self.user_id.parent_id = new_company.id + # tambahkan send email kalau bisnis ditolak di buat return super(UserCompanyRequest, self).write(vals) \ No newline at end of file -- cgit v1.2.3 From eb7661705303a64c97e84061b53d48d5c46f6293 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 19 Sep 2024 15:08:15 +0700 Subject: add email user company request status --- indoteknik_api/controllers/api_v1/user.py | 9 ++ indoteknik_custom/models/res_users.py | 19 ++- indoteknik_custom/models/user_company_request.py | 13 +- indoteknik_custom/views/res_users.xml | 197 ++++++++++++++++++++++- 4 files changed, 234 insertions(+), 4 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 4dfc837b..87d6cafc 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -329,6 +329,15 @@ class User(controller.Controller): 'activation': True, 'user': self.response_with_token(user) }) + # tambahkan send email ke user untuk kasi notifikasi akun bisnis ini dalam review + parameter = [ + ('user_id', '=', user.partner_id.id) + ] + company_request = request.env['user.company.request'].search(parameter, limit=1) + if company_request: + user.user_company_name = company_request.user_input + if company_request.is_approve == False: + user.send_company_request_mail() return self.response(response) @http.route(prefix + 'user/forgot-password', auth='public', methods=['POST'], csrf=False) diff --git a/indoteknik_custom/models/res_users.py b/indoteknik_custom/models/res_users.py index 33f64ce3..cedf19bd 100755 --- a/indoteknik_custom/models/res_users.py +++ b/indoteknik_custom/models/res_users.py @@ -11,6 +11,8 @@ class ResUsers(models.Model): activation_token = fields.Char(string="Activation Token") otp_code = fields.Char(string='OTP Code') otp_create_date = fields.Datetime(string='OTP Create Date') + user_company_name = fields.Char(string="User Company Name") + def _generate_otp(self): for user in self: @@ -28,7 +30,22 @@ class ResUsers(models.Model): user._generate_otp() user._generate_activation_token() template.send_mail(user.id, force_send=True) - + + def send_company_request_mail(self): + template = self.env.ref('indoteknik_custom.mail_template_res_user_company_request') + for user in self: + template.send_mail(user.id, force_send=True) + + def send_company_request_approve_mail(self): + template = self.env.ref('indoteknik_custom.mail_template_res_user_company_request_approve') + for user in self: + template.send_mail(user.id, force_send=True) + + def send_company_request_reject_mail(self): + template = self.env.ref('indoteknik_custom.mail_template_res_user_company_request_reject') + for user in self: + template.send_mail(user.id, force_send=True) + def get_activation_token_url(self): base_url = self.env['ir.config_parameter'].get_param('site.base.url') return f'{base_url}/register?activation=token&token={self.activation_token}' diff --git a/indoteknik_custom/models/user_company_request.py b/indoteknik_custom/models/user_company_request.py index 40ac4446..8122c6a0 100644 --- a/indoteknik_custom/models/user_company_request.py +++ b/indoteknik_custom/models/user_company_request.py @@ -1,6 +1,6 @@ from odoo import models, fields from odoo.exceptions import UserError - +from odoo.http import request class UserCompanyRequest(models.Model): _name = 'user.company.request' @@ -15,6 +15,8 @@ class UserCompanyRequest(models.Model): ], string='Approval') def write(self, vals): + user = self.get_user_by_email(self.user_id.email) + user.user_company_name = self.user_input is_approve = vals.get('is_approve') if self.is_approve and is_approve: raise UserError('Tidak dapat mengubah approval yang sudah diisi') @@ -34,11 +36,18 @@ class UserCompanyRequest(models.Model): self.user_id.property_account_payable_id = self.user_company_id.property_account_payable_id self.user_company_id.active = True # tambahkan send email kalau bisnis berhsil di buat + user.send_company_request_approve_mail() else: new_company = self.env['res.partner'].create({ 'name': self.user_input }) self.user_id.parent_id = new_company.id # tambahkan send email kalau bisnis ditolak di buat + user.send_company_request_reject_mail() return super(UserCompanyRequest, self).write(vals) - \ No newline at end of file + + def get_user_by_email(self, email): + return request.env['res.users'].search([ + ('login', '=', email), + ('active', 'in', [True, False]) + ]) \ No newline at end of file diff --git a/indoteknik_custom/views/res_users.xml b/indoteknik_custom/views/res_users.xml index 976f46c9..8ced0e82 100644 --- a/indoteknik_custom/views/res_users.xml +++ b/indoteknik_custom/views/res_users.xml @@ -4,7 +4,8 @@ Users: Activation Request Aktivasi Akun - Indoteknik.com - sales@indoteknik.com + "Indoteknik.com" <noreply@indoteknik.com> + noreply@indoteknik.com ${object.login | safe} @@ -59,5 +60,199 @@
+ + Users: Company Request + + Email Pendaftaran Bisnis dalam Proses Review + "Indoteknik.com" <noreply@indoteknik.com> + noreply@indoteknik.com + ${object.login | safe} + + + +
+ + + + + + + + + + + + +
+ + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + +
Halo ${object.user_company_name},
Terima kasih atas kepercayaan Anda dengan mendaftarkan bisnis Anda di Indoteknik.com. Permohonan Anda saat ini sedang dalam proses review oleh tim kami.
Saat ini, kami sedang melakukan pengecekan akhir pada data yang Anda berikan. Proses ini biasanya memakan waktu sekitar 2 x 24 jam.
Setelah proses review selesai, kami akan segera menginformasikan status akun bisnis Anda melalui email.
Jika ada pertanyaan lebih lanjut, jangan ragu untuk menghubungi kami di sales@indoteknik.com atau hubungi whatsapp kami di 0817-1718-1922
Terima kasih atas perhatiannya.
Hormat kami,
Indoteknik.com
+
+
+
+
+
+
+ + Users: Company Request Approve + + Email Pendaftaran Bisnis Berhasil + "Indoteknik.com" <noreply@indoteknik.com> + noreply@indoteknik.com + ${object.login | safe} + + + +
+ + + + + + + + + + + + +
+ + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + +
Yth. ${object.user_company_name},
Selamat! Pendaftaran akun bisnis Anda di indoteknik.com telah berhasil diverifikasi & sudah aktif. kini anda dapat menikmati berbagai kemudahan dalam berbelanja, antara lain:
Fitur Faktur Pajak & Invoice: Dengan mudah download faktur pajak & Invoice Anda secara digital.
Pembayaran Lengkap: Pilih metode pembayaran yang sesuai dengan kebutuhan Anda, baik transfer bank, VA, kartu kredit, atau pembayaran tempo.
Pelacakan Pengiriman: Lacak status pengiriman pesanan Anda secara real-time.
Untuk memulai transaksi, silakan login Kembali menggunakan akun Anda di Indoteknik.com
Kami sangat senang dapat melayani Anda. Jika ada pertanyaan atau membutuhkan bantuan, jangan ragu untuk menghubungi tim layanan Customer kami di Whatsapp 0817-1718-1922 atau sales@indoteknik.com
Hormat kami,
Indoteknik.com
+
+
+
+
+
+
+ + Users: Company Request Reject + + Email Pendaftaran Bisnis Tidak Berhasil + "Indoteknik.com" <noreply@indoteknik.com> + noreply@indoteknik.com + ${object.login | safe} + + + +
+ + + + + + + + + + + + +
+ + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Yth. ${object.user_company_name},
Terima kasih atas minat Anda untuk mendaftar akun bisnis di Indoteknik.com. Kami telah menerima permohonan pendaftaran Anda dan saat ini sedang dalam proses review.
Namun, setelah kami lakukan pengecekan, kami menemukan bahwa beberapa informasi yang Anda berikan masih belum lengkap. Untuk dapat melanjutkan proses pendaftaran, mohon kiranya Anda dapat melengkapi data-data berikut:
Informasi yang kami butuhkan saat ini adalah:
+
    +
  1. Detail Nama Bisnis
  2. +
  3. Dokumen NPWP
  4. +
  5. Dokumen SPPKP/Surat Pengukuhan Kena Pajak
  6. +
+
Anda dapat mengirimkan informasi yang kurang tersebut melalui email ini atau dengan menghubungi tim layanan pelanggan kami di 0817-1718-1922 atau sales@indoteknik.com.
Kami mohon maaf atas ketidaknyamanan ini dan berharap dapat segera menyelesaikan proses pendaftaran akun bisnis Anda.
Terima kasih atas perhatiannya.
Hormat kami,
Indoteknik.com
+
+
+
+
+
+
\ No newline at end of file -- cgit v1.2.3