Ciao a tutti, sono agli inizi con Python avendo programmato solo ed esclusivamente in PHP ma ora dato che voglio approfondire OpenERP devo necessariamente imparare il linguaggio del Pitus

Stavo facendo un pò di test modificando un modulo di OpenERP V7 (Il Payroll)

Iniziamo con ordine ...

All'interno della videata del modulo vi è la possibilità di assegnare ad una riga un espressione python (ad esempio per le deduzioni) che ha tutto l'aria di una chiamata ad una variabile contenuta in un oggetto.

codice:
worked_days.HR.number_of_hours
ottengo il numero delle ore lavorate.

Quindi sono andato cercando la classe che genera questo valore e ho scoperto che inserendo una variabile (ad esempio: mytax nella classe hr_payslip_worked_days) e facendo riferimento a worked_days.HR.mytax all'interno della scermata di OpenERP ottengo correttamente il valore che gli ho voluto dare.

Ora all'interno della suddetta classe vorrei fare un calcolo dove è richiesto il valore di worked_days.HR.number_of_hours . Come faccio a richiamare worked_days.HR.number_of_hours dall'interno di hr_payslip_worked_days ???

Ho fatto diversi tentativi ma non riesco a recuperare il valore delle ore lavorate

Non so se sbaglio la sintassi o se sbaglio proprio nella logica dato che anche in PHP mi è capitato rarissimamente di lavorare con gli oggetti.

Vi elenco qualche mio tentativo che ovviamente non ha funzionato
codice:
mytax = worked_days.HR.number_of_hours
codice:
mytax = number_of_hours
Ed ecco la classe che devo modificare:
codice:
class hr_payslip_worked_days(osv.osv):
    '''
    Payslip Worked Days
    '''

    _name = 'hr.payslip.worked_days'
    _description = 'Payslip Worked Days'
    _columns = {
        'name': fields.char('Description', size=256, required=True),
        'payslip_id': fields.many2one('hr.payslip', 'Pay Slip', required=True, ondelete='cascade', select=True),
        'sequence': fields.integer('Sequence', required=True, select=True),
        'code': fields.char('Code', size=52, required=True, help="The code that can be used in the salary rules"),
        'number_of_days': fields.float('Number of Days'),
        'number_of_hours': fields.float('Number of Hours'),
        'contract_id': fields.many2one('hr.contract', 'Contract', required=True, help="The contract for which applied this input"),
    }
    _order = 'payslip_id, sequence'
    _defaults = {
        'sequence': 10,
    }
hr_payslip_worked_days()