diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-01-15 13:20:21 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-01-15 13:20:21 +0700 |
| commit | 932fd84a5eb71d62f2a138f3ddb9ab9c0ccb0385 (patch) | |
| tree | ad819379b1ace4855ddbe60ec48158a96b656146 /indoteknik_api | |
| parent | ef3ed689e8c8dc1de79e3744055fa12a97aefd35 (diff) | |
<iman> update merchant
Diffstat (limited to 'indoteknik_api')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/lead.py | 76 | ||||
| -rw-r--r-- | indoteknik_api/models/__init__.py | 1 | ||||
| -rw-r--r-- | indoteknik_api/models/res_partner.py | 180 |
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 |
