优化采购和销售
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import datetime
|
||||
import base64
|
||||
from odoo import models, fields, api
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
@@ -91,12 +91,40 @@ class ResaleOrderLine(models.Model):
|
||||
class RePurchaseOrder(models.Model):
|
||||
_inherit = 'purchase.order'
|
||||
|
||||
check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked')
|
||||
check_status = fields.Selection([('pending', '待审核'), ('approved', '已审核'), ('fail', '不通过')], '审核状态')
|
||||
remark = fields.Text('备注')
|
||||
|
||||
def write(self, vals):
|
||||
if self.env.user.has_group('sf_base.group_purchase_director'):
|
||||
if vals.get('check_status'):
|
||||
if vals['check_status'] in ('pending', False):
|
||||
vals['check_status'] = 'approved'
|
||||
return super().write(vals)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
# res = super().create(vals_list)
|
||||
if self.env.user.has_group('sf_base.group_purchase'):
|
||||
view = self.env.ref('sf_sale.action_purchase_order_submit_wizard')
|
||||
return {
|
||||
'name': _('确认?'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'purchase.order.wizard',
|
||||
'views': [(view.id, 'form')],
|
||||
'view_id': view.id,
|
||||
'target': 'new',
|
||||
'context': dict(self.env.context),
|
||||
}
|
||||
res = super().create(vals_list)
|
||||
return res
|
||||
|
||||
|
||||
class ResPartnerToSale(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
purchase_user_id = fields.Many2one('res.users', '采购员')
|
||||
|
||||
@api.constrains('name')
|
||||
def _check_name(self):
|
||||
obj = self.sudo().search([('name', '=', self.name), ('id', '!=', self.id)])
|
||||
@@ -131,7 +159,13 @@ class ResPartnerToSale(models.Model):
|
||||
|
||||
@api.onchange('user_id')
|
||||
def _get_salesman(self):
|
||||
self.user_id = self.env.user.id
|
||||
if self.customer_rank > 0:
|
||||
self.user_id = self.env.user.id
|
||||
|
||||
@api.onchange('purchase_user_id')
|
||||
def _get_purchaseman(self):
|
||||
if self.supplier_rank > 0:
|
||||
self.purchase_user_id = self.env.user.id
|
||||
|
||||
|
||||
class ResUserToSale(models.Model):
|
||||
@@ -145,4 +179,14 @@ class ResUserToSale(models.Model):
|
||||
elif self.env.user.has_group('sf_base.group_sale_salemanager'):
|
||||
domain = [('id', '=', self.env.user.id)]
|
||||
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
|
||||
elif self._context.get('supplier_rank'):
|
||||
if self.env.user.has_group('sf_base.group_purchase_director'):
|
||||
domain = [('supplier_rank', '>', 0)]
|
||||
elif self.env.user.has_group('sf_base.group_purchase'):
|
||||
supplier = self.env['res.partner'].search(
|
||||
[('supplier_rank', '>', 0), ('purchase_user_id', '=', self.env.user.id)])
|
||||
if supplier:
|
||||
ids = [t.id for t in supplier]
|
||||
domain = [('id', 'in', ids)]
|
||||
return self._search(domain, limit=limit, access_rights_uid=name_get_uid)
|
||||
return super()._name_search(name, args, operator, limit, name_get_uid)
|
||||
|
||||
Reference in New Issue
Block a user