2014-11-03 2 views
0

에 애드온/stock_account/stock.py에서 청구 할 값을 추가하는 방법, 내가 가지고있는 데이터베이스에 저장된 개인 값 : 나는 설명하기 위해이 값을 보낼 필요가stock.piking 모델에서 Odoo

sbf_releve.

: 그것은 송장 데이터가 내 자신의 모듈에서 애드온/stock_account/stock.py

class stock_picking(osv.osv): 
    _inherit = 'stock.picking' 

    def _get_invoice_vals(self, cr, uid, key, inv_type, journal_id, origin, context=None): 
     if context is None: 
      context = {} 
     partner, currency_id, company_id, user_id = key 
     if inv_type in ('out_invoice', 'out_refund'): 
      account_id = partner.property_account_receivable.id 
      payment_term = partner.property_payment_term.id or False 
     else: 
      account_id = partner.property_account_payable.id 
      payment_term = partner.property_supplier_payment_term.id or False 
     return { 
      'origin': origin, 
      'date_invoice': context.get('date_inv', False), 
      'user_id': user_id, 
      'partner_id': partner.id, 
      'account_id': account_id, 
      'payment_term': payment_term, 
      'type': inv_type, 
      'fiscal_position': partner.property_account_position.id, 
      'company_id': company_id, 
      'currency_id': currency_id, 
      'journal_id': journal_id, 
     } 

에서 준비

새로운 송장을 생성 청구서는,이 메소드를 오버라이드 (override)하기 위해 노력하고있어

하지만 그냥 작동하지 않습니다. 왜? 어떤 함수의

class my_stock_picking(stock_picking): 

    def get_invoice_vals(<your parameters>): 
      <your function body> 

하지 : stock.picking에 sale.order의 값을 대처하지만 멤버 함수를 재정의하기 위해

답변

0

을 account.invoice하지 않을 때, 당신은 하위 클래스를 만들 필요가 작동 하위 클래스에 정의 된 경우 원래의 stock_picking 함수를 대신 사용합니다.

0

사용자 정의 필드 중 일부를 stock.picking에서 account.invoice으로 전송하고 싶습니다. 나는 비슷한 것을했지만 나를 위해 stock.move에서 account.invoice.line으로 넘어 섰다. 당신은 당신의 경우를 위해 아래의 코드를 적용 할 수 있어야합니다.

class stock_move(osv.osv): 
_inherit = "stock.move" 

def _get_invoice_line_vals(self, cr, uid, move, partner, inv_type, context=None): 
    ret = super(stock_move, self)._get_invoice_line_vals(cr, uid, move, partner, inv_type, context=context) 

    print "blah blah blah::::",move.date_expected 

    if move.date_expected: 
     ret['x_delivery_date'] = move.date_expected 

    return ret 

여기서 각 제품에 대한 date_expected는 account.invoice.line에도 전송되어야합니다. account.invoice.line에 이미 사용자 정의 x_delivery_date를 만들었습니다. 또한 __openerp__.py을 업데이트하고 종속 섹션에 '계정'을 포함하십시오. 나는 이것에 대해서도 문제가 있었다. 희망이 도움이됩니다.