1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
from .. import controller
from odoo import http
from odoo.http import request
class Lead(controller.Controller):
@http.route('/api/v1/lead', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def create_lead(self, **kw):
params = self.get_request_params(kw, {
"name": ["required"],
"contact_name": [],
"email_from": [],
"phone": [],
"file_npwp": [],
"file_nib": [],
"file_tdp": [],
"file_siup": [],
"file_quotation": [],
"description": []
})
if not params['valid']:
return self.response(code=400, description=params)
params['value']['user_id'] = 20
lead = request.env['crm.lead'].create(params['value'])
return self.response(True)
@http.route('/api/v1/merchant', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def create_merchant(self, **kw):
params = self.get_request_params(kw, {
"name_merchant": ["required"],
"pic_merchant":[],
"address": [],
"state": [],
"city": [],
"district": [],
"subDistrict": [],
"zip": [],
"bank_name": [],
"rekening_name": [],
"account_number": [],
"email_company": [],
"email_sales": [],
"email_finance": [],
"phone": [],
"mobile": [],
"harga_tayang": [],
"file_dokumenKtpDirut ": [],
"file_kartuNama": [],
"file_npwp": [],
"file_sppkp": [],
"file_suratPernyataan": [],
"file_fotoKantor": [],
"file_dataProduk": [],
"file_pricelist": [],
"description": [],
})
filtered_params = {key: value for key, value in params['value'].items() if value}
lead = request.env['user.form.merchant'].create(filtered_params)
partner_id = int(kw.get('partner_id'))
partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1)
if not params['valid']:
return self.response(code=400, description=params)
main_partner = partner.get_main_parent()
user_merchant_request = request.env['user.merchant.request'].create({
'user_id': partner.id,
'merchant_id': lead.id,
'user_company_id': main_partner.id
})
return self.response(True)
|