/** * Static Qcodo Query method to query for an array of Receipt 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 Receipt[] the queried objects as an array */ public static function QueryArray(QQCondition $objConditions, $objOptionalClauses = null, $mixParameterArray = null) { // Get the Query Statement try { $strQuery = Receipt::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 Receipt::InstantiateDbResult($objDbResult, $objQueryBuilder->ExpandAsArrayNodes); }
/** * Load an array of Receipt objects * by Company, Contact, Receipt Number, Asset Code, InventoryModelCode, or Status * using the receipt_custom_field_helper table * * @param string $strFromCompany * @param string $strFromContact * @param string $strReceiptNumber * @param string $strAssetCode * @param string $strInventoryModelCode * @param int $intStatus * @param string $strNote * @param string $strDateModified * @param string $strDateModifiedFirst * @param string $strDateModifiedLast * @param string $strOrderBy * @param string $strLimit * @param array $objExpansionMap map of referenced columns to be immediately expanded via early-binding * @return Receipt[] */ public static function LoadArrayBySearchHelper($strFromCompany = null, $strFromContact = null, $strReceiptNumber = null, $strAssetCode = null, $strInventoryModelCode = null, $intStatus = null, $strNote = null, $strDueDate = null, $strReceiptDate = null, $arrCustomFields = null, $strDateModified = null, $strDateModifiedFirst = null, $strDateModifiedLast = null, $blnAttachment = null, $strOrderBy = null, $strLimit = null, $objExpansionMap = null) { Receipt::ArrayQueryHelper($strOrderBy, $strLimit, $strLimitPrefix, $strLimitSuffix, $strExpandSelect, $strExpandFrom, $objExpansionMap, $objDatabase); // Setup QueryExpansion $objQueryExpansion = new QQueryExpansion(); if ($objExpansionMap) { try { Receipt::ExpandQuery('receipt', null, $objExpansionMap, $objQueryExpansion); } catch (QCallerException $objExc) { $objExc->IncrementOffset(); throw $objExc; } } $arrSearchSql = Receipt::GenerateSearchSql($strFromCompany, $strFromContact, $strReceiptNumber, $strAssetCode, $strInventoryModelCode, $intStatus, $strNote, $strDueDate, $strReceiptDate, $arrCustomFields, $strDateModified, $strDateModifiedFirst, $strDateModifiedLast, $blnAttachment); $arrAttachmentSql = Attachment::GenerateSql(EntityQtype::Receipt); $arrCustomFieldSql = CustomField::GenerateHelperSql(EntityQtype::Receipt); $strQuery = sprintf(' SELECT %s DISTINCT `receipt`.`receipt_id` AS `receipt_id`, `receipt`.`transaction_id` AS `transaction_id`, `receipt`.`from_company_id` AS `from_company_id`, `receipt`.`from_contact_id` AS `from_contact_id`, `receipt`.`to_contact_id` AS `to_contact_id`, `receipt`.`to_address_id` AS `to_address_id`, `receipt`.`receipt_number` AS `receipt_number`, `receipt`.`due_date` AS `due_date`, `receipt`.`receipt_date` AS `receipt_date`, `receipt`.`received_flag` AS `received_flag`, `receipt`.`created_by` AS `created_by`, `receipt`.`creation_date` AS `creation_date`, `receipt`.`modified_by` AS `modified_by`, `receipt`.`modified_date` AS `modified_date` %s %s %s FROM `receipt` AS `receipt` %s %s %s %s %s WHERE 1=1 %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['strAssetCodeFromSql'], $arrSearchSql['strInventoryModelCodeFromSql'], $arrSearchSql['strFromCompanySql'], $arrSearchSql['strFromContactSql'], $arrSearchSql['strReceiptNumberSql'], $arrSearchSql['strAssetCodeSql'], $arrSearchSql['strInventoryModelCodeSql'], $arrSearchSql['strStatusSql'], $arrSearchSql['strNoteSql'], $arrSearchSql['strDueDateSql'], $arrSearchSql['strReceiptDateSql'], $arrSearchSql['strCustomFieldsSql'], $arrSearchSql['strDateModifiedSql'], $arrSearchSql['strAttachmentSql'], $arrSearchSql['strAuthorizationSql'], $arrAttachmentSql['strGroupBy'], $strOrderBy, $strLimitSuffix); //echo($strQuery); exit; $objDbResult = $objDatabase->Query($strQuery); return Receipt::InstantiateDbResult($objDbResult); }
$objArray = Category::InstantiateDbResult($objDbResult); break; case 7: $objArray = Company::InstantiateDbResult($objDbResult); break; case 8: $objArray = Contact::InstantiateDbResult($objDbResult); break; case 9: $objArray = Address::InstantiateDbResult($objDbResult); break; case 10: $objArray = Shipment::InstantiateDbResult($objDbResult); break; case 11: $objArray = Receipt::InstantiateDbResult($objDbResult); break; } if ($objArray) { foreach ($objArray as $obj) { $strInsertAssetSql = ''; if ($objEntityQtypeCustomFieldArray) { foreach ($objEntityQtypeCustomFieldArray as $objEntityQtypeCustomField) { $strInsertAssetSql .= ", '" . addslashes($obj->GetVirtualAttribute($objEntityQtypeCustomField->CustomFieldId)) . "'"; } } $strQuery = sprintf('INSERT INTO %s (%s_id %s) VALUES (%s %s);', $strHelperTable, $strTableName, $arrCustomFieldSql['strInsertColumnHeader'], $obj->{$strObjectId}, $strInsertAssetSql); echo $strQuery . "<br />"; } } }
/** * 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 intReceiptId * @return Receipt[] */ public static function GetJournalForId($intReceiptId) { $objDatabase = Receipt::GetDatabase()->JournalingDatabase; $objResult = $objDatabase->Query('SELECT * FROM receipt WHERE receipt_id = ' . $objDatabase->SqlVariable($intReceiptId) . ' ORDER BY __sys_date'); return Receipt::InstantiateDbResult($objResult); }