Commit c2d630a3 authored by homunculus's avatar homunculus

[feat]修改销项发票管理

增加销项发票创建的筛选条件,销项发票维护、确认、反冲、查询的字段调整
parent 03f2cbe9
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;
spool INITIALIZE_SYSCODE_ACCOUNT_TYPE.log
set feedback off
set define off
begin
sys_code_pkg.delete_sys_code('taxpayer_type');
sys_code_pkg.insert_sys_code('taxpayer_type','发票类型','发票类型','发票类型','ZHS','');
sys_code_pkg.insert_sys_code_value('taxpayer_type','增值税专用发票','增值税专用发票','ZHS');
sys_code_pkg.insert_sys_code_value('taxpayer_type','增值税普通发票','增值税普通发票','ZHS');
sys_code_pkg.insert_sys_code_value('taxpayer_type','收据','收据','ZHS');
end;
/
commit;
set feedback on
set define on
spool off
exit
\ No newline at end of file
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;
spool INITIALIZE_SYSCODE_CSH_TRANSACTION.log
set feedback off
set define off
<!--系统代码取值-->
BEGIN
sys_message_pkg.delete_message('CREATED_BY_ERROR');
sys_message_pkg.insert_message('CREATED_BY_ERROR','错误','确认人不能和开票人一样,请勿确认!','ZHS');
END;
commit;
set feedback on
set define on
spool off
exit
\ No newline at end of file
begin
--页面注册
sys_function_assign_pkg.service_load('modules/acr/ACR510N/acr_invoice_condition_details.lview','销项发票创建明细',1,1,0);
--功能定义
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('ACR510NS','销项发票创建明细','销项发票创建明细','100','','','modules/acr/ACR510N/acr_invoice_condition_details.lview','ZHS',-1);
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('ACR510NS','销项发票创建明细','销项发票创建明细','100','','','modules/acr/ACR510N/acr_invoice_condition_details.lview','US',-1);
--分配页面
sys_function_assign_pkg.func_service_load('ACR510NS','modules/acr/ACR510N/acr_invoice_condition_details.lview');
--分配bm
sys_function_assign_pkg.func_bm_load('ACR510NS','acr.ACR510.acr_invoice_create');
sys_function_assign_pkg.func_bm_load('ACR510NS','acr.ACR510.acr_invoice_create_lov');
sys_function_assign_pkg.func_bm_load('ACR510NS','basic.sys_session_info');
end;
begin
sys_function_assign_pkg.service_load('modules/acr/ACR510/acr_invoice_create.lsc','销项发票创建明细',1,1,0);
sys_function_assign_pkg.func_service_load('ACR510NS','modules/acr/ACR510/acr_invoice_create.lsc');
end;
begin
--页面注册
sys_function_assign_pkg.service_load('modules/hls/HLS214N/hls_bp_master_billing.lview','商业伙伴开票维护',1,1,0);
--功能定义
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS214NS','商业伙伴开票维护','商业伙伴开票维护','100','','','modules/hls/HLS214N/hls_bp_master_billing.lview','ZHS',-1);
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS214NS','商业伙伴开票维护','商业伙伴开票维护','100','','','modules/hls/HLS214N/hls_bp_master_billing.lview','US',-1);
--分配页面
sys_function_assign_pkg.func_service_load('HLS214NS','modules/hls/HLS214N/hls_bp_master_billing.lview');
end;
begin
--给父页面分配子页面
sys_function_assign_pkg.func_service_load('HLS214N','modules/hls/HLS214N/hls_bp_master_billing.lview');
end;
\ No newline at end of file
begin
--页面注册
sys_function_assign_pkg.service_load('modules/hls/HLS204N/hls_lease_item_gps_excel_import.lview','租赁物GPS导入excel',1,1,0);
--分配父页面
sys_function_assign_pkg.func_service_load('HLS204N','modules/hls/HLS204N/hls_lease_item_gps_excel_import.lview');
--分配bm
sys_function_assign_pkg.func_bm_load('HLS204N','hls.HLS204N.hls_lease_item_gps_list_tmp');
end;
\ No newline at end of file
begin
--页面注册
sys_function_assign_pkg.service_load('modules/hls/HLS204N/hls_lease_item_gps_import.lview','租赁物GPS信息导入',1,1,0);
--功能定义
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS204NS','租赁物GPS信息导入','租赁物GPS信息导入','100','','','modules/hls/HLS204N/hls_lease_item_gps_import.lview','ZHS',-1);
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS204NS','租赁物GPS信息导入','租赁物GPS信息导入','100','','','modules/hls/HLS204N/hls_lease_item_gps_import.lview','US',-1);
--分配子页面
sys_function_assign_pkg.func_service_load('HLS204NS','modules/hls/HLS204N/hls_lease_item_gps_import.lview');
--分配父页面
sys_function_assign_pkg.func_service_load('HLS204N','modules/hls/HLS204N/hls_lease_item_gps_import.lview');
end;
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;
spool HLS_LEASE_ITEM_GPS_MODIFY_ENTR.log
set feedback off
set define off
begin
--页面注册
sys_function_assign_pkg.service_load('modules/hls/HLS204N/hls_lease_item_gps_modify_entrance.lview','租赁物GPS信息管理',1,1,0);
--功能定义
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS204N','租赁物GPS信息管理','租赁物GPS信息管理','100','','','modules/hls/HLS204N/hls_lease_item_gps_modify_entrance.lview','ZHS',-1);
SYS_LOAD_SYS_FUNCTION_PKG.SYS_FUNCTION_LOAD('HLS204N','租赁物GPS信息管理','租赁物GPS信息管理','100','','','modules/hls/HLS204N/hls_lease_item_gps_modify_entrance.lview','US',-1);
--分配页面
sys_function_assign_pkg.func_service_load('HLS204N','modules/hls/HLS204N/hls_lease_item_gps_modify_entrance.lview');
--分配bm
--sys_function_assign_pkg.func_bm_load('功能名称','rent_m_s.RENT_M_S.hou_inf_query');
--分配菜单
sys_load_sys_function_grp_pkg.sys_function_group_item_load(p_function_group_code=>'BP_MANAGEMENT',p_function_code=>'HLS204N',p_enabled_flag=>'Y',P_USER_ID=>-1);
end;
/
commit;
set feedback on
set define on
spool off
exit
alter table HLS_BP_MASTER add (OTHER_MATTERS varchar2(2000));
comment on column HLS_BP_MASTER.OTHER_MATTERS is '其他事项说明';
alter table HLS_BP_MASTER add (id_card_no_lp number);
comment on column HLS_BP_MASTER.id_card_no_lp is '法人代表身份证号';
alter table HLS_BP_MASTER add (Fixed_assets varchar2(2000));
comment on column HLS_BP_MASTER.Fixed_assets is '固定资产';
alter table HLS_BP_MASTER add (Capital number);
comment on column HLS_BP_MASTER.Capital is '资本金';
alter table HLS_BP_MASTER add (Capital_in_place number);
comment on column HLS_BP_MASTER.Capital_in_place is '资本金到位额';
alter table HLS_BP_MASTER add (agency varchar2(2000));
comment on column HLS_BP_MASTER.agency is '代理店';
alter table HLS_BP_MASTER add (business_manager varchar2(100));
comment on column HLS_BP_MASTER.business_manager is '业务经理';
alter table HLS_BP_MASTER add (contact_type varchar2(100));
comment on column HLS_BP_MASTER.contact_type is '联系人类型';
alter table HLS_BP_MASTER add (PAYMENT_OWNER varchar2(100));
comment on column HLS_BP_MASTER.PAYMENT_OWNER is '支付负责人';
alter table HLS_BP_MASTER add (INOVICE_BP_ADDRESS varchar2(100));
comment on column HLS_BP_MASTER.INOVICE_BP_ADDRESS is '地址';
alter table HLS_BP_MASTER add (LEGAL_PERSON varchar2(100));
comment on column HLS_BP_MASTER.LEGAL_PERSON is '法人代表姓名';
\ No newline at end of file
alter table HLS_BP_MASTER_CONTACT_INFO add (CONTACT_TYPE varchar2(30));
comment on column HLS_BP_MASTER_CONTACT_INFO.CONTACT_TYPE is '联系人类型';
alter table HLS_BP_MASTER_CONTACT_INFO add (PAYMENT_OWNER varchar2(100));
comment on column HLS_BP_MASTER_CONTACT_INFO.PAYMENT_OWNER is '支付负责人';
alter table HLS_BP_MASTER_CONTACT_INFO add (ZIPCODE number);
comment on column HLS_BP_MASTER_CONTACT_INFO.ZIPCODE is '邮政编码';
alter table HLS_BP_MASTER add (LEGAL_PERSON varchar2(100));
comment on column HLS_BP_MASTER.LEGAL_PERSON is '法人代表姓名';
\ No newline at end of file
alter table hls_bp_master_role add (BP_NAME varchar2(100));
comment on column hls_bp_master_role.BP_NAME is '商业伙伴名称';
alter table hls_bp_master_role add (BP_CODE varchar2(30));
comment on column hls_bp_master_role.BP_CODE is '商业伙伴编码';
alter table hls_lease_item add (DIVISION varchar2(100));
comment on column hls_lease_item.DIVISION is '产品线';
alter table hls_lease_item add (machine_model varchar2(100));
comment on column hls_lease_item.machine_model is '机型';
alter table hls_lease_item add (origin_place varchar2(100));
comment on column hls_lease_item.origin_place is '国产/进口';
alter table hls_lease_item add (purchase_price number);
comment on column hls_lease_item.purchase_price is '留购价';
alter table hls_lease_item add (equipments varchar2(100));
comment on column hls_lease_item.equipments is '装备';
alter table hls_lease_item add (Accessories varchar2(100));
comment on column hls_lease_item.Accessories is '附属品';
alter table hls_lease_item add (machine_model_class varchar2(100));
comment on column hls_lease_item.machine_model_class is '机型分类';
alter table hls_lease_item add (machine_model varchar2(100));
alter table hls_lease_item add (machine_number varchar2(100));
alter table hls_lease_item add (agency varchar2(100));
alter table hls_lease_item add (contract_number varchar2(100));
alter table hls_lease_item add (contract_name varchar2(2000));
alter table hls_lease_item add (bp_name varchar2(100));
alter table hls_lease_item add (lease_start_date date);
alter table hls_lease_item add (working_hours_latest number);
alter table hls_lease_item add (working_hours_new_m number);
alter table hls_lease_item add (working_hours_ave_m number);
alter table hls_lease_item add (machine_location varchar2(2000));
alter table hls_lease_item add (note varchar2(2000));
alter table hls_lease_item add (attention varchar2(2000));
alter table hls_lease_item add (machine_number_full varchar2(2000));
comment on column hls_lease_item.machine_model
is '机型';
comment on column hls_lease_item.machine_number
is '机号';
comment on column hls_lease_item.agency
is '代理店';
comment on column hls_lease_item.contract_number
is '合同编号';
comment on column hls_lease_item.contract_name
is '合同名称';
comment on column hls_lease_item.bp_name
is '客户名称';
comment on column hls_lease_item.lease_start_date
is '租赁开始日';
comment on column hls_lease_item.working_hours_latest
is '最新工作小时数';
comment on column hls_lease_item.working_hours_new_m
is '本月新增工作小时数';
comment on column hls_lease_item.working_hours_ave_m
is '本月平均工作小时数';
comment on column hls_lease_item.machine_location
is '机器位置';
comment on column hls_lease_item.note
is '备注';
comment on column hls_lease_item.attention
is '注意';
comment on column hls_lease_item.machine_number_full
is '完整机号';
......@@ -50,7 +50,7 @@
and cc.bp_id_agent_level1 = h.bp_id),
t2.tax_registry_num) OBJECT_TAX_REGISTRY_NUM,
nvl(t2.bill_object_bp_class,t1.BILL_OBJECT_BP_CLASS) BILL_OBJECT_BP_CLASS,
nvl(t2.bill_object_bp_class_desc,t1.BILL_OBJECT_BP_CLASS_DESC) BILL_OBJECT_BP_CLASS_DESC,
nvl(t2.bill_object_bp_class_DESC,t1.BILL_OBJECT_BP_CLASS_DESC) BILL_OBJECT_BP_CLASS_DESC,
t1.TAX_TYPE_VAT,
t1.DESCRIPTION,
--t1.INVOICE_TITLE,
......@@ -137,12 +137,14 @@
t1.inv_billing_object_name,
t1.small_scale_taxpayer
FROM ACR_INVOICE_CONTRACT_V t1, ACR_INVOICE_CONTRACT_CF_V t2
WHERE t2.due_date<sysdate
#WHERE_CLAUSE#
ORDER BY
t1.contract_id,
t2.times,
t2.due_date,
t2.cf_item
]]></bm:query-sql>
</bm:operation>
</bm:operations>
......@@ -341,6 +343,7 @@
<bm:query-field name="bill_flag"
queryExpression="(${@bill_flag} = 'Y' and t1.billing_frequency in (${@times_bill_flag},${@mid_bill_flag},${@final_bill_flag},${@et_bill_flag}) )"/>
<bm:query-field name="all_contract_number"
queryExpression="(t1.contract_number in (Select regexp_substr( replace(replace(replace(${@all_contract_number},chr(32)),chr(10)),chr(13)), '[^,]+', 1, Level) From dual Connect By regexp_substr(replace(replace(replace(${@all_contract_number},chr(32)),chr(10)),chr(13)), '[^,]+', 1, Level) Is Not Null) )"/>
<bm:query-field name="notreceived_amount_from"
......@@ -358,7 +361,6 @@
queryExpression="t1.bill_object_bp_class = ${@bill_object_bp_class}"/>
<bm:query-field name="contract_status"
queryExpression="t1.contract_status = ${@contract_status}"/>
<!-- <bm:query-field name="" queryExpression="t2.due_date &lt;= sysdate"/>-->
</bm:query-fields>
<bm:data-filters>
<bm:data-filter enforceOperations="query"
......@@ -366,12 +368,14 @@
<bm:data-filter enforceOperations="query" expression="t2.write_off_flag != &apos;NOT&apos;"/>
<bm:data-filter enforceOperations="query"
expression="t2.billing_status != &apos;FULL&apos; and t2.cf_direction=&apos;INFLOW&apos;"/>
<bm:data-filter enforceOperations="query"
<!-- <bm:data-filter enforceOperations="query"
expression="t2.contract_id = t1.contract_id AND t1.billing_status IN (&apos;NOT&apos;, &apos;PARTIAL&apos;) AND t1.contract_status not in (&apos;NEW&apos;,&apos;CANCEL&apos;) AND t2.cf_status = &apos;RELEASE&apos;"/>
<bm:data-filter enforceOperations="query" expression="(t2.times != 0)"/>
<bm:data-filter enforceOperations="query" expression="(t2.times != 0)"/>-->
<bm:data-filter enforceOperations="query"
expression="not (t2.cf_item = 301 and nvl(direct_sales_agent_flag,'N') = 'Y')"/>
<!-- <bm:data-filter enforceOperations="query"-->
<!-- expression="not (t2.cf_item = 301 and nvl(direct_sales_agent_flag,'N') = 'Y')"/>-->
<bm:data-filter name="query" expression="rownum &lt;=1000"/>
<bm:data-filter name="query" expression="exists(select 1 from con_contract_cashflow ccc where (ccc.due_date &lt;= sysdate and ccc.cashflow_id = t2.cashflow_id and t1.inv_object_taxpayer_type != 'GENERAL_TAXPAYER') or (t1.bill_object_bp_class = 'ORG' and ccc.cashflow_id = t2.cashflow_id and t1.inv_object_taxpayer_type = 'GENERAL_TAXPAYER'))" />
</bm:data-filters>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="update">
<bm:update-sql><![CDATA[
BEGIN
hn_prj_project_pkg.update_prj_approval_status(p_approval_id =>${@approval_id},
p_status =>'VOTED',
p_user_id =>${/session/@user_id});
END;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="query">
<bm:query-sql><![CDATA[
SELECT t1.*
FROM (SELECT li.line_id,
li.error_message,
li.status,
li.header_id,
li.line_number,
hd.created_by,
li.source_table,
li.attribute_1,
li.attribute_2,
li.attribute_3,
li.attribute_4,
li.attribute_5,
li.attribute_6,
li.attribute_7,
li.attribute_8,
li.attribute_9,
li.attribute_10,
li.attribute_11,
li.attribute_12,
li.attribute_13,
li.attribute_14,
li.attribute_15,
li.attribute_16,
li.attribute_17,
li.attribute_18,
li.attribute_19,
li.attribute_20,
li.attribute_21,
li.attribute_22,
li.attribute_23,
li.attribute_24,
li.attribute_25,
li.attribute_26
FROM fnd_interface_headers hd,
fnd_interface_lines li
WHERE hd.header_id = li.header_id
AND hd.template_code = 'CSH_TRX_BANK'
AND li.line_number >0
AND HD.CREATED_BY = ${/session/@user_id}
) t1
#WHERE_CLAUSE#
order by t1.line_number
]]></bm:query-sql>
</bm:operation>
<bm:operation name="update">
<bm:update-sql><![CDATA[
begin
hls_lease_item_gps_import_pkg.gps_import_check(p_header_id => ${/model/header/record/@header_id},
p_user_id => ${/session/@user_id});
end;
]]></bm:update-sql>
</bm:operation>
<bm:operation name="insert">
<bm:update-sql><![CDATA[
begin
hls_lease_item_gps_import_pkg.gps_import(
p_header_id =>${/parameter/@header_id},
p_user_id =>${/session/@user_id}
);
end;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
<bm:query-fields>
<bm:query-field name="header_id" queryExpression="t1.header_id=${@header_id}"/>
</bm:query-fields>
</bm:model>
......@@ -7,7 +7,7 @@
<a:screen xmlns:a="http://www.leaf-framework.org/application" trace="true">
<a:init-procedure>
<a:model-query model="basic.sys_session_info" rootPath="default_value_record"/>
<a:model-query model="acr.ACR510.acr_invoice_group_billing_method" rootPath="group_billing_method_list"/>
<!-- <a:model-query model="acr.ACR510.acr_invoice_group_billing_method" rootPath="group_billing_method_list"/>-->
</a:init-procedure>
<a:view>
<a:link id="svcLink_create_invoice" url="${/request/@context_path}/modules/acr/ACR510/acr_invoice_create.lsc"/>
......@@ -141,22 +141,23 @@
<a:tab prompt="ACR510.TAB.BILLING_INFO" width="100">
<a:grid id="selectedDs_grid" bindTarget="selectedDs" marginHeight="270" marginWidth="60">
<a:columns>
<a:column name="contract_number" width="150"/>
<a:column name="times" align="right" width="40"/>
<a:column name="cf_item_desc"/>
<a:column name="product_name" editor="acr_invoice_create_lov" width="150"/>
<a:column name="invoice_kind_desc" editor="selectedDs_grid_editor_comb"/>
<a:column name="currency_desc" align="center"/>
<a:column name="due_amount" align="right" renderer="Leaf.formatMoney"/>
<a:column name="received_amount" align="right" renderer="Leaf.formatMoney"/>
<a:column name="cf_billing_amount" align="right" renderer="Leaf.formatMoney"/>
<a:column name="billing_amount" align="right" editor="selectedDs_grid_editor_nf"
renderer="Leaf.formatMoney"/>
<a:column name="contract_number" lock="true" width="150" prompt="合同编号" readOnly="true"/>
<a:column name="contract_name" lock="true" width="150" prompt="合同名称" readOnly="true"/>
<a:column name="bp_name" prompt="承租人名称" readOnly="true"/>
<a:column name="times" align="right" lock="true" width="40" prompt="期数" readOnly="true"/>
<a:column name="cf_item_desc" prompt="应收项目" readOnly="true"/>
<a:column name="product_name" width="150" prompt="货物及应税劳务名称" editor="acr_invoice_create_lov"/>
<a:column name="invoice_kind_desc" prompt="发票类型" editor="selectedDs_grid_editor_comb"/>
<a:column name="currency" prompt="币种" readOnly="true"/>
<a:column name="due_amount" align="right" renderer="Leaf.formatMoney" prompt="应收金额" readOnly="true"/>
<a:column name="received_amount" align="right" renderer="Leaf.formatMoney" prompt="已收金额" readOnly="true"/>
<a:column name="cf_billing_amount" align="right" renderer="Leaf.formatMoney" prompt="已开票金额" readOnly="true"/>
<a:column name="billing_amount" align="right" prompt="本次开票金额" renderer="Leaf.formatMoney"
editor="selectedDs_grid_editor_tf"/>
</a:columns>
<a:editors>
<a:comboBox id="selectedDs_grid_editor_comb"/>
<a:textField id="selectedDs_grid_editor_tf"/>
<a:numberField id="selectedDs_grid_editor_nf"/>
<a:lov id="acr_invoice_create_lov"/>
</a:editors>
</a:grid>
......@@ -164,26 +165,33 @@
<a:tab prompt="ACR510.TAB.ASSIST_INFO" width="100">
<a:grid id="selectedDs_grid_2" bindTarget="selectedDs" marginHeight="270" marginWidth="60">
<a:columns>
<a:column name="contract_number" width="150"/>
<a:column name="times" align="right" width="40"/>
<a:column name="cf_item_desc"/>
<a:column name="contract_name" width="200"/>
<a:column name="project_number" width="150"/>
<a:column name="project_name" width="200"/>
<a:column name="last_received_date" renderer="Leaf.formatDate" width="80"/>
<a:column name="exchange_rate" align="right"/>
<a:column name="exchange_rate_type_desc"/>
<a:column name="invoice_bp_tax_registry_num"/>
<a:column name="contract_number" lock="true" width="150" prompt="合同编号" readOnly="true"/>
<a:column name="contract_name" lock="true" width="150" prompt="合同名称" readOnly="true"/>
<a:column name="bp_name" prompt="承租人名称" readOnly="true"/>
<a:column name="times" align="right" lock="true" width="40" prompt="期数" readOnly="true"/>
<a:column name="billing_method" prompt="开票规则" readOnly="true"/>
<a:column name="billing_way_n" prompt="开票方式" width="80" readOnly="true"/>
<a:column name="billing_frequency_n" prompt="开票频率" width="80" readOnly="true"/>
<a:column name="billing_object_name" prompt="开票对象" autoAdjust="false"
showTitle="true" width="200" readOnly="true"/>
<a:column name="invoice_title" prompt="发票抬头" autoAdjust="false" editor=""
showTitle="true" width="200" readOnly="true"/>
<a:column name="object_taxpayer_type" prompt="纳税人类型" readOnly="true"/>
<a:column name="invoice_bp_tax_registry_num" prompt="纳税人识别号" width="150" readOnly="true"/>
<a:column name="invoice_bp_address_phone_num" prompt="开票地址电话" autoAdjust="false"
showTitle="true" width="200" readOnly="true"/>
<a:column name="invoice_bp_bank_account" prompt="开户行及账号" autoAdjust="false"
showTitle="true" width="150" readOnly="true"/>
</a:columns>
</a:grid>
</a:tab>
</a:tabs>
</a:tabPanel>
<a:fieldSet title="ACR.GROUP_BILLING_METHOD">
<a:radio name="group_billing_method" bindTarget="headDs" labelField="code_value_name"
options="/model/group_billing_method_list" prompt="" radioSeparator="" valueField="code_value"
width="600"/>
</a:fieldSet>
<!-- <a:fieldSet title="ACR.GROUP_BILLING_METHOD">-->
<!-- <a:radio name="group_billing_method" bindTarget="headDs" labelField="code_value_name"-->
<!-- options="/model/group_billing_method_list" prompt="" radioSeparator="" valueField="code_value"-->
<!-- width="600"/>-->
<!-- </a:fieldSet>-->
</a:screenBody>
</a:view>
</a:screen>
......@@ -69,36 +69,36 @@
}
// function onLoad_cashflowDs(ds) {
// var hd_ds = $('contractDs'),
// r = hd_ds.getCurrentRecord();
// if (hd_ds.getSelected().indexOf(r) != -1) {
// ds.selectAll.defer(5, ds);
// }
// }
function onLoad_cashflowDs(ds) {
var hd_ds = $('contractDs'),
r = hd_ds.getCurrentRecord();
if (hd_ds.getSelected().indexOf(r) != -1) {
ds.selectAll.defer(5, ds);
}
}
var isSelectFromLine = false;
// function onSelect_contractDs(ds, record) {
// ds.locate(ds.indexOf(record) + 1);
// if (!isSelectFromLine) {
// $('cashflowDs').selectAll();
// }
//
// }
// function unselect_contractDs(ds, record) {
// ds.locate(ds.indexOf(record) + 1);
// $('cashflowDs').unSelectAll();
// }
// function onSelect_invoiceLineDs(ds, record) {
// record.dirty = true;
// isSelectFromLine = true;
// $('contractDs').select($('contractDs').getCurrentRecord());
// isSelectFromLine = false;
// }
// function unSelect_invoiceLineDs(ds, record) {
// record.dirty = false;
// }
function onSelect_contractDs(ds, record) {
ds.locate(ds.indexOf(record) + 1);
if (!isSelectFromLine) {
$('cashflowDs').selectAll();
}
}
function unselect_contractDs(ds, record) {
ds.locate(ds.indexOf(record) + 1);
$('cashflowDs').unSelectAll();
}
function onSelect_invoiceLineDs(ds, record) {
record.dirty = true;
isSelectFromLine = true;
$('contractDs').select($('contractDs').getCurrentRecord());
isSelectFromLine = false;
}
function unSelect_invoiceLineDs(ds, record) {
record.dirty = false;
}
function render_contractDs_grid(value, record, name) {
if (name == 'billing_object_name') {
......@@ -109,7 +109,7 @@
]]></script>
<a:dataSets>
<a:dataSet id="contractDs" autoQuery="false" fetchAll="false" model="acr.ACR510.acr_invoice_contract_v"
<a:dataSet id="contractDs" autoQuery="true" fetchAll="true" model="acr.ACR510.acr_invoice_contract_v"
queryDataSet="conditionDs"
queryUrl="${/request/@context_path}/autocrud/acr.ACR510.acr_invoice_contract_v/query?company_id=${/parameter/@company_id}"
selectable="true">
......@@ -129,21 +129,21 @@
</a:mapping>
</a:field>
</a:fields>
<!-- <a:events>-->
<!-- <a:event name="select" handler="onSelect_contractDs"/>-->
<!-- <a:event name="unselect" handler="unselect_contractDs"/>-->
<!-- </a:events>-->
<a:events>
<a:event name="select" handler="onSelect_contractDs"/>
<a:event name="unselect" handler="unselect_contractDs"/>
</a:events>
</a:dataSet>
<a:dataSet id="cashflowDs" bindName="line_info" bindTarget="contractDs" fetchAll="true"
model="acr.ACR510.acr_invoice_contract_cf_v" selectable="true">
<a:fields>
<a:field name="last_received_date" datatype="date"/>
</a:fields>
<!-- <a:events>-->
<!-- <a:event name="load" handler="onLoad_cashflowDs"/>-->
<!-- <a:event name="select" handler="onSelect_invoiceLineDs"/>-->
<!-- <a:event name="unselect" handler="unSelect_invoiceLineDs"/>-->
<!-- </a:events>-->
<a:events>
<a:event name="load" handler="onLoad_cashflowDs"/>
<a:event name="select" handler="onSelect_invoiceLineDs"/>
<a:event name="unselect" handler="unSelect_invoiceLineDs"/>
</a:events>
</a:dataSet>
</a:dataSets>
<a:screenBody>
......
......@@ -161,7 +161,7 @@
<a:screenTitle/>
<a:toolbarButton click="acr512_invoice_query" text="HLS.QUERY"/>
<a:toolbarButton click="acr512_invoice_reset" text="HLS.RESET"/>
<a:toolbarButton click="acr512_invoice_delete" text="HLS.REMOVE"/>
<!-- <a:toolbarButton click="acr512_invoice_delete" text="HLS.REMOVE"/>-->
</a:screenTopToolbar>
<a:form marginWidth="30" padding="0" title="销项发票维护" column="5">
<a:textField name="document_number_f" bindTarget="acr512_invoice_query_ds" prompt="HLS.DOCUMENT_NUMBER_FROM" width="135"/>
......@@ -188,6 +188,7 @@
<a:column name="document_number" lock="true" prompt="HLS.DOCUMENT_NUMBER" renderer="acr512_document_number_render" width="120"/>
<a:column name="invoice_bp_name" autoAdjust="false" prompt="HLS.CUSTOMER_NAME" showTitle="true" width="100"/>
<a:column name="contract_number" autoAdjust="false" prompt="HLS.CONTRACT_NUMBER" showTitle="true" width="150"/>
<a:column name="contract_name" width="150" prompt="合同名称"/>
<!-- <a:column name="business_type_desc" prompt="HLS.BUSINESS_TYPE_DESC" width="80"/>-->
<a:column name="bp_agent_name" prompt="代理商" width="100"/>
<a:column name="invoice_kind_desc" prompt="ACR.INVOICE_KIND" width="100"/>
......
......@@ -122,55 +122,55 @@
$('acr513_invoice_grid_id').clear();
}
function acr513_print_receipt() {
var records = $('acr513_invoice_result_ds').getSelected();
if (records.length != 1) {
Leaf.showMessage('提示', '请选择一条数据');
return;
}
if (records[0].get('invoice_kind') != 'RECEIPT') {
Leaf.showMessage('提示', '发票种类不为收据,无法打印!');
return;
}
var win = new Leaf.Window({
id: 'receipt_print_winid',
url: $('receipt_print_link').getUrl(),
params: {
invoice_hd_id: records[0].get('invoice_hd_id')
},
title: '收据打印',
fullScreen: true
});
}
// function acr513_print_receipt() {
// var records = $('acr513_invoice_result_ds').getSelected();
// if (records.length != 1) {
// Leaf.showMessage('提示', '请选择一条数据');
// return;
// }
// if (records[0].get('invoice_kind') != 'RECEIPT') {
// Leaf.showMessage('提示', '发票种类不为收据,无法打印!');
// return;
// }
// var win = new Leaf.Window({
// id: 'receipt_print_winid',
// url: $('receipt_print_link').getUrl(),
// params: {
// invoice_hd_id: records[0].get('invoice_hd_id')
// },
// title: '收据打印',
// fullScreen: true
// });
// }
//hongquan.dai 20180125
//保证金Word打印
function cash_deposit_print() {
var records = $('acr513_invoice_result_ds').getSelected();
if (records.length != 1) {
Leaf.showMessage('${l:PROMPT}', '请选择且仅选择一条保证金!');
return;
}
var record = records[0];
var invoice_hd_id = record.get('invoice_hd_id');
var templt_name = 'csh_deposit_print.xml';
if (invoice_hd_id) {
Leaf.Masker.unmask(Ext.getBody()); //解锁
var url = $('cash_deposit_printt_link').getUrl() + '?templt_name=' + templt_name + '&invoice_hd_id=' + invoice_hd_id;
var form = document.createElement("form");
form.target = "word_export_window";
form.method = "post";
form.action = url;
var iframe = Ext.get('word_export_window') || new Ext.Template('<iframe id ="word_export_window" name="word_export_window" style="position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;display:none"></iframe>').insertFirst(document.body, {}, true);
document.body.appendChild(form);
form.submit();
Ext.fly(form).remove();
}
}
// function cash_deposit_print() {
//
// var records = $('acr513_invoice_result_ds').getSelected();
// if (records.length != 1) {
// Leaf.showMessage('${l:PROMPT}', '请选择且仅选择一条保证金!');
// return;
// }
// var record = records[0];
//
//
// var invoice_hd_id = record.get('invoice_hd_id');
// var templt_name = 'csh_deposit_print.xml';
// if (invoice_hd_id) {
// Leaf.Masker.unmask(Ext.getBody()); //解锁
// var url = $('cash_deposit_printt_link').getUrl() + '?templt_name=' + templt_name + '&invoice_hd_id=' + invoice_hd_id;
// var form = document.createElement("form");
// form.target = "word_export_window";
// form.method = "post";
// form.action = url;
// var iframe = Ext.get('word_export_window') || new Ext.Template('<iframe id ="word_export_window" name="word_export_window" style="position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;display:none"></iframe>').insertFirst(document.body, {}, true);
// document.body.appendChild(form);
// form.submit();
// Ext.fly(form).remove();
// }
//
// }
]]></script>
......@@ -256,7 +256,7 @@
</a:events>
</a:dataSet>
<a:dataSet id="acr513_invoice_result_ds" autoPageSize="true" model="acr.ACR513.acr_invoice_confirm"
queryDataSet="acr513_invoice_query_ds" selectable="true">
queryDataSet="acr513_invoice_query_ds" selectable="true" autoQuery="true">
<a:events>
<a:event name="submitsuccess" handler="acr513_invoice_result_ds_submitsuccess"/>
</a:events>
......@@ -308,6 +308,7 @@
width="100"/>
<a:column name="contract_number" autoAdjust="false" prompt="HLS.CONTRACT_NUMBER" showTitle="true"
width="150"/>
<a:column name="contract_name" lock="true" width="150" prompt="合同名称"/>
<a:column name="bp_agent_name" prompt="代理商" width="100"/>
<!--<a:column name="business_type_desc" prompt="HLS.BUSINESS_TYPE_DESC" width="80"/>-->
<a:column name="billing_way_desc" prompt="开票方式" width="80"/>
......@@ -324,7 +325,7 @@
<a:column name="created_by_name" autoAdjust="false" prompt="ACR.CREATED_BY_NAME" showTitle="true"
width="150"/>
<a:column name="invoice_status_desc" prompt="ACR.INVOICE_STATUS" width="100"/>
<a:column name="accounting_date" prompt="HLS.ACCOUNT_DATE" width="100"/>
<!-- <a:column name="accounting_date" prompt="HLS.ACCOUNT_DATE" width="100"/>-->
<!-- <a:column name="project_number" prompt="HLS.PROJECT_NUMBER" width="120"/> -->
</a:columns>
</a:grid>
......
......@@ -357,6 +357,7 @@
renderer="acr514_document_number_render" width="120"/>
<a:column name="contract_number" autoAdjust="false" prompt="HLS.CONTRACT_NUMBER" showTitle="true"
width="150"/>
<a:column name="contract_name" width="150" prompt="合同名称"/>
<a:column name="invoice_bp_name" autoAdjust="false" prompt="HLS.CUSTOMER_NAME" showTitle="true"
width="150"/>
<a:column name="bp_agent_name" prompt="代理商" width="100"/>
......@@ -366,8 +367,8 @@
<a:column name="invoice_date" prompt="ACR.INVOICE_DATE" width="100"/>
<a:column name="reverse_date" editor="invoice_grid_dp" prompt="HLS.REVERSE_DATE"
renderer="Leaf.formatDate" width="100"/>
<a:column name="vat_red_notice_num" editorFunction="vat_red_notice_num_editorFunction"
prompt="ACR.VAT_RED_NOTICE_NUM" width="120"/>
<!-- <a:column name="vat_red_notice_num" editorFunction="vat_red_notice_num_editorFunction"-->
<!-- prompt="ACR.VAT_RED_NOTICE_NUM" width="120"/>-->
<!-- <a:column name="contract_number" prompt="HLS.CONTRACT_NUMBER" width="120"/>
<a:column name="bp_code" prompt="HLS.CUSTOMER_NUMBER" width="100"/> -->
<a:column name="invoice_title" autoAdjust="false" prompt="ACR.INVOICE_TITLE" showTitle="true"
......
<?xml version="1.0" encoding="UTF-8"?>
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true">
<a:init-procedure outputPath="/parameter">
<a:model-query model="basic.hls_fnd_attribute_sequence" rootPath="header"/>
<a:import-excel header_id="${/model/header/record/@header_id}" separator="," status_field="/parameter/@ImportSuccess" template_code="CSH_TRX_BANK" user_id="${/session/@user_id}"/>
<a:model-query defaultWhereClause="header_id=${/model/header/record/@header_id} and TEMPLATE_CODE = &apos;CSH_TRX_BANK&apos;" model="basic.hls_fnd_attribute_status" rootPath="status"/>
<a:model-update model="hls.HLS204N.hls_lease_item_gps_list_tmp"/>
</a:init-procedure>
<a:view>
<a:link id="import_other_contract_cf_link_id" model="hls.HLS204N.hls_lease_item_gps_list_tmp" modelaction="insert"/>
<script type="text/javascript"><![CDATA[
function backBtn() {
parent._input_window.close();
}
var import_flag=0;
function import_btn() {
var ds = $('tre_withdraw_subscriber_improt_ds');
record = ds.getAll();
if(import_flag==0){
for (i = 0;i < record.length;i++) {
if (record[i].get('status') == 'ERROR') {
Leaf.showMessage('${l:PROMPT}', '导入的数据存在错误,请查看错误信息!');
return;
}
}
Leaf.showConfirm('提示', '确定要导入信息吗?', function() {
Leaf.request({
url: $('import_other_contract_cf_link_id').getUrl(),
para: {
batch_id: '${/parameter/@batch_id}',
header_id: '${/model/header/record/@header_id}'
},
scope: this,
success: function () {
import_flag = import_flag + 1;
Leaf.SideBar.show({
msg: '操作成功',
duration: 2000
});
backBtn();
}
});
});
}else{
Leaf.showMessage('${l:PROMPT}', '数据已导入不能重复导入!');
return;
}
}
]]></script>
<a:dataSets>
<a:dataSet id="tre_withdraw_subscriber_improt_ds" autoQuery="true" fetchAll="true" model="hls.HLS204N.hls_lease_item_gps_list_tmp" queryUrl="${/request/@context_path}/autocrud/hls.HLS204N.hls_lease_item_gps_list_tmp/query?header_id=${/model/header/record/@header_id}">
<a:fields>
<a:field name="error_message" readOnly="true"/>
<a:field name="attribute_4" readOnly="true"/>
</a:fields>
</a:dataSet>
</a:dataSets>
<a:screenBody>
<a:form id="success_form" height="400" title="THE_IMPORTED_DATA" width="980">
<a:screenTopToolbar>
<a:gridButton click="backBtn" text="取消"/>
<a:gridButton click="import_btn" text="确认导入"/>
</a:screenTopToolbar>
<a:grid id="grid_ds_id" bindTarget="tre_withdraw_subscriber_improt_ds" height="340" navBar="true" width="980">
<a:columns>
<a:column name="error_message" editor="textArea_e" prompt="错误信息" width="180"/>
<a:column name="attribute_1" prompt="合同编号" width="80"/>
<a:column name="attribute_2" prompt="合同名称" width="80"/>
<a:column name="attribute_3" prompt="客户名称" width="80"/>
<a:column name="attribute_4" prompt="代理店" width="80"/>
<a:column name="attribute_5" prompt="机型" width="80"/>
<a:column name="attribute_6" prompt="机号" width="80"/>
<a:column name="attribute_7" prompt="租赁开始日" width="80"/>
<a:column name="attribute_8" prompt="最新工作小时数" width="80"/>
<a:column name="attribute_9" prompt="机器位置(省市)" width="80"/>
<a:column name="attribute_10" prompt="备注" width="80"/>
<a:column name="attribute_11" prompt="要注意" width="80"/>
<a:column name="attribute_12" prompt="完整机号" width="80"/>
</a:columns>
<a:editors>
<a:textArea id="textArea_e" height="50" width="240"/>
</a:editors>
</a:grid>
</a:form>
</a:screenBody>
<script type="text/javascript"><![CDATA[
]]></script>
</a:view>
</a:screen>
<?xml version="1.0" encoding="UTF-8"?>
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true">
<a:init-procedure/>
<a:view>
<script type="text/javascript"><![CDATA[
function saveClick() {
if (document.getElementById('importFile').value) {
var fileName = document.getElementById('importFile').value;
var fileType = fileName.substr(fileName.lastIndexOf("."));
if (fileType != '.xls' && fileType != '.xlsx' && fileType != '.xlsm') {
alert('${l:SELECT_CORRECT_IMPORT_FILE}');
} else {
doSubmit();
}
}
}
var _input_window;
function doSubmit() {
_input_window = new $L.Window({
title: '${l:HLS.IMPORT}',
width: 1050,
height: 500
});
new Ext.Template('<iframe id ="_input_window" name="_input_window" border="0" frameborder="0" height="100%" width="100%" style="border:none;padding:0px;margin:0px;"></iframe>').insertFirst(_input_window.body.dom, {}, true);
var form = document.getElementById('importForm');
var url = '${/request/@context_path}/modules/hls/HLS204N/hls_lease_item_gps_excel_import.lview?session_id=${/parameter/@session_id}&winid=${/parameter/@winid}&batch_id=${/parameter/@batch_id}&_csrf=${/session/@_csrf.token}';
form.action = url;
form.submit();
$('${/parameter/@winid}').close();
_input_window.on('close', function() {
$('${/parameter/@parent_ds_id}').query();
});
}
]]></script>
<a:dataSets>
<a:dataSet id="label_ds" autoCreate="true">
<a:fields>
<a:field name="label2" defaultValue="${l:STRICT_IMPORTED_TEMPLATE_DATA}"/>
<a:field name="label3" defaultValue="${l:PRODUCT_MASTER_DATA_IMPORT}"/>
<a:field name="label4" defaultValue="${l:IMPORTER_ONLY_SUPPORTS}"/>
<a:field name="label5" defaultValue="${l:READ_THE_ABOVE_CAREFULLY}"/>
<a:field name="label6" defaultValue="${l:THE_IMPORT_IS_COMPLETE}"/>
</a:fields>
</a:dataSet>
</a:dataSets>
<a:fieldSet style="margin-left:10px;margin-top:10px;" title="IMPORT_CONSIDERATIONS" width="400">
<!--<a:label name="label1" bindTarget="label_ds" width="380"/>-->
<a:label name="label2" bindTarget="label_ds" style="margin-left:10px;" width="380"/>
<a:label name="label3" bindTarget="label_ds" style="margin-left:10px;" width="380"/>
<a:label name="label4" bindTarget="label_ds" style="margin-left:10px;" width="380"/>
<a:label name="label5" bindTarget="label_ds" style="color:#055A78;font-weight:bold;margin-left:10px;" width="380"/>
<a:label name="label6" bindTarget="label_ds" style="color:#055A78;font-weight:bold;margin-left:10px;" width="380"/>
</a:fieldSet>
<a:fieldSet style="margin-left:10px;margin-top:10px;" title="TMPLT_IMPORT_FILE" width="400">
<form name="upload" id="importForm" action="modules/prj/PRJ501N/prj_lease_item_trans_upload.lview?session_id=${/parameter/@session_id}&amp;project_id=${/parameter/@project_id}&amp;parent_ds_id=${/parameter/@parent_ds_id}&amp;type=${/parameter/@type}&amp;_csrf=${/session/@_csrf.token}" enctype="multipart/form-data" method="post" target="_input_window">
<label style="margin-left:10px;margin-top:10px;font-size:13px"><![CDATA[${l:PLEASE_SELECT_A_FILE}]]></label>
<input name="CONTENT" id="importFile" style="font-size:15px" type="file"/>
<!-- <input onclick="downloadFile()" style="margin-left:10px;margin-top:10px;width:60px;height:23px" type="button" value="模板下载"/> -->
<input onclick="saveClick()" style="margin-left:25px;margin-top:10px;width:60px;height:23px" type="button" value="${l:TMPLT_IMPORT}"/>
</form>
</a:fieldSet>
</a:view>
</a:screen>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: sf
$Date: 2016-11-24 上午9:18:19
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure/>
<a:view>
<a:link id="BmLink_MainScreen_functionHit" model="sys.sys_page_function_visit" modelaction="update"/>
<a:link id="hls_lease_item_gps_import_link" url="${/request/@context_path}/modules/hls/HLS204N/hls_lease_item_gps_import.lview"/>
<script><![CDATA[
//导入按钮
window['${/parameter/@layout_code}_user_button1_layout_dynamic_click'] = function () {
var url_l = $('hls_lease_item_gps_import_link').getUrl();
var win = new Leaf.Window({
id: 'hls_lease_item_gps_import_link_win',
url: url_l,
params: {
'winid': 'hls_lease_item_gps_import_link_win',
'session_id': '${/session/@session_id}',
'parent_ds_id': 'hls_lease_item_gps_modify_entrance_result_ds'
},
title: '导入',
width: 430,
height: 390
});
win.on('close', function () {
$('hls_lease_item_gps_modify_entrance_result_ds').query();
});
}
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
</a:view>
</a:screen>
\ No newline at end of file
......@@ -15,14 +15,14 @@
<a:link id="hls214N_cdd_downloadFile_id" url="${/request/@context_path}/downloadFile.lview"/>
<script src="${/request/@context_path}/modules/prj/PRJ500N/javascripts/input_validator.js" type="text/javascript"/>
<a:link id="gh_nc_post_addcustomerinfo_link" model="hls.HLS213.hls_bp_master_nc_post" modelaction="execute"/>
<a:link id="hls213_sap_eai_create_customer_link"
url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrCustomer.lsc"/>
<a:link id="hls213_sap_eai_create_vender_link"
url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrVender.lsc"/>
<!-- <a:link id="hls213_sap_eai_create_customer_link"-->
<!-- url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrCustomer.lsc"/>-->
<!-- <a:link id="hls213_sap_eai_create_vender_link"-->
<!-- url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrVender.lsc"/>-->
<!-- <a:link id="Identity_ccx_link"
url="${/request/@context_path}/modules/interface/INTERFACE_CCX/hlcm_ccxIdentity_interface.lsc"/>-->
<script src="${/request/@context_path}/javascripts/identity_card_info_query.js" type="text/javascript"/>
<a:link id="identity_query_link" model="interface.CCX_INTERFACE.identity_query" modelaction="update"/>
<!-- <script src="${/request/@context_path}/javascripts/identity_card_info_query.js" type="text/javascript"/>-->
<!-- <a:link id="identity_query_link" model="interface.CCX_INTERFACE.identity_query" modelaction="update"/>-->
<script type="text/javascript"><![CDATA[
Leaf.onReady(function () {
......
......@@ -17,8 +17,8 @@
<a:link id="hls214_bp_master_save_link_id" model="hls.HLS214.hls_bp_change_agent" modelaction="update"/>
<!-- <a:link id="hls214_sap_eai_create_customer_link" url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrCustomer.lsc"/>-->
<!-- <a:link id="hls214_sap_eai_create_vender_link" url="${/request/@context_path}/modules/interface/INTERFACE_EAI/hls_sap_eai_CrVender.lsc"/>-->
<script src="${/request/@context_path}/javascripts/identity_card_info_query.js"
type="text/javascript"></script>
<!-- <script src="${/request/@context_path}/javascripts/identity_card_info_query.js"-->
<!-- type="text/javascript"></script>-->
<script type="text/javascript"><![CDATA[
//保存submitsuccess调用
window['${/parameter/@layout_code}_on_layout_dynamic_submitsuccess'] = function(ds, record, res, bp_seq) {
......
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