diff --git a/odex25_transactions/exp_transaction_documents/wizard/sign_letter_transaction.py b/odex25_transactions/exp_transaction_documents/wizard/sign_letter_transaction.py index cdba4245c..b526a6bb6 100644 --- a/odex25_transactions/exp_transaction_documents/wizard/sign_letter_transaction.py +++ b/odex25_transactions/exp_transaction_documents/wizard/sign_letter_transaction.py @@ -22,7 +22,7 @@ class SignLetterTransaction(models.TransientModel): }) # Generate a new attachment (you must have action_generate_attachment() in letters.letters) - new_attachment = self.letter_id.action_generate_attachment() + new_attachment = self.letter_id.with_context(is_sign=True).action_generate_attachment() if new_attachment: # Set the new attachment as signed attachment_record = self.env['cm.attachment.rule'].browse(new_attachment.id) diff --git a/odex25_transactions/exp_transation_letters/models/letter.py b/odex25_transactions/exp_transation_letters/models/letter.py index 5da6fe9b8..4a2849e95 100644 --- a/odex25_transactions/exp_transation_letters/models/letter.py +++ b/odex25_transactions/exp_transation_letters/models/letter.py @@ -53,6 +53,7 @@ class Letters(models.Model): tracking=True ) job_name = fields.Char(string="Job Name", store=True) + @api.depends('transaction_type', 'name') def compute_img(self): employee_id = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) @@ -119,40 +120,44 @@ class Letters(models.Model): """ this method called from button action in view xml """ # generate pdf from report, use report's id as reference for record in self: - REPORT_ID = 'exp_transation_letters.report_letter_action_report' - pdf = self.env.ref(REPORT_ID)._render_qweb_pdf(self.ids) - # pdf result is a list - b64_pdf = base64.b64encode(pdf[0]) - res_id = '' - field_name, res_id = self._get_transaction_values() - # file_exists = self.env['cm.attachment.rule'].search([(field_name, '=', res_id),('created_from_system','=',True)]) - # if file_exists: - # file_exists.unlink() - ATTACHMENT_NAME = "Letter" - attach_id = self.env['ir.attachment'].create({ - 'name': ATTACHMENT_NAME + '.pdf', - 'type': 'binary', - 'datas': b64_pdf, - 'res_model': 'cm.attachment.rule', - 'store_fname': ATTACHMENT_NAME, - 'mimetype': 'application/pdf' - }) - # self.attachment_generated = True - employee = self.env['hr.employee'].search([('user_id', '=', attach_id.create_uid.id)], limit=1) - record.job_name = employee.job_id.name if employee and employee.job_id else ' ' - record.signed_user_id = attach_id.create_uid - self.state = 'attached' - return self.env['cm.attachment.rule'].sudo().create({ - 'employee_id': self.unite.id, - 'entity_id': self.unite.id, - 'file_save': [(6, 0, attach_id.ids)], - 'attachment_filename': ATTACHMENT_NAME, - field_name: res_id, - 'date': datetime.datetime.now(), - 'description': self.name, - 'created_from_system': True, - # 'signed' : True if self.is_sign else False - }) + if self.env.context.get('is_sign'): + employee = self.env['hr.employee'].search([('user_id', '=', self.env.user.id)], limit=1) + record.job_name = employee.job_id.name if employee and employee.job_id else ' ' + record.signed_user_id = self.env.user + else: + record.job_name = False + record.signed_user_id = False + REPORT_ID = 'exp_transation_letters.report_letter_action_report' + pdf = self.env.ref(REPORT_ID)._render_qweb_pdf(self.ids) + # pdf result is a list + b64_pdf = base64.b64encode(pdf[0]) + res_id = '' + field_name, res_id = self._get_transaction_values() + # file_exists = self.env['cm.attachment.rule'].search([(field_name, '=', res_id),('created_from_system','=',True)]) + # if file_exists: + # file_exists.unlink() + ATTACHMENT_NAME = "Letter" + attach_id = self.env['ir.attachment'].create({ + 'name': ATTACHMENT_NAME + '.pdf', + 'type': 'binary', + 'datas': b64_pdf, + 'res_model': 'cm.attachment.rule', + 'store_fname': ATTACHMENT_NAME, + 'mimetype': 'application/pdf' + }) + # self.attachment_generated = True + self.state = 'attached' + return self.env['cm.attachment.rule'].sudo().create({ + 'employee_id': self.unite.id, + 'entity_id': self.unite.id, + 'file_save': [(6, 0, attach_id.ids)], + 'attachment_filename': ATTACHMENT_NAME, + field_name: res_id, + 'date': datetime.datetime.now(), + 'description': self.name, + 'created_from_system': True, + # 'signed' : True if self.is_sign else False + }) def write(self, values): if values.get('content'):