public function Save()
 {
     if (empty($this->category_class)) {
         $this->class = 'folder';
     }
     parent::Save();
 }
Exemple #2
0
function cate()
{
    for ($i = 0; $i < 1000; $i++) {
        $cate = new Category();
        $cate->Name = getRandStr(mt_rand(2, 4));
        $cate->Save();
    }
}
Exemple #3
0
 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_%s.csv', __DOCROOT__ . __SUBDIRECTORY__ . __TRACMOR_TMP__, $_SESSION['intUserAccountId'], $i);
                         $this->strFilePathArray[] = $strFilePath;
                         $file_part = fopen($strFilePath, "w+");
                         if ($i == 1) {
                             $strHeaderRow = $row;
                         } 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 (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_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;
         $blnAssetCode = false;
         $blnLocation = false;
         $blnAssetModelCode = false;
         $blnAssetModelShortDescription = false;
         $blnCategory = false;
         $blnManufacturer = false;
         // Checking errors (Location, Asset Code, Model Short Description, Model Code, Category and Manufacturer must be selected)
         for ($i = 0; $i < count($this->lstMapHeaderArray) - 1; $i++) {
             $lstMapHeader = $this->lstMapHeaderArray[$i];
             $strSelectedValue = strtolower($lstMapHeader->SelectedValue);
             if ($strSelectedValue == "location") {
                 $blnLocation = true;
             } elseif ($strSelectedValue == "asset code") {
                 $blnAssetCode = true;
             } elseif ($strSelectedValue == "asset model short description") {
                 $blnAssetModelShortDescription = true;
             } elseif ($strSelectedValue == "asset model code") {
                 $blnAssetModelCode = true;
             } elseif ($strSelectedValue == "category") {
                 $blnCategory = true;
             } elseif ($strSelectedValue == "manufacturer") {
                 $blnManufacturer = 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 && $blnAssetCode && $blnAssetModelCode && $blnAssetModelShortDescription && $blnLocation && $blnCategory && $blnManufacturer) {
             $this->btnNext->Warning = "";
             // Setup keys for main required fields
             foreach ($this->arrTracmorField as $key => $value) {
                 if ($value == 'location') {
                     $this->intLocationKey = $key;
                 } elseif ($value == 'category') {
                     $this->intCategoryKey = $key;
                 } elseif ($value == 'manufacturer') {
                     $this->intManufacturerKey = $key;
                 } elseif ($value == 'created by') {
                     $this->intCreatedByKey = $key;
                 } elseif ($value == 'created date') {
                     $this->intCreatedDateKey = $key;
                 } elseif ($value == 'modified by') {
                     $this->intModifiedByKey = $key;
                 } elseif ($value == 'modified date') {
                     $this->intModifiedDateKey = $key;
                 }
             }
             $strLocationArray = array();
             $strNewLocationArray = array();
             // Load all locations
             foreach (Location::LoadAll() as $objLocation) {
                 $strLocationArray[] = stripslashes($objLocation->ShortDescription);
             }
             $txtDefaultValue = trim($this->txtMapDefaultValueArray[$this->intLocationKey]->Text);
             // Add default value in database if it is not exist
             if ($txtDefaultValue && !$this->in_array_nocase($txtDefaultValue, $strLocationArray)) {
                 $strLocationArray[] = $txtDefaultValue;
                 $objNewLocation = new Location();
                 $objNewLocation->ShortDescription = addslashes($txtDefaultValue);
                 $objNewLocation->EnabledFlag = 1;
                 $objNewLocation->Save();
                 $this->objNewLocationArray[$objNewLocation->LocationId] = $objNewLocation->ShortDescription;
             }
             $this->objNewLocationArray = array();
             $this->objNewCategoryArray = array();
             $this->objNewManufacturerArray = array();
             $this->objNewAssetModelArray = array();
             $this->strModelValuesArray = array();
             $this->blnImportEnd = false;
             $j = 1;
             $strLocationValuesArray = array();
             // Add all unique locations in database
             foreach ($this->strFilePathArray as $strFilePath) {
                 $this->FileCsvData->load($strFilePath);
                 if ($j != 1) {
                     //$this->FileCsvData->appendRow($this->FileCsvData->getHeaders());
                 }
                 // Location Import
                 for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) {
                     $strRowArray = $this->FileCsvData->getRow($i);
                     if (trim($strRowArray[$this->intLocationKey]) && !$this->in_array_nocase(trim($strRowArray[$this->intLocationKey]), $strLocationArray)) {
                         $strLocationArray[] = trim($strRowArray[$this->intLocationKey]);
                         /*$objNewLocation = new Location();
                           $objNewLocation->ShortDescription = addslashes(trim($strRowArray[$this->intLocationKey]));
                           $objNewLocation->Save();*/
                         $strLocationValuesArray[] = sprintf("('%s', '%s', NOW())", addslashes(trim($strRowArray[$this->intLocationKey])), $_SESSION['intUserAccountId']);
                         $strNewLocation[] = addslashes(trim($strRowArray[$this->intLocationKey]));
                         //$this->objNewLocationArray[$objNewLocation->LocationId] = $objNewLocation->ShortDescription;
                     }
                 }
                 $j++;
             }
             if (count($strLocationValuesArray)) {
                 $objDatabase = Location::GetDatabase();
                 $objDatabase->NonQuery(sprintf("INSERT INTO `location` (`short_description`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $strLocationValuesArray)));
                 $intStartId = $objDatabase->InsertId();
                 for ($i = 0; $i < count($strNewLocation); $i++) {
                     $this->objNewLocationArray[$intStartId + $i] = $strNewLocation[$i];
                 }
             }
             $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 = "Locations have been imported. Please wait...";
             $this->intImportStep = 2;
             $this->intCurrentFile = 0;
             $this->strSelectedValueArray = array();
             // New locations
             $this->dtgLocation = new QDataGrid($this);
             $this->dtgLocation->Name = 'location_list';
             $this->dtgLocation->CellPadding = 5;
             $this->dtgLocation->CellSpacing = 0;
             $this->dtgLocation->CssClass = "datagrid";
             $this->dtgLocation->UseAjax = true;
             $this->dtgLocation->ShowColumnToggle = false;
             $this->dtgLocation->ShowExportCsv = false;
             $this->dtgLocation->ShowHeader = false;
             $this->dtgLocation->AddColumn(new QDataGridColumnExt('Location', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"'));
             // 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('Manufacturer', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"'));
             // New manufacturers
             $this->dtgManufacturer = new QDataGrid($this);
             $this->dtgManufacturer->Name = 'manufacturer_list';
             $this->dtgManufacturer->CellPadding = 5;
             $this->dtgManufacturer->CellSpacing = 0;
             $this->dtgManufacturer->CssClass = "datagrid";
             $this->dtgManufacturer->UseAjax = true;
             $this->dtgManufacturer->ShowColumnToggle = false;
             $this->dtgManufacturer->ShowExportCsv = false;
             $this->dtgManufacturer->ShowHeader = false;
             $this->dtgManufacturer->AddColumn(new QDataGridColumnExt('Manufacturer', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"'));
             // New asset models
             $this->dtgAssetModel = new QDataGrid($this);
             $this->dtgAssetModel->Name = 'asset_model_list';
             $this->dtgAssetModel->CellPadding = 5;
             $this->dtgAssetModel->CellSpacing = 0;
             $this->dtgAssetModel->CssClass = "datagrid";
             $this->dtgAssetModel->UseAjax = true;
             $this->dtgAssetModel->ShowColumnToggle = false;
             $this->dtgAssetModel->ShowExportCsv = false;
             $this->dtgAssetModel->ShowHeader = false;
             $this->dtgAssetModel->AddColumn(new QDataGridColumnExt('Model', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"'));
             // New assets
             $this->dtgAsset = new QDataGrid($this);
             $this->dtgAsset->Name = 'asset_list';
             $this->dtgAsset->CellPadding = 5;
             $this->dtgAsset->CellSpacing = 0;
             $this->dtgAsset->CssClass = "datagrid";
             $this->dtgAsset->UseAjax = true;
             $this->dtgAsset->ShowColumnToggle = false;
             $this->dtgAsset->ShowExportCsv = false;
             $this->dtgAsset->ShowHeader = false;
             $this->dtgAsset->AddColumn(new QDataGridColumnExt('Asset Tag', '<?= $_ITEM ?>', 'CssClass="dtg_column"', 'HtmlEntities="false"'));
             // Updated assets
             $this->dtgUpdatedAsset = new QDataGrid($this);
             $this->dtgUpdatedAsset->Name = 'updated_asset_list';
             $this->dtgUpdatedAsset->CellPadding = 5;
             $this->dtgUpdatedAsset->CellSpacing = 0;
             $this->dtgUpdatedAsset->CssClass = "datagrid";
             $this->dtgUpdatedAsset->UseAjax = true;
             $this->dtgUpdatedAsset->ShowColumnToggle = false;
             $this->dtgUpdatedAsset->ShowExportCsv = false;
             $this->dtgUpdatedAsset->ShowHeader = false;
             $this->dtgUpdatedAsset->AddColumn(new QDataGridColumnExt('Asset Tag', '<?= $_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->btnReturnToAssets = new QButton($this);
             $this->btnReturnToAssets->Text = "Return to Assets";
             $this->btnReturnToAssets->Display = false;
             $this->btnReturnToAssets->AddAction(new QClickEvent(), new QServerAction('btnReturnToAssets_Click'));
             $this->btnReturnToAssets->AddAction(new QEnterKeyEvent(), new QServerAction('btnReturnToAssets_Click'));
             $this->btnReturnToAssets->AddAction(new QEnterKeyEvent(), new QTerminateAction());
         } else {
             $this->btnNext->Warning = "You must select all required fields (Asset Tag, Model Number, Model Short Description, Location, Category and Manufacturer).";
             $blnError = true;
         }
     } else {
         // Step 3 complete
         set_time_limit(0);
         $file_skipped = fopen($strFilePath = sprintf('%s/%s_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...";
             } elseif ($this->intImportStep == 3) {
                 $strManufacturerArray = array();
                 $this->objNewManufacturerArray = array();
                 // Load all manufacturers
                 foreach (Manufacturer::LoadAll() as $objManufacturer) {
                     $strManufacturerArray[] = stripslashes($objManufacturer->ShortDescription);
                 }
                 $txtDefaultValue = trim($this->txtMapDefaultValueArray[$this->intManufacturerKey]->Text);
                 // Add Default Value
                 if ($txtDefaultValue && !$this->in_array_nocase($txtDefaultValue, $strManufacturerArray)) {
                     $strManufacturerArray[] = $txtDefaultValue;
                     $objNewManufacturer = new Manufacturer();
                     $objNewManufacturer->ShortDescription = addslashes($txtDefaultValue);
                     $objNewManufacturer->Save();
                     $this->objNewManufacturerArray[$objNewManufacturer->ManufacturerId] = $objNewManufacturer->ShortDescription;
                 }
                 $this->btnNext->Warning = "Manufacturers have been imported. Please wait...";
             } elseif ($this->intImportStep == 4) {
                 $intCategoryArray = array();
                 // Load all categories with keys=category_id
                 foreach (Category::LoadAllWithFlags(true, false) as $objCategory) {
                     //$intCategoryArray["'" . strtolower($objCategory->ShortDescription) . "'"] = $objCategory->CategoryId;
                     $intCategoryArray[$objCategory->CategoryId] = strtolower($objCategory->ShortDescription);
                 }
                 $intManufacturerArray = array();
                 // Load all manufacturers with keys=manufacturer_id
                 foreach (Manufacturer::LoadAll() as $objManufacturer) {
                     //$intManufacturerArray["'" . strtolower($objManufacturer->ShortDescription) . "'"] = $objManufacturer->ManufacturerId;
                     $intManufacturerArray[$objManufacturer->ManufacturerId] = strtolower($objManufacturer->ShortDescription);
                 }
                 $intModelCustomFieldKeyArray = array();
                 $arrAssetModelCustomField = array();
                 // Setup keys
                 foreach ($this->arrTracmorField as $key => $value) {
                     if ($value == 'asset model short description') {
                         $intModelShortDescriptionKey = $key;
                     } elseif ($value == 'asset model long description') {
                         $intModelLongDescriptionKey = $key;
                     } elseif ($value == 'asset model code') {
                         $intModelCodeKey = $key;
                     } elseif ($value == 'asset code') {
                         $intAssetCode = $key;
                     } elseif (substr($value, 0, 6) == 'model_') {
                         $intModelCustomFieldKeyArray[substr($value, 6)] = $key;
                         if (array_key_exists(substr($value, 6), $this->arrAssetCustomField)) {
                             $arrAssetModelCustomField[substr($value, 6)] = $this->arrAssetCustomField[substr($value, 6)];
                         }
                     }
                 }
                 $strAssetModelArray = array();
                 // Load all asset models
                 foreach (AssetModel::LoadAll() as $objAssetModel) {
                     $strAssetModelArray[] = strtolower(sprintf("%s_%s_%s_%s", $objAssetModel->AssetModelCode, $objAssetModel->ShortDescription, $objAssetModel->CategoryId, $objAssetModel->ManufacturerId));
                 }
                 $this->btnNext->Warning = sprintf("Please wait... Model import complete: %s%s", ceil(($this->intCurrentFile + 1) * 200 / $this->intTotalCount * 100), "%");
             } elseif ($this->intImportStep == 5) {
                 $intCategoryArray = array();
                 // Load all categories with keys=category_id
                 foreach (Category::LoadAllWithFlags(true, false) as $objCategory) {
                     //$intCategoryArray["'" . strtolower($objCategory->ShortDescription) . "'"] = $objCategory->CategoryId;
                     $intCategoryArray[$objCategory->CategoryId] = strtolower($objCategory->ShortDescription);
                 }
                 $intManufacturerArray = array();
                 // Load all manufacturers with keys=manufacturer_id
                 foreach (Manufacturer::LoadAll() as $objManufacturer) {
                     //$intManufacturerArray["'" . strtolower($objManufacturer->ShortDescription) . "'"] = $objManufacturer->ManufacturerId;
                     $intManufacturerArray[$objManufacturer->ManufacturerId] = strtolower($objManufacturer->ShortDescription);
                 }
                 if ($this->intCurrentFile == 0) {
                     $this->intAssetModelArray = array();
                     // Load all asset models with keys=asset_model_id
                     foreach (AssetModel::LoadAll() as $objAssetModel) {
                         //$intAssetModelArray["'" . strtolower($objAssetModel->ShortDescription) . "'"] = $objAssetModel->AssetModelId;
                         $this->intAssetModelArray[$objAssetModel->AssetModelId] = strtolower(sprintf("%s_%s_%s_%s", $objAssetModel->AssetModelCode, $objAssetModel->ShortDescription, $objAssetModel->CategoryId, $objAssetModel->ManufacturerId));
                     }
                 }
                 $intAssetCustomFieldKeyArray = array();
                 $arrAssetCustomField = array();
                 // Setup keys
                 foreach ($this->arrTracmorField as $key => $value) {
                     if ($value == 'asset model short description') {
                         $intModelShortDescriptionKey = $key;
                     } elseif ($value == 'asset model code') {
                         $intModelCodeKey = $key;
                     } elseif ($value == 'asset code') {
                         $intAssetCode = $key;
                     } elseif (substr($value, 0, 6) == 'asset_') {
                         $intAssetCustomFieldKeyArray[substr($value, 6)] = $key;
                         if (array_key_exists(substr($value, 6), $this->arrAssetCustomField)) {
                             $arrAssetCustomField[substr($value, 6)] = $this->arrAssetCustomField[substr($value, 6)];
                         }
                     }
                 }
                 $intLocationArray = array();
                 // Load all locations with keys=location_id
                 foreach (Location::LoadAll() as $objLocation) {
                     //$intLocationArray["'" . strtolower($objLocation->ShortDescription) . "'"] = $objLocation->LocationId;
                     $intLocationArray[$objLocation->LocationId] = strtolower($objLocation->ShortDescription);
                 }
                 $strAssetArray = array();
                 $strUpdatedAssetArray = array();
                 // Load all assets
                 foreach (Asset::LoadAll() as $objAsset) {
                     $strAssetArray[] = strtolower($objAsset->AssetCode);
                 }
                 $this->btnNext->Warning = sprintf("Please wait... Asset import complete: %s%s", ceil(($this->intCurrentFile + 1) * 200 / $this->intTotalCount * 100), "%");
             }
             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) {
                     $strCategoryValuesArray = array();
                     $strNewCategoryArray = array();
                     for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) {
                         $strRowArray = $this->FileCsvData->getRow($i);
                         if (trim($strRowArray[$this->intCategoryKey]) && !$this->in_array_nocase(trim($strRowArray[$this->intCategoryKey]), $strCategoryArray)) {
                             $strCategoryArray[] = trim($strRowArray[$this->intCategoryKey]);
                             /*$objNewCategory = new Category();
                               $objNewCategory->ShortDescription = addslashes(trim($strRowArray[$this->intCategoryKey]));
                               $objNewCategory->AssetFlag = true;
                               $objNewCategory->InventoryFlag = false;
                               $objNewCategory->Save();
                               $this->objNewCategoryArray[$objNewCategory->CategoryId] = $objNewCategory->ShortDescription;*/
                             $strCategoryValuesArray[] = sprintf("('%s', '1', '0', '%s', NOW())", addslashes(trim($strRowArray[$this->intCategoryKey])), $_SESSION['intUserAccountId']);
                             $strNewCategoryArray[] = addslashes(trim($strRowArray[$this->intCategoryKey]));
                         }
                     }
                     if (count($strCategoryValuesArray)) {
                         $objDatabase = Category::GetDatabase();
                         $objDatabase->NonQuery(sprintf("INSERT INTO `category` (`short_description`, `asset_flag`, `inventory_flag`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $strCategoryValuesArray)));
                         $intStartId = $objDatabase->InsertId();
                         for ($i = 0; $i < count($strNewCategoryArray); $i++) {
                             $this->objNewCategoryArray[$intStartId + $i] = $strNewCategoryArray[$i];
                         }
                     }
                 } elseif ($this->intImportStep == 3) {
                     $strManufacturerValuesArray = array();
                     $strNewManufacturerArray = array();
                     for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) {
                         $strRowArray = $this->FileCsvData->getRow($i);
                         if (trim($strRowArray[$this->intManufacturerKey]) && !$this->in_array_nocase(trim($strRowArray[$this->intManufacturerKey]), $strManufacturerArray)) {
                             $strManufacturerArray[] = trim($strRowArray[$this->intManufacturerKey]);
                             /*$objNewManufacturer = new Manufacturer();
                               $objNewManufacturer->ShortDescription = addslashes(trim($strRowArray[$this->intManufacturerKey]));
                               $objNewManufacturer->Save();
                               $this->objNewManufacturerArray[$objNewManufacturer->ManufacturerId] = $objNewManufacturer->ShortDescription;*/
                             $strManufacturerValuesArray[] = sprintf("('%s', '%s', NOW())", addslashes(trim($strRowArray[$this->intManufacturerKey])), $_SESSION['intUserAccountId']);
                             $strNewManufacturerArray[] = addslashes(trim($strRowArray[$this->intManufacturerKey]));
                         }
                     }
                     if (count($strManufacturerValuesArray)) {
                         $objDatabase = Manufacturer::GetDatabase();
                         $objDatabase->NonQuery(sprintf("INSERT INTO `manufacturer` (`short_description`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $strManufacturerValuesArray)));
                         $intStartId = $objDatabase->InsertId();
                         for ($i = 0; $i < count($strNewManufacturerArray); $i++) {
                             $this->objNewManufacturerArray[$intStartId + $i] = $strNewManufacturerArray[$i];
                         }
                     }
                 } elseif ($this->intImportStep == 4) {
                     $objNewAssetModelArray = array();
                     for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) {
                         $strRowArray = $this->FileCsvData->getRow($i);
                         $strShortDescription = trim($strRowArray[$intModelShortDescriptionKey]) ? addslashes(trim($strRowArray[$intModelShortDescriptionKey])) : false;
                         $strAssetModelCode = trim($strRowArray[$intModelCodeKey]) ? addslashes(trim($strRowArray[$intModelCodeKey])) : addslashes(trim($this->txtMapDefaultValueArray[$intModelCodeKey]->Text));
                         $strKeyArray = array_keys($intCategoryArray, addslashes(strtolower(trim($strRowArray[$this->intCategoryKey]))));
                         if (count($strKeyArray)) {
                             $intCategoryId = $strKeyArray[0];
                         } else {
                             $strKeyArray = array_keys($intCategoryArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intCategoryKey]->Text))));
                             if (count($strKeyArray)) {
                                 $intCategoryId = $strKeyArray[0];
                             } else {
                                 $intCategoryId = false;
                             }
                         }
                         $strKeyArray = array_keys($intManufacturerArray, addslashes(strtolower(trim($strRowArray[$this->intManufacturerKey]))));
                         if (count($strKeyArray)) {
                             $intManufacturerId = $strKeyArray[0];
                         } else {
                             $strKeyArray = array_keys($intManufacturerArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intManufacturerKey]->Text))));
                             if (count($strKeyArray)) {
                                 $intManufacturerId = $strKeyArray[0];
                             } else {
                                 $intManufacturerId = false;
                             }
                         }
                         if (!$strShortDescription || $intCategoryId === false || $intManufacturerId === false) {
                             //$blnError = true;
                             //$this->intSkippedRecordCount++;
                             //$this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                             //echo sprintf("Desc: %s AssetCode: %s Cat: %s Man: %s<br/>", $strShortDescription, $strAssetModelCode, $intCategoryId, $intManufacturerId);
                             //break;
                             $strAssetModel = null;
                         } else {
                             //$blnError = false;
                             $strAssetModel = strtolower(sprintf("%s_%s_%s_%s", $strAssetModelCode, $strShortDescription, $intCategoryId, $intManufacturerId));
                         }
                         if ($strAssetModel && !$this->in_array_nocase($strAssetModel, $strAssetModelArray)) {
                             $strAssetModelArray[] = $strAssetModel;
                             /*$objNewAssetModel = new AssetModel();
                                               $objNewAssetModel->ShortDescription = $strShortDescription;
                                               $objNewAssetModel->AssetModelCode = $strAssetModelCode;
                                               $objNewAssetModel->CategoryId = $intCategoryId;
                                               $objNewAssetModel->ManufacturerId = $intManufacturerId;
                             
                                               if (isset($intModelLongDescriptionKey)) {
                                                 $objNewAssetModel->LongDescription = addslashes(trim($strRowArray[$intModelLongDescriptionKey]));
                                               }
                                               $objNewAssetModel->Save();
                             
                                               // Asset Model Custom Field import
                                               foreach ($arrAssetModelCustomField as $objCustomField) {
                                                 if ($objCustomField->CustomFieldQtypeId != 2) {
                                                   $objCustomField->CustomFieldSelection = new CustomFieldSelection;
                                       						$objCustomField->CustomFieldSelection->newCustomFieldValue = new CustomFieldValue;
                                       						$objCustomField->CustomFieldSelection->newCustomFieldValue->CustomFieldId = $objCustomField->CustomFieldId;
                                       						if (trim($strRowArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]])) {
                                       						  $objCustomField->CustomFieldSelection->newCustomFieldValue->ShortDescription = addslashes(trim($strRowArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]]));
                                       						}
                                       						else {
                                       						  $objCustomField->CustomFieldSelection->newCustomFieldValue->ShortDescription = addslashes($this->txtMapDefaultValueArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text);
                                       						}
                                       						$objCustomField->CustomFieldSelection->newCustomFieldValue->Save();
                                       						$objCustomField->CustomFieldSelection->EntityId = $objNewAssetModel->AssetModelId;
                                       						$objCustomField->CustomFieldSelection->EntityQtypeId = 4;
                                       						$objCustomField->CustomFieldSelection->CustomFieldValueId = $objCustomField->CustomFieldSelection->newCustomFieldValue->CustomFieldValueId;
                                       						$objCustomField->CustomFieldSelection->Save();
                                                 }
                                                 else {
                                                   $data = trim($strRowArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]]);
                                                   $blnInList = false;
                                                   $objCustomField->CustomFieldSelection = new CustomFieldSelection;
                                             			$objCustomField->CustomFieldSelection->EntityId = $objNewAssetModel->AssetModelId;
                                             			$objCustomField->CustomFieldSelection->EntityQtypeId = 4;
                                             			foreach (CustomFieldValue::LoadArrayByCustomFieldId($objCustomField->CustomFieldId) as $objCustomFieldValue) {
                                         					  if (strtolower($objCustomFieldValue->ShortDescription) == $data) {
                                              					$objCustomField->CustomFieldSelection->CustomFieldValueId = $objCustomFieldValue->CustomFieldValueId;
                                             					$blnInList = true;
                                             					break;
                                         					  }
                                         					}
                                         					if (!$blnInList && $this->lstMapDefaultValueArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue != null) {
                                          					  $objCustomField->CustomFieldSelection->CustomFieldValueId = $this->lstMapDefaultValueArray[$intModelCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue;
                                          					  $objCustomField->CustomFieldSelection->Save();
                                         					}
                                         					elseif ($data) {
                                         					  $objCustomField->CustomFieldSelection->Save();
                                         					}
                                                 }
                                               }*/
                             $this->strModelValuesArray[] = sprintf("('%s', '%s', '%s', '%s', '%s', '%s', NOW())", $strShortDescription, isset($intModelLongDescriptionKey) ? addslashes(trim($strRowArray[$intModelLongDescriptionKey])) : null, $strAssetModelCode, $intCategoryId, $intManufacturerId, $_SESSION['intUserAccountId']);
                             $objNewAssetModelArray[] = $strShortDescription;
                         }
                     }
                     //if ($this->intCurrentFile == count($this->strFilePathArray)) {
                     if (count($this->strModelValuesArray)) {
                         //$strNewModelArray = array_merge($this->objNewAssetModelArray, array());
                         //$this->objNewAssetModelArray = array();
                         $objDatabase = AssetModel::GetDatabase();
                         //var_dump($this->strModelValuesArray);
                         //exit();
                         $objDatabase->NonQuery(sprintf("INSERT INTO `asset_model` (`short_description`, `long_description`, `asset_model_code`, `category_id`, `manufacturer_id`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $this->strModelValuesArray)));
                         $intStartId = $objDatabase->InsertId();
                         for ($i = 0; $i < count($objNewAssetModelArray); $i++) {
                             //$objDatabase->NonQuery(sprintf("INSERT INTO `asset_model` (`short_description`, `long_description`, `asset_model_code`, `category_id`, `manufacturer_id`, `created_by`, `creation_date`) VALUES %s;", $this->strModelValuesArray[$i]));
                             //$intStartId = $objDatabase->InsertId();
                             $this->objNewAssetModelArray[$intStartId + $i] = $objNewAssetModelArray[$i];
                         }
                         $this->strModelValuesArray = array();
                     }
                     //}
                     //$this->intCurrentFile++;
                     //break;
                 } elseif ($this->intImportStep == 5) {
                     $strAssetValuesArray = array();
                     $objAssetValuesArray = array();
                     $strAssetCFVArray = array();
                     $strUpdatedAssetCFVArray = array();
                     $strAssetCodeArray = array();
                     $strAddedCFVArray = array();
                     // This will add extra commas for blank values
                     $this->FileCsvData->symmetrize();
                     for ($i = 0; $i < $this->FileCsvData->countRows(); $i++) {
                         $strRowArray = $this->FileCsvData->getRow($i);
                         // The addslashes was causing match-up problems
                         //$strShortDescription = (trim($strRowArray[$intModelShortDescriptionKey])) ? addslashes(trim($strRowArray[$intModelShortDescriptionKey])) : false;
                         $strShortDescription = trim($strRowArray[$intModelShortDescriptionKey]) ? trim($strRowArray[$intModelShortDescriptionKey]) : false;
                         $strAssetModelCode = trim($strRowArray[$intModelCodeKey]) ? addslashes(trim($strRowArray[$intModelCodeKey])) : addslashes(trim($this->txtMapDefaultValueArray[$intModelCodeKey]->Text));
                         $strKeyArray = array_keys($intCategoryArray, addslashes(strtolower(trim($strRowArray[$this->intCategoryKey]))));
                         if (count($strKeyArray)) {
                             $intCategoryId = $strKeyArray[0];
                         } else {
                             $strKeyArray = array_keys($intCategoryArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intCategoryKey]->Text))));
                             if (count($strKeyArray)) {
                                 $intCategoryId = $strKeyArray[0];
                             } else {
                                 $intCategoryId = false;
                             }
                         }
                         $strKeyArray = array_keys($intManufacturerArray, addslashes(strtolower(trim($strRowArray[$this->intManufacturerKey]))));
                         if (count($strKeyArray)) {
                             $intManufacturerId = $strKeyArray[0];
                         } else {
                             $strKeyArray = array_keys($intManufacturerArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intManufacturerKey]->Text))));
                             if (count($strKeyArray)) {
                                 $intManufacturerId = $strKeyArray[0];
                             } else {
                                 $intManufacturerId = false;
                             }
                         }
                         if (!$strShortDescription || $intCategoryId === false || $intManufacturerId === false) {
                             //$blnError = true;
                             $this->intSkippedRecordCount++;
                             $this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                             //break;
                         } else {
                             //$blnError = false;
                             $strAssetModel = strtolower(sprintf("%s_%s_%s_%s", $strAssetModelCode, $strShortDescription, $intCategoryId, $intManufacturerId));
                             $strAssetCode = addslashes(trim($strRowArray[$intAssetCode]));
                             if ($strAssetCode && !$this->in_array_nocase($strAssetCode, $strAssetArray)) {
                                 $intLocationKeyArray = array_keys($intLocationArray, addslashes(strtolower(trim($strRowArray[$this->intLocationKey]))));
                                 if (!count($intLocationKeyArray)) {
                                     $intLocationKeyArray = array_keys($intLocationArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intLocationKey]->Text))));
                                 }
                                 $intModelKeyArray = array_keys($this->intAssetModelArray, $strAssetModel);
                                 if (count($intLocationKeyArray) && count($intModelKeyArray)) {
                                     $strAssetArray[] = strtolower($strAssetCode);
                                     $strAssetValuesArray[] = sprintf("('%s', '%s', '%s', '%s', NOW())", $strAssetCode, $intLocationKeyArray[0], $intModelKeyArray[0], $_SESSION['intUserAccountId']);
                                     /*$objNewAsset = new Asset();
                                       $objNewAsset->AssetCode = $strAssetCode;
                                       $objNewAsset->LocationId = $intLocationKeyArray[0];
                                       $objNewAsset->AssetModelId = $intModelKeyArray[0];
                                       if (isset($this->intCreatedByKey)) {
                                         if (isset($this->intUserArray[strtolower(trim($strRowArray[$this->intCreatedByKey]))])) {
                                           $objNewAsset->CreatedBy = $this->intUserArray[strtolower(trim($strRowArray[$this->intCreatedByKey]))];
                                         }
                                         else {
                                           $objNewAsset->CreatedBy = $this->lstMapDefaultValueArray[$this->intCreatedByKey]->SelectedValue;
                                         }
                                       }
                                       $objNewAsset->Save();*/
                                     $strCFVArray = array();
                                     $objDatabase = CustomField::GetDatabase();
                                     // Asset Custom Field import
                                     foreach ($arrAssetCustomField as $objCustomField) {
                                         if ($objCustomField->CustomFieldQtypeId != 2) {
                                             $strShortDescription = trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]) ? addslashes(trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]])) : addslashes($this->txtMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text);
                                             $strCFVArray[$objCustomField->CustomFieldId] = $strShortDescription ? sprintf("'%s'", $strShortDescription) : "NULL";
                                             /*$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);
                                                     $this->strSelectedValueArray[] = sprintf("('%s', '%s', '%s')", $objNewAsset->AssetId, 1, $objDatabase->InsertId());
                                                     $strCFVArray[] = sprintf("`cfv_%s`='%s'", $objCustomField->CustomFieldId, $strShortDescription);
                                                     $objCustomField->CustomFieldSelection = new CustomFieldSelection;
                                             		$objCustomField->CustomFieldSelection->newCustomFieldValue = new CustomFieldValue;
                                             		$objCustomField->CustomFieldSelection->newCustomFieldValue->CustomFieldId = $objCustomField->CustomFieldId;
                                             		if (trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]])) {
                                             		  $objCustomField->CustomFieldSelection->newCustomFieldValue->ShortDescription = addslashes(trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]));
                                             		}
                                             		else {
                                             		  $objCustomField->CustomFieldSelection->newCustomFieldValue->ShortDescription = addslashes($this->txtMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text);
                                             		}
                                             		$objCustomField->CustomFieldSelection->newCustomFieldValue->Save();
                                             		$objCustomField->CustomFieldSelection->EntityId = $objNewAsset->AssetId;
                                             		$objCustomField->CustomFieldSelection->EntityQtypeId = 1;
                                             		$objCustomField->CustomFieldSelection->CustomFieldValueId = $objCustomField->CustomFieldSelection->newCustomFieldValue->CustomFieldValueId;
                                             		$objCustomField->CustomFieldSelection->Save();*/
                                         } else {
                                             $objDatabase = Asset::GetDatabase();
                                             $strShortDescription = addslashes(trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]));
                                             $blnInList = false;
                                             foreach (CustomFieldValue::LoadArrayByCustomFieldId($objCustomField->CustomFieldId) as $objCustomFieldValue) {
                                                 if (strtolower($objCustomFieldValue->ShortDescription) == strtolower($strShortDescription)) {
                                                     //$intCustomFieldValueId = $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;
                                             } elseif (!$blnInList && $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue != null) {
                                                 //$intCustomFieldValueId = $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue;
                                                 $strShortDescription = $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedName;
                                             }
                                             if ($strShortDescription) {
                                                 //$this->strSelectedValueArray[] = sprintf("('%s', '%s', '%s')", $objNewAsset->AssetId, 1, $intCustomFieldValueId);
                                                 //$strCFVArray[] = sprintf("`cfv_%s`='%s'", $objCustomField->CustomFieldId, $strShortDescription);
                                                 $strCFVArray[$objCustomField->CustomFieldId] = sprintf("'%s'", $strShortDescription);
                                             } else {
                                                 $strCFVArray[$objCustomField->CustomFieldId] = "NULL";
                                             }
                                         }
                                     }
                                     $strAssetCodeArray[] = $strAssetCode;
                                     /*$this->objNewAssetArray[$objNewAsset->AssetId] = $objNewAsset->AssetCode;
                                       if (count($strCFVArray)) {
                                         $strQuery = sprintf("UPDATE `asset_custom_field_helper` " .
                                                             "SET %s " .
                                                             "WHERE `asset_id`='%s';", implode(", ", $strCFVArray), $objNewAsset->AssetId);
                                         $objDatabase->NonQuery($strQuery);
                                       }*/
                                     if (count($strCFVArray)) {
                                         $strAssetCFVArray[] = implode(', ', $strCFVArray);
                                     } else {
                                         $strAssetCFVArray[] = "";
                                     }
                                 } else {
                                     $this->intSkippedRecordCount++;
                                     $this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                                 }
                             } elseif ($strAssetCode && $this->lstImportAction->SelectedValue == 2 && $this->in_array_nocase($strAssetCode, $strAssetArray)) {
                                 $intLocationKeyArray = array_keys($intLocationArray, addslashes(strtolower(trim($strRowArray[$this->intLocationKey]))));
                                 if (isset($this->intCreatedByKey)) {
                                     if (isset($strRowArray[$this->intCreatedByKey]) && isset($this->intUserArray[strtolower(trim($strRowArray[$this->intCreatedByKey]))])) {
                                         $intCreatedBy = $this->intUserArray[strtolower(trim($strRowArray[$this->intCreatedByKey]))];
                                     } else {
                                         $intCreatedBy = $this->lstMapDefaultValueArray[$this->intCreatedByKey]->SelectedValue;
                                     }
                                 } else {
                                     $intCreatedBy = false;
                                 }
                                 if (!count($intLocationKeyArray)) {
                                     $intLocationKeyArray = array_keys($intLocationArray, addslashes(strtolower(trim($this->txtMapDefaultValueArray[$this->intLocationKey]->Text))));
                                 }
                                 $intModelKeyArray = array_keys($this->intAssetModelArray, $strAssetModel);
                                 if (count($intLocationKeyArray) && count($intModelKeyArray)) {
                                     $objAssetArray = Asset::LoadArrayBySearchHelper($strAssetCode, null, null, null, null, false, null, null, null, null, null, null, null, null, null, false, null, null, null, false, false, false);
                                     $objAsset = $objAssetArray[0];
                                     $strUpdatedAssetArray[] = strtolower($strAssetCode);
                                     $strCategoryKeyArray = array_keys($intCategoryArray, addslashes(strtolower(trim($strRowArray[$this->intCategoryKey]))));
                                     // Only fields that can normally be updated when editing an asset can be updated
                                     //if ($objAsset->LocationId != $intLocationKeyArray[0] || $objAsset->AssetModel->CategoryId != $intCategoryId || $objAsset->AssetModel->ManufacturerId != $intManufacturerId) {
                                     if ($objAsset->LocationId != $intLocationKeyArray[0] || $objAsset->CreatedBy != false && $objAsset->CreatedBy != $intCreatedBy) {
                                         $this->intSkippedRecordCount++;
                                         $this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                                     } else {
                                         $this->arrOldAssetArray[$objAsset->AssetId] = array();
                                         $this->arrOldAssetArray[$objAsset->AssetId]['AssetModelId'] = $objAsset->AssetModelId;
                                         $this->arrOldAssetArray[$objAsset->AssetId]['ModifiedBy'] = $objAsset->ModifiedBy;
                                         $this->arrOldAssetArray[$objAsset->AssetId]['ModifiedDate'] = $objAsset->ModifiedDate;
                                         $this->arrOldAssetArray[$objAsset->AssetId]['CFV'] = array();
                                         $objAsset->AssetModelId = $intModelKeyArray[0];
                                         $objAssetValuesArray[] = $objAsset;
                                         //$objAssetValuesArray[] = sprintf("('%s', '%s', '%s', '%s', NOW())", $strAssetCode, $intLocationKeyArray[0], $intModelKeyArray[0], $_SESSION['intUserAccountId']);
                                         $strCFVArray = array();
                                         $objDatabase = CustomField::GetDatabase();
                                         // Asset Custom Field import
                                         foreach ($arrAssetCustomField as $objCustomField) {
                                             $this->arrOldAssetArray[$objAsset->AssetId]['CFV'][$objCustomField->CustomFieldId] = $objAsset->GetVirtualAttribute($objCustomField->CustomFieldId);
                                             if ($objCustomField->CustomFieldQtypeId != 2) {
                                                 $strShortDescription = trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]) ? addslashes(trim($strRowArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]])) : addslashes($this->txtMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->Text);
                                                 $strCFVArray[$objCustomField->CustomFieldId] = $strShortDescription ? sprintf("'%s'", $strShortDescription) : "NULL";
                                             } else {
                                                 $objDatabase = Asset::GetDatabase();
                                                 $strShortDescription = addslashes(trim($strRowArray[$intAssetCustomFieldKeyArray[$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)) {
                                                         //$intCustomFieldValueId = $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;
                                                 } elseif (!$blnInList && $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue != null) {
                                                     //$intCustomFieldValueId = $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedValue;
                                                     $strShortDescription = $this->lstMapDefaultValueArray[$intAssetCustomFieldKeyArray[$objCustomField->CustomFieldId]]->SelectedName;
                                                 }
                                                 if ($strShortDescription) {
                                                     $strCFVArray[$objCustomField->CustomFieldId] = sprintf("'%s'", $strShortDescription);
                                                 } else {
                                                     $strCFVArray[$objCustomField->CustomFieldId] = "NULL";
                                                 }
                                             }
                                         }
                                         $strAssetCodeArray[] = $strAssetCode;
                                         if (count($strCFVArray)) {
                                             $strUpdatedAssetCFVArray[$objAsset->AssetId] = $strCFVArray;
                                         } else {
                                             $strUpdatedAssetCFVArray[$objAsset->AssetId] = "";
                                         }
                                     }
                                 } else {
                                     $this->intSkippedRecordCount++;
                                     $this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                                 }
                             } elseif ($this->lstImportAction->SelectedValue == 1 && $this->in_array_nocase($strAssetCode, $strAssetArray)) {
                                 // Skipped and flagged as duplicates
                                 $this->intSkippedRecordCount++;
                                 $this->PutSkippedRecordInFile($file_skipped, $strRowArray);
                             }
                         }
                     }
                     $intAssetCount = count($strAssetValuesArray);
                     if ($intAssetCount) {
                         $objDatabase = Asset::GetDatabase();
                         $strQuery = sprintf("INSERT INTO `asset` (`asset_code`, `location_id`, `asset_model_id`, `created_by`, `creation_date`) VALUES %s;", implode(", ", $strAssetValuesArray));
                         $objDatabase->NonQuery($strQuery);
                         $intInsertId = $objDatabase->InsertId();
                         if ($intInsertId) {
                             $strAssetIdArray = array();
                             for ($i = 0; $i < $intAssetCount; $i++) {
                                 $strAssetCFVArray[$i] = sprintf("('%s', %s)", $intInsertId + $i, $strAssetCFVArray[$i]);
                                 $strAssetIdArray[$i] = sprintf("(%s)", $intInsertId + $i);
                             }
                             $strCFVNameArray = array();
                             foreach ($arrAssetCustomField as $objCustomField) {
                                 $strCFVNameArray[] = sprintf("`cfv_%s`", $objCustomField->CustomFieldId);
                             }
                             if (count($strAssetCFVArray) > 0 && count($strCFVNameArray) > 0) {
                                 $strQuery = sprintf("INSERT INTO `asset_custom_field_helper` (`asset_id`, %s) VALUES %s", implode(", ", $strCFVNameArray), implode(", ", $strAssetCFVArray));
                             } else {
                                 $strQuery = sprintf("INSERT INTO `asset_custom_field_helper` (`asset_id`) VALUES %s", implode(", ", $strAssetIdArray));
                             }
                             $objDatabase->NonQuery($strQuery);
                             for ($i = 0; $i < $intAssetCount; $i++) {
                                 $this->objNewAssetArray[$intInsertId + $i] = $strAssetCodeArray[$i];
                             }
                         }
                     }
                     $intObjAssetCount = count($objAssetValuesArray);
                     if ($intObjAssetCount) {
                         $objDatabase = Asset::GetDatabase();
                         foreach ($objAssetValuesArray as $objAsset) {
                             $this->objUpdatedAssetArray[$objAsset->AssetId] = $objAsset->AssetCode;
                             if (count($strUpdatedAssetCFVArray[$objAsset->AssetId])) {
                                 $strCFVArray = array();
                                 foreach ($arrAssetCustomField as $objCustomField) {
                                     $strCFVArray[] = sprintf("`cfv_%s`=%s", $objCustomField->CustomFieldId, $strUpdatedAssetCFVArray[$objAsset->AssetId][$objCustomField->CustomFieldId]);
                                 }
                                 if (count($strCFVArray)) {
                                     $strQuery = sprintf("UPDATE `asset_custom_field_helper` SET %s WHERE `asset_id`='%s'", implode(", ", $strCFVArray), $objAsset->AssetId);
                                     $objDatabase->NonQuery($strQuery);
                                 }
                             }
                             $objAsset->Save();
                         }
                     }
                     $this->intCurrentFile++;
                     break;
                 }
                 //$j++;
             }
             if ($this->intImportStep == 6) {
                 /*if (count($this->strSelectedValueArray)) {
                     $objDatabase = CustomField::GetDatabase();
                     $strQuery = sprintf("INSERT INTO `custom_field_selection` " .
                                         "(`entity_id`,`entity_qtype_id`, `custom_field_value_id`) " .
                                         "VALUES %s;", implode(", ", $this->strSelectedValueArray));
                     $objDatabase->NonQuery($strQuery);
                   }*/
                 // Insert Values into helper tables
                 $objDatabase = Asset::GetDatabase();
                 $objDatabase->NonQuery("SET FOREIGN_KEY_CHECKS=0;");
                 // Insert into asset_model_custom_field_helper
                 $objDatabase->NonQuery(sprintf("INSERT INTO `asset_model_custom_field_helper` (`asset_model_id`) (SELECT `asset_model_id` FROM `asset_model` WHERE `asset_model_id` NOT IN (SELECT `asset_model_id` FROM `asset_model_custom_field_helper`));"));
                 // Insert into category_custom_field_helper
                 $objDatabase->NonQuery(sprintf("INSERT INTO `category_custom_field_helper` (`category_id`) (SELECT `category_id` FROM `category` WHERE `category_id` NOT IN (SELECT `category_id` FROM `category_custom_field_helper`));"));
                 // Insert into manufacturer_custom_field_helper
                 $objDatabase->NonQuery(sprintf("INSERT INTO `manufacturer_custom_field_helper` (`manufacturer_id`) (SELECT `manufacturer_id` FROM `manufacturer` WHERE `manufacturer_id` NOT IN (SELECT `manufacturer_id` FROM `manufacturer_custom_field_helper`));"));
                 // Inserts end
                 $objDatabase->NonQuery("SET FOREIGN_KEY_CHECKS=1;");
                 $this->blnImportEnd = true;
                 $this->btnNext->Warning = "";
                 $this->lblImportResults->Display = true;
                 if (count($this->objNewAssetArray)) {
                     $this->lblImportAssets->Display = true;
                     $this->dtgAsset->Paginator = new QPaginator($this->dtgAsset);
                     $this->dtgAsset->ItemsPerPage = 20;
                 }
                 if (count($this->objUpdatedAssetArray)) {
                     $this->lblImportUpdatedAssets->Display = true;
                     $this->dtgUpdatedAsset->Paginator = new QPaginator($this->dtgUpdatedAsset);
                     $this->dtgUpdatedAsset->ItemsPerPage = 20;
                 }
                 if (count($this->objNewAssetModelArray)) {
                     $this->lblImportModels->Display = true;
                     $this->dtgAssetModel->Paginator = new QPaginator($this->dtgAssetModel);
                     $this->dtgAssetModel->ItemsPerPage = 20;
                 }
                 if (count($this->objNewManufacturerArray)) {
                     $this->lblImportManufacturers->Display = true;
                     $this->dtgManufacturer->Paginator = new QPaginator($this->dtgManufacturer);
                     $this->dtgManufacturer->ItemsPerPage = 20;
                 }
                 if (count($this->objNewCategoryArray)) {
                     $this->lblImportCategories->Display = true;
                     $this->dtgCategory->Paginator = new QPaginator($this->dtgCategory);
                     $this->dtgCategory->ItemsPerPage = 20;
                 }
                 if (count($this->objNewLocationArray)) {
                     $this->lblImportLocations->Display = true;
                     $this->dtgLocation->Paginator = new QPaginator($this->dtgLocation);
                     $this->dtgLocation->ItemsPerPage = 20;
                 }
                 $this->btnNext->Display = false;
                 $this->btnCancel->Display = false;
                 $this->btnUndoLastImport->Display = true;
                 $this->btnImportMore->Display = true;
                 $this->btnReturnToAssets->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->objNewAssetArray) + count($this->objUpdatedAssetArray), $this->intSkippedRecordCount);
                 if ($this->intSkippedRecordCount) {
                     $this->lblImportSuccess->Text .= sprintf("<a href='./asset_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++;
         }
     }
 }
 /**
  *
  * @param $categname
  * @param int $parentid
  * @param int $intPosition
  * @return bool|Category|int
  */
 protected function parseCategoryString($categname, $parentid = 0, $intPosition = 0)
 {
     $categname = trim($categname);
     if (empty($categname)) {
         return $parentid;
     }
     $categs = Category::LoadArrayByName($categname);
     $exist = false;
     foreach ($categs as $categ) {
         if ($categ->Parent == $parentid) {
             $exist = $categ;
             break;
         }
     }
     if ($exist) {
         return $exist;
     }
     $categ = new Category();
     $categ->Name = $categname;
     $categ->Parent = $parentid;
     $categ->Created = new QDateTime(QDateTime::Now);
     $categ->Position = $intPosition;
     $categ->Save(true);
     $categ->UpdateChildCount();
     return $categ;
 }
Exemple #5
0
 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++;
         }
     }
 }
Exemple #6
0
function InsertInfo()
{
    global $zbp;
    $zbp->guid = GetGuid();
    $mem = new Member();
    $guid = GetGuid();
    $mem->Guid = $guid;
    $mem->Level = 1;
    $mem->Name = GetVars('username', 'POST');
    $mem->Password = Member::GetPassWordByGuid(GetVars('password', 'POST'), $guid);
    $mem->IP = GetGuestIP();
    $mem->PostTime = time();
    $mem->Save();
    $cate = new Category();
    $cate->Name = $zbp->lang['msg']['uncategory'];
    $cate->Alias = 'uncategorized';
    $cate->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_navbar'];
    $t->FileName = "navbar";
    $t->Source = "system";
    $t->SidebarID = 0;
    $t->Content = '<li id="nvabar-item-index"><a href="{#ZC_BLOG_HOST#}">' . $zbp->lang['zb_install']['index'] . '</a></li><li id="navbar-page-2"><a href="{#ZC_BLOG_HOST#}?id=2">' . $zbp->lang['zb_install']['guestbook'] . '</a></li>';
    $t->HtmlID = "divNavBar";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['calendar'];
    $t->FileName = "calendar";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = "";
    $t->HtmlID = "divCalendar";
    $t->Type = "div";
    $t->IsHideTitle = true;
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['control_panel'];
    $t->FileName = "controlpanel";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = '<span class="cp-hello">' . $zbp->lang['zb_install']['wellcome'] . '</span><br/><span class="cp-login"><a href="{#ZC_BLOG_HOST#}zb_system/cmd.php?act=login">' . $zbp->lang['msg']['admin_login'] . '</a></span>&nbsp;&nbsp;<span class="cp-vrs"><a href="{#ZC_BLOG_HOST#}zb_system/cmd.php?act=misc&amp;type=vrs">' . $zbp->lang['msg']['view_rights'] . '</a></span>';
    $t->HtmlID = "divContorPanel";
    $t->Type = "div";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_catalog'];
    $t->FileName = "catalog";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = "";
    $t->HtmlID = "divCatalog";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['search'];
    $t->FileName = "searchpanel";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = '<form name="search" method="post" action="{#ZC_BLOG_HOST#}zb_system/cmd.php?act=search"><input type="text" name="q" size="11" /> <input type="submit" value="' . $zbp->lang['msg']['search'] . '" /></form>';
    $t->HtmlID = "divSearchPanel";
    $t->Type = "div";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_comments'];
    $t->FileName = "comments";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = "";
    $t->HtmlID = "divComments";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_archives'];
    $t->FileName = "archives";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = "";
    $t->HtmlID = "divArchives";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_statistics'];
    $t->FileName = "statistics";
    $t->Source = "system";
    $t->SidebarID = 0;
    $t->Content = "";
    $t->HtmlID = "divStatistics";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_favorite'];
    $t->FileName = "favorite";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = '<li><a href="http://bbs.zblogcn.com/" target="_blank">ZBlogger社区</a></li><li><a href="http://app.zblogcn.com/" target="_blank">Z-Blog应用中心</a></li><li><a href="http://weibo.com/zblogcn" target="_blank">Z-Blog新浪官微</a></li><li><a href="http://t.qq.com/zblogcn" target="_blank">Z-Blog腾讯官微</a></li>';
    $t->HtmlID = "divFavorites";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_link'];
    $t->FileName = "link";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = '<li><a href="http://www.dbshost.cn/" target="_blank" title="独立博客服务 Z-Blog官方主机">DBS主机</a></li>';
    $t->HtmlID = "divLinkage";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_misc'];
    $t->FileName = "misc";
    $t->Source = "system";
    $t->SidebarID = 1;
    $t->Content = '<li><a href="http://www.zblogcn.com/" target="_blank"><img src="{#ZC_BLOG_HOST#}zb_system/image/logo/zblog.gif" height="31" width="88" alt="RainbowSoft Studio Z-Blog" /></a></li><li><a href="{#ZC_BLOG_HOST#}feed.php" target="_blank"><img src="{#ZC_BLOG_HOST#}zb_system/image/logo/rss.png" height="31" width="88" alt="订阅本站的 RSS 2.0 新闻聚合" /></a></li>';
    $t->HtmlID = "divMisc";
    $t->Type = "ul";
    $t->IsHideTitle = true;
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_authors'];
    $t->FileName = "authors";
    $t->Source = "system";
    $t->SidebarID = 0;
    $t->Content = "";
    $t->HtmlID = "divAuthors";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_previous'];
    $t->FileName = "previous";
    $t->Source = "system";
    $t->SidebarID = 0;
    $t->Content = "";
    $t->HtmlID = "divPrevious";
    $t->Type = "ul";
    $t->Save();
    $t = new Module();
    $t->Name = $zbp->lang['msg']['module_tags'];
    $t->FileName = "tags";
    $t->Source = "system";
    $t->SidebarID = 0;
    $t->Content = "";
    $t->HtmlID = "divTags";
    $t->Type = "ul";
    $t->Save();
    $a = new Post();
    $a->CateID = 1;
    $a->AuthorID = 1;
    $a->Tag = '';
    $a->Status = ZC_POST_STATUS_PUBLIC;
    $a->Type = ZC_POST_TYPE_ARTICLE;
    $a->Alias = '';
    $a->IsTop = false;
    $a->IsLock = false;
    $a->Title = $zbp->lang['zb_install']['hello_zblog'];
    $a->Intro = $zbp->lang['zb_install']['hello_zblog_content'];
    $a->Content = $zbp->lang['zb_install']['hello_zblog_content'];
    $a->IP = GetGuestIP();
    $a->PostTime = time();
    $a->CommNums = 0;
    $a->ViewNums = 0;
    $a->Template = '';
    $a->Meta = '';
    $a->Save();
    $a = new Post();
    $a->CateID = 0;
    $a->AuthorID = 1;
    $a->Tag = '';
    $a->Status = ZC_POST_STATUS_PUBLIC;
    $a->Type = ZC_POST_TYPE_PAGE;
    $a->Alias = '';
    $a->IsTop = false;
    $a->IsLock = false;
    $a->Title = $zbp->lang['zb_install']['guestbook'];
    $a->Intro = '';
    $a->Content = $zbp->lang['zb_install']['guestbook_content'];
    $a->IP = GetGuestIP();
    $a->PostTime = time();
    $a->CommNums = 0;
    $a->ViewNums = 0;
    $a->Template = '';
    $a->Meta = '';
    $a->Save();
    echo $zbp->lang['zb_install']['create_datainfo'] . "<br/>";
}
Exemple #7
0
 case 'delete_img':
     $img_id = (int) $_REQUEST['img_id'];
     Product::DeleteImage($img_id);
     $view = 'editproduct';
     break;
 case 'saveproduct':
     $P = new Product($_POST['id']);
     if (!$P->Save($_POST)) {
         $content .= PAYPAL_errMsg($P->PrintErrors());
         $view = 'editproduct';
     }
     break;
 case 'savecat':
     USES_paypal_class_category();
     $C = new Category($_POST['cat_id']);
     if (!$C->Save($_POST)) {
         $content .= PAYPAL_popupMsg($LANG_PP['invalid_form']);
         $view = 'editcat';
     } else {
         $view = 'catlist';
     }
     break;
 case 'saveopt':
     USES_paypal_class_attribute();
     $Attr = new Attribute($_POST['attr_id']);
     if (!$Attr->Save($_POST)) {
         $content .= PAYPAL_popupMsg($LANG_PP['invalid_form']);
     }
     if (isset($_POST['attr_id']) && !empty($_POST['attr_id'])) {
         // Updating an existing option, return to the list
         $view = 'attributes';
Exemple #8
0
 protected function btnQuickAdd_Click($strFormId, $strControlId, $strParameter)
 {
     $blnError = false;
     $this->btnQuickAdd->Warning = '';
     if (strlen(trim($this->txtQuickAdd->Text)) == 0) {
         $blnError = true;
         $this->btnQuickAdd->Warning = 'You must enter a Category name';
     }
     // Check for dupes
     $objCategoryDuplicate = Category::QuerySingle(QQ::Equal(QQN::Category()->ShortDescription, $this->txtQuickAdd->Text));
     if ($objCategoryDuplicate) {
         $blnError = true;
         $this->btnQuickAdd->Warning = 'This Category Name is already in use. Please try another.';
     }
     if (!$blnError) {
         $objCategory = new Category();
         $objCategory->ShortDescription = $this->txtQuickAdd->Text;
         $objCategory->AssetFlag = '1';
         $objCategory->InventoryFlag = '1';
         $objCategory->CreatedBy = QApplication::$objUserAccount->UserAccountId;
         $objCategory->CreationDate = QDateTime::Now();
         $objCategory->Save();
         $this->dtgCategory->Refresh();
         $this->txtQuickAdd->Text = '';
     }
     $this->txtQuickAdd->Focus();
     $this->txtQuickAdd->Select();
 }
<?php

include_once $_SERVER['DOCUMENT_ROOT'] . '/../inc/application_top.php';
// Create the category class
$myCategory = new Category();
try {
    // If they are saving the Information
    if ($_POST['submit'] == 'save') {
        // Get all the Form Data
        $myCategory->SetValues($_POST);
        $myCategory->SetValue('user_id', $myUser->GetPrimary());
        // Save the Make
        if ($myCategory->Save()) {
            SetAlert('Category Successfully Saved.', 'success');
            LogAction('Saved Category: ' . stripslashes($myCategory->GetValue('category')), 1);
            header('location:' . PATH . 'categories');
            die;
        }
    }
    // If Deleting
    if ($_POST['submit'] == 'delete') {
        $myCategory->SetValues($_POST);
        $name = stripslashes($myCategory->GetValue('category'));
        // Remove from the DB
        if (!$myCategory->Delete()) {
            throw new SimplException('Error deleting from the database, please try again.');
        }
        // Everything went fine
        SetAlert('Category Deleted Successfully', 'success');
        LogAction('Deleted Category: ' . $name, 1);
        header('location:' . PATH . 'categories');
Exemple #10
0
    $ret_val = array();
    $user = new User($username, $password);
    if ($user->IsValidUser) {
        $ret_val['success'] = 1;
        $ret_val['redirect'] = 'manageblog.php';
    } else {
        $ret_val['success'] = 0;
        $ret_val['redirect'] = null;
    }
    echo json_encode($ret_val);
});
$app->get('/testserver/', function () {
    $ret_val = array();
    require_once 'category.php';
    $category = new Category(4);
    $category->Save();
    $ret_val['success'] = 1;
    echo json_encode($ret_val);
});
//TODO
$app->get('/getblogtypelist', function () {
    require_once 'common/dbconnection.php';
    $GLOBALS['mysqli'] = MySQLConnection::Open();
    require_once 'posttype.php';
    $retval = TypeFactory::GetTypes();
    MySQLConnection::Close($GLOBALS['mysqli']);
    echo json_encode($retval);
});
$app->get('/getcategorylist/', function () {
    require_once 'common/dbconnection.php';
    $GLOBALS['mysqli'] = MySQLConnection::Open();