summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/invoice.py
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-21 13:53:28 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-21 13:53:28 +0700
commit63433ff471ba98e6fc63bca16abd9a585471498b (patch)
tree7fe83758b1c40888bab68f5498e4a1c7da4d7891 /indoteknik_api/controllers/api_v1/invoice.py
parentff20b62d6932c6be4ffb56f63f3c05be3aa72c06 (diff)
parente3521c2153c36cee6629cee9146e1b4b0201da9f (diff)
Merge branch 'odoo-production' into CR/form-merchant
# Conflicts: # indoteknik_api/models/res_partner.py # indoteknik_api/models/res_users.py # indoteknik_custom/__manifest__.py # indoteknik_custom/models/__init__.py # indoteknik_custom/models/res_partner.py # indoteknik_custom/security/ir.model.access.csv # indoteknik_custom/views/res_partner.xml # indoteknik_custom/views/user_company_request.xml
Diffstat (limited to 'indoteknik_api/controllers/api_v1/invoice.py')
-rw-r--r--indoteknik_api/controllers/api_v1/invoice.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/indoteknik_api/controllers/api_v1/invoice.py b/indoteknik_api/controllers/api_v1/invoice.py
index 4937e8dd..4bd3746c 100644
--- a/indoteknik_api/controllers/api_v1/invoice.py
+++ b/indoteknik_api/controllers/api_v1/invoice.py
@@ -1,7 +1,7 @@
from .. import controller
from odoo import http
from odoo.http import request
-
+from odoo import fields
class Invoice(controller.Controller):
PREFIX = '/api/v1/'
@@ -15,6 +15,7 @@ class Invoice(controller.Controller):
'name': [],
'limit': ['default:0', 'number'],
'offset': ['default:0', 'number'],
+ 'status': [],
})
limit = params['value']['limit']
offset = params['value']['offset']
@@ -27,6 +28,11 @@ class Invoice(controller.Controller):
('state', '=', 'posted'),
('partner_id', 'in', partner_child_ids)
]
+ domain_orders = [
+ ('invoice_status', '!=', 'invoiced'),
+ ('state', '=', 'sale'),
+ ('partner_id', 'in', partner_child_ids)
+ ]
if params['value']['name']:
name = params['value']['name'].replace(' ', '%')
domain += [
@@ -34,10 +40,25 @@ class Invoice(controller.Controller):
('name', 'ilike', '%'+ name +'%'),
('ref', 'ilike', '%'+ name +'%')
]
+ if params['value']['status']:
+ if params['value']['status'] == '1':
+ domain += [('payment_state', '=', 'not_paid'), ('invoice_date_due', '<', fields.Date.today())]
+ elif params['value']['status'] == '2':
+ domain += [('payment_state', '=', 'not_paid'), ('invoice_date_due', '>', fields.Date.today())]
+ elif params['value']['status'] == '3':
+ domain += [('payment_state', '=', 'paid')]
+ elif params['value']['status'] == '0':
+ domain = domain
+ elif params['value']['status'] == '4':
+ domain += [('payment_state', '=', 'not_paid')]
+
invoices = request.env['account.move'].search(domain, offset=offset, limit=limit)
+ sale_orders = request.env['sale.order'].search(domain_orders, offset=offset, limit=limit)
data = {
'invoice_total': request.env['account.move'].search_count(domain),
- 'invoices': [request.env['account.move'].api_v1_single_response(x) for x in invoices]
+ 'invoices': [request.env['account.move'].api_v1_single_response(x) for x in invoices],
+ 'sale_order_total': request.env['sale.order'].search_count(domain_orders),
+ 'sale_orders': [request.env['sale.order'].api_v1_single_response(x) for x in sale_orders]
}
return self.response(data)