summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-01-31 13:57:05 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-01-31 13:57:05 +0700
commit27a1a3d68f728455ae196d2aa5736858ba623d09 (patch)
treea1b5659fa058a2d0691eb0a147f4d0d18993091e
parenta197b978872cab655263541d65bc86e5131e78aa (diff)
api category tree
-rw-r--r--indoteknik_api/controllers/api_v1/category.py49
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py1
-rw-r--r--indoteknik_api/models/sale_order.py17
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']