Merge pull request #427 from expsa/purchase_req_chgs

Purchase req chgs
This commit is contained in:
eslam 2024-07-30 16:18:56 +03:00 committed by GitHub
commit 839028fddc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 80 additions and 24 deletions

View File

@ -11,6 +11,7 @@
'security/ir.model.access.csv',
'data/purchase_request.xml',
'views/purchase_request.xml',
'views/stock_warehouse.xml',
'wizards/picking_purchase_request.xml'
],

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-03 02:56+0000\n"
"PO-Revision-Date: 2024-07-03 02:56+0000\n"
"POT-Creation-Date: 2024-07-29 22:30+0000\n"
"PO-Revision-Date: 2024-07-29 22:30+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -84,11 +84,6 @@ msgstr "استلام"
msgid "Delivery Done"
msgstr "تم الستلام"
#. module: purchase_custom_stock
#: model_terms:ir.ui.view,arch_db:purchase_custom_stock.purchase_request_picking_wizard_view_form
msgid "Delivery and Close"
msgstr "تسليم المتوفر واغلاق الطلب "
#. module: purchase_custom_stock
#: model_terms:ir.ui.view,arch_db:purchase_custom_stock.purchase_request_picking_wizard_view_form
msgid "Delivery and Purchase"
@ -198,6 +193,12 @@ msgstr ""
msgid "Please Insert Location first"
msgstr "يرجى اختيار المستودع و الموقع"
#. module: purchase_custom_stock
#: code:addons/purchase_custom_stock/models/purchase_request.py:0
#, python-format
msgid "Please Insert a Vendor"
msgstr ""
#. module: purchase_custom_stock
#: code:addons/purchase_custom_stock/models/purchase_request.py:0
#: code:addons/purchase_custom_stock/models/purchase_request.py:0
@ -251,6 +252,12 @@ msgstr "المستودع"
msgid "Warehouses Department"
msgstr "المستودعات"
#. module: purchase_custom_stock
#: code:addons/purchase_custom_stock/models/purchase_request.py:0
#, python-format
msgid "only %s Direct Manager can approve the order"
msgstr " يمكن اعتماد الطلب s% فقط المدير المباشر ل"
#. module: purchase_custom_stock
#: model:ir.model,name:purchase_custom_stock.model_purchase_request_picking_wizard
msgid "purchase Checking Options wizard"

View File

@ -1,2 +1,3 @@
from . import purchase_request
from . import stock_warehouse

View File

@ -213,45 +213,61 @@ class PurchaseRequest(models.Model):
limit=1).available_quantity
line.qty_purchased=line.qty-line.available_qty
def write(self,vals):
"""Ovveride Send Notification On state"""
"""Ovveride Send Notification On state"""
res=super(PurchaseRequest,self).write(vals)
if 'state' in vals :
if vals['state'] =='direct_manager':
if vals['state'] == 'direct_manager':
direct_manager = self.sudo().department_id.manager_id
if direct_manager and direct_manager.user_id:
self.message_post(body='Dear %s your approval is required on %s ' % (direct_manager.name, self.name),
if self.env.user.partner_id.lang == 'ar_001':
body = 'عزيزى %s موافقتك مطلوبة على %s ' % (direct_manager.name, self.name)
else:
body = 'Dear %s your approval is required on %s ' % (direct_manager.name, self.name)
self.message_post(body=body,
message_type='notification',
author_id=self.env.user.partner_id.id, sticky=True,
subtype_id=self.env.ref("mail.mt_comment").id,
partner_ids=[direct_manager.user_id.partner_id.id])
elif vals['state'] == 'warehouse':
stock_group = self.env.ref('stock.group_stock_user')
stock_users = self.env['res.users'].search([('groups_id', '=', stock_group.id)])
for user in stock_users:
stock_employee=self.env['hr.employee'].search([('user_id','=',user.id)],limit=1)
if stock_employee and user.partner_id.id:
self.message_post(body='Dear %s your approval is required on %s ' % (stock_employee.name, self.name),
# stock_group = self.env.ref('stock.group_stock_manager')
warehouse=self.env['stock.warehouse'].sudo().search([('department_id', '=', self.department_id.id)])
if warehouse and warehouse.manager_id:
stock_users = warehouse.manager_id
if stock_users:
stock_employee=self.env['hr.employee'].search([('user_id','=',stock_users.id)],limit=1)
if stock_employee and stock_users.partner_id.id:
if self.env.user.partner_id.lang=='ar_001':
body = 'عزيزى %s موافقتك مطلوبة على %s ' % (stock_employee.name, self.name)
else:
body='Dear %s your approval is required on %s ' % (stock_employee.name, self.name)
self.message_post(body=body,
message_type='notification',
author_id=self.env.user.partner_id.id, sticky=True,
subtype_id=self.env.ref("mail.mt_comment").id,
partner_ids=[user.partner_id.id])
partner_ids=[stock_users.partner_id.id])
elif vals['state'] == 'waiting':
purchase_group = self.env.ref('purchase.group_purchase_user')
purchase_group = self.env.ref('purchase.group_purchase_manager')
purchase_users = self.env['res.users'].search([('groups_id', '=', purchase_group.id)])
for user in purchase_users:
purchase_employee = self.env['hr.employee'].search([('user_id', '=', user.id)], limit=1)
if self.env.user.partner_id.lang == 'ar_001':
body = 'عزيزى %s موافقتك مطلوبة على %s ' % (purchase_employee.name, self.name)
else:
body = 'Dear %s your approval is required on %s ' % (purchase_employee.name, self.name)
if purchase_employee and user.partner_id.id:
self.message_post(body='Dear %s your approval is required on %s ' % (purchase_employee.name, self.name),
self.message_post(body=body,
message_type='notification',
author_id=self.env.user.partner_id.id, sticky=True,
subtype_id=self.env.ref("mail.mt_comment").id,
partner_ids=[user.partner_id.id])
elif vals['state'] == 'employee':
print("employee")
if self.sudo().employee_id and self.sudo().employee_id.user_id:
if self.env.user.partner_id.lang == 'ar_001':
body = 'عزيزى %s يرجى تاكيد استلامك على %s ' % (self.sudo().employee_id.name, self.name)
else:
body = 'Dear %s please confirm Your receipt on %s ' % (self.sudo().employee_id.name, self.name)
self.message_post(
body='Dear %s please confirm your Delivery on %s ' % (self.sudo().employee_id.name, self.name),
body=body,
message_type='notification',
author_id=self.env.user.partner_id.id, sticky=True,
subtype_id=self.env.ref("mail.mt_comment").id,

View File

@ -0,0 +1,8 @@
from odoo import api, fields, models, _
class StockWarehouse(models.Model):
_inherit = 'stock.warehouse'
manager_id=fields.Many2one("res.users",string="Warehouse Manager")
department_id=fields.Many2one("hr.department",string="Warehouse Branch")

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_warehouse_inherit_manager_id" model="ir.ui.view">
<field name="name">view.warehouse.inherit.manager</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="stock.view_warehouse"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="manager_id"/>
<field name="department_id"/>
</field>
</field>
</record>
</data>
</odoo>

View File

@ -14,7 +14,7 @@ class AccountPayment(models.Model):
# author_id = payment.create_uid.partner_id.id or None
author_id = self.env.user.partner_id.id or None
self.env.user.partner_id.send_notification_message(subject=subject, body=message, author_id=author_id,
group=group)
group=group)
@api.model
def create(self, vals):

View File

@ -18,7 +18,7 @@
<record id="view_purchase_request" model="res.groups">
<field name="name">View Purchase Request</field>
<field name="category_id" ref="purchase_requisition_custom.module_category_purchase_request"/>
<field name="menu_access" eval="[(4,ref('purchase.menu_purchase_root'))]"/>
<field name="menu_access" eval="[(3,ref('purchase.menu_purchase_root'))]"/>
</record>
<!-- Confirm group -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -150,6 +150,13 @@
</field>
</record>
<menuitem name="Purchase Request"
id="menu_purchase_request_root"
groups="view_purchase_request,purchase.group_purchase_user"
action="purchase_request_action"
web_icon="purchase_requisition_custom,static/description/request-for-proposal.png"
sequence="26"/>
<!-- This Menu Item must have a parent and an action -->
<menuitem id="purchase_request_menu" name="Employee Purchase Request" parent="purchase.menu_purchase_root"
action="purchase_request_action" sequence="4"/>