from netforce.model import get_model from netforce import migration from netforce.access import set_active_user, get_active_user, set_active_company, get_active_company import collections class Migration(migration.Migration): _name="check.patient" _version="2.12.8" def migrate(salf): set_active_company(1) set_active_user(1) totals={} context={ 'active_test': False, } for pt in get_model('clinic.patient').search_browse([], context=context): key=(pt.number, pt.card_no, pt.walkin) #key=(pt.hn_no) totals.setdefault(key,{ 'count': 0, 'pid': pt.id, 'pname': pt.name, }) totals[key]['count']+=1 for k in sorted(totals.keys()): hn_no, card_no, walkin = k pt=totals[k] if pt['count'] > 1: #hn_no, card_no, walkin = k print(k, pt) return user_id=get_active_user() company_id=get_active_company() count=0 lines_hn=[] lines_pid=[] lines_h=[] lines_p=[] print('start check patients.') for pat in get_model('clinic.patient').search_browse([]): lines_hn.append(pat.hn_no) lines_pid.append(pat.card_no) count+=1 print('count : %d'%(count)) total_hn = [item for item, count in collections.Counter(lines_hn).items() if count > 1] total_pid = [item for item, count in collections.Counter(lines_pid).items() if count > 1] count=0 for total in total_hn: for line in get_model('clinic.patient').search_browse(['hn_no','=',total]): data = '%d : %s'%(line.id,line.hn_no) lines_h.append(data) count+=1 print('#%d : id=%d, name=%s %s, hn_no=%s'%(count,line.id,line.first_name,line.last_name,line.hn_no)) print("") print("*"*100) print("") count=0 for total in total_pid: for line in get_model('clinic.patient').search_browse(['card_no','=',total]): data = '%d : %s'%(line.id,line.card_no) lines_p.append(data) count+=1 print('#%d : id=%d, name=%s %s, pid=%s'%(count,line.id,line.first_name,line.last_name,line.card_no)) print('check patients : Done!') return True Migration.register()