Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
takeout_sbk
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
yunpeng.song
takeout_sbk
Commits
34132abc
Commit
34132abc
authored
Jun 15, 2020
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:
1、订单详情显示 预约时间; 2、拼单使用父级 ServiceType:订单类型;
parent
62cf85b7
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
656 deletions
+13
-656
fmTakeout/Control/flowControl.cpp
+0
-642
fmTakeout/DTools/pmsOrdersData.cpp
+0
-8
fmTakeout/detailForm.cpp
+13
-6
No files found.
fmTakeout/Control/flowControl.cpp
View file @
34132abc
...
...
@@ -2387,649 +2387,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
{
QLOG_INFO
()
<<
__FUNCTION__
<<
error
<<
orderId
;
m_storeId
=
content
[
"storeId"
].
toString
();
m_posId
=
content
[
"posId"
].
toString
();
m_cashierId
=
content
[
"operatorId"
].
toString
();
m_cashierName
=
content
[
"operatorName"
].
toString
();
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01: 获取订单数据] 开始获取 OrderId:%1 给simphony:--->>>>>]"
).
arg
(
orderId
);
bool
result
=
true
;
if
(
!
m_bLoginResult
)
{
error
=
QString
::
fromLocal8Bit
(
"FMOMS Plug-in Program Not Login On"
);
return
false
;
}
if
(
m_simValidOrdersList
.
isEmpty
())
{
error
=
QString
::
fromLocal8Bit
(
"No New Delivery Order Need To Pull."
);
result
=
true
;
}
else
{
error
.
clear
();
QString
orderId
=
m_simValidOrdersList
.
first
();
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:]FMOMS已登录,且有订单待拉取:orderId:%1--->>>>>]"
).
arg
(
orderId
);
OrderObject
*
orderObject
=
m_FmOrdersMap
.
value
(
orderId
);
if
(
!
orderObject
){
error
=
QString
::
fromLocal8Bit
(
"Delivery Order had been clear by _CrondClearExpireOrder."
);
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeFirst
();
m_OrderEntryMutex
.
unlock
();
result
=
false
;
}
if
(
MAXPUTTIMES
==
orderObject
->
pushOrderTimes
)
{
orderObject
->
pushOrderTimes
=
0
;
}
else
{
orderObject
->
pushOrderTimes
=
orderObject
->
pushOrderTimes
+
1
;
}
if
(
MAXPUTTIMES
==
orderObject
->
orsPushOrderTimes
)
{
orderObject
->
orsPushOrderTimes
=
0
;
}
else
{
orderObject
->
orsPushOrderTimes
=
orderObject
->
orsPushOrderTimes
+
1
;
}
//防止POS出现多次录单:退货单(销售单应该不会);
bool
retGetDbOrderAllFlag
=
SimProcOrderDB
::
getInstance
().
getDbOrderAllFlag
(
orderObject
->
id
,
orderObject
->
dataBaseIsOrderExistInt
,
orderObject
->
dataBaseIsPushInt
,
orderObject
->
dataBaseIsCancleInt
,
orderObject
->
dataBaseIsORSPushInt
,
orderObject
->
dataBaseIsORSCancleInt
,
orderObject
->
dataBasePosOrderCheckNo
);
if
(
!
retGetDbOrderAllFlag
){
QLOG_ERROR
()
<<
QString
(
"[<<<<---FmTakeout _ResponseSimReqFristOrderData:orderObject->id:%1 SimProcOrderDB::getInstance().getDbOrderAllFlag Failed --->>>>]"
).
arg
(
orderObject
->
id
);
}
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _ResponseSimReqFristOrderData: orderObject->id:%1 ,dataBaseIsOrderExistInt:%2 ,dataBaseIsPushInt:%3 ,dataBaseIsCancleInt:%4 ,"
"dataBaseIsORSPushInt:%5 ,dataBaseIsORSCancleInt:%6 ,dataBasePosOrderCheckNo:%7--->>>>]"
)
.
arg
(
orderObject
->
id
).
arg
(
orderObject
->
dataBaseIsOrderExistInt
).
arg
(
orderObject
->
dataBaseIsPushInt
).
arg
(
orderObject
->
dataBaseIsCancleInt
)
.
arg
(
orderObject
->
dataBaseIsORSPushInt
).
arg
(
orderObject
->
dataBaseIsORSCancleInt
).
arg
(
orderObject
->
dataBasePosOrderCheckNo
);
bool
bIsPushOrder
=
orderObject
->
dataBaseIsPushInt
;
bool
bIsRefundOrder
=
orderObject
->
dataBaseIsCancleInt
;
bool
bIsORSPushOrder
=
orderObject
->
dataBaseIsORSPushInt
;
bool
bIsORSCancleOrder
=
orderObject
->
dataBaseIsORSCancleInt
;
//避免:销售单,退货单 两个方向都已经入机完成订单重复入机【&& !orderObject->appointmentDayFlag || && orderObject->appointmentDayFlag】;
// if(bIsPushOrder && bIsRefundOrder && !orderObject->appointmentDayFlag || bIsORSPushOrder && bIsORSCancleOrder && orderObject->appointmentDayFlag )
if
(
bIsPushOrder
&&
bIsRefundOrder
||
bIsORSPushOrder
&&
bIsORSCancleOrder
||
!
retGetDbOrderAllFlag
)
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:] bIsPushOrder: ;bIsRefundOrder: ;--->>>>>]"
)
<<
bIsPushOrder
<<
bIsRefundOrder
;
//error = QString::fromLocal8Bit("该订单已经被POS系统录入完成");
error
=
QString
::
fromLocal8Bit
(
"This Delivery Order Have Been Recorded In POS System Successfully"
);
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
m_OrderEntryMutex
.
unlock
();
return
true
;
}
//录单时才触发隐藏 主窗口 + 锁定悬浮框;
if
(
!
m_bFloatFromLockSt
){
m_bFloatFromLockSt
=
true
;
//更新悬浮框的锁定状态=true;
}
emit
doHideMainShowFloatFrom
();
emit
doLockFloatForm
();
QJsonObject
rObj
,
cObj
;
if
(
orderObject
->
pushOrderType
==
1
||
orderObject
->
orsPushOrderType
==
1
)
{
rObj
.
insert
(
"fm_cmd"
,
"put_order"
);
}
else
{
rObj
.
insert
(
"fm_cmd"
,
"refund_order"
);
}
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
QString
::
fromLocal8Bit
(
"FmTakeout"
));
int
tempOrderType
,
tempOrderPayType
,
tempSbkAppPayType
=
0
;
QString
tempSbkAppPayValue
=
"0"
;
// 转换成星巴克规定的订单类型;
//星巴克的订单类型:1:新订单; 2:预订单; 3:客诉单; 4:MOP自测订单; 5:预约订单
if
(
3
==
orderObject
->
getOrderType
())
{
tempOrderType
=
12
;
tempOrderPayType
=
21
;
}
//MOP自测订单 在下方处理;星巴克-预约订单:在下方处理;
// OMS提供的数据://订单渠道: 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
// MOD渠道对应的业务逻辑;
else
if
(
"MOD"
==
orderObject
->
channel
)
{
tempOrderType
=
9
;
tempOrderPayType
=
84
;
//星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if
(
4
==
orderObject
->
payWay
){
tempSbkAppPayType
=
14
;
//svc卡支付时传交易流水号协定:
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
||
OrderObject
::
SimExceptRefund
==
orderObject
->
orderStatus
){
tempSbkAppPayValue
=
orderObject
->
refundFmId
.
isEmpty
()
?
QString
(
"0"
)
:
orderObject
->
refundFmId
;
}
else
{
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
//防止后期 MOD 使用 券 + 星星折扣 +(券&星星折扣)用户不用实际支付任何金额,需要采用0元支付方式结单;
//插件传给Simphony扩展程序时支付方式=1;在Simphony扩展程序将其转换成 84:MOD + 非码订单:orderId 入机;
}
else
if
(
5
==
orderObject
->
payWay
||
7
==
orderObject
->
payWay
){
tempOrderPayType
=
1
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
}
}
// MOP渠道对应的业务逻辑;
else
if
(
"MOP"
==
orderObject
->
channel
){
tempOrderType
=
18
;
tempOrderPayType
=
84
;
//星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if
(
4
==
orderObject
->
payWay
){
tempSbkAppPayType
=
14
;
//svc卡支付时传交易流水号协定:
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
||
OrderObject
::
SimExceptRefund
==
orderObject
->
orderStatus
){
tempSbkAppPayValue
=
orderObject
->
refundFmId
.
isEmpty
()
?
QString
(
"0"
)
:
orderObject
->
refundFmId
;
}
else
{
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
//针对使用 券 + 星星折扣 +(券&星星折扣)用户不用实际支付任何金额,需要采用0元现金支付方式结单;
//插件传给Simphony扩展程序时支付方式=1;在Simphony扩展程序将其转换成 84:MOD + 非码订单:orderId 入机;
}
else
if
(
5
==
orderObject
->
payWay
||
7
==
orderObject
->
payWay
){
tempOrderPayType
=
1
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
}
//MOP最后判断 是否是 MOP自测订单;
if
(
4
==
orderObject
->
getOrderType
())
{
tempOrderType
=
20
;
tempOrderPayType
=
1
;
}
}
else
if
(
"BAIDU"
==
orderObject
->
channel
){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
tempSbkAppPayValue
=
orderObject
->
id
;
//新增智能自提柜渠道:类似MOP;
}
else
if
(
"STC"
==
orderObject
->
channel
){
tempOrderType
=
25
;
tempOrderPayType
=
84
;
//星巴克 自提柜 端支付方式(类似星巴克App): 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if
(
4
==
orderObject
->
payWay
){
tempSbkAppPayType
=
14
;
//svc卡支付时传交易流水号协定:
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
||
OrderObject
::
SimExceptRefund
==
orderObject
->
orderStatus
){
tempSbkAppPayValue
=
orderObject
->
refundFmId
.
isEmpty
()
?
QString
(
"0"
)
:
orderObject
->
refundFmId
;
}
else
{
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
//防止后期 MOD 使用 券 + 星星折扣 +(券&星星折扣)用户不用实际支付任何金额,需要采用0元现金支付方式结单;
//插件传给Simphony扩展程序时支付方式=1;在Simphony扩展程序将其转换成 84:MOD + 非码订单:orderId 入机;
}
else
if
(
5
==
orderObject
->
payWay
||
7
==
orderObject
->
payWay
){
tempOrderPayType
=
1
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
}
}
else
if
(
"ELE"
==
orderObject
->
channel
){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
tempSbkAppPayValue
=
orderObject
->
id
;
//星巴克-预约订单: 预约实物入机: 销售单订单类型:21; 退货单订单类型: 22;
//为了配合服务端调整:兼容 预约退货 不区分 预约配送费 与 预约实物;必须重点注意退货时支付方式赋值;
}
else
if
(
"ORS"
==
orderObject
->
channel
&&
orderObject
->
appointmentDayFlag
){
tempOrderType
=
21
;
//端支付方式: 15纸质卷 16电子卷;需要循环商品列表中的券支付方式;
tempOrderPayType
=
15
;
//默认赋值为 纸质券支付;
//星巴克-预约订单: 配送费入机: 销售单订单类型:23; 退货单订单类型: 24;
}
else
if
(
"ORS"
==
orderObject
->
channel
&&
!
orderObject
->
appointmentDayFlag
){
tempOrderType
=
23
;
tempOrderPayType
=
84
;
//预约系统 支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if
(
4
==
orderObject
->
payWay
){
tempSbkAppPayType
=
14
;
//svc卡支付时传交易流水号协定:
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
||
OrderObject
::
SimExceptRefund
==
orderObject
->
orderStatus
){
tempSbkAppPayValue
=
orderObject
->
refundFmId
.
isEmpty
()
?
QString
(
"0"
)
:
orderObject
->
refundFmId
;
}
else
{
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
//针对使用 券 + 星星折扣 +(券&星星折扣)用户不用实际支付任何金额,需要采用0元现金支付方式结单;
//插件传给Simphony扩展程序时支付方式=1;在Simphony扩展程序将其转换成 84:MOD + 非码订单:orderId 入机;
}
else
if
(
5
==
orderObject
->
payWay
||
7
==
orderObject
->
payWay
){
tempOrderPayType
=
1
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
}
}
else
if
(
"HM"
==
orderObject
->
channel
){
tempOrderType
=
14
;
tempOrderPayType
=
85
;
tempSbkAppPayValue
=
orderObject
->
id
;
}
else
{
tempOrderType
=
11
;
tempOrderPayType
=
83
;
tempSbkAppPayValue
=
orderObject
->
id
;
}
//如果是退单,更新订单的来源类型; 需要考虑 订单二次入机方式;
//存在两种Case:正常退货单 && 【非预约日期(录配送费判断)/默认值是初始化0】; || 预约实物退货单 【&&预约实物送达日期 不支持此case】 || 预约退单:只能退配送费;
// 预约如果出现退单,也只能退配送费和打包费[不存在退预约实物(券)]
if
(
orderObject
->
pushOrderType
==
0
)
{
if
(
"ELE"
==
orderObject
->
channel
)
{
tempOrderType
=
16
;
//STC: SmartCase 智能自提不存在退货入机可能; + MOD客诉单不存在退货入机可能;
}
else
if
(
"STC"
==
orderObject
->
channel
||
3
==
orderObject
->
getOrderType
()
)
{
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
m_OrderEntryMutex
.
unlock
();
m_bFloatFromLockSt
=
false
;
//解锁悬浮框的锁定状态=false;
emit
doUnLockFloatFrom
();
//无需显示mainFrom主界面;//但必须解锁之前锁定的悬浮框;
return
true
;
}
else
if
(
"MOD"
==
orderObject
->
channel
)
{
tempOrderType
=
17
;
}
else
if
(
"MOP"
==
orderObject
->
channel
)
{
tempOrderType
=
19
;
//预约->配送费入机: 销售单订单类型:23; 退货单订单类型: 24; //预约->实物入机: 销售单订单类型:21;退货单订单类型:22;【此case不存在】
}
else
if
(
"ORS"
==
orderObject
->
channel
)
{
tempOrderType
=
24
;
tempOrderPayType
=
84
;
//预约系统 支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if
(
4
==
orderObject
->
payWay
){
tempSbkAppPayType
=
14
;
//svc卡支付时传交易流水号协定:
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
||
OrderObject
::
SimExceptRefund
==
orderObject
->
orderStatus
){
tempSbkAppPayValue
=
orderObject
->
refundFmId
.
isEmpty
()
?
QString
(
"0"
)
:
orderObject
->
refundFmId
;
}
else
{
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
);
//针对使用 券 + 星星折扣 +(券&星星折扣)用户不用实际支付任何金额,需要采用0元现金支付方式结单;
//插件传给Simphony扩展程序时支付方式=1;在Simphony扩展程序将其转换成 84:MOD + 非码订单:orderId 入机;
}
else
if
(
5
==
orderObject
->
payWay
||
7
==
orderObject
->
payWay
){
tempOrderPayType
=
1
;
}
}
else
{
tempOrderType
=
13
;
// 退货订单类型:13 已经过期; 后期还需要考虑MOP的正向订单类型/退货订单类型;
}
}
//需要重点注意订单对象的数据初始化问题;
cObj
.
insert
(
"orderOriginType"
,
tempOrderType
);
cObj
.
insert
(
"orderPayType"
,
tempOrderPayType
);
cObj
.
insert
(
"sbkAppPayType"
,
tempSbkAppPayType
);
cObj
.
insert
(
"sbkAppPayValue"
,
tempSbkAppPayValue
);
cObj
.
insert
(
"orderTransFlowNo"
,
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"0"
)
);
//第三方交易流水号
cObj
.
insert
(
"packFree"
,
orderObject
->
packageFee
>
0
?
orderObject
->
packageFee
:
0
);
cObj
.
insert
(
"packDiscount"
,
orderObject
->
packDiscount
>
0
?
orderObject
->
packDiscount
:
0
);
cObj
.
insert
(
"deliveryFree"
,
orderObject
->
deliveryPrice
>
0
?
orderObject
->
deliveryPrice
:
0
);
cObj
.
insert
(
"deliveryDiscount"
,
orderObject
->
deliveryDiscount
>
0
?
orderObject
->
deliveryDiscount
:
0
);
cObj
.
insert
(
"orderDiscount"
,
orderObject
->
orderDiscount
);
cObj
.
insert
(
"waybillId"
,
(
orderObject
->
waybillId
).
length
()
?
orderObject
->
waybillId
:
QString
(
"0"
)
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
cObj
.
insert
(
"order_status"
,
orderObject
->
orderStatus
);
//订单的状态
cObj
.
insert
(
"pay_ebcode"
,
orderObject
->
channel
);
cObj
.
insert
(
"order_index"
,
orderObject
->
orderIndex
);
cObj
.
insert
(
"customer_name"
,
orderObject
->
customerName
);
cObj
.
insert
(
"customer_phone"
,
orderObject
->
phone
);
cObj
.
insert
(
"customer_address"
,
orderObject
->
addressDetail
);
cObj
.
insert
(
"delivery_time"
,
orderObject
->
deliveryTime
);
cObj
.
insert
(
"create_time"
,
orderObject
->
createTime
);
cObj
.
insert
(
"remark"
,
orderObject
->
memo
);
cObj
.
insert
(
"has_invoice"
,
orderObject
->
needInvoice
);
cObj
.
insert
(
"invoice_title"
,
orderObject
->
invoiceTitle
);
cObj
.
insert
(
"pay_ebcode_str"
,
orderObject
->
channel
);
//TODO
cObj
.
insert
(
"products_fee"
,
orderObject
->
productPrice
);
// 商品金额
cObj
.
insert
(
"service_fee"
,
/*orderObject->service_fee*/
0
);
// 平台佣金
cObj
.
insert
(
"discount_fee"
,
/*orderObject->disPlateformFee*/
0
);
//平台优惠总额
//只有这个字段(discount_fee)传个Simphony(代表平台优惠给POS系统),对应的字段是dis_shop_fee :平台优惠总额 只能通过 dis_shop_fee 字段传递给 POS;
cObj
.
insert
(
"dis_shop_fee"
,
abs
(
orderObject
->
disPlateformFee
));
// 商家承担优惠金额(实际传递的是: 平台优惠金额 orderObject->disPlateformFee);
//只有星巴克App 才挂MSR的虚拟卡号;目前饿了么也要挂MSR的虚拟卡号;卡号是空 则 MSR_NO='-1' 卡号不入机;
QString
temp_MSR_NO
;
temp_MSR_NO
=
(
orderObject
->
msr_no
.
length
()
==
0
)
?
orderObject
->
customerId
:
orderObject
->
msr_no
;
temp_MSR_NO
=
(
temp_MSR_NO
.
length
()
==
0
)
?
QString
::
fromLocal8Bit
(
"-1"
)
:
temp_MSR_NO
;
cObj
.
insert
(
"msr_card_no"
,
temp_MSR_NO
);
// MSR卡号
cObj
.
insert
(
"dis_platform_fee"
,
/*orderObject->dis_platform_fee*/
0
);
// 平台承担优惠金额
cObj
.
insert
(
"shop_fee"
,
/*orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee*/
0
);
// 商户能够拿到的钱(去除平台佣金)
cObj
.
insert
(
"invoice_amount"
,
orderObject
->
totalPrice
);
if
(
"ELE"
==
orderObject
->
channel
||
"STC"
==
orderObject
->
channel
||
"HM"
==
orderObject
->
channel
){
cObj
.
insert
(
"thirdPartyOrderId"
,
orderObject
->
thirdPartyOrderId
);
}
else
{
cObj
.
insert
(
"thirdPartyOrderId"
,
"0"
);
}
cObj
.
insert
(
"paid_trans_id"
,
orderObject
->
id
);
//cObj.insert("fm_id",orderObject->fm_id);
/************************************************************************************/
int
hasCashbox
=
0
,
hasRefundAuth
=
0
;
hasCashbox
=
GetCaboxAReAuth
::
getInstance
().
getUserHasCashBox
(
m_cashierId
);
hasRefundAuth
=
GetCaboxAReAuth
::
getInstance
().
getUserRefundAuth
(
m_cashierId
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:] 获取当前用户是否绑定钱箱:hasCashbox:%1; 当前用户是否拥有退货权限:hasRefundAuth:%2:--->>>>>]"
).
arg
(
hasCashbox
).
arg
(
hasRefundAuth
);
cObj
.
insert
(
"hasCashbox"
,
hasCashbox
);
cObj
.
insert
(
"hasRefundAuth"
,
hasRefundAuth
);
/************************************************************************************/
rObj
.
insert
(
"pay_id"
,
cObj
);
QJsonArray
products
;
QJsonArray
coupons
;
QJsonArray
payments
;
/**********************************************************************************/
// 循环订单的最外层商品列表;
/**********************************************************************************/
for
(
int
i
=
0
;
i
<
orderObject
->
proList
.
count
();
i
++
)
{
dishesObject
*
dish
=
orderObject
->
proList
.
at
(
i
);
// promotion优惠计数器变量;
int
promotionTempNo
=
0
;
// starPromotion 星星优惠计数器变量;
int
starPromotionTempNo
=
0
;
//【①默认属性:code中含有Default字符串(不区分大小写)+ ②code中以非数字开头 + ③商品数量是0】 直接跳过;
QString
tempCodeLeftHead
=
dish
->
code
.
left
(
1
);
if
(
dish
->
code
.
contains
(
"Default"
,
Qt
::
CaseInsensitive
)
||
(
tempCodeLeftHead
<
QString
(
'0'
)
||
tempCodeLeftHead
>
QString
(
'9'
))
||
!
dish
->
qty
)
{
if
(
tempCodeLeftHead
<
QString
(
'0'
)
||
tempCodeLeftHead
>
QString
(
'9'
)
)
{
error
=
QString
::
fromLocal8Bit
(
"This Order Has PosKey Is Combo Error"
);
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
m_OrderEntryMutex
.
unlock
();
m_bFloatFromLockSt
=
false
;
//解锁悬浮框的锁定标志;
emit
doUnLockFloatFrom
();
//解锁悬浮框锁定
return
true
;
}
continue
;
}
/**********************************************************************************/
//针对同一商品,多份数量需要将其,拆分成单份;[如果不拆分,将导致多份商品中配料价格出现 漏钱:POS中的账将会出现少金额]
/**********************************************************************************/
for
(
int
temp_qty
=
0
;
temp_qty
<
dish
->
qty
;
temp_qty
++
)
{
//声明临时栈对象: 单个主商品 + 子商品列表 + 子商品;
QJsonObject
tObj
;
QJsonArray
subProduct
;
QJsonObject
sObj
;
tObj
.
insert
(
"consume_num"
,
1
);
tObj
.
insert
(
"pid"
,
dish
->
code
);
tObj
.
insert
(
"original_price"
,
dish
->
price
);
/**********************************************************************************/
// 处理原始的配料信息;
/**********************************************************************************/
if
(
!
dish
->
sub_products
.
isEmpty
())
{
for
(
int
j
=
0
;
j
<
dish
->
sub_products
.
count
();
j
++
)
{
dishesObject
*
subDish
=
dish
->
sub_products
.
at
(
j
);
//默认属性直接跳过;
if
(
!
subDish
->
code
.
isEmpty
()
&&
!
subDish
->
code
.
contains
(
"Default"
,
Qt
::
CaseInsensitive
)
&&
subDish
->
qty
)
{
sObj
.
insert
(
"consume_num"
,
subDish
->
qty
);
sObj
.
insert
(
"pid"
,
subDish
->
code
);
sObj
.
insert
(
"original_price"
,
subDish
->
price
);
subProduct
.
push_back
(
sObj
);
}
}
}
/**********************************************************************************/
// 处理商品的属性(热 -> 特别热)的额外配料信息;
/**********************************************************************************/
if
(
dish
->
options
.
length
()){
sObj
.
insert
(
"consume_num"
,
1
);
sObj
.
insert
(
"pid"
,
dish
->
options
);
sObj
.
insert
(
"original_price"
,
0
);
subProduct
.
push_back
(
sObj
);
}
/**********************************************************************************/
// 处理商品的优惠金额信息;针对单个商品多数量情况:需要将这部分优惠折扣金额放在前面 拆分数量的商品上[多少个折扣券,放在前几个商品上,一个上面下对应一个折扣项];
// 单项商品的折扣数量最多不超过55个(60个会导致POS死机);当个优惠价格不超2000元;
/**********************************************************************************/
int
promotionSum
=
(
dish
->
promotionQty
>
0
&&
dish
->
promotionQty
<
55
)
?
dish
->
promotionQty
:
0
;
int
promotionPrice
=
(
dish
->
promotionPrice
>
1
&&
dish
->
promotionPrice
<
200000
)
?
dish
->
promotionPrice
:
0
;
if
(
promotionTempNo
<
promotionSum
){
if
(
promotionSum
&&
promotionPrice
&&
dish
->
promotionSku
.
length
()){
sObj
.
insert
(
"consume_num"
,
1
);
sObj
.
insert
(
"pid"
,
dish
->
promotionSku
);
sObj
.
insert
(
"original_price"
,
promotionPrice
);
subProduct
.
push_back
(
sObj
);
promotionTempNo
++
;
}
}
/**********************************************************************************/
// 新增支持星星优惠;
int
starPromotionSum
=
(
dish
->
starPromotionQty
>
0
&&
dish
->
starPromotionQty
<
55
)
?
dish
->
starPromotionQty
:
0
;
int
starPromotionPrice
=
(
dish
->
starPromotionPrice
>
1
&&
dish
->
starPromotionPrice
<
200000
)
?
dish
->
starPromotionPrice
:
0
;
if
(
starPromotionTempNo
<
starPromotionSum
){
if
(
starPromotionSum
&&
starPromotionPrice
&&
dish
->
starPromotionSku
.
length
()){
sObj
.
insert
(
"consume_num"
,
1
);
sObj
.
insert
(
"pid"
,
dish
->
starPromotionSku
);
sObj
.
insert
(
"original_price"
,
starPromotionPrice
);
subProduct
.
push_back
(
sObj
);
starPromotionTempNo
++
;
}
}
/**********************************************************************************/
// 汇总插入子商品[sub_products];
if
(
subProduct
.
size
()){
tObj
.
insert
(
"sub_products"
,
subProduct
);
}
// end 整合子商品结束;
//products.insert(i, tObj); //防止default*的主商品码出现,上面代码出现continue;导致 i出现跳数,插入时出现崩溃;
products
.
push_back
(
tObj
);
}
}
//**********************************整合预约券信息-begin*****************************************//
// 循环订单的 券 列表 [进入循环条件: 存在券列表; 且是预约实物入机(预约实物退货:业务上不支持此case)];
/**********************************************************************************/
for
(
int
i
=
0
;
i
<
orderObject
->
coupList
.
count
()
&&
(
21
==
tempOrderType
)
;
i
++
)
{
CouponsObject
*
coupon
=
orderObject
->
coupList
.
at
(
i
);
QJsonObject
tCoupObj
;
/**********************************************************/
// 先整合非门店售券的所有三方券列表数据;
/**********************************************************/
//为了方便后续追踪需要录入一个MOD(84)0元支付方式;
if
(
0
==
i
){
QJsonObject
tStarbusAppFmIdObj
;;
tStarbusAppFmIdObj
.
insert
(
"couponSeq"
,
QString
::
number
(
0
)
)
;
//券的序号
tStarbusAppFmIdObj
.
insert
(
"couponCode"
,
orderObject
->
id
.
right
(
24
));
//存放非码订单号(防止存不下,自动截取后24位): couponCode目前最长19位长度;DLL设置24长度;
tStarbusAppFmIdObj
.
insert
(
"couponType"
,
QString
(
"0"
));
tStarbusAppFmIdObj
.
insert
(
"payMethodId"
,
QString
(
"84"
));
//订单支付方式:MOD(84) 0元支付方式 ;
tStarbusAppFmIdObj
.
insert
(
"consumeFactAmount"
,
0
);
coupons
.
push_back
(
tStarbusAppFmIdObj
);
}
//先跳过门店售券,现金支付:最后在补录一个现金支付方式;
if
(
!
coupon
->
storeChannel
){
tCoupObj
.
insert
(
"couponSeq"
,
QString
::
number
(
i
+
1
)
)
;
//券的序号
tCoupObj
.
insert
(
"couponCode"
,
coupon
->
code
);
//准确的券号码;例: 7019380051100056143 目前最长 19位长度;
tCoupObj
.
insert
(
"couponType"
,
coupon
->
couponType
);
tCoupObj
.
insert
(
"payMethodId"
,
coupon
->
payMethodId
);
//券支付方式: 15纸质卷 16电子卷 ;
tCoupObj
.
insert
(
"consumeFactAmount"
,
coupon
->
consumeFactAmount
/
100
);
//券实际支付金额 (单位:元);
coupons
.
push_back
(
tCoupObj
);
}
/**********************************************************/
// 整合所有券核销的商品+券折扣 列表数据;
/**********************************************************/
for
(
int
tempSkuSeq
=
0
;
tempSkuSeq
<
coupon
->
skus
.
size
();
tempSkuSeq
++
)
{
//声明临时栈对象: 单个券关联商品;
QJsonObject
tCoupProductObj
;
tCoupProductObj
.
insert
(
"couponSeq"
,
QString
::
number
(
i
+
1
)
);
tCoupProductObj
.
insert
(
"consume_num"
,
1
);
tCoupProductObj
.
insert
(
"pid"
,
coupon
->
skus
[
tempSkuSeq
]
->
code
);
//如果单品是券menuItem: 手动将商品单价赋值为 1元 (100分);
//由于预约蛋糕实物考虑,需要考虑 门店券 蛋糕的Combo头开始会限定后续蛋糕子项的价格后面的价格是否会都是0;
if
(
coupon
->
skus
[
tempSkuSeq
]
->
isCoupon
)
{
tCoupProductObj
.
insert
(
"original_price"
,
100
);
}
else
{
tCoupProductObj
.
insert
(
"original_price"
,
0
);
}
products
.
push_back
(
tCoupProductObj
);
//如果单品是券menuItem: 需要将券折扣挂在此券单品名下;
if
(
coupon
->
skus
[
tempSkuSeq
]
->
isCoupon
&&
coupon
->
discount
.
length
()){
//声明临时栈对象: 券关联折扣; 券折扣:默认不需要传券序号,得赋值给空;
QJsonObject
tCoupProductDiscObj
;
tCoupProductDiscObj
.
insert
(
"consume_num"
,
1
);
tCoupProductDiscObj
.
insert
(
"pid"
,
coupon
->
discount
);
tCoupProductDiscObj
.
insert
(
"original_price"
,
coupon
->
consumeDiscountAmount
);
products
.
push_back
(
tCoupProductDiscObj
);
}
}
/*由于UPP返回的menu 是券combo,无法通过Simphony程序方式将combo正常录入POS;*/
//针对蛋糕券:上面没有一个商品是 券单品,从而也就没有将券折扣录入;需要补录;
if
(
coupon
->
discount
.
length
()
&&
(
QString
(
"1"
)
==
coupon
->
couponType
)
)
{
//声明临时栈对象: 券关联折扣;
QJsonObject
tCakeCoupProductDiscObj
;
//券折扣:默认不需要传券号,得赋值给空;
tCakeCoupProductDiscObj
.
insert
(
"consume_num"
,
1
);
tCakeCoupProductDiscObj
.
insert
(
"pid"
,
coupon
->
discount
);
tCakeCoupProductDiscObj
.
insert
(
"original_price"
,
coupon
->
consumeDiscountAmount
);
products
.
push_back
(
tCakeCoupProductDiscObj
);
}
//针对蛋糕券:在商品列表尾部需要新增 MenuItem:9107829 【测试蛋糕入机后,确认不需要在添加这个sku:“----” 】;
}
//开头已经新增一条【MOD:84 0元支付方式外】
//**********************************整合预约券信息-end*****************************************//
//**********************************整合多支付方式信息-begin*****************************************//
// 循环订单的 多支付方式列表 [进入循环条件: 存在多支付方式列表 && 不是预约实物入机];
/**********************************************************************************/
for
(
int
i
=
0
;
i
<
orderObject
->
paymentList
.
count
()
&&
(
21
!=
tempOrderType
)
;
i
++
)
{
PaymentObject
*
payment
=
orderObject
->
paymentList
.
at
(
i
);
QJsonObject
tPaymentObj
;
//如果是ELEME的istore 订单,需要额外录入一个标志IStore订单: 8==orderObject->payWay
//如果是App银联支付的多笔支付方式;也必须额外录入一条84的支付方式;
if
(
0
==
i
){
/**** orderObject->payWay: 8 ->IStore渠道订单(87:istore 0元支付方式); 3/9 ->App银联支付标志(84:MOD 0元支付方式) ****/
if
(
8
==
orderObject
->
payWay
)
{
QJsonObject
tIStoreOrderPayFlagObj
;
tIStoreOrderPayFlagObj
.
insert
(
"couponSeq"
,
QString
::
number
(
0
)
)
;
//支付方式的序号
tIStoreOrderPayFlagObj
.
insert
(
"couponType"
,
QString
(
"0"
));
//存放eleme订单号(运单号)(防止存不下,自动截取后24位): couponCode目前最长19位长度;DLL设置24长度;
tIStoreOrderPayFlagObj
.
insert
(
"couponCode"
,
orderObject
->
thirdPartyOrderId
.
right
(
24
));
tIStoreOrderPayFlagObj
.
insert
(
"payMethodId"
,
QString
(
"87"
));
tIStoreOrderPayFlagObj
.
insert
(
"consumeFactAmount"
,
0
);
payments
.
push_back
(
tIStoreOrderPayFlagObj
);
}
else
if
(
9
==
orderObject
->
payWay
||
3
==
orderObject
->
payWay
)
{
QJsonObject
tStarbAppOrderPayFlagObj
;
tStarbAppOrderPayFlagObj
.
insert
(
"couponSeq"
,
QString
::
number
(
0
)
)
;
//支付方式的序号
tStarbAppOrderPayFlagObj
.
insert
(
"couponType"
,
QString
(
"0"
));
//存放非码订单号(防止存不下,自动截取后24位): couponCode目前最长19位长度;DLL设置24长度;
tStarbAppOrderPayFlagObj
.
insert
(
"couponCode"
,
orderObject
->
id
.
right
(
24
));
tStarbAppOrderPayFlagObj
.
insert
(
"payMethodId"
,
QString
(
"84"
));
tStarbAppOrderPayFlagObj
.
insert
(
"consumeFactAmount"
,
0
);
payments
.
push_back
(
tStarbAppOrderPayFlagObj
);
}
}
tPaymentObj
.
insert
(
"couponSeq"
,
QString
::
number
(
i
+
1
)
)
;
//券的序号
tPaymentObj
.
insert
(
"couponCode"
,
payment
->
paymentFmId
);
//准确的券号码;例: 7019380051100056143 目前最长 19位长度;
tPaymentObj
.
insert
(
"couponType"
,
QString
(
"0"
));
tPaymentObj
.
insert
(
"payMethodId"
,
payment
->
payMethodId
);
//券支付方式: 15纸质卷 16电子卷 ;
tPaymentObj
.
insert
(
"consumeFactAmount"
,
payment
->
paymentMoney
/
100
);
//券实际支付金额 (单位:元);
payments
.
push_back
(
tPaymentObj
);
}
//**********************************整合多支付方式信息-end*****************************************//
//向商品列表中 添加 是否打包的SKU;
if
(
orderObject
->
isPackage
&&
orderObject
->
packageSku
.
length
())
{
QJsonObject
tPackageObj
;
tPackageObj
.
insert
(
"consume_num"
,
1
);
tPackageObj
.
insert
(
"pid"
,
orderObject
->
packageSku
);
tPackageObj
.
insert
(
"original_price"
,
0
);
products
.
push_back
(
tPackageObj
);
}
/* 需要将 到店做 SKU 分配的每个主商品的配料的最尾部:此部分逻辑放到 服务端处理;向商品列表中 添加 是否到店做SKU;*/
//**********************************整合包装费-begin*****************************************//
//向商品列表尾部 添加 包装费项 + 包装费折扣项[预约实物不能录入配送费 && 预约配送费需要入机];
// 包装费 >0 且 预约实物包装费 + MOP 也不能入机;
if
(
orderObject
->
packageFee
>
0
&&
18
!=
tempOrderType
&&
19
!=
tempOrderType
&&
20
!=
tempOrderType
&&
21
!=
tempOrderType
&&
22
!=
tempOrderType
&&
25
!=
tempOrderType
)
{
QJsonObject
tPackageFeeObj
;
tPackageFeeObj
.
insert
(
"consume_num"
,
orderObject
->
packageFee
/
100
);
tPackageFeeObj
.
insert
(
"pid"
,
"6000201"
);
//包装费SKU;
tPackageFeeObj
.
insert
(
"original_price"
,
100
);
products
.
push_back
(
tPackageFeeObj
);
//星巴克APP/预约系统的支付方式是84; ELE的支付方式是83; [MOP不应该存在打包费且不存在包装费折扣]
if
(
orderObject
->
packDiscount
>
0
&&
84
==
tempOrderPayType
){
QJsonObject
tPackDiscountObj
;
tPackDiscountObj
.
insert
(
"consume_num"
,
1
);
tPackDiscountObj
.
insert
(
"pid"
,
"285"
);
//星巴克APP万能折扣码;
tPackDiscountObj
.
insert
(
"original_price"
,
orderObject
->
packDiscount
);
products
.
push_back
(
tPackDiscountObj
);
}
else
if
(
orderObject
->
packDiscount
>
0
&&
83
==
tempOrderPayType
)
{
QJsonObject
tPackDiscountObj
;
tPackDiscountObj
.
insert
(
"consume_num"
,
1
);
tPackDiscountObj
.
insert
(
"pid"
,
"10400"
);
//ELEME万能折扣码;
tPackDiscountObj
.
insert
(
"original_price"
,
orderObject
->
packDiscount
);
products
.
push_back
(
tPackDiscountObj
);
}
//打包费是0元时(预约实物 + MOP 包装费不能入机):需录入打包费[非-MOP(销售退货),非-MOP测试];
}
else
if
(
0
==
orderObject
->
packageFee
&&
18
!=
tempOrderType
&&
19
!=
tempOrderType
&&
20
!=
tempOrderType
&&
21
!=
tempOrderType
&&
22
!=
tempOrderType
&&
25
!=
tempOrderType
)
{
QJsonObject
tPackageFeeObj
;
tPackageFeeObj
.
insert
(
"consume_num"
,
1
);
tPackageFeeObj
.
insert
(
"pid"
,
"6000201"
);
//包装费SKU;
tPackageFeeObj
.
insert
(
"original_price"
,
0
);
products
.
push_back
(
tPackageFeeObj
);
}
//**********************************整合包装费-end*****************************************//
//**********************************整合配送费-begin*****************************************//
//向商品列表尾部 添加 配送费项 + 配送费折扣项 [预约实物不能录入配送费 && 预约配送费需要入机];
if
(
orderObject
->
deliveryPrice
>
0
&&
18
!=
tempOrderType
&&
19
!=
tempOrderType
&&
20
!=
tempOrderType
&&
21
!=
tempOrderType
&&
22
!=
tempOrderType
&&
25
!=
tempOrderType
)
{
QJsonObject
tDeliveryFeeObj
;
tDeliveryFeeObj
.
insert
(
"consume_num"
,
orderObject
->
deliveryPrice
/
100
);
tDeliveryFeeObj
.
insert
(
"pid"
,
"6000101"
);
//配送费SKU;
tDeliveryFeeObj
.
insert
(
"original_price"
,
100
);
products
.
push_back
(
tDeliveryFeeObj
);
//星巴克APP/预约系统的支付方式是84; ELE的支付方式是83; [MOP不应该存在配送费且不存在配送费折扣]
if
(
orderObject
->
deliveryDiscount
>
0
&&
84
==
tempOrderPayType
){
QJsonObject
tDeliveryDiscountObj
;
tDeliveryDiscountObj
.
insert
(
"consume_num"
,
1
);
tDeliveryDiscountObj
.
insert
(
"pid"
,
"285"
);
//星巴克APP万能折扣码;
tDeliveryDiscountObj
.
insert
(
"original_price"
,
orderObject
->
deliveryDiscount
);
products
.
push_back
(
tDeliveryDiscountObj
);
}
else
if
(
orderObject
->
deliveryDiscount
>
0
&&
83
==
tempOrderPayType
)
{
QJsonObject
tDeliveryDiscountObj
;
tDeliveryDiscountObj
.
insert
(
"consume_num"
,
1
);
tDeliveryDiscountObj
.
insert
(
"pid"
,
"10400"
);
//ELEME万能折扣码;
tDeliveryDiscountObj
.
insert
(
"original_price"
,
orderObject
->
deliveryDiscount
);
products
.
push_back
(
tDeliveryDiscountObj
);
}
//配送费是0元时:需录入配送费[非-MOP(销售退货),非-MOP测试; 预约实物不能录入配送费 && 预约配送费需要入机];
}
else
if
(
0
==
orderObject
->
deliveryPrice
&&
18
!=
tempOrderType
&&
19
!=
tempOrderType
&&
20
!=
tempOrderType
&&
21
!=
tempOrderType
&&
22
!=
tempOrderType
&&
25
!=
tempOrderType
)
{
QJsonObject
tDeliveryFeeZoreObj
;
tDeliveryFeeZoreObj
.
insert
(
"consume_num"
,
1
);
tDeliveryFeeZoreObj
.
insert
(
"pid"
,
"6000101"
);
//配送费SKU;
tDeliveryFeeZoreObj
.
insert
(
"original_price"
,
0
);
products
.
push_back
(
tDeliveryFeeZoreObj
);
}
//*********************************整合配送费-end******************************************//
//****************************整合订单商品列表末尾追加一个MenuItem:9107815 无其他-begin******************//
//此操作是防止一种异常情况发生: 退货 + 最后一个商品尾部存在一个折扣 + 且后面无客制化且无卡号 + 直接挂支付方式;
//避免在退货的dsc事件中 挂 支付方式信息;
if
(
1
){
QJsonObject
tDefaultWuQiTaObj
;
tDefaultWuQiTaObj
.
insert
(
"consume_num"
,
1
);
tDefaultWuQiTaObj
.
insert
(
"pid"
,
"9107815"
);
//无其他-SKU;
tDefaultWuQiTaObj
.
insert
(
"original_price"
,
0
);
products
.
push_back
(
tDefaultWuQiTaObj
);
}
//****************************整合订单商品列表末尾追加一个MenuItem: 无其他-end******************//
//组装完成JSON 对象的商品数据;
rObj
.
insert
(
"products"
,
products
);
//如果存在预约券信息,则不可能存在<多条支付方式>可能[App的银联支付+istore的多张SVC卡消费记录],两者相斥,但公用一个Dll[coupons]数据传输通道;
if
(
coupons
.
count
()
)
{
rObj
.
insert
(
"coupons"
,
coupons
);
}
else
{
rObj
.
insert
(
"coupons"
,
payments
);
}
data
=
rObj
;
}
return
result
;
}
...
...
fmTakeout/DTools/pmsOrdersData.cpp
View file @
34132abc
...
...
@@ -74,9 +74,6 @@ int PmsOrdersData::convertPosServiceTypeId( const OrderObject* orderObj, const
else
if
(
7
==
orderObj
->
getOrderType
()
)
{
tempOrderTypeId
=
14
;
}
else
if
(
8
==
orderObj
->
getOrderType
()
)
{
tempOrderTypeId
=
0
;
}
// MOD渠道对应的业务逻辑 ; 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
else
if
(
"MOD"
==
orderObj
->
channel
)
{
// platformSource:平台来源:1 app;2 ele;3 ors;4 WeChat ;5 口碑;
...
...
@@ -116,8 +113,6 @@ int PmsOrdersData::convertPosServiceTypeId( const OrderObject* orderObj, const
}
else
if
(
"ORS"
==
orderObj
->
channel
&&
!
orderObj
->
appointmentDayFlag
){
tempOrderTypeId
=
23
;
//预约系统 支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
}
else
if
(
"HM"
==
orderObj
->
channel
){
tempOrderTypeId
=
14
;
}
else
{
tempOrderTypeId
=
11
;
}
...
...
@@ -134,9 +129,6 @@ int PmsOrdersData::convertPosServiceTypeId( const OrderObject* orderObj, const
else
if
(
7
==
orderObj
->
getOrderType
()
)
{
tempOrderTypeId
=
15
;
}
else
if
(
8
==
orderObj
->
getOrderType
()
)
{
tempOrderTypeId
=
0
;
}
// MOD渠道对应的业务逻辑 ; 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
else
if
(
"MOD"
==
orderObj
->
channel
)
{
// platformSource:平台来源:1 app;2 ele;3 ors;4 WeChat; 5 口碑;
...
...
fmTakeout/detailForm.cpp
View file @
34132abc
...
...
@@ -44,14 +44,21 @@ void DetailForm::InitData(OrderObject *orderObject)
QLOG_INFO
()
<<
QString
(
"[<<<<---DetailForm::InitData ui->detailLab0->setText --->>>>]"
);
ui
->
detailLab1
->
setText
(
QString
(
"[ %1 ]:[ %2 ]:[%3:%4]"
).
arg
(
orderObject
->
consigneeName
,
orderObject
->
consigneePhone
,
QString
::
fromLocal8Bit
(
"暗号"
),
orderObject
->
secretSignal
));
//订单完成后,送达时间需要更新为 finishTime
if
(
OrderObject
::
Finished
==
orderObject
->
orderStatus
){
ui
->
detailLab2
->
setText
(
(
orderObject
->
finishTime
.
isEmpty
()
||
0
==
orderObject
->
finishTime
.
length
()
)
?
QString
::
fromLocal8Bit
(
"已经送达"
)
:
orderObject
->
finishTime
);
}
else
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
){
ui
->
detailLab2
->
setText
(
QString
(
""
));
}
else
{
ui
->
detailLab2
->
setText
(
orderObject
->
deliveryTime
);
QString
deliveryFinishTime
=
""
;
if
(
OrderObject
::
Finished
==
orderObject
->
orderStatus
)
{
deliveryFinishTime
=
(
orderObject
->
finishTime
.
isEmpty
()
||
0
==
orderObject
->
finishTime
.
length
()
)
?
QString
::
fromLocal8Bit
(
"已经送达"
)
:
orderObject
->
finishTime
;
}
else
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
)
{
deliveryFinishTime
=
" "
;
}
else
{
deliveryFinishTime
=
orderObject
->
deliveryTime
;
}
if
(
7
==
orderObject
->
orderType
)
{
deliveryFinishTime
=
deliveryFinishTime
+
QString
::
fromLocal8Bit
(
"预约时间: "
)
+
orderObject
->
expectDate
;
}
ui
->
detailLab2
->
setText
(
deliveryFinishTime
);
QLOG_INFO
()
<<
QString
(
"[<<<<---DetailForm::InitData ui->detailLab2->setText --->>>>]"
);
ui
->
detailLab3
->
setText
(
orderObject
->
riderName
.
isEmpty
()
?
QString
::
fromLocal8Bit
(
"暂未指定"
)
:
QString
::
fromLocal8Bit
(
"[姓名]%1 [电话]%2"
)
...
...
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