summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/partner.py
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-20 15:06:17 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-20 15:06:17 +0700
commit79bf9729d10c8fb37ef9071ab6df2b6644ddea49 (patch)
tree6226da5e38ad44673a1bb5d7d4e2b0fd5df1fada /indoteknik_api/controllers/api_v1/partner.py
parenteb7661705303a64c97e84061b53d48d5c46f6293 (diff)
parentd2bb21ae878db2a3b77dbb3341046c9d12ba1de5 (diff)
Merge branch 'production' into iman/new-register
# Conflicts: # indoteknik_custom/models/res_users.py
Diffstat (limited to 'indoteknik_api/controllers/api_v1/partner.py')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 3cc6b193..663f4d7d 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -180,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)
+
+