|
/**
|
|
* This will save this object's <%= $objTable->ClassName; %> instance,
|
|
* updating only the fields which have had a control created for it.
|
|
*/
|
|
public function Save<%= $objTable->ClassName; %>() {
|
|
try {
|
|
// Update any fields for controls that have been created
|
|
<% foreach ($objTable->ColumnArray as $objColumn) { %><%
|
|
if ((!$objColumn->Identity) && (!$objColumn->Timestamp)) {
|
|
// Use the "control_create_" subtemplates to generate the code
|
|
// required to create/setup the control.
|
|
$mixArguments = array(
|
|
'objColumn' => $objColumn,
|
|
'strObjectName' => $objCodeGen->VariableNameFromTable($objTable->Name),
|
|
'strClassName' => $objTable->ClassName,
|
|
'strControlId' => $objCodeGen->FormControlVariableNameForColumn($objColumn)
|
|
);
|
|
|
|
// Figure out WHICH "control_create_" to use
|
|
if ($objColumn->Reference) {
|
|
if ($objColumn->Reference->IsType)
|
|
$strTemplateFilename = 'type';
|
|
else
|
|
$strTemplateFilename = 'reference';
|
|
} else switch ($objColumn->VariableType) {
|
|
case QType::Boolean:
|
|
$strTemplateFilename = 'checkbox';
|
|
break;
|
|
case QType::DateTime:
|
|
$strTemplateFilename = 'calendar';
|
|
break;
|
|
default:
|
|
$strTemplateFilename = 'textbox';
|
|
break;
|
|
}
|
|
|
|
// Get the subtemplate and evaluate
|
|
return $objCodeGen->EvaluateSubTemplate(sprintf('control_update_%s.tpl', $strTemplateFilename), $strModuleName, $mixArguments) . "\n";
|
|
} else
|
|
return null;
|
|
%><% } %>
|
|
|
|
// Update any UniqueReverseReferences (if any) for controls that have been created for it
|
|
<% foreach ($objTable->ReverseReferenceArray as $objReverseReference) { %><%
|
|
if ($objReverseReference->Unique) {
|
|
// Use the "control_update_unique_reversereference" subtemplate to generate the code
|
|
// required to create/setup the control.
|
|
$mixArguments = array(
|
|
'objReverseReference' => $objReverseReference,
|
|
'strObjectName' => $objCodeGen->VariableNameFromTable($objTable->Name),
|
|
'strClassName' => $objTable->ClassName,
|
|
'strControlId' => $objCodeGen->FormControlVariableNameForUniqueReverseReference($objReverseReference)
|
|
);
|
|
|
|
// Get the subtemplate and evaluate
|
|
return $objCodeGen->EvaluateSubTemplate('control_update_unique_reversereference.tpl', $strModuleName, $mixArguments) . "\n";
|
|
} else
|
|
return null;
|
|
%><% } %>
|
|
|
|
// Save the <%= $objTable->ClassName; %> object
|
|
$this-><%= $objCodeGen->VariableNameFromTable($objTable->Name); %>->Save();
|
|
|
|
// Finally, update any ManyToManyReferences (if any)
|
|
<% foreach ($objTable->ManyToManyReferenceArray as $objManyToManyReference) { %>
|
|
$this-><%= $objCodeGen->FormControlVariableNameForManyToManyReference($objManyToManyReference); %>_Update();
|
|
<% } %>
|
|
} catch (QCallerException $objExc) {
|
|
$objExc->IncrementOffset();
|
|
throw $objExc;
|
|
}
|
|
}
|