Commit d5878814 authored by 王炜's avatar 王炜

修复报价计算可能导致汇率为空问题

parent 9aa72f75
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: 38823
$Date: 2023-09-21
$Revision: 1.0
$Purpose:用于经租(采购单)报价流程
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true">
<a:init-procedure>
<a:model-query defaultWhereClause="t1.enabled_flag=&apos;Y&apos;" fetchAll="true" model="fnd.FND2100.fnd_tax_type_codes" rootPath="tax_type_codes_path"/>
<a:model-query fetchAll="true" model="gld.gld_currency_vl" rootPath="doc_currency_path"/>
<a:model-query fetchAll="true" model="csh.CSH511.csh_transaction_default_exchange_rate_type" rootPath="doc_functional_currency_path"/>
<a:model-query fetchAll="true" model="csh.CSH511.fnd_financial_option" rootPath="fnd_financial_option_path"/>
<a:model-query fetchAll="true" model="gld.gld_exchage_rate_types" rootPath="gld_exchage_rate_types_path"/>
</a:init-procedure>
<a:view>
<a:link id="hls_fin_calc_get_base_rate_link_id" model="hls.HLS500.hls_fin_calc_get_base_rate" modelaction="update"/>
<a:link id="get_exchange_rate_link_id" model="basic.hls_get_exchange_rate" modelaction="update"/>
<script type="text/javascript"><![CDATA[
var new_calc_flag = 'N';
var body_winId = '${/parameter/@winId}',
body = body_winId == '' ? Ext.getBody() : $(body_winId).wrap;
function lock_calc_current_window(msg) {
Leaf.Masker.mask(body, msg || '${l:HLS.EXECUTING}');
}
function unlock_calc_current_window() {
Leaf.Masker.unmask(body);
}
function get_warning_message(msg) {
var warning_message, duration;
if (msg) {
warning_message = msg;
warning_message = '<font color="red">'+warning_message + '</font>';
duration = 8000;
} else {
warning_message = '${l:HLS.SUBMIT_SUCCESS}';
duration = 2000;
}
parent.Leaf.SideBar.enable = true;
parent.Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding-top:5px;padding-bottom:5px;padding-left:20px;padding-right:20px;border:0px solid #009900"><b>'+warning_message+'</b></div>',
duration: duration
});
}
function set_field_limit(config_record, field) {
// if (config_record.get('lower_limit') || config_record.get('upper_limit')) {
// field.setPropertity('min', config_record.get('lower_limit'));
// field.setPropertity('max', config_record.get('upper_limit'));
// }
}
function set_field_input_mode(record, field, name, input_mode) {
var current_value = record.get(name);
if (input_mode == 'REQUIRED' || (input_mode == 'REQUIRED_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'REQUIRED_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(true);
field.setReadOnly(false);
} else if (input_mode == 'OPTION' || (input_mode == 'OPTION_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'OPTION_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(false);
field.setReadOnly(false);
} else {
field.setReadOnly(true);
}
}
function get_config_column_name(name) {
var query_name, length = name.length;
if (name.substring(length - 2, length) == '_n') {
query_name = name.substring(0, length - 2);
} else {
query_name = name;
}
return query_name;
}
function success_sidebar_show() {
Leaf.SideBar.show({
msg: '${l:HLS.SUBMIT_SUCCESS}',
duration: 2000
});
}
function get_ds_record(ds1, ds2, name) {
return ds1.find('column_name', name) || ds2.find('column_name', name);
}
function from_load_or_update_set(record, fromLoad, name, value) {
if (record.get('percent') == '%' && record.get('validation_type') == 'NUMBERFIELD') {
value = mul(value, 100);
}
if (fromLoad) {
record.data[name] = value;
} else {
record.set(name, value);
}
}
function get_record_column_value(record) {
if (record) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
return record.get('column_value_c');
} else {
return record.get('column_value');
}
} else {
return null;
}
}
function get_data_column_value(record) {
if (record.data) {
if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'COMBOBOX' || record.data['validation_type'] == 'LOV')) {
return record.data['column_value_c'];
} else {
return record.data['column_value'];
}
} else {
return null;
}
}
function execute_hls_save_special_field(record, value, fromLoad, display_value) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
from_load_or_update_set(record, fromLoad, 'column_value_c', value);
if (!Ext.isEmpty(display_value)) {
from_load_or_update_set(record, fromLoad, 'column_value', display_value);
}
} else {
from_load_or_update_set(record, fromLoad, 'column_value', value);
}
}
function data_or_record_set(record, name, value) {
if (record.set) {
record.set(name, value);
} else {
record.data[name] = value;
}
}
function get_hls_special_field(record, value, value_name) {
data_or_record_set(record, 'column_value_c', value);
if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'LOV' || record.data['validation_type'] == 'COMBOBOX')) {
data_or_record_set(record, 'column_value', value_name);
return value_name;
} else {
data_or_record_set(record, 'column_value', value);
return value;
}
}
function set_after_check_empty(record, old_value, value, fromLoad, display_value) {
if (Ext.isEmpty(old_value)) {
execute_hls_save_special_field(record, value, fromLoad, display_value);
}
}
function special_editor_function(ds, record, name) {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds'),
column_name = record.get('column_name'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'),
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
if (exchange_rate_type_record && exchange_rate_record && currency_record) {
var exchange_rate_type_field = exchange_rate_type_record.getField('column_value'),
exchange_rate_field = exchange_rate_record.getField('column_value');
var currency = get_record_column_value(currency_record),
exchange_rate_type = get_record_column_value(exchange_rate_type_record);
var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
var rate_method_code;
if (rate_method_code_record) {
rate_method_code = rate_method_code_record.get('rate_method_code');
}
if (currency == '${/model/doc_functional_currency_path/record/@functional_currency_code}') {
exchange_rate_type_field.setRequired(false);
exchange_rate_type_field.setReadOnly(true);
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
} else {
exchange_rate_type_field.setRequired(true);
exchange_rate_type_field.setReadOnly(false);
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
} else {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
}
}
}
}
function call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, fromLine) {
var input_mode, lower_limit;
if (fromLine) {
input_mode = config_record.get('input_mode');
lower_limit = config_record.get('lower_limit');
} else {
input_mode = record.get('input_mode');
lower_limit = record.get('lower_limit');
}
if (Ext.isEmpty(value) && (input_mode == 'REQUIRED_ONLY_NOT_NULL' || input_mode == 'OPTION_ONLY_NOT_NULL')) {
Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding:3px;border:1px solid #009900;font-size:20px;">' + '${l:HLS500.FIELD_IS_NOT_NULL}' + '</div>',
duration: 2000
});
setTimeout(function() {
record.set(name, old_value);
}, 5);
}
}
function create_record_column(temp_head_records, headRecord) {
for (var m = 0;m < temp_head_records.length;m++) {
var temp_head_record = temp_head_records[m];
var column_name = temp_head_record.get('column_name'),
validation_type = temp_head_record.get('validation_type'),
column_value_c = temp_head_record.get('column_value_c'),
column_value = temp_head_record.get('column_value'),
finnal_value = '';
if (column_name == 'price_list') {
finnal_value = '${/parameter/@price_list}';
}
if (column_name == 'currency') {
finnal_value = '${/parameter/@currency}';
}
if (column_name == 'currency_precision') {
finnal_value = '${/parameter/@precision}';
}
if (!Ext.isEmpty(column_value) || !Ext.isEmpty(column_value_c)) {
if (validation_type == 'DATEPICKER') {
finnal_value = Leaf.formatDate(column_value);
} else if (temp_head_record.get('lov_return_vcode') == 'N' && (validation_type == 'COMBOBOX' || validation_type == 'LOV')) {
if (temp_head_record.get('percent') == '%') {
finnal_value = div(column_value_c, 100);
} else {
finnal_value = column_value_c;
}
} else if (temp_head_record.get('percent') == '%') {
finnal_value = div(column_value, 100);
} else {
finnal_value = column_value;
}
}
headRecord.set(column_name, finnal_value);
}
}
function call_back_after_check_limit(ds, record, name, value, old_value, config_record, fromLine) {
var lower_limit, upper_limit, finnal_value, set_value, current_record;
if (fromLine) {
current_record = config_record;
} else {
current_record = record;
}
lower_limit = current_record.get('lower_limit');
upper_limit = current_record.get('upper_limit');
if (current_record.get('percent') == '%') {
finnal_value = div(value, 100);
set_value = mul(lower_limit, 100);
} else {
finnal_value = value;
set_value = lower_limit;
}
if (!set_value) {
set_value = 0;
}
if (!Ext.isEmpty(value) && (finnal_value < lower_limit || finnal_value > upper_limit)) {
if (fromLine) {
Leaf.showMessage('${l:PROMPT}', config_record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}');
setTimeout(function() {
if (config_record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && config_record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') {
record.set(name, null);
} else {
record.set(name, set_value);
}
}, 5);
} else {
if (name != 'column_value_c') {
Leaf.showMessage('${l:PROMPT}', record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}');
}
setTimeout(function() {
if (record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') {
data_or_record_set(record, 'column_value_c', null);
data_or_record_set(record, 'column_value', null);
} else {
data_or_record_set(record, 'column_value_c', set_value);
data_or_record_set(record, 'column_value', set_value);
}
}, 5);
}
}
}
function onLineupdate_setEmpty(ds, record, name, value, old_value) {
var config_record = $('line_attribute_ds').find('column_name', name);
if (config_record) {
var input_mode = config_record.get('input_mode');
call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, true);
call_back_after_check_limit(ds, record, name, value, old_value, config_record, true);
}
}
function clear_hd_lov_sql_mapping(hd_ds, column_name) {
var hd_lov_mapping_ds = $('hls_fin_calc_lov_getmapping_ds');
var hd_records = hd_ds.getAll();
hd_lov_mapping_ds.setQueryParameter('price_list', '${/parameter/@price_list}');
hd_lov_mapping_ds.setQueryParameter('column_name', column_name);
hd_lov_mapping_ds.setQueryParameter('layout_area_seq', 'H');
function clear_mapping_detail(ds) {
hd_lov_mapping_ds.un('load', clear_mapping_detail);
var detail_records = ds.getAll();
for (var m = 0;m < detail_records.length;m++) {
var detail_record = detail_records[m];
for (var name in detail_record.data) {
var current_name = detail_record.get(name).toLowerCase();
if (current_name != 'value_code' && current_name != 'value_name') {
for (var i = 0;i < hd_records.length;i++) {
var single_record = hd_records[i];
if (single_record.get('column_name').toLowerCase() == current_name) {
data_or_record_set(single_record, 'column_value_c', null);
data_or_record_set(single_record, 'column_value', null);
}
}
}
}
}
unlock_calc_current_window();
}
hd_lov_mapping_ds.on('load', clear_mapping_detail);
hd_lov_mapping_ds.query();
}
function onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad) {
if (!fromLoad) {
var column_name = record.get('column_name');
var all_records = ds.getAll();
for (var i = 0;i < all_records.length;i++) {
var all_record = all_records[i];
var lov_cascade_para1 = all_record.get('lov_cascade_para1'),
lov_cascade_para2 = all_record.get('lov_cascade_para2'),
lov_cascade_para3 = all_record.get('lov_cascade_para3');
if (column_name == lov_cascade_para1 || column_name == lov_cascade_para2 || column_name == lov_cascade_para3) {
data_or_record_set(all_record, 'column_value_c', null);
data_or_record_set(all_record, 'column_value', null);
}
}
if (Ext.isEmpty(value) && (record.get('validation_type') == 'LOV' || record.get('validation_type') == 'LOV_C') && !fromLoad) {
lock_calc_current_window();
clear_hd_lov_sql_mapping(ds, column_name);
}
call_back_after_check_input_mode(ds, record, name, value, old_value);
call_back_after_check_limit(ds, record, name, value, old_value);
}
}
function getNextMonth(date) {
debugger;
var arr = date.toString().split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var month2 = parseInt(month) + 1;
if (month2 == 13) {
year = parseInt(year) + 1;
month2 = 1;
}
var day2 = day;
var days2 = new Date(year, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year + '-' + month2 + '-' + day2;
return t2;
}
function onEditorupdate(ds, record, name, value, old_value, fromLoad) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV') && name == 'column_value') {
return;
}
var column_name = record.get('column_name');
var column_value = record.get('column_value');
var temp_hd_attribute_ds = $('temp_hd_attribute_ds');
var exchange_rate_type_record, exchange_rate_record, currency_record, lease_start_date_record, exchange_rate_type_field;
//add by niminmin 填写租赁开始日期 自动带出支付日
// if (column_name == 'lease_start_date'&&value&&column_value==value) {
// var lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
// var contract_inception_date_reocrd = get_ds_record(ds, temp_hd_attribute_ds, 'contract_inception_date');
// var lease_start_date = get_record_column_value(lease_start_date_record);
// var contract_inception_date = get_record_column_value(contract_inception_date_reocrd);
// if(lease_start_date_record){
// //var day = new Date(value.replace(/-/g, '/')).getDate();
// var day = new Date(column_value).format('yyyy-mm-dd');
// var nextDay=getNextMonth(day);
// from_load_or_update_set(contract_inception_date_reocrd, fromLoad, 'column_value', nextDay);
// }
// }
if (column_name == 'lease_times' || column_name == 'annual_pay_times') {
var lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
lease_term, annual_pay_times = get_record_column_value(annual_pay_times_record),
lease_times = get_record_column_value(lease_times_record);
if (column_name == 'lease_times' && !Ext.isEmpty(value)) {
if (annual_pay_times_record && !Ext.isEmpty(annual_pay_times)) {
if (lease_term_record) {
lease_term = div(value, annual_pay_times).toFixed(3) * 1;
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term);
}
}
} else if (column_name == 'annual_pay_times' && !Ext.isEmpty(value)) {
if (lease_times_record && !Ext.isEmpty(lease_times)) {
if (lease_term_record) {
lease_term = div(lease_times, value).toFixed(3) * 1;
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term);
}
}
}
} else if (column_name == 'lease_term') {
value = get_record_column_value(record);
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type');
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
var base_rate_type = get_record_column_value(base_rate_type_record),
lease_start_date = get_record_column_value(lease_start_date_record),
currency;
if ('${/parameter/@calc_session_id}') {
currency = get_record_column_value(currency_record);
} else {
currency = '${/parameter/@currency}';
}
getBaseRate({
base_rate_type: base_rate_type,
currency: currency,
valid_date: lease_start_date,
month: mul(value, 12)
});
} else if (column_name == 'tax_type_id') {
var vat_flag_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_flag'),
vat_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_rate');
if (!Ext.isEmpty(value)) {
var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value);
from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', tax_type_codes_record.get('vat_flag'));
// from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', tax_type_codes_record.get('tax_type_rate'));
} else {
from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', '');
// from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', '');
}
} else if (column_name == 'currency') {
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type');
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
if (exchange_rate_type_record && exchange_rate_record) {
exchange_rate_type_field = exchange_rate_type_record.getField('column_value');
if (value == '${/model/doc_functional_currency_path/record/@functional_currency_code}') {
// var default_exchage_rate_type_record = $('gld_exchage_rate_types_ds').find('type_code', 'MANUAL');
// if (default_exchage_rate_type_record) {
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value_c', 'MANUAL');
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value', default_exchage_rate_type_record.get('type_name'));
// }
from_load_or_update_set(exchange_rate_record, fromLoad, 'column_value', 1);
} else {
set_after_check_empty(exchange_rate_type_record, get_record_column_value(exchange_rate_type_record), '${/model/fnd_financial_option_path/record/@default_exchange_rate_type}', fromLoad, '${/model/fnd_financial_option_path/record/@exchange_rate_type_display}');
}
}
} /*else if (column_name == 'exchange_rate_type' || column_name == 'lease_start_date') {
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type');
getExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: get_record_column_value(currency_record),
exchangeRateType: get_record_column_value(exchange_rate_type_record),
exchangeDate: get_record_column_value(lease_start_date_record)
}, ds, temp_hd_attribute_ds, fromLoad);
if (!fromLoad && value != old_value) {
exchange_rate_record.set('column_value', '');
}
}*/
onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad);
}
function execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, success_flag) {
var rate_method_code, exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'),
exchange_rate_field = exchange_rate_record.getField('column_value');
if (success_flag) {
var exchange_rate_quotation_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_quotation'),
exchange_rate = res.result.exchange_rate;
rate_method_code = res.result.rate_method_code;
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
if (!Ext.isDefined(exchange_rate)) {
exchange_rate = '';
}
execute_hls_save_special_field(exchange_rate_record, exchange_rate, false, null);
} else {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
}
var exchange_rate_quotation = res.result.exchange_rate_quotation;
if (!Ext.isDefined(exchange_rate_quotation)) {
exchange_rate_quotation = 'DIRECT QUOTATION';
}
execute_hls_save_special_field(exchange_rate_quotation_record, exchange_rate_quotation, false, null);
} else {
var exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_type = get_record_column_value(exchange_rate_type_record);
var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
rate_method_code = rate_method_code_record.get('rate_method_code');
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(true);
}
}
}
function getExchangeRate(param, ds, temp_hd_attribute_ds, fromLoad) {
Leaf.request({
url: $('get_exchange_rate_link_id').getUrl(),
para: {
from_currency: param.fromCur,
to_currency: param.toCur,
exchange_date: param.exchangeDate,
exchange_rate_type: param.exchangeRateType
},
success: function(res) {
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, true);
},
error: function(res) {
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad);
},
failure: function(res) {
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad);
},
scope: this
});
}
function onEditor_load_fire(ds, record, name, value, old_value) {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds');
var currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency'),
currency = get_record_column_value(currency_record),
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
lease_times = get_record_column_value(lease_times_record),
annual_pay_times = get_record_column_value(annual_pay_times_record);
if (name == 'base_rate' && Ext.isEmpty(value)) {
var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type');
var base_rate_type = get_record_column_value(base_rate_type_record),
lease_start_date = get_record_column_value(lease_start_date_record),
lease_term = get_record_column_value(lease_term_record);
if (Ext.isEmpty(lease_term) && lease_times_record) {
onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true);
lease_term = get_record_column_value(lease_term_record);
}
getBaseRate({
base_rate_type: base_rate_type,
currency: currency,
valid_date: lease_start_date,
month: mul(lease_term, 12)
});
} else if (name == 'lease_times' || name == 'annual_pay_times') {
if (Ext.isEmpty(lease_term)) {
if (name == 'lease_times' && lease_times_record) {
onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true);
} else if (name == 'annual_pay_times' && annual_pay_times_record) {
onEditorupdate(ds, annual_pay_times_record, 'annual_pay_times', annual_pay_times, '', true);
}
}
} else if (name == 'currency_precision') {
if (Ext.isEmpty(value)) {
var doc_currency_record = $('doc_currency_ds').find('currency_code', currency);
if (doc_currency_record) {
record.data['column_value'] = doc_currency_record.get('precision');
}
}
}
// else if (name == 'calc_method' && Ext.isEmpty(value)) {
// var calc_method_record = get_ds_record(ds, temp_hd_attribute_ds, 'calc_method');
// var calc_method = calc_method_record.get('calc_method'),
// calc_method_name = calc_method_record.get('calc_method_name');
// get_hls_special_field(calc_method_record, calc_method, calc_method_name);
// }
else if (name == 'exchange_rate_type' || name == 'lease_start_date') {
var exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
if (Ext.isEmpty(get_record_column_value(exchange_rate_record))) {
getExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: get_record_column_value(currency_record),
exchangeRateType: get_record_column_value(exchange_rate_type_record),
exchangeDate: get_record_column_value(lease_start_date_record)
}, ds, temp_hd_attribute_ds, true);
}
}
}
function onEditorupdate_header(ds, record, name, value, old_value, fromAdd) {
if (name == 'lease_times' || name == 'annual_pay_times') {
var lease_term;
if (name == 'lease_times' && !Ext.isEmpty(record.get('annual_pay_times'))) {
lease_term = div(value, record.get('annual_pay_times')).toFixed(3) * 1;
} else if (name == 'annual_pay_times' && !Ext.isEmpty(record.get('lease_times'))) {
lease_term = div(record.get('lease_times'), value).toFixed(3) * 1;
}
if (fromAdd) {
record.data['lease_term'] = lease_term;
} else {
record.set('lease_term', lease_term);
}
} else if (name == 'lease_term') {
if (value != old_value) {
new_calc_flag = 'Y';
getBaseRate({
base_rate_type: record.get('base_rate_type'),
currency: record.get('currency'),
valid_date: record.get('lease_start_date'),
month: mul(value, 12)
});
}
} else if (name == 'tax_type_id') {
if (!Ext.isEmpty(value) && (record.get('vat_flag') || record.get('vat_rate'))) {
var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value);
from_load_or_update_set(record, fromAdd, 'vat_flag', tax_type_codes_record.get('vat_flag'));
// from_load_or_update_set(record, fromAdd, 'vat_rate', tax_type_codes_record.get('tax_type_rate'));
} else {
from_load_or_update_set(record, fromAdd, 'vat_flag', '');
// from_load_or_update_set(record, fromAdd, 'vat_rate', '');
}
} else if (name == 'currency_precision') {
if (Ext.isEmpty(value) && fromAdd) {
var doc_currency_record = $('doc_currency_ds').find('currency_code', record.get('currency'));
if (doc_currency_record) {
record.data['currency_precision'] = doc_currency_record.get('precision');
}
}
} else if (name == 'exchange_rate_type' || name == 'lease_start_date') {
get_quotation_ExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: record.get('currency'),
exchangeRateType: record.get('exchange_rate_type'),
exchangeDate: record.get('lease_start_date')
}, record, fromAdd);
}
}
function check_rate_method_code(rate_method_code) {
if (!rate_method_code || !Ext.isDefined(rate_method_code) || rate_method_code == 'PERIOD' || rate_method_code == 'DAILY' || rate_method_code == 'FIXED') {
return true;
} else {
return false;
}
}
function execute_after_quotation_getexchangerate(res, record, fromAdd, success_flag) {
var rate_method_code, exchange_rate, exchange_rate_field = record.getField('exchange_rate');
if (success_flag) {
rate_method_code = res.result.rate_method_code;
exchange_rate = res.result.exchange_rate;
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
if (!Ext.isDefined(exchange_rate)) {
exchange_rate = '';
}
from_load_or_update_set(record, fromAdd, 'exchange_rate', exchange_rate);
} else {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
}
var exchange_rate_quotation = res.result.exchange_rate_quotation;
if (!Ext.isDefined(exchange_rate_quotation)) {
exchange_rate_quotation = 'DIRECT QUOTATION';
}
from_load_or_update_set(record, fromAdd, 'exchange_rate_quotation', exchange_rate_quotation);
} else {
rate_method_code = $('gld_exchage_rate_types_ds').find('type_code', record.get('exchange_rate_type'));
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
}
}
}
function get_quotation_ExchangeRate(param, record, fromAdd) {
Leaf.request({
url: $('get_exchange_rate_link_id').getUrl(),
para: {
from_currency: param.fromCur,
to_currency: param.toCur,
exchange_date: param.exchangeDate,
exchange_rate_type: param.exchangeRateType
},
success: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd, true);
},
error: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
failure: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
scope: this
});
}
function getBaseRate(param) {
Leaf.request({
url: $('hls_fin_calc_get_base_rate_link_id').getUrl(),
para: {
base_rate_type: param.base_rate_type,
currency: param.currency,
valid_date: param.valid_date,
month: param.month
},
sync: true,
success: setBaseRate,
failure: function() {},
error: function() {},
scope: this
});
}
function setBaseRate(res) {
if (new_calc_flag == 'N') {
base_rate_record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), 'base_rate');
if (!base_rate_record) {
Leaf.showMessage('${l:PROMPT}', '${l:HLS500.BASE_RATE_IS_NULL}');
}
if (res.result.base_rate && base_rate_record) {
base_rate_record.set('column_value', mul(res.result.base_rate, 100));
}
} else {
var head_record = $('hls_fin_calculator_hd_ds').getAt(0);
head_record.set('base_rate', mul(res.result.base_rate, 100));
}
}
function set_calc_record_para(object, record, combobox_ds, field, param) {
if (param && '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') {
record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), param);
if (object == 'LOV') {
var temp = get_record_column_value(record);
field.setLovPara(param, get_record_column_value(record));
} else if (object == 'COMBOBOX') {
combobox_ds.setQueryParameter(param, get_record_column_value(record));
}
} else if (param && '${/parameter/@calc_type}' == 'LITE_CALCULATOR') {
var current_record = $('hls_fin_calculator_hd_ds').getCurrentRecord();
if (object == 'LOV') {
field.setLovPara(param, current_record.get(param));
} else if (object == 'COMBOBOX') {
combobox_ds.setQueryParameter(param, current_record.get(param));
}
}
}
function hls_fin_get_column_name(name) {
var query_name, length = name.length;
if (name.substring(length - 2, length) == '_n') {
query_name = name.substring(0, length - 2);
} else {
query_name = name;
}
return query_name;
}
function get_lov_cascade(value) {
if (Ext.isEmpty(value)) {
return '';
} else {
return value;
}
}
function setObjectPara(object, ds, field, para, record) {
if (para) {
if (object == 'LOV') {
field.setLovPara(para, get_lov_cascade(record.get(para)));
} else if (object == 'COMBOBOX') {
ds.setQueryParameter(para, get_lov_cascade(record.get(para)));
}
}
}
function on_object_hd_calc_focus(object) {
var config_ds = '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR' ? $('hls_fin_calculator_hd_ds') : $('hd_field_ds'),
record = object.record,
display_name = object.binder.name;
var column_name, field;
if ('${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') {
column_name = record.get('column_name');
field = record.getField('column_value');
} else {
column_name = hls_fin_get_column_name(display_name);
field = record.getField(display_name);
}
var config_record;
var lov_cascade_para1 = record.get('lov_cascade_para1'),
lov_cascade_para2 = record.get('lov_cascade_para2'),
lov_cascade_para3 = record.get('lov_cascade_para3');
if (object instanceof $L.Lov) {
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para1);
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para2);
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para3);
} else if (object instanceof $L.ComboBox) {
var combobox_ds = object.optionDataSet;
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para1);
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para2);
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para3);
combobox_ds.query();
}
}
function on_object_ln_calc_focus(object) {
var config_ds = $('line_field_ds'),
record = object.record,
name = object.binder.name;
var config_record = config_ds.find('column_name', name);
var lov_cascade_para1 = config_record.get('lov_cascade_para1'),
lov_cascade_para2 = config_record.get('lov_cascade_para2'),
lov_cascade_para3 = config_record.get('lov_cascade_para3'),
field = record.getField(name);
if (object instanceof $L.Lov) {
setObjectPara('LOV', '', field, lov_cascade_para1, record);
setObjectPara('LOV', '', field, lov_cascade_para2, record);
setObjectPara('LOV', '', field, lov_cascade_para3, record);
}
}
function on_calc_success_query(dsId, document_category) {
if (!Ext.isEmpty(dsId)) {
//王炜5743修改,租赁申请项目类不是树组件
if(!Ext.isEmpty(document.getElementById('mainFrame2_id'))){
(document_category == 'PROJECT' ? document.getElementById('mainFrame2_id').contentWindow : self)['$'](dsId).query();
}else{
$(dsId).query();
}
}
}
function current_win_close() {
$('${/parameter/@winId}').close();
}
function on_object_hd_calc_beforecommit(object, record, lov_record) {
var display_name = object.binder.name,
exists_flag = false,
ds = object.binder.ds;
var all_records = ds.getAll();
for (var name in lov_record.data) {
if (name != 'value_code' && name != 'value_name') {
for (var m = 0;m < all_records.length;m++) {
var single_record = all_records[m];
if (single_record.get('column_name').toLowerCase() == name.toLowerCase()) {
execute_hls_save_special_field(single_record, lov_record.get(name), false, lov_record.get(name + '_n'));
}
}
}
}
}
function on_object_ln_calc_beforecommit(object, record, lov_record) {
var display_name = object.binder.name,
field = record.getField(display_name),
mapping = field.get('mapping'),
exists_flag = false;
for (var name in lov_record.data) {
exists_flag = false;
for (var i = 0,
mapping_length = mapping.length;i < mapping_length;i++) {
if ((exists_flag = (name == mapping[i]['from']))) {
break;
}
}
if (!exists_flag) {
mapping.push({
from: name,
to: name
});
}
}
field.setMapping(mapping);
}
]]></script>
<a:dataSets>
<a:dataSet id="tax_type_codes_ds">
<a:datas dataSource="/model/tax_type_codes_path"/>
</a:dataSet>
<a:dataSet id="doc_currency_ds">
<a:datas dataSource="/model/doc_currency_path"/>
</a:dataSet>
<a:dataSet id="gld_exchage_rate_types_ds">
<a:datas dataSource="/model/gld_exchage_rate_types_path"/>
</a:dataSet>
<a:dataSet id="hls_fin_calc_lov_getmapping_ds" fetchAll="true" queryUrl="${/request/@context_path}/modules/hls/HLS500N/hls_parameters_load_n.lsc"/>
</a:dataSets>
</a:view>
</a:screen>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
$Author: gaoyang $Author: gaoyang
$Date: 2013-8-9 下午03:55:25 $Date: 2013-8-9 下午03:55:25
$Revision: 1.0 $Revision: 1.0
$Purpose: $Purpose:
--> -->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true"> <a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true">
<a:init-procedure> <a:init-procedure>
...@@ -17,352 +17,352 @@ ...@@ -17,352 +17,352 @@
<a:link id="hls_fin_calc_get_base_rate_link_id" model="hls.HLS500.hls_fin_calc_get_base_rate" modelaction="update"/> <a:link id="hls_fin_calc_get_base_rate_link_id" model="hls.HLS500.hls_fin_calc_get_base_rate" modelaction="update"/>
<a:link id="get_exchange_rate_link_id" model="basic.hls_get_exchange_rate" modelaction="update"/> <a:link id="get_exchange_rate_link_id" model="basic.hls_get_exchange_rate" modelaction="update"/>
<script type="text/javascript"><![CDATA[ <script type="text/javascript"><![CDATA[
var new_calc_flag = 'N'; var new_calc_flag = 'N';
var body_winId = '${/parameter/@winId}', var body_winId = '${/parameter/@winId}',
body = body_winId == '' ? Ext.getBody() : $(body_winId).wrap; body = body_winId == '' ? Ext.getBody() : $(body_winId).wrap;
function lock_calc_current_window(msg) { function lock_calc_current_window(msg) {
Leaf.Masker.mask(body, msg || '${l:HLS.EXECUTING}'); Leaf.Masker.mask(body, msg || '${l:HLS.EXECUTING}');
} }
function unlock_calc_current_window() { function unlock_calc_current_window() {
Leaf.Masker.unmask(body); Leaf.Masker.unmask(body);
} }
function get_warning_message(msg) { function get_warning_message(msg) {
var warning_message, duration; var warning_message, duration;
if (msg) { if (msg) {
warning_message = msg; warning_message = msg;
warning_message = '<font color="red">'+warning_message + '</font>'; warning_message = '<font color="red">'+warning_message + '</font>';
duration = 8000; duration = 8000;
} else {
warning_message = '${l:HLS.SUBMIT_SUCCESS}';
duration = 2000;
}
parent.Leaf.SideBar.enable = true;
parent.Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding-top:5px;padding-bottom:5px;padding-left:20px;padding-right:20px;border:0px solid #009900"><b>'+warning_message+'</b></div>',
duration: duration
});
}
function set_field_limit(config_record, field) {
// if (config_record.get('lower_limit') || config_record.get('upper_limit')) {
// field.setPropertity('min', config_record.get('lower_limit'));
// field.setPropertity('max', config_record.get('upper_limit'));
// }
}
function set_field_input_mode(record, field, name, input_mode) {
var current_value = record.get(name);
if (input_mode == 'REQUIRED' || (input_mode == 'REQUIRED_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'REQUIRED_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(true);
field.setReadOnly(false);
} else if (input_mode == 'OPTION' || (input_mode == 'OPTION_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'OPTION_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(false);
field.setReadOnly(false);
} else {
field.setReadOnly(true);
}
}
function get_config_column_name(name) {
var query_name, length = name.length;
if (name.substring(length - 2, length) == '_n') {
query_name = name.substring(0, length - 2);
} else {
query_name = name;
}
return query_name;
}
function success_sidebar_show() {
Leaf.SideBar.show({
msg: '${l:HLS.SUBMIT_SUCCESS}',
duration: 2000
});
}
function get_ds_record(ds1, ds2, name) {
return ds1.find('column_name', name) || ds2.find('column_name', name);
}
function from_load_or_update_set(record, fromLoad, name, value) {
if (record.get('percent') == '%' && record.get('validation_type') == 'NUMBERFIELD') {
value = mul(value, 100);
}
if (fromLoad) {
record.data[name] = value;
} else {
record.set(name, value);
}
}
function get_record_column_value(record) {
if (record) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
return record.get('column_value_c');
} else { } else {
return record.get('column_value'); warning_message = '${l:HLS.SUBMIT_SUCCESS}';
duration = 2000;
} }
} else { parent.Leaf.SideBar.enable = true;
return null; parent.Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding-top:5px;padding-bottom:5px;padding-left:20px;padding-right:20px;border:0px solid #009900"><b>'+warning_message+'</b></div>',
duration: duration
});
} }
}
function get_data_column_value(record) { function set_field_limit(config_record, field) {
if (record.data) { // if (config_record.get('lower_limit') || config_record.get('upper_limit')) {
if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'COMBOBOX' || record.data['validation_type'] == 'LOV')) { // field.setPropertity('min', config_record.get('lower_limit'));
return record.data['column_value_c']; // field.setPropertity('max', config_record.get('upper_limit'));
// }
}
function set_field_input_mode(record, field, name, input_mode) {
var current_value = record.get(name);
if (input_mode == 'REQUIRED' || (input_mode == 'REQUIRED_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'REQUIRED_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(true);
field.setReadOnly(false);
} else if (input_mode == 'OPTION' || (input_mode == 'OPTION_ONLY_NOT_NULL' && !Ext.isEmpty(current_value)) || (input_mode == 'OPTION_ONLY_NULL' && Ext.isEmpty(current_value))) {
field.setRequired(false);
field.setReadOnly(false);
} else { } else {
return record.data['column_value']; field.setReadOnly(true);
} }
} else {
return null;
} }
}
function get_config_column_name(name) {
function execute_hls_save_special_field(record, value, fromLoad, display_value) { var query_name, length = name.length;
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) { if (name.substring(length - 2, length) == '_n') {
from_load_or_update_set(record, fromLoad, 'column_value_c', value); query_name = name.substring(0, length - 2);
if (!Ext.isEmpty(display_value)) { } else {
from_load_or_update_set(record, fromLoad, 'column_value', display_value); query_name = name;
} }
} else { return query_name;
from_load_or_update_set(record, fromLoad, 'column_value', value);
} }
}
function success_sidebar_show() {
function data_or_record_set(record, name, value) { Leaf.SideBar.show({
if (record.set) { msg: '${l:HLS.SUBMIT_SUCCESS}',
record.set(name, value); duration: 2000
} else { });
record.data[name] = value;
}
}
function get_hls_special_field(record, value, value_name) {
data_or_record_set(record, 'column_value_c', value);
if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'LOV' || record.data['validation_type'] == 'COMBOBOX')) {
data_or_record_set(record, 'column_value', value_name);
return value_name;
} else {
data_or_record_set(record, 'column_value', value);
return value;
} }
}
function get_ds_record(ds1, ds2, name) {
function set_after_check_empty(record, old_value, value, fromLoad, display_value) { return ds1.find('column_name', name) || ds2.find('column_name', name);
if (Ext.isEmpty(old_value)) {
execute_hls_save_special_field(record, value, fromLoad, display_value);
} }
}
function from_load_or_update_set(record, fromLoad, name, value) {
function special_editor_function(ds, record, name) { if (record.get('percent') == '%' && record.get('validation_type') == 'NUMBERFIELD') {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds'), value = mul(value, 100);
column_name = record.get('column_name'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'),
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
if (exchange_rate_type_record && exchange_rate_record && currency_record) {
var exchange_rate_type_field = exchange_rate_type_record.getField('column_value'),
exchange_rate_field = exchange_rate_record.getField('column_value');
var currency = get_record_column_value(currency_record),
exchange_rate_type = get_record_column_value(exchange_rate_type_record);
var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
var rate_method_code;
if (rate_method_code_record) {
rate_method_code = rate_method_code_record.get('rate_method_code');
} }
if (currency == '${/model/doc_functional_currency_path/record/@functional_currency_code}') { if (fromLoad) {
exchange_rate_type_field.setRequired(false); record.data[name] = value;
exchange_rate_type_field.setReadOnly(true);
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
} else { } else {
exchange_rate_type_field.setRequired(true); record.set(name, value);
exchange_rate_type_field.setReadOnly(false); }
if (check_rate_method_code(rate_method_code)) { }
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false); function get_record_column_value(record) {
if (record) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
return record.get('column_value_c');
} else { } else {
exchange_rate_field.setRequired(true); return record.get('column_value');
exchange_rate_field.setReadOnly(false);
} }
} else {
return null;
} }
} }
}
function get_data_column_value(record) {
function call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, fromLine) { if (record.data) {
var input_mode, lower_limit; if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'COMBOBOX' || record.data['validation_type'] == 'LOV')) {
if (fromLine) { return record.data['column_value_c'];
input_mode = config_record.get('input_mode'); } else {
lower_limit = config_record.get('lower_limit'); return record.data['column_value'];
} else { }
input_mode = record.get('input_mode'); } else {
lower_limit = record.get('lower_limit'); return null;
} }
if (Ext.isEmpty(value) && (input_mode == 'REQUIRED_ONLY_NOT_NULL' || input_mode == 'OPTION_ONLY_NOT_NULL')) {
Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding:3px;border:1px solid #009900;font-size:20px;">' + '${l:HLS500.FIELD_IS_NOT_NULL}' + '</div>',
duration: 2000
});
setTimeout(function() {
record.set(name, old_value);
}, 5);
} }
}
function execute_hls_save_special_field(record, value, fromLoad, display_value) {
function create_record_column(temp_head_records, headRecord) { if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
for (var m = 0;m < temp_head_records.length;m++) { from_load_or_update_set(record, fromLoad, 'column_value_c', value);
var temp_head_record = temp_head_records[m]; if (!Ext.isEmpty(display_value)) {
var column_name = temp_head_record.get('column_name'), from_load_or_update_set(record, fromLoad, 'column_value', display_value);
validation_type = temp_head_record.get('validation_type'), }
column_value_c = temp_head_record.get('column_value_c'), } else {
column_value = temp_head_record.get('column_value'), from_load_or_update_set(record, fromLoad, 'column_value', value);
finnal_value = ''; }
if (column_name == 'price_list') { }
finnal_value = '${/parameter/@price_list}';
} function data_or_record_set(record, name, value) {
if (column_name == 'currency') { if (record.set) {
finnal_value = '${/parameter/@currency}'; record.set(name, value);
} } else {
if (column_name == 'currency_precision') { record.data[name] = value;
finnal_value = '${/parameter/@precision}'; }
} }
if (!Ext.isEmpty(column_value) || !Ext.isEmpty(column_value_c)) {
if (validation_type == 'DATEPICKER') { function get_hls_special_field(record, value, value_name) {
finnal_value = Leaf.formatDate(column_value); data_or_record_set(record, 'column_value_c', value);
} else if (temp_head_record.get('lov_return_vcode') == 'N' && (validation_type == 'COMBOBOX' || validation_type == 'LOV')) { if (record.data['lov_return_vcode'] == 'N' && (record.data['validation_type'] == 'LOV' || record.data['validation_type'] == 'COMBOBOX')) {
if (temp_head_record.get('percent') == '%') { data_or_record_set(record, 'column_value', value_name);
finnal_value = div(column_value_c, 100); return value_name;
} else {
data_or_record_set(record, 'column_value', value);
return value;
}
}
function set_after_check_empty(record, old_value, value, fromLoad, display_value) {
if (Ext.isEmpty(old_value)) {
execute_hls_save_special_field(record, value, fromLoad, display_value);
}
}
function special_editor_function(ds, record, name) {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds'),
column_name = record.get('column_name'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'),
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
if (exchange_rate_type_record && exchange_rate_record && currency_record) {
var exchange_rate_type_field = exchange_rate_type_record.getField('column_value'),
exchange_rate_field = exchange_rate_record.getField('column_value');
var currency = get_record_column_value(currency_record),
exchange_rate_type = get_record_column_value(exchange_rate_type_record);
var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
var rate_method_code;
if (rate_method_code_record) {
rate_method_code = rate_method_code_record.get('rate_method_code');
}
if (currency == '${/model/doc_functional_currency_path/record/@functional_currency_code}') {
exchange_rate_type_field.setRequired(false);
exchange_rate_type_field.setReadOnly(true);
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
} else {
exchange_rate_type_field.setRequired(true);
exchange_rate_type_field.setReadOnly(false);
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setReadOnly(true);
exchange_rate_field.setRequired(false);
} else { } else {
finnal_value = column_value_c; exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
} }
} else if (temp_head_record.get('percent') == '%') {
finnal_value = div(column_value, 100);
} else {
finnal_value = column_value;
} }
} }
headRecord.set(column_name, finnal_value);
} }
}
function call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, fromLine) {
function call_back_after_check_limit(ds, record, name, value, old_value, config_record, fromLine) { var input_mode, lower_limit;
var lower_limit, upper_limit, finnal_value, set_value, current_record;
if (fromLine) {
current_record = config_record;
} else {
current_record = record;
}
lower_limit = current_record.get('lower_limit');
upper_limit = current_record.get('upper_limit');
if (current_record.get('percent') == '%') {
finnal_value = div(value, 100);
set_value = mul(lower_limit, 100);
} else {
finnal_value = value;
set_value = lower_limit;
}
if (!set_value) {
set_value = 0;
}
if (!Ext.isEmpty(value) && (finnal_value < lower_limit || finnal_value > upper_limit)) {
if (fromLine) { if (fromLine) {
Leaf.showMessage('${l:PROMPT}', config_record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}'); input_mode = config_record.get('input_mode');
lower_limit = config_record.get('lower_limit');
} else {
input_mode = record.get('input_mode');
lower_limit = record.get('lower_limit');
}
if (Ext.isEmpty(value) && (input_mode == 'REQUIRED_ONLY_NOT_NULL' || input_mode == 'OPTION_ONLY_NOT_NULL')) {
Leaf.SideBar.show({
html: '<div style="background-color:#ccfbd5;position:absolute;padding:3px;border:1px solid #009900;font-size:20px;">' + '${l:HLS500.FIELD_IS_NOT_NULL}' + '</div>',
duration: 2000
});
setTimeout(function() { setTimeout(function() {
if (config_record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && config_record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') { record.set(name, old_value);
record.set(name, null);
} else {
record.set(name, set_value);
}
}, 5); }, 5);
} else { }
if (name != 'column_value_c') { }
Leaf.showMessage('${l:PROMPT}', record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}');
function create_record_column(temp_head_records, headRecord) {
for (var m = 0;m < temp_head_records.length;m++) {
var temp_head_record = temp_head_records[m];
var column_name = temp_head_record.get('column_name'),
validation_type = temp_head_record.get('validation_type'),
column_value_c = temp_head_record.get('column_value_c'),
column_value = temp_head_record.get('column_value'),
finnal_value = '';
if (column_name == 'price_list') {
finnal_value = '${/parameter/@price_list}';
} }
setTimeout(function() { if (column_name == 'currency') {
if (record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') { finnal_value = '${/parameter/@currency}';
data_or_record_set(record, 'column_value_c', null); }
data_or_record_set(record, 'column_value', null); if (column_name == 'currency_precision') {
finnal_value = '${/parameter/@precision}';
}
if (!Ext.isEmpty(column_value) || !Ext.isEmpty(column_value_c)) {
if (validation_type == 'DATEPICKER') {
finnal_value = Leaf.formatDate(column_value);
} else if (temp_head_record.get('lov_return_vcode') == 'N' && (validation_type == 'COMBOBOX' || validation_type == 'LOV')) {
if (temp_head_record.get('percent') == '%') {
finnal_value = div(column_value_c, 100);
} else {
finnal_value = column_value_c;
}
} else if (temp_head_record.get('percent') == '%') {
finnal_value = div(column_value, 100);
} else { } else {
data_or_record_set(record, 'column_value_c', set_value); finnal_value = column_value;
data_or_record_set(record, 'column_value', set_value);
} }
}, 5); }
headRecord.set(column_name, finnal_value);
} }
} }
}
function call_back_after_check_limit(ds, record, name, value, old_value, config_record, fromLine) {
function onLineupdate_setEmpty(ds, record, name, value, old_value) { var lower_limit, upper_limit, finnal_value, set_value, current_record;
var config_record = $('line_attribute_ds').find('column_name', name); if (fromLine) {
if (config_record) { current_record = config_record;
var input_mode = config_record.get('input_mode'); } else {
call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, true); current_record = record;
call_back_after_check_limit(ds, record, name, value, old_value, config_record, true); }
} lower_limit = current_record.get('lower_limit');
} upper_limit = current_record.get('upper_limit');
if (current_record.get('percent') == '%') {
function clear_hd_lov_sql_mapping(hd_ds, column_name) { finnal_value = div(value, 100);
var hd_lov_mapping_ds = $('hls_fin_calc_lov_getmapping_ds'); set_value = mul(lower_limit, 100);
var hd_records = hd_ds.getAll(); } else {
hd_lov_mapping_ds.setQueryParameter('price_list', '${/parameter/@price_list}'); finnal_value = value;
hd_lov_mapping_ds.setQueryParameter('column_name', column_name); set_value = lower_limit;
hd_lov_mapping_ds.setQueryParameter('layout_area_seq', 'H'); }
if (!set_value) {
function clear_mapping_detail(ds) { set_value = 0;
hd_lov_mapping_ds.un('load', clear_mapping_detail); }
var detail_records = ds.getAll(); if (!Ext.isEmpty(value) && (finnal_value < lower_limit || finnal_value > upper_limit)) {
for (var m = 0;m < detail_records.length;m++) { if (fromLine) {
var detail_record = detail_records[m]; Leaf.showMessage('${l:PROMPT}', config_record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}');
for (var name in detail_record.data) { setTimeout(function() {
var current_name = detail_record.get(name).toLowerCase(); if (config_record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && config_record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') {
if (current_name != 'value_code' && current_name != 'value_name') { record.set(name, null);
for (var i = 0;i < hd_records.length;i++) { } else {
var single_record = hd_records[i]; record.set(name, set_value);
if (single_record.get('column_name').toLowerCase() == current_name) {
data_or_record_set(single_record, 'column_value_c', null);
data_or_record_set(single_record, 'column_value', null);
}
} }
}, 5);
} else {
if (name != 'column_value_c') {
Leaf.showMessage('${l:PROMPT}', record.get('prompt') + '${l:HLS500.VALUE_IS_NOT_BEYOND}');
} }
setTimeout(function() {
if (record.get('input_mode') != 'REQUIRED_ONLY_NOT_NULL' && record.get('input_mode') != 'OPTION_ONLY_NOT_NULL') {
data_or_record_set(record, 'column_value_c', null);
data_or_record_set(record, 'column_value', null);
} else {
data_or_record_set(record, 'column_value_c', set_value);
data_or_record_set(record, 'column_value', set_value);
}
}, 5);
} }
} }
unlock_calc_current_window();
} }
hd_lov_mapping_ds.on('load', clear_mapping_detail);
hd_lov_mapping_ds.query(); function onLineupdate_setEmpty(ds, record, name, value, old_value) {
} var config_record = $('line_attribute_ds').find('column_name', name);
if (config_record) {
var input_mode = config_record.get('input_mode');
function onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad) { call_back_after_check_input_mode(ds, record, name, value, old_value, config_record, true);
if (!fromLoad) { call_back_after_check_limit(ds, record, name, value, old_value, config_record, true);
var column_name = record.get('column_name'); }
var all_records = ds.getAll(); }
for (var i = 0;i < all_records.length;i++) {
var all_record = all_records[i]; function clear_hd_lov_sql_mapping(hd_ds, column_name) {
var lov_cascade_para1 = all_record.get('lov_cascade_para1'), var hd_lov_mapping_ds = $('hls_fin_calc_lov_getmapping_ds');
lov_cascade_para2 = all_record.get('lov_cascade_para2'), var hd_records = hd_ds.getAll();
lov_cascade_para3 = all_record.get('lov_cascade_para3'); hd_lov_mapping_ds.setQueryParameter('price_list', '${/parameter/@price_list}');
if (column_name == lov_cascade_para1 || column_name == lov_cascade_para2 || column_name == lov_cascade_para3) { hd_lov_mapping_ds.setQueryParameter('column_name', column_name);
data_or_record_set(all_record, 'column_value_c', null); hd_lov_mapping_ds.setQueryParameter('layout_area_seq', 'H');
data_or_record_set(all_record, 'column_value', null);
function clear_mapping_detail(ds) {
hd_lov_mapping_ds.un('load', clear_mapping_detail);
var detail_records = ds.getAll();
for (var m = 0;m < detail_records.length;m++) {
var detail_record = detail_records[m];
for (var name in detail_record.data) {
var current_name = detail_record.get(name).toLowerCase();
if (current_name != 'value_code' && current_name != 'value_name') {
for (var i = 0;i < hd_records.length;i++) {
var single_record = hd_records[i];
if (single_record.get('column_name').toLowerCase() == current_name) {
data_or_record_set(single_record, 'column_value_c', null);
data_or_record_set(single_record, 'column_value', null);
}
}
}
}
} }
unlock_calc_current_window();
}
hd_lov_mapping_ds.on('load', clear_mapping_detail);
hd_lov_mapping_ds.query();
}
function onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad) {
if (!fromLoad) {
var column_name = record.get('column_name');
var all_records = ds.getAll();
for (var i = 0;i < all_records.length;i++) {
var all_record = all_records[i];
var lov_cascade_para1 = all_record.get('lov_cascade_para1'),
lov_cascade_para2 = all_record.get('lov_cascade_para2'),
lov_cascade_para3 = all_record.get('lov_cascade_para3');
if (column_name == lov_cascade_para1 || column_name == lov_cascade_para2 || column_name == lov_cascade_para3) {
data_or_record_set(all_record, 'column_value_c', null);
data_or_record_set(all_record, 'column_value', null);
}
}
if (Ext.isEmpty(value) && (record.get('validation_type') == 'LOV' || record.get('validation_type') == 'LOV_C') && !fromLoad) {
lock_calc_current_window();
clear_hd_lov_sql_mapping(ds, column_name);
}
call_back_after_check_input_mode(ds, record, name, value, old_value);
call_back_after_check_limit(ds, record, name, value, old_value);
} }
if (Ext.isEmpty(value) && (record.get('validation_type') == 'LOV' || record.get('validation_type') == 'LOV_C') && !fromLoad) {
lock_calc_current_window();
clear_hd_lov_sql_mapping(ds, column_name);
}
call_back_after_check_input_mode(ds, record, name, value, old_value);
call_back_after_check_limit(ds, record, name, value, old_value);
} }
}
function getNextMonth(date) { function getNextMonth(date) {
debugger; debugger;
var arr = date.toString().split('-'); var arr = date.toString().split('-');
var year = arr[0]; //获取当前日期的年份 var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份 var month = arr[1]; //获取当前日期的月份
...@@ -384,519 +384,519 @@ ...@@ -384,519 +384,519 @@
var t2 = year + '-' + month2 + '-' + day2; var t2 = year + '-' + month2 + '-' + day2;
return t2; return t2;
} }
function onEditorupdate(ds, record, name, value, old_value, fromLoad) { function onEditorupdate(ds, record, name, value, old_value, fromLoad) {
if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV') && name == 'column_value') { if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV') && name == 'column_value') {
return; return;
} }
var column_name = record.get('column_name'); var column_name = record.get('column_name');
var column_value = record.get('column_value'); var column_value = record.get('column_value');
var temp_hd_attribute_ds = $('temp_hd_attribute_ds'); var temp_hd_attribute_ds = $('temp_hd_attribute_ds');
var exchange_rate_type_record, exchange_rate_record, currency_record, lease_start_date_record, exchange_rate_type_field; var exchange_rate_type_record, exchange_rate_record, currency_record, lease_start_date_record, exchange_rate_type_field;
//add by niminmin 填写租赁开始日期 自动带出支付日 //add by niminmin 填写租赁开始日期 自动带出支付日
if (column_name == 'lease_start_date'&&value&&column_value==value) { if (column_name == 'lease_start_date'&&value&&column_value==value) {
var lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'); var lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
var contract_inception_date_reocrd = get_ds_record(ds, temp_hd_attribute_ds, 'contract_inception_date'); var contract_inception_date_reocrd = get_ds_record(ds, temp_hd_attribute_ds, 'contract_inception_date');
var lease_start_date = get_record_column_value(lease_start_date_record); var lease_start_date = get_record_column_value(lease_start_date_record);
var contract_inception_date = get_record_column_value(contract_inception_date_reocrd); var contract_inception_date = get_record_column_value(contract_inception_date_reocrd);
if(lease_start_date_record){ if(lease_start_date_record){
//var day = new Date(value.replace(/-/g, '/')).getDate(); //var day = new Date(value.replace(/-/g, '/')).getDate();
var day = new Date(column_value).format('yyyy-mm-dd'); var day = new Date(column_value).format('yyyy-mm-dd');
var nextDay=getNextMonth(day); var nextDay=getNextMonth(day);
from_load_or_update_set(contract_inception_date_reocrd, fromLoad, 'column_value', nextDay); from_load_or_update_set(contract_inception_date_reocrd, fromLoad, 'column_value', nextDay);
}
}
if (column_name == 'lease_times' || column_name == 'annual_pay_times') {
var lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
lease_term, annual_pay_times = get_record_column_value(annual_pay_times_record),
lease_times = get_record_column_value(lease_times_record);
if (column_name == 'lease_times' && !Ext.isEmpty(value)) {
if (annual_pay_times_record && !Ext.isEmpty(annual_pay_times)) {
if (lease_term_record) {
lease_term = div(value, annual_pay_times).toFixed(3) * 1;
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term);
}
} }
} else if (column_name == 'annual_pay_times' && !Ext.isEmpty(value)) { }
if (lease_times_record && !Ext.isEmpty(lease_times)) { if (column_name == 'lease_times' || column_name == 'annual_pay_times') {
if (lease_term_record) { var lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
lease_term = div(lease_times, value).toFixed(3) * 1; annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term); lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
lease_term, annual_pay_times = get_record_column_value(annual_pay_times_record),
lease_times = get_record_column_value(lease_times_record);
if (column_name == 'lease_times' && !Ext.isEmpty(value)) {
if (annual_pay_times_record && !Ext.isEmpty(annual_pay_times)) {
if (lease_term_record) {
lease_term = div(value, annual_pay_times).toFixed(3) * 1;
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term);
}
}
} else if (column_name == 'annual_pay_times' && !Ext.isEmpty(value)) {
if (lease_times_record && !Ext.isEmpty(lease_times)) {
if (lease_term_record) {
lease_term = div(lease_times, value).toFixed(3) * 1;
from_load_or_update_set(lease_term_record, fromLoad, 'column_value', lease_term);
}
} }
} }
} } else if (column_name == 'lease_term') {
} else if (column_name == 'lease_term') { value = get_record_column_value(record);
value = get_record_column_value(record); lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'); var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type');
var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type'); currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency'); var base_rate_type = get_record_column_value(base_rate_type_record),
var base_rate_type = get_record_column_value(base_rate_type_record), lease_start_date = get_record_column_value(lease_start_date_record),
lease_start_date = get_record_column_value(lease_start_date_record), currency;
currency; if ('${/parameter/@calc_session_id}') {
if ('${/parameter/@calc_session_id}') { currency = get_record_column_value(currency_record);
currency = get_record_column_value(currency_record);
} else {
currency = '${/parameter/@currency}';
}
getBaseRate({
base_rate_type: base_rate_type,
currency: currency,
valid_date: lease_start_date,
month: mul(value, 12)
});
} else if (column_name == 'tax_type_id') {
var vat_flag_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_flag'),
vat_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_rate');
if (!Ext.isEmpty(value)) {
var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value);
from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', tax_type_codes_record.get('vat_flag'));
// from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', tax_type_codes_record.get('tax_type_rate'));
} else {
from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', '');
// from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', '');
}
} else if (column_name == 'currency') {
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type');
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
if (exchange_rate_type_record && exchange_rate_record) {
exchange_rate_type_field = exchange_rate_type_record.getField('column_value');
if (value == '${/model/doc_functional_currency_path/record/@functional_currency_code}') {
// var default_exchage_rate_type_record = $('gld_exchage_rate_types_ds').find('type_code', 'MANUAL');
// if (default_exchage_rate_type_record) {
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value_c', 'MANUAL');
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value', default_exchage_rate_type_record.get('type_name'));
// }
from_load_or_update_set(exchange_rate_record, fromLoad, 'column_value', 1);
} else { } else {
set_after_check_empty(exchange_rate_type_record, get_record_column_value(exchange_rate_type_record), '${/model/fnd_financial_option_path/record/@default_exchange_rate_type}', fromLoad, '${/model/fnd_financial_option_path/record/@exchange_rate_type_display}'); currency = '${/parameter/@currency}';
} }
} getBaseRate({
} else if (column_name == 'exchange_rate_type' || column_name == 'lease_start_date') { base_rate_type: base_rate_type,
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'); currency: currency,
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency'); valid_date: lease_start_date,
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'); month: mul(value, 12)
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'); });
getExchangeRate({ } else if (column_name == 'tax_type_id') {
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}', var vat_flag_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_flag'),
toCur: get_record_column_value(currency_record), vat_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'vat_rate');
exchangeRateType: get_record_column_value(exchange_rate_type_record), if (!Ext.isEmpty(value)) {
exchangeDate: get_record_column_value(lease_start_date_record) var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value);
}, ds, temp_hd_attribute_ds, fromLoad); from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', tax_type_codes_record.get('vat_flag'));
if (!fromLoad && value != old_value) { // from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', tax_type_codes_record.get('tax_type_rate'));
exchange_rate_record.set('column_value', ''); } else {
} from_load_or_update_set(vat_flag_record, fromLoad, 'column_value', '');
// from_load_or_update_set(vat_rate_record, fromLoad, 'column_value', '');
}
} else if (column_name == 'currency') {
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type');
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
if (exchange_rate_type_record && exchange_rate_record) {
exchange_rate_type_field = exchange_rate_type_record.getField('column_value');
if (value == '${/model/doc_functional_currency_path/record/@functional_currency_code}') {
// var default_exchage_rate_type_record = $('gld_exchage_rate_types_ds').find('type_code', 'MANUAL');
// if (default_exchage_rate_type_record) {
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value_c', 'MANUAL');
// from_load_or_update_set(exchange_rate_type_record, fromLoad, 'column_value', default_exchage_rate_type_record.get('type_name'));
// }
from_load_or_update_set(exchange_rate_record, fromLoad, 'column_value', 1);
} else {
set_after_check_empty(exchange_rate_type_record, get_record_column_value(exchange_rate_type_record), '${/model/fnd_financial_option_path/record/@default_exchange_rate_type}', fromLoad, '${/model/fnd_financial_option_path/record/@exchange_rate_type_display}');
}
}
} /*else if (column_name == 'exchange_rate_type' || column_name == 'lease_start_date') {
exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency');
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date');
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type');
getExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: get_record_column_value(currency_record),
exchangeRateType: get_record_column_value(exchange_rate_type_record),
exchangeDate: get_record_column_value(lease_start_date_record)
}, ds, temp_hd_attribute_ds, fromLoad);
if (!fromLoad && value != old_value) {
exchange_rate_record.set('column_value', '');
}
}*/
onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad);
} }
onEditorupdate_setEmpty(ds, record, name, value, old_value, fromLoad);
} function execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, success_flag) {
var rate_method_code, exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'),
function execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, success_flag) { exchange_rate_field = exchange_rate_record.getField('column_value');
var rate_method_code, exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'), if (success_flag) {
exchange_rate_field = exchange_rate_record.getField('column_value'); var exchange_rate_quotation_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_quotation'),
if (success_flag) { exchange_rate = res.result.exchange_rate;
var exchange_rate_quotation_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_quotation'), rate_method_code = res.result.rate_method_code;
exchange_rate = res.result.exchange_rate; if (check_rate_method_code(rate_method_code)) {
rate_method_code = res.result.rate_method_code; exchange_rate_field.setReadOnly(true);
if (check_rate_method_code(rate_method_code)) { exchange_rate_field.setRequired(false);
exchange_rate_field.setReadOnly(true); if (!Ext.isDefined(exchange_rate)) {
exchange_rate_field.setRequired(false); exchange_rate = '';
if (!Ext.isDefined(exchange_rate)) { }
exchange_rate = ''; execute_hls_save_special_field(exchange_rate_record, exchange_rate, false, null);
} } else {
execute_hls_save_special_field(exchange_rate_record, exchange_rate, false, null); exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
}
var exchange_rate_quotation = res.result.exchange_rate_quotation;
if (!Ext.isDefined(exchange_rate_quotation)) {
exchange_rate_quotation = 'DIRECT QUOTATION';
}
execute_hls_save_special_field(exchange_rate_quotation_record, exchange_rate_quotation, false, null);
} else { } else {
exchange_rate_field.setRequired(true); var exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_field.setReadOnly(false); exchange_rate_type = get_record_column_value(exchange_rate_type_record);
} var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
var exchange_rate_quotation = res.result.exchange_rate_quotation; rate_method_code = rate_method_code_record.get('rate_method_code');
if (!Ext.isDefined(exchange_rate_quotation)) { if (check_rate_method_code(rate_method_code)) {
exchange_rate_quotation = 'DIRECT QUOTATION'; exchange_rate_field.setRequired(true);
} exchange_rate_field.setReadOnly(true);
execute_hls_save_special_field(exchange_rate_quotation_record, exchange_rate_quotation, false, null); }
} else {
var exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate_type'),
exchange_rate_type = get_record_column_value(exchange_rate_type_record);
var rate_method_code_record = $('gld_exchage_rate_types_ds').find('type_code', exchange_rate_type);
rate_method_code = rate_method_code_record.get('rate_method_code');
if (check_rate_method_code(rate_method_code)) {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(true);
} }
} }
}
function getExchangeRate(param, ds, temp_hd_attribute_ds, fromLoad) {
function getExchangeRate(param, ds, temp_hd_attribute_ds, fromLoad) { Leaf.request({
Leaf.request({ url: $('get_exchange_rate_link_id').getUrl(),
url: $('get_exchange_rate_link_id').getUrl(), para: {
para: { from_currency: param.fromCur,
from_currency: param.fromCur, to_currency: param.toCur,
to_currency: param.toCur, exchange_date: param.exchangeDate,
exchange_date: param.exchangeDate, exchange_rate_type: param.exchangeRateType
exchange_rate_type: param.exchangeRateType },
}, success: function(res) {
success: function(res) { execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, true);
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad, true); },
}, error: function(res) {
error: function(res) { execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad);
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad); },
}, failure: function(res) {
failure: function(res) { execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad);
execute_after_getexchangerate(res, ds, temp_hd_attribute_ds, fromLoad); },
}, scope: this
scope: this
});
}
function onEditor_load_fire(ds, record, name, value, old_value) {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds');
var currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency'),
currency = get_record_column_value(currency_record),
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
lease_times = get_record_column_value(lease_times_record),
annual_pay_times = get_record_column_value(annual_pay_times_record);
if (name == 'base_rate' && Ext.isEmpty(value)) {
var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type');
var base_rate_type = get_record_column_value(base_rate_type_record),
lease_start_date = get_record_column_value(lease_start_date_record),
lease_term = get_record_column_value(lease_term_record);
if (Ext.isEmpty(lease_term) && lease_times_record) {
onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true);
lease_term = get_record_column_value(lease_term_record);
}
getBaseRate({
base_rate_type: base_rate_type,
currency: currency,
valid_date: lease_start_date,
month: mul(lease_term, 12)
}); });
} else if (name == 'lease_times' || name == 'annual_pay_times') { }
if (Ext.isEmpty(lease_term)) {
if (name == 'lease_times' && lease_times_record) { function onEditor_load_fire(ds, record, name, value, old_value) {
var temp_hd_attribute_ds = $('temp_hd_attribute_ds');
var currency_record = get_ds_record(ds, temp_hd_attribute_ds, 'currency'),
currency = get_record_column_value(currency_record),
lease_start_date_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
exchange_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_start_date'),
lease_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_times'),
lease_term_record = get_ds_record(ds, temp_hd_attribute_ds, 'lease_term'),
annual_pay_times_record = get_ds_record(ds, temp_hd_attribute_ds, 'annual_pay_times'),
lease_times = get_record_column_value(lease_times_record),
annual_pay_times = get_record_column_value(annual_pay_times_record);
if (name == 'base_rate' && Ext.isEmpty(value)) {
var base_rate_type_record = get_ds_record(ds, temp_hd_attribute_ds, 'base_rate_type');
var base_rate_type = get_record_column_value(base_rate_type_record),
lease_start_date = get_record_column_value(lease_start_date_record),
lease_term = get_record_column_value(lease_term_record);
if (Ext.isEmpty(lease_term) && lease_times_record) {
onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true); onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true);
} else if (name == 'annual_pay_times' && annual_pay_times_record) { lease_term = get_record_column_value(lease_term_record);
onEditorupdate(ds, annual_pay_times_record, 'annual_pay_times', annual_pay_times, '', true); }
getBaseRate({
base_rate_type: base_rate_type,
currency: currency,
valid_date: lease_start_date,
month: mul(lease_term, 12)
});
} else if (name == 'lease_times' || name == 'annual_pay_times') {
if (Ext.isEmpty(lease_term)) {
if (name == 'lease_times' && lease_times_record) {
onEditorupdate(ds, lease_times_record, 'lease_times', lease_times, '', true);
} else if (name == 'annual_pay_times' && annual_pay_times_record) {
onEditorupdate(ds, annual_pay_times_record, 'annual_pay_times', annual_pay_times, '', true);
}
}
} else if (name == 'currency_precision') {
if (Ext.isEmpty(value)) {
var doc_currency_record = $('doc_currency_ds').find('currency_code', currency);
if (doc_currency_record) {
record.data['column_value'] = doc_currency_record.get('precision');
}
} }
} }
} else if (name == 'currency_precision') { // else if (name == 'calc_method' && Ext.isEmpty(value)) {
if (Ext.isEmpty(value)) { // var calc_method_record = get_ds_record(ds, temp_hd_attribute_ds, 'calc_method');
var doc_currency_record = $('doc_currency_ds').find('currency_code', currency); // var calc_method = calc_method_record.get('calc_method'),
if (doc_currency_record) { // calc_method_name = calc_method_record.get('calc_method_name');
record.data['column_value'] = doc_currency_record.get('precision'); // get_hls_special_field(calc_method_record, calc_method, calc_method_name);
// }
else if (name == 'exchange_rate_type' || name == 'lease_start_date') {
var exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate');
if (Ext.isEmpty(get_record_column_value(exchange_rate_record))) {
getExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: get_record_column_value(currency_record),
exchangeRateType: get_record_column_value(exchange_rate_type_record),
exchangeDate: get_record_column_value(lease_start_date_record)
}, ds, temp_hd_attribute_ds, true);
} }
} }
} }
// else if (name == 'calc_method' && Ext.isEmpty(value)) {
// var calc_method_record = get_ds_record(ds, temp_hd_attribute_ds, 'calc_method');
// var calc_method = calc_method_record.get('calc_method'), function onEditorupdate_header(ds, record, name, value, old_value, fromAdd) {
// calc_method_name = calc_method_record.get('calc_method_name'); if (name == 'lease_times' || name == 'annual_pay_times') {
// get_hls_special_field(calc_method_record, calc_method, calc_method_name); var lease_term;
// } if (name == 'lease_times' && !Ext.isEmpty(record.get('annual_pay_times'))) {
else if (name == 'exchange_rate_type' || name == 'lease_start_date') { lease_term = div(value, record.get('annual_pay_times')).toFixed(3) * 1;
var exchange_rate_record = get_ds_record(ds, temp_hd_attribute_ds, 'exchange_rate'); } else if (name == 'annual_pay_times' && !Ext.isEmpty(record.get('lease_times'))) {
if (Ext.isEmpty(get_record_column_value(exchange_rate_record))) { lease_term = div(record.get('lease_times'), value).toFixed(3) * 1;
getExchangeRate({ }
if (fromAdd) {
record.data['lease_term'] = lease_term;
} else {
record.set('lease_term', lease_term);
}
} else if (name == 'lease_term') {
if (value != old_value) {
new_calc_flag = 'Y';
getBaseRate({
base_rate_type: record.get('base_rate_type'),
currency: record.get('currency'),
valid_date: record.get('lease_start_date'),
month: mul(value, 12)
});
}
} else if (name == 'tax_type_id') {
if (!Ext.isEmpty(value) && (record.get('vat_flag') || record.get('vat_rate'))) {
var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value);
from_load_or_update_set(record, fromAdd, 'vat_flag', tax_type_codes_record.get('vat_flag'));
// from_load_or_update_set(record, fromAdd, 'vat_rate', tax_type_codes_record.get('tax_type_rate'));
} else {
from_load_or_update_set(record, fromAdd, 'vat_flag', '');
// from_load_or_update_set(record, fromAdd, 'vat_rate', '');
}
} else if (name == 'currency_precision') {
if (Ext.isEmpty(value) && fromAdd) {
var doc_currency_record = $('doc_currency_ds').find('currency_code', record.get('currency'));
if (doc_currency_record) {
record.data['currency_precision'] = doc_currency_record.get('precision');
}
}
} else if (name == 'exchange_rate_type' || name == 'lease_start_date') {
get_quotation_ExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}', fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: get_record_column_value(currency_record), toCur: record.get('currency'),
exchangeRateType: get_record_column_value(exchange_rate_type_record), exchangeRateType: record.get('exchange_rate_type'),
exchangeDate: get_record_column_value(lease_start_date_record) exchangeDate: record.get('lease_start_date')
}, ds, temp_hd_attribute_ds, true); }, record, fromAdd);
} }
} }
}
function check_rate_method_code(rate_method_code) {
if (!rate_method_code || !Ext.isDefined(rate_method_code) || rate_method_code == 'PERIOD' || rate_method_code == 'DAILY' || rate_method_code == 'FIXED') {
function onEditorupdate_header(ds, record, name, value, old_value, fromAdd) { return true;
if (name == 'lease_times' || name == 'annual_pay_times') {
var lease_term;
if (name == 'lease_times' && !Ext.isEmpty(record.get('annual_pay_times'))) {
lease_term = div(value, record.get('annual_pay_times')).toFixed(3) * 1;
} else if (name == 'annual_pay_times' && !Ext.isEmpty(record.get('lease_times'))) {
lease_term = div(record.get('lease_times'), value).toFixed(3) * 1;
}
if (fromAdd) {
record.data['lease_term'] = lease_term;
} else { } else {
record.set('lease_term', lease_term); return false;
} }
} else if (name == 'lease_term') { }
if (value != old_value) {
new_calc_flag = 'Y'; function execute_after_quotation_getexchangerate(res, record, fromAdd, success_flag) {
getBaseRate({ var rate_method_code, exchange_rate, exchange_rate_field = record.getField('exchange_rate');
base_rate_type: record.get('base_rate_type'), if (success_flag) {
currency: record.get('currency'), rate_method_code = res.result.rate_method_code;
valid_date: record.get('lease_start_date'), exchange_rate = res.result.exchange_rate;
month: mul(value, 12) if (check_rate_method_code(rate_method_code)) {
}); exchange_rate_field.setReadOnly(true);
} exchange_rate_field.setRequired(false);
} else if (name == 'tax_type_id') { if (!Ext.isDefined(exchange_rate)) {
if (!Ext.isEmpty(value) && (record.get('vat_flag') || record.get('vat_rate'))) { exchange_rate = '';
var tax_type_codes_record = $('tax_type_codes_ds').find('tax_type_id', value); }
from_load_or_update_set(record, fromAdd, 'vat_flag', tax_type_codes_record.get('vat_flag')); from_load_or_update_set(record, fromAdd, 'exchange_rate', exchange_rate);
// from_load_or_update_set(record, fromAdd, 'vat_rate', tax_type_codes_record.get('tax_type_rate')); } else {
exchange_rate_field.setRequired(true);
exchange_rate_field.setReadOnly(false);
}
var exchange_rate_quotation = res.result.exchange_rate_quotation;
if (!Ext.isDefined(exchange_rate_quotation)) {
exchange_rate_quotation = 'DIRECT QUOTATION';
}
from_load_or_update_set(record, fromAdd, 'exchange_rate_quotation', exchange_rate_quotation);
} else { } else {
from_load_or_update_set(record, fromAdd, 'vat_flag', ''); rate_method_code = $('gld_exchage_rate_types_ds').find('type_code', record.get('exchange_rate_type'));
// from_load_or_update_set(record, fromAdd, 'vat_rate', ''); if (check_rate_method_code(rate_method_code)) {
} exchange_rate_field.setReadOnly(true);
} else if (name == 'currency_precision') { exchange_rate_field.setRequired(false);
if (Ext.isEmpty(value) && fromAdd) {
var doc_currency_record = $('doc_currency_ds').find('currency_code', record.get('currency'));
if (doc_currency_record) {
record.data['currency_precision'] = doc_currency_record.get('precision');
} }
} }
} else if (name == 'exchange_rate_type' || name == 'lease_start_date') {
get_quotation_ExchangeRate({
fromCur: '${/model/doc_functional_currency_path/record/@functional_currency_code}',
toCur: record.get('currency'),
exchangeRateType: record.get('exchange_rate_type'),
exchangeDate: record.get('lease_start_date')
}, record, fromAdd);
} }
}
function get_quotation_ExchangeRate(param, record, fromAdd) {
function check_rate_method_code(rate_method_code) { Leaf.request({
if (!rate_method_code || !Ext.isDefined(rate_method_code) || rate_method_code == 'PERIOD' || rate_method_code == 'DAILY' || rate_method_code == 'FIXED') { url: $('get_exchange_rate_link_id').getUrl(),
return true; para: {
} else { from_currency: param.fromCur,
return false; to_currency: param.toCur,
exchange_date: param.exchangeDate,
exchange_rate_type: param.exchangeRateType
},
success: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd, true);
},
error: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
failure: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
scope: this
});
} }
}
function getBaseRate(param) {
function execute_after_quotation_getexchangerate(res, record, fromAdd, success_flag) { Leaf.request({
var rate_method_code, exchange_rate, exchange_rate_field = record.getField('exchange_rate'); url: $('hls_fin_calc_get_base_rate_link_id').getUrl(),
if (success_flag) { para: {
rate_method_code = res.result.rate_method_code; base_rate_type: param.base_rate_type,
exchange_rate = res.result.exchange_rate; currency: param.currency,
if (check_rate_method_code(rate_method_code)) { valid_date: param.valid_date,
exchange_rate_field.setReadOnly(true); month: param.month
exchange_rate_field.setRequired(false); },
if (!Ext.isDefined(exchange_rate)) { sync: true,
exchange_rate = ''; success: setBaseRate,
} failure: function() {},
from_load_or_update_set(record, fromAdd, 'exchange_rate', exchange_rate); error: function() {},
scope: this
});
}
function setBaseRate(res) {
if (new_calc_flag == 'N') {
base_rate_record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), 'base_rate');
if (!base_rate_record) {
Leaf.showMessage('${l:PROMPT}', '${l:HLS500.BASE_RATE_IS_NULL}');
}
if (res.result.base_rate && base_rate_record) {
base_rate_record.set('column_value', mul(res.result.base_rate, 100));
}
} else { } else {
exchange_rate_field.setRequired(true); var head_record = $('hls_fin_calculator_hd_ds').getAt(0);
exchange_rate_field.setReadOnly(false); head_record.set('base_rate', mul(res.result.base_rate, 100));
} }
var exchange_rate_quotation = res.result.exchange_rate_quotation; }
if (!Ext.isDefined(exchange_rate_quotation)) {
exchange_rate_quotation = 'DIRECT QUOTATION'; function set_calc_record_para(object, record, combobox_ds, field, param) {
} if (param && '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') {
from_load_or_update_set(record, fromAdd, 'exchange_rate_quotation', exchange_rate_quotation); record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), param);
} else { if (object == 'LOV') {
rate_method_code = $('gld_exchage_rate_types_ds').find('type_code', record.get('exchange_rate_type')); var temp = get_record_column_value(record);
if (check_rate_method_code(rate_method_code)) { field.setLovPara(param, get_record_column_value(record));
exchange_rate_field.setReadOnly(true); } else if (object == 'COMBOBOX') {
exchange_rate_field.setRequired(false); combobox_ds.setQueryParameter(param, get_record_column_value(record));
}
} else if (param && '${/parameter/@calc_type}' == 'LITE_CALCULATOR') {
var current_record = $('hls_fin_calculator_hd_ds').getCurrentRecord();
if (object == 'LOV') {
field.setLovPara(param, current_record.get(param));
} else if (object == 'COMBOBOX') {
combobox_ds.setQueryParameter(param, current_record.get(param));
}
} }
} }
}
function hls_fin_get_column_name(name) {
function get_quotation_ExchangeRate(param, record, fromAdd) { var query_name, length = name.length;
Leaf.request({ if (name.substring(length - 2, length) == '_n') {
url: $('get_exchange_rate_link_id').getUrl(), query_name = name.substring(0, length - 2);
para: { } else {
from_currency: param.fromCur, query_name = name;
to_currency: param.toCur,
exchange_date: param.exchangeDate,
exchange_rate_type: param.exchangeRateType
},
success: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd, true);
},
error: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
failure: function(res) {
execute_after_quotation_getexchangerate(res, record, fromAdd);
},
scope: this
});
}
function getBaseRate(param) {
Leaf.request({
url: $('hls_fin_calc_get_base_rate_link_id').getUrl(),
para: {
base_rate_type: param.base_rate_type,
currency: param.currency,
valid_date: param.valid_date,
month: param.month
},
sync: true,
success: setBaseRate,
failure: function() {},
error: function() {},
scope: this
});
}
function setBaseRate(res) {
if (new_calc_flag == 'N') {
base_rate_record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), 'base_rate');
if (!base_rate_record) {
Leaf.showMessage('${l:PROMPT}', '${l:HLS500.BASE_RATE_IS_NULL}');
}
if (res.result.base_rate && base_rate_record) {
base_rate_record.set('column_value', mul(res.result.base_rate, 100));
} }
} else { return query_name;
var head_record = $('hls_fin_calculator_hd_ds').getAt(0);
head_record.set('base_rate', mul(res.result.base_rate, 100));
} }
}
function get_lov_cascade(value) {
function set_calc_record_para(object, record, combobox_ds, field, param) { if (Ext.isEmpty(value)) {
if (param && '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') { return '';
record = get_ds_record($('hls_fin_calculator_hd_ds'), $('temp_hd_attribute_ds'), param); } else {
if (object == 'LOV') { return value;
var temp = get_record_column_value(record);
field.setLovPara(param, get_record_column_value(record));
} else if (object == 'COMBOBOX') {
combobox_ds.setQueryParameter(param, get_record_column_value(record));
}
} else if (param && '${/parameter/@calc_type}' == 'LITE_CALCULATOR') {
var current_record = $('hls_fin_calculator_hd_ds').getCurrentRecord();
if (object == 'LOV') {
field.setLovPara(param, current_record.get(param));
} else if (object == 'COMBOBOX') {
combobox_ds.setQueryParameter(param, current_record.get(param));
} }
} }
}
function setObjectPara(object, ds, field, para, record) {
function hls_fin_get_column_name(name) { if (para) {
var query_name, length = name.length; if (object == 'LOV') {
if (name.substring(length - 2, length) == '_n') { field.setLovPara(para, get_lov_cascade(record.get(para)));
query_name = name.substring(0, length - 2); } else if (object == 'COMBOBOX') {
} else { ds.setQueryParameter(para, get_lov_cascade(record.get(para)));
query_name = name; }
}
return query_name;
}
function get_lov_cascade(value) {
if (Ext.isEmpty(value)) {
return '';
} else {
return value;
}
}
function setObjectPara(object, ds, field, para, record) {
if (para) {
if (object == 'LOV') {
field.setLovPara(para, get_lov_cascade(record.get(para)));
} else if (object == 'COMBOBOX') {
ds.setQueryParameter(para, get_lov_cascade(record.get(para)));
} }
} }
}
function on_object_hd_calc_focus(object) {
function on_object_hd_calc_focus(object) { var config_ds = '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR' ? $('hls_fin_calculator_hd_ds') : $('hd_field_ds'),
var config_ds = '${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR' ? $('hls_fin_calculator_hd_ds') : $('hd_field_ds'), record = object.record,
record = object.record, display_name = object.binder.name;
display_name = object.binder.name; var column_name, field;
var column_name, field; if ('${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') {
if ('${/parameter/@calc_type}' == 'CLASSIC_CALCULATOR') { column_name = record.get('column_name');
column_name = record.get('column_name'); field = record.getField('column_value');
field = record.getField('column_value'); } else {
} else { column_name = hls_fin_get_column_name(display_name);
column_name = hls_fin_get_column_name(display_name); field = record.getField(display_name);
field = record.getField(display_name); }
} var config_record;
var config_record; var lov_cascade_para1 = record.get('lov_cascade_para1'),
var lov_cascade_para1 = record.get('lov_cascade_para1'), lov_cascade_para2 = record.get('lov_cascade_para2'),
lov_cascade_para2 = record.get('lov_cascade_para2'), lov_cascade_para3 = record.get('lov_cascade_para3');
lov_cascade_para3 = record.get('lov_cascade_para3'); if (object instanceof $L.Lov) {
if (object instanceof $L.Lov) { set_calc_record_para('LOV', config_record, '', field, lov_cascade_para1);
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para1); set_calc_record_para('LOV', config_record, '', field, lov_cascade_para2);
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para2); set_calc_record_para('LOV', config_record, '', field, lov_cascade_para3);
set_calc_record_para('LOV', config_record, '', field, lov_cascade_para3); } else if (object instanceof $L.ComboBox) {
} else if (object instanceof $L.ComboBox) { var combobox_ds = object.optionDataSet;
var combobox_ds = object.optionDataSet; set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para1);
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para1); set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para2);
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para2); set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para3);
set_calc_record_para('COMBOBOX', config_record, combobox_ds, field, lov_cascade_para3); combobox_ds.query();
combobox_ds.query(); }
} }
}
function on_object_ln_calc_focus(object) {
function on_object_ln_calc_focus(object) { var config_ds = $('line_field_ds'),
var config_ds = $('line_field_ds'), record = object.record,
record = object.record, name = object.binder.name;
name = object.binder.name; var config_record = config_ds.find('column_name', name);
var config_record = config_ds.find('column_name', name); var lov_cascade_para1 = config_record.get('lov_cascade_para1'),
var lov_cascade_para1 = config_record.get('lov_cascade_para1'), lov_cascade_para2 = config_record.get('lov_cascade_para2'),
lov_cascade_para2 = config_record.get('lov_cascade_para2'), lov_cascade_para3 = config_record.get('lov_cascade_para3'),
lov_cascade_para3 = config_record.get('lov_cascade_para3'), field = record.getField(name);
field = record.getField(name); if (object instanceof $L.Lov) {
if (object instanceof $L.Lov) { setObjectPara('LOV', '', field, lov_cascade_para1, record);
setObjectPara('LOV', '', field, lov_cascade_para1, record); setObjectPara('LOV', '', field, lov_cascade_para2, record);
setObjectPara('LOV', '', field, lov_cascade_para2, record); setObjectPara('LOV', '', field, lov_cascade_para3, record);
setObjectPara('LOV', '', field, lov_cascade_para3, record); }
} }
}
function on_calc_success_query(dsId, document_category) {
function on_calc_success_query(dsId, document_category) { if (!Ext.isEmpty(dsId)) {
if (!Ext.isEmpty(dsId)) { //王炜5743修改,租赁申请项目类不是树组件
//王炜5743修改,租赁申请项目类不是树组件 if(!Ext.isEmpty(document.getElementById('mainFrame2_id'))){
if(!Ext.isEmpty(document.getElementById('mainFrame2_id'))){
(document_category == 'PROJECT' ? document.getElementById('mainFrame2_id').contentWindow : self)['$'](dsId).query(); (document_category == 'PROJECT' ? document.getElementById('mainFrame2_id').contentWindow : self)['$'](dsId).query();
}else{ }else{
$(dsId).query(); $(dsId).query();
}
} }
} }
}
function current_win_close() {
function current_win_close() { $('${/parameter/@winId}').close();
$('${/parameter/@winId}').close(); }
}
function on_object_hd_calc_beforecommit(object, record, lov_record) {
function on_object_hd_calc_beforecommit(object, record, lov_record) { var display_name = object.binder.name,
var display_name = object.binder.name, exists_flag = false,
exists_flag = false, ds = object.binder.ds;
ds = object.binder.ds; var all_records = ds.getAll();
var all_records = ds.getAll(); for (var name in lov_record.data) {
for (var name in lov_record.data) { if (name != 'value_code' && name != 'value_name') {
if (name != 'value_code' && name != 'value_name') { for (var m = 0;m < all_records.length;m++) {
for (var m = 0;m < all_records.length;m++) { var single_record = all_records[m];
var single_record = all_records[m]; if (single_record.get('column_name').toLowerCase() == name.toLowerCase()) {
if (single_record.get('column_name').toLowerCase() == name.toLowerCase()) { execute_hls_save_special_field(single_record, lov_record.get(name), false, lov_record.get(name + '_n'));
execute_hls_save_special_field(single_record, lov_record.get(name), false, lov_record.get(name + '_n')); }
} }
} }
} }
} }
}
function on_object_ln_calc_beforecommit(object, record, lov_record) {
function on_object_ln_calc_beforecommit(object, record, lov_record) { var display_name = object.binder.name,
var display_name = object.binder.name, field = record.getField(display_name),
field = record.getField(display_name), mapping = field.get('mapping'),
mapping = field.get('mapping'), exists_flag = false;
exists_flag = false; for (var name in lov_record.data) {
for (var name in lov_record.data) { exists_flag = false;
exists_flag = false; for (var i = 0,
for (var i = 0, mapping_length = mapping.length;i < mapping_length;i++) {
mapping_length = mapping.length;i < mapping_length;i++) { if ((exists_flag = (name == mapping[i]['from']))) {
if ((exists_flag = (name == mapping[i]['from']))) { break;
break; }
} }
} if (!exists_flag) {
if (!exists_flag) { mapping.push({
mapping.push({ from: name,
from: name, to: name
to: name });
}); }
} }
field.setMapping(mapping);
} }
field.setMapping(mapping);
}
]]></script> ]]></script>
<a:dataSets> <a:dataSets>
<a:dataSet id="tax_type_codes_ds"> <a:dataSet id="tax_type_codes_ds">
...@@ -911,4 +911,4 @@ ...@@ -911,4 +911,4 @@
<a:dataSet id="hls_fin_calc_lov_getmapping_ds" fetchAll="true" queryUrl="${/request/@context_path}/modules/hls/HLS500N/hls_parameters_load_n.lsc"/> <a:dataSet id="hls_fin_calc_lov_getmapping_ds" fetchAll="true" queryUrl="${/request/@context_path}/modules/hls/HLS500N/hls_parameters_load_n.lsc"/>
</a:dataSets> </a:dataSets>
</a:view> </a:view>
</a:screen> </a:screen>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment