$ret_value = 0; if ($_REQUEST['source'] == 'act') { $ret_value = parse_import_act($tmp_file_name, $delimiter, $max_lines, $has_header); } else { $ret_value = parse_import($tmp_file_name, $delimiter, $max_lines, $has_header); } if ($ret_value == -1) { show_error_import($mod_strings['LBL_CANNOT_OPEN']); exit; } else { if ($ret_value == -2) { show_error_import($mod_strings['LBL_NOT_SAME_NUMBER']); exit; } else { if ($ret_value == -3) { show_error_import($mod_strings['LBL_NO_LINES']); exit; } } } $rows = $ret_value['rows']; $ret_field_count = $ret_value['field_count']; $smarty = new vtigerCRM_Smarty(); $smarty->assign("TMP_FILE", $tmp_file_name); $smarty->assign("SOURCE", vtlib_purify($_REQUEST['source'])); $smarty->assign("MOD", $mod_strings); $smarty->assign("APP", $app_strings); if (isset($_REQUEST['return_module'])) { $smarty->assign("RETURN_MODULE", vtlib_purify($_REQUEST['return_module'])); } if (isset($_REQUEST['return_action'])) {
$resCustFldArray = array(); p("Getting from request"); // loop through all request variables foreach ($_REQUEST as $name => $value) { p("name=" . $name . " value=" . $value); // only look for var names that start with "colnum" if (strncasecmp($name, "colnum", 6) != 0) { continue; } if ($value == "-1") { continue; } $user_field = $value; $pos = substr($name, 6); if (isset($field_to_pos[$user_field])) { show_error_import($mod_strings['LBL_ERROR_MULTIPLE']); exit; } p("user_field=" . $user_field . " if=" . $focus->importable_fields[$user_field]); if (isset($focus->importable_fields[$user_field]) || isset($custFldArray[$user_field])) { p("user_field SET=" . $user_field); $field_to_pos[$user_field] = $pos; $col_pos_to_field[$pos] = $user_field; } } p("field_to_pos"); $adb->println($field_to_pos); p("col_pos_to_field"); $adb->println($col_pos_to_field); $max_lines = -1; $ret_value = 0;
} } $serialized_mapping = implode_assoc("=", "&", $header_to_field); } else { $serialized_mapping = implode_assoc("=", "&", $col_pos_to_field); } $mapping_file_name = $_REQUEST['save_map_as']; $mapping_file =& new ImportMap(); $query_arr = array('assigned_user_id' => $current_user->id, 'name' => $mapping_file_name); $mapping_file->retrieve_by_string_fields($query_arr, false); $result = $mapping_file->save_map($current_user->id, $mapping_file_name, $_REQUEST['module'], $_REQUEST['source'], $has_header, $serialized_mapping); } $mod_strings = return_module_language($current_language, "Import"); $currentModule = "Import"; if ($error != "") { show_error_import($mod_strings['LBL_ERROR'] . " " . $error); exit; } else { $message = urlencode($mod_strings['LBL_SUCCESS'] . "<BR><b>{$count}</b> " . $mod_strings['LBL_SUCCESSFULLY'] . "<br><b>" . ($broken_ids + $id_exists_count) . "</b> " . $mod_strings['LBL_IDS_EXISTED_OR_LONGER'] . "<br><b>{$skip_required_count}</b> " . $mod_strings['LBL_RECORDS_SKIPPED']); //_if duplicates exist, then add informational string to message if ($dup_count > 0) { $message .= urlencode("<BR><b>{$dup_count}</b> " . $mod_strings['LBL_DUPLICATES']); } if (empty($_REQUEST['return_action'])) { $_REQUEST['return_action'] = 'index'; } $json = getJSONobj(); echo 'result = ' . $json->encode(array('module' => $_REQUEST['module'], 'return_action' => $_REQUEST['return_action'], 'message' => $message, 'dup_link' => $dup_link, 'return_module' => $_REQUEST['return_module'])); //header("Location: index.php?module={$_REQUEST['module']}&action=Import&step=last&return_module={$_REQUEST['return_module']}&return_action={$_REQUEST['return_action']}&message=$message&duplink=$dup_link"); exit; }
$import_mod_strings = return_module_language($current_language, "Import"); if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) { show_error_import($import_mod_strings['LBL_IMPORT_MODULE_ERROR_NO_UPLOAD']); exit; } else { if ($_FILES['userfile']['size'] > $upload_maxsize) { show_error_import($import_mod_strings['LBL_IMPORT_MODULE_ERROR_LARGE_FILE'] . " " . $upload_maxsize . " " . $import_mod_strings['LBL_IMPORT_MODULE_ERROR_LARGE_FILE_END']); exit; } } if (!is_writable($import_dir)) { show_error_import($import_mod_strings['LBL_IMPORT_MODULE_NO_DIRECTORY'] . $import_dir . $import_mod_strings['LBL_IMPORT_MODULE_NO_DIRECTORY_END']); exit; } if (trim(substr(strrchr(basename($_FILES['userfile']['name']), '.'), 1, 10)) != "xls") { show_error_import("导入文件格式不正确"); exit; } $tmp_file_name = $import_dir . "IMPORT_" . $current_user->id; move_uploaded_file($_FILES['userfile']['tmp_name'], $tmp_file_name); $focus = new ImportSalesOrder(); $focus->setAccountFile($tmp_file_name); $focus->parseExcel(); $_SESSION['import_skipped_record_count'] = $focus->skip_record; $totalrecord = $focus->total_reocrd; $importrecord = $totalrecord - $focus->skip_record; $_SESSION['import_message'] = "一共有 {$totalrecord} 条,共导入 {$importrecord} 条"; $_SESSION['import_skipped_rows'] = $focus->skip_rows; unlink($tmp_file_name); header("Location: index.php?action=ImportSteplast&module=SalesOrder&parenttab=Accounts"); function show_error_import($message)
$count = $ret_value['field_count']; switch ($_REQUEST['module']) { case 'Accounts': //$head = array("客户名称","创建人","联系人","负责人","职位","性别","客户状态","vip信息","热度","成交意愿","客户来源","客户类型","下次联系日期","手机号码","电话","QQ","Email","传真","微博","MSN","淘宝旺旺","网站","所属国家","所属省份","所属城市","所属区域","详细地址","客户邮编","最近5天发送邮件次数","最近一月发送邮件次数","最近三月发送短信次数","最近三月发送邮件次数","最新发送短信日期","最新发送邮件日期","最新联系时间","联系次数","最新订单日期","订单数量","订单金额","创建时间","修改时间","失效日期","姓名1","电话122","备注"); $head = array("客户名称", "联系人", "职位", "性别", "手机号码", "电话", "QQ", "Email", "传真", "网站", "所属国家", "所属省份", "所属城市", "所属区域", "详细地址", "客户邮编", "备注"); break; case 'Contacts': $head = array("姓名", "客户", "性别", "职位", "手机", "Email", "电话", "传真", "QQ", "MSN", "旺旺", "微博", "备注"); break; } $accfieldarr = $rows[0]; //var_dump($rows);//怎么只有两行? //exit(); foreach ($accfieldarr as $key => $accfield) { if ($accfield != $head[$key]) { show_error_import("文件标题不正确: \"" . $accfield . "\" 出错,请检查。"); exit; } } $filed_lable = getColumnField(); $focus_impacc->ClearColumnFields(); //var_dump($focus_impacc); //exit(); $pix1 = $width / $count; $progress1 = 0; //header('Content-Type: text/html; charset=utf-8'); flush(); ?> <script language="JavaScript"> function updateProgress(sMsg, iWidth) {