function postInstall() { Debug::text('postInstall: ' . $this->getVersion(), __FILE__, __LINE__, __METHOD__, 9); //Copy iButton,Fingerprint,EmployeeNumber (barcode/proximity) fields to new UserIdentification table. //Find out if they have both TimeClocks and FingerPrint stations. If they do //we need to copy the fingerprint data to both types of UserIdentification rows. $clf = new CompanyListFactory(); $clf->getAll(); $clf->StartTransaction(); foreach ($clf as $c_obj) { Debug::text('Company: ' . $c_obj->getName(), __FILE__, __LINE__, __METHOD__, 9); $max_templates = 4; $slf = new StationListFactory(); $slf->getByCompanyIdAndTypeId($c_obj->getId(), array(30, 40, 50, 100, 110)); if ($slf->getRecordCount() > 0) { $slf_tmp1 = $slf->getByCompanyIdAndTypeId($c_obj->getId(), array(50)); $griaule_stations = $slf_tmp1->getRecordCount(); Debug::text(' Found Griaule Stations: ' . $griaule_stations, __FILE__, __LINE__, __METHOD__, 9); unset($slf_tmp1); $slf_tmp2 = $slf->getByCompanyIdAndTypeId($c_obj->getId(), array(100, 110)); $zk_stations = $slf_tmp2->getRecordCount(); Debug::text(' Found ZK Stations: ' . $zk_stations, __FILE__, __LINE__, __METHOD__, 9); unset($slf_tmp2); $slf_tmp3 = $slf->getByCompanyIdAndTypeId($c_obj->getId(), array(40)); $barcode_stations = $slf_tmp3->getRecordCount(); Debug::text(' Found Barcode Stations: ' . $barcode_stations, __FILE__, __LINE__, __METHOD__, 9); unset($slf_tmp3); //Loop through each user copying their data to the UserIdenfification Table. $ulf = new UserListFactory(); $ulf->getByCompanyID($c_obj->getId()); if ($ulf->getRecordCount() > 0) { foreach ($ulf as $u_obj) { Debug::text(' User: '******'') { Debug::text(' Converting iButton...', __FILE__, __LINE__, __METHOD__, 9); $uif = new UserIdentificationFactory(); $uif->setUser($u_obj->getId()); $uif->setType(10); //10=iButton $uif->setNumber(0); $uif->setValue($u_obj->getIButtonID()); if ($uif->isValid() == TRUE) { $uif->Save(); $u_obj->getIButtonID(''); } } if ($u_obj->getRFID() != '') { Debug::text(' Converting RFID...', __FILE__, __LINE__, __METHOD__, 9); $uif = new UserIdentificationFactory(); $uif->setUser($u_obj->getId()); $uif->setType(40); //40=Proximity $uif->setNumber(0); $uif->setValue($u_obj->getRFID()); if ($uif->isValid() == TRUE) { $uif->Save(); $u_obj->getRFID(''); } } if ($barcode_stations > 0 and $u_obj->getEmployeeNumber() != '') { Debug::text(' Converting EmployeeNumber...', __FILE__, __LINE__, __METHOD__, 9); $uif = new UserIdentificationFactory(); $uif->setUser($u_obj->getId()); $uif->setType(30); //30=Barcode $uif->setNumber(0); $uif->setValue($u_obj->getEmployeeNumber()); if ($uif->isValid() == TRUE) { $uif->Save(); } } if ($griaule_stations > 0) { for ($t = 1; $t <= $max_templates; $t++) { $set_fingerprint_function = 'setFingerPrint' . $t; $get_fingerprint_function = 'getFingerPrint' . $t; //Griaule fingerprint templates start with: "p/8B" if ($u_obj->{$get_fingerprint_function}() != '' and substr($u_obj->{$get_fingerprint_function}(), 0, 4) == 'p/8B') { Debug::text(' Converting Griaule FingerPrint: ' . $t, __FILE__, __LINE__, __METHOD__, 9); $uif = new UserIdentificationFactory(); $uif->setUser($u_obj->getId()); $uif->setType(20); //20=Griaule, 100=ZK $uif->setNumber($t * 10); $uif->setValue($u_obj->{$get_fingerprint_function}()); if ($uif->isValid() == TRUE) { $uif->Save(); $u_obj->{$set_fingerprint_function}(''); } } } } if ($zk_stations > 0) { for ($t = 1; $t <= $max_templates; $t++) { $set_fingerprint_function = 'setFingerPrint' . $t; $get_fingerprint_function = 'getFingerPrint' . $t; //ZK fingerprint templates start with: "oco" if ($u_obj->{$get_fingerprint_function}() != '' and substr($u_obj->{$get_fingerprint_function}(), 0, 3) == 'oco') { Debug::text(' Converting ZK FingerPrint: ' . $t, __FILE__, __LINE__, __METHOD__, 9); $uif = new UserIdentificationFactory(); $uif->setUser($u_obj->getId()); $uif->setType(100); //20=Griaule, 100=ZK $uif->setNumber($t); $uif->setValue($u_obj->{$get_fingerprint_function}()); if ($uif->isValid() == TRUE) { $uif->Save(); $u_obj->{$set_fingerprint_function}(''); } } } } if ($u_obj->isValid()) { $u_obj->Save(); } } } } } $clf->CommitTransaction(); return TRUE; }