← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 789832] [NEW] Can not get a sequence_id from a child company

 

Public bug reported:

In V6, how to reproduce the bug:
2 companies, A is child of B.
2 invoice sequences, one for A and one for B.
User X with company B as main company should be able to watch all objects from company B and A.
When user X is entering a new invoice for company A, no sequence_id is generated. This is due to the fact that in ir_sequence/get_id the following code seems incorrect:

        company_id = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context)['company_id'][0] or None
        cr.execute('''SELECT id, number_next, prefix, suffix, padding
                      FROM ir_sequence
                      WHERE %s=%%s
                       AND active=true
                       AND (company_id = %%s or company_id is NULL)
                      ORDER BY company_id, id
                      FOR UPDATE NOWAIT''' % test,
                      (sequence_id, company_id))
 
The function is filtering according to user's company (B) and cannot find the correct invoice sequence (which is assigned to A company). 
As far as I understand multi-company, the filter should find a list of all children companies and give all sequences for A, B and NULL.

** Affects: openobject-addons
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/789832

Title:
  Can not get a sequence_id from a child company

Status in OpenERP Modules (addons):
  New

Bug description:
  In V6, how to reproduce the bug:
  2 companies, A is child of B.
  2 invoice sequences, one for A and one for B.
  User X with company B as main company should be able to watch all objects from company B and A.
  When user X is entering a new invoice for company A, no sequence_id is generated. This is due to the fact that in ir_sequence/get_id the following code seems incorrect:

          company_id = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context)['company_id'][0] or None
          cr.execute('''SELECT id, number_next, prefix, suffix, padding
                        FROM ir_sequence
                        WHERE %s=%%s
                         AND active=true
                         AND (company_id = %%s or company_id is NULL)
                        ORDER BY company_id, id
                        FOR UPDATE NOWAIT''' % test,
                        (sequence_id, company_id))
   
  The function is filtering according to user's company (B) and cannot find the correct invoice sequence (which is assigned to A company). 
  As far as I understand multi-company, the filter should find a list of all children companies and give all sequences for A, B and NULL.


Follow ups

References