Las secuencias son utilizadas para serializar un campo (o varios
campos), en especifico. Es especialmente util en ambientes multi empresas,
en donde cada una de ellas puede tener una secuencia diferente para un
mismo campo. Por ejemplo, queremos que nuestras facturas de venta generen
un correlativo diferente para cada empresa.
Esto se logra por lo general en tres tres pasos:
1.- Crear una secuencia.
obj_sequence = Pool().get('ir.sequence')
vals_seq={
'name': 'nombre',
'code': 'sale.sale',
'padding': 6,
'company': company_id,
'prefix': 'prefix',
'type': 'incremental',
}
seq = obj_sequence.create(vals_seq)
2.- Asignar el valor de la secuencia a una propiedad.
En el caso de 'sale.sale', utilizamos el model 'sale.configuration' que
contiene un campo de tipo 'property' llamado 'sale_sequence' en donde
guardamos el valor de la secuencia creada anteriormente:
config_obj = Pool().get('sale.configuration')
config_obj.write(1, {'sale_sequence' : seq.id})
3.- Llamar a la funcion 'get_id' del objeto ir.sequence para obtener el
siguiente numero de secuencia en el formato establecido.
Sequence = Pool().get('ir.sequence')
Config = Pool().get('sale.configuration')
config = Config(1)
next_number = Sequence.get_id(config.sale_sequence.id)
Espero no haya sido muy confusa la explicación,
Saludos,
El jueves, 6 de diciembre de 2012 20:38:59 UTC-5, Sergio escribió:
>
> Buenos días
>
> Llevo varios días mirando código de módulos como party, sale, invoice...
> para entender el funcionamiento de secuencias en tryton. También he buscado
> información en la web pero no he encontrado (o sabido buscar) nada que me
> aclare el uso de secuencias. Alguien puede darme un breve explicación sobre
> este tema?
>
> Muchas gracias
>
--
[email protected] mailing list