Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-bpm
Project
Project
Details
Activity
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
鲁鑫
topsun-bpm
Commits
57fe48c0
Commit
57fe48c0
authored
Mar 31, 2024
by
刘学辉
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
8da7ccbf
9b7d97b1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
671 additions
and
241 deletions
+671
-241
jquery.combox.js
huigou-xt/src/main/webapp/lib/jquery/jquery.combox.js
+3
-0
choosePurchaseDetail.jsp
...n/webapp/biz/topsun/sap/purchase/choosePurchaseDetail.jsp
+20
-0
sapPurchaseDetail.js
.../main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.js
+174
-211
sapPurchaseDetail.jsp
...main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.jsp
+1
-1
sapPurchaseList.js
...rc/main/webapp/biz/topsun/sap/purchase/sapPurchaseList.js
+16
-18
sapZNE1PurchaseDetail.js
...n/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js
+377
-0
sapZNE1PurchaseDetail.jsp
.../webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.jsp
+38
-0
purchaseInfoRecordDetail.js
...topsun/sap/purchaseInfoRecord/purchaseInfoRecordDetail.js
+1
-1
SapPurchaseController.java
...topsun/sap/purchase/controller/SapPurchaseController.java
+24
-2
SapPurchaseApprovalController.java
...aseApproval/controller/SapPurchaseApprovalController.java
+2
-0
SapQualityInfoRecordApplicationImpl.java
...application/impl/SapQualityInfoRecordApplicationImpl.java
+9
-3
SuppliersDataApplicationImpl.java
...pliers/application/impl/SuppliersDataApplicationImpl.java
+6
-5
No files found.
huigou-xt/src/main/webapp/lib/jquery/jquery.combox.js
View file @
57fe48c0
...
@@ -1576,6 +1576,9 @@
...
@@ -1576,6 +1576,9 @@
opts
.
onChange
.
call
(
this
,
values
,{});
opts
.
onChange
.
call
(
this
,
values
,{});
}
}
}
}
if
(
$
.
isFunction
(
opts
.
beforeChange
)){
//原始数据作为参数回调
opts
.
beforeChange
.
call
(
this
,
values
)
}
if
(
opts
.
checkbox
&&
this
.
selectDataMap
){
if
(
opts
.
checkbox
&&
this
.
selectDataMap
){
this
.
selectDataMap
.
clear
();
this
.
selectDataMap
.
clear
();
}
}
...
...
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/choosePurchaseDetail.jsp
0 → 100644
View file @
57fe48c0
<%--采购申请--%>
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"请选择采购申请PR类型"
needStatus=
"true"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
labelCol=
"4"
fieldCol=
"8"
required=
"true"
/>
</div>
</div>
</form>
</div>
</body>
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.js
View file @
57fe48c0
This diff is collapsed.
Click to expand it.
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.jsp
View file @
57fe48c0
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<x:hidden
name=
"frgdt"
/>
<x:hidden
name=
"frgdt"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:selectC
name=
"bsart"
label=
"pr类型"
disabled=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:inputC
name=
"banfn"
label=
"采购申请编号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"false"
/>
<x:inputC
name=
"banfn"
label=
"采购申请编号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"false"
/>
</div>
</div>
</div>
</div>
...
...
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseList.js
View file @
57fe48c0
...
@@ -47,7 +47,7 @@ function initPurchaseListGrid() {
...
@@ -47,7 +47,7 @@ function initPurchaseListGrid() {
}
}
,
,
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
viewHandler
(
data
.
parentI
d
);
viewHandler
(
data
.
i
d
);
},
},
onAfterShowData
:
function
(
currentData
)
{
onAfterShowData
:
function
(
currentData
)
{
...
@@ -63,39 +63,37 @@ function initPurchaseListGrid() {
...
@@ -63,39 +63,37 @@ function initPurchaseListGrid() {
* @param parentId 采购申请id
* @param parentId 采购申请id
* @returns {boolean}
* @returns {boolean}
*/
*/
function
viewHandler
(
parentI
d
)
{
function
viewHandler
(
i
d
)
{
if
(
!
parentI
d
)
{
if
(
!
i
d
)
{
var
row
=
DataUtil
.
getSelectedRow
(
purchaseGridManager
);
var
row
=
DataUtil
.
getSelectedRow
(
purchaseGridManager
);
if
(
!
row
)
{
if
(
!
row
)
{
return
row
;
return
row
;
}
}
parentId
=
row
.
parentI
d
;
id
=
row
.
i
d
;
}
}
UICtrl
.
addTabItem
({
UICtrl
.
addTabItem
({
tabid
:
'viewPurchase'
+
parentI
d
,
tabid
:
'viewPurchase'
+
i
d
,
text
:
'查看采购申请'
,
text
:
'查看采购申请'
,
url
:
web_app
.
name
+
'/
purchase/loadPurchaseDetail.do?isReadOnly=true&id='
+
parentI
d
url
:
web_app
.
name
+
'/
sapPurchase/showSapPurchaseDetail.do?isReadOnly=true&bizId='
+
i
d
});
});
}
}
function
updateHandler
()
{
//添加按钮
var
row
=
DataUtil
.
getSelectedRow
(
purchaseGridManager
);
function
addHandler
()
{
if
(
!
row
)
{
UICtrl
.
showAjaxDialog
({
return
;
title
:
'新增'
,
}
width
:
400
,
UICtrl
.
addTabItem
({
url
:
web_app
.
name
+
'/sapPurchase/choosePurchaseDetail.load'
,
tabid
:
'updatePurchase'
+
row
.
parentId
,
ok
:
insertHandler
text
:
'修改采购申请'
,
url
:
web_app
.
name
+
'/purchase/loadPurchaseDetail.do?id='
+
row
.
parentId
});
});
}
}
function
addHandler
()
{
function
insertHandler
()
{
var
bsart
=
$
(
"#bsart"
).
val
();
UICtrl
.
addTabItem
({
UICtrl
.
addTabItem
({
tabid
:
'addPurchase'
,
tabid
:
'addPurchase'
,
text
:
'新增采购申请'
,
text
:
'新增采购申请'
,
url
:
web_app
.
name
+
'/sapPurchase/forwardSapPurchaseDetail.job
'
url
:
web_app
.
name
+
'/sapPurchase/forwardSapPurchaseDetail.job
?bsart='
+
bsart
});
});
}
}
...
...
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js
0 → 100644
View file @
57fe48c0
This diff is collapsed.
Click to expand it.
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.jsp
0 → 100644
View file @
57fe48c0
<%--采购申请--%>
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"
/>
<x:script
src=
"/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js"
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"采购申请"
needStatus=
"true"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<x:hidden
name=
"id"
/>
<x:hidden
name=
"version"
/>
<x:hidden
name=
"billCode"
/>
<x:hidden
name=
"fillinDate"
/>
<x:hidden
name=
"fullId"
/>
<x:hidden
name=
"organId"
/>
<x:hidden
name=
"organName"
/>
<x:hidden
name=
"deptId"
/>
<x:hidden
name=
"deptName"
/>
<x:hidden
name=
"positionId"
/>
<x:hidden
name=
"positionName"
/>
<x:hidden
name=
"personMemberId"
/>
<x:hidden
name=
"personMemberName"
/>
<x:hidden
name=
"statusId"
/>
<x:hidden
name=
"frgdt"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
disabled=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:inputC
name=
"banfn"
label=
"采购申请编号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"false"
/>
</div>
</div>
<div
id=
"maingrid"
></div>
</form>
</div>
</body>
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/purchaseInfoRecord/purchaseInfoRecordDetail.js
View file @
57fe48c0
...
@@ -47,7 +47,7 @@ function initItemGrid() {
...
@@ -47,7 +47,7 @@ function initItemGrid() {
if
(
Public
.
isNotBlank
(
editParma
.
record
.
matnr
)
&&
editParma
.
column
.
name
==
'matklName'
){
if
(
Public
.
isNotBlank
(
editParma
.
record
.
matnr
)
&&
editParma
.
column
.
name
==
'matklName'
){
return
false
;
return
false
;
}
}
if
(
Public
.
isNotBlank
(
editParma
.
record
.
matklName
)
&&
editParma
.
column
.
name
==
'matnr'
){
if
(
Public
.
isNotBlank
(
editParma
.
record
.
matklName
)
&&
Public
.
isBlank
(
editParma
.
record
.
maktx
)
&&
editParma
.
column
.
name
==
'matnr'
){
return
false
;
return
false
;
}
}
...
...
topsun/src/main/java/com/huigou/topsun/sap/purchase/controller/SapPurchaseController.java
View file @
57fe48c0
...
@@ -43,25 +43,47 @@ public class SapPurchaseController extends CommonController {
...
@@ -43,25 +43,47 @@ public class SapPurchaseController extends CommonController {
return
toResult
(
map
);
return
toResult
(
map
);
}
}
public
String
choosePurchaseDetail
(){
return
forward
(
"choosePurchaseDetail"
);
}
public
String
forwardSapPurchaseDetail
(){
public
String
forwardSapPurchaseDetail
(){
this
.
putAttribute
(
"processDefinitionKey"
,
SapPurchaseApplication
.
PROCESS_DEFINITION_KEY
);
this
.
putAttribute
(
"processDefinitionKey"
,
SapPurchaseApplication
.
PROCESS_DEFINITION_KEY
);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
String
bsart
=
getSDO
().
getString
(
"bsart"
);
SapPurchase
sapPurchase
=
new
SapPurchase
();
SapPurchase
sapPurchase
=
new
SapPurchase
();
sapPurchase
.
setBsart
(
bsart
);
sapPurchase
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
sapPurchase
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
/**
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
*/
Operator
operator
=
getOperator
();
Operator
operator
=
getOperator
();
sapPurchase
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
sapPurchase
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
switch
(
bsart
){
case
"ZNE1"
:
return
forward
(
"sapZNE1PurchaseDetail"
,
sapPurchase
);
case
"ZFW"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
case
"ZNE2"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
}
return
null
;
}
}
public
String
showSapPurchaseDetail
(){
public
String
showSapPurchaseDetail
(){
SDO
sdo
=
this
.
getSDO
();
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getBizId
();
String
id
=
sdo
.
getBizId
();
SapPurchase
sapPurchase
=
sapPurchaseApplication
.
loadSapPurchase
(
id
);
SapPurchase
sapPurchase
=
sapPurchaseApplication
.
loadSapPurchase
(
id
);
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
switch
(
sapPurchase
.
getBsart
()){
case
"ZNE1"
:
return
forward
(
"sapZNE1PurchaseDetail"
,
sapPurchase
);
case
"ZFW"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
case
"ZNE2"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
}
return
null
;
}
}
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/controller/SapPurchaseApprovalController.java
View file @
57fe48c0
...
@@ -48,12 +48,14 @@ public class SapPurchaseApprovalController extends CommonController {
...
@@ -48,12 +48,14 @@ public class SapPurchaseApprovalController extends CommonController {
HashMap
<
String
,
Object
>
messageMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
messageMap
=
new
HashMap
<>();
messageMap
.
put
(
"Message_Status"
,
"S"
);
messageMap
.
put
(
"Message_Status"
,
"S"
);
messageMap
.
put
(
"Message_Text"
,
"成功"
);
messageMap
.
put
(
"Message_Text"
,
"成功"
);
messageMap
.
put
(
"NUMBER"
,
sapPurchaseApprovalDto
.
getLsDeader
().
getBanfn
());
LOG
.
info
(
"SAP采购申请审批数据=={}"
,
sapPurchaseApprovalDto
);
LOG
.
info
(
"SAP采购申请审批数据=={}"
,
sapPurchaseApprovalDto
);
try
{
try
{
this
.
sapPurchaseApprovalApplication
.
saveSapPurchaseApprovalVo
(
sapPurchaseApprovalDto
);
this
.
sapPurchaseApprovalApplication
.
saveSapPurchaseApprovalVo
(
sapPurchaseApprovalDto
);
}
catch
(
RuntimeException
e
){
}
catch
(
RuntimeException
e
){
messageMap
.
put
(
"Message_Status"
,
"E"
);
messageMap
.
put
(
"Message_Status"
,
"E"
);
messageMap
.
put
(
"Message_Text"
,
e
);
messageMap
.
put
(
"Message_Text"
,
e
);
messageMap
.
put
(
"NUMBER"
,
sapPurchaseApprovalDto
.
getLsDeader
().
getBanfn
());
}
}
return
messageMap
;
return
messageMap
;
}
}
...
...
topsun/src/main/java/com/huigou/topsun/sap/qualityInfoRecord/application/impl/SapQualityInfoRecordApplicationImpl.java
View file @
57fe48c0
...
@@ -154,9 +154,15 @@ public class SapQualityInfoRecordApplicationImpl extends FlowBroker implements S
...
@@ -154,9 +154,15 @@ public class SapQualityInfoRecordApplicationImpl extends FlowBroker implements S
purchaseInfoRecordItemList
.
forEach
(
sapQualityInfoRecordItem
->
{
purchaseInfoRecordItemList
.
forEach
(
sapQualityInfoRecordItem
->
{
SapQualityInfoRecordItemVo
sapQualityInfoRecordItemVo
=
new
SapQualityInfoRecordItemVo
();
SapQualityInfoRecordItemVo
sapQualityInfoRecordItemVo
=
new
SapQualityInfoRecordItemVo
();
BeanUtil
.
copyProperties
(
sapQualityInfoRecordItem
,
sapQualityInfoRecordItemVo
);
BeanUtil
.
copyProperties
(
sapQualityInfoRecordItem
,
sapQualityInfoRecordItemVo
);
sapQualityInfoRecordItem
.
setZqavfn3
(
"M1"
);
// sapQualityInfoRecordItem.setZqavfn3("M1");
sapQualityInfoRecordItem
.
setZvfnc3
(
"A"
);
// sapQualityInfoRecordItem.setZvfnc3("A");
sapQualityInfoRecordItem
.
setZqafst
(
"11"
);
// sapQualityInfoRecordItem.setZqafst("11");
if
(
"0"
.
equals
(
sapQualityInfoRecordItemVo
.
getGrsrq
())){
sapQualityInfoRecordItemVo
.
setGrsrq
(
""
);
}
if
(
"0"
.
equals
(
sapQualityInfoRecordItemVo
.
getFscrq
())){
sapQualityInfoRecordItemVo
.
setFscrq
(
""
);
}
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
if
(
sapQualityInfoRecordItem
.
getGrscertdatai
()
!=
null
){
if
(
sapQualityInfoRecordItem
.
getGrscertdatai
()
!=
null
){
String
datab
=
dateFormat
.
format
(
sapQualityInfoRecordItem
.
getGrscertdatai
());
String
datab
=
dateFormat
.
format
(
sapQualityInfoRecordItem
.
getGrscertdatai
());
...
...
topsun/src/main/java/com/huigou/topsun/sap/suppliers/application/impl/SuppliersDataApplicationImpl.java
View file @
57fe48c0
...
@@ -11,6 +11,7 @@ import com.huigou.data.query.model.QueryDescriptor;
...
@@ -11,6 +11,7 @@ import com.huigou.data.query.model.QueryDescriptor;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.common.DefaultHttpClient
;
import
com.huigou.topsun.sap.common.DefaultHttpClient
;
import
com.huigou.topsun.sap.common.application.SapMutualEpLogApplication
;
import
com.huigou.topsun.sap.common.application.SapMutualEpLogApplication
;
import
com.huigou.topsun.sap.common.domain.SapResult
;
import
com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement
;
import
com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement
;
import
com.huigou.topsun.sap.suppliers.application.SuppliersDataApplication
;
import
com.huigou.topsun.sap.suppliers.application.SuppliersDataApplication
;
import
com.huigou.topsun.sap.suppliers.domain.*
;
import
com.huigou.topsun.sap.suppliers.domain.*
;
...
@@ -353,16 +354,16 @@ public class SuppliersDataApplicationImpl extends FlowBroker implements Supplier
...
@@ -353,16 +354,16 @@ public class SuppliersDataApplicationImpl extends FlowBroker implements Supplier
suppliersInfoVos
.
add
(
suppliersInfoVo
);
suppliersInfoVos
.
add
(
suppliersInfoVo
);
try
{
try
{
String
result
=
defaultHttpClient
.
execute
(
suppliersInfoVos
,
url
);
String
result
=
defaultHttpClient
.
execute
(
suppliersInfoVos
,
url
);
List
<
Map
<
String
,
Object
>>
resultList
=
objectMapper
.
readValue
(
result
,
new
TypeReference
<
List
<
Map
<
String
,
Object
>
>>()
{
List
<
SapResult
>
sapResultList
=
objectMapper
.
readValue
(
result
,
new
TypeReference
<
List
<
SapResult
>>()
{
});
});
resultMap
=
r
esultList
.
get
(
0
);
SapResult
sapResult
=
sapR
esultList
.
get
(
0
);
resultMap
.
put
(
"sequence"
,
resultMap
.
get
(
"row"
));
resultMap
.
put
(
"sequence"
,
resultMap
.
get
(
"row"
));
sapMutualEpLogApplication
.
saveSapMutualEpLog
(
resultMap
);
sapMutualEpLogApplication
.
saveSapMutualEpLog
(
resultMap
);
if
(
"S"
.
equals
(
resultMap
.
get
(
"TYPE"
)))
{
if
(
"S"
.
equals
(
sapResult
.
getTYPE
(
)))
{
suppliersInfo
.
setPartner
(
(
String
)
resultMap
.
get
(
"MESSAGE_V1"
));
suppliersInfo
.
setPartner
(
sapResult
.
getMESSAGE_V1
(
));
suppliersInfoRepository
.
save
(
suppliersInfo
);
suppliersInfoRepository
.
save
(
suppliersInfo
);
}
else
{
}
else
{
throw
new
RuntimeException
(
"数据传输失败,请稍后手动重试!"
+
resultMap
.
get
(
"MESSAGE"
));
throw
new
RuntimeException
(
"数据传输失败,请稍后手动重试!"
+
sapResult
.
getMESSAGE
(
));
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
resultMap
.
put
(
"type"
,
"E"
);
resultMap
.
put
(
"type"
,
"E"
);
...
...
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