summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-11-01 13:50:41 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-11-01 13:50:41 +0700
commitbe2bc04768f9f423c66a612f4f183d20e70a3145 (patch)
tree8ac24efd85ed2578c37ce03ee5d6247a3279f74a /indoteknik_api/controllers/api_v1
parent414ced359c181c612b302376cb740c7f5c02075f (diff)
<iman> update pengajuan tempo api
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py103
1 files changed, 59 insertions, 44 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 2ddd4437..921afac9 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -242,60 +242,72 @@ class Partner(controller.Controller):
@controller.Controller.must_authorized()
def write_pengajuan_tempo(self, **kw):
user_id = int(kw.get('user_id'))
+ id = int(kw.get('id'))
+ tempo_request = kw.get('tempo_request',False)
+ pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('id', '=', id)], limit=1)
user = request.env['res.users'].search([('id', '=', user_id)], limit=1)
- company_name = kw.get('name')
+ company_name = kw.get('name', pengajuan_tempo.name_tempo.name)
partner_id = request.env['res.partner'].search([('name', 'like', company_name)], limit=1)
params = self.get_request_params(kw, {
# informasi perusahaan
# 'name': ['required', 'alias:name_tempo'],
- 'industry_id': ['required', 'alias:industry_id_tempo'],
- 'street': ['required', 'alias:street_tempo'],
- 'state': ['required', 'alias:state_id_tempo'],
- 'city': ['required', 'alias:city_id_tempo'],
- 'zip': ['required', 'alias:zip_tempo'],
- 'mobile': ['required', 'alias:mobile_tempo'],
- 'bankName': ['required', 'alias:bank_name_tempo'],
- 'accountName': ['required', 'alias:account_name_tempo'],
- 'accountNumber': ['required', 'alias:account_number_tempo'],
+ 'industry_id': ['alias:industry_id_tempo'],
+ 'street': ['alias:street_tempo'],
+ 'state': ['alias:state_id_tempo'],
+ 'city': ['alias:city_id_tempo'],
+ 'zip': ['alias:zip_tempo'],
+ 'mobile': ['alias:mobile_tempo'],
+ 'bankName': ['alias:bank_name_tempo'],
+ 'accountName': ['alias:account_name_tempo'],
+ 'accountNumber': ['alias:account_number_tempo'],
'website': ['alias:website_tempo'],
- 'estimasi': ['required', 'alias:estimasi_tempo'],
- 'tempoDuration': ['required', 'alias:tempo_duration'],
- 'tempoLimit': ['required', 'alias:tempo_limit'],
+ 'estimasi': ['alias:estimasi_tempo'],
+ 'tempoDuration': ['alias:tempo_duration'],
+ 'tempoLimit': ['alias:tempo_limit'],
# informasi perusahaan
- 'direkturName': ['required', 'alias:direktur_name'],
- 'direkturMobile': ['required', 'alias:direktur_mobile'],
- 'direkturEmail': ['required', 'alias:direktur_email'],
- 'purchasingName': ['required', 'alias:purchasing_name'],
- 'purchasingMobile': ['required', 'alias:purchasing_mobile'],
- 'purchasingEmail': ['required', 'alias:purchasing_email'],
- 'financeName': ['required', 'alias:finance_name'],
- 'financeMobile': ['required', 'alias:finance_mobile'],
- 'financeEmail': ['required', 'alias:finance_email'],
+ 'direkturName': ['alias:direktur_name'],
+ 'direkturMobile': ['alias:direktur_mobile'],
+ 'direkturEmail': ['alias:direktur_email'],
+ 'purchasingName': ['alias:purchasing_name'],
+ 'purchasingMobile': ['alias:purchasing_mobile'],
+ 'purchasingEmail': ['alias:purchasing_email'],
+ 'financeName': ['alias:finance_name'],
+ 'financeMobile': ['alias:finance_mobile'],
+ 'financeEmail': ['alias:finance_email'],
# Pengiriman
- 'PICName': ['required', 'alias:pic_name'],
- 'streetPengiriman': ['required', 'alias:street_pengiriman'],
- 'statePengiriman': ['required', 'alias:state_id_pengiriman'],
- 'cityPengiriman': ['required', 'alias:city_id_pengiriman'],
- 'zipPengiriman': ['required', 'alias:zip_pengiriman'],
- 'invoicePic': ['required', 'alias:invoice_pic'],
- 'streetInvoice': ['required', 'alias:street_invoice'],
- 'stateInvoice': ['required', 'alias:state_id_invoice'],
- 'cityInvoice': ['required', 'alias:city_id_invoice'],
+ 'PICName': ['alias:pic_name'],
+ 'streetPengiriman': ['alias:street_pengiriman'],
+ 'statePengiriman': ['alias:state_id_pengiriman'],
+ 'cityPengiriman': ['alias:city_id_pengiriman'],
+ 'zipPengiriman': ['alias:zip_pengiriman'],
+ 'invoicePic': ['alias:invoice_pic'],
+ 'streetInvoice': ['alias:street_invoice'],
+ 'stateInvoice': ['alias:state_id_invoice'],
+ 'cityInvoice': ['alias:city_id_invoice'],
})
if not params['valid']:
return self.response(code=400, description=params)
- pengajuan_tempo = request.env['user.pengajuan.tempo'].create([params['value']])
+ # Filter data baru yang dikirim (non-kosong)
+ new_data = {key: value for key, value in params['value'].items() if value}
+
+ if pengajuan_tempo:
+ # Jika pengajuan_tempo sudah ada, hanya write data baru yang non-kosong
+ pengajuan_tempo.write(new_data)
+ else:
+ # Jika belum ada, buat record baru
+ pengajuan_tempo = request.env['user.pengajuan.tempo'].create(new_data)
+ pengajuan_tempo.partner_id = user_id
if partner_id:
pengajuan_tempo.name_tempo = partner_id
- form_supplier_data = kw.get('formSupplier')
+ form_supplier_data = kw.get('formSupplier', False)
if form_supplier_data:
try:
@@ -324,10 +336,12 @@ class Partner(controller.Controller):
except json.JSONDecodeError:
return http.Response(status=400, json_body={'error': 'Invalid JSON format for formSupplier'})
- category_produk_ids = kw.get('categoryProduk')
- category_ids = list(map(int, category_produk_ids.split(',')))
+ category_produk_ids = kw.get('categoryProduk', False)
+ category_ids = ''
+ if category_produk_ids:
+ category_ids = list(map(int, category_produk_ids.split(',')))
+ pengajuan_tempo.category_produk_ids = [(6, 0, category_ids)]
- pengajuan_tempo.category_produk_ids = [(6, 0, category_ids)]
every_weekday = True if kw.get('everyWeekday') == "true" else False
every_weekday_input = kw.get('everyWeekdayInput')
every_week = True if kw.get('everyWeek') == 'true' else False
@@ -402,7 +416,7 @@ class Partner(controller.Controller):
pengajuan_tempo.dokumen_invoice = ', '.join(dokumen_invoice)
- form_dokumen_data = kw.get('formDocs')
+ form_dokumen_data = kw.get('formDocs', False)
if form_dokumen_data:
try:
form_dokumen = json.loads(form_dokumen_data)
@@ -454,12 +468,13 @@ class Partner(controller.Controller):
except json.JSONDecodeError:
return http.Response(status=400, json_body={'error': 'Invalid JSON format for formDokumen'})
-
- tempo_request = request.env['user.pengajuan.tempo.request'].create({
- 'user_id': user.partner_id.id,
- 'pengajuan_tempo_id': pengajuan_tempo.id,
- 'user_input': partner_id.name
- })
+ if tempo_request:
+ tempo_request = request.env['user.pengajuan.tempo.request'].create({
+ 'user_id': user.partner_id.id,
+ 'pengajuan_tempo_id': pengajuan_tempo.id,
+ 'user_input': partner_id.name
+ })
return self.response({
- 'id': user_id,
+ 'id': pengajuan_tempo.id,
+ 'user_id': user_id,
})