Я делаю проект о расписании в OpenERP.У меня есть такая проблема: это таблица x_luong.
class x_luong(osv.osv):
_name = 'x_luong'
_description = 'Luong'
_columns = {'name': fields.many2one('x_nhanvien', 'Mã nhân viên', size=10, required='1'),
'ma_luong': fields.integer('ma luong', size=10, required='1'),
'giolam': fields.float('Giờ làm', size=100, required='1'),
'giolamthuc': fields.char('Gio lam thuc te', size=5, required='1'),
'time_in': fields.char('Gio vào', size=20),
'time_out' :fields.char('Gio về', size=20),
'state' :fields.selection([('dangnhap','Đẳng nhập.'),('rave','Ra về')]),
'test': fields.integer('Kiem tra', size=20),
'phutvao': fields.integer('Phut vao ', size=20),
'phutra': fields.integer('phut ra', size=20),
}
_defaults = {'state':'dangnhap',
}
и эта функция в ней:
эта 2 функция означает получение времени, когда персонал войдет в систему или выйдет из системы :
def get_timein(self,cr,uid,ids,context={}):
obj = self.browse(cr,uid,ids,context=context)[0]
timein = str(datetime.now())
self.write(cr, uid, ids, {'time_in':timein }, context=context)
return 1
def get_timeout(self,cr,uid,ids,context={}):
obj = self.browse(cr,uid,ids,context=context)[0]
timeout = str(datetime.now())
self.write(cr, uid, ids, {'time_out':timeout }, context=context)
return 1
и эта функция 2 для кнопки sign_in и sign_out:
def cho_dangnhap(self,cr,uid,ids,context={}):
self.pool.get('x_luong').write(cr,uid,ids,{'state':'dangnhap'})
self.get_timein(cr,uid,ids)
return 1
def cho_rave(self,cr,uid,ids,context={}):
self.pool.get('x_luong').write(cr,uid,ids,{'state':'rave'})
self.get_timeout(cr,uid,ids)
self.tinh_thoigian(cr,uid,ids)
self.insert(cr,uid,ids)
функция tinh_thoigian означает сокращение времени строки для получения... час или мин для расчета
def _thoigianlam(self,cr,uid,ids,context={}):
obj = self.browse(cr,uid,ids,context=context)[0]
hour_den = int(obj.time_in[12:13])
hour_di = int(obj.time_out[12:13])
min_den = int(obj.time_in[15:16])
min_di = int(obj.time_out[15:16])
gl = int(hour_di)-int(hour_den)
pl = min_di-min_den
thucte = str(gl)+':'+pl
self.write(cr, uid, ids, {'giolam':gl }, context=context)
self.write(cr, uid, ids, {'giolamthuc':thucte }, context=context)
return 1
и последняя функция insert () получает ma_luong (я думаю, это тот же самый первичный ключ в sql) и giolam (час работы персонала в компании), time_in, time_out и это функция insert ()
def insert(self,cr,uid,ids,context={}):
obj = self.browse(cr,uid,ids,context=context)
values = {'ma_luong':obj.name.id,
'giolam':obj.giolam,
'time_in':time_in,
'time_out':time_out,
self.pool.get('x_giolam').create(cr,uid,values,context=context)
с этой функцией, я хочу вставить данные в таблицу x_giolam, потому что когда сотрудники входят в систему или выходят из системы в день ... данные этогос сохранением в этой таблице и другим днем, когда они делают это снова, с сохранением еще раз ... и в прошлом месяце, если вы хотите рассчитать их зарплату, вы просто выбираете ma_luong = ma_luong (из таблицы x_luong) и эту таблицу x_giolam:
class x_giolam(osv.osv):
_name = 'x_giolam'
_description = 'Gio Lam'
_columns = {'name': fields.integer('Lọai',size=64,required="true"),
'giolam' : fields.float('Gio lam',size=64,required="True"),
'time_in': fields.char('Gio vào',size=20),
'time_out' :fields.char('Gio về',size=20),
}
иу меня есть 3 вопроса с моим проектом:
1) функция вставки есть Aerror:
AttributeError: 'browse_record_list' object has no attribute 'name'
Как я могу это исправить ???я сохраняю эти данные в таблице x_giolam
2) как я могу выбрать много строк таблицы x_giolam, которые принадлежат сотруднику .. приведите пример этой функции
3) как я могу организовать field.Xmlкогда я показываю строки в
Извините за ваши неприятности, потому что это так долго ... но я надеюсь, что каждое тело здесь может помочь мне.Python и открытый Erp, поэтому разница с c ++ или c #.И этот мой проект "исследуй и напиши расписание модуля с OpenErp" от меня и на следующей неделе крайний срок.Английский из меня не очень хороший, мне очень жаль !!!Спасибо !!