diff options
| author | Indoteknik . <it@fixcomart.co.id> | 2025-08-16 14:53:02 +0700 |
|---|---|---|
| committer | Indoteknik . <it@fixcomart.co.id> | 2025-08-16 14:53:02 +0700 |
| commit | 28c2d4175eae1b363d1a306737705aaae067515b (patch) | |
| tree | ada4a88fc976981a589fac7b7e7a74f4edb2f9de /indoteknik_api | |
| parent | fc1527eda174b290dee393abec15574cf1bac780 (diff) | |
| parent | 67816f01ee3c9ed5e550bbb2d515d51a97e291ad (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.py | 69 |
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() |
