2015-11-12 1 views
2

I ont besoin d'employés d'importation (de hr.employee objet) à partir de XML et de les attacher avec les utilisateurs (res.users objet) et les contacts (res.partner objet). La relation avec l'utilisateur qui travaille est bonne (l'écran ci-dessous après l'importation).Odoo. Importation de données avec les relations

enter image description here

Mais j'ai problème avec contacts. Lors de l'importation du système, elle crée automatiquement un nouveau contact qui s'applique à l'utilisateur. Comment puis-je lier ce contact avec un employé si je ne connais pas mon identité?

enter image description here

J'ai essayé ajouter enregistrement de contact au fichier XML et les relations établies. Mais dans ce cas, le système crée 2 contacts. Et l'un d'eux n'est pas lié à l'utilisateur.

Voici mon xml pour l'importation de mon module.

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data noupdate="1"> 
     <record id="user_test" model="res.users"> 
      <field name="name">My Name</field> 
      <field name="login">my_name</field> 
      <field name="password">1111</field> 
     </record> 
     <!-- I tried create contact like this... 
      but then will be created 2 contacts 
      instead 1 + one of them is not related with user --> 

     <!--<record id="contact_test" model="res.partner">--> 
      <!--<field name="name">My Name</field>--> 
      <!--<field name="user_id" ref="user_test"/>--> 
     <!--</record>--> 
     <record id="employee_test" model="hr.employee"> 
      <field name="name">My Name</field> 
      <field name="work_email">[email protected]</field> 
      <field name="user_id" ref="user_test"/> 
     </record> 
    </data> 
</openerp> 

Alors, ma question est: Comment je peux pour mettre en contact (qui a été créé authomatically de l'utilisateur) à l'employé?

+0

Avez-vous essayé de créer d'abord le partenaire du xml et l'utilisateur? ajoutez simplement . Assurez-vous que l'utilisateur est sous partenaire. – dccdany

+0

Rien n'a changé. Mais dans ce cas a été créé 1 contact, pas 2. –

+0

Et comment est la relation entre l'utilisateur créé et le contact ?. Je veux dire, l'utilisateur doit avoir 1 contact associé, est-ce un nouveau? – dccdany

Répondre

1

Essayez ceci:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data noupdate="1"> 

     <record id="contact_test" model="res.partner"> 
      <field name="name">My Name</field> 
     </record> 

     <record id="user_test" model="res.users"> 
      <field name="name">My Name</field> 
      <field name="login">my_name</field> 
      <field name="password">1111</field> 
      <field name="partner_id ref="contact_test"/> 
     </record> 

     <record id="employee_test" model="hr.employee"> 
      <field name="name">My Name</field> 
      <field name="work_email">[email protected]</field> 
      <field name="user_id" ref="user_test"/> 
      <field name="partner_id" ref="contact_test"/> 
     </record> 
    </data> 
</openerp> 
0

Voici la solution:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data noupdate="1"> 
     <!-- at first create contact --> 
     <record id="contact_test" model="res.partner"> 
      <field name="name">My Name</field> 
     </record> 
     <record id="user_test" model="res.users"> 
      <field name="name">My Name</field> 
      <field name="login">my_name</field> 
      <field name="password">1111</field> 
      <!-- relation between user and contact --> 
      <field name="partner_id" ref="contact_test"/> 
     </record> 
     <record id="employee_test" model="hr.employee"> 
      <field name="name">My Name</field> 
      <field name="work_email">[email protected]</field> 
      <field name="user_id" ref="user_test"/> 
      <!-- relation employee and contact --> 
      <field name="address_home_id" ref="contact_test"/> 
     </record> 
    </data> 
</openerp> 

Dans ce cas, sera créé 1 contact, 1 utilisateur et 1 employé. L'employé aura une relation avec le contact.

+0

Juste commenté comme vous mais avec partner_id au lieu de address_home_id (ne connaissait pas le nom du champ). – dccdany

+1

@DanielCrocco merci. Tu as vraiment aidé à résoudre mon problème. –