diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-12-02 09:31:13 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-12-02 09:31:13 +0700 |
| commit | 6fbfe31167e6eb66d4995374dadb14774026e8c7 (patch) | |
| tree | 044465ba37c6c6bc47ca2f0d6729ef6a64836397 /indoteknik_api | |
| parent | 07c14fedc459106189d040e7724e6d7f81051658 (diff) | |
<iman> pengajuan tempo update
Diffstat (limited to 'indoteknik_api')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/partner.py | 34 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/user.py | 16 | ||||
| -rw-r--r-- | indoteknik_api/models/res_users.py | 15 |
3 files changed, 55 insertions, 10 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index 088f6f5b..19c73aec 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -265,16 +265,29 @@ class Partner(controller.Controller): return self.response(data) + @http.route(prefix + 'check/<partner_id>/tempo_progress', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized() + def get_check_tempo_partner_progres(self, **kw): + partner_id = int(kw.get('partner_id')) + partner = request.env['res.partner'].search([('id', '=', partner_id)], limit=1) + pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', partner.id)], limit=1) + if not pengajuan_tempo: + return self.response(code=404, description='Partner not found') + + data = True if pengajuan_tempo.id else False + return self.response(data) + @http.route(prefix + 'partner/pengajuan_tempo', auth='public', methods=['POST'], csrf=False) @controller.Controller.must_authorized() def write_pengajuan_tempo(self, **kw): + id = int(kw.get('partner_id')) user_id = int(kw.get('user_id')) - id = int(kw.get('id')) - tempo_request = kw.get('tempo_request',False) + tempo_request = True if kw.get('tempo_request') == 'true' else False pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', user_id)], limit=1) - user = request.env['res.users'].search([('id', '=', user_id)], limit=1) + user = request.env['res.partner'].search([('id', '=', id)], limit=1) company_name = kw.get('name', pengajuan_tempo.name_tempo.name) partner_id = request.env['res.partner'].search([('name', 'like', company_name)], limit=1) + user_account = self.get_user_by_email(user.user_id.email) params = self.get_request_params(kw, { @@ -499,10 +512,23 @@ class Partner(controller.Controller): return http.Response(status=400, json_body={'error': 'Invalid JSON format for formDokumen'}) if tempo_request: tempo_request = request.env['user.pengajuan.tempo.request'].create({ - 'user_id': user.partner_id.id, + 'user_id': user.id, 'pengajuan_tempo_id': pengajuan_tempo.id, + 'user_company_id': partner_id.id, + 'tempo_duration': pengajuan_tempo.tempo_duration.id, + 'tempo_limit': pengajuan_tempo.tempo_limit, }) + pengajuan_tempo.user_id = user_account.id + template = pengajuan_tempo.env.ref('indoteknik_custom.mail_template_user_cart_reminder_to_checkout') + template.send_mail(pengajuan_tempo.id, force_send=True) + # user_account.send_activation_mail() return self.response({ 'id': pengajuan_tempo.id, 'user_id': user_id, }) + + def get_user_by_email(self, email): + return request.env['res.users'].search([ + ('login', '=', email), + ('active', 'in', [True, False]) + ])
\ No newline at end of file diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py index 3be874fa..f83937ea 100644 --- a/indoteknik_api/controllers/api_v1/user.py +++ b/indoteknik_api/controllers/api_v1/user.py @@ -179,7 +179,7 @@ class User(controller.Controller): if result: match_company_name = result[0] - match_company_id = result[2] + match_company_id = result[1] # Create a user company request request.env['user.company.request'].create({ @@ -403,6 +403,20 @@ class User(controller.Controller): 'user': self.response_with_token(user) }) + @http.route(prefix + 'user/<id>/after_request_tempo', auth='public', methods=['PUT', 'OPTIONS'], csrf=False) + @controller.Controller.must_authorized() + def update_user_tempo(self, **kw): + id = kw.get('id') + + user = request.env['res.users'].search([('id', '=', id)], limit=1) + if not user: + return self.response(code=404, description='User not found') + + + return self.response({ + 'user': self.response_with_token(user, payment_tempo='Review') + }) + @http.route(prefix + 'user/<id>/address', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() def get_user_address_by_id(self, **kw): diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py index 52a044dc..40933957 100644 --- a/indoteknik_api/models/res_users.py +++ b/indoteknik_api/models/res_users.py @@ -1,10 +1,10 @@ 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=''): + def api_single_response(self, res_user, with_detail='', payment_tempo= ''): config = self.env['ir.config_parameter'] partner = res_user.partner_id @@ -14,9 +14,13 @@ class ResUsers(models.Model): 'manager': 2, 'director': 3 } - partner_tempo = False + partner_tempo = '' + is_tempo_request = request.env['user.pengajuan.tempo.request'].search([('name_tempo', '=', partner.id)], limit=1) + tempo_progres = 'review' if is_tempo_request else '' if main_partner: - partner_tempo = main_partner.get_check_tempo_partner() + partner_tempo = main_partner.get_check_payment_term() + if payment_tempo: + tempo_progres = payment_tempo data = { 'id': res_user.id, @@ -36,7 +40,8 @@ class ResUsers(models.Model): 'so_approval': main_partner.use_so_approval, 'only_ready_stock': main_partner.use_only_ready_stock }, - 'partner_tempo': partner_tempo + 'partner_tempo': partner_tempo, + 'tempo_progres': tempo_progres } return data |
