summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-11-23 11:56:24 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-11-23 11:56:24 +0700
commit5667449f58ecdf5803a28944e503ae1611cc8416 (patch)
treed0c442bbfa1c098f951b127e1a070f671ad764ea
parent14559e52ce09e6e73c220987455c43ce89f9eabf (diff)
<iman> update tempo
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py33
-rw-r--r--indoteknik_api/models/__init__.py1
-rw-r--r--indoteknik_api/models/res_partner.py68
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo.py2
4 files changed, 100 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index e5f8d71c..9325d9aa 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -211,6 +211,32 @@ class Partner(controller.Controller):
})
return self.response(data)
+
+ @http.route(prefix + 'partner/payment_term', auth='public', methods=['GET', 'OPTIONS'])
+ @controller.Controller.must_authorized()
+ def get_partner_payment_term(self):
+ partner_industry = request.env['account.payment.term'].search([])
+ data = []
+ for industry in partner_industry:
+ if 'tempo' in industry.name.lower():
+ data.append({
+ 'id': industry.id,
+ 'name': industry.name
+ })
+
+ return self.response(data)
+
+ @http.route(prefix + 'partner/detail-tempo/<id>', auth='public', methods=['GET', 'OPTIONS'])
+ @controller.Controller.must_authorized()
+ def get_partner_detail_tempo(self, **kw):
+ params = self.get_request_params(kw, {
+ 'id': ['required', 'number']
+ })
+ pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', params['value']['id'])], limit=1)
+ if not pengajuan_tempo:
+ return self.response(code=404, description='pengajuan tempo not found')
+ pengajuan_tempo = request.env['res.partner'].api_single_response(pengajuan_tempo)
+ return self.response(pengajuan_tempo)
@http.route(prefix + 'check/<partner_id>/tempo', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
@@ -244,8 +270,9 @@ class Partner(controller.Controller):
def write_pengajuan_tempo(self, **kw):
user_id = int(kw.get('user_id'))
id = int(kw.get('id'))
+ section = kw.get('section')
tempo_request = kw.get('tempo_request',False)
- pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('id', '=', id)], limit=1)
+ pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', user_id)], limit=1)
user = request.env['res.users'].search([('id', '=', user_id)], limit=1)
company_name = kw.get('name', pengajuan_tempo.name_tempo.name)
partner_id = request.env['res.partner'].search([('name', 'like', company_name)], limit=1)
@@ -254,7 +281,7 @@ class Partner(controller.Controller):
# informasi perusahaan
# 'name': ['required', 'alias:name_tempo'],
- 'industry_id': ['alias:industry_id_tempo'],
+ 'industryId': ['alias:industry_id_tempo'],
'street': ['alias:street_tempo'],
'state': ['alias:state_id_tempo'],
'city': ['alias:city_id_tempo'],
@@ -469,7 +496,7 @@ class Partner(controller.Controller):
except json.JSONDecodeError:
return http.Response(status=400, json_body={'error': 'Invalid JSON format for formDokumen'})
- if tempo_request:
+ if 'konfirmasi' in section.lower():
tempo_request = request.env['user.pengajuan.tempo.request'].create({
'user_id': user.partner_id.id,
'pengajuan_tempo_id': pengajuan_tempo.id,
diff --git a/indoteknik_api/models/__init__.py b/indoteknik_api/models/__init__.py
index 892d2657..8c85938c 100644
--- a/indoteknik_api/models/__init__.py
+++ b/indoteknik_api/models/__init__.py
@@ -9,3 +9,4 @@ from . import sale_order
from . import x_manufactures
from . import website_content
from . import coupon_program
+from . import res_partner
diff --git a/indoteknik_api/models/res_partner.py b/indoteknik_api/models/res_partner.py
new file mode 100644
index 00000000..8ea8d301
--- /dev/null
+++ b/indoteknik_api/models/res_partner.py
@@ -0,0 +1,68 @@
+from odoo import models
+
+
+class ResPartner(models.Model):
+ _inherit = 'res.partner'
+
+ def api_single_response(self, res_partner, with_detail=''):
+ config = self.env['ir.config_parameter']
+
+ partner = res_partner.partner_id
+ data = {
+ 'name' : res_partner.name_tempo.name,
+ 'industry_id' : res_partner.industry_id_tempo.id,
+ 'street' : res_partner.street_tempo,
+ 'state' : res_partner.state_id_tempo.id,
+ 'city' : res_partner.city_id_tempo.id,
+ 'zip' : res_partner.zip_tempo,
+ 'mobile' : res_partner.mobile_tempo,
+ 'bank_name' : res_partner.bank_name_tempo,
+ 'account_name' : res_partner.account_name_tempo,
+ 'account_number' : res_partner.account_number_tempo,
+ 'website' : res_partner.website_tempo if res_partner.website_tempo else '',
+ 'estimasi' : res_partner.estimasi_tempo,
+ 'tempo_duration' : res_partner.tempo_duration.id,
+ 'tempo_limit' : res_partner.tempo_limit,
+ 'category_produk': ','.join([str(cat.id) for cat in res_partner.category_produk_ids]) if res_partner.category_produk_ids else '',
+
+ # Kontak Perusahaan
+ 'direktur_name' : res_partner.direktur_name if res_partner.direktur_name else '',
+ 'direktur_mobile' : res_partner.direktur_mobile if res_partner.direktur_mobile else '',
+ 'direktur_email' : res_partner.direktur_email if res_partner.direktur_email else '',
+ 'purchasing_name' : res_partner.purchasing_name if res_partner.purchasing_name else '',
+ 'purchasing_mobile' : res_partner.purchasing_mobile if res_partner.purchasing_mobile else '',
+ 'purchasing_email' : res_partner.purchasing_email if res_partner.purchasing_email else '',
+ 'finance_name' : res_partner.finance_name if res_partner.finance_name else '',
+ 'finance_mobile' : res_partner.finance_mobile if res_partner.finance_mobile else '',
+ 'finance_email' : res_partner.finance_email if res_partner.finance_email else '',
+
+ # Pengiriman
+ 'PIC_name' : res_partner.pic_name if res_partner.pic_name else '',
+ 'street_pengiriman' : res_partner.street_pengiriman if res_partner.street_pengiriman else '',
+ 'state_id_pengiriman' : res_partner.state_id_pengiriman.id if res_partner.state_id_pengiriman else '',
+ 'city_id_pengiriman' : res_partner.city_id_pengiriman.id if res_partner.city_id_pengiriman else '',
+ 'zip_pengiriman' : res_partner.zip_pengiriman if res_partner.zip_pengiriman else '',
+ 'invoice_pic' : res_partner.invoice_pic if res_partner.invoice_pic else '',
+ 'street_invoice' : res_partner.street_invoice if res_partner.street_invoice else '',
+ 'state_id_invoice' : res_partner.state_id_invoice.id if res_partner.state_id_invoice else '',
+ 'city_id_invoice' : res_partner.city_id_invoice.id if res_partner.city_id_invoice else '',
+ 'tukar_invoice' : res_partner.tukar_invoice if res_partner.tukar_invoice else '',
+ 'jadwal_bayar' : res_partner.jadwal_bayar if res_partner.jadwal_bayar else '',
+ 'dokumen_pengiriman' : res_partner.dokumen_pengiriman if res_partner.dokumen_pengiriman else '',
+ 'dokumen_invoice' : res_partner.dokumen_invoice if res_partner.dokumen_invoice else '',
+
+ 'supplier_ids': res_partner.supplier_ids if res_partner.supplier_ids else '',
+
+ # Dokumen
+ 'dokumen_nib': res_partner.dokumen_nib if res_partner.dokumen_nib else '',
+ 'dokumen_npwp': res_partner.dokumen_npwp if res_partner.dokumen_npwp else '',
+ 'dokumen_sppkp': res_partner.dokumen_sppkp if res_partner.dokumen_sppkp else '',
+ 'dokumen_akta_perubahan': res_partner.dokumen_akta_perubahan if res_partner.dokumen_akta_perubahan else '',
+ 'dokumen_ktp_dirut': res_partner.dokumen_ktp_dirut if res_partner.dokumen_ktp_dirut else '',
+ 'dokumen_akta_pendirian': res_partner.dokumen_akta_pendirian if res_partner.dokumen_akta_pendirian else '',
+ 'dokumen_laporan_keuangan': res_partner.dokumen_laporan_keuangan if res_partner.dokumen_laporan_keuangan else '',
+ 'dokumen_foto_kantor': res_partner.dokumen_foto_kantor if res_partner.dokumen_foto_kantor else '',
+ 'dokumen_tempat_bekerja': res_partner.dokumen_tempat_bekerja if res_partner.dokumen_tempat_bekerja else '',
+ }
+
+ return data \ No newline at end of file
diff --git a/indoteknik_custom/models/user_pengajuan_tempo.py b/indoteknik_custom/models/user_pengajuan_tempo.py
index 47e99dbf..763f302e 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo.py
@@ -42,7 +42,7 @@ class UserPengajuanTempo(models.Model):
account_number_tempo = fields.Char(string="Nomor Rekening Bank")
website_tempo = fields.Char(string='Website')
estimasi_tempo = fields.Char(string='Estimasi Pembelian Pertahun')
- tempo_duration = fields.Char(string='Durasi Tempo')
+ tempo_duration = fields.Many2one('account.payment.term', string='Durasi Tempo')
tempo_limit = fields.Char(string='Limit Tempo')
category_produk_ids = fields.Many2many('product.public.category', string='Kategori Produk yang Digunakan', domain=lambda self: self._get_default_category_domain())