odoo_dev 开发培训作业:图书管理系统
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

47 lines
1.5KB

  1. # -*- coding: utf-8 -*-
  2. from odoo import models, fields, api
  3. from odoo.exceptions import ValidationError
  4. from odoo.exceptions import UserError
  5. # 销货订单确认状态可选值
  6. ORDER_STATES = [
  7. ('draft', '草稿'),
  8. ('done', '已确认'),
  9. ('in', '已入库'),
  10. ('cancel', '已作废')]
  11. # 字段只读状态
  12. READONLY_STATES = {
  13. 'done': [('readonly', True)],
  14. 'allocated': [('readonly', True)],
  15. 'cancel': [('readonly', True)],
  16. }
  17. class Arrival_advices(models.Model):
  18. _name = 'arrival.advices'
  19. _description = '到货报告单'
  20. order_line = fields.One2many('purchase.order.line', 'order_id', states={'cancel': [('readonly', True)]})
  21. partner_id = fields.Many2one('res.partner', required=True, states=READONLY_STATES)
  22. company_id = fields.Many2one('res.company', 'Company', required=True, index=True, states=READONLY_STATES)
  23. state = fields.Selection(ORDER_STATES, '确认状态', readonly=True,
  24. help="到货通知单的确认状态", index=True,
  25. copy=False, default='draft')
  26. class Arrival_advices_line(models.Model):
  27. _name ='arrival.advices.line'
  28. _description ='到货通知'
  29. notice_id = fields.Many2one('arrival.advices', index=True, string="通知号",ondelete='cascade')
  30. product_id = fields.Many2one('purchase.order.line','产品' ,ondelete='cascade',required=True,
  31. help='对应的购货订单行')
  32. lot = fields.Char('批次')
  33. qty = fields.Float('商品数量')
上海开阖软件有限公司 沪ICP备12045867号-1