明らかに以下のフォームにデータをインポートしようとしています
- 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()