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: copia di un timesheet

copia di un timesheet 1 Anno 10 Mesi fa #27759

  • l.rodono
  • Avatar di l.rodono
  • Offline
  • Fresh Boarder
  • Messaggi: 10
  • Karma: 0
Salve
sto provando a fare la copia di un timesheet,
ho reimplementato la funzione copy sia con le vecchie api che con le nuove (ho installato odoo 8)
ottengo una copia del timesheet con anche i dati delle ore lavorate dall'utante,
ma nel timesheet originale perdo queste ultime informazioni,
con le nuove api ho provato a fare anche la copia dei dati del nuovo timesheet e riassegnarle al vecchio timesheet con una write ma il risultato è che il nuovo ha i dati ripetuti e il vecchio non ha nulla.
qualcuno sa darmi una soluzione?

con le vecchie api:

def map_timesheets(self, cr, uid, old_timesheet_id, new_timesheet_id, context=None):
""" copy and map timesheet from old to new timesheet """
if context is None:
context = {}
map_analityc_time_id = {}
analitytic_timesheet_obj = self.pool.get('hr.analytic.timesheet')
timesheet = self.browse(cr, uid, old_timesheet_id, context=context)
for line in timesheet.timesheet_ids:
defaults = {'sheet_id': line.sheet_id.id, 'name': line.name}
map_analityc_time_id[line.id] = analitytic_timesheet_obj.copy(cr, uid, line.id, defaults, context=context)
self.write(cr, uid, [new_timesheet_id], {'timesheet_ids':[(6,0, map_analityc_time_id.values())]})
return True

def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
context = dict(context or {})
context = False
timesheet = self.browse(cr, uid, id, context=context)
if not default.get('name'):
default.update(name=_("%s (copy)") % (timesheet.name))
data = self.copy_data(cr, uid, id, default, context)
new_id = self.create(cr, uid, data, context)
self.map_timesheets(cr, uid, id, new_id, context=context)
return new_id


def copy_data(self, cr, uid, id, default=None, context=None):
context = dict(context or {}, mail_notrack=True)
padre= super(extended_timesheet, self)
ris= super(extended_timesheet, self).copy_data(cr, uid, id, default, context)

return ris


nuove api:

@api.multi
def copy(self, default=None):
if default is None:
default = {}

res=osv.osv.copy(self,default)#res indice della copia di timesheet

map_timesheet_id = {}
for line in res.timesheet_ids:
default=line.name+'(copy)'
puntatore=osv.osv.copy(line,default)
map_timesheet_id[line.id]=puntatore.id#res indice della copia di timesheet
ris = self.write( {'timesheet_ids': [(0,_, map_timesheet_id.values())]})

return res
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.127 secondi

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

Protected by R Antispam