2017-12-01 10 views
2

販売注文の名前形式を変更する方法は知っていますか?SaleOrderの名前形式を変更するにはどうすればよいですか? Odoo 10

# -*- coding: utf-8 -*- 
from datetime import datetime 
from odoo import models, fields, api, _ 

class SaleOrder(models.Model): 

    _inherit = 'sale.order' 

    name = fields.Char(string='Order Reference', required=True, copy=False, readonly=True, states={'draft': [('readonly', False)]}, index=True, default=lambda self: _('New'), compute='_assign_name') 
    project = fields.Char(string='Project Name') 

    qt_name = fields.Char(string='Quotaion Name', readonly=True, compute='get_qt_name') 
    so_name = fields.Char(string='Sale Order Name', readonly=True, compute='get_so_name') 
    so_number = fields.Integer(string='SO Number', readonly=True) 

    @api.one 
    def _assign_name(self): 
     if self.state != 'sale': 
      self.name = self.qt_name 
     else: 
      self.name = self.so_name 

    @api.one 
    def get_qt_name(self): 
     formated_date = datetime.strptime(self.create_date,'%Y-%m-%d %H:%M:%S').strftime('%Y%m') 
     self.qt_name = 'QT%s%04d' % (formated_date, self.id) 

    @api.one 
    def get_so_name(self): 
     if self.confirmation_date: 
      formated_date = datetime.strptime(self.confirmation_date,'%Y-%m-%d %H:%M:%S').strftime('%Y%m') 
      self.so_name = 'SO%s%04d' % (formated_date, self.so_number) 

    def action_confirm(self): 
     super(SaleOrder,self).action_confirm() 
     if not self.so_number: 
      self.update({'so_number': self.env['ir.sequence'].get('sale.order.number')}) 

    def should_draft(self, old_state, val): 
     return super(SaleOrder,self).should_draft(old_state,val) and 'so_number' not in val 

私は名前が欠落している見積を印刷しようとすると、それは動作しません。しかし:

は、私は、次のコードを試してみてください。

もっと良い解決策がありますか?

ありがとう〜!

+2

計算メソッド '_assign_name'に' @ api.depends() 'が必要です – ChesuCR

答えて

2

@api.dependsデコレータを使用してください。以下のコードを試してください。

@api.one 
@api.depends('state') 
def _assign_name(self): 
    if self.state != 'sale': 
     self.name = self.qt_name 
    else: 
     self.name = self.so_name 

ご希望の場合はお手数ですが、

+0

Thnk!それは働いた! – ReiiYuki

関連する問題