diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-07-31 15:51:03 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-07-31 15:51:03 +0700 |
| commit | dddfd3846d37e24c5b52cc98bbe889bd4a958775 (patch) | |
| tree | 4c29467ca70f45ae0ee3744dfa2b86010e45e865 /indoteknik_api/controllers | |
| parent | aeb4fc3b4b8a4c38d6628946232c236a4d2fe2a9 (diff) | |
<hafid> repeat order
Diffstat (limited to 'indoteknik_api/controllers')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 33 |
1 files changed, 23 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'.") |
