← Back to team overview

c2c-oerpscenario team mailing list archive

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

 

On Friday 10 June 2011, you wrote:
> I agree with the solution which  applied.
> Nevertheless, the get_id function should return by default all
> sequence_id applying for the user

Can you give me any example where the user (+ his company or so) would affect 
the numbering? Are we /ever/ allowed to use more than 1 sequence per 
journal/stock etc? [1]

> Question could be: should we add filter in function call a for specific
> scope (Journal's company only for example) or 
I had -long- [2] implemented a "condition" field in ir.sequence . There, I say, 
if we need to select sequence by any criteria, we could put a small expression 
and have it restrict the selection. So far, I discovered that using distinct 
journals has been the best practice, rather than trying to select among 
multiple sequences.

> should we control after
> the function call that result is compatible with journal's comapny?
you mean validate?
A sequence is a counter that you only want to use irreversibly. So, if you get 
a number and you then realize it's not the right sequence, you can't go back.

Said that, if you just want to do an 'assertion' that you used the right 
sequence, that's fine. Not, however, try to repeat and use another sequence.

> I'd rather the second but...


[1] yes, journal is the worst example, because it's strictly defined. Other 
models may have more relax rules. Do they?
[2] found in trunk-xrg, pg84 and pg84-next branches, since the early days I've 
worked with the 5.0 series

-- 
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 Server:
  Confirmed

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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/789832/+subscriptions


Follow ups

References