diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-09-20 15:06:17 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-09-20 15:06:17 +0700 |
| commit | 79bf9729d10c8fb37ef9071ab6df2b6644ddea49 (patch) | |
| tree | 6226da5e38ad44673a1bb5d7d4e2b0fd5df1fada /indoteknik_api/controllers/api_v1/partner.py | |
| parent | eb7661705303a64c97e84061b53d48d5c46f6293 (diff) | |
| parent | d2bb21ae878db2a3b77dbb3341046c9d12ba1de5 (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.py | 28 |
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) + + |
