diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-09-24 09:03:52 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-09-24 09:03:52 +0700 |
| commit | cc4be72fc2f0d98f8bc2190ea5c404536bb3c56d (patch) | |
| tree | a00f22741ba1ec63b59659834a9c6177b20db343 /indoteknik_api/controllers/api_v1/partner.py | |
| parent | 1f9d0136758531831ea6c7a90556c9a472ed8d40 (diff) | |
| parent | 649f3037e4357dab42d1a8d799e5f2a2f1fd2e52 (diff) | |
Merge branch 'production' into unreserved_permission
# Conflicts:
# indoteknik_custom/models/sale_order.py
Diffstat (limited to 'indoteknik_api/controllers/api_v1/partner.py')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/partner.py | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index 69a2f861..663f4d7d 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': [''], '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': [''], 'street': ['required'], 'city_id': ['required', 'number', 'alias:kota_id'], 'district_id': ['number', 'alias:kecamatan_id'], @@ -121,16 +123,30 @@ class Partner(controller.Controller): 'industry_id': ['number'], 'tax_name': ['alias:nama_wajib_pajak'], 'npwp': [], + 'alamat_lengkap_text': [], + 'street': [], + }) + 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 @@ -164,4 +180,32 @@ class Partner(controller.Controller): }) return self.response(data) + + @http.route(prefix + 'check/<partner_id>/tempo', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized() + def get_check_tempo_partner(self, **kw): + partner_id = int(kw.get('partner_id')) + + partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1) + if not partner: + return self.response(code=404, description='Partner not found') + + partner = partner.parent_id or partner + + if any(line.days == 0 for line in partner.property_payment_term_id.line_ids): + return self.response(code=402, description='Partner not tempo') + + result_tempo = sum(m.amount_total_signed for m in request.env['account.move'].search([('partner_id', '=', partner.id), ('payment_state', '=', 'not_paid'), ('state', '=', 'posted')])) + + remaining_limit = partner.blocking_stage - result_tempo if partner.active_limit else None + + data = { + 'name': partner.name, + 'amount_due': result_tempo, + 'remaining_limit': remaining_limit + } + + return self.response(data) + + |
