att
This commit is contained in:
parent
83ca1424cd
commit
61cbc936bb
|
|
@ -1451,3 +1451,8 @@ msgstr ""
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
"</div>\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 = [
|
STATES = [
|
||||||
('draft', 'Draft'),
|
('draft', 'Draft'),
|
||||||
('to_manager', 'Waiting Manager'),
|
('manprocurement', 'Purchasing Manager'),
|
||||||
('rejected_by_committee', 'Rejected by Committee'),
|
('rejected_by_committee', 'Rejected by Committee'),
|
||||||
('procurement', 'Purchasing'),
|
('procurement', 'Purchasing'),
|
||||||
('committee', 'Committee Review'),
|
('committee', 'Committee Review'),
|
||||||
|
|
@ -298,21 +298,57 @@ class AnnualPurchaseRequest(models.Model):
|
||||||
def action_send(self):
|
def action_send(self):
|
||||||
self._check_lines()
|
self._check_lines()
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.write({'state': 'to_manager'})
|
|
||||||
manager = rec.sudo().employee_id.parent_id
|
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:
|
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 = {
|
mail_values = {
|
||||||
'model': None,
|
'model': None,
|
||||||
'res_id': 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:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
else:
|
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
|
pass
|
||||||
|
|
||||||
def action_to_draft(self):
|
def action_to_draft(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.write({'state': 'draft'})
|
rec.write({'state': 'draft'})
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@
|
||||||
<field name="can_create_agreement" invisible="1"/>
|
<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_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_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="to_manager" groups="purchase.group_purchase_manager" class="btn-danger" icon="fa-times-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_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_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"/>
|
<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_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" />
|
<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>
|
</header>
|
||||||
<sheet attrs="{'readonly': [('state', '!=', 'draft')]}">
|
<sheet attrs="{'readonly': [('state', '!=', 'draft')]}">
|
||||||
<div class="oe_button_box" name="button_box">
|
<div class="oe_button_box" name="button_box">
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<field name="sent_to_commitee" invisible="1"/>
|
<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="product_category_ids" widget="many2many_tags" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||||
<field name="date" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
<field name="date" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||||
<field name="date_start" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
<field name="date_start" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue