2017-11-13 28 views
0

サービスオーダーに関連する注文番号を取得する必要があります。各サービスオーダーには多くのベンチオーダーがあります。例:サービス指図番号が223の場合、それに関連するベンチオーダーは223-1,223-2,223-3 ... SO数が553の場合、ベンチオーダー番号は553-1,553-2,553でなければなりません-3などodooの既存のフィールドを持つシーケンスを取得する10

私はいくつかの方法で試してみましたが、失敗しました。私を助けてください。私はそれを行うためにOdooシーケンスを使用しましたが、私が望むように出力を出すことはありませんでした。コードは次のとおりです(例:223は労働許可番号を意味します)。

class MyDepots_so(models.Model): 
    _name = 'my_depots_so' 

    so_parts_ids = fields.One2many('tiq_so_parts', 'so_p_id', string='Add Part Details', invisible='1') 
    so_bo_ids = fields.One2many('my_depots.so_bo', 
    so_work_authorization = fields.Integer("Work Authorization#") 


class SO_Parts(models.Model): 
    _name = 'tiq_so_parts' 

    so_p_id = fields.Many2one('my_depots_so',string='Add Service Order Part', invisible='1') 

    @api.model 
    def create(self, vals): 
     sequence  = self.env['ir.sequence'].next_by_code('so.benchorder') or '/' 
     str_sequence = str(sequence) 

     query = """SELECT so_work_authorization FROM my_depots_so WHERE id=%d """ % (so_p_id) 
     self.env.cr.execute(query) 
     result = self.env.cr.fetchall() 
     result_number = json.dumps(result, ensure_ascii=False) 
     strip_number = result_number.strip('\' \" [] ') 
     work_auth_no = str(strip_number) 
     work_auth_no += "-" 
     work_auth_no += str_sequence 
+0

私の答えはあなたの質問を解決しましたか? – forvas

答えて

0

[OK]をあなたはどこかにあなたが223-1を-where保存されたシーケンスを保存するために持っているので、私はあなたがこのような何かを探していると思います(私はあなたのtiq_so_partsモデルにフィールドを追加しました223- 2223-3 ...値? これらの値を格納するフィールドpart_sequenceを作成しました。

class MyDepots_so(models.Model): 
    _name = 'my_depots_so' 

    so_parts_ids = fields.One2many('tiq_so_parts', 'so_p_id', string='Add Part Details', invisible='1') 
    so_bo_ids = fields.One2many('my_depots.so_bo', 
    so_work_authorization = fields.Integer("Work Authorization#") 


class SO_Parts(models.Model): 
    _name = 'tiq_so_parts' 

    so_p_id = fields.Many2one('my_depots_so',string='Add Service Order Part', invisible='1') 
    part_sequence = fields.Char(string='Part Sequence') 

    @api.model 
    def create(self, vals): 
     so_part = super(SO_Parts, self).create(vals) 
     so_p_id = so_part.so_p_id 
     main_sequence = so_p_id.so_work_authorization 
     part_sequence = len(so_p_id.so_parts_ids) 
     so_part.write({ 
      'part_sequence': str(main_sequence) + '-' + str(part_sequence), 
     }) 
     return so_part