summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-23 10:39:40 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-23 10:39:40 +0700
commit5c9214c1c846e61c5356e1b19341b070c2303198 (patch)
treefe778c00b20f1e43323746bf2cf872bab86795f1 /indoteknik_api
parent5fdade43dd264f834a52194b22a9d687c4dc6aab (diff)
partner company type and edit partner data
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py57
-rw-r--r--indoteknik_api/models/res_users.py7
2 files changed, 63 insertions, 1 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 09b3caa0..8c7dbd57 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -81,3 +81,60 @@ class Partner(controller.Controller):
'id': partner.id,
})
+ @http.route(prefix + 'partner/<id>', auth='public', methods=['PUT', 'OPTIONS'], csrf=False)
+ def write_partner_by_id(self, **kw):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ params = self.get_request_params(kw, {
+ 'id': ['required', 'number'],
+ 'name': [],
+ 'company_type_id': ['number'],
+ 'industry_id': ['number'],
+ 'tax_name': ['alias:nama_wajib_pajak'],
+ 'npwp': [],
+ })
+
+ 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')
+
+ partner.write(params['value'])
+
+ return self.response({
+ 'id': partner.id
+ })
+
+ @http.route(prefix + 'partner/industry', auth='public', methods=['GET', 'OPTIONS'])
+ def get_partner_industry(self):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ partner_industry = request.env['res.partner.industry'].search([])
+ data = []
+ for industry in partner_industry:
+ data.append({
+ 'id': industry.id,
+ 'name': industry.name
+ })
+
+ return self.response(data)
+
+ @http.route(prefix + 'partner/company_type', auth='public', methods=['GET', 'OPTIONS'])
+ def get_partner_company_type(self):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ partner_company_type = request.env['res.partner.company_type'].search([])
+ data = []
+ for company_type in partner_company_type:
+ data.append({
+ 'id': company_type.id,
+ 'name': company_type.name
+ })
+
+ return self.response(data)
+
diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py
index 99a3838d..5032f3af 100644
--- a/indoteknik_api/models/res_users.py
+++ b/indoteknik_api/models/res_users.py
@@ -7,6 +7,7 @@ class ResUsers(models.Model):
def api_single_response(self, res_user, with_detail=''):
data = {
'id': res_user.id,
+ 'parent_id': res_user.parent_id.id or False,
'partner_id': res_user.partner_id.id,
'name': res_user.name,
'email': res_user.login,
@@ -32,7 +33,11 @@ class ResUsers(models.Model):
'city': None,
'district': None,
'sub_district': None,
- 'zip': user.zip or ''
+ 'zip': user.zip or '',
+ 'company_type_id': user.company_type_id.id or None,
+ 'industry_id': user.industry_id.id or None,
+ 'tax_name': user.nama_wajib_pajak or '',
+ 'npwp': user.npwp or '',
}
if user.kota_id: