public function addRecordToDB($columnNames, $fieldValues) { $db = PearDatabase::getInstance(); $tableName = Import_Utils_Helper::getDbTableName($this->user); $db->pquery('INSERT INTO ' . $tableName . ' (' . implode(',', $columnNames) . ') VALUES (' . generateQuestionMarks($fieldValues) . ')', $fieldValues); $this->numberOfRecordsRead++; }
public static function getImportDetails($user) { $adb = PearDatabase::getInstance(); $tableName = Import_Utils_Helper::getDbTableName($user); $result = $adb->pquery("SELECT * FROM {$tableName} where status IN (?,?)", array(self::$IMPORT_RECORD_SKIPPED, self::$IMPORT_RECORD_FAILED)); $importRecords = array(); if ($result) { $headers = $adb->getColumnNames($tableName); $numOfHeaders = count($headers); for ($i = 0; $i < 10; $i++) { if ($i >= 3 && $i < $numOfHeaders) { $importRecords['headers'][] = $headers[$i]; } } $noOfRows = $adb->num_rows($result); for ($i = 0; $i < $noOfRows; ++$i) { $row = $adb->fetchByAssoc($result, $i); $record = new Vtiger_Base_Model(); foreach ($importRecords['headers'] as $header) { $record->set($header, $row[$header]); } if ($row['status'] == self::$IMPORT_RECORD_SKIPPED) { $importRecords['skipped'][] = $record; } else { $importRecords['failed'][] = $record; } } return $importRecords; } }
public function getLastImportedRecord() { $db = PearDatabase::getInstance(); $user = Users_Record_Model::getCurrentUserModel(); $userDBTableName = Import_Utils_Helper::getDbTableName($user); $result = $db->pquery('SELECT recordid FROM ' . $userDBTableName . ' WHERE status NOT IN (?,?) AND recordid IS NOT NULL', array(Import_Data_Action::$IMPORT_RECORD_FAILED, Import_Data_Action::$IMPORT_RECORD_SKIPPED)); $noOfRecords = $db->num_rows($result); $importedRecordIds = array(); for ($i = 0; $i < $noOfRecords; ++$i) { $importedRecordIds[] = $db->query_result($result, $i, 'recordid'); } return $importedRecordIds; }
function undoLastImport($obj, $user) { $adb = PearDatabase::getInstance(); $moduleName = $obj->get('module'); $ownerId = $obj->get('foruser'); $owner = new Users(); $owner->id = $ownerId; $owner->retrieve_entity_info($ownerId, 'Users'); $dbTableName = Import_Utils_Helper::getDbTableName($owner); if (!is_admin($user) && $user->id != $owner->id) { $viewer = new Vtiger_Viewer(); $viewer->view('OperationNotPermitted.tpl', 'Vtiger'); exit; } $result = $adb->query("SELECT recordid FROM {$dbTableName} WHERE temp_status = " . Import_Data_Controller::$IMPORT_RECORD_CREATED . " AND recordid IS NOT NULL;"); $noOfRecords = $adb->num_rows($result); $noOfRecordsDeleted = 0; for ($i = 0; $i < $noOfRecords; ++$i) { $recordId = $adb->query_result($result, $i, 'recordid'); if (isRecordExists($recordId) && isPermitted($moduleName, 'Delete', $recordId) == 'yes') { $focus = CRMEntity::getInstance($moduleName); $focus->id = $recordId; $focus->trash($moduleName, $recordId); $noOfRecordsDeleted++; } } $viewer = new Vtiger_Viewer(); $viewer->assign('FOR_MODULE', $moduleName); $viewer->assign('TOTAL_RECORDS', $noOfRecords); $viewer->assign('DELETED_RECORDS_COUNT', $noOfRecordsDeleted); $viewer->view('ImportUndoResult.tpl'); }
function undoImport(Vtiger_Request $request) { $viewer = new Vtiger_Viewer(); $db = PearDatabase::getInstance(); $moduleName = $request->getModule(); $ownerId = $request->get('foruser'); $user = Users_Record_Model::getCurrentUserModel(); $dbTableName = Import_Utils_Helper::getDbTableName($user); if (!$user->isAdminUser() && $user->id != $ownerId) { $viewer->assign('MESSAGE', 'LBL_PERMISSION_DENIED'); $viewer->view('OperationNotPermitted.tpl', 'Vtiger'); exit; } $previousBulkSaveMode = $VTIGER_BULK_SAVE_MODE; $VTIGER_BULK_SAVE_MODE = true; $query = "SELECT recordid FROM {$dbTableName} WHERE temp_status = ? AND recordid IS NOT NULL"; //For inventory modules $inventoryModules = getInventoryModules(); if (in_array($moduleName, $inventoryModules)) { $query .= ' GROUP BY subject'; } //End $result = $db->pquery($query, array(Import_Data_Action::$IMPORT_RECORD_CREATED)); $noOfRecords = $db->num_rows($result); $noOfRecordsDeleted = 0; $entityData = array(); for ($i = 0; $i < $noOfRecords; $i++) { $recordId = $db->query_result($result, $i, 'recordid'); if (isRecordExists($recordId) && isPermitted($moduleName, 'Delete', $recordId) == 'yes') { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $recordModel->setId($recordId); $recordModel->delete(); $focus = $recordModel->getEntity(); $focus->id = $recordId; $entityData[] = VTEntityData::fromCRMEntity($focus); $noOfRecordsDeleted++; } } $entity = new VTEventsManager($db); $entity->triggerEvent('vtiger.batchevent.delete', $entityData); $VTIGER_BULK_SAVE_MODE = $previousBulkSaveMode; $viewer->assign('FOR_MODULE', $moduleName); $viewer->assign('MODULE', 'Import'); $viewer->assign('TOTAL_RECORDS', $noOfRecords); $viewer->assign('DELETED_RECORDS_COUNT', $noOfRecordsDeleted); $viewer->view('ImportUndoResult.tpl', 'Import'); }