diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py index e51d64d24..ab8dbb8ef 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py @@ -106,45 +106,46 @@ class PermissionController(http.Controller): permission = None try: permission_number = self.permission_number_decrement(employee, body['date_from'], body['date_to']) - permission = http.request.env["hr.personal.permission"].sudo().create( - { - "employee_id": employee.id, - "date_from": body["date_from"], - "date_to": body["date_to"], - "early_exit": body["early_exit"], - "mission_purpose": body["mission_purpose"], - "permission_number": permission_number, - "date": body["date"], - } - ) - - # permission.permission_number_decrement() - if 'attachment' in body and body['attachment']: - attach = http.request.env['ir.attachment'].sudo().create({ - 'name': body['attachment'].filename, - 'datas': base64.b64encode(body['attachment'].read()), - 'store_fname': body['attachment'].filename, - 'res_model': 'hr.personal.permission', - 'res_id': permission.id, - 'personal_permission_id': permission.id, + with request.env.cr.savepoint(): + permission = http.request.env["hr.personal.permission"].sudo().create( + { + "employee_id": employee.id, + "date_from": body["date_from"], + "date_to": body["date_to"], + "early_exit": body["early_exit"], + "mission_purpose": body["mission_purpose"], + "permission_number": permission_number, + "date": body["date"], + } + ) + + # permission.permission_number_decrement() + if 'attachment' in body and body['attachment']: + attach = http.request.env['ir.attachment'].sudo().create({ + 'name': body['attachment'].filename, + 'datas': base64.b64encode(body['attachment'].read()), + 'store_fname': body['attachment'].filename, + 'res_model': 'hr.personal.permission', + 'res_id': permission.id, + 'personal_permission_id': permission.id, - }) - # - if permission: - data = { - "id": permission.id, - "date": str(permission.date), - "duration": permission.duration, - "date_from": str(permission.date_from), - "date_to": str(permission.date_to), - "early_exit": permission.early_exit, - "state": validator.get_state_name(permission, permission.state), - "state_name": permission.state, - "reason_msg": permission.reason or "", - "mission_purpose": permission.mission_purpose or "", - "attachment": self.get_attchment(permission), - } - return http_helper.response(message="Permission Created Successfully", data={'permission': [data]}) + }) + # + if permission: + data = { + "id": permission.id, + "date": str(permission.date), + "duration": permission.duration, + "date_from": str(permission.date_from), + "date_to": str(permission.date_to), + "early_exit": permission.early_exit, + "state": validator.get_state_name(permission, permission.state), + "state_name": permission.state, + "reason_msg": permission.reason or "", + "mission_purpose": permission.mission_purpose or "", + "attachment": self.get_attchment(permission), + } + return http_helper.response(message="Permission Created Successfully", data={'permission': [data]}) except (UserError, AccessError, ValidationError, Exception, Warning) as e: error = str(e) if permission: