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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
from odoo import models
from odoo.http import request
class ResUsers(models.Model):
_inherit = 'res.users'
def api_single_response(self, res_user, with_detail=''):
config = self.env['ir.config_parameter']
partner = res_user.partner_id
main_partner = partner.get_main_parent()
WEB_ROLE_ALIAS = {
'manager': 2,
'director': 3
}
partner_tempo = False
is_tempo_request = request.env['user.pengajuan.tempo.request'].search([('user_company_id', '=', main_partner.id)], limit=1)
tempo_progres = (
'review' if is_tempo_request.state_tempo in ('draft', 'approval_sales', 'approval_finance') else
'rejected' if is_tempo_request.state_tempo == 'reject' else
'approve' if is_tempo_request.state_tempo == 'approval_director' else ''
)
if main_partner:
partner_tempo = True if 'tempo' in main_partner.get_check_payment_term().lower() else False
data = {
'id': res_user.id,
'parent_id': res_user.parent_id.id or None,
'parent_name': res_user.parent_id.name or None,
'site': partner.site_id.name or None,
'partner_id': partner.id,
'name': res_user.name,
'email': res_user.login,
'phone': res_user.phone or '',
'mobile': res_user.mobile or '',
'external': res_user.share,
'company': main_partner.company_type == 'company',
'pricelist': res_user.property_product_pricelist.sudo().get_tier_name(),
'web_role': WEB_ROLE_ALIAS[partner.web_role] if partner.web_role else None,
'feature': {
'so_approval': main_partner.use_so_approval,
'only_ready_stock': main_partner.use_only_ready_stock
},
'partner_tempo': partner_tempo,
'tempo_progres': tempo_progres
}
return data
def api_address_response(self, user):
data = {
'id': user.id,
'type': user.type or '',
'name': user.name or '',
'mobile': user.mobile or '',
'phone': user.phone or '',
'email': user.email or '',
'street': user.street or '',
'street2': user.street2 or '',
'city': None,
'state_id': 0,
'district': None,
'sub_district': None,
'zip': user.zip or '',
'company_type_id': user.company_type_id.id or '',
'industry_id': user.industry_id.id or '',
'tax_name': user.nama_wajib_pajak or '',
'npwp': user.npwp or '',
'sppkp': user.sppkp or '',
'rajaongkir_city_id': user.kecamatan_id.rajaongkir_id or 0,
'alamat_wajib_pajak': user.alamat_lengkap_text or '',
'alamat_bisnis': user.street or '',
'company_type': user.customer_type or 'nonpkp',
'longtitude': user.longtitude or None,
'latitude': user.latitude or None,
'address_map': user.address_map or None,
}
if user.state_id:
data['state_id'] = {
'id': user.state_id.id,
'name': user.state_id.name
} or 0
if user.kota_id:
data['city'] = {
'id': user.kota_id.id,
'name': user.kota_id.name
} or None
if user.kecamatan_id:
data['district'] = {
'id': user.kecamatan_id.id,
'name': user.kecamatan_id.name
}
if user.kelurahan_id:
data['sub_district'] = {
'id': user.kelurahan_id.id,
'name': user.kelurahan_id.name
}
return data
|