if (isset($_REQUEST['product_id']) && !empty($_REQUEST['product_id'])) {
    $quoteLine = new QuoteLine();
    $quoteLine->productname = $product->name;
    $quoteLine->productid = $product->id;
    $quoteLine->productnum = $product->pnum;
    //$quoteLine->pages = $product->volume;
    $quoteLine->quantity = $product->quantity;
    $xtpl_data['ACCOUNT_ID'] = $product->account_id;
    $xtpl_data['ACCOUNT_NAME'] = $product->account_name;
    $xtpl_data['BILLTOCONTACTID'] = $product->contact_id;
    $xtpl_data['BILLTOCONTACTNAME'] = $product->contact_name;
    $xtpl_data['NAME'] = $mod_strings['LBL_QUOTE'] . '-' . $product->name;
    $focus->payment_method = 'Cash';
    $validuntil = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 30, date("Y")));
    $xtpl_data['VALIDUNTIL'] = $validuntil;
    $product_estimate = new ProductEstimate();
    $return_array = $product_estimate->get_full_list("id", "product_id='" . $product->id . "'");
    foreach ($return_array as $value) {
        $quoteLine->estp = $value->total_estimate;
        $quoteLine->price = $value->total_estimate;
    }
    $component = new ProductComponents();
    $return_array = $component->get_full_list("id", "parent_id='" . $product->id . "'");
    foreach ($return_array as $value) {
        $pages = $pages + $value->volume;
    }
    $quoteLine->pages = $pages;
    $xtpl->assign("PRODUCTROWS", $focus->getProductRow($quoteLine, 0, true));
    $xtpl->parse("main.row1");
    $account = new Account();
    $return_array = $account->get_full_list("id", "accounts.id='" . $product->account_id . "'");
 * Portions created by SugarCRM are Copyright (C) 2004-2006 SugarCRM, Inc.;
 * All Rights Reserved.
 * Contributor(s): ______________________________________.
 */
require_once 'XTemplate/xtpl.php';
require_once 'data/Tracker.php';
require_once 'modules/ProductEstimate/ProductEstimate.php';
require_once 'include/time.php';
require_once 'modules/ProductEstimate/Forms.php';
global $timedate;
global $app_strings;
global $app_list_strings;
global $current_language;
global $current_user;
global $sugar_version, $sugar_config;
$focus = new ProductEstimate();
if (!empty($_REQUEST['record'])) {
    $focus->retrieve($_REQUEST['record']);
}
$precalc = null;
if (isset($_REQUEST['precalc']) && !empty($_REQUEST['precalc'])) {
    $precalc = $_REQUEST['precalc'];
}
if (!empty($_REQUEST['product_id']) && isset($_REQUEST['product_id']) && !is_null($_REQUEST['product_id'])) {
    $product_id = $_REQUEST['product_id'];
    $components_estimate = $focus->componentsEstimate($product_id);
} elseif (isset($focus->product_id) && !is_null($focus->product_id)) {
    $product_id = $focus->product_id;
    $components_estimate = $focus->componentsEstimate($product_id);
} else {
    exit;
 * License.
 *
 * All copies of the Covered Code must include on each user interface screen:
 *    (i) the "Powered by SugarCRM" logo and
 *    (ii) the SugarCRM copyright notice
 * in the same form as they appear in the distribution.  See full license for
 * requirements.
 *
 * The Original Code is: SugarCRM Open Source
 * The Initial Developer of the Original Code is SugarCRM, Inc.
 * Portions created by SugarCRM are Copyright (C) 2004-2006 SugarCRM, Inc.;
 * All Rights Reserved.
 * Contributor(s): ______________________________________.
 */
require_once 'modules/ProductEstimate/ProductEstimate.php';
$sugarbean = new ProductEstimate();
// perform the delete if given a record to delete
if (empty($_REQUEST['record'])) {
    $GLOBALS['log']->info('delete called without a record id specified');
} else {
    $record = $_REQUEST['record'];
    $sugarbean->retrieve($record);
    if (!$sugarbean->ACLAccess('Delete')) {
        ACLController::displayNoAccess(true);
        sugar_cleanup(true);
    }
    $GLOBALS['log']->info("deleting record: {$record}");
    $sugarbean->delete_estimate($record);
    $sugarbean->mark_deleted($record);
}
// handle the return location variables