summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-08-18 09:02:59 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-08-18 09:02:59 +0700
commit90fb71ebdd4f7324a5491780f24dc18b8bd7ccc4 (patch)
treef6887dddf1484bf1428b3ebf1de331603430f145 /indoteknik_api
parentb133092eb4d27174f774d96f0a090670ad694d19 (diff)
parent28c2d4175eae1b363d1a306737705aaae067515b (diff)
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into pum-v2
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py69
-rw-r--r--indoteknik_api/controllers/api_v1/user.py31
2 files changed, 65 insertions, 35 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index acec19f7..b1d8d5f3 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -65,44 +65,61 @@ class Partner(controller.Controller):
@controller.Controller.must_authorized()
def write_partner_address_by_id(self, id, **kw):
headers = {
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
- 'Access-Control-Allow-Headers': '*'
- }
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
+ 'Access-Control-Allow-Headers': '*'
+ }
if request.httprequest.method == 'OPTIONS':
return Response(status=200, headers=headers)
+
try:
params = self.get_request_params(request.jsonrequest, {
- 'id': ['required', 'number'],
- 'type': ['default:other'],
- 'name': ['required'],
- 'email': ['required'],
- 'mobile': ['required'],
- 'phone': [''],
- 'street': ['required'],
- 'state_id': ['required', 'alias:state_id'],
- 'city_id': ['required', 'alias:kota_id'],
- 'district_id': ['alias:kecamatan_id'],
- 'sub_district_id': ['alias:kelurahan_id', 'exclude_if_null'],
- 'zip': ['required'],
- 'longtitude': '',
- 'latitude': '',
- 'address_map': [],
- 'alamat_lengkap_text': []
- })
+ 'id': ['required', 'number'],
+ 'type': ['default:other'],
+ 'name': ['required'],
+ 'email': ['required'],
+ 'mobile': ['required'],
+ 'phone': [''],
+ 'street': ['required'],
+ 'state_id': ['required', 'alias:state_id'],
+ 'city_id': ['required', 'alias:kota_id'],
+ 'district_id': ['alias:kecamatan_id'],
+ 'sub_district_id': ['alias:kelurahan_id', 'exclude_if_null'],
+ 'zip': ['required'],
+ 'longtitude': '',
+ 'latitude': '',
+ 'address_map': [],
+
+ 'alamat_lengkap_text': []
+ })
if not params['valid']:
- return {'headers' : headers,'code': 400, 'description': params}
+ return {'headers': headers, 'code': 400, 'description': params}
partner = request.env['res.partner'].sudo().search([('id', '=', id)], limit=1)
if not partner:
- return {'headers' : headers,'code': 404, 'description': 'User not found'}
+ return {'headers': headers, 'code': 404, 'description': 'User not found'}
+ vals = dict(params['value'])
+ vals.pop('id', None)
+ use_pin = bool(request.jsonrequest.get('use_pin'))
+
+ if not use_pin:
+ vals.pop('address_map', None)
+ vals.pop('latitude', None)
+ vals.pop('longtitude', None)
+ else:
+ lat = vals.get('latitude')
+ lng = vals.get('longtitude')
+ if not lat or not lng or float(lat) == 0.0 or float(lng) == 0.0:
+ vals.pop('latitude', None)
+ vals.pop('longtitude', None)
+
+ partner.write(vals)
- partner.write(params['value'])
- return {'id': partner.id, 'headers' : headers}
+ return {'id': partner.id, 'headers': headers}
except Exception as e:
- return {'headers' : headers,'code': 500, 'description': f'Internal Error: {str(e)}'}
+ return {'headers': headers, 'code': 500, 'description': f'Internal Error: {str(e)}'}
@http.route(prefix + 'partner/address', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py
index b5b7e055..dde30fec 100644
--- a/indoteknik_api/controllers/api_v1/user.py
+++ b/indoteknik_api/controllers/api_v1/user.py
@@ -396,7 +396,7 @@ class User(controller.Controller):
'user': request.env['res.users'].api_single_response(user)
})
- @http.route(prefix + 'user/<id>', auth='public', methods=['PUT', 'OPTIONS'], csrf=False)
+ @http.route(prefix + 'user/<id>', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def update_user(self, **kw):
id = kw.get('id')
@@ -446,7 +446,7 @@ class User(controller.Controller):
return self.response(address)
- @http.route(prefix + 'user/<id>/switch', auth='public', methods=['PUT', 'OPTIONS'], csrf=False)
+ @http.route(prefix + 'user/<id>/switch', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def switch_account(self, **kw):
id = int(kw.get('id'))
@@ -489,7 +489,7 @@ class User(controller.Controller):
if type_acc == 'business':
parameter = [
- ('company_type', '=', 'company'),
+ ('is_company', '=', True),
('name', 'ilike', business_name)
]
if parent_id:
@@ -674,11 +674,11 @@ class User(controller.Controller):
# request_company.send_company_request_mail_switch()
request_company.send_company_request_mail_switch()
- response['switch'] = 'Pending'
+ response['switch'] = 'pending'
return self.response(response)
- @http.route(prefix + 'user/<id>/switch_progres', auth='public', methods=['GET', 'OPTIONS'], csrf=False)
- # @controller.Controller.must_authorized()
+ @http.route(prefix + 'user/<id>/switch_progres', auth='public', methods=['GET', 'OPTIONS'])
+ @controller.Controller.must_authorized()
def switch_account_progres(self, **kw):
id = int(kw.get('id'))
# user = request.env['res.partner'].search([('id', '=', id)], limit=1)
@@ -691,15 +691,28 @@ class User(controller.Controller):
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:
+ if not new_company_request.is_approve: # None atau ''
response['status'] = 'pending'
else:
- response['status'] = new_company_request.is_approve
+ response['status'] = new_company_request.is_approve # 'approved' atau 'rejected'
else:
response['status'] = False
return self.response(response)
+ # @http.route(prefix + 'user/<id>/parent_status', auth='public', methods=['GET', 'OPTIONS'], csrf=False)
+ # # @controller.Controller.must_authorized()
+ # def parent_status(self, **kw):
+ # id = int(kw.get('id'))
+ # response = {
+ # 'parentId': None,
+ # 'parentName': None
+ # }
+ # partner = request.env['res.partner'].sudo().search([('id', '=', id)], limit=1)
+ # if partner and partner.parent_id:
+ # response['parentId'] = partner.parent_id.id
+ # response['parentName'] = partner.parent_id.name
+ # return self.response(response)
+
def get_user_by_email(self, email):
return request.env['res.users'].search([
('login', '=', email),