summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/partner.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_api/controllers/api_v1/partner.py')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py48
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)
+
+