$queryGenerator->setFields(array('id', 'firstname')); $queryGenerator->addCondition('assigned_user_id', 'Administrator', 'e'); $query = $queryGenerator->getQuery(); echo "{$query}<br>"; testquery($query); echo "<h2>exists condition</h2>"; $queryGenerator = new QueryGenerator('Contacts', $current_user); $queryGenerator->setFields(array('id', 'accountname', 'firstname')); $queryGenerator->addReferenceModuleFieldCondition('Accounts', 'account_id', 'accountname', 'EDFG Group Limited', 'exists'); $query = $queryGenerator->getQuery(); echo "{$query}<br>"; testquery($query); echo "<h2>Query with smownerid of rel module</h2>"; $queryGenerator = new QueryGenerator("Contacts", $current_user); $queryGenerator->setFields(array('id', 'accountname', 'Accounts.assigned_user_id')); $queryGenerator->addReferenceModuleFieldCondition('Accounts', 'account_id', 'accountname', 'EDFG Group Limited', 'exists'); $query = $queryGenerator->getQuery(); echo "{$query}<br>"; testquery($query); echo "<h2>Query with subject of Invoice and SO and account_id of rel module</h2>"; $queryGenerator = new QueryGenerator("Invoice", $current_user); $queryGenerator->setFields(array('id', 'subject', 'Accounts.assigned_user_id', 'SalesOrder.subject', 'SalesOrder.account_id')); //$queryGenerator->addReferenceModuleFieldCondition('Accounts', 'account_id', 'accountname', 'EDFG Group Limited', 'exists'); $query = $queryGenerator->getQuery(); echo "{$query}<br>"; testquery($query); echo "<h2>Query for modules with relation on themselves</h2>"; $queryGenerator = new QueryGenerator('Accounts', $current_user); $queryGenerator->setFields(array('id', 'accountname', 'website', 'Accounts.accountname', 'Accounts.website')); $query = $queryGenerator->getQuery(); echo "{$query}<br>";
function dup_dependent_rec($record_id, $relatedModule, $new_record_id, $dependent_tables, $maped_relations) { global $adb, $current_user; $invmods = getInventoryModules(); foreach ($dependent_tables as $module => $tables) { if (in_array($module, $invmods)) { continue; } // we can't duplicate these if (empty($maped_relations) or isset($maped_relations[$module])) { require_once "modules/" . $module . "/" . $module . ".php"; $handler = vtws_getModuleHandlerFromName($module, $current_user); $meta = $handler->getMeta(); $related_field = $tables['columname']; $queryGenerator = new QueryGenerator($module, $current_user); $queryGenerator->setFields(array('id')); $queryGenerator->addReferenceModuleFieldCondition($relatedModule, $related_field, 'id', $record_id, 'e'); $query = $queryGenerator->getQuery(); $result = $adb->pquery($query, array()); while ($r = $adb->fetch_array($result)) { // Duplicate dependent records $entity = new $module(); $entity->mode = ''; $entity->retrieve_entity_info($r[0], $module); $entity->column_fields[$related_field] = $new_record_id; $entity->column_fields = DataTransform::sanitizeRetrieveEntityInfo($entity->column_fields, $meta); $entity->save($module); } } } }