2015-11-12 3 views
2

мне нужны сотрудники импорта (hr.employee объекта) из XML и связать их с пользователями (res.users объектов) и контакты (res.partner объекта). Хорошее отношение к работе с пользователем (экран после импорта).Odoo. Импорт данным с отношениями

enter image description here

Но у меня есть проблемы с контактами. Когда пользователь импортирует систему, она автоматически создает новый контакт, который применяется к пользователю. Как я могу связать этот контакт с сотрудником, если я не знаю ID?

enter image description here

Я пытался добавить контактную запись в XML-файл и установить отношения. Но в этом случае система создает 2 контакта. И один из них не связан с пользователем.

Здесь мой xml для импорта из моего модуля.

<?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> 

Итак, мой вопрос: Как я могу установить контакт (который был создан authomatically от пользователя) для сотрудника?

+0

Вы пробовали создание первого партнера в XML, а затем пользователь? просто добавьте . Убедитесь, что пользователь находится в партнере. – dccdany

+0

Ничего не изменилось. Но в этом случае был создан 1 контакт, а не 2. –

+0

И как связь между созданным пользователем и контактом ?. Я имею в виду, что у пользователя должен быть один контакт, он новый? – dccdany

ответ

1

Попробуйте это:

<?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

Вот решение:

<?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> 

В этом случае будет создан 1 контакт, 1 пользователь и 1 сотрудник. Сотрудник будет иметь отношение к контакту.

+0

Просто прокомментировал, как вы, но с partner_id вместо address_home_id (не знал имя поля). – dccdany

+1

@ DanielCrocco спасибо. Вы действительно помогли решить мою проблему. –

Смежные вопросы