summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-15 13:20:21 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-15 13:20:21 +0700
commit932fd84a5eb71d62f2a138f3ddb9ab9c0ccb0385 (patch)
treead819379b1ace4855ddbe60ec48158a96b656146 /indoteknik_api
parentef3ed689e8c8dc1de79e3744055fa12a97aefd35 (diff)
<iman> update merchant
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/lead.py76
-rw-r--r--indoteknik_api/models/__init__.py1
-rw-r--r--indoteknik_api/models/res_partner.py180
3 files changed, 253 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/lead.py b/indoteknik_api/controllers/api_v1/lead.py
index 5749f5e5..e8153fbf 100644
--- a/indoteknik_api/controllers/api_v1/lead.py
+++ b/indoteknik_api/controllers/api_v1/lead.py
@@ -28,10 +28,10 @@ class Lead(controller.Controller):
return self.response(True)
- @http.route('/api/v1/merchant', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
+ @http.route('/api/v1/merchant/<id>', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def create_merchant(self, **kw):
- merchant_request = True if kw.get('merchant_request') == 'true' else False
+ merchant_request = True if kw.get('merchantRequest') == 'true' else False
params = self.get_request_params(kw, {
# informasi perusahaan
"name_merchant": [],
@@ -54,10 +54,28 @@ class Lead(controller.Controller):
"mobile": [],
"bisnis_type": [],
"category_perusahaan": [],
+ "website": [],
"description": [],
# informasi vendor
"harga_tayang": [],
+ "merk_dagang": [],
+ "tempo_duration": [],
+ "kredit_limit": [],
+ "is_pengajuan_tempo": [],
+ "waktu_pengiriman": [],
+ "terhitung_sejak": [],
+
+ # Syarat Perdagangan
+ "is_kembali_barang": [],
+ "sertifikat_produk": [],
+ "custom_sertifikat_produk": [],
+ "is_order_quantity": [],
+ "explain_garansi": [],
+
+
+
+
"file_dokumenKtpDirut ": [],
"file_kartuNama": [],
"file_npwp": [],
@@ -67,10 +85,42 @@ class Lead(controller.Controller):
"file_dataProduk": [],
"file_pricelist": [],
})
- partner_id = int(kw.get('partner_id'))
+ partner_id = int(kw.get('id'))
partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1)
main_partner = partner.get_main_parent()
+ if params['value']['is_pengajuan_tempo']:
+ if params['value']['is_pengajuan_tempo'] == 'ada':
+ params['value']['is_pengajuan_tempo'] = True
+ else:
+ params['value']['is_pengajuan_tempo'] = False
+
+ if params['value']['is_kembali_barang']:
+ if params['value']['is_kembali_barang'] == 'ya':
+ params['value']['is_kembali_barang'] = kw.get('textReturn')
+ else:
+ params['value']['is_kembali_barang'] = 'Tidak dapat return'
+
+ if kw.get('tenggat_waktu'):
+ 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'
+
+ if params['value']['is_order_quantity']:
+ if params['value']['is_order_quantity'] == 'ya':
+ params['value']['is_order_quantity'] = kw.get('minimumPembelian')
+ else:
+ params['value']['is_order_quantity'] = 'Tidak ada minimum order quantity'
+
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:
@@ -78,7 +128,11 @@ class Lead(controller.Controller):
else:
lead = request.env['user.form.merchant'].create(filtered_params)
lead.partner_id = main_partner.id
-
+ category_ids = ''
+ 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)]
if not params['valid']:
return self.response(code=400, description=params)
if merchant_request:
@@ -89,3 +143,17 @@ class Lead(controller.Controller):
})
return self.response(True)
+
+ @http.route('/api/v1/detail-merchant/<id>', auth='public', methods=['GET', 'OPTIONS'])
+ @controller.Controller.must_authorized()
+ def get_partner_detail_merchant(self, **kw):
+ params = self.get_request_params(kw, {
+ 'id': ['required', 'number']
+ })
+ partner = request.env['res.partner'].search([('id', '=', params['value']['id'])], limit=1)
+ main_partner = partner.get_main_parent()
+ form_merchant = request.env['user.form.merchant'].search([('partner_id', '=', main_partner.id)],limit=1)
+ if not form_merchant:
+ return self.response(code=404, description='form merchant not found')
+ form_merchant = request.env['res.partner'].api_single_response(form_merchant)
+ return self.response(form_merchant)
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..5da79884
--- /dev/null
+++ b/indoteknik_api/models/res_partner.py
@@ -0,0 +1,180 @@
+from odoo import models
+import json
+import base64
+
+class ResPartner(models.Model):
+ _inherit = 'res.partner'
+
+ def api_single_response(self, form_merchant, with_detail=''):
+ config = self.env['ir.config_parameter']
+
+ partner = form_merchant.partner_id
+
+ dokumen_kirim = [
+ ['Surat Tanda Terima Barang (STTB)', '0'],
+ ['Good Receipt (GR)', '1'],
+ ['Surat Terima Barang (STB)', '2'],
+ ['Lembar Penerimaan Barang (LPB)', '3']
+ ]
+ dokumen_pengiriman = []
+ # if form_merchant.dokumen_pengiriman :
+ # form_merchant_dokumen_pengiriman = form_merchant.dokumen_pengiriman
+ # mapping_dokumen = {item[0]: item[1] for item in dokumen_kirim}
+ # dokumen_pengiriman_list = [dokumen.strip() for dokumen in form_merchant_dokumen_pengiriman.split(',')]
+ # dokumen_pengiriman = [mapping_dokumen.get(dokumen, '4') for dokumen in dokumen_pengiriman_list]
+ data = {
+ 'name_merchant' : form_merchant.name_merchant,
+ 'pejabat_name' : form_merchant.pejabat_name,
+ 'pic_merchant' : form_merchant.pic_merchant,
+ 'pic_position' : form_merchant.pic_position,
+ 'address' : form_merchant.address,
+ 'state' : form_merchant.state.id,
+ 'city' : form_merchant.city.id,
+ 'district' : form_merchant.district.id,
+ 'subDistrict' : form_merchant.subDistrict.id,
+ 'zip' : form_merchant.zip,
+ 'bank_name' : form_merchant.bank_name,
+ 'rekening_name' : form_merchant.rekening_name,
+ 'account_number' : form_merchant.account_number,
+ 'email_company' : form_merchant.email_company,
+ 'email_sales' : form_merchant.email_sales,
+ 'email_finance' : form_merchant.email_finance,
+ 'phone' : form_merchant.phone,
+ 'mobile' : form_merchant.mobile,
+ 'bisnis_type' : form_merchant.bisnis_type,
+ 'category_perusahaan': form_merchant.category_perusahaan,
+ 'website' : form_merchant.website,
+
+ # informasi Vendor
+ 'harga_tayang' : form_merchant.harga_tayang,
+ 'category_produk': ','.join([str(cat.id) for cat in form_merchant.category_produk_ids]) if form_merchant.category_produk_ids else '',
+ 'merk_dagang' : form_merchant.merk_dagang,
+ 'is_pengajuan_tempo' : 'ada' if form_merchant.is_pengajuan_tempo else 'tidak',
+ 'tempo_duration' : form_merchant.tempo_duration.id,
+ 'kredit_limit' : form_merchant.kredit_limit,
+ 'waktu_pengiriman' : form_merchant.waktu_pengiriman,
+ 'terhitung_sejak' : form_merchant.terhitung_sejak,
+
+
+ # syarat perdagangan
+ 'is_kembali_barang': 'ya' if form_merchant.is_kembali_barang else 'tidak',
+ 'text_return': form_merchant.is_kembali_barang,
+ 'tenggat_waktu': form_merchant.tenggat_waktu,
+ 'sertifikat_produk': form_merchant.sertifikat_produk,
+ 'custom_sertifikat_produk': '' if form_merchant.custom_sertifikat_produk == 'false' else form_merchant.custom_sertifikat_produk,
+ 'tempo_garansi': 1 if form_merchant.tempo_garansi == '6 Bulan Garansi' else 2 if form_merchant.tempo_garansi == '1 Tahun Garansi' else 3 ,
+ 'explain_garansi': form_merchant.explain_garansi,
+ 'is_order_quantity': 'ya' if form_merchant.is_order_quantity else 'tidak',
+ 'minimum_pembelian': form_merchant.is_order_quantity,
+ #
+ # # Pengiriman
+ # 'PIC_tittle' : form_merchant.pic_tittle if form_merchant.pic_tittle else '',
+ # 'PIC_name' : form_merchant.pic_name if form_merchant.pic_name else '',
+ # 'street_pengiriman' : form_merchant.street_pengiriman if form_merchant.street_pengiriman else '',
+ # 'state_pengiriman' : form_merchant.state_id_pengiriman.id if form_merchant.state_id_pengiriman else '',
+ # 'city_pengiriman' : form_merchant.city_id_pengiriman.id if form_merchant.city_id_pengiriman else '',
+ # 'district_pengiriman': form_merchant.district_id_pengiriman.id if form_merchant.district_id_pengiriman else '',
+ # 'subDistrict_pengiriman': form_merchant.subDistrict_id_pengiriman.id if form_merchant.subDistrict_id_pengiriman else '',
+ # 'zip_pengiriman' : form_merchant.zip_pengiriman if form_merchant.zip_pengiriman else '',
+ # 'invoice_pic_tittle' : form_merchant.invoice_pic_tittle if form_merchant.invoice_pic_tittle else '',
+ # 'invoice_pic' : form_merchant.invoice_pic if form_merchant.invoice_pic else '',
+ # 'street_invoice' : form_merchant.street_invoice if form_merchant.street_invoice else '',
+ # 'state_invoice' : form_merchant.state_id_invoice.id if form_merchant.state_id_invoice else '',
+ # 'city_invoice' : form_merchant.city_id_invoice.id if form_merchant.city_id_invoice else '',
+ # 'district_invoice': form_merchant.district_id_invoice.id if form_merchant.district_id_invoice else '',
+ # 'subDistrict_invoice': form_merchant.subDistrict_id_invoice.id if form_merchant.subDistrict_id_invoice else '',
+ # 'zip_invoice': form_merchant.zip_invoice if form_merchant.zip_invoice else '',
+ # 'tukar_invoice_input' : form_merchant.tukar_invoice if form_merchant.tukar_invoice else '',
+ # 'tukar_invoice_input_pembayaran' : form_merchant.jadwal_bayar if form_merchant.jadwal_bayar else '',
+ # 'dokumen_pengiriman' : ','.join(dokumen_pengiriman) if dokumen_pengiriman else '',
+ # 'dokumen_pengiriman_input' : form_merchant.dokumen_pengiriman_input if form_merchant.dokumen_pengiriman_input else '',
+ # 'dokumen_kirim_input' : form_merchant.dokumen_kirim_input if form_merchant.dokumen_kirim_input else '',
+ # 'dokumen_pengiriman_invoice' : form_merchant.dokumen_invoice if form_merchant.dokumen_invoice else '',
+ # 'is_same_addrees': form_merchant.is_same_address if form_merchant.is_same_address else False,
+ # 'is_same_addrees_street': form_merchant.is_same_address_street if form_merchant.is_same_address_street else False,
+ # 'supplier_ids': [
+ # {
+ # 'id': supplier.id,
+ # 'supplier': supplier.name_supplier,
+ # 'telepon': supplier.phone,
+ # 'pic': supplier.pic_name,
+ # 'credit_limit': supplier.credit_limit,
+ # 'durasi_tempo': supplier.tempo_duration
+ # }
+ # for supplier in form_merchant.supplier_ids
+ # ] if form_merchant.supplier_ids else '',
+ # # Dokumen
+ # 'dokumen_npwp':
+ # {
+ # 'name': form_merchant.dokumen_npwp.name,
+ # 'base64': form_merchant.dokumen_npwp.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_npwp.mimetype,
+ # } if form_merchant.dokumen_npwp else '',
+ # 'dokumen_sppkp': {
+ # 'name': form_merchant.dokumen_sppkp.name,
+ # 'base64': form_merchant.dokumen_sppkp.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_sppkp.mimetype,
+ # } if form_merchant.dokumen_sppkp else '',
+ # 'dokumen_nib':
+ # {
+ # 'name': form_merchant.dokumen_nib.name,
+ # 'base64': form_merchant.dokumen_nib.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_nib.mimetype,
+ # }if form_merchant.dokumen_nib else '',
+ # 'dokumen_siup':
+ # {
+ # 'name': form_merchant.dokumen_siup.name,
+ # 'base64': form_merchant.dokumen_siup.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_siup.mimetype,
+ # }if form_merchant.dokumen_siup else '',
+ # 'dokumen_tdp':
+ # {
+ # 'name': form_merchant.dokumen_tdp.name,
+ # 'base64': form_merchant.dokumen_tdp.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_tdp.mimetype,
+ # }if form_merchant.dokumen_tdp else '',
+ # 'dokumen_skdp':
+ # {
+ # 'name': form_merchant.dokumen_skdp.name,
+ # 'base64': form_merchant.dokumen_skdp.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_skdp.mimetype,
+ # }if form_merchant.dokumen_skdp else '',
+ # 'dokumen_skt':
+ # {
+ # 'name': form_merchant.dokumen_skt.name,
+ # 'base64': form_merchant.dokumen_skt.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_skt.mimetype,
+ # }if form_merchant.dokumen_skt else '',
+ # 'dokumen_akta_perubahan': {
+ # 'name': form_merchant.dokumen_akta_perubahan.name,
+ # 'base64': form_merchant.dokumen_akta_perubahan.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_akta_perubahan.mimetype,
+ # } if form_merchant.dokumen_akta_perubahan else '',
+ # 'dokumen_ktp_dirut': {
+ # 'name': form_merchant.dokumen_ktp_dirut.name,
+ # 'base64': form_merchant.dokumen_ktp_dirut.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_ktp_dirut.mimetype,
+ # } if form_merchant.dokumen_ktp_dirut else '',
+ # 'dokumen_akta_pendirian': {
+ # 'name': form_merchant.dokumen_akta_pendirian.name,
+ # 'base64': form_merchant.dokumen_akta_pendirian.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_akta_pendirian.mimetype,
+ # } if form_merchant.dokumen_akta_pendirian else '',
+ # 'dokumen_laporan_keuangan': {
+ # 'name': form_merchant.dokumen_laporan_keuangan.name,
+ # 'base64': form_merchant.dokumen_laporan_keuangan.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_laporan_keuangan.mimetype,
+ # } if form_merchant.dokumen_laporan_keuangan else '',
+ # 'dokumen_foto_kantor': {
+ # 'name': form_merchant.dokumen_foto_kantor.name,
+ # 'base64': form_merchant.dokumen_foto_kantor.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_foto_kantor.mimetype,
+ # } if form_merchant.dokumen_foto_kantor else '',
+ # 'dokumen_tempat_bekerja': {
+ # 'name': form_merchant.dokumen_tempat_bekerja.name,
+ # 'base64': form_merchant.dokumen_tempat_bekerja.datas.decode('utf-8'),
+ # 'format': form_merchant.dokumen_tempat_bekerja.mimetype,
+ # } if form_merchant.dokumen_tempat_bekerja else '',
+ }
+
+ return data \ No newline at end of file