Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
9e5ad4e5
Commit
9e5ad4e5
authored
Mar 12, 2021
by
刘鹏飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature/beautiful-刘鹏飞'
parents
a6628654
21f3b759
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
11 deletions
+60
-11
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
+1
-0
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+42
-7
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
+1
-1
order-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
+2
-0
order-application-service/src/main/java/cn/freemud/enums/QueryOrderStatus.java
+4
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+9
-2
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
+1
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
View file @
9e5ad4e5
...
@@ -42,6 +42,7 @@ public enum OrderSourceType {
...
@@ -42,6 +42,7 @@ public enum OrderSourceType {
FMWD
(
"fmwd"
,
"非码微店"
,
25
),
FMWD
(
"fmwd"
,
"非码微店"
,
25
),
Y_POS
(
"ypos"
,
"非码云POS"
,
26
),
Y_POS
(
"ypos"
,
"非码云POS"
,
26
),
TIKTOKPAY
(
"tiktokpay"
,
"抖音支付"
,
27
),
TIKTOKPAY
(
"tiktokpay"
,
"抖音支付"
,
27
),
BEAUTIFUL
(
"beautiful"
,
"美业"
,
28
),
parkingmanual
(
"parkingmanual"
,
"农工商停车手工录单"
,
98
),
parkingmanual
(
"parkingmanual"
,
"农工商停车手工录单"
,
98
),
PARKING
(
"parking"
,
"农工商停车"
,
99
),
PARKING
(
"parking"
,
"农工商停车"
,
99
),
SDG
(
"sdg"
,
"闪电购"
,
1000
);
SDG
(
"sdg"
,
"闪电购"
,
1000
);
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
9e5ad4e5
...
@@ -1622,7 +1622,7 @@ public class OrderAdapter {
...
@@ -1622,7 +1622,7 @@ public class OrderAdapter {
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"下单成功"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventCreateOrderString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"目前有"
+
orderBean
.
getQueueIndex
()
+
"人在排队,凭此页到店领取哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"目前有"
+
orderBean
.
getQueueIndex
()
+
"人在排队,凭此页到店领取哦~"
);
if
(
StringUtils
.
isBlank
(
orderBean
.
getQueueIndex
())
||
"0"
.
equals
(
orderBean
.
getQueueIndex
()))
{
if
(
StringUtils
.
isBlank
(
orderBean
.
getQueueIndex
())
||
"0"
.
equals
(
orderBean
.
getQueueIndex
()))
{
orderViewStatusDto
.
setOrderStatusDescText
(
"凭此页到店领取哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"凭此页到店领取哦~"
);
...
@@ -1647,7 +1647,7 @@ public class OrderAdapter {
...
@@ -1647,7 +1647,7 @@ public class OrderAdapter {
if
(
OrderStatus
.
RECEIPT
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
if
(
OrderStatus
.
RECEIPT
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"制作中"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventProduceString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"目前有"
+
orderBean
.
getQueueIndex
()
+
"人在排队,凭此页到店领取哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"目前有"
+
orderBean
.
getQueueIndex
()
+
"人在排队,凭此页到店领取哦~"
);
if
(
StringUtils
.
isBlank
(
orderBean
.
getQueueIndex
())
||
"0"
.
equals
(
orderBean
.
getQueueIndex
()))
{
if
(
StringUtils
.
isBlank
(
orderBean
.
getQueueIndex
())
||
"0"
.
equals
(
orderBean
.
getQueueIndex
()))
{
orderViewStatusDto
.
setOrderStatusDescText
(
"凭此页到店领取哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"凭此页到店领取哦~"
);
...
@@ -1698,7 +1698,7 @@ public class OrderAdapter {
...
@@ -1698,7 +1698,7 @@ public class OrderAdapter {
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
orderBean
.
getDeliverStatus
()
==
null
)
{
if
(
orderBean
.
getDeliverStatus
()
==
null
)
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"下单成功"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventProduceString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setButtonContactPartner
(
true
);
orderViewStatusDto
.
setButtonContactPartner
(
true
);
orderViewStatusDto
.
setButtonRefund
(
checkRefundButton
(
orderBean
,
wxAppId
));
orderViewStatusDto
.
setButtonRefund
(
checkRefundButton
(
orderBean
,
wxAppId
));
...
@@ -1707,7 +1707,7 @@ public class OrderAdapter {
...
@@ -1707,7 +1707,7 @@ public class OrderAdapter {
orderViewStatusDto
.
setRiderPhoto
(
orderBean
.
getRiderPhoto
());
orderViewStatusDto
.
setRiderPhoto
(
orderBean
.
getRiderPhoto
());
}
else
{
}
else
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
TAKE_ORDER
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"下单成功"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventProduceString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setButtonContactPartner
(
true
);
orderViewStatusDto
.
setButtonContactPartner
(
true
);
orderViewStatusDto
.
setButtonRefund
(
checkRefundButton
(
orderBean
,
wxAppId
));
orderViewStatusDto
.
setButtonRefund
(
checkRefundButton
(
orderBean
,
wxAppId
));
...
@@ -1728,7 +1728,7 @@ public class OrderAdapter {
...
@@ -1728,7 +1728,7 @@ public class OrderAdapter {
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
refundBean
==
null
||
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
if
(
orderBean
.
getDeliverStatus
()
==
null
)
{
if
(
orderBean
.
getDeliverStatus
()
==
null
)
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"制作中"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventProduceString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setRiderName
(
"商家自配送"
);
orderViewStatusDto
.
setRiderName
(
"商家自配送"
);
orderViewStatusDto
.
setRiderText
(
"正在为您匹配配送员"
);
orderViewStatusDto
.
setRiderText
(
"正在为您匹配配送员"
);
...
@@ -1737,7 +1737,7 @@ public class OrderAdapter {
...
@@ -1737,7 +1737,7 @@ public class OrderAdapter {
orderViewStatusDto
.
setButtonContactPartner
(
true
);
orderViewStatusDto
.
setButtonContactPartner
(
true
);
}
else
{
}
else
{
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatus
(
OrderStatus
.
RECEIPT
.
getCode
());
orderViewStatusDto
.
setOrderStatusDesc
(
"制作中"
);
orderViewStatusDto
.
setOrderStatusDesc
(
conventProduceString
(
orderBean
)
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setOrderStatusDescText
(
"请稍等片刻,美味即将到达哦~"
);
orderViewStatusDto
.
setRiderName
(
StringUtils
.
isEmpty
(
orderBean
.
getRiderName
())
?
"处理中"
:
orderBean
.
getRiderName
());
orderViewStatusDto
.
setRiderName
(
StringUtils
.
isEmpty
(
orderBean
.
getRiderName
())
?
"处理中"
:
orderBean
.
getRiderName
());
orderViewStatusDto
.
setRiderText
(
StringUtils
.
isEmpty
(
orderBean
.
getRiderName
())
?
"正在为您匹配配送员"
:
"配送员"
);
orderViewStatusDto
.
setRiderText
(
StringUtils
.
isEmpty
(
orderBean
.
getRiderName
())
?
"正在为您匹配配送员"
:
"配送员"
);
...
@@ -3896,7 +3896,9 @@ public class OrderAdapter {
...
@@ -3896,7 +3896,9 @@ public class OrderAdapter {
}
else
if
(
OrderChannelType
.
APP
.
getCode
().
equals
(
channelType
)){
}
else
if
(
OrderChannelType
.
APP
.
getCode
().
equals
(
channelType
)){
orderClients
.
add
(
OrderClientType
.
APP
.
getIndex
());
orderClients
.
add
(
OrderClientType
.
APP
.
getIndex
());
//queryOrdersDto.setSource(new String[]{"app"});
//queryOrdersDto.setSource(new String[]{"app"});
}
else
{
}
else
if
(
OrderChannelType
.
BEAUTIFUL
.
getCode
().
equals
(
channelType
)){
// 美业新加
orderClients
.
add
(
OrderClientType
.
BEAUTIFUL
.
getIndex
());
}
else
{
orderClients
.
add
(
OrderClientType
.
SAAS
.
getIndex
());
orderClients
.
add
(
OrderClientType
.
SAAS
.
getIndex
());
//queryOrdersDto.setSource(new String[]{"saas"});
//queryOrdersDto.setSource(new String[]{"saas"});
}
}
...
@@ -3936,6 +3938,9 @@ public class OrderAdapter {
...
@@ -3936,6 +3938,9 @@ public class OrderAdapter {
//queryOrdersDto.setStatus(new Integer[]{OrderStatus.COMPLETE.getCode()});
//queryOrdersDto.setStatus(new Integer[]{OrderStatus.COMPLETE.getCode()});
}
}
if
(
QueryOrderStatus
.
REFUND_BILL
.
getCode
().
equals
(
queryOrderStatus
))
{
if
(
QueryOrderStatus
.
REFUND_BILL
.
getCode
().
equals
(
queryOrderStatus
))
{
// 目前只有美业在用
payStatus
=
Arrays
.
asList
(
PayStatus
.
HAVE_REFUND
.
getCode
());
queryOrdersDto
.
setPayStatuses
(
payStatus
);
//Integer[] statuses = new Integer[]{RefundStatus.APPLY_REFUND.getCode(), RefundStatus.AGREE_REFUND.getCode(), RefundStatus.COMPLETE_REFUND.getCode()};
//Integer[] statuses = new Integer[]{RefundStatus.APPLY_REFUND.getCode(), RefundStatus.AGREE_REFUND.getCode(), RefundStatus.COMPLETE_REFUND.getCode()};
//queryOrdersDto.setRefundStatus(statuses);
//queryOrdersDto.setRefundStatus(statuses);
}
}
...
@@ -3963,6 +3968,11 @@ public class OrderAdapter {
...
@@ -3963,6 +3968,11 @@ public class OrderAdapter {
//queryOrdersDto.setPayStatus(new Integer[]{PayStatus.NOT_PAY.getCode()});
//queryOrdersDto.setPayStatus(new Integer[]{PayStatus.NOT_PAY.getCode()});
}
}
if
(
QueryOrderStatus
.
WAIT_USE
.
getCode
().
equals
(
queryOrderStatus
)){
List
<
Integer
>
orderStatuses
=
Arrays
.
asList
(
OrderStatus
.
RECEIPT
.
getCode
(),
OrderStatus
.
TAKE_ORDER
.
getCode
());
queryOrdersDto
.
setOrderStatuses
(
orderStatuses
);
}
}
}
// 兼容历史版本,如果传参是4 查询拆程4和5
// 兼容历史版本,如果传参是4 查询拆程4和5
...
@@ -4064,4 +4074,29 @@ public class OrderAdapter {
...
@@ -4064,4 +4074,29 @@ public class OrderAdapter {
return
queryOrdersResponse
;
return
queryOrdersResponse
;
}
}
/**
* 转换制作中的文案,美业用待使用,其他用制作中
* @param orderBean
* @return
*/
public
String
conventProduceString
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
if
(
String
.
valueOf
(
OrderClientType
.
BEAUTIFUL
.
getIndex
()).
equals
(
orderBean
.
getOrderClient
())){
return
"待使用"
;
}
return
"制作中"
;
}
/**
* 转换待使用的文案,美业用待使用,其他用制作中
* @param orderBean
* @return
*/
public
String
conventCreateOrderString
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
if
(
String
.
valueOf
(
OrderClientType
.
BEAUTIFUL
.
getIndex
()).
equals
(
orderBean
.
getOrderClient
())){
return
"待使用"
;
}
return
"下单成功"
;
}
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
View file @
9e5ad4e5
...
@@ -34,7 +34,7 @@ public class QueryOrderVo {
...
@@ -34,7 +34,7 @@ public class QueryOrderVo {
*/
*/
private
String
oid
;
private
String
oid
;
/**
/**
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付 ,6 已取消 7未支付取消
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付 ,6 已取消 7未支付取消
8待使用(美业)
*/
*/
private
Integer
queryOrderStatus
;
private
Integer
queryOrderStatus
;
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
View file @
9e5ad4e5
...
@@ -22,6 +22,8 @@ public enum OrderChannelType {
...
@@ -22,6 +22,8 @@ public enum OrderChannelType {
SAASMALL
(
"saasmall"
,
"微商城"
),
SAASMALL
(
"saasmall"
,
"微商城"
),
BEAUTIFUL
(
"beautiful"
,
"美业"
),
APP
(
"app"
,
"APP"
);
APP
(
"app"
,
"APP"
);
private
String
code
;
private
String
code
;
...
...
order-application-service/src/main/java/cn/freemud/enums/QueryOrderStatus.java
View file @
9e5ad4e5
...
@@ -22,7 +22,10 @@ public enum QueryOrderStatus {
...
@@ -22,7 +22,10 @@ public enum QueryOrderStatus {
NO_PAY
(
5
,
"待支付"
),
NO_PAY
(
5
,
"待支付"
),
ORDER_CANCEL
(
6
,
"已取消"
),
ORDER_CANCEL
(
6
,
"已取消"
),
//密雪
//密雪
ORDER_CANCEL_MIXUE
(
7
,
"未支付已取消"
);
ORDER_CANCEL_MIXUE
(
7
,
"未支付已取消"
),
// 美业专用
WAIT_USE
(
8
,
"待使用"
);
private
Integer
code
;
private
Integer
code
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
9e5ad4e5
...
@@ -2724,6 +2724,12 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2724,6 +2724,12 @@ public class OrderServiceImpl implements Orderservice {
createOrderVo
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
.
getIndex
());
createOrderVo
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
.
getIndex
());
orderClient
=
OrderClientType
.
TIKTOKPAY
;
orderClient
=
OrderClientType
.
TIKTOKPAY
;
}
}
// 美业
if
(
OrderChannelType
.
BEAUTIFUL
.
getCode
().
equals
(
createOrderVo
.
getChannelType
()))
{
orderClient
=
OrderClientType
.
BEAUTIFUL
;
}
long
totalAmount
=
0
;
long
totalAmount
=
0
;
int
cardAmount
=
0
;
int
cardAmount
=
0
;
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherBeanListOne
=
new
QueryOrdersResponse
.
DataBean
.
OrderBean
();
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherBeanListOne
=
new
QueryOrdersResponse
.
DataBean
.
OrderBean
();
...
@@ -3581,6 +3587,8 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3581,6 +3587,8 @@ public class OrderServiceImpl implements Orderservice {
channelType
=
OrderChannelType
.
SAASMALL
.
getCode
();
channelType
=
OrderChannelType
.
SAASMALL
.
getCode
();
}
else
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
()))
{
}
else
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
()))
{
channelType
=
OrderChannelType
.
APP
.
getCode
();
channelType
=
OrderChannelType
.
APP
.
getCode
();
}
else
if
(
OrderChannelType
.
BEAUTIFUL
.
getCode
().
equals
(
queryOrderVo
.
getChannelType
())){
channelType
=
OrderChannelType
.
BEAUTIFUL
.
getCode
();
}
}
return
channelType
;
return
channelType
;
}
}
...
@@ -4022,8 +4030,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -4022,8 +4030,7 @@ public class OrderServiceImpl implements Orderservice {
private
Boolean
isQueryEs
(
Integer
queryOrderStatus
)
{
private
Boolean
isQueryEs
(
Integer
queryOrderStatus
)
{
if
(
ObjectUtils
.
equals
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
(),
queryOrderStatus
)
||
ObjectUtils
.
equals
(
QueryOrderStatus
.
NO_PAY
.
getCode
(),
queryOrderStatus
)
if
(
ObjectUtils
.
equals
(
QueryOrderStatus
.
TAKE_MEAL
.
getCode
(),
queryOrderStatus
)
||
ObjectUtils
.
equals
(
QueryOrderStatus
.
NO_PAY
.
getCode
(),
queryOrderStatus
)){
||
ObjectUtils
.
equals
(
QueryOrderStatus
.
REFUND_BILL
.
getCode
(),
queryOrderStatus
)){
return
Boolean
.
FALSE
;
return
Boolean
.
FALSE
;
}
}
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
View file @
9e5ad4e5
...
@@ -37,6 +37,7 @@ public enum OrderClientType {
...
@@ -37,6 +37,7 @@ public enum OrderClientType {
DPZHCT
(
24
,
"美团点评智慧餐厅"
),
DPZHCT
(
24
,
"美团点评智慧餐厅"
),
FMWD
(
25
,
"非码微店"
),
FMWD
(
25
,
"非码微店"
),
TIKTOKPAY
(
27
,
"抖音小程序"
),
TIKTOKPAY
(
27
,
"抖音小程序"
),
BEAUTIFUL
(
28
,
"美业"
),
PARKING
(
99
,
"农工商停车"
),
PARKING
(
99
,
"农工商停车"
),
;
;
...
...
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