<?php
// Load class
...
// Common variables
// ================
...
$snippet = 'ecSaveQuotes';
$submit = $_POST['submit'];
$submission = (int) $_GET['submission'];
// Get Form fields
// ===============
$formFields = $hook->getValues();
$customer_fields = array(
'firstname' => $formFields['firstname'],
...
);
$request_fields = array(
'cutomer' => $formFields['customerid'],
...
);
$process_fields = array(
'request' => $formFields['requestid'],
...
);
// Save the quote and update related objects
// =========================================
$process = $modx->newObject('quoteProcess', $process_fields);
$customer = $modx->getObject('quoteCustomer', $formFields['customerid']);
$customer->fromArray($customer_fields);
$request = $modx->getObject('quoteRequest', $formFields['requestid']);
$request->fromArray($request_fields);
if ($customer->save() && $request->save() && $process->save()) {
return true;
} else {
$modx->log(xPDO::LOG_LEVEL_ERROR, 'An error occured while saving the quote.', '', $snippet, __FILE__, __LINE__);
$hook->addError('error_message', $error_message);
return false;
}
[[!FormIt@Estimator?
&preHooks=`ecLoadRequests`
&hooks=`ecSaveQuotes,email,redirect`
&emailSubject=`Price Estimate`
&emailTpl=`tplEstimatorEmail`
&emailFrom=`[email protected]`
&emailFromName=`[[currentUser]]`
&emailTo=`[email protected]`
&redirectTo=`34`
&store=`1`
]]
[[$tplEstimatorForm]]This question has been answered by treigh. See the first response.
<?php
// Load class
// ==========
...
$snippet = 'ecLoadRequests';
$submission = (int) $_GET["submission"];
// Get the existing quote request
// ==============================
if (!empty($submission)) {
$request = $modx->getObject('quoteRequest', array(
'submissionid' => $submission
));
if ($request) {
// Request object is not null/empty
// Get request fields
$requestid = $request->get('id');
...
// Get the related customer + assign placeholders
$customer = $request->getOne('Customer');
$customerid = $customer->get('id');
...
// Set customer placeholders
$modx->setPlaceholders(array(
'customerid' => $customerid,
'firstname' => $firstname,
...
), 'eq.');
// Set request placeholders
$modx->setPlaceholders(array(
'requestid' => $requestid,
'customer' => $customerid,
'contentlist' => $contentlist
...
), '');
} else {
// Show and log error message if quote request is not found with supplied submissionid
$hook->addError('error_message', 'Could not find Quote Request with ID: ' . $submission);
$modx->log(xPDO::LOG_LEVEL_ERROR, 'Could not find Quote Request with ID: ' . $submission, '', $snippet, __FILE__, __LINE__);
//return false;
}
} else {
// Show and log error message if no valid submission id supplied
$hook->addError('error_message', 'No valid submission id supplied');
$modx->log(xPDO::LOG_LEVEL_ERROR, 'No valid submission id supplied', '', $snippet, __FILE__, __LINE__);
//return false;
}
return true;