summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-08-16 14:53:02 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-08-16 14:53:02 +0700
commit28c2d4175eae1b363d1a306737705aaae067515b (patch)
treeada4a88fc976981a589fac7b7e7a74f4edb2f9de /indoteknik_api
parentfc1527eda174b290dee393abec15574cf1bac780 (diff)
parent67816f01ee3c9ed5e550bbb2d515d51a97e291ad (diff)
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into odoo-backup
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py69
1 files changed, 43 insertions, 26 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()