summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/lead.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2025-05-23 09:38:49 +0700
committerstephanchrst <stephanchrst@gmail.com>2025-05-23 09:38:49 +0700
commitf66710c029d678ecf580808b5aee3821c90d9598 (patch)
tree7fd881203cf48bda9118ace64a418cc15fe6f7ae /indoteknik_api/controllers/api_v1/lead.py
parentdbf09bbf792809e84d2d0330a992e42b3a5c6994 (diff)
Revert "Merge branch 'CR/form-merchant' into odoo-backup"
This reverts commit f6f59e660af6c4229ada54f7313d68867df1ba15, reversing changes made to 68378dd2fb8d61b282a672ca0f09033d15d82283.
Diffstat (limited to 'indoteknik_api/controllers/api_v1/lead.py')
-rw-r--r--indoteknik_api/controllers/api_v1/lead.py207
1 files changed, 1 insertions, 206 deletions
diff --git a/indoteknik_api/controllers/api_v1/lead.py b/indoteknik_api/controllers/api_v1/lead.py
index 389f36b8..d5cc7c5c 100644
--- a/indoteknik_api/controllers/api_v1/lead.py
+++ b/indoteknik_api/controllers/api_v1/lead.py
@@ -1,9 +1,6 @@
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)
@@ -29,206 +26,4 @@ class Lead(controller.Controller):
lead = request.env['crm.lead'].create(params['value'])
- return self.response(True)
-
- @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
- params = self.get_request_params(kw, {
- # informasi perusahaan
- "name_merchant": [],
- "pejabat_name": [],
- "pic_merchant": [],
- "pic_position": [],
- "address": [],
- "state": ['number'],
- "city": ['number'],
- "district": ['number'],
- "subDistrict": ['number'],
- "zip": [],
- "bank_name": [],
- "rekening_name": [],
- "account_number": [],
- "email_company": [],
- "email_sales": [],
- "email_finance": [],
- "phone": [],
- "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": [],
- "tempo_garansi": [],
- "is_order_quantity": [],
- "explain_garansi": [],
- "custom_sertifikat_produk": [],
-
- # # 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)
- 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 direturn'
-
- 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('custom_tenggat_waktu')
-
- if params['value']['is_order_quantity']:
- if params['value']['is_order_quantity'] == 'ya':
- params['value']['is_order_quantity'] = kw.get('minimum_pembelian')
- else:
- params['value']['is_order_quantity'] = 'Tidak ada minimum order quantity'
-
- filtered_params = {key: value for key, value in params['value'].items() if kw.get(key) is not None}
- form_merchant = request.env['user.form.merchant'].search([('partner_id', '=', main_partner.id)], limit=1)
- lead = []
- if form_merchant:
- form_merchant.write(filtered_params)
- else:
- lead = request.env['user.form.merchant'].create(filtered_params)
- lead.partner_id = main_partner.id
-
- sertifikat = [
- 'TKDN',
- 'SNI',
- 'K3L',
- ]
- sertifikat_ids = kw.get('sertifikat_produk')
- sertifikat_input = kw.get('custom_sertifikat_produk')
- dokumen_sertifikat = []
-
- if sertifikat_ids:
- dokumen_kirim_ids = list(map(int, sertifikat_ids.split(',')))
- dokumen_sertifikat = [sertifikat[i] for i in dokumen_kirim_ids if 0 <= i < len(sertifikat)]
- if sertifikat_input != 'false' and sertifikat_input:
- input_items = [item.strip() for item in sertifikat_input.split(',')]
- dokumen_sertifikat.extend(item for item in input_items if item and item not in dokumen_sertifikat)
- form_merchant.sertifikat_produk = sertifikat_input
- else:
- # Jika sertifikat_input kosong, hapus elemen custom (yang tidak ada di daftar `sertifikat`)
- dokumen_sertifikat = [item for item in dokumen_sertifikat if item in sertifikat]
- if dokumen_sertifikat:
- form_merchant.sertifikat_produk = ', '.join(dokumen_sertifikat)
-
- category_ids = ''
- category_produk_ids = kw.get('categoryProduk', False)
- if category_produk_ids:
- category_ids = list(map(int, category_produk_ids.split(',')))
- 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:
- user_merchant_request = request.env['user.merchant.request'].create({
- 'user_id': partner.id,
- 'merchant_id': form_merchant.id,
- 'user_company_id': main_partner.id
- })
-
- 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_merchant(form_merchant)
- return self.response(form_merchant)
-
- @http.route('/api/v1/check-merchant/<id>', auth='public', methods=['GET', 'OPTIONS'])
- @controller.Controller.must_authorized()
- def get_partner_form_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.merchant.request'].search([('user_company_id', '=', main_partner.id)], limit=1)
- if form_merchant:
- return self.response(form_merchant.state_merchant)
- else:
- return self.response(code=404, description='form merchant not found') \ No newline at end of file
+ return self.response(True) \ No newline at end of file