diff options
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 33 | ||||
| -rw-r--r-- | indoteknik_api/models/sale_order.py | 1 |
2 files changed, 24 insertions, 10 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 0527345e..fd460ea0 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -1,5 +1,5 @@ from .. import controller -from odoo import http +from odoo import http, fields from datetime import datetime, timedelta from odoo.http import request import json @@ -127,10 +127,19 @@ class SaleOrder(controller.Controller): if params['value']['name']: name = params['value']['name'].replace(' ', '%') - domain += [ + order_lines = request.env['sale.order.line'].search([ + ('order_id.partner_id', 'in', partner_child_ids), '|', - ('name', 'ilike', '%' + name + '%'), - ('partner_purchase_order_name', 'ilike', '%' + name + '%') + ('product_id.name', 'ilike', name), + ('product_id.default_code', 'ilike', name), + ]) + + sale_order_ids_from_lines = order_lines.mapped('order_id.id') + + domain += ['|', '|', + ('name', 'ilike', name), + ('partner_purchase_order_name', 'ilike', name), + ('id', 'in', sale_order_ids_from_lines) ] if params['value']['site']: @@ -169,15 +178,19 @@ class SaleOrder(controller.Controller): order = 'amount_total desc' # Filter berdasarkan tanggal order - if params['value']['startDate'] and params['value']['endDate']: - try: + try: + if params['value']['startDate'] and params['value']['endDate']: start_date = datetime.strptime(params['value']['startDate'], '%d/%m/%Y').strftime('%Y-%m-%d 00:00:00') end_date = datetime.strptime(params['value']['endDate'], '%d/%m/%Y').strftime('%Y-%m-%d 23:59:59') + else: + start_date = '2023-01-01 00:00:00' + end_date = fields.Datetime.now().strftime('%Y-%m-%d 23:59:59') + + domain.append(('date_order', '>=', start_date)) + domain.append(('date_order', '<=', end_date)) - domain.append(('date_order', '>=', start_date)) - domain.append(('date_order', '<=', end_date)) - except ValueError: - return self.response(code=400, description="Invalid date format. Use 'DD/MM/YYYY'.") + except ValueError: + return self.response(code=400, description="Invalid date format. Use 'DD/MM/YYYY'.") diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py index 54b4a6dc..615dcdcb 100644 --- a/indoteknik_api/models/sale_order.py +++ b/indoteknik_api/models/sale_order.py @@ -1,4 +1,5 @@ from odoo import models +from datetime import datetime class SaleOrder(models.Model): |
