0

明らかに以下のフォームにデータをインポートしようとしています

  • Seq No (配列番号フィールド - openerp 配列で生成中)
  • 顧客 (顧客参照フィールド)
  • サービス(一二多分野)
    • 契約開始日
    • 契約終了日

インポートするデータは次のようなものです

Customer    Contract Start Date     Contract End Date

 ABC            13/02/12                12/05/14
                12/05/14                14/04/16
                12/08/16                14/06/18
 XYZ            15/04/12                18/08/14
                11/05/14                19/05/16

現在、私のフォームにはサブレコードを含む 2 つのレコードが生成されていますが、最初のレコードに対して生成された ID は R001 で、2 番目のレコードは R004 です。つまり、インポートのすべてのレコードに対して ID が生成されます (ただし、使用されません)。だから間隔があります。しかし、これはone2manyでフォーム値をインポートするために私が特定した方法です。

今、私は以下を理解する必要があります

  • 私は正しいことをしていますか、それともone2manyデータをインポートする他の方法はありますか
  • インポート中にシーケンス番号を整理する方法はありますか
  • そして最後の 1 つ (曲がった) は、データベースに移動して、すべての値をシーケンスに更新できることです。そして、フォームフィールドを手動で作成すると、openerp によって生成された最後の id+1 が取得されます。したがって、データベースで変更した最後の値 + 1 から開始するようにシーケンス番号を更新する必要があります。

必要なことを行うように親切に案内してください。明確でない場合は、お気軽に投稿を更新してください。御時間ありがとうございます。

オドニーのコメントより

私のRegister_sequence.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">
        <!-- Sequences for stoc.installed.details (register) -->
        <record id="seq_type_register" model="ir.sequence.type">
            <field name="name">Register</field>
            <field name="code">stock.installed_details</field>
        </record>
        <record id="seq_register" model="ir.sequence">
            <field name="name">Register</field>
            <field name="code">stock.installed_details</field>
            <field name="prefix">Reg</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</openerp>

私のPythonファイル

class installed_details(osv.osv):
_name = "stock.installed_details"
    _description = "Installed Details"  
    _columns = {
        'name': fields.char('Name', size=64),
        'partner_id': fields.many2one('res.partner', 'Customer', required=True, help="Address of  Hospital / Medical Centre."),
        'product_id': fields.many2one('product.product', 'Product', select=True, domain=[('type', '<>', 'service')], states={'done': [('readonly', True)]}),
'contract_lines' : fields.one2many('contract.contract', 'register_id','Contract'),
    }

   def create(self, cr, uid, vals, context=None):
        if vals.get('name', '/') == '/':
            vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'stock.installed_details') or '/'
        return super(Installed_details, self).create(cr, uid, vals, context=context)
installed_details()

class contract_contract(osv.osv):

    _name = "contract.contract"
    _description = "Contract"
    _columns = {
        'register_id': fields.many2one('stock.installed_details', 'Register'),       
        'contract_start_date': fields.date('Contract Start Date'),
        'contract_end_date': fields.date('Contract End Date')
    }

contract_contract()
4

0 に答える 0