[FIX] exp_transaction_documents

This commit is contained in:
Samir Ladoui 2025-07-13 14:19:56 +01:00
parent 1a73c776c0
commit 755e5a0f5f
3 changed files with 29 additions and 70 deletions

View File

@ -43,7 +43,7 @@ Managing Communications Transcations flows
'wizard/sign_letter_transaction_view.xml',
'email_templates/internal_templates.xml',
'email_templates/incoming_templates.xml',
'data/server_action.xml'
],
'qweb': [
],

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="server_action_fix_internal_transactions_forward_user" model="ir.actions.server">
<field name="name">Fix forward user in internal transactions</field>
<field name="model_id" ref="base.model_ir_actions_server"/>
<field name="state">code</field>
<field name="code">
env['internal.transaction']._fix_forward_user()
</field>
</record>
</odoo>

View File

@ -157,17 +157,12 @@ class InternalTransaction(models.Model):
else:
record.state = 'send'
record.trace_create_ids('internal_transaction_id', record, sent)
partner_ids = []
if record.to_ids.type == 'unit':
partner_ids.append(record.to_ids.secretary_id.user_id.partner_id.id)
#record.forward_user_id = record.to_ids.preparation_id.manager_id.id
record.forward_user_id = record.to_ids.manager_id.user_id.id
elif record.to_ids.type == 'employee':
partner_ids.append(record.to_ids.user_id.partner_id.id)
record.forward_user_id = record.to_ids.user_id.id
@ -189,43 +184,6 @@ class InternalTransaction(models.Model):
return res
# def action_draft(self):
# for record in self:
# """her i need to review code for to_ids"""
# res = super(InternalTransaction, self).action_draft()
# sent = 'sent'
# template = 'exp_transaction_documents.internal_notify_send_send_email'
# if record.subject_type_id.transaction_need_approve or record.preparation_id.need_approve:
# template = 'exp_transaction_documents.internal_approval1_request_email'
# sent = 'waite'
# record.trace_create_ids('internal_transaction_id', record, sent)
# partner_ids = []
# for partner in record.to_ids:
# if partner.type == 'unit':
# partner_ids.append(partner.secretary_id.user_id.partner_id.id)
# record.forward_user_id = partner.secretary_id.user_id.id
# elif partner.type == 'employee':
# partner_ids.append(partner.user_id.partner_id.id)
# record.forward_user_id = partner.user_id.id
# if record.to_user_have_leave:
# record.forward_user_id = record.receive_id.user_id.id
# record.send_message(template=template)
# subj = _('Message Has been send !')
# msg = _(u'{} &larr; {}').format(record.employee_id.name, u' / '.join([k.name for k in record.to_ids]))
# msg = u'{}<br /><b>{}</b> {}.<br />{}'.format(msg,
# _(u'Action Taken'), record.procedure_id.name,
# u'<a href="%s" >رابط المعاملة</a> ' % (
# record.get_url()))
# company_id = self.env.user.company_id
# if company_id.sms_active == True:
# message = "There is a transaction that needs to " + self.procedure_id.name if self.procedure_id else ""
# message += " with the number " + self.name
# print(record.employee_id.employee_id.phone)
# print(message)
# request = company_id.send_sms(str(record.employee_id.employee_id.phone), message if message else "")
# # for rec in record:
# # rec.action_send_notification(subj, msg, partner_ids)
# return res
def action_approve(self):
res = super(InternalTransaction, self).action_approve()
template = 'exp_transaction_documents.internal_notify_send_send_email'
@ -257,32 +215,6 @@ class InternalTransaction(models.Model):
self.action_send_notification(subj, msg, partner_ids)
return res
# def action_approve(self):
# res = super(InternalTransaction, self).action_approve()
# template = 'exp_transaction_documents.internal_notify_send_send_email'
# self.send_message(template=template)
# employee = self.current_employee()
# to_id = self.to_ids[0].id
# if self.to_ids[0].type != 'employee':
# to_id = self.to_ids[0].secretary_id.id
# self.trace_ids.create({
# 'action': 'sent',
# 'to_id': to_id,
# 'from_id': employee and employee.id or False,
# 'procedure_id': self.procedure_id.id or False,
# 'internal_transaction_id': self.id
# })
# # self.trace_create_ids('internal_transaction_id', self, 'sent')
# subj = _('Message Has been approved !')
# msg = _(u'{} &larr; {}').format(self.preparation_id.manager_id.name, u' / '.join([k.name for k in self.to_ids]))
# msg = u'{}<br /><b>{}</b> {}.<br />{}'.format(msg,
# _(u'Action Taken'), self.procedure_id.name,
# u'<a href="%s" >رابط المعاملة</a> ' % (
# self.get_url()))
# partner_ids = [self.employee_id.user_id.partner_id.id, self.to_ids[0].user_id.partner_id.id]
# self.action_send_notification(subj, msg, partner_ids)
# return res
def action_reject_internal(self):
name = 'default_internal_transaction_id'
return self.action_reject(name, self)
@ -375,3 +307,17 @@ class InternalTransaction(models.Model):
# if self.env.uid != 1:
# raise ValidationError(_("You can not delete transaction....."))
# return super(InternalTransaction, self).unlink()
def _fix_forward_user(self):
# Get all records where state is send and forward user is False
records = self.search([('state', '=', 'send')])
for record in records:
last_trace_user_id = record.trace_ids.search([('internal_transaction_id', '=', record.id)], order='date DESC', limit=1).to_id.user_id.id
if isinstance(last_trace_user_id, int):
record.write({'forward_user_id': last_trace_user_id})
print(f">>> internal transaction {record.id} fixed <<<")
print(f">>> Fixing internal transactions completed for {len(records)} records <<<")