Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
leaf-hlcm
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hlcm
leaf-hlcm
Commits
a93f2dad
Commit
a93f2dad
authored
Jul 17, 2024
by
王炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复报价计算可能导致汇率为空问题
parent
fc912c68
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
916 additions
and
2 deletions
+916
-2
hls_fin_calcuator_dynamic_ol.lview
...app/modules/hls/HLS500/hls_fin_calcuator_dynamic_ol.lview
+914
-0
hls_fin_calculator_dynamic.lview
...ebapp/modules/hls/HLS500/hls_fin_calculator_dynamic.lview
+2
-2
No files found.
src/main/webapp/modules/hls/HLS500/hls_fin_calcuator_dynamic_ol.lview
0 → 100644
View file @
a93f2dad
<?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='Y'"
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>
src/main/webapp/modules/hls/HLS500/hls_fin_calculator_dynamic.lview
View file @
a93f2dad
...
@@ -473,7 +473,7 @@
...
@@ -473,7 +473,7 @@
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}');
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')
{
}
/*
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');
exchange_rate_record =
get_ds_record(ds,
temp_hd_attribute_ds,
'exchange_rate');
currency_record =
get_ds_record(ds,
temp_hd_attribute_ds,
'currency');
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');
lease_start_date_record =
get_ds_record(ds,
temp_hd_attribute_ds,
'lease_start_date');
...
@@ -487,7 +487,7 @@
...
@@ -487,7 +487,7 @@
if
(!fromLoad
&&
value
!=
old_value)
{
if
(!fromLoad
&&
value
!=
old_value)
{
exchange_rate_record.set('column_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);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment