2017-04-17 3 views
1

Odoo의 V10 커뮤니티에 쿼리를 수행하지 : 그렇지 않으면이 메시지를 보여주고,이 특정 vat를 확인하고 나에게 그것의 결과를 보여 주어야하는 마법사입니다방법은 내가이 마법사 방법이

@api.multi 
def search_partner_seniat(self): 
    """ Check vat of the partner and update iva rate 
    """ 
    self.ensure_one() 
    vat = self.vat.upper() 
    res = { 
     'name': _('The requested contributor does not exist'), 
     'vat_subjected': False, 
     'vat': vat, 
     'wh_iva_agent': False, 
     'wh_iva_rate': 0.0 
    } 

    if 'VE' in vat: 
     vat = vat[2:] 

    # assumption: both methods in new api style 
    if self.env['res.partner'].check_vat_ve(vat): 
     update_vals = self.env['seniat.url']._dom_giver(vat) 
     if update_vals: 
      res.update(update_vals) #self.write(res) 

    return { 
     'type': 'ir.actions.act_window', 
     'res_model': 'search.info.partner.seniat', 
     'view_mode': 'form', 
     'view_type': 'form', 
     'res_id': self.id, 
     'views': [(False, 'form')], 
     'target': 'new', 
    } 

The requested contributor does not exist

Howver, 이것은 v8에서 v10으로 커뮤니티를 이전하고 있습니다.

그래서 지금은 아무것도 반환하지 않습니다. 테이블이나 항목을 확인하지 않는 것 같습니다.

@api.multi 
def _dom_giver(self, vat): 
    """ Check and validates that the vat is a passport, 
    id or rif, to send information to SENIAT and returns the 
    partner info that provides. 
    """ 
    name = '' 
    url_seniat = '' 

    url_obj = self.search([], limit=1) 
    if url_obj.name: 
     name = url_obj.name 

    if url_obj.url_seniat: 
     url_seniat = url_obj.url_seniat 
    url1 = name + '%s' 
    url2 = url_seniat + '%s' 
    vat = self._validate_rif(vat) 
    if vat: 
     return self._get_rif(vat, url1, url2) 
    else: 
     return False 

@api.model 
def check_vat_ve(self, vat): #, context=None 
    """ Check Venezuelan VAT number, locally called RIF. 
    RIF: JXXXXXXXXX RIF VENEZOLAN 
     IDENTIFICATION CARD: VXXXXXXXXX 
     FOREIGN IDENTIFICATION CARD: EXXXXXXXXX 
    """ 

    #if context is None: 
     #context = {} 
    if re.search(r'^[VJEGP][0-9]{9}$', vat): 
     return True 
    if re.search(r'^([VE][0-9]{1,8}|[D][0-9]{9})$', vat): 
     return True 
    return False 

이 모든 방법은 원래 이런 모습 : 물론 Odoo의 V8에 예상대로 작동하고

def search_partner_seniat(self, cr, uid, ids, context=None): 
    """ Check vat of the partner and update iva rate 
    """ 
    if context is None: 
     context = {} 
    this = self.browse(cr, uid, ids)[0] 
    su_obj = self.pool.get('seniat.url') 
    rp_obj = self.pool.get('res.partner') 
    vat = this.vat.upper() 
    res = {'name': _('The requested contributor does not exist'), 
      'vat_subjected': False, 'vat': vat, 'wh_iva_agent': False, 
      'wh_iva_rate': 0.0} 

    if 'VE' in vat: 
     vat = vat[2:] 

    if rp_obj.check_vat_ve(vat, context=context): 
     res = su_obj._dom_giver(cr, uid, vat, context) 
    self.write(cr, uid, ids, res) 

    return { 
     'type': 'ir.actions.act_window', 
     'res_model': 'search.info.partner.seniat', 
     'view_mode': 'form', 
     'view_type': 'form', 
     'res_id': this.id, 
     'views': [(False, 'form')], 
     'target': 'new', 
    } 

def check_vat_ve(self, vat, context=None): 
    """ Check Venezuelan VAT number, locally called RIF. 
    RIF: JXXXXXXXXX RIF VENEZOLAN 
     IDENTIFICATION CARD: VXXXXXXXXX 
     FOREIGN IDENTIFICATION CARD: EXXXXXXXXX 
    """ 

    if context is None: 
     context = {} 
    if re.search(r'^[VJEGP][0-9]{9}$', vat): 
     return True 
    if re.search(r'^([VE][0-9]{1,8}|[D][0-9]{9})$', vat): 
     return True 
    return False 

def _dom_giver(self, cr, uid, vat, context=None): 
    """ Check and validates that the vat is a passport, 
    id or rif, to send information to SENIAT and returns the 
    partner info that provides. 
    """ 
    if context is None: 
     context = {} 

    url_obj = self.browse(cr, uid, self.search(cr, uid, []))[0] 
    url1 = url_obj.name + '%s' 
    url2 = url_obj.url_seniat + '%s' 
    vat = self._validate_rif(cr, uid, vat, context=None) 
    if vat: 
     return self._get_rif(cr, uid, vat, url1, url2, context=context) 
    else: 
     return False 

이 메소드는,이처럼 check_vat_ve_dom_giver 방법을 호출합니다.

아이디어가 있으십니까?

가 나는 _dom_giver에서 이러한 선언을 함께 할 수있는 뭔가가 생각 :

을하지만 난 정말 모르겠어요.

답변

1

이전 버전 코드에서 마법사 기록을 작성하고 있습니다.

self.write (CR, UID, IDS, 고해상도) 새 버전 코드 기록 라인에서

코멘트입니다.

#의 self.write (고해상도) 새 버전 코드 발스에서

는 준비하고 있지만 사용되지 않습니다.

쓰기 방법 &에서 주석을 제거하십시오.

이 정보는 도움이됩니다.