2013-05-29 2 views
0

Мне нужно загрузить порядковый номер в определенном поле.Последовательный номер в поле - OpenErp

Для этого я использую модель ir.sequence, как я видел в других модулях.

Проблема в том, что она еще не работает, я не знаю, что я делаю неправильно здесь, возможно, примеры, которые я использую, просто работают для поля «title»?

Это мой код:

... _name = "product.product" 
_description = "Product" 
_table = "product_product" 
_inherits = {'product.template': 'product_tmpl_id'} 
_inherit = ['mail.thread'] 
_order = 'default_code,name_template' 
_columns = { 
    'codigo_n' : fields.char('Codigo Arancelario', size=64), 
    'tec_esp' : fields.char('Especificaciones tecnicas', size=72), 
    'qty_available': fields.function(_product_qty_available, type='float', string='Quantity On Hand'), 
    'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'), 
    'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'), 
    'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'), ... code keeps going... 

Здесь интересное поле codigo_n whic имеет тип char я добавил _defaults заявление на эту работу с ir.sequence следующим образом:

_defaults = { 
    'codigo_n': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'product.product'), 
} 

Очевидно я создал файл последовательности .xml, добавленный к зависимостям data в файле __openerp__.py, и это код custom_sequence.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <openerp> 
    <data noupdate="1"> 
    <!-- Secuencias para product.product --> 
     <record id="seq_type_product_product" model="ir.sequence.type"> 
      <field name="name">Product</field> 
      <field name="code">product.product</field> 
     </record> 
     <record id="seq_product_product" model="ir.sequence"> 
      <field name="name">Product</field> 
      <field name="code">product.product</field> 
      <field name="prefix">NG</field> 
      <field name="padding">5</field> 
      <field name="company_id" eval="False"/> 
     </record> 
    </data> 
</openerp> 

Я думаю, что это правильный способ установки этого я просто нужно сделать codigo_n работать с этой последовательностью, любые идеи о том, почему он не работает?

Надеюсь, я объяснил сам.

Заранее спасибо.

ответ

1

Одна из возможностей, которую я вижу, заключается в том, что у вас много не обновляется xml/module. Проверьте «Настройки/Технические/Последовательности & Идентификаторы/Последовательности» и найдите последовательность, которую вы создали.

+0

Решено, мне пришлось перезапустить сервер, последовательность действительно появляется в разделе «Настройки/Технические/Последовательности и Идентификаторы/Последовательности» Спасибо большое! – NeoVe

2

Вы можете создать последовательность динамически в своем module_name_view.xml с помощью xml, это желаемый способ избежать ручного создания последовательностей зависимостей во время установки модуля.

Вот код Pute в вашем module_name_view.xml файла:

<record forcecreate="1" id="seq_type_id" model="ir.sequence.type"> 
  <field name="name">my_seq</field> 
  <field name="code">my_seq_code</field> 
</record> 
<record forcecreate="1" id="seq_id" model="ir.sequence"> 
  <field name="name">my_seq</field> 
  <field name="code">my_seq_code</field> 
  <field name="prefix">SEQ_</field> 
    <field name="suffix"></field> 
</record> 

удачи.

+0

Уже решена, но все новые формы решения проблем всегда полезны, спасибо вам большое! – NeoVe

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