diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-10 10:41:47 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-10 10:41:47 +0700 |
| commit | a4a1461c3b6603c1a4943935ed45f1a3ea9b80ed (patch) | |
| tree | 34f004ec28eb3d007ac16aafa691ccd146f1d9fb /indoteknik_api/controllers/api_v1 | |
| parent | ce3f0c1b8f9fee54caf2047190151b6caf80664c (diff) | |
Add program line get stock API
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/promotion.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/promotion.py b/indoteknik_api/controllers/api_v1/promotion.py index f84b8c1c..221f6e10 100644 --- a/indoteknik_api/controllers/api_v1/promotion.py +++ b/indoteknik_api/controllers/api_v1/promotion.py @@ -6,6 +6,28 @@ from datetime import datetime class Promotion(controller.Controller): prefix = '/api/v1/' + + @http.route(prefix + 'program-line/<id>/stock', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized() + def get_promotion_stock(self, id): + program_line = request.env['promotion.program.line'].browse(int(id)) + if not program_line.id: + return self.response(code=400, description='program not found') + + user_data = self.verify_user_token() + + limit_qty = program_line._res_limit_qty() + remaining_qty = program_line._get_remaining_qty(user_data) + + percent_remaining = 0 + if limit_qty['all'] > 0: + percent_remaining = (limit_qty['all'] - remaining_qty['all']) / limit_qty['all'] * 100 + + return self.response({ + 'limit_qty': limit_qty, + 'remaining_qty': remaining_qty, + 'used_percentage': percent_remaining, + }) @http.route(prefix + 'promotion/<id>', auth='public', methods=['GET']) |
