消息提醒
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import datetime
|
||||
import base64
|
||||
import logging
|
||||
from odoo import Command
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
READONLY_FIELD_STATES = {
|
||||
state: [('readonly', True)]
|
||||
@@ -218,6 +220,10 @@ class RePurchaseOrder(models.Model):
|
||||
purchase_type = fields.Selection([('standard', '标准采购'), ('consignment', '委外加工')], string='采购类型',
|
||||
default='standard')
|
||||
|
||||
delivery_warning = fields.Selection([('normal', '正常'), ('warning', '预警'), ('overdue', '已逾期')],
|
||||
string='交期状态',
|
||||
tracking=True)
|
||||
|
||||
@api.depends('partner_id')
|
||||
def _compute_user_id(self):
|
||||
if not self.user_id:
|
||||
@@ -299,6 +305,27 @@ class RePurchaseOrder(models.Model):
|
||||
|
||||
return result
|
||||
|
||||
# # 采购订单逾期预警和已逾期
|
||||
def _overdue_or_warning_func(self):
|
||||
purchase_order = self.sudo().search(
|
||||
[('state', 'in', ['purchase']), ('date_planned', '!=', False),
|
||||
('receipt_status', 'in', ('partial', 'pending'))])
|
||||
last_overdue_order = None
|
||||
last_warning_order = None
|
||||
for item in purchase_order:
|
||||
current_time = datetime.now()
|
||||
if item.date_planned <= current_time: # 已逾期
|
||||
item.delivery_warning = 'overdue'
|
||||
last_overdue_order = item
|
||||
elif (item.date_planned - current_time).total_seconds() < 48 * 3600: # 预警
|
||||
item.delivery_warning = 'warning'
|
||||
last_warning_order = item
|
||||
purchase_order_done = self.sudo().search([('state', 'in', ['purchase']), ('receipt_status', '=', 'full')])
|
||||
purchase_order_overdue = purchase_order_done.filtered(lambda x: x.delivery_warning in ['overdue', 'warning'])
|
||||
if purchase_order_overdue:
|
||||
purchase_order_overdue.write({'delivery_warning': 'normal'})
|
||||
return last_overdue_order, last_warning_order
|
||||
|
||||
|
||||
class ResPartnerToSale(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
Reference in New Issue
Block a user