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

ARGOMENTO: campo non creato ereditando

campo non creato ereditando 1 Anno 9 Mesi fa #28144

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
ciao,
sto facendo un modulo che copia quanto già egregiamente fatto con questo modulo
product_expiry_ext (per la cronaca colora i lotti in funzione della data di scadenza impostata, rendendo la gestione delle partite prossime al "consumarsi preferibilmente" di facile uso).

Si va in Warehouse > Traceability > Serial number
e si vedono tanti linee colorate.
Cool!

La mia domanda è un'altra.

Ho messo, in model.py, questo codice:
from openerp import models, fields, api, exceptions, _


class StockProductioLot(models.Model):
    _inherit = 'stock.production.lot'

    @api.one
    @api.constrains('removal_date', 'alert_date', 'life_date', 'use_date')
    def _check_dates(self):
        dates = filter(lambda x: x, [self.alert_date, self.removal_date,
                                     self.use_date, self.life_date])
        sort_dates = list(dates)
        sort_dates.sort()
        if dates != sort_dates:
            raise exceptions.Warning(
                _('Dates must be: Alert Date < Removal Date < Best Before '
                  'Date < Expiry Date'))

    @api.one
    @api.depends('removal_date', 'alert_date', 'life_date', 'use_date')
    def _get_product_state(self):
        now = fields.Datetime.now()
        self.expiry_state = 'normal'
        if self.life_date and self.life_date < now:
            self.expiry_state = 'expired'
        elif (self.alert_date and self.removal_date and
                self.removal_date >= now > self.alert_date):
            self.expiry_state = 'alert'
        elif (self.removal_date and self.use_date and
                self.use_date >= now > self.removal_date):
            self.expiry_state = 'to_remove'
        elif (self.use_date and self.life_date and
                self.life_date >= now > self.use_date):
            self.expiry_state = 'best_before'

    expiry_state = fields.Selection(
        compute=_get_product_state,
        selection=[('expired', 'Expired'),
                   ('alert', 'In alert'),
                   ('normal', 'Normal'),
                   ('to_remove', 'To remove'),
                   ('best_before', 'After the best before')],
        string='Expiry state')

Il modulo si intalla correttamente, ma dice di non trovare (all'accedere alla view) la variabile expiry_state.
Nemmeno trovo questa variabile (campo) nel database postgres di odoo.

Ma che strano.
Ci avrei messo la mano sul fuoco che l'eredità si fa come ho scritto sopra...

Qualche idea di dove sbaglio?

Andrea
Ultima modifica: 1 Anno 9 Mesi fa da ndrini.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

campo non creato ereditando 1 Anno 9 Mesi fa #28146

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Ad una prima occhiata superficiale mi pare che manchi
_name =
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.

campo non creato ereditando 1 Anno 9 Mesi fa #28147

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
La data di scadenza, expiry date, è definita nel modulo:

product_expiry

Il tuo modulo deve dipendere da questo affinché tutte le strutture e le estensioni siano correttamene valorizzate.

Il nome implicito ed esplicito con cui si puo' usare un riferimento per estendere crea, purtroppo, questi casini .....
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.164 secondi

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

Protected by R Antispam