$search =& cw_session_register('search');
if (isset($_GET['doc_type'])) {
    $search['placed_docs']['doc_type'] = $doc_type;
}
if (isset($_GET['fromdate'])) {
    if (empty($fromdate)) {
        $search['placed_docs']['basic']['creation_date_start'] = 0;
    } else {
        $search['placed_docs']['basic']['creation_date_start'] = cw_core_strtotime($fromdate);
    }
}
if (isset($_GET['todate'])) {
    if (empty($fromdate)) {
        $search['placed_docs']['basic']['creation_date_end'] = 0;
    } else {
        $search['placed_docs']['basic']['creation_date_end'] = cw_core_strtotime($todate) + 86399;
    }
}
$search['placed_docs']['basic']['customer_id'] = $user;
$_tmp_cond = $search_data['orders'];
if ($search['placed_docs']['doc_type']) {
    $docs_type = $search['placed_docs']['doc_type'];
} else {
    $docs_type = 'O';
}
$search_data['orders'][$docs_type] = $search['placed_docs'];
$mode = 'search';
include $app_main_dir . '/include/orders/orders.php';
$mode = 'docs';
$search['placed_docs'] = $search_data['orders'][$docs_type];
$search_data['orders'] = $_tmp_cond;
function dod_modify_bonuses($generator_id)
{
    global $tables, $bonus_names;
    global $dod_bonuses, $dod_bonus;
    if (empty($generator_id)) {
        $GLOBALS['_dod_bonuses'] =& $dod_bonuses;
        cw_session_register('_dod_bonuses');
        $GLOBALS['_dod_bonus'] =& $dod_bonus;
        cw_session_register('_dod_bonus');
        return array(true, null);
        //return array(false, 'generator Id was not provided');
    }
    db_query("DELETE FROM {$tables['dod_bonuses']} WHERE generator_id = '{$generator_id}'");
    db_query("DELETE FROM {$tables['dod_bonus_details']} WHERE generator_id = '{$generator_id}'");
    $available_fields = array('bonus_id' => 'int', 'generator_id' => 'int', 'type' => 'string', 'apply' => 'int', 'coupon' => 'string', 'discount' => 'float', 'disctype' => 'int');
    $excl_from_base_list = array('bonus_id');
    foreach ($excl_from_base_list as $field) {
        if (isset($available_fields[$field])) {
            unset($available_fields[$field]);
        }
    }
    $optional_fields = array('discount', 'disctype');
    $date_fields = array();
    $skip_striptags_fields = array();
    if (empty($dod_bonuses[DOD_DISCOUNT])) {
        $dod_bonuses[DOD_DISCOUNT] = 1;
        $unused_dod_discount_bonus = 1;
    } else {
        $unused_dod_discount_bonus = 0;
    }
    if (empty($dod_bonuses) || !is_array($dod_bonuses)) {
        return array(true, null);
    }
    $available_btypes = array(DOD_DISCOUNT, DOD_FREE_PRODS, DOD_FREE_SHIP, DOD_COUPON);
    $bonuses = array();
    foreach ($dod_bonuses as $bonus_type => $trash) {
        if (!isset($dod_bonus[$bonus_type]) || empty($dod_bonus[$bonus_type]) || !in_array($bonus_type, $available_btypes)) {
            unset($dod_bonuses[$bonus_type]);
        } else {
            $bonuses[$bonus_type] = $dod_bonus[$bonus_type];
        }
    }
    unset($dod_bonus);
    if (empty($dod_bonuses) || empty($bonuses)) {
        return array(true, null);
    }
    $GLOBALS['_dod_bonuses'] =& $dod_bonuses;
    cw_session_register('_dod_bonuses');
    $errors = array();
    $tmp_optional_fields = $optional_fields;
    foreach ($bonuses as $bonus_type => $input_data) {
        $optional_fields = $tmp_optional_fields;
        $additional_lang_data = array();
        $pids = $cids = array();
        $input_data['generator_id'] = $generator_id;
        $input_data['type'] = $bonus_type;
        if ($bonus_type != DOD_COUPON) {
            $input_data['coupon'] = 1;
            if ($input_data['apply'] == DOD_APPLY_PRODS || $bonus_type == DOD_FREE_PRODS || $bonus_type == DOD_DISCOUNT) {
                if (!isset($input_data['products']) && !isset($input_data['cats']) && !isset($input_data['mans']) && !isset($input_data['attr']) || empty($input_data['products']) && empty($input_data['cats']) && empty($input_data['mans']) && empty($input_data['attr'])) {
                    $additional_lang_data = array('bonus' => cw_get_langvar_by_name($bonus_names[$bonus_type]));
                    $errors[] = cw_get_langvar_by_name('msg_dod_bonus_incorrect', $additional_lang_data);
                    continue;
                }
                if (isset($input_data['products']) && !empty($input_data['products'])) {
                    $products_data = array();
                    foreach ($input_data['products'] as $product_data) {
                        $product_data['id'] = trim($product_data['id']);
                        $products_data[$product_data['id']] = $product_data['quantity'];
                    }
                    $pids = array_keys($products_data);
                    $pids = cw_query_column("SELECT product_id as id FROM {$tables['products']} WHERE product_id IN ('" . implode("','", $pids) . "')");
                }
                if (isset($input_data['cats']) && !empty($input_data['cats'])) {
                    $cats_data = array();
                    foreach ($input_data['cats'] as $cat_data) {
                        $cat_data['id'] = trim($cat_data['id']);
                        $cats_data[$cat_data['id']] = $cat_data['quantity'];
                    }
                    $cids = array_keys($cats_data);
                    $cids = cw_query_column("SELECT category_id as id FROM {$tables['categories']} WHERE category_id IN ('" . implode("','", $cids) . "')");
                }
                if (isset($input_data['mans']) && !empty($input_data['mans'])) {
                    $mids = array_values($input_data['mans']);
                }
                if (isset($input_data['attr'])) {
                    // Prepare attributes data
                    if (isset($input_data['attr']) && !empty($input_data['attr'])) {
                        $attr_data = array();
                        foreach ($input_data['attr'] as $a_data) {
                            $attr_data[trim($a_data['attribute_id'])] = array('quantity' => $a_data['quantity'], 'value' => current($a_data['value']), 'operation' => $a_data['operation']);
                        }
                        $attrids = array_keys($attr_data);
                        $attrids = cw_query_column("SELECT attribute_id as id FROM {$tables['attributes']} WHERE attribute_id IN ('" . implode("','", $attrids) . "')");
                    }
                }
                if (empty($pids) && empty($cids) && empty($mids) && empty($attrids)) {
                    $additional_lang_data = array('bonus' => cw_get_langvar_by_name($bonus_names[$bonus_type]));
                    $errors[] = cw_get_langvar_by_name('msg_dod_bonus_incorrect', $additional_lang_data);
                    continue;
                }
            }
        }
        if ($bonus_type != DOD_DISCOUNT && $bonus_type != DOD_FREE_SHIP) {
            $input_data['discount'] = $input_data['disctype'] = null;
        } elseif ($bonus_type == DOD_FREE_SHIP) {
            $input_data['disctype'] = null;
        } else {
            $optional_fields = array();
        }
        if (in_array($bonus_type, array(DOD_FREE_PRODS, DOD_COUPON))) {
            $optional_fields[] = 'apply';
        }
        $data = array();
        foreach ($date_fields as $field) {
            if (isset($input_data[$field]) && !empty($input_data[$field])) {
                $input_data[$field] = cw_core_strtotime($input_data[$field]);
            }
        }
        $error = null;
        foreach ($available_fields as $field => $field_type) {
            if (isset($input_data[$field])) {
                $result = settype($input_data[$field], $field_type);
                if ($result === false) {
                    $error = 'msg_dod_incorrect_field_type';
                    $additional_lang_data = array('field_name' => $field);
                    break;
                }
                if (empty($input_data[$field]) && !($bonus_type == DOD_DISCOUNT && $unused_dod_discount_bonus)) {
                    if (in_array($field, $optional_fields)) {
                        $data[$field] = null;
                    } else {
                        $additional_lang_data = array('bonus' => cw_get_langvar_by_name($bonus_names[$bonus_type]));
                        $error = 'msg_dod_bonus_incorrect';
                        break;
                    }
                } else {
                    if ($field_type == 'string' && !in_array($field, $skip_striptags_fields)) {
                        $input_data[$field] = cw_strip_tags($input_data[$field]);
                    }
                    $data[$field] =& $input_data[$field];
                }
            } else {
                if ($field_type == 'bool') {
                    $data[$field] = 0;
                } else {
                    if (in_array($field, $optional_fields)) {
                        $data[$field] = null;
                    } else {
                        $additional_lang_data = array('bonus' => cw_get_langvar_by_name($bonus_names[$bonus_type]));
                        $error = 'msg_dod_bonus_incorrect';
                        break;
                    }
                }
            }
        }
        if (!empty($error)) {
            $errors[] = cw_get_langvar_by_name($error, $additional_lang_data);
            continue;
        }
        if (empty($data)) {
            continue;
        }
        if ($data['type'] == DOD_DISCOUNT) {
            $data['unused'] = $unused_dod_discount_bonus;
        }
        $bonus_id = cw_array2insert($tables['dod_bonuses'], cw_addslashes($data));
        if ($bonus_type == DOD_FREE_SHIP) {
            foreach ($input_data['methods'] as $trash => $shipping_id) {
                $data = array('generator_id' => $generator_id, 'bonus_id' => $bonus_id, 'object_id' => $shipping_id, 'object_type' => DOD_OBJ_TYPE_SHIPPING);
                cw_array2insert($tables['dod_bonus_details'], cw_addslashes($data));
            }
        }
        if ($bonus_type != DOD_COUPON) {
            if ($input_data['apply'] == DOD_APPLY_PRODS || $bonus_type == DOD_FREE_PRODS || $bonus_type == DOD_DISCOUNT) {
                if (!empty($pids)) {
                    $data = array();
                    $data['generator_id'] = $generator_id;
                    $data['bonus_id'] = $bonus_id;
                    foreach ($pids as $pid) {
                        $data['object_id'] = $pid;
                        $data['object_type'] = DOD_OBJ_TYPE_PRODS;
                        $data['quantity'] = $products_data[$pid];
                        if (empty($data['quantity'])) {
                            $data['quantity'] = 1;
                        }
                        cw_array2insert($tables['dod_bonus_details'], cw_addslashes($data));
                    }
                }
                if (!empty($cids)) {
                    $data = array();
                    $data['generator_id'] = $generator_id;
                    $data['bonus_id'] = $bonus_id;
                    foreach ($cids as $cid) {
                        $data['object_id'] = $cid;
                        $data['object_type'] = DOD_OBJ_TYPE_CATS;
                        $data['quantity'] = $cats_data[$cid];
                        if (empty($data['quantity'])) {
                            $data['quantity'] = 1;
                        }
                        cw_array2insert($tables['dod_bonus_details'], cw_addslashes($data));
                    }
                }
                if (!empty($mids)) {
                    $data = array();
                    $data['generator_id'] = $generator_id;
                    $data['bonus_id'] = $bonus_id;
                    $data['quantity'] = 1;
                    foreach ($mids as $mid) {
                        $data['object_id'] = $mid;
                        $data['object_type'] = DOD_OBJ_TYPE_MANS;
                        cw_array2insert($tables['dod_bonus_details'], cw_addslashes($data));
                    }
                }
                // Save attributes to condition details
                if (!empty($attrids)) {
                    $data = array();
                    $data['generator_id'] = $generator_id;
                    $data['bonus_id'] = $bonus_id;
                    $data['quantity'] = 1;
                    foreach ($attrids as $aid) {
                        $data['object_id'] = $aid;
                        $data['object_type'] = DOD_OBJ_TYPE_ATTR;
                        $data['param1'] = $attr_data[$aid]['value'];
                        $data['param2'] = $attr_data[$aid]['operation'];
                        cw_array2insert($tables['dod_bonus_details'], cw_addslashes($data));
                    }
                }
            }
        }
        unset($bonuses[$bonus_type]);
    }
    if (!empty($bonuses)) {
        $GLOBALS['_dod_bonus'] =& $bonuses;
        cw_session_register('_dod_bonus');
    }
    if (!empty($errors)) {
        $error = implode("<br />\n", $errors);
        return array(false, $error);
    }
    return array(true, null);
}
<?php

include $app_main_dir . '/include/security.php';
$search =& cw_session_register('search', array());
if (isset($_GET['substring'])) {
    $search['products_orders']['substring'] = $substring;
}
if (isset($_GET['fromdate'])) {
    $search['products_orders']['fromdate'] = cw_core_strtotime($fromdate);
}
if (isset($_GET['dateto'])) {
    $search['products_orders']['todate'] = cw_core_strtotime($todate) + 86399;
}
if (isset($_GET['doc_type'])) {
    $search['products_orders']['doc_type'] = $doc_type;
}
if ($mode == 'search_orders') {
    $conditions = '';
    $data = $search['products_orders'];
    if ($data['substring']) {
        $conditions .= " and (di.product like '%{$data['substring']}%' or di.productcode like '%{$data['substring']}%')";
    }
    if ($data['fromdate']) {
        $conditions .= " and date >= '{$data['fromdate']}'";
    }
    if ($data['todate']) {
        $conditions .= " and date <= '{$data['todate']}'";
    }
    $query = "from {$tables['docs']} as d, {$tables['docs_items']} as di, {$tables['docs_info']} as dim where di.doc_id=d.doc_id and d.type='{$data['doc_type']}' and dim.doc_info_id=d.doc_info_id and di.product_id='{$product_id}' " . $conditions . " group by d.doc_id";
    $_res = db_query("select count(*) {$query}");
    $total_items = db_num_rows($_res);
    $data['filename'] = basename($_FILES['userfile']['name']);
    $data['descr'] = $descr;
    if ($data['file_path']) {
        cw_file_area_save('customers_generated_docs', $user, $data);
    }
    cw_header_location("index.php?target={$target}&mode={$mode}&user={$user}");
}
$search =& cw_session_register('search');
if (isset($_GET['substring'])) {
    $search['generated_docs']['substring'] = $substring;
}
if (isset($_GET['fromdate'])) {
    $search['generated_docs']['fromdate'] = cw_core_strtotime($fromdate);
}
if (isset($_GET['dateto'])) {
    $search['generated_docs']['todate'] = cw_core_strtotime($todate) + 86399;
}
$conditions = '';
$data = $search['generated_docs'];
if ($data['substring']) {
    $conditions .= " and filename like '%{$data['substring']}%'";
}
if ($data['fromdate']) {
    $conditions .= " and date >= '{$data['fromdate']}'";
}
if ($data['todate']) {
    $conditions .= " and date <= '{$data['todate']}'";
}
$smarty->assign('generated_docs', cw_user_get_generated_docs($user, $conditions));
$smarty->assign('main', 'generated_docs');
$smarty->assign('user', $user);
    $data['file_path'] = cw_move_uploaded_file('userfile');
    $data['filename'] = basename($_FILES['userfile']['name']);
    if ($data['file_path']) {
        cw_file_area_save('customers_letters', $user, $data);
    }
    cw_header_location("index.php?target={$target}&mode={$mode}&user={$user}");
}
$search =& cw_session_register('search');
if (isset($_GET['substring'])) {
    $search['letters']['substring'] = $substring;
}
if (isset($_GET['fromdate'])) {
    $search['letters']['fromdate'] = cw_core_strtotime($fromdate);
}
if (isset($_GET['dateto'])) {
    $search['letters']['todate'] = cw_core_strtotime($todate) + 86399;
}
$conditions = '';
$data = $search['letters'];
if ($data['substring']) {
    $conditions .= " and filename like '%{$data['substring']}%'";
}
if ($data['fromdate']) {
    $conditions .= " and date >= '{$data['fromdate']}'";
}
if ($data['todate']) {
    $conditions .= " and date <= '{$data['todate']}'";
}
$smarty->assign('letters', cw_user_get_letters($user, $conditions));
$smarty->assign('main', 'letters');
$smarty->assign('user', $user);
 if ($action == 'update_transation') {
     $record_data['customer_id'] = $user;
     $rules = array('accounting_category_id' => '', 'date_ref' => '', 'customer_id' => '');
     if (!$record_id || !$record['reference']) {
         $rules['total'] = '';
     }
     $fillerror = cw_error_check($record_data, $rules);
     if ($fillerror) {
         $record_saved_data = $record_data;
         $top_message = array('content' => $fillerror, 'type' => 'E');
         cw_header_location("index.php?target={$target}&mode={$mode}&user={$user}&record_id={$record_id}");
     }
     if (!$record_id) {
         $record_id = cw_array2insert('accounting_records', array('date' => cw_core_get_time()));
     }
     $to_update = array('customer_id' => $record_data['customer_id'], 'accounting_category_id' => $record_data['accounting_category_id'], 'descr' => $record_data['descr'], 'date_ref' => cw_core_strtotime($record_data['date_ref']), 'bank_code' => $record_data['bank_code'], 'payment_code' => $record_data['payment_code'], 'status' => $record_data['status']);
     if (!$record['reference']) {
         $to_update['total'] = $record_data['total'];
     }
     cw_array2update('accounting_records', $to_update, "accounting_record_id='{$record_id}'");
     cw_accounting_category_recalc_subcat_count($record_data['accounting_category_id']);
     if (count($_FILES)) {
         foreach ($_FILES['enfiles']['name'] as $index => $name) {
             $data = array();
             $data['file_path'] = cw_move_uploaded_file('enfiles', '', $index);
             $data['filename'] = basename($name);
             if ($data['file_path']) {
                 cw_file_area_save('accounting_records_files', $record_id, $data);
             }
         }
     }
<?php

cw_load('profile_fields');
$fill_error =& cw_session_register('fill_error');
$prefilled_transaction =& cw_session_register('prefilled_transaction');
if ($action == 'update_contacts') {
    if ($content) {
        $to_insert = array('customer_id' => $user, 'date' => $date ? cw_core_strtotime($date) : cw_core_get_time(), 'content' => $content);
        cw_array2insert('customers_contacts', $to_insert);
    }
    cw_header_location("index.php?target={$target}&mode={$mode}&user={$user}");
}
if ($action == 'delete_contacts' && is_array($del)) {
    foreach ($del as $contact_id => $val) {
        db_query("delete from {$tables['customers_contacts']} where contact_id='{$contact_id}' and customer_id='{$user}'");
    }
    cw_header_location("index.php?target={$target}&mode={$mode}&user={$user}");
}
$smarty->assign('contact_dates', cw_query("select * from {$tables['customers_contacts']} where customer_id='{$user}' order by date desc limit 10"));
$smarty->assign('main', 'contact_dates');
$smarty->assign('user', $user);
$smarty->assign('current_section', '');
$smarty->assign('home_style', 'iframe');
function cw_core_process_date_fields(&$posted_data, $date_fields = array(), $multiple_fields = array())
{
    if (is_array($date_fields)) {
        foreach ($date_fields as $section => $fields) {
            foreach ($fields as $field => $type) {
                if ($section) {
                    $process =& $posted_data[$section][$field];
                } else {
                    $process =& $posted_data[$field];
                }
                if ($process) {
                    $process = cw_core_strtotime($process) + $type * 86399;
                }
                # day - 1 sec
            }
        }
    }
    if (is_array($multiple_fields)) {
        foreach ($multiple_fields as $section => $fields) {
            if (is_array($fields)) {
                foreach ($fields as $field) {
                    if ($section) {
                        $process =& $posted_data[$section][$field];
                        $posted_data[$section][$field . '_orig'] = $posted_data[$section][$field];
                        $process_orig =& $posted_data[$section][$field . '_orig'];
                    } else {
                        $process =& $posted_data[$field];
                        $posted_data[$field . '_orig'] = $posted_data[$field];
                        $process_orig =& $posted_data[$field . '_orig'];
                    }
                    if (is_array($process)) {
                        $ret = array();
                        foreach ($process as $k => $v) {
                            if (!empty($v)) {
                                $ret[$v] = true;
                            } elseif ($v == '0') {
                                $ret[$v] = true;
                            } else {
                                unset($process_orig[$k]);
                            }
                        }
                        $process = $ret;
                    }
                }
            }
        }
    }
}
<?php

$search =& cw_session_register('search', array());
if (isset($_GET['substring'])) {
    $search['products_clients']['substring'] = $substring;
}
if (isset($_GET['fromdate'])) {
    $search['products_clients']['fromdate'] = cw_core_strtotime($fromdate);
}
if (isset($_GET['dateto'])) {
    $search['products_clients']['todate'] = cw_core_strtotime($todate) + 86399;
}
if ($mode == 'search_clients') {
    $data = $search['products_clients'];
    $where = array();
    $from_tbls = array();
    $query_joins = array();
    $fields = array("{$tables['docs_user_info']}.customer_id", "{$tables['docs']}.doc_id", 'display_id', '`date`', 'amount', 'price', 'usertype');
    if ($data['fromdate']) {
        $where[] = "`date` >= '{$data['fromdate']}'";
    }
    if ($data['todate']) {
        $where[] = "`date` <= '{$data['todate']}'";
    }
    $from_tbls[] = 'docs_items';
    $query_joins['docs'] = array('parent' => 'docs_items', 'on' => "{$tables['docs']}.type in ('O', 'I', 'S') and {$tables['docs']}.doc_id={$tables['docs_items']}.doc_id");
    $query_joins['docs_user_info'] = array('parent' => 'docs', 'on' => "{$tables['docs_user_info']}.doc_info_id = {$tables['docs']}.doc_info_id");
    if ($data['substring']) {
        $add_conditions = array("{$tables['docs_user_info']}.email like '%{$data['substring']}%'");
        foreach (array('firstname', 'lastname') as $field) {
            $add_conditions[] = "{$tables['customers_addresses']}.{$field} like '%{$data['substring']}%'";
         $aom_orders[$doc_id]['info']['coupon'] = $aom_orders[$doc_id]['info']['coupon'] = "#" . $aom_orders[$doc_id]['doc_id'];
         $aom_orders[$doc_id]['info']['use_coupon_alt'] = "Y";
     }
 } else {
     unset($aom_orders[$doc_id]['info']['use_coupon_discount_alt']);
 }
 if (!empty($total_details['coupon_alt'])) {
     if ($total_details['coupon_alt'] == '__old_coupon__') {
         $aom_orders[$doc_id]['info']['coupon'] = $aom_orders[$doc_id]['info']['coupon'] = $doc_data['order']['coupon'];
         cw_unset($aom_orders[$doc_id]['info'], "use_coupon_alt");
     } else {
         $aom_orders[$doc_id]['info']['coupon'] = $aom_orders[$doc_id]['info']['coupon'] = $total_details['coupon_alt'];
         $aom_orders[$doc_id]['info']['use_coupon_alt'] = "Y";
     }
 }
 $aom_orders[$doc_id]['info']['expiration_date'] = cw_core_strtotime($total_details['expiration_date']);
 $aom_orders[$doc_id]['info']['payment_id'] = $total_details['payment_method'];
 $aom_orders[$doc_id]['info']['payment_label'] = cw_func_call('cw_payment_get_label', array('payment_id' => $total_details['payment_method']));
 if (isset($total_details['shipping_id'])) {
     $aom_orders[$doc_id]['info']['shipping_id'] = $total_details['shipping_id'];
 }
 $aom_orders[$doc_id]['info']['shipping_label'] = cw_query_first_cell("SELECT shipping FROM {$tables['shipping']} WHERE shipping_id='" . $total_details['shipping_id'] . "'");
 $aom_orders[$doc_id]['info']['salesman_customer_id'] = "";
 //$total_details['salesman_customer_id'];
 $aom_orders[$doc_id]['info']['cod_type_id'] = $total_details['cod_type_id'];
 $cod_info = cw_query_first("select title, leaving_type from {$tables['shipping_cod_types']} where cod_type_id='" . $total_details['cod_type_id'] . "'");
 $aom_orders[$doc_id]['info']['cod_leaving_type'] = $cod_info['leaving_type'];
 $aom_orders[$doc_id]['info']['cod_type_label'] = $cod_info['title'];
 $aom_orders[$doc_id]['info']['shipment_paid'] = $total_details['shipment_paid'];
 $aom_orders[$doc_id]['info']['shipping_cause_id'] = $total_details['shipping_cause_id'];
 cw_header_location("index.php?target={$target}&doc_id={$doc_id}&mode=edit&js_tab=totals");
function cw_insert_product_to_sections($product_id, $ins_sections)
{
    global $tables;
    if (is_array($ins_sections)) {
        foreach ($ins_sections as $section => $val) {
            db_query("delete from " . $tables[$section] . " where product_id='{$product_id}'" . ($section == 'featured_products' ? " and category_id=0" : ""));
            if ($val['insert_to_section'] != 'Y') {
                continue;
            }
            unset($val['insert_to_section']);
            $val['product_id'] = $product_id;
            $val['from_time'] = cw_core_strtotime($val['from_time']);
            $val['to_time'] = cw_core_strtotime($val['to_time']);
            if ($section == 'featured_products') {
                $val['category_id'] = 0;
                if (!isset($val['avail']) || $val['avail'] != 1) {
                    $val['avail'] = 0;
                }
            } else {
                $val['active'] = 1;
            }
            cw_array2insert($section, $val);
        }
    }
}
function ps_modify_conditions($offer_id)
{
    global $tables, $cond_names;
    global $ps_conditions, $ps_conds;
    if (empty($offer_id)) {
        $GLOBALS['_ps_conditions'] =& $ps_conditions;
        cw_session_register('_ps_conditions');
        $GLOBALS['_ps_conds'] =& $ps_conds;
        cw_session_register('_ps_conds');
        return array(true, null);
        //return array(false, 'Offer Id was not provided');
    }
    db_query("DELETE FROM {$tables['ps_conditions']} WHERE offer_id = '{$offer_id}'");
    db_query("DELETE FROM {$tables['ps_cond_details']} WHERE offer_id = '{$offer_id}'");
    $available_fields = array('cond_id' => 'int', 'offer_id' => 'int', 'type' => 'string', 'coupon' => 'string');
    $excl_from_base_list = array('cond_id');
    foreach ($excl_from_base_list as $field) {
        if (isset($available_fields[$field])) {
            unset($available_fields[$field]);
        }
    }
    $optional_fields = array('coupon');
    $date_fields = array();
    $skip_striptags_fields = array();
    if (empty($ps_conditions) || !is_array($ps_conditions)) {
        return array(true, null);
    }
    $available_ctypes = array(PS_TOTAL, PS_SHIP_ADDRESS, PS_SPEC_PRODUCTS, PS_WEIGHT, PS_MEMBERSHIP, PS_USE_COUPON);
    $conditions = array();
    foreach ($ps_conditions as $cond_type => $trash) {
        if (!isset($ps_conds[$cond_type]) || empty($ps_conds[$cond_type]) || !in_array($cond_type, $available_ctypes)) {
            unset($ps_conditions[$cond_type]);
        } else {
            $conditions[$cond_type] = $ps_conds[$cond_type];
        }
    }
    unset($ps_conds);
    if (empty($ps_conditions) || empty($conditions)) {
        return array(true, null);
    }
    $GLOBALS['_ps_conditions'] =& $ps_conditions;
    cw_session_register('_ps_conditions');
    $errors = array();
    $tmp_optional_fields = $optional_fields;
    foreach ($conditions as $cond_type => $input_data) {
        $optional_fields = $tmp_optional_fields;
        $additional_lang_data = array();
        $pids = $cids = $mids = array();
        $input_data['offer_id'] = $offer_id;
        $input_data['type'] = $cond_type;
        if ($cond_type == PS_SPEC_PRODUCTS) {
            if (!isset($input_data['products']) && !isset($input_data['cats']) && !isset($input_data['mans']) && !isset($input_data['attr']) || empty($input_data['products']) && empty($input_data['cats']) && empty($input_data['mans']) && empty($input_data['attr'])) {
                $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                $errors[] = cw_get_langvar_by_name('msg_ps_cond_incorrect', $additional_lang_data);
                continue;
            }
            // Prepare products data
            if (isset($input_data['products']) && !empty($input_data['products'])) {
                $products_data = array();
                foreach ($input_data['products'] as $product_data) {
                    $product_data['id'] = trim($product_data['id']);
                    $products_data[$product_data['id']] = $product_data['quantity'];
                }
                $pids = array_keys($products_data);
                $pids = cw_query_column("SELECT product_id as id FROM {$tables['products']} WHERE product_id IN ('" . implode("','", $pids) . "')");
            }
            // Prepare categories data
            if (isset($input_data['cats']) && !empty($input_data['cats'])) {
                $cats_data = array();
                foreach ($input_data['cats'] as $cat_data) {
                    $cat_data['id'] = trim($cat_data['id']);
                    $cats_data[$cat_data['id']] = $cat_data['quantity'];
                }
                $cids = array_keys($cats_data);
                $cids = cw_query_column("SELECT category_id as id FROM {$tables['categories']} WHERE category_id IN ('" . implode("','", $cids) . "')");
            }
            // Prepare attributes data
            if (isset($input_data['attr']) && !empty($input_data['attr'])) {
                $attr_data = array();
                foreach ($input_data['attr'] as $a_data) {
                    $attr_data[trim($a_data['attribute_id'])] = array('quantity' => $a_data['quantity'], 'value' => current($a_data['value']), 'operation' => $a_data['operation']);
                }
                $attrids = array_keys($attr_data);
                $attrids = cw_query_column("SELECT attribute_id as id FROM {$tables['attributes']} WHERE attribute_id IN ('" . implode("','", $attrids) . "')");
            }
            // Prepare manufacturers data
            if (isset($input_data['mans']) && !empty($input_data['mans'])) {
                $mans_data = array();
                foreach ($input_data['mans'] as $man_data) {
                    $man_data['id'] = trim($man_data['id']);
                    $mans_data[$man_data['id']] = $man_data['quantity'];
                }
                $mids = array_keys($mans_data);
                $mids = cw_query_column("SELECT manufacturer_id as id FROM {$tables['manufacturers']} WHERE manufacturer_id IN ('" . implode("','", $mids) . "')");
            }
            if (empty($pids) && empty($cids) && empty($mids) && empty($attrids)) {
                $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                $errors[] = cw_get_langvar_by_name('msg_ps_cond_incorrect', $additional_lang_data);
                continue;
            }
        } elseif ($cond_type == PS_SHIP_ADDRESS) {
            if (!isset($input_data['zones']) || empty($input_data['zones'])) {
                $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                $errors[] = cw_get_langvar_by_name('msg_ps_cond_incorrect', $additional_lang_data);
            }
            $zone_ids = array_map(create_function('$id', 'return trim($id);'), $input_data['zones']);
            $zone_ids = cw_query_column("SELECT zone_id as id FROM {$tables['zones']} WHERE zone_id IN ('" . implode("','", $zone_ids) . "')");
            if (empty($zone_ids) || !is_array($zone_ids)) {
                $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                $errors[] = cw_get_langvar_by_name('msg_ps_cond_incorrect', $additional_lang_data);
            }
        } elseif ($cond_type == PS_TOTAL || $cond_type == PS_WEIGHT) {
            if (!isset($input_data['from']) || intval($input_data['from']) < 0 || !isset($input_data['till']) || intval($input_data['till']) < 0 || intval($input_data['till']) < intval($input_data['from']) && intval($input_data['till']) != 0 && intval($input_data['from']) != 0) {
                $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                $errors[] = cw_get_langvar_by_name('msg_ps_cond_incorrect', $additional_lang_data);
            }
        }
        $data = array();
        foreach ($date_fields as $field) {
            if (isset($input_data[$field]) && !empty($input_data[$field])) {
                $input_data[$field] = cw_core_strtotime($input_data[$field]);
            }
        }
        $error = null;
        foreach ($available_fields as $field => $field_type) {
            if (isset($input_data[$field])) {
                $result = settype($input_data[$field], $field_type);
                if ($result === false) {
                    $error = 'msg_ps_incorrect_field_type';
                    $additional_lang_data = array('field_name' => $field);
                    break;
                }
                if (empty($input_data[$field])) {
                    if (in_array($field, $optional_fields)) {
                        $data[$field] = null;
                    } else {
                        $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                        $error = 'msg_ps_cond_incorrect';
                        break;
                    }
                } else {
                    if ($field_type == 'string' && !in_array($field, $skip_striptags_fields)) {
                        $input_data[$field] = cw_strip_tags($input_data[$field]);
                    }
                    $data[$field] =& $input_data[$field];
                }
            } else {
                if ($field_type == 'bool') {
                    $data[$field] = 0;
                } else {
                    if (in_array($field, $optional_fields)) {
                        $data[$field] = null;
                    } else {
                        $additional_lang_data = array('cond' => cw_get_langvar_by_name($cond_names[$cond_type]));
                        $error = 'msg_ps_cond_incorrect';
                        break;
                    }
                }
            }
        }
        if (!empty($error)) {
            $errors[] = cw_get_langvar_by_name($error, $additional_lang_data);
            continue;
        }
        if (empty($data)) {
            continue;
        }
        if ($cond_type == PS_WEIGHT || $cond_type == PS_TOTAL) {
            $data['total'] = intval($input_data['from']);
            $cond_id = cw_array2insert($tables['ps_conditions'], cw_addslashes($data));
            $data['total'] = intval($input_data['till']);
            $cond_id2 = cw_array2insert($tables['ps_conditions'], cw_addslashes($data));
        } else {
            $cond_id = cw_array2insert($tables['ps_conditions'], cw_addslashes($data));
        }
        if ($cond_type == PS_SPEC_PRODUCTS) {
            // Save products to condition details
            if (!empty($pids)) {
                $data = array();
                $data['offer_id'] = $offer_id;
                $data['cond_id'] = $cond_id;
                foreach ($pids as $pid) {
                    $data['object_id'] = $pid;
                    $data['object_type'] = PS_OBJ_TYPE_PRODS;
                    $data['quantity'] = $products_data[$pid];
                    if (empty($data['quantity'])) {
                        $data['quantity'] = 1;
                    }
                    cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
                }
            }
            // Save categories to condition details
            if (!empty($cids)) {
                $data = array();
                $data['offer_id'] = $offer_id;
                $data['cond_id'] = $cond_id;
                foreach ($cids as $cid) {
                    $data['object_id'] = $cid;
                    $data['object_type'] = PS_OBJ_TYPE_CATS;
                    $data['quantity'] = $cats_data[$cid];
                    if (empty($data['quantity'])) {
                        $data['quantity'] = 1;
                    }
                    cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
                }
            }
            // Save attributes to condition details
            if (!empty($attrids)) {
                $data = array();
                $data['offer_id'] = $offer_id;
                $data['cond_id'] = $cond_id;
                foreach ($attrids as $aid) {
                    $data['object_id'] = $aid;
                    $data['object_type'] = PS_OBJ_TYPE_ATTR;
                    $data['quantity'] = $attr_data[$aid]['quantity'];
                    $data['param1'] = $attr_data[$aid]['value'];
                    $data['param2'] = $attr_data[$aid]['operation'];
                    if (empty($data['quantity'])) {
                        $data['quantity'] = 1;
                    }
                    cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
                }
            }
            // Save manufacturers to condition details
            if (!empty($mids)) {
                $data = array();
                $data['offer_id'] = $offer_id;
                $data['cond_id'] = $cond_id;
                foreach ($mids as $mid) {
                    $data['object_id'] = $mid;
                    $data['object_type'] = PS_OBJ_TYPE_MANS;
                    $data['quantity'] = $mans_data[$mid];
                    if (empty($data['quantity'])) {
                        $data['quantity'] = 1;
                    }
                    cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
                }
            }
        } elseif ($cond_type == PS_SHIP_ADDRESS) {
            if (!empty($zone_ids)) {
                $data = array();
                $data['offer_id'] = $offer_id;
                $data['cond_id'] = $cond_id;
                foreach ($zone_ids as $zone_id) {
                    $data['object_id'] = $zone_id;
                    $data['object_type'] = PS_OBJ_TYPE_ZONES;
                    $data['quantity'] = null;
                    cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
                }
            }
        } elseif ($cond_type == PS_TOTAL || $cond_type == PS_WEIGHT) {
            $data = array();
            $data['offer_id'] = $offer_id;
            $data['cond_id'] = $cond_id;
            $data['object_id'] = 0;
            $data['object_type'] = PS_OBJ_TYPE_FROM;
            $data['quantity'] = 0;
            cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
            if (isset($cond_id2)) {
                $data['cond_id'] = $cond_id2;
                $data['object_type'] = PS_OBJ_TYPE_TILL;
                cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
            }
        } elseif ($cond_type == PS_MEMBERSHIP) {
            $data = array();
            $data['offer_id'] = $offer_id;
            $data['cond_id'] = $cond_id;
            $data['object_id'] = $input_data['membership'];
            $data['object_type'] = PS_OBJ_TYPE_MEMBERSHIP;
            $data['quantity'] = 0;
            cw_array2insert($tables['ps_cond_details'], cw_addslashes($data));
        }
        unset($conditions[$cond_type]);
    }
    if (!empty($conditions)) {
        $GLOBALS['_ps_conds'] =& $conditions;
        cw_session_register('_ps_conds');
    }
    if (!empty($errors)) {
        $error = implode("<br />\n", $errors);
        return array(false, $error);
    }
    return array(true, null);
}
}
if ($mode == 'manager_iframe') {
    cw_load('doc');
    $where = array();
    $from_tbls = array('docs');
    $orderbys = array('date');
    $fields = array('doc_id');
    if (!$shippment_search || $shippment_search == 1) {
        list($from_time, $to_time) = cw_core_get_time_frame("-1 day");
    } elseif ($shippment_search == 2) {
        list($from_time, $to_time) = cw_core_get_time_frame("-2 days", "-1 day");
    } elseif ($shippment_search == 3) {
        list($from_time, $to_time) = cw_core_get_time_frame("-1 month");
    } elseif ($shippment_search == 4) {
        $from_time = cw_core_strtotime($from_date);
        $to_time = cw_core_strtotime($to_date);
    }
    $where[] = "type='S'";
    if ($from_time) {
        $where[] = "date >= '{$from_time}'";
    }
    if ($to_time) {
        $where[] = "date <= '{$to_time}'";
    }
    $count_query = cw_db_generate_query(array('count(*)'), $from_tbls, '', $where, '', '', $orderbys);
    $total_items = cw_query_first_cell($count_query);
    $navigation = cw_core_get_navigation($target, $total_items, $page);
    $navigation['script'] = "indes.php?target={$target}&mode={$mode}";
    $smarty->assign('navigation', $navigation);
    if ($total_items > 0) {
        $ship_docs = cw_query(cw_db_generate_query($fields, $from_tbls, '', $where, '', '', $orderbys) . " LIMIT {$navigation['first_page']}, {$navigation['objects_per_page']}");
<?php

$search =& cw_session_register('search', array());
if (isset($_GET['substring'])) {
    $search['purchased_products']['substring'] = $substring;
}
if (isset($_GET['fromdate'])) {
    $search['purchased_products']['fromdate'] = cw_core_strtotime($fromdate);
}
if (isset($_GET['todate'])) {
    $search['purchased_products']['todate'] = cw_core_strtotime($todate);
}
$conditions = '';
$data = $search['purchased_products'];
if ($data['substring']) {
    $conditions .= " and (di.product like '%{$data['substring']}%' or di.productcode like '%{$data['substring']}%')";
}
if ($data['fromdate']) {
    $conditions .= " and date >= '{$data['fromdate']}'";
}
if ($data['todate']) {
    $conditions .= " and date <= '" . (intval($data['todate']) + 86399) . "'";
}
$query = "from {$tables['docs']} as d, {$tables['docs_items']} as di, {$tables['docs_user_info']} as dui where di.doc_id=d.doc_id and d.type in ('O', 'G', 'I', 'S') and dui.doc_info_id=d.doc_info_id and dui.customer_id='{$user}' " . $conditions;
$total_items = cw_query_first_cell("select count(*) {$query}");
$navigation = cw_core_get_navigation($target, $total_items, $page);
$navigation['script'] = "index.php?target={$target}&mode={$mode}&user={$user}";
$smarty->assign('navigation', $navigation);
if ($total_items) {
    $products = cw_query($sql = "select di.*, d.date, d.doc_id, d.display_id {$query} limit {$navigation['first_page']}, {$navigation['objects_per_page']}");
    $smarty->assign('products', $products);