c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #26153
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