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
8f6509a4
Commit
8f6509a4
authored
Dec 27, 2019
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug:
<1>门店营业状态显示 <2>避免重装系统导致门店当天全部订单重复入机;
parent
6796b1b4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
15 deletions
+44
-15
fmTakeout/Control/flowControl.cpp
+28
-9
fmTakeout/Model/orderObject.h
+10
-0
fmTakeout/fmTakeout.rc
+5
-5
fmTakeout/preDefine.h
+1
-1
No files found.
fmTakeout/Control/flowControl.cpp
View file @
8f6509a4
...
...
@@ -342,6 +342,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject
->
packDiscount
=
0
;
orderObject
->
deliveryPrice
=
0
;
orderObject
->
deliveryDiscount
=
0
;
orderObject
->
forwardPosStatus
=
0
;
orderObject
->
negativePosStatus
=
0
;
orderObject
->
FromJson
(
jsonObject
);
orderObject
->
pushOrderType
=
0
;
...
...
@@ -450,7 +452,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
switch
(
orderObject
->
orderStatus
){
case
OrderObject
:
:
NewOrder
:
// 存在两种Case: 正常销售单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物销售单没有入机成功 && 预约实物送达日期
if
(
(
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
if
(
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
{
if
(
orderObject
->
appointmentDayFlag
){
orderObject
->
orsPushOrderType
=
1
;
...
...
@@ -483,7 +485,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
case
OrderObject
:
:
Confirmed
:
// 针对已经确认的订单:POS可能录过,也可能没有; 因此就需要 orderObject->isPush 来判断POS是否录过:true:录过;false:没录过;
// 存在两种Case: 正常销售单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物销售单没有入机成功 && 预约实物送达日期
if
(
(
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
if
(
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
{
if
(
orderObject
->
appointmentDayFlag
){
orderObject
->
orsPushOrderType
=
1
;
...
...
@@ -516,7 +518,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
break
;
case
OrderObject
:
:
Sendout
:
// 存在两种Case: 正常销售单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物销售单没有入机成功 && 预约实物送达日期
if
(
(
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
if
(
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
{
if
(
orderObject
->
appointmentDayFlag
){
orderObject
->
orsPushOrderType
=
1
;
...
...
@@ -549,7 +551,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
break
;
case
OrderObject
:
:
Finished
:
// 存在两种Case: 正常销售单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物销售单没有入机成功 && 预约实物送达日期
if
(
(
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
if
(
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
{
if
(
orderObject
->
appointmentDayFlag
){
orderObject
->
orsPushOrderType
=
1
;
...
...
@@ -597,16 +599,17 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
return
;
}
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis: Refund Order orderObject->id:%1 ,dataBaseIsOrderExistInt:%2 ,dataBaseIsPushInt:%3 ,dataBaseIsCancleInt:%4 ,"
"dataBaseIsORSPushInt:%5 ,dataBaseIsORSCancleInt:%6 ,dataBasePosOrderCheckNo:%7--->>>>]"
)
"dataBaseIsORSPushInt:%5 ,dataBaseIsORSCancleInt:%6 ,dataBasePosOrderCheckNo:%7
,negativePosStatus:%8
--->>>>]"
)
.
arg
(
orderObject
->
id
).
arg
(
orderObject
->
dataBaseIsOrderExistInt
).
arg
(
orderObject
->
dataBaseIsPushInt
).
arg
(
orderObject
->
dataBaseIsCancleInt
)
.
arg
(
orderObject
->
dataBaseIsORSPushInt
).
arg
(
orderObject
->
dataBaseIsORSCancleInt
).
arg
(
orderObject
->
dataBasePosOrderCheckNo
);
.
arg
(
orderObject
->
dataBaseIsORSPushInt
).
arg
(
orderObject
->
dataBaseIsORSCancleInt
).
arg
(
orderObject
->
dataBasePosOrderCheckNo
)
.
arg
(
orderObject
->
negativePosStatus
)
;
bool
bIsRefundOrder
=
orderObject
->
dataBaseIsCancleInt
;
//bool bIsORSCancleOrder = orderObject->dataBaseIsORSCancleInt;
//存在两种Case:正常退货单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物退货单没有入机 && 预约实物送达日期
//退货时:预约实物退货的case不存在;因此需要修改此部分逻辑判断;
//if( (!bIsRefundOrder && !orderObject->appointmentDayFlag) || (!bIsORSCancleOrder && orderObject->appointmentDayFlag) )
if
(
(
!
bIsRefundOrder
)
)
//为避免换系统盘导致订单重复入机,顾需要额外使用 OMS提供的订单是否入机状态进行过滤;
if
(
(
!
bIsRefundOrder
)
&&
orderObject
->
negativePosStatus
!=
1
)
{
/***case:校验此订单是否已经push到POS:订单还没push到POS[POS没有模拟点单或没有返回小票号]***/
//内存中处理存在BUG:现在改用 直接读数据库中的标志;
...
...
@@ -1052,7 +1055,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
emit
changeOrderStatus
(
orderObject
,
oldOrderStatus
);
if
(
OrderObject
::
Confirmed
==
orderStatus
){
//存在两种Case: 正常销售单没有入机成功 && 非预约日期(录配送费判断)/默认值是初始化0; || 预约实物销售单没有入机成功 && 预约实物送达日期
if
(
(
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
if
(
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isPush
&&
!
orderObject
->
appointmentDayFlag
)
||
(
orderObject
->
forwardPosStatus
!=
1
&&
!
orderObject
->
isORSPush
&&
orderObject
->
appointmentDayFlag
)
)
{
if
(
orderObject
->
appointmentDayFlag
){
orderObject
->
orsPushOrderType
=
1
;
...
...
@@ -1912,20 +1915,24 @@ bool FlowControl::_ResponseSimphony04Request(const QJsonObject &content, QJsonOb
if
(
order_p
->
pushOrderType
==
1
)
{
SimProcOrderDB
::
getInstance
().
updatePushOrderStatus
(
orderId
,
1
);
order_p
->
isPush
=
true
;
order_p
->
forwardPosStatus
=
1
;
}
else
if
(
0
==
order_p
->
pushOrderType
)
{
SimProcOrderDB
::
getInstance
().
updateRefundOrderStatus
(
orderId
,
1
);
order_p
->
isCancle
=
true
;
order_p
->
negativePosStatus
=
1
;
}
//处理预约实物入机后数据库更新;
if
(
order_p
->
orsPushOrderType
==
1
&&
order_p
->
appointmentDayFlag
)
{
SimProcOrderDB
::
getInstance
().
updateORSPushOrderStatus
(
orderId
,
1
);
order_p
->
isORSPush
=
true
;
order_p
->
forwardPosStatus
=
1
;
}
else
if
(
0
==
order_p
->
orsPushOrderType
&&
order_p
->
appointmentDayFlag
)
{
SimProcOrderDB
::
getInstance
().
updateORSCancleOrderStatus
(
orderId
,
1
);
//避免重复退预约配送费订单
SimProcOrderDB
::
getInstance
().
updateRefundOrderStatus
(
orderId
,
1
);
order_p
->
isCancle
=
true
;
order_p
->
isORSCancle
=
true
;
order_p
->
negativePosStatus
=
1
;
}
bRetReportCheckNo
=
SimProcOrderDB
::
getInstance
().
updatePosOrderCheckNo
(
orderId
,
posCheckNo
);
...
...
@@ -2497,7 +2504,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
//避免:销售单,退货单 两个方向都已经入机完成订单重复入机【&& !orderObject->appointmentDayFlag || && orderObject->appointmentDayFlag】;
// if(bIsPushOrder && bIsRefundOrder && !orderObject->appointmentDayFlag || bIsORSPushOrder && bIsORSCancleOrder && orderObject->appointmentDayFlag )
if
(
bIsPushOrder
&&
bIsRefundOrder
||
bIsORSPushOrder
&&
bIsORSCancleOrder
||
!
retGetDbOrderAllFlag
)
{
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"
);
...
...
@@ -2507,6 +2514,17 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
return
true
;
}
// 正向单不是最后一次录入必须结合订单入机类型,而退货是最后一次入机,故无需 额外条件组合判断;
if
(
(
orderObject
->
pushOrderType
==
1
||
orderObject
->
orsPushOrderType
==
1
)
&&
(
1
==
orderObject
->
forwardPosStatus
)
||
(
1
==
orderObject
->
negativePosStatus
)
)
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:] forwardPosStatus: negativePosStatus: ;--->>>>>]"
)
<<
orderObject
->
forwardPosStatus
<<
orderObject
->
negativePosStatus
;
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;
...
...
@@ -2730,6 +2748,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
cObj
.
insert
(
"deliveryDiscount"
,
orderObject
->
deliveryDiscount
>
0
?
orderObject
->
deliveryDiscount
:
0
);
// 整单折扣在Simphony扩展程序中没有实际意义,目前使用此字段透传 插件的版本号信息;
QString
pluginVersion
=
APP_VERSION
;
pluginVersion
=
pluginVersion
.
mid
(
4
);
cObj
.
insert
(
"orderDiscount"
,
pluginVersion
.
remove
(
QChar
(
'.'
),
Qt
::
CaseInsensitive
).
toInt
()
);
cObj
.
insert
(
"waybillId"
,
(
orderObject
->
waybillId
).
length
()
?
orderObject
->
waybillId
:
QString
(
"0"
)
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
...
...
fmTakeout/Model/orderObject.h
View file @
8f6509a4
...
...
@@ -69,6 +69,8 @@ class OrderObject : public QObject
Q_PROPERTY
(
int
productPrice
READ
getProductPrice
WRITE
setProductPrice
)
Q_PROPERTY
(
int
totalPrice
READ
getTotalPrice
WRITE
setTotalPrice
)
Q_PROPERTY
(
int
orderStatus
READ
getOrderStatus
WRITE
setOrderStatus
)
Q_PROPERTY
(
int
forwardPosStatus
READ
getForwardPosStatus
WRITE
setForwardPosStatus
)
Q_PROPERTY
(
int
negativePosStatus
READ
getNegativePosStatus
WRITE
setNegativePosStatus
)
Q_PROPERTY
(
int
deliveryStatus
READ
getDeliveryStatus
WRITE
setDeliveryStatus
)
Q_PROPERTY
(
int
payStatus
READ
getPayStatus
WRITE
setPayStatus
)
Q_PROPERTY
(
int
refundStatus
READ
getRefundStatus
WRITE
setRefundStatus
)
...
...
@@ -161,6 +163,8 @@ public:
int
productPrice
;
int
totalPrice
;
int
orderStatus
;
int
forwardPosStatus
;
// 正向单入机状态: 0:未知 1: 成功 2:失败;
int
negativePosStatus
;
// 负向单同上;
int
deliveryStatus
;
int
payStatus
;
int
refundStatus
;
...
...
@@ -350,6 +354,12 @@ public:
inline
int
getOrderStatus
()
const
{
return
orderStatus
;}
inline
void
setOrderStatus
(
const
int
&
v
){
orderStatus
=
v
;}
inline
int
getForwardPosStatus
()
const
{
return
forwardPosStatus
;}
inline
void
setForwardPosStatus
(
const
int
&
v
){
forwardPosStatus
=
v
;}
inline
int
getNegativePosStatus
()
const
{
return
negativePosStatus
;}
inline
void
setNegativePosStatus
(
const
int
&
v
){
negativePosStatus
=
v
;}
inline
int
getDeliveryStatus
()
const
{
return
deliveryStatus
;}
inline
void
setDeliveryStatus
(
const
int
&
v
){
deliveryStatus
=
v
;}
...
...
fmTakeout/fmTakeout.rc
View file @
8f6509a4
...
...
@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2019,1
125
,1
PRODUCTVERSION 2,2019,1
125
,1
FILEVERSION 2,2019,1
224
,1
PRODUCTVERSION 2,2019,1
224
,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
...
...
@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "Delivery Order Plugin Application"
VALUE "InternalName", "fmTakeout.exe"
VALUE "LegalCopyright", "Copyright (C)201
3
-2019"
VALUE "LegalCopyright", "Copyright (C)201
4
-2019"
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2019.1
125
.1"
VALUE "FileVersion", "2.2019.1
125
.1"
VALUE "ProductVersion", "2.2019.1
224
.1"
VALUE "FileVersion", "2.2019.1
224
.1"
//*************************************************************************//
END
END
...
...
fmTakeout/preDefine.h
View file @
8f6509a4
...
...
@@ -24,7 +24,7 @@
//#define APP_VERSION "2.2019.729.1"
//#define APP_VERSION "2.2019.815.1"
//#define APP_VERSION "2.2019.916.2"
#define APP_VERSION "2.2019.1
125
.1"
#define APP_VERSION "2.2019.1
224
.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
...
...
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