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 dichiarare la versione di Odoo a cui riferisce la domanda
  • Pagina:
  • 1
  • 2
  • 3

ARGOMENTO: [8.0]Fattura accompagnatoria

[8.0]Fattura accompagnatoria 3 Anni 4 Mesi fa #22395

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
In sostanza estendi account.invoice ed aggiungi il campo carrier_id
Estendi sale.order e nel metodo che crea i campi della fattura propaghi il carrier_id

Scusa ma non riesco propri a capire. Ne ho provate di tutti i colori ma il risultato è sempre quello... bianco cioè niente.

Mica potresti postarmi un piccolo esempio?

Questo è un altro po di codice che ho provato ma senza risultato.
class AccountCarrier (models.Model):
    _inherit = 'account.invoice'
    
    account_carrier_ids = fields.One2many(comodel_name='sale.order', inverse_name='carrier_id', string='Carrier id', delegate=True, store=True)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0]Fattura accompagnatoria 3 Anni 4 Mesi fa #22396

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
GiuseppeS ha scritto:
In sostanza estendi account.invoice ed aggiungi il campo carrier_id
Estendi sale.order e nel metodo che crea i campi della fattura propaghi il carrier_id

Scusa ma non riesco propri a capire. Ne ho provate di tutti i colori ma il risultato è sempre quello... bianco cioè niente.

Mica potresti postarmi un piccolo esempio?

Questo è un altro po di codice che ho provato ma senza risultato.
class AccountCarrier (models.Model):
    _inherit = 'account.invoice'
    
    account_carrier_ids = fields.One2many(comodel_name='sale.order', inverse_name='carrier_id', string='Carrier id', delegate=True, store=True)

Ok hai inserito il field del carrier in fattura ... ma chi lo popola?

Devi creare qualcosa del tipo:
class SaleOrderCarrierPropagate (models.Model):
    _inherit = 'sale.order'

   def _prepare_invoice(self, cr, uid, order, lines, context=None):
       invoicevals = super(SaleOrderCarrierPropagate, self)._prepare_invoice(self, cr, uid, order, lines, context)
       invoicevals['account_carrier_ids'] = self.carrier_id

       return invoicevals

ho scritto codice a caiser direttamente sul forum e la mia memoria non e' il massimo ma spero di aver reso l'idea.

In pratica propaghi il carrier presente nell'ordine sulla fattura e poi da li lo usi nei report, il solo fatto di aver definito il field in fattura non lo popola per magia :)

Detto questo credo che il solo carrier non ti basti comunque per la fattura accompagnatoria, dovresti prendere il numero di colli, il peso ed altre info che trovi sul picking associato all'ordine. Ancora una volta devi propagare eventuali dati in fattura o associare i picking ad esse e poi decidere come aggregare i dati in presenza di piu' di un picking.

Sono solo spunti ... il come strutturare il tutto spetta a te.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: GiuseppeS

[8.0]Fattura accompagnatoria 3 Anni 4 Mesi fa #22414

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
Grazie dei consigli.
Ora comincio a capire un po meglio il funzionamento di odoo.
Mi sto leggendo i vari manuali sotto un'altra luce.

Ma sono sempre fermo al carrier_id :(
class AccountCarrier (models.Model):
    _inherit = 'account.invoice'
    
    account_carrier_id = fields.One2many(comodel_name='sale.order', inverse_name='carrier_id', string='Carrier id', delegate=True, store=True)

    
class Sale(models.Model):
    _inherit = 'sale.order'

    @api.model
    def _prepare_invoice(self, field_name, arg):
        carriervals = super(Sale, self)._prepare_invoice(field_name, arg)
        carriervals['account_carrier_id'] = self.carrier_id
	
        return carriervals

Il codice scritto sopra sembra funzionare. Ho cercato di usare le nuove api come puoi vedere ma
self.carrier_id

mi torna sempre con il RecorSet vuoto
delivery.carrier()

Mentre nel tuo esempio mi ritorna un errore del tipo
AttributeError: 'sale.order' object has no attribute '_ids'
ho cercato un po in rete ma non ho approfondito la cosa. Sicuramente manca l'istruzione self.pool.get.......
Spero non sia un qualche bag.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0]Fattura accompagnatoria 3 Anni 4 Mesi fa #22415

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
Vedi
www.odoo.com/documentation/8.0/reference...ml#openerp.api.model
Decorate a record-style method where self is a recordset, but its contents is not relevant, only the model is
Dovrai probabilmente usare @api.multi invece di @api.model
the method is exposed as taking a list of ids (possibly empty), its "old API" signature is cr, uid, ids, *arguments, context
Lorenzo Battistini
github.com/eLBati

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

[8.0]Fattura accompagnatoria 3 Anni 4 Mesi fa #22427

  • GiuseppeS
  • Avatar di GiuseppeS
  • Offline
  • Expert Boarder
  • Messaggi: 140
  • Ringraziamenti ricevuti 5
  • Karma: 0
Ciao.

Innanzitutto ringrazio tutti per i consigli.

Ho risolto in questo modo.
class AccountCarrier (models.Model):
    _inherit = 'account.invoice'

    invoice_carrier_id = fields.Many2one(comodel_name='delivery.carrier', string='Carrier id')


class Sale(models.Model):
    _inherit = 'sale.order'

    @api.model
    def _prepare_invoice(self,order, lines):
        carriervals = super(Sale, self)._prepare_invoice(order, lines)
        carriervals['invoice_carrier_id'] = order.carrier_id.id
        return carriervals

Non metto "risolto" al titolo perché sicuramente avrò ancora qualcosa da chiedervi.

Intano, magari, il pezzo di codice può servire da esempio per altri.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: eLBati

[8.0]Fattura accompagnatoria 3 Anni 1 Mese fa #23074

  • luca_natsuo
  • Avatar di luca_natsuo
  • Offline
  • Fresh Boarder
  • Messaggi: 12
  • Karma: 0
Salve a tutti,

scusate se riapro un vecchio thread. Ho installato la versione 8 localizzata in italiano...mi sfugge un punto: non esiste più un modulo per la fattura accompagnatoria? In tal caso come consigliate di procedere? Creare una view ad hoc partendo dalla fattura normale?

Grazie!
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.139 secondi

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

Protected by R Antispam