summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-09 08:54:09 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-09 08:54:09 +0700
commit4e926be36ae06a1cf6f0d74151cf97ea4f542017 (patch)
tree4177843d17948ab9cf7bae6fe0d53dba4a843d66
parent61c9291070da3ef7f81774290db1923789792210 (diff)
<iman> update tempo
-rw-r--r--indoteknik_api/controllers/api_v1/invoice.py25
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py24
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo.py2
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo_request.py14
4 files changed, 51 insertions, 14 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)
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index c0088d38..885cf3ec 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -1,7 +1,7 @@
from .. import controller
from odoo import http
from odoo.http import request
-
+from odoo import fields
import json
import base64
import mimetypes
@@ -253,15 +253,31 @@ class Partner(controller.Controller):
if any(line.days == 0 for line in partner.property_payment_term_id.line_ids):
return self.response(code=402, description='Partner not tempo')
-
- result_tempo = sum(m.amount_total_signed for m in request.env['account.move'].search([('partner_id', '=', partner.id), ('payment_state', '=', 'not_paid'), ('state', '=', 'posted')]))
-
+
+ domain_result_tempo = [('partner_id', '=', partner.id), ('payment_state', '=', 'not_paid'), ('state', '=', 'posted')]
+ domain_result_jatuh_tempo = [('partner_id', '=', partner.id), ('payment_state', '=', 'not_paid'), ('state', '=', 'posted'), ('invoice_date_due', '<', fields.Date.today())]
+ domain_orders = [('partner_id', '=', partner.id), ('invoice_status', '!=', 'invoiced'), ('state', '=', 'sale')]
+
+ result_tempo = sum(m.amount_total_signed for m in request.env['account.move'].search(domain_result_tempo))
+ result_tempo_total = request.env['account.move'].search_count(domain_result_tempo)
+ result_jatuh_tempo = sum(m.amount_total_signed for m in request.env['account.move'].search(domain_result_jatuh_tempo))
+ result_jatuh_tempo_total = request.env['account.move'].search_count(domain_result_jatuh_tempo)
+ orders = request.env['sale.order'].search(domain_orders)
+ orders_total = request.env['sale.order'].search_count(domain_orders)
+
+ total_amount = sum(order.amount_total for order in orders)
+
remaining_limit = partner.blocking_stage - result_tempo if partner.active_limit else None
data = {
'name': partner.name,
'payment_term': partner.property_payment_term_id.name,
'amount_due': result_tempo,
+ 'amount_due_total': result_tempo_total,
+ 'amount_jatuh_tempo_total': result_jatuh_tempo_total,
+ 'amount_jatuh_tempo': result_jatuh_tempo,
+ 'amount_due_sale': total_amount,
+ 'amount_due_sale_total': orders_total,
'remaining_limit': remaining_limit
}
diff --git a/indoteknik_custom/models/user_pengajuan_tempo.py b/indoteknik_custom/models/user_pengajuan_tempo.py
index 3d8fcb4f..0fdcdbeb 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo.py
@@ -20,7 +20,7 @@ class UserPengajuanTempo(models.Model):
partner_id = fields.Char()
_description = 'User Pengajuan Tempo'
- name = fields.Char(string='Name', required=True)
+ name = fields.Char(string='Name')
# informasi perusahaan
# name_tempo = fields.Many2one(
diff --git a/indoteknik_custom/models/user_pengajuan_tempo_request.py b/indoteknik_custom/models/user_pengajuan_tempo_request.py
index 707c8482..c237f417 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo_request.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo_request.py
@@ -537,31 +537,31 @@ class UserPengajuanTempoRequest(models.Model):
self.user_company_id.supplier_ids = self.pengajuan_tempo_id.supplier_ids
# Dokumen
- self.user_company_id.dokumen_npwp = self.pengajuan_tempo_id.dokumen_npwp[0]
+ self.user_company_id.dokumen_npwp = self.pengajuan_tempo_id.dokumen_npwp[0] if self.pengajuan_tempo_id.dokumen_npwp else []
if self.user_company_id.dokumen_npwp:
self.user_company_id.message_post(body='Dokumen NPWP', attachment_ids=[self.user_company_id.dokumen_npwp.id])
- self.user_company_id.dokumen_sppkp = self.pengajuan_tempo_id.dokumen_sppkp[0]
+ self.user_company_id.dokumen_sppkp = self.pengajuan_tempo_id.dokumen_sppkp[0] if self.pengajuan_tempo_id.dokumen_sppkp else []
if self.user_company_id.dokumen_sppkp:
self.user_company_id.message_post(body='Dokumen SPPKP', attachment_ids=[self.user_company_id.dokumen_sppkp.id])
- self.user_company_id.dokumen_nib = self.pengajuan_tempo_id.dokumen_nib[0]
+ self.user_company_id.dokumen_nib = self.pengajuan_tempo_id.dokumen_nib[0] if self.pengajuan_tempo_id.dokumen_nib else []
if self.user_company_id.dokumen_nib:
self.user_company_id.message_post(body='Dokumen NIB', attachment_ids=[self.user_company_id.dokumen_nib.id])
- self.user_company_id.dokumen_siup = self.pengajuan_tempo_id.dokumen_siup[0]
+ self.user_company_id.dokumen_siup = self.pengajuan_tempo_id.dokumen_siup[0] if self.pengajuan_tempo_id.dokumen_siup else []
if self.user_company_id.dokumen_siup:
self.user_company_id.message_post(body='dokumen SIUP', attachment_ids=[self.user_company_id.dokumen_siup.id])
- self.user_company_id.dokumen_tdp = self.pengajuan_tempo_id.dokumen_tdp[0]
+ self.user_company_id.dokumen_tdp = self.pengajuan_tempo_id.dokumen_tdp[0] if self.pengajuan_tempo_id.dokumen_tdp else []
if self.user_company_id.dokumen_tdp:
self.user_company_id.message_post(body='dokumen TDP', attachment_ids=[self.user_company_id.dokumen_tdp.id])
- self.user_company_id.dokumen_skdp = self.pengajuan_tempo_id.dokumen_skdp[0]
+ self.user_company_id.dokumen_skdp = self.pengajuan_tempo_id.dokumen_skdp[0] if self.pengajuan_tempo_id.dokumen_skdp else []
if self.user_company_id.dokumen_skdp:
self.user_company_id.message_post(body='dokumen SKDP', attachment_ids=[self.user_company_id.dokumen_skdp.id])
- self.user_company_id.dokumen_skt = self.pengajuan_tempo_id.dokumen_skt[0]
+ self.user_company_id.dokumen_skt = self.pengajuan_tempo_id.dokumen_skt[0] if self.pengajuan_tempo_id.dokumen_skt else []
if self.user_company_id.dokumen_skt:
self.user_company_id.message_post(body='dokumen SKT', attachment_ids=[self.user_company_id.dokumen_skt.id])