diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-31 13:57:05 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-31 13:57:05 +0700 |
| commit | 27a1a3d68f728455ae196d2aa5736858ba623d09 (patch) | |
| tree | a1b5659fa058a2d0691eb0a147f4d0d18993091e | |
| parent | a197b978872cab655263541d65bc86e5131e78aa (diff) | |
api category tree
| -rw-r--r-- | indoteknik_api/controllers/api_v1/category.py | 49 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 1 | ||||
| -rw-r--r-- | indoteknik_api/models/sale_order.py | 17 |
3 files changed, 65 insertions, 2 deletions
diff --git a/indoteknik_api/controllers/api_v1/category.py b/indoteknik_api/controllers/api_v1/category.py index 62faff85..b7ea65ed 100644 --- a/indoteknik_api/controllers/api_v1/category.py +++ b/indoteknik_api/controllers/api_v1/category.py @@ -7,6 +7,55 @@ import ast class Category(controller.Controller): prefix = '/api/v1/' + @http.route(prefix + 'category/child', auth='public', methods=['GET', 'OPTIONS']) + def get_category_child(self, **kw): + user_token = self.authenticate() + if not user_token: + return self.unauthorized_response() + + params = self.get_request_params(kw, { + 'parent_id': ['number', 'default:0'] + }) + if not params['valid']: + return self.response(code=400, description=params) + if params['value']['parent_id'] == 0: + params['value']['parent_id'] = False + + categories = request.env['product.public.category'].search_read([('parent_frontend_id', '=', params['value']['parent_id'])], ['id', 'name']) + return self.response(categories) + + @http.route(prefix + 'category/tree', auth='public', methods=['GET', 'OPTIONS']) + def get_category_tree(self, **kw): + user_token = self.authenticate() + if not user_token: + return self.unauthorized_response() + + parent_categories = request.env['product.public.category'].search_read([('parent_frontend_id', '=', False)], ['id', 'name']) + data = [] + for parent_category in parent_categories: + parent_data = { + 'id': parent_category['id'], + 'name': parent_category['name'], + 'childs': [] + } + child_1_categories = request.env['product.public.category'].search_read([('parent_frontend_id', '=', parent_category['id'])], ['id', 'name']) + for child_1_category in child_1_categories: + child_1_data = { + 'id': child_1_category['id'], + 'name': child_1_category['name'], + 'childs': [] + } + child_2_categories = request.env['product.public.category'].search_read([('parent_frontend_id', '=', child_1_category['id'])], ['id', 'name']) + for child_2_category in child_2_categories: + child_2_data = { + 'id': child_2_category['id'], + 'name': child_2_category['name'], + } + child_1_data['childs'].append(child_2_data) + parent_data['childs'].append(child_1_data) + data.append(parent_data) + return self.response(data) + @http.route(prefix + 'categories_homepage', auth='public', methods=['GET', 'OPTIONS']) def get_categories_homepage(self, **kw): if not self.authenticate(): diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 7ce8cd43..9b52e79a 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -127,7 +127,6 @@ class SaleOrder(controller.Controller): 'partner_purchase_order_file': params['value']['po_file'] } sale_order = request.env['sale.order'].create([[parameters]]) - var = json.loads(kw.get('transaction_time', '{}')) order_line = json.loads(params['value']['order_line']) parameters = [] for line in order_line: diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py index aa20ccdb..826f2a14 100644 --- a/indoteknik_api/models/sale_order.py +++ b/indoteknik_api/models/sale_order.py @@ -11,8 +11,23 @@ class SaleOrder(models.Model): 'sales': sale_order.user_id.name, 'amount_total': sale_order.amount_total, 'purchase_order_name': sale_order.partner_purchase_order_name, - 'invoice_count': sale_order.invoice_count + 'invoice_count': sale_order.invoice_count, + 'status': 'draft', } + if sale_order.state == 'cancel': + data['status'] = 'cancel' + if sale_order.state in ['draft', 'sent']: + data['status'] = 'draft' + if sale_order.approval_status in ['pengajuan1', 'pengajuan2']: + data['status'] = 'waiting' + if sale_order.state == 'sale': + data['status'] = 'sale' + for picking in sale_order.picking_ids: + if picking.state == 'assigned': + data['status'] = 'shipping' + if sale_order.state == 'done': + data['status'] = 'done' + if context: if context == 'with_detail': res_users = self.env['res.users'] |
