summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-20 11:56:25 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-20 11:56:25 +0700
commitc7f6d959e0e7a2e8adc45cff515f2b5666f3e732 (patch)
tree47dff70b4c0d368832d6dfc195225da53af9ac61 /indoteknik_api/controllers/api_v1
parent932fd84a5eb71d62f2a138f3ddb9ab9c0ccb0385 (diff)
<iman> update merchant
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/lead.py89
1 files changed, 67 insertions, 22 deletions
diff --git a/indoteknik_api/controllers/api_v1/lead.py b/indoteknik_api/controllers/api_v1/lead.py
index e8153fbf..67856dad 100644
--- a/indoteknik_api/controllers/api_v1/lead.py
+++ b/indoteknik_api/controllers/api_v1/lead.py
@@ -1,6 +1,9 @@
from .. import controller
from odoo import http
from odoo.http import request
+import base64
+import mimetypes
+import json
class Lead(controller.Controller):
@http.route('/api/v1/lead', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@@ -70,20 +73,20 @@ class Lead(controller.Controller):
"is_kembali_barang": [],
"sertifikat_produk": [],
"custom_sertifikat_produk": [],
+ "tempo_garansi": [],
"is_order_quantity": [],
"explain_garansi": [],
-
-
-
- "file_dokumenKtpDirut ": [],
- "file_kartuNama": [],
- "file_npwp": [],
- "file_sppkp": [],
- "file_suratPernyataan": [],
- "file_fotoKantor": [],
- "file_dataProduk": [],
- "file_pricelist": [],
+ # # dokumen
+ #
+ # "file_npwp": [],
+ # "file_sppkp": [],
+ # "file_dokumenKtpDirut ": [],
+ # "file_kartuNama": [],
+ # "file_suratPernyataan": [],
+ # "file_fotoKantor": [],
+ # "file_dataProduk": [],
+ # "file_pricelist": [],
})
partner_id = int(kw.get('id'))
partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1)
@@ -105,22 +108,21 @@ class Lead(controller.Controller):
if kw.get('tenggat_waktu') != 'custom':
params['value']['tenggat_waktu'] = kw.get('tenggat_waktu') + ' hari sejak data dikirimkan'
else:
- params['value']['tenggat_waktu'] = kw.get('customTenggatWaktu')
-
- if kw.get('tempo_garansi'):
- if kw.get('tempo_garansi') == '1':
- params['value']['tempo_garansi'] = '6 Bulan Garansi'
- elif kw.get('tempoTaransi') == '2':
- params['value']['tempo_garansi'] = '1 Tahun Garansi'
- else:
- params['value']['tempo_garansi'] = '2 Tahun Garansi'
+ params['value']['tenggat_waktu'] = kw.get('custom_tenggat_waktu')
if params['value']['is_order_quantity']:
if params['value']['is_order_quantity'] == 'ya':
- params['value']['is_order_quantity'] = kw.get('minimumPembelian')
+ params['value']['is_order_quantity'] = kw.get('minimum_pembelian')
else:
params['value']['is_order_quantity'] = 'Tidak ada minimum order quantity'
+ dokumen_kirim = [
+ 'TKDN',
+ 'SNI',
+ 'Surat Terima Barang (STB)',
+ 'Lembar Penerimaan Barang (LPB)'
+ ]
+
filtered_params = {key: value for key, value in params['value'].items() if value}
form_merchant = request.env['user.form.merchant'].search([('partner_id', '=', main_partner.id)], limit=1)
if form_merchant:
@@ -132,7 +134,50 @@ class Lead(controller.Controller):
category_produk_ids = kw.get('categoryProduk', False)
if category_produk_ids:
category_ids = list(map(int, category_produk_ids.split(',')))
- form_merchant.category_produk_ids = [(6, 0, category_ids)]
+ valid_category_ids = request.env['product.public.category'].search([('id', 'in', category_ids)]).ids
+ form_merchant.category_produk_ids = [(6, 0, valid_category_ids)]
+
+ file_dokumen = kw.get('file_dokumen', False)
+ if file_dokumen:
+ form_dokumen = json.loads(file_dokumen)
+
+ for dokumen in form_dokumen:
+ if form_dokumen[dokumen]['details']:
+ mimetype, _ = mimetypes.guess_type(form_dokumen[dokumen]['details']['name'])
+ mimetype = mimetype or 'application/octet-stream'
+ data = base64.b64decode(form_dokumen[dokumen]['details']['format'])
+ sppkp_attachment = request.env['ir.attachment'].create({
+ 'name': form_dokumen[dokumen]['details']['name'],
+ 'type': 'binary',
+ 'datas': base64.b64encode(data),
+ 'res_model': 'user.form.merchant',
+ 'res_id': form_merchant.id,
+ 'mimetype': mimetype
+ })
+
+ if dokumen == 'file_npwp':
+ form_merchant.file_npwp = sppkp_attachment.id
+
+ elif dokumen == 'file_sppkp':
+ form_merchant.file_sppkp = sppkp_attachment.id
+
+ elif dokumen == 'file_dokumenKtpDirut':
+ form_merchant.file_dokumenKtpDirut = sppkp_attachment.id
+
+ elif dokumen == 'file_kartuNama':
+ form_merchant.file_kartuNama = sppkp_attachment.id
+
+ elif dokumen == 'file_suratPernyataan':
+ form_merchant.file_suratPernyataan = sppkp_attachment.id
+
+ elif dokumen == 'file_fotoKantor':
+ form_merchant.file_fotoKantor = sppkp_attachment.id
+
+ elif dokumen == 'file_dataProduk':
+ form_merchant.file_dataProduk = sppkp_attachment.id
+
+ elif dokumen == 'file_pricelist':
+ form_merchant.file_pricelist = sppkp_attachment.id
if not params['valid']:
return self.response(code=400, description=params)
if merchant_request: