Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2
  • 3

ARGOMENTO: sequence number

sequence number 2 Anni 6 Mesi fa #24903

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Vorrei generare dei numeri consecutivi nella V8

Ho creato un sequence.xml che correttamente viene importato nel sistema.
Ho definito un campo compute, che pensavo autogenerasse il numero, ma la form resta in bianco:

Dove sbaglio ? Controllando in rete mi sembra sia corretto...
Incollo xml per la sequenza e la definizione della classe.

Sono obbligato a passare attraverso un metodo create ?
Non è sufficiente definire un campo compute, ed abbinarlo alla sequenza con il suo generatore next_
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data noupdate="0">
        <record model="ir.sequence.type" id="service_sequence_type_id">
            <field name="name">Code sequence for service repair</field>
            <field name="code">service.sequence.code</field>
        </record>
        
        <record model="ir.sequence" id="service_sequence_code">
            <field name="name">Sequence Service Repair</field>
            <field name="code">service.sequence.code</field>
            <field name="active">TRUE</field>
            <field name="prefix">SERV-</field>
            <field name="number_increment">1</field>
            <field name="number_next">15000</field>
            <field name="implementation">standard</field>
        </record>       
    </data>
</openerp>
class ServiceReq(models.Model):
    _name = 'service.req'
    name = fields.Char(string="Assistenza prodotto rec")

    @api.one
    def _compute_internal_number(self):
        self.service_internal_number = self.env['ir.sequence'].next_by_code('service.sequence.code')
   
    service_internal_number = fields.Char(string="Riferimento Interno", compute=_compute_internal_number, store=True)
Ultima modifica: 2 Anni 6 Mesi fa da Lotta.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24906

  • archetipo
  • Avatar di archetipo
  • Offline
  • Platinum Boarder
  • Messaggi: 331
  • Ringraziamenti ricevuti 5
  • Karma: 8
Ciao
sembra tutto corretto, l'unica cosa che non mi convince e':
<field name="active">TRUE</field>

che lo modificherei in
<field name="active">True</field>
Alessio Gerace
github.com/archetipo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24923

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Grazie,
era una bella idea.... purtroppo la sequenza è definita attiva verificando in configurazione-sequenze-sequenze,.... ed anche cambiandolo in True non cambia il risultato

Da quello che vedo, anche RIDEFINENDO il metodo compute, il risultato non cambia
@api.one
    def _compute_internal_number(self):

        #self.service_internal_number = self.env['ir.sequence'].next_by_code('service.sequence.code')
        self.service_internal_number = 18 

Sembra il problema derivi dal fatto che il metodo compute NON viene chiamato....
Ultima modifica: 2 Anni 6 Mesi fa da Lotta.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24925

  • archetipo
  • Avatar di archetipo
  • Offline
  • Platinum Boarder
  • Messaggi: 331
  • Ringraziamenti ricevuti 5
  • Karma: 8
ah notavo ora ancora una cosa:
compute=_compute_internal_number

perova a cambiarlo in
compute='_compute_internal_number'
Alessio Gerace
github.com/archetipo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24926

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Sono valide entrambe le forme.
Se si mette come stringa può stare anche dopo (a piacere),
se si mette come nome di variabile deve essere stata già acquisita (definita) prima.

Sto cominciando a pensare che il problema nasca dal fatto che
il numero seriale viene definito al momento della creazione del record
ma NON dipende da alcun campo

Se non ricordo male, la logica del modello ORM sottostante, deve essere comunque agganciata ad un evento che la triggeri...
MA nel mio caso non dipende da alcun valore .....

DOMANDOMA
ma è vietata una simile compute senza depends ?
Devo ripiegare su un metodo create oppure ho alternative ?
Ultima modifica: 2 Anni 6 Mesi fa da Lotta.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24927

  • MiCantino
  • Avatar di MiCantino
  • Offline
  • Expert Boarder
  • Messaggi: 137
  • Ringraziamenti ricevuti 7
  • Karma: 1
non credo sia vietata la compute senza la depends, però la risposta dovresti averla anticipata tu
Se non ricordo male, la logica del modello ORM sottostante, deve essere comunque agganciata ad un evento che la triggeri
.
L'annotation depends dovrebbe mettere in ascolto il metodo sugli eventi del campo che indichi. Dovresti fare un tentativo eseguendo un'operazione che non ti da problemi (il metodo di gestione della sequence lo accantonerei) e verificare se le cose stanno come ipotizzi

Purtroppo non so darti alrti consigli, in effetti nei miei pochi moduli ho sempre ripiegato sul create e non ho ai avuto problemi
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.143 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam