protected function btnNext_Click() { $blnError = false; if ($this->intStep == 1) { if ($this->chkHeaderRow->Checked) { $this->blnHeaderRow = true; } else { $this->blnHeaderRow = false; } // Check errors if ($this->lstFieldSeparator->SelectedValue == 'other' && !$this->txtFieldSeparator->Text) { $this->flcFileCsv->Warning = "Please enter the field separator."; $blnError = true; } elseif ($this->lstTextDelimiter->SelectedValue == 'other' && !$this->txtTextDelimiter->Text) { $this->flcFileCsv->Warning = "Please enter the text delimiter."; $blnError = true; } else { // Step 1 complete // File Not Uploaded if (!file_exists($this->flcFileCsv->File) || !$this->flcFileCsv->Size) { //throw new QCallerException('FileAssetType must be a valid QFileAssetType constant value'); $this->flcFileCsv->Warning = 'The file could not be uploaded. Please provide a valid file.'; $blnError = true; // File Has Incorrect MIME Type (only if an acceptiblemimearray is setup) } elseif (is_array($this->strAcceptibleMimeArray) && !array_key_exists($this->flcFileCsv->Type, $this->strAcceptibleMimeArray)) { $this->flcFileCsv->Warning = "Extension must be 'csv' or 'txt'"; $blnError = true; // File Successfully Uploaded } else { $this->flcFileCsv->Warning = ""; // Setup Filename, Base Filename and Extension $strFilename = $this->flcFileCsv->FileName; $intPosition = strrpos($strFilename, '.'); } if (!$blnError) { $this->FileCsvData = new File_CSV_DataSource(); // Setup the settings which have got on step 1 $this->FileCsvData->settings($this->GetCsvSettings()); $file = fopen($this->flcFileCsv->File, "r"); // Counter of files $i = 1; // Counter of rows $j = 1; $this->strFilePathArray = array(); // The uploaded file splits up in order to avoid out of memory while ($row = fgets($file, 1000)) { if ($j == 1) { $strFilePath = sprintf('%s/%s_cat_%s.csv', __DOCROOT__ . __SUBDIRECTORY__ . __TRACMOR_TMP__, $_SESSION['intUserAccountId'], $i); $this->strFilePathArray[] = $strFilePath; $file_part = fopen($strFilePath, "w+"); if ($i == 1) { if ($this->blnHeaderRow) { $strHeaderRow = $row; } else { // Add empty row which would be as header row $strHeaderRow = "\n"; fwrite($file_part, $strHeaderRow); } } else { fwrite($file_part, $strHeaderRow); } } fwrite($file_part, $row); $j++; if ($j > 200) { $j = 1; $i++; fclose($file_part); } } $this->intTotalCount = ($i - 1) * 200 + $j - 1; if (true && QApplication::$TracmorSettings->AssetLimit != null && QApplication::$TracmorSettings->AssetLimit < $this->intTotalCount + Asset::CountAll()) { $blnError = true; $this->btnNext->Warning = $i . " " . $j . "Sorry that is too many assets. Your asset limit is = " . QApplication::$TracmorSettings->AssetLimit . ", this import has " . $this->intTotalCount . " assets, and you already have " . Asset::CountAll() . " assets in the database."; } else { $this->arrMapFields = array(); $this->arrTracmorField = array(); // Load first file $this->FileCsvData->load($this->strFilePathArray[0]); $file_skipped = fopen($this->strFilePath = sprintf('%s/%s_category_skipped.csv', __DOCROOT__ . __SUBDIRECTORY__ . __TRACMOR_TMP__, $_SESSION['intUserAccountId']), "w+"); // Get Headers if ($this->blnHeaderRow) { $this->arrCsvHeader = $this->FileCsvData->getHeaders(); // Create the header row in the skipped error file $this->PutSkippedRecordInFile($file_skipped, $this->arrCsvHeader); } /*else { // If it is not first file $this->FileCsvData->appendRow($this->FileCsvData->getHeaders()); }*/ $strFirstRowArray = $this->FileCsvData->getRow(0); for ($i = 0; $i < count($strFirstRowArray); $i++) { $this->arrMapFields[$i] = array(); if ($this->blnHeaderRow && array_key_exists($i, $this->arrCsvHeader)) { if ($this->arrCsvHeader[$i] == '') { $this->arrCsvHeader[$i] = ' '; } $this->lstMapHeader_Create($this, $i, $this->arrCsvHeader[$i]); $this->arrMapFields[$i]['header'] = $this->arrCsvHeader[$i]; } else { $this->lstMapHeader_Create($this, $i); } // Create Default Value TextBox, ListBox and DateTimePicker if ($this->blnHeaderRow && array_key_exists($i, $this->arrCsvHeader) && $this->arrCsvHeader[$i] || !$this->blnHeaderRow) { $txtDefaultValue = new QTextBox($this); $txtDefaultValue->Width = 200; $this->txtMapDefaultValueArray[] = $txtDefaultValue; $lstDefaultValue = new QListBox($this); $lstDefaultValue->Width = 200; $lstDefaultValue->Display = false; $this->lstMapDefaultValueArray[] = $lstDefaultValue; $dtpDate = new QDateTimePicker($this); $dtpDate->DateTimePickerType = QDateTimePickerType::Date; $dtpDate->DateTimePickerFormat = QDateTimePickerFormat::MonthDayYear; $dtpDate->Display = false; $this->dtpDateArray[] = $dtpDate; if (array_key_exists($i, $this->lstMapHeaderArray)) { $this->lstTramorField_Change(null, $this->lstMapHeaderArray[$i]->ControlId, null); } } $this->arrMapFields[$i]['row1'] = $strFirstRowArray[$i]; } $this->btnNext->Text = "Import Now"; fclose($file_skipped); // Create Add Field button $btnAddField = new QButton($this); $btnAddField->Text = "Add Field"; $btnAddField->AddAction(new QClickEvent(), new QServerAction('btnAddField_Click')); $btnAddField->AddAction(new QEnterKeyEvent(), new QServerAction('btnAddField_Click')); $btnAddField->AddAction(new QEnterKeyEvent(), new QTerminateAction()); $this->lstMapHeaderArray[] = $btnAddField; } } } } elseif ($this->intStep == 2) { // Step 2 complete $blnError = false; $blnCategory = false; $blnCategoryId = false; for ($i = 0; $i < count($this->lstMapHeaderArray) - 1; $i++) { $lstMapHeader = $this->lstMapHeaderArray[$i]; $strSelectedValue = strtolower($lstMapHeader->SelectedValue); if ($strSelectedValue == "category name") { $blnCategory = true; } elseif ($strSelectedValue == "id") { $blnCategoryId = true; } } if ($this->lstMapDefaultValueArray) { // Checking errors for required Default Value text fields foreach ($this->lstMapDefaultValueArray as $lstDefault) { if ($lstDefault->Display && $lstDefault->Required && !$lstDefault->SelectedValue) { $lstDefault->Warning = "You must select one default value."; $blnError = true; break; } else { $blnError = false; $lstDefault->Warning = ""; } } } if ($this->txtMapDefaultValueArray) { // Checking errors for required Default Value lst fields foreach ($this->txtMapDefaultValueArray as $txtDefault) { if ($txtDefault->Display && $txtDefault->Required && !$txtDefault->Text) { $txtDefault->Warning = "You must enter default value."; break; } else { $blnError = false; $txtDefault->Warning = ""; } } } // If all required fields have no errors if (!$blnError && $blnCategory && ($this->lstImportAction->SelectedValue != 2 || $blnCategoryId)) { $this->btnNext->Warning = ""; // Setup keys for main required fields foreach ($this->arrTracmorField as $key => $value) { if ($value == 'category name') { $this->intCategoryKey = $key; } elseif ($value == 'category description') { $this->intCategoryDescriptionKey = $key; } elseif ($this->lstImportAction->SelectedValue == 2 && $value == 'id') { $this->intItemIdKey = $key; } } $this->objNewCategoryArray = array(); $this->blnImportEnd = false; $j = 1; $this->btnNext->RemoveAllActions('onclick'); // Add new ajax actions for button $this->btnNext->AddAction(new QClickEvent(), new QAjaxAction('btnNext_Click')); $this->btnNext->AddAction(new QClickEvent(), new QToggleEnableAction($this->btnNext)); $this->btnNext->AddAction(new QEnterKeyEvent(), new QAjaxAction('btnNext_Click')); $this->btnNext->AddAction(new QEnterKeyEvent(), new QToggleEnableAction($this->btnNext)); $this->btnNext->AddAction(new QEnterKeyEvent(), new QTerminateAction()); $this->btnNext->Warning = "Please wait..."; $this->intImportStep = 2; $this->intCurrentFile = 0; $this->strSelectedValueArray = array(); // New categories $this->dtgCategory = new QDataGrid($this); $this->dtgCategory->Name = 'category_list'; $this->dtgCategory->CellPadding = 5; $this->dtgCategory->CellSpacing = 0; $this->dtgCategory->CssClass = "datagrid"; $this->dtgCategory->UseAjax = true; $this->dtgCategory->ShowColumnToggle = false; $this->dtgCategory->ShowExportCsv = false; $this->dtgCategory->ShowHeader = false; $this->dtgCategory->AddColumn(new QDataGridColumnExt('Category', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"')); // Updated categories $this->dtgUpdatedItems = new QDataGrid($this); $this->dtgUpdatedItems->Name = 'updated_category_list'; $this->dtgUpdatedItems->CellPadding = 5; $this->dtgUpdatedItems->CellSpacing = 0; $this->dtgUpdatedItems->CssClass = "datagrid"; $this->dtgUpdatedItems->UseAjax = true; $this->dtgUpdatedItems->ShowColumnToggle = false; $this->dtgUpdatedItems->ShowExportCsv = false; $this->dtgUpdatedItems->ShowHeader = false; $this->dtgUpdatedItems->AddColumn(new QDataGridColumnExt('Category Name', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"')); // Create the label for successful import $this->lblImportSuccess = new QLabel($this); $this->lblImportSuccess->HtmlEntities = false; $this->lblImportSuccess->Display = false; // Undo Last Import button $this->btnUndoLastImport = new QButton($this); $this->btnUndoLastImport->Text = "Undo Last Import"; $this->btnUndoLastImport->Display = false; $this->btnUndoLastImport->AddAction(new QClickEvent(), new QServerAction('btnCancel_Click')); $this->btnUndoLastImport->AddAction(new QEnterKeyEvent(), new QServerAction('btnCancel_Click')); $this->btnUndoLastImport->AddAction(new QEnterKeyEvent(), new QTerminateAction()); // Import More button $this->btnImportMore = new QButton($this); $this->btnImportMore->Text = "Import More"; $this->btnImportMore->Display = false; $this->btnImportMore->AddAction(new QClickEvent(), new QServerAction('btnImportMore_Click')); $this->btnImportMore->AddAction(new QEnterKeyEvent(), new QServerAction('btnImportMore_Click')); $this->btnImportMore->AddAction(new QEnterKeyEvent(), new QTerminateAction()); // Return to Assets button $this->btnReturnTo = new QButton($this); $this->btnReturnTo->Text = "Return to Categories"; $this->btnReturnTo->Display = false; $this->btnReturnTo->AddAction(new QClickEvent(), new QServerAction('btnReturnTo_Click')); $this->btnReturnTo->AddAction(new QEnterKeyEvent(), new QServerAction('btnReturnTo_Click')); $this->btnReturnTo->AddAction(new QEnterKeyEvent(), new QTerminateAction()); } else { $this->btnNext->Warning = "You must select all required fields."; $blnError = true; } } else { // Step 3 complete set_time_limit(0); $file_skipped = fopen($strFilePath = sprintf('%s/%s_category_skipped.csv', __DOCROOT__ . __SUBDIRECTORY__ . __TRACMOR_TMP__, $_SESSION['intUserAccountId']), "a"); if (!$this->blnImportEnd) { // Category if ($this->intImportStep == 2) { $strCategoryArray = array(); $this->objNewCategoryArray = array(); // Load all categories foreach (Category::LoadAll() as $objCategory) { $strCategoryArray[] = stripslashes($objCategory->ShortDescription); } // Add Default value $txtDefaultValue = trim($this->txtMapDefaultValueArray[$this->intCategoryKey]->Text); if ($txtDefaultValue && !$this->in_array_nocase($txtDefaultValue, $strCategoryArray)) { $strCategoryArray[] = $txtDefaultValue; $objNewCategory = new Category(); $objNewCategory->ShortDescription = addslashes($txtDefaultValue); $objNewCategory->AssetFlag = true; $objNewCategory->InventoryFlag = false; $objNewCategory->Save(); $this->objNewCategoryArray[$objNewCategory->CategoryId] = $objNewCategory->ShortDescription; } $this->btnNext->Warning = "Categories have been imported. Please wait..."; } for ($j = $this->intCurrentFile; $j < count($this->strFilePathArray); $j++) { $this->FileCsvData->load($this->strFilePathArray[$j]); if (!$j) { //$this->FileCsvData->appendRow($this->FileCsvData->getHeaders()); } // Category Import if ($this->intImportStep == 2) { $arrItemCustomField = array(); foreach ($this->arrTracmorField as $key => $value) { if (substr($value, 0, 9) == 'category_') { $intItemCustomFieldKeyArray[substr($value, 9)] = $key; if (array_key_exists(substr($value, 9), $this->arrItemCustomField)) { $arrItemCustomField[substr($value, 9)] = $this->arrItemCustomField[substr($value, 9)]; } } } $strCategoryValuesArray = array(); $strUpdatedCategoryValuesArray = array(); $strItemCFVArray = array(); $strUpdatedItemCFVArray = array(); $strNewCategoryArray = array(); $intCategoryArray = array(); $this->arrOldItemArray = array(); $this->objUpdatedItemArray = array(); $objCategoryArray = array(); foreach (Category::LoadAllWithCustomFieldsHelper() as $objCategory) { $objCategoryArray[strtolower($objCategory->ShortDescription)] = $objCategory; } for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) { $strRowArray = $this->FileCsvData->getRow($i); $objCategory = null; if ($this->lstImportAction->SelectedValue == 2) { $intItemId = intval(trim($strRowArray[$this->intItemIdKey])); foreach ($objCategoryArray as $objItem) { if ($objItem->CategoryId == $intItemId) { $objCategory = $objItem; break; } } } else { $intItemId = 0; } // Create action if (trim($strRowArray[$this->intCategoryKey]) && (!$intItemId || !$objCategory) && !$this->in_array_nocase(trim($strRowArray[$this->intCategoryKey]), $strCategoryArray)) { $strCategoryArray[] = trim($strRowArray[$this->intCategoryKey]); $strCategoryDescription = ""; if (isset($this->intCategoryDescriptionKey)) { if (trim($strRowArray[$this->intCategoryDescriptionKey])) { $strCategoryDescription = trim($strRowArray[$this->intCategoryDescriptionKey]); } else { $strCategoryDescription = isset($this->txtMapDefaultValueArray[$this->intCategoryDescriptionKey]) ? trim($this->txtMapDefaultValueArray[$this->intCategoryDescriptionKey]->Text) : ''; } } $strCFVArray = array(); $blnCheckCFVError = false; // Custom Field import foreach ($arrItemCustomField as $objCustomField) { if ($objCustomField->CustomFieldQtypeId != 2) { $strShortDescription = trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]) ? addslashes(trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]])) : addslashes($this->txtMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text); $strCFVArray[$objCustomField->CustomFieldId] = $strShortDescription ? sprintf("'%s'", $strShortDescription) : "NULL"; } else { $objDatabase = CustomField::GetDatabase(); $strShortDescription = addslashes(trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]])); $blnInList = false; foreach (CustomFieldValue::LoadArrayByCustomFieldId($objCustomField->CustomFieldId) as $objCustomFieldValue) { if (strtolower($objCustomFieldValue->ShortDescription) == strtolower($strShortDescription)) { $blnInList = true; break; } } // Add the CustomFieldValue /*if (!$blnInList && !in_array($strShortDescription, $strAddedCFVArray)) { $strQuery = sprintf("INSERT INTO custom_field_value (custom_field_id, short_description, created_by, creation_date) VALUES (%s, '%s', %s, NOW());", $objCustomField->CustomFieldId, $strShortDescription, $_SESSION['intUserAccountId']); $objDatabase->NonQuery($strQuery); $strAddedCFVArray[] = $strShortDescription; } else*/ if (!$blnInList && $this->lstMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue != null) { $strShortDescription = $this->lstMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedName; } elseif (!$blnInList) { $blnCheckCFVError = true; break; } if (!$blnCheckCFVError) { if ($strShortDescription) { $strCFVArray[$objCustomField->CustomFieldId] = sprintf("'%s'", $strShortDescription); } else { $strCFVArray[$objCustomField->CustomFieldId] = "NULL"; } } } } if (!$blnCheckCFVError) { if (isset($strCFVArray) && count($strCFVArray)) { $strItemCFVArray[] = implode(', ', $strCFVArray); } else { $strItemCFVArray[] = ""; } $strCategoryValuesArray[] = sprintf("('%s', '%s', '1', '1', '%s', NOW())", addslashes(trim($strRowArray[$this->intCategoryKey])), addslashes($strCategoryDescription), $_SESSION['intUserAccountId']); $strNewCategoryArray[] = addslashes(trim($strRowArray[$this->intCategoryKey])); } } elseif (trim($strRowArray[$this->intCategoryKey]) && $this->lstImportAction->SelectedValue == 2 && !$this->in_array_nocase(trim($strRowArray[$this->intCategoryKey]), $this->objUpdatedItemArray) && $objCategory) { if (!$blnError) { //$objCategory = $objCategoryArray[strtolower(trim($strRowArray[$this->intCategoryKey]))]; $strCategoryDescription = ""; if (isset($this->intCategoryDescriptionKey)) { if (trim($strRowArray[$this->intCategoryDescriptionKey])) { $strCategoryDescription = trim($strRowArray[$this->intCategoryDescriptionKey]); } else { $strCategoryDescription = isset($this->txtMapDefaultValueArray[$this->intCategoryDescriptionKey]) ? trim($this->txtMapDefaultValueArray[$this->intCategoryDescriptionKey]->Text) : ''; } } $this->arrOldItemArray[$objCategory->CategoryId] = $objCategory; $blnCheckCFVError = false; foreach ($arrItemCustomField as $objCustomField) { //$objItem = $objCategoryArray[strtolower($objUpdatedItem)]; if ($objCustomField->CustomFieldQtypeId != 2) { $strShortDescription = trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]) ? addslashes(trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]])) : addslashes($this->txtMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text); $strCFVArray[$objCustomField->CustomFieldId] = $strShortDescription ? sprintf("'%s'", $strShortDescription) : "NULL"; } else { $objDatabase = CustomField::GetDatabase(); $strShortDescription = addslashes(trim($strRowArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]])); $strCFVArray[$objCustomField->CustomFieldId] = $strShortDescription ? sprintf("'%s'", $strShortDescription) : "NULL"; $blnInList = false; foreach (CustomFieldValue::LoadArrayByCustomFieldId($objCustomField->CustomFieldId) as $objCustomFieldValue) { if (strtolower($objCustomFieldValue->ShortDescription) == strtolower($strShortDescription)) { //$intItemKeyntCustomFieldValueId = $objCustomFieldValue->CustomFieldValueId; $blnInList = true; break; } } // Add the CustomFieldValue /*if (!$blnInList && !in_array($strShortDescription, $strAddedCFVArray)) { $strQuery = sprintf("INSERT INTO custom_field_value (custom_field_id, short_description, created_by, creation_date) VALUES (%s, '%s', %s, NOW());", $objCustomField->CustomFieldId, $strShortDescription, $_SESSION['intUserAccountId']); $objDatabase->NonQuery($strQuery); $strAddedCFVArray[] = $strShortDescription; } else*/ if (!$blnInList && $this->lstMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue != null) { $strShortDescription = $this->lstMapDefaultValueArray[$intItemCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedName; } elseif (!$blnInList) { $blnCheckCFVError = true; break; } if (!$blnCheckCFVError) { if ($strShortDescription) { $strCFVArray[$objCustomField->CustomFieldId] = sprintf("'%s'", $strShortDescription); } else { $strCFVArray[$objCustomField->CustomFieldId] = "NULL"; } } } } if (!$blnCheckCFVError) { if (isset($strCFVArray) && count($strCFVArray)) { $strUpdatedItemCFVArray[$objCategory->CategoryId] = $strCFVArray; } else { $strUpdatedItemCFVArray[$objCategory->CategoryId] = ""; } $strUpdatedCategoryValuesArray[] = sprintf("UPDATE `category` SET `short_description`='%s', `long_description`='%s' WHERE `category_id`='%s'", addslashes(trim($strRowArray[$this->intCategoryKey])), addslashes($strCategoryDescription), $objCategory->CategoryId); $this->objUpdatedItemArray[$objCategory->CategoryId] = $objCategory->ShortDescription; } } else { $this->intSkippedRecordCount++; $this->PutSkippedRecordInFile($file_skipped, $strRowArray); } } else { $this->intSkippedRecordCount++; $this->PutSkippedRecordInFile($file_skipped, $strRowArray); } } if (count($strCategoryValuesArray)) { $objDatabase = Category::GetDatabase(); $objDatabase->NonQuery(sprintf("INSERT INTO `category` (`short_description`, `long_description`, `asset_flag`, `inventory_flag`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $strCategoryValuesArray))); $intStartId = $objDatabase->InsertId(); $strItemIdArray = array(); for ($i = 0; $i < count($strNewCategoryArray); $i++) { $this->objNewCategoryArray[$intStartId + $i] = $strNewCategoryArray[$i]; $objDatabase = CustomField::GetDatabase(); $strItemCFVArray[$i] = sprintf("('%s', %s)", $intStartId + $i, $strItemCFVArray[$i]); $strItemIdArray[$i] = sprintf("(%s)", $intStartId + $i); } $strCFVNameArray = array(); foreach ($arrItemCustomField as $objCustomField) { $strCFVNameArray[] = sprintf("`cfv_%s`", $objCustomField->CustomFieldId); } if (count($strItemCFVArray) > 0 && count($strCFVNameArray) > 0) { $strQuery = sprintf("INSERT INTO `category_custom_field_helper` (`category_id`, %s) VALUES %s", implode(", ", $strCFVNameArray), implode(", ", $strItemCFVArray)); } else { $strQuery = sprintf("INSERT INTO `category_custom_field_helper` (`category_id`) VALUES %s", implode(", ", $strItemIdArray)); } $objDatabase->NonQuery($strQuery); } if (count($strUpdatedCategoryValuesArray)) { $objDatabase = Category::GetDatabase(); foreach ($strUpdatedCategoryValuesArray as $query) { $objDatabase->NonQuery($query); } foreach ($this->objUpdatedItemArray as $intItemKey => $objUpdatedItem) { if (isset($strUpdatedItemCFVArray[$intItemKey]) && count($strUpdatedItemCFVArray[$intItemKey])) { $strCFVArray = array(); foreach ($arrItemCustomField as $objCustomField) { $strCFVArray[] = sprintf("`cfv_%s`=%s", $objCustomField->CustomFieldId, $strUpdatedItemCFVArray[$intItemKey][$objCustomField->CustomFieldId]); } if (isset($strCFVArray) && count($strCFVArray)) { $strQuery = sprintf("UPDATE `category_custom_field_helper` SET %s WHERE `category_id`='%s'", implode(", ", $strCFVArray), $intItemKey); $objDatabase->NonQuery($strQuery); } } } } $this->intImportStep = 6; // The import have been completed } } if ($this->intImportStep == 6) { $this->blnImportEnd = true; $this->btnNext->Warning = ""; $this->lblImportResults->Display = true; if (count($this->objUpdatedItemArray)) { $this->lblImportUpdatedItems->Display = true; $this->dtgUpdatedItems->Paginator = new QPaginator($this->dtgUpdatedItems); $this->dtgUpdatedItems->ItemsPerPage = 20; } if (count($this->objNewCategoryArray)) { $this->lblImportCategories->Display = true; $this->dtgCategory->Paginator = new QPaginator($this->dtgCategory); $this->dtgCategory->ItemsPerPage = 20; } $this->btnNext->Display = false; $this->btnCancel->Display = false; $this->btnUndoLastImport->Display = true; $this->btnImportMore->Display = true; $this->btnReturnTo->Display = true; $this->lblImportSuccess->Display = true; $this->lblImportSuccess->Text = sprintf("Success:<br/>" . "<b>%s</b> Records imported successfully<br/>" . "<b>%s</b> Records skipped due to error<br/>", count($this->objNewCategoryArray) + count($this->objUpdatedItemArray), $this->intSkippedRecordCount); if ($this->intSkippedRecordCount) { $this->lblImportSuccess->Text .= sprintf("<a href='./category_import.php?intDownloadCsv=1'>Click here to download records that could not be imported</a>"); } $this->lblImportSuccess->Text .= "<br/><br/>"; $this->intImportStep = -1; } // Enable Next button $this->btnNext->Enabled = true; if (!$this->blnImportEnd && !$this->intCurrentFile) { $this->intImportStep++; } } fclose($file_skipped); } if (!$blnError) { if (($this->blnImportEnd || $this->intImportStep == 2) && $this->intImportStep != -1) { $this->intStep++; $this->DisplayStepForm($this->intStep); } if (!$this->blnImportEnd) { QApplication::ExecuteJavaScript("document.getElementById('" . $this->btnNext->ControlId . "').click();"); } if (!($this->intCurrentFile < count($this->strFilePathArray))) { $this->intCurrentFile = 0; $this->intImportStep++; } } }
protected function dtgCategory_Bind() { $objExpansionMap[Category::ExpandCreatedByObject] = true; // Get Total Count b/c of Pagination $this->dtgCategory->TotalItemCount = Category::CountAll(); if ($this->dtgCategory->TotalItemCount == 0) { $this->dtgCategory->ShowHeader = false; } else { /* $objClauses = array(); if ($objClause = $this->dtgCategory->OrderByClause) array_push($objClauses, $objClause); if ($objClause = $this->dtgCategory->LimitClause) array_push($objClauses, $objClause); if ($objClause = QQ::Expand(QQN::Category()->CreatedByObject)) array_push($objClauses, $objClause); $this->dtgCategory->DataSource = Category::LoadAll($objClauses); $this->dtgCategory->ShowHeader = true;*/ $this->dtgCategory->DataSource = Category::LoadAllWithCustomFieldsHelper($this->dtgCategory->SortInfo, $this->dtgCategory->LimitInfo, $objExpansionMap); $this->dtgCategory->ShowHeader = true; } }