public static function LoadChildLinkedArrayByParentAssetIdWithNoCustomFields($intParentAssetId) { $objLinkedAssetArray = array(); Asset::QueryHelper($objDatabase); $arrCustomFieldSql = CustomField::GenerateHelperSql(EntityQtype::Asset); // Setup the SQL Query $strQuery = sprintf("\n\t\t\t\tSELECT\n\t\t\t\t\t`asset`.*\n\t\t\t\tFROM\n\t\t\t\t\t`asset`\n\t\t\t\tWHERE `asset`.`parent_asset_id` = %s\n\t\t\t\tAND `asset`.`linked_flag` = 1\n\t\t\t", $intParentAssetId); // Perform the Query and Instantiate the Result $objDbResult = $objDatabase->Query($strQuery); $objChildAssetArray = Asset::InstantiateDbResult($objDbResult); if ($objChildAssetArray && count($objChildAssetArray)) { foreach ($objChildAssetArray as $objLinkedAsset) { $objLinkedAssetArray[] = $objLinkedAsset; $objNewLinkedAssetArray = Asset::LoadChildLinkedArrayByParentAssetIdWithNoCustomFields($objLinkedAsset->AssetId); if ($objNewLinkedAssetArray) { foreach ($objNewLinkedAssetArray as $objLinkedAsset2) { $objLinkedAssetArray[] = $objLinkedAsset2; } } } return $objLinkedAssetArray; } else { return false; } }
/** * Static Qcodo Query method to query for an array of Asset objects. * Uses BuildQueryStatment to perform most of the work. * @param QQCondition $objConditions any conditions on the query, itself * @param QQClause[] $objOptionalClausees additional optional QQClause objects for this query * @param mixed[] $mixParameterArray a array of name-value pairs to perform PrepareStatement with * @return Asset[] the queried objects as an array */ public static function QueryArray(QQCondition $objConditions, $objOptionalClauses = null, $mixParameterArray = null) { // Get the Query Statement try { $strQuery = Asset::BuildQueryStatement($objQueryBuilder, $objConditions, $objOptionalClauses, $mixParameterArray, false); } catch (QCallerException $objExc) { $objExc->IncrementOffset(); throw $objExc; } // Perform the Query and Instantiate the Array Result $objDbResult = $objQueryBuilder->Database->Query($strQuery); return Asset::InstantiateDbResult($objDbResult, $objQueryBuilder->ExpandAsArrayNodes); }
/** * Load an array of Asset objects * by search parameters using the helper table * * @param string $strAssetCode * @param int $intLocationId * @param int $intAssetModelId * @param int $intCategoryId * @param int $intManufacturerId * @param bool $blnOffsite * @param string $strAssetModelCode * @param integer $intReservedBy * @param integer $intCheckedOutBy * @param string $strShortDescription * @param array $arrCustomFields * @param string $strDateModified * @param string $strDateModifiedFirst * @param string $strDateModifiedLast * @param bool $blnAttachment * @param string $strOrderBy * @param string $strLimit * @param array $objExpansionMap map of referenced columns to be immediately expanded via early-binding * @return Asset[] */ public static function LoadArrayBySearchHelper($strAssetCode = null, $intLocationId = null, $intAssetModelId = null, $intCategoryId = null, $intManufacturerId = null, $blnOffsite = false, $strAssetModelCode = null, $intReservedBy = null, $intCheckedOutBy = null, $strShortDescription = null, $arrCustomFields = null, $strDateModified = null, $strModifiedCreated, $strDateModifiedFirst = null, $strDateModifiedLast = null, $blnAttachment = null, $strOrderBy = null, $strLimit = null, $objExpansionMap = null, $blnIncludeTBR = false, $blnIncludeShipped = false, $blnArchived = false, $intCheckedOutToUser = null, $intCheckedOutToContact = null, $blnChekcedOutPastDue = false, $intAssetId = null) { Asset::ArrayQueryHelper($strOrderBy, $strLimit, $strLimitPrefix, $strLimitSuffix, $strExpandSelect, $strExpandFrom, $objExpansionMap, $objDatabase); // Setup QueryExpansion $objQueryExpansion = new QQueryExpansion(); if ($objExpansionMap) { try { Asset::ExpandQuery('asset', null, $objExpansionMap, $objQueryExpansion); } catch (QCallerException $objExc) { $objExc->IncrementOffset(); throw $objExc; } } $arrSearchSql = Asset::GenerateSearchSql($strAssetCode, $intLocationId, $intAssetModelId, $intCategoryId, $intManufacturerId, $blnOffsite, $strAssetModelCode, $intReservedBy, $intCheckedOutBy, $strShortDescription, $arrCustomFields, $strDateModified, $strModifiedCreated, $strDateModifiedFirst, $strDateModifiedLast, $blnAttachment, $blnIncludeTBR, $blnIncludeShipped, $blnArchived, $intCheckedOutToUser, $intCheckedOutToContact, $blnChekcedOutPastDue, $intAssetId); $arrCustomFieldSql = CustomField::GenerateHelperSql(EntityQtype::Asset); $arrAttachmentSql = Attachment::GenerateSql(EntityQtype::Asset); $strQuery = sprintf(' SELECT %s `asset`.`asset_id` AS `asset_id`, `asset`.`asset_model_id` AS `asset_model_id`, `asset`.`location_id` AS `location_id`, `asset`.`asset_code` AS `asset_code`, `asset`.`parent_asset_id` AS `parent_asset_id`, `asset`.`image_path` AS `image_path`, `asset`.`checked_out_flag` AS `checked_out_flag`, `asset`.`reserved_flag` AS `reserved_flag`, `asset`.`archived_flag` AS `archived_flag`, `asset`.`created_by` AS `created_by`, `asset`.`creation_date` AS `creation_date`, `asset`.`modified_by` AS `modified_by`, `asset`.`modified_date` AS `modified_date` %s %s %s FROM `asset` AS `asset` %s %s %s WHERE 1=1 %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ', $strLimitPrefix, $objQueryExpansion->GetSelectSql(",\n\t\t\t\t\t", ",\n\t\t\t\t\t"), $arrCustomFieldSql['strSelect'], $arrAttachmentSql['strSelect'], $objQueryExpansion->GetFromSql("", "\n\t\t\t\t\t"), $arrCustomFieldSql['strFrom'], $arrAttachmentSql['strFrom'], $arrSearchSql['strAssetCodeSql'], $arrSearchSql['strLocationSql'], $arrSearchSql['strAssetModelSql'], $arrSearchSql['strCategorySql'], $arrSearchSql['strManufacturerSql'], $arrSearchSql['strOffsiteSql'], $arrSearchSql['strAssetModelCodeSql'], $arrSearchSql['strReservedBySql'], $arrSearchSql['strCheckedOutBySql'], $arrSearchSql['strCheckedOutToUserSql'], $arrSearchSql['strCheckedOutToContactSql'], $arrSearchSql['strCheckedOutPastDueSql'], $arrSearchSql['strAssetIdSql'], $arrSearchSql['strArchivedSql'], $arrSearchSql['strIncludeTBRSql'], $arrSearchSql['strIncludeShippedSql'], $arrSearchSql['strShortDescriptionSql'], $arrSearchSql['strCustomFieldsSql'], $arrSearchSql['strDateModifiedSql'], $arrSearchSql['strAttachmentSql'], $arrSearchSql['strAuthorizationSql'], $arrAttachmentSql['strGroupBy'], $strOrderBy, $strLimitSuffix); $objDbResult = $objDatabase->Query($strQuery); return Asset::InstantiateDbResult($objDbResult); }
} $strQuery = sprintf(' SELECT `%s`.`%s_id` AS `%s_id` %s FROM `%s` AS `%s` %s WHERE 1=1 ', $strTableName, $strTableName, $strTableName, $arrCustomFieldSql['strSelect'], $strTableName, $strTableName, $arrCustomFieldSql['strFrom']); $objDatabase = QApplication::$Database[1]; $objDbResult = $objDatabase->Query($strQuery); switch ($intEntityQtypeId) { case 1: $objArray = Asset::InstantiateDbResult($objDbResult); break; case 2: $objArray = InventoryModel::InstantiateDbResult($objDbResult); break; case 4: $objArray = AssetModel::InstantiateDbResult($objDbResult); break; case 5: $objArray = Manufacturer::InstantiateDbResult($objDbResult); break; case 6: $objArray = Category::InstantiateDbResult($objDbResult); break; case 7: $objArray = Company::InstantiateDbResult($objDbResult);
/** * Gets the historical journal for an object from the log database. * Objects will have VirtualAttributes available to lookup login, date, and action information from the journal object. * @param integer intAssetId * @return Asset[] */ public static function GetJournalForId($intAssetId) { $objDatabase = Asset::GetDatabase()->JournalingDatabase; $objResult = $objDatabase->Query('SELECT * FROM asset WHERE asset_id = ' . $objDatabase->SqlVariable($intAssetId) . ' ORDER BY __sys_date'); return Asset::InstantiateDbResult($objResult); }