att
This commit is contained in:
parent
83ca1424cd
commit
61cbc936bb
|
|
@ -1451,3 +1451,8 @@ msgstr ""
|
|||
" <br/>\n"
|
||||
"</div>\n"
|
||||
" "
|
||||
|
||||
#. module: odex25_annual_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_annual_purchase.selection__odx_annual_request__state__manprocurement
|
||||
msgid "Purchasing Manager"
|
||||
msgstr "رئيس قسم المشتريات"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from datetime import datetime
|
|||
|
||||
STATES = [
|
||||
('draft', 'Draft'),
|
||||
('to_manager', 'Waiting Manager'),
|
||||
('manprocurement', 'Purchasing Manager'),
|
||||
('rejected_by_committee', 'Rejected by Committee'),
|
||||
('procurement', 'Purchasing'),
|
||||
('committee', 'Committee Review'),
|
||||
|
|
@ -298,21 +298,57 @@ class AnnualPurchaseRequest(models.Model):
|
|||
def action_send(self):
|
||||
self._check_lines()
|
||||
for rec in self:
|
||||
rec.write({'state': 'to_manager'})
|
||||
manager = rec.sudo().employee_id.parent_id
|
||||
if manager and manager.user_id and manager.user_id.email:
|
||||
if manager:
|
||||
if manager.user_id.id == rec.env.uid:
|
||||
rec.write({'state': 'manprocurement'})
|
||||
purchase_group = self.env.ref('purchase.group_purchase_manager')
|
||||
managers = self.env['res.users'].search([
|
||||
('groups_id', '=', purchase_group.id),
|
||||
('email', '!=', False)
|
||||
])
|
||||
if managers:
|
||||
try:
|
||||
template = self.env.ref('odex25_annual_purchase.email_template_direct_manager_x')
|
||||
template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
|
||||
first_manager = managers[0]
|
||||
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
|
||||
|
||||
mail_values = {
|
||||
'model': None,
|
||||
'res_id': None,
|
||||
}
|
||||
template.send_mail(rec.id, force_send=True, email_values=mail_values)
|
||||
template.with_context(
|
||||
default_email_to=first_manager.email,
|
||||
default_email_cc=cc_emails
|
||||
).send_mail(rec.id, force_send=True, email_values=mail_values)
|
||||
except Exception as e:
|
||||
pass
|
||||
else:
|
||||
raise UserError(
|
||||
_("Sorry, The Approval For The Direct Manager '%s' Only !") % (rec.employee_id.parent_id.name))
|
||||
else:
|
||||
rec.write({'state': 'manprocurement'})
|
||||
purchase_group = self.env.ref('purchase.group_purchase_manager')
|
||||
managers = self.env['res.users'].search([
|
||||
('groups_id', '=', purchase_group.id),
|
||||
('email', '!=', False)
|
||||
])
|
||||
if managers:
|
||||
try:
|
||||
template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
|
||||
first_manager = managers[0]
|
||||
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
|
||||
mail_values = {
|
||||
'model': None,
|
||||
'res_id': None,
|
||||
}
|
||||
template.with_context(
|
||||
default_email_to=first_manager.email,
|
||||
default_email_cc=cc_emails
|
||||
).send_mail(rec.id, force_send=True, email_values=mail_values)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def action_to_draft(self):
|
||||
for rec in self:
|
||||
rec.write({'state': 'draft'})
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@
|
|||
<field name="can_create_agreement" invisible="1"/>
|
||||
|
||||
<button name="action_send" string="Send" type="object" states="draft" class="btn-primary" groups="purchase.group_purchase_user" icon="fa-send"/>
|
||||
<button name="action_manager_approve" string="Approve" type="object" class="btn-primary" states="to_manager" groups="purchase.group_purchase_manager" icon="fa-check-circle"/>
|
||||
<button name="action_manager_reject" string="Reject" type="object" states="to_manager" groups="purchase.group_purchase_manager" class="btn-danger" icon="fa-times-circle"/>
|
||||
<button name="action_manager_approve" string="Approve" type="object" class="btn-primary" states="manprocurement" groups="purchase.group_purchase_manager" icon="fa-check-circle"/>
|
||||
<button name="action_manager_reject" string="Reject" type="object" states="manprocurement" groups="purchase.group_purchase_manager" class="btn-danger" icon="fa-times-circle"/>
|
||||
<button name="action_send_to_committee" string="Send to Committee" type="object" class="btn-info" groups="purchase.group_purchase_user" attrs="{'invisible': ['|', ('committee_enabled','=',False), ('state','not in',['procurement','rejected_by_committee'])]}" icon="fa-users"/>
|
||||
<button name="action_create_rfq" string="Create RFQ" type="object" class="btn-primary" states="procurement,rejected_by_committee" groups="purchase.group_purchase_user" icon="fa-file-text-o"/>
|
||||
<button name="action_cancel" string="Cancel" type="object" states="procurement,rejected_by_committee,committee" groups="purchase.group_purchase_user" class="btn-secondary" icon="fa-ban"/>
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
<button name="action_create_agreement" string="Create Agreement" type="object" states="purchase" class="btn-primary" groups="purchase.group_purchase_manager" icon="fa-file-contract"/>
|
||||
<button name="action_to_draft" string="Back To Draft" type="object" states="rejected" class="btn-secondary" groups="odex25_annual_purchase.group_annual_to_draft" icon="fa-undo" />
|
||||
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,to_manager,procurement,committee,ssd,ceo,approved,rejected,cancel"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,manprocurement,procurement,committee,ssd,ceo,approved,rejected,cancel"/>
|
||||
</header>
|
||||
<sheet attrs="{'readonly': [('state', '!=', 'draft')]}">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
|
||||
<group>
|
||||
<field name="sent_to_commitee" invisible="1"/>
|
||||
<field name="department_id" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
<field name="department_id" readonly="1"/>
|
||||
<field name="product_category_ids" widget="many2many_tags" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
<field name="date" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
<field name="date_start" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue