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
Ricordati di inserire la versioni di Odoo per cui poni la domanda

ARGOMENTO: Chiarimento su soluzioni disponibili

Chiarimento su soluzioni disponibili 2 Anni 8 Mesi fa #24283

  • gbonline
  • Avatar di gbonline
  • Offline
  • Senior Boarder
  • Messaggi: 45
  • Ringraziamenti ricevuti 1
  • Karma: 0
Salve a tutti
vorrei un parere o un chiarimento in merito alle soluzioni disponibili per poter visualizzare dei dati nel modo seguente in openerp 7:
in una struttura tipica di

cliente-> [o2m] ordini -> [o2m] linee ordine

vorrei poter mostrare nella scheda cliente tutte le linee d'ordine!

Ho avuto un problema utilizzando un campo related del tipo 'o2m', perchè mi restituiva solo il primo record della lista o2m linee ordine (soluzione 1),
per cui ho adottato il campo function, con una funzione basata su una query dedicata che mi estrae gli id necessari (soluzione 2).

Nel caso della soluzione 1 avevo i campi cosi definiti:
_table='res.partner'
_columns = {
     'order_ids':fields.one2many('orders','partner_id'),
     'line_order_ids': fields.related('order_ids', 'line_ids', type='one2many',relation='order.line')
}

____________________________________________


_table='orders'
_columns={
    'partner_id':fields.many2one('res.partner')
    'line_ids': fields.one2many('order.line','order_id)
}
Mettendo poi in view questi campi, ottengo di visualizzare solo il primo record delle righe.

Nel caso della soluzione 2, tramite la funzione collegata, recupero tramite una query tutte le coppie di id 'order.partner_id, line.id'
e funziona correttamente. (come da esempio in hr_payroll)

Per cui il chiarimento che desidero è se la soluzione 2 è l'unica disponibile in casi come questi, oppure la soluzione 1, che è basata interamente sull' ORM, si può utilizzare e se sì, come poter ottenere tutti i record?

grazie
Giorgio
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Chiarimento su soluzioni disponibili 2 Anni 8 Mesi fa #24300

  • NicoTheBrush
  • Avatar di NicoTheBrush
  • Offline
  • Platinum Boarder
  • Messaggi: 1952
  • Ringraziamenti ricevuti 156
  • Karma: 46
note stilistiche: non userei _table ma _name per assegnare il nome all'oggetto

i campi related poi vanno utilizzati per dire:
sono in un oggetto, usa il campo many2one per raggiungere un altro oggetti e li prendi questo campo qui (e poi gli dai la tipizzazione del campo)

nel tuo caso appoggi il related ad un one2many credo nasca da li il casino che ti porta a vedere una sola riga.

Io mettere piuttosto un campo related nelle righe d'ordine che grazie a order_id (many2one) arriva a partner_id (dovresti fare uno store = True o qualcosa di più performante con store = {})
Fatto questo puoi creare in res_partner un one2many che punta direttamente alle righe ordine sfruttando il campo appena creato.

spero sia chiaro il giro...
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: gbonline

Chiarimento su soluzioni disponibili 2 Anni 8 Mesi fa #24309

  • gbonline
  • Avatar di gbonline
  • Offline
  • Senior Boarder
  • Messaggi: 45
  • Ringraziamenti ricevuti 1
  • Karma: 0
Ciao Nico
grazie per il chiarimento
Per i campi related, ho riletto la documentazione ufficiale e non capivo se sono da usare solo per creare relazioni a partire da campi m2o o anche per altre relazioni come il m2o. Ovviamente servono solo per i m2o!

per la struttura, io consideravo solo la "piramide" o2m da partner->dettaglio ordini, e non ho pensato alla possibilità che mi hai suggerito di riportare il partner_id direttamente sul dettaglio, soprattuto perchè stavo agendo su una struttura già esistente

Per la nota stilistica, volendo solamente fare un esempio e riportare i campi fondamentali per l'impostazione della mia strttura dati non ho prestato la dovuta attenzione ai nomi.

grazie ancora.
Giorgio
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.128 secondi

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

Protected by R Antispam