コード例 #1
0
 /**
  * Load an array of objAssetTransactions
  * @param $blnReturnStrQuery - true/false (return strSqlQuery / return objAssetTransaction[])
  * @param $strAssetModel
  * @param $strAssetCode
  * @param $strAssetModelCode
  * @param $strUser
  * @param $intCheckedOutBy
  * @param $intReservedBy
  * @param $strCategory
  * @param $strManufacturer
  * @param $strSortByDate
  * @param $strDateModified
  * @param $strDateModifiedFirst
  * @param $strDateModifiedLast
  * @param $arrTransactionTypes
  * @param $objExpansionMap
  * @return strSqlQuery / objAssetTransaction[]
  */
 public function LoadArrayBySearch($blnReturnStrQuery = true, $strAssetModel = null, $strAssetCode = null, $strAssetModelCode = null, $strUser = null, $intCheckedOutBy = null, $intReservedBy = null, $strCategory = null, $strManufacturer = null, $strSortByDate = "ASC", $strDateModified = null, $strDateModifiedFirst = null, $strDateModifiedLast = null, $arrTransactionTypes = null, $objExpansionMap = null)
 {
     // Setup QueryExpansion
     $objQueryExpansion = new QQueryExpansion();
     if ($objExpansionMap) {
         try {
             AssetTransaction::ExpandQuery('asset_transaction', null, $objExpansionMap, $objQueryExpansion);
         } catch (QCallerException $objExc) {
             $objExc->IncrementOffset();
             throw $objExc;
         }
     }
     $strTransactionTypes = "";
     if ($arrTransactionTypes) {
         $strTransactionTypes = sprintf("AND `asset_transaction__transaction_id`.`transaction_type_id` IN ('%s') ", implode("', '", $arrTransactionTypes));
     }
     if ($strAssetModel) {
         $strAssetModel = "AND `asset_transaction__asset_id__asset_model_id`.`short_description` LIKE '%" . $strAssetModel . "%'\n";
     }
     if ($strAssetCode) {
         $strAssetCode = "AND `asset_transaction__asset_id`.`asset_code` LIKE '%" . $strAssetCode . "%'\n";
     }
     if ($strAssetModelCode) {
         $strAssetModelCode = "AND `asset_transaction__asset_id__asset_model_id`.`asset_model_code` LIKE '%" . $strAssetModelCode . "%'\n";
     }
     if ($strUser) {
         $strUser = sprintf("AND (`asset_transaction__transaction_id__created_by`.`user_account_id` = '%s' OR `asset_transaction__transaction_id__modified_by`.`user_account_id` = '%s')\n", $strUser, $strUser);
     }
     $strCheckedOutBy = "";
     if ($intCheckedOutBy) {
         $strCheckedOutBy = sprintf("AND `asset_transaction__asset_id`.`checked_out_flag` = true\n");
         if ($intCheckedOutBy != 'any') {
             $strCheckedOutBy .= sprintf("AND `asset_transaction`.`created_by` = '%s'\n", $intCheckedOutBy);
         }
     }
     $strReservedBy = "";
     if ($intReservedBy) {
         $strReservedBy = sprintf("AND `asset_transaction__asset_id`.`reserved_flag` = true\n");
         if ($intReservedBy != 'any') {
             $strReservedBy .= sprintf("AND `asset_transaction`.`created_by` = '%s'\n", $intReservedBy);
         }
     }
     if ($strCategory) {
         $strCategory = sprintf("AND `asset_transaction__asset_id__asset_model_id`.`category_id` = '%s'\n", $strCategory);
     }
     if ($strManufacturer) {
         $strManufacturer = sprintf("AND `asset_transaction__asset_id__asset_model_id`.`manufacturer_id` = '%s'\n", $strManufacturer);
     }
     $arrSearchSql['strDateModifiedSql'] = null;
     if ($strDateModified) {
         if ($strDateModified == "before" && $strDateModifiedFirst instanceof QDateTime) {
             $strDateModifiedFirst = QApplication::$Database[1]->SqlVariable($strDateModifiedFirst->Timestamp, false);
             $arrSearchSql['strDateModifiedSql'] = sprintf("AND (UNIX_TIMESTAMP(`asset_transaction`.`modified_date`) < %s OR UNIX_TIMESTAMP(`asset_transaction`.`creation_date`) < %s)\n", $strDateModifiedFirst, $strDateModifiedFirst);
         } elseif ($strDateModified == "after" && $strDateModifiedFirst instanceof QDateTime) {
             $strDateModifiedFirst = QApplication::$Database[1]->SqlVariable($strDateModifiedFirst->Timestamp, false);
             $arrSearchSql['strDateModifiedSql'] = sprintf("AND (UNIX_TIMESTAMP(`asset_transaction`.`modified_date`) > %s OR UNIX_TIMESTAMP(`asset_transaction`.`creation_date`) > %s)\n", $strDateModifiedFirst, $strDateModifiedFirst);
         } elseif ($strDateModified == "between" && $strDateModifiedFirst instanceof QDateTime && $strDateModifiedLast instanceof QDateTime) {
             $strDateModifiedFirst = QApplication::$Database[1]->SqlVariable($strDateModifiedFirst->Timestamp, false);
             // Added 86399 (23 hrs., 59 mins., 59 secs) because the After variable needs to include the date given
             // When only a date is given, conversion to a timestamp assumes 12:00am
             $strDateModifiedLast = QApplication::$Database[1]->SqlVariable($strDateModifiedLast->Timestamp, false) + 86399;
             $arrSearchSql['strDateModifiedSql'] = sprintf("AND (UNIX_TIMESTAMP(`asset_transaction`.`modified_date`) > %s AND UNIX_TIMESTAMP(`asset_transaction`.`modified_date`) < %s", $strDateModifiedFirst, $strDateModifiedLast);
             $arrSearchSql['strDateModifiedSql'] .= sprintf(" OR UNIX_TIMESTAMP(`asset_transaction`.`creation_date`) > %s AND UNIX_TIMESTAMP(`asset_transaction`.`creation_date`) < %s)\n", $strDateModifiedFirst, $strDateModifiedLast);
         }
     }
     $strSortByDate = sprintf("\n        `asset_transaction__transaction_id__modified_date` %s,\n        `asset_transaction__transaction_id__creation_date` %s,\n\t\t\t", $strSortByDate, $strSortByDate);
     $arrCustomFieldSql = CustomField::GenerateHelperSql(EntityQtype::Asset);
     $strQuery = sprintf('
     SELECT
     	`asset_transaction`.`asset_transaction_id` AS `asset_transaction_id`,
     	`asset_transaction`.`asset_id` AS `asset_id`,
     	`asset_transaction`.`transaction_id` AS `transaction_id`,
     	`asset_transaction`.`parent_asset_transaction_id` AS `parent_asset_transaction_id`,
     	`asset_transaction`.`source_location_id` AS `source_location_id`,
     	`asset_transaction`.`destination_location_id` AS `destination_location_id`,
     	`asset_transaction`.`new_asset_flag` AS `new_asset_flag`,
     	`asset_transaction`.`new_asset_id` AS `new_asset_id`,
     	`asset_transaction`.`schedule_receipt_flag` AS `schedule_receipt_flag`,
     	`asset_transaction`.`schedule_receipt_due_date` AS `schedule_receipt_due_date`,
     	`asset_transaction`.`created_by` AS `created_by`,
     	`asset_transaction`.`creation_date` AS `creation_date`,
     	`asset_transaction`.`modified_by` AS `modified_by`,
     	`asset_transaction`.`modified_date` AS `modified_date`
     	%s
     	%s
     FROM
     	`asset_transaction` AS `asset_transaction`
     	%s
     	%s
     WHERE
       1=1
       %s
       %s
       %s
       %s
       %s
       %s
       %s
       %s
       %s
       %s
     ORDER BY
       %s
       `transaction_id`,
       `asset_transaction__asset_id__asset_code`
   ', $objQueryExpansion->GetSelectSql(",\n\t\t\t\t\t", ",\n\t\t\t\t\t"), $arrCustomFieldSql['strSelect'], $objQueryExpansion->GetFromSql("", "\n\t\t\t\t\t"), str_replace("`asset`.`asset_id`", " `asset_transaction__asset_id`.`asset_id`", $arrCustomFieldSql['strFrom']), $strTransactionTypes, $strAssetModel, $strAssetCode, $strAssetModelCode, $strUser, $strCheckedOutBy, $strReservedBy, $strCategory, $strManufacturer, $arrSearchSql['strDateModifiedSql'], $strSortByDate);
     if ($blnReturnStrQuery) {
         return $strQuery;
     } else {
         $objDatabase = AssetTransaction::GetDatabase();
         $objDbResult = $objDatabase->Query($strQuery);
         return AssetTransaction::InstantiateDbResult($objDbResult);
     }
 }
コード例 #2
0
 /**
  * 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 intAssetTransactionId
  * @return AssetTransaction[]
  */
 public static function GetJournalForId($intAssetTransactionId)
 {
     $objDatabase = AssetTransaction::GetDatabase()->JournalingDatabase;
     $objResult = $objDatabase->Query('SELECT * FROM asset_transaction WHERE asset_transaction_id = ' . $objDatabase->SqlVariable($intAssetTransactionId) . ' ORDER BY __sys_date');
     return AssetTransaction::InstantiateDbResult($objResult);
 }
コード例 #3
0
 /**
  * Static Qcodo Query method to query for an array of AssetTransaction 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 AssetTransaction[] the queried objects as an array
  */
 public static function QueryArray(QQCondition $objConditions, $objOptionalClauses = null, $mixParameterArray = null)
 {
     // Get the Query Statement
     try {
         $strQuery = AssetTransaction::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 AssetTransaction::InstantiateDbResult($objDbResult, $objQueryBuilder->ExpandAsArrayNodes);
 }