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

ARGOMENTO: [8.0] account.invoice.line attributo "create"

[8.0] account.invoice.line attributo "create" 3 Mesi 4 Giorni fa #31939

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
Buonasera.
ho un problema che non riesco proprio a risolvere o almeno non so come fare.
Riguarda il creare una riga nel database account_invoice_line.
In breve. Mi sono creato questi campi
class AccountInvoiceLine(models.Model):

    _inherit = 'account.invoice.line'

    ddt_line_id = fields.Many2one(
        'stock.picking.package.preparation.line', string='Ddt line')

il problema è scrivere tale campo appunto da stock.picking.package.preparation.line

più o meno ho risolto ma eseguendo il seguente comando:
    def _create_invoice_line_from_vals(self, cr, uid, move, invoice_line_vals, context=None):
        print "** stock.account _create_invoice_line ***", invoice_line_vals
        return self.pool.get('account.invoice.line').create(cr, uid, invoice_line_vals, context=context)

che si trova in stock_account/stock.py nonostante i campi siano giusti
** stock.account _create_invoice_line *** {'origin': u'WH/OUT/00148', 'uos_id': 1, 'account_id': 132, 'price_unit': 4.45, 'invoice_line_tax_id': [(6, 0, [28])], 'discount': 0.0, 'lot_id': False, 'name': u'[070896239020] Set Calcio 9 Pezzi', 'product_id': 7390, 'invoice_id': 2082, 'ddt_line_id': 301, 'product_bom_qty': 1.0, 'account_analytic_id': False, 'product_uom_qty_tot': 1, 'quantity': 1.0}

cioè il campo che mi interessa 'ddt_line_id': 301 esiste, non mi crea nel modo giusto la linea nel database.
Infatti il campo 'ddt_line_id' mi risulta sempre vuoto.

Dove sbaglio?
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] account.invoice.line attributo "create" 3 Mesi 4 Giorni fa #31941

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Non capisco 2 cose nel tuo codice:
1. Crei la linea di invoice.line dal modello stock?
2. Dove è definito il campo ddt_line_id? Se sicuro che sia un campo di account.invoice.line?
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. - Presidente eletto dell'associazione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] account.invoice.line attributo "create" 3 Mesi 3 Giorni fa #31952

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
1) in realtà non li creo io. ho seguito il codice di odoo e mi sono trovato in questa situazione.
2) si il campo si trova proprio li. Dal DDT di odoo10.
Sto cercando di impostarlo anche dal ddt di odoo8 ma mi sono bloccato proprio in quel punto.
Non conosco un altro modo per impostarlo.
Se hai una qualche idea per impostarlo sono tutto orecchi

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

[8.0] account.invoice.line attributo "create" 3 Mesi 3 Giorni fa #31953

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
ho scoperto che
move_obj._create_invoice_line_from_vals(cr, uid, move, invoice_line_vals, context=context)
move_obj.write(cr, uid, move.id, {'invoice_state': 'invoiced'}, context=context)

se tolgo move_obj.write mi scrive dove dovrebbe ma mi incasina altre cose. se lo metto prima di move_obj._create_invoice_line_from_vals il risultato è simile ma ne incasina altre.
Sembresebbe che quel write cancella alcuni riferimenti. Bohh!
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] account.invoice.line attributo "create" 3 Mesi 3 Giorni fa #31954

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Il problema è proprio che il campo ddt_line_id non esiste in Odoo 8.0

In realtà la difficoltà è più di un semplice campo, perchè nella 10.0 il campo è risultato del processo di collegamento dei DdT alle fatture.

Devi scrivere un bel po' di codice importandolo dalla 10.0, cercando dove questo campo è definito e tutte le funzioni che lo utilizzano. Se ci riesci sei molto bravo perchè non è affatto semplice
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. - Presidente eletto dell'associazione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] account.invoice.line attributo "create" 3 Mesi 3 Giorni fa #31968

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
In realtà la difficoltà è più di un semplice campo, perchè nella 10.0 il campo è risultato del processo di collegamento dei DdT alle fatture.

Questo lo avevo capito.

E purtroppo non volevo riscrivere tutto il modulo del ddt. (non credo di averne le capacità) per questo stavo cercando, seguendo il codice, di collegare questo campo con le righe delle linee del ddt in modo semplice. ma credo non si possa fare.

Ho provato a portare tutto il ddt dala 10 alla 8 ma mi sono fermato su dei problemi riguardo dei campi non più utilizzati alla 10 che nella 8 sono ampiamente utilizzati. tipo uom e uos se non ricordo male i nomi.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.133 secondi

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

Protected by R Antispam