Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmp_vip
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
zhenfei.zhang
fmp_vip
Commits
16f5697b
Commit
16f5697b
authored
Oct 16, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 实现根据transId退款。
parent
5d1e0b74
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
406 additions
and
18 deletions
+406
-18
fmvip/database/dbop.cpp
+43
-5
fmvip/database/dbop.h
+4
-2
fmvip/fmnetwork.cpp
+1
-1
fmvip/items/pay.cpp
+11
-0
fmvip/items/pay.h
+5
-0
fmvip/task/fmtask.cpp
+5
-1
fmvip/task/taskrefund.cpp
+46
-0
fmvip/task/taskrefund.h
+3
-0
fmvip/windows/fmviprefund.cpp
+77
-1
fmvip/windows/fmviprefund.h
+16
-0
fmvip/windows/forms/fmviprefund.ui
+28
-2
tests/TestPlugin/.gitignore
+0
-0
tests/TestPlugin/TestPlugin.pro
+22
-0
tests/testitem/.gitignore
+73
-0
tests/testitem/testitem.pro
+0
-0
tests/testitem/tst_testitem.cpp
+6
-4
tests/testplugin/tst_testplugin.cpp
+63
-0
tests/tests.pro
+2
-1
version.h
+1
-1
No files found.
fmvip/database/dbop.cpp
View file @
16f5697b
...
@@ -43,11 +43,6 @@ void DBOP::InserTable(const QString &tableName, const QString &transId, const QS
...
@@ -43,11 +43,6 @@ void DBOP::InserTable(const QString &tableName, const QString &transId, const QS
Instance
()
->
_db
->
insert
(
tableName
,
hash
);
Instance
()
->
_db
->
insert
(
tableName
,
hash
);
}
}
void
DBOP
::
GetPaysByTransId
(
const
QString
&
transId
,
QVector
<
QByteArray
>
&
payDataVec
)
{
}
bool
DBOP
::
CreateTable
(
const
QString
&
tableName
)
bool
DBOP
::
CreateTable
(
const
QString
&
tableName
)
{
{
QString
tableOrderSql
=
"CREATE TABLE [Order]("
QString
tableOrderSql
=
"CREATE TABLE [Order]("
...
@@ -70,6 +65,7 @@ bool DBOP::CreateTable(const QString &tableName)
...
@@ -70,6 +65,7 @@ bool DBOP::CreateTable(const QString &tableName)
"[pay_id] VARCHAR(50), "
"[pay_id] VARCHAR(50), "
"[pay_str] VARCHAR(50), "
"[pay_str] VARCHAR(50), "
"[pay_amount] INT DEFAULT 0, "
"[pay_amount] INT DEFAULT 0, "
"[refund_amount] INT DEFAULT 0, "
"[dis_amount] INT DEFAULT 0, "
"[dis_amount] INT DEFAULT 0, "
"[account] VARCHAR(50), "
"[account] VARCHAR(50), "
"[trans_id] VARCHAR(50), "
"[trans_id] VARCHAR(50), "
...
@@ -161,6 +157,27 @@ QSharedPointer<FMItem::Order> DBOP::GetOrderByTransId(const QString &transId)
...
@@ -161,6 +157,27 @@ QSharedPointer<FMItem::Order> DBOP::GetOrderByTransId(const QString &transId)
return
order
;
return
order
;
}
}
void
DBOP
::
GetOrderByDBId
(
unsigned
int
DBID
,
Order
*
order
)
{
Q_ASSERT
(
order
!=
NULL
);
QSqlQuery
query
;
QString
condition
=
QString
(
"id == '%1'"
).
arg
(
DBID
);
bool
isOk
=
Instance
()
->
_db
->
find
(
TABLE_ORDER
,
query
,
QStringList
(),
condition
);
if
(
isOk
&&
query
.
next
())
{
order
->
SetPropertiesBySqlRecord
(
query
.
record
());
}
else
{
FMP_WARN
()
<<
"Don't find order: "
<<
DBID
;
}
}
QSharedPointer
<
FMItem
::
Order
>
DBOP
::
GetOrderByDBId
(
unsigned
int
DBID
)
{
QSharedPointer
<
FMItem
::
Order
>
order
(
new
Order
);
GetOrderByDBId
(
DBID
,
order
.
data
());
return
order
;
}
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
DBOP
::
GetPaysByOrderId
(
int
orderId
)
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
DBOP
::
GetPaysByOrderId
(
int
orderId
)
{
{
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
payList
;
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
payList
;
...
@@ -174,3 +191,24 @@ QList<QSharedPointer<FMItem::Pay> > DBOP::GetPaysByOrderId(int orderId)
...
@@ -174,3 +191,24 @@ QList<QSharedPointer<FMItem::Pay> > DBOP::GetPaysByOrderId(int orderId)
}
}
return
payList
;
return
payList
;
}
}
void
DBOP
::
GetPayByDBId
(
unsigned
int
DBID
,
Pay
*
pay
)
{
Q_ASSERT
(
pay
!=
NULL
);
QSqlQuery
query
;
QString
condition
=
QString
(
"id == '%1'"
).
arg
(
DBID
);
bool
isOk
=
Instance
()
->
_db
->
find
(
TABLE_PAY
,
query
,
QStringList
(),
condition
);
if
(
isOk
&&
query
.
next
())
{
pay
->
SetPropertiesBySqlRecord
(
query
.
record
());
}
else
{
FMP_WARN
()
<<
"Don't find pay: "
<<
DBID
;
}
}
QSharedPointer
<
FMItem
::
Pay
>
DBOP
::
GetPayByDBId
(
unsigned
int
DBID
)
{
QSharedPointer
<
FMItem
::
Pay
>
pay
(
new
Pay
);
GetPayByDBId
(
DBID
,
pay
.
data
());
return
pay
;
}
fmvip/database/dbop.h
View file @
16f5697b
...
@@ -26,12 +26,14 @@ public:
...
@@ -26,12 +26,14 @@ public:
static
void
InsertTablePay
(
const
QString
&
transId
,
const
QString
&
fmId
,
const
QByteArray
&
reqData
,
const
QByteArray
&
rspData
);
static
void
InsertTablePay
(
const
QString
&
transId
,
const
QString
&
fmId
,
const
QByteArray
&
reqData
,
const
QByteArray
&
rspData
);
static
void
InsertTableOrder
(
const
QString
&
transId
,
const
QString
&
fmId
,
const
QByteArray
&
reqData
,
const
QByteArray
&
rspData
);
static
void
InsertTableOrder
(
const
QString
&
transId
,
const
QString
&
fmId
,
const
QByteArray
&
reqData
,
const
QByteArray
&
rspData
);
static
void
GetPaysByTransId
(
const
QString
&
transId
,
QVector
<
QByteArray
>
&
payDataVec
);
static
void
GetOrderByTransId
(
const
QString
&
transId
,
FMItem
::
Order
*
order
);
static
void
GetOrderByTransId
(
const
QString
&
transId
,
FMItem
::
Order
*
order
);
static
QSharedPointer
<
FMItem
::
Order
>
GetOrderByTransId
(
const
QString
&
transId
);
static
QSharedPointer
<
FMItem
::
Order
>
GetOrderByTransId
(
const
QString
&
transId
);
static
void
GetOrderByDBId
(
unsigned
int
DBID
,
FMItem
::
Order
*
order
);
static
QSharedPointer
<
FMItem
::
Order
>
GetOrderByDBId
(
unsigned
int
DBID
);
static
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
GetPaysByOrderId
(
int
orderId
);
static
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
GetPaysByOrderId
(
int
orderId
);
static
void
GetPayByDBId
(
unsigned
int
DBID
,
FMItem
::
Pay
*
pay
);
static
QSharedPointer
<
FMItem
::
Pay
>
GetPayByDBId
(
unsigned
int
DBID
);
private
:
private
:
DBOP
();
DBOP
();
FMPDataBase
*
_db
;
FMPDataBase
*
_db
;
...
...
fmvip/fmnetwork.cpp
View file @
16f5697b
...
@@ -28,7 +28,7 @@ int FMNetwork::send(const QString &url, const QByteArray &reqData, QByteArray &r
...
@@ -28,7 +28,7 @@ int FMNetwork::send(const QString &url, const QByteArray &reqData, QByteArray &r
error
=
FM_API_SUCCESS
;
error
=
FM_API_SUCCESS
;
FMP_INFO
()
<<
"Send Url: "
<<
url
;
FMP_INFO
()
<<
"Send Url: "
<<
url
;
FMP_INFO
()
<<
"Send Data: "
<<
reqData
;
FMP_INFO
()
<<
"Send Data: "
<<
reqData
.
data
()
;
_req
->
setUrl
(
url
);
_req
->
setUrl
(
url
);
...
...
fmvip/items/pay.cpp
View file @
16f5697b
...
@@ -7,6 +7,7 @@ Pay::Pay(QObject *parent)
...
@@ -7,6 +7,7 @@ Pay::Pay(QObject *parent)
,
_payId
(
""
)
,
_payId
(
""
)
,
_payStr
(
""
)
,
_payStr
(
""
)
,
_payAmount
(
0
)
,
_payAmount
(
0
)
,
_refundAmount
(
0
)
,
_disAmount
(
0
)
,
_disAmount
(
0
)
,
_account
(
""
)
,
_account
(
""
)
,
_transId
(
""
)
,
_transId
(
""
)
...
@@ -90,6 +91,16 @@ void Pay::setOrderId(int orderId)
...
@@ -90,6 +91,16 @@ void Pay::setOrderId(int orderId)
_orderId
=
orderId
;
_orderId
=
orderId
;
}
}
int
Pay
::
refundAmount
()
const
{
return
_refundAmount
;
}
void
Pay
::
setRefundAmount
(
int
refundAmount
)
{
_refundAmount
=
refundAmount
;
}
QString
Pay
::
transId
()
const
QString
Pay
::
transId
()
const
{
{
return
_transId
;
return
_transId
;
...
...
fmvip/items/pay.h
View file @
16f5697b
...
@@ -12,6 +12,7 @@ namespace FMItem {
...
@@ -12,6 +12,7 @@ namespace FMItem {
Q_PROPERTY
(
QString
pay_id
READ
payId
WRITE
setPayId
)
Q_PROPERTY
(
QString
pay_id
READ
payId
WRITE
setPayId
)
Q_PROPERTY
(
QString
pay_str
READ
payStr
WRITE
setPayStr
)
Q_PROPERTY
(
QString
pay_str
READ
payStr
WRITE
setPayStr
)
Q_PROPERTY
(
int
pay_amount
READ
payAmount
WRITE
setPayAmount
)
Q_PROPERTY
(
int
pay_amount
READ
payAmount
WRITE
setPayAmount
)
Q_PROPERTY
(
int
refund_amount
READ
refundAmount
WRITE
setRefundAmount
)
Q_PROPERTY
(
int
discount_amount
READ
disAmount
WRITE
setDisAmount
)
Q_PROPERTY
(
int
discount_amount
READ
disAmount
WRITE
setDisAmount
)
Q_PROPERTY
(
QString
account
READ
account
WRITE
setAccount
)
Q_PROPERTY
(
QString
account
READ
account
WRITE
setAccount
)
Q_PROPERTY
(
QString
trans_id
READ
transId
WRITE
setTransId
)
Q_PROPERTY
(
QString
trans_id
READ
transId
WRITE
setTransId
)
...
@@ -44,10 +45,14 @@ namespace FMItem {
...
@@ -44,10 +45,14 @@ namespace FMItem {
int
orderId
()
const
;
int
orderId
()
const
;
void
setOrderId
(
int
orderId
);
void
setOrderId
(
int
orderId
);
int
refundAmount
()
const
;
void
setRefundAmount
(
int
refundAmount
);
private
:
private
:
QString
_payId
;
QString
_payId
;
QString
_payStr
;
QString
_payStr
;
int
_payAmount
;
int
_payAmount
;
int
_refundAmount
;
int
_disAmount
;
int
_disAmount
;
QString
_account
;
QString
_account
;
...
...
fmvip/task/fmtask.cpp
View file @
16f5697b
...
@@ -117,13 +117,17 @@ bool FMTask::sendToServer(bool isShowMsg)
...
@@ -117,13 +117,17 @@ bool FMTask::sendToServer(bool isShowMsg)
QJsonDocument
json
(
serverReqJsonObj
);
QJsonDocument
json
(
serverReqJsonObj
);
QByteArray
data
=
json
.
toJson
(
QJsonDocument
::
Compact
);
QByteArray
data
=
json
.
toJson
(
QJsonDocument
::
Compact
);
#ifdef FMTEST
url
=
"http://micro-service.sandload.cn/member-pos/pos/member/"
+
ReqUrl
.
at
(
FM_Type
());
#else
url
=
FMPVipSettings
::
instance
()
->
getServerUrl
()
+
"/"
+
ReqUrl
.
at
(
FM_Type
());
url
=
FMPVipSettings
::
instance
()
->
getServerUrl
()
+
"/"
+
ReqUrl
.
at
(
FM_Type
());
#endif
QByteArray
rspData
;
QByteArray
rspData
;
FMNetwork
net
;
FMNetwork
net
;
net
.
send
(
url
,
data
,
rspData
);
net
.
send
(
url
,
data
,
rspData
);
FMP_INFO
()
<<
"Server rsponse: "
<<
rspData
;
FMP_INFO
()
<<
"Server rsponse: "
<<
rspData
.
data
()
;
// 网络错误
// 网络错误
if
(
net
.
error
!=
FM_API_SUCCESS
)
{
if
(
net
.
error
!=
FM_API_SUCCESS
)
{
...
...
fmvip/task/taskrefund.cpp
View file @
16f5697b
#include "taskrefund.h"
#include "taskrefund.h"
#include "fmviprefund.h"
#include "fmviprefund.h"
#include "database/dbop.h"
#include "items/item.h"
#include "items/order.h"
#include "items/pay.h"
#include "taskothers.h"
#include <QSharedPointer>
#include <QJsonDocument>
TaskRefund
::
TaskRefund
(
QJsonObject
&
jsonObj
,
Session
*
session
,
QObject
*
parent
)
TaskRefund
::
TaskRefund
(
QJsonObject
&
jsonObj
,
Session
*
session
,
QObject
*
parent
)
:
FMTask
(
jsonObj
,
FM_Refund
,
session
,
parent
)
:
FMTask
(
jsonObj
,
FM_Refund
,
session
,
parent
)
...
@@ -15,6 +22,17 @@ TaskRefund::~TaskRefund()
...
@@ -15,6 +22,17 @@ TaskRefund::~TaskRefund()
void
TaskRefund
::
setWindow
()
void
TaskRefund
::
setWindow
()
{
{
_window
=
new
FMVipRefund
();
_window
=
new
FMVipRefund
();
connect
(
qobject_cast
<
FMVipRefund
*>
(
_window
),
&
FMVipRefund
::
refundPay
,
this
,
&
TaskRefund
::
onRefundPay
);
QString
fmId
=
getPosJsonValue
(
PosProps
.
Fm_id
).
toString
();
QString
transId
=
getPosJsonValue
(
PosProps
.
TransId
).
toString
();
session
()
->
addData
(
PosProps
.
Fm_id
,
fmId
);
session
()
->
addData
(
PosProps
.
TransId
,
transId
);
//! TODO 需要从其他数据库查询营业日、门店信息等。
auto
orderPointer
=
DBOP
::
GetOrderByTransId
(
transId
);
posReqJsonObj
=
orderPointer
->
toJson
(
QStringList
(),
posReqJsonObj
);
}
}
void
TaskRefund
::
packageServerReq
()
void
TaskRefund
::
packageServerReq
()
...
@@ -25,3 +43,31 @@ void TaskRefund::packagePOSRsp()
...
@@ -25,3 +43,31 @@ void TaskRefund::packagePOSRsp()
{
{
}
}
void
TaskRefund
::
onRefundPay
(
int
DBID
)
{
posReqJsonObj
[
PosProps
.
TransId
]
=
session
()
->
data
(
PosProps
.
TransId
).
toString
();
QSharedPointer
<
FMItem
::
Pay
>
payPointer
=
DBOP
::
GetPayByDBId
(
DBID
);
QSharedPointer
<
FMItem
::
Order
>
orderPointer
=
DBOP
::
GetOrderByDBId
(
payPointer
->
orderId
());
posReqJsonObj
=
orderPointer
->
toJson
(
QStringList
(),
posReqJsonObj
);
TaskRefundPay
refundPay
(
posReqJsonObj
,
this
);
QByteArray
rspData
=
refundPay
.
doTask
();
QJsonObject
rspObj
=
QJsonDocument
::
fromJson
(
rspData
).
object
();
if
(
rspObj
[
PosProps
.
StatusCode
].
toInt
()
==
FM_API_SUCCESS
)
{
payPointer
->
setRefundAmount
(
payPointer
->
payAmount
());
bool
isOk
=
DBOP
::
Save
(
payPointer
.
data
());
if
(
isOk
)
{
orderPointer
->
setPaidAmount
(
orderPointer
->
paidAmount
()
-
payPointer
->
refundAmount
());
isOk
=
DBOP
::
Save
(
orderPointer
.
data
());
}
qobject_cast
<
FMVipRefund
*>
(
_window
)
->
refresh
();
}
else
{
QString
msg
=
searchJsonValue
(
rspObj
,
PosProps
.
Msg
).
toString
();
FMMsgWnd
::
FailureWnd
(
msg
,
_window
);
}
}
fmvip/task/taskrefund.h
View file @
16f5697b
...
@@ -13,6 +13,9 @@ private:
...
@@ -13,6 +13,9 @@ private:
void
setWindow
()
override
;
void
setWindow
()
override
;
void
packageServerReq
();
void
packageServerReq
();
void
packagePOSRsp
();
void
packagePOSRsp
();
private
:
void
onRefundPay
(
int
DBID
);
};
};
#endif // TASKREFUND_H
#endif // TASKREFUND_H
fmvip/windows/fmviprefund.cpp
View file @
16f5697b
...
@@ -5,10 +5,14 @@
...
@@ -5,10 +5,14 @@
#include <QMutex>
#include <QMutex>
#include "fmloading.h"
#include "fmloading.h"
#include "fmmsgwnd.h"
#include "fmmsgwnd.h"
#include "dbop.h"
#include "items/order.h"
#include "items/pay.h"
FMVipRefund
::
FMVipRefund
(
QDialog
*
parent
)
:
FMVipRefund
::
FMVipRefund
(
QDialog
*
parent
)
:
FMVipWnd
(
parent
),
FMVipWnd
(
parent
),
ui
(
new
Ui
::
FMVipRefund
)
ui
(
new
Ui
::
FMVipRefund
),
order
(
new
FMItem
::
Order
(
this
))
{
{
ui
->
setupUi
(
this
);
ui
->
setupUi
(
this
);
}
}
...
@@ -16,6 +20,8 @@ FMVipRefund::FMVipRefund(QDialog *parent) :
...
@@ -16,6 +20,8 @@ FMVipRefund::FMVipRefund(QDialog *parent) :
FMVipRefund
::~
FMVipRefund
()
FMVipRefund
::~
FMVipRefund
()
{
{
delete
ui
;
delete
ui
;
delete
order
;
pays
.
clear
();
}
}
bool
FMVipRefund
::
initWnd
(
Session
*
session
)
bool
FMVipRefund
::
initWnd
(
Session
*
session
)
...
@@ -26,6 +32,76 @@ bool FMVipRefund::initWnd(Session *session)
...
@@ -26,6 +32,76 @@ bool FMVipRefund::initWnd(Session *session)
ui
->
pos_label
->
setText
(
session
->
data
(
PosProps
.
PosId
).
toString
());
ui
->
pos_label
->
setText
(
session
->
data
(
PosProps
.
PosId
).
toString
());
ui
->
operator_label
->
setText
(
session
->
data
(
PosProps
.
OperatorId
).
toString
());
ui
->
operator_label
->
setText
(
session
->
data
(
PosProps
.
OperatorId
).
toString
());
ui
->
bd_label
->
setText
(
session
->
data
(
PosProps
.
BussinessDate
).
toString
());
ui
->
bd_label
->
setText
(
session
->
data
(
PosProps
.
BussinessDate
).
toString
());
QString
transId
=
session
->
data
(
PosProps
.
TransId
).
toString
();
DBOP
::
GetOrderByTransId
(
transId
,
order
);
if
(
order
->
isNew
())
{
ui
->
textEdit_order
->
setText
(
QString
::
fromLocal8Bit
(
"未找到transId为 %1 的订单! "
).
arg
(
transId
));
}
else
{
QString
orderInfo
=
QString
::
fromLocal8Bit
(
"POS流水号:%1
\n
"
"非码订单号:%2
\n
"
"订单总额:%3
\t
已付金额:%4
\n
"
"营业日:%5
\t
收银员:%6
\n
"
"门店号:%7
\t
POS号:%8
\n
"
)
.
arg
(
order
->
transId
()).
arg
(
order
->
fmId
())
.
arg
(
order
->
orderAmount
()
/
100.0
).
arg
(
order
->
paidAmount
()
/
100.0
)
.
arg
(
order
->
businessDate
()).
arg
(
order
->
operatorId
())
.
arg
(
order
->
storeId
()).
arg
(
order
->
posId
());
ui
->
textEdit_order
->
setText
(
orderInfo
);
pays
=
DBOP
::
GetPaysByOrderId
(
order
->
DBID
());
int
row
=
0
,
col
=
0
;
foreach
(
auto
payPointer
,
pays
)
{
if
(
row
==
0
)
{
QStringList
headerLabels
;
headerLabels
<<
QString
::
fromLocal8Bit
(
"支付方式"
)
<<
QString
::
fromLocal8Bit
(
"支付金额"
)
<<
QString
::
fromLocal8Bit
(
"已退金额"
)
<<
QString
::
fromLocal8Bit
(
"操作"
);
ui
->
tableWidget_pays
->
setRowCount
(
pays
.
length
());
ui
->
tableWidget_pays
->
setColumnCount
(
headerLabels
.
length
());
ui
->
tableWidget_pays
->
setHorizontalHeaderLabels
(
headerLabels
);
int
tableWidth
=
ui
->
tableWidget_pays
->
width
();
ui
->
tableWidget_pays
->
setColumnWidth
(
0
,
tableWidth
*
0.4
);
ui
->
tableWidget_pays
->
setColumnWidth
(
1
,
tableWidth
*
0.2
);
ui
->
tableWidget_pays
->
setColumnWidth
(
2
,
tableWidth
*
0.2
);
ui
->
tableWidget_pays
->
setColumnWidth
(
3
,
tableWidth
*
0.17
);
}
QStringList
payInfo
;
payInfo
<<
payPointer
->
payStr
()
<<
QString
::
number
(
payPointer
->
payAmount
()
/
100.0
)
<<
QString
::
number
(
payPointer
->
refundAmount
()
/
100.0
);
foreach
(
const
QString
payInfoItem
,
payInfo
)
{
ui
->
tableWidget_pays
->
setItem
(
row
,
col
,
new
QTableWidgetItem
(
payInfoItem
));
col
++
;
}
if
(
payPointer
->
payAmount
()
>
0
)
{
auto
btn
=
new
QPushButton
(
QString
::
fromLocal8Bit
(
"退款"
),
ui
->
tableWidget_pays
);
btn
->
setProperty
(
"DBID"
,
payPointer
->
DBID
());
connect
(
btn
,
&
QPushButton
::
clicked
,
this
,
&
FMVipRefund
::
onBtnRefundClicked
);
ui
->
tableWidget_pays
->
setCellWidget
(
row
,
col
,
btn
);
if
(
payPointer
->
payAmount
()
<=
payPointer
->
refundAmount
())
{
btn
->
setEnabled
(
false
);
}
}
row
++
;
col
=
0
;
}
}
return
true
;
return
true
;
}
}
void
FMVipRefund
::
onBtnRefundClicked
()
{
auto
btn
=
qobject_cast
<
QPushButton
*>
(
sender
());
int
DBID
=
btn
->
property
(
"DBID"
).
toInt
();
emit
refundPay
(
DBID
);
}
void
FMVipRefund
::
refresh
()
{
initWnd
(
this
->
session
());
}
fmvip/windows/fmviprefund.h
View file @
16f5697b
...
@@ -8,6 +8,11 @@ namespace Ui {
...
@@ -8,6 +8,11 @@ namespace Ui {
class
FMVipRefund
;
class
FMVipRefund
;
}
}
namespace
FMItem
{
class
Order
;
class
Pay
;
}
class
FMVipRefund
:
public
FMVipWnd
class
FMVipRefund
:
public
FMVipWnd
{
{
Q_OBJECT
Q_OBJECT
...
@@ -18,8 +23,19 @@ public:
...
@@ -18,8 +23,19 @@ public:
bool
initWnd
(
Session
*
session
);
bool
initWnd
(
Session
*
session
);
void
refresh
();
signals
:
void
refundPay
(
int
);
private
slots
:
void
onBtnRefundClicked
();
private
:
private
:
Ui
::
FMVipRefund
*
ui
;
Ui
::
FMVipRefund
*
ui
;
FMItem
::
Order
*
order
;
QList
<
QSharedPointer
<
FMItem
::
Pay
>
>
pays
;
};
};
#endif // FMVIPREFUND_H
#endif // FMVIPREFUND_H
fmvip/windows/forms/fmviprefund.ui
View file @
16f5697b
...
@@ -74,6 +74,10 @@
...
@@ -74,6 +74,10 @@
#payTable {
#payTable {
background: rgb(252, 252, 252);
background: rgb(252, 252, 252);
}
#tableWidget_pays {
min-width: 786px; max-width:786px;
}
</string>
}
</string>
</property>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
...
@@ -174,13 +178,35 @@
...
@@ -174,13 +178,35 @@
<number>
0
</number>
<number>
0
</number>
</property>
</property>
<item>
<item>
<widget
class=
"QTableWidget"
name=
"payTable"
>
<widget
class=
"QTextEdit"
name=
"textEdit_order"
>
<property
name=
"readOnly"
>
<bool>
true
</bool>
</property>
</widget>
</item>
<item>
<widget
class=
"QTableWidget"
name=
"tableWidget_pays"
>
<property
name=
"minimumSize"
>
<property
name=
"minimumSize"
>
<size>
<size>
<width>
0
</width>
<width>
788
</width>
<height>
0
</height>
<height>
0
</height>
</size>
</size>
</property>
</property>
<property
name=
"horizontalScrollBarPolicy"
>
<enum>
Qt::ScrollBarAlwaysOff
</enum>
</property>
<property
name=
"sizeAdjustPolicy"
>
<enum>
QAbstractScrollArea::AdjustToContents
</enum>
</property>
<property
name=
"editTriggers"
>
<set>
QAbstractItemView::NoEditTriggers
</set>
</property>
<property
name=
"selectionMode"
>
<enum>
QAbstractItemView::SingleSelection
</enum>
</property>
<property
name=
"selectionBehavior"
>
<enum>
QAbstractItemView::SelectRows
</enum>
</property>
</widget>
</widget>
</item>
</item>
</layout>
</layout>
...
...
tests/
test
/.gitignore
→
tests/
TestPlugin
/.gitignore
View file @
16f5697b
File moved
tests/TestPlugin/TestPlugin.pro
0 → 100644
View file @
16f5697b
include
(..
/../
fmvip
/
fmvip
.
pri
)
QT
+=
testlib
sql
CONFIG
+=
C
++
11
DEFINES
+=
FMTEST
CONFIG
+=
qt
console
warn_on
depend_includepath
testcase
CONFIG
-=
app_bundle
TEMPLATE
=
app
SOURCES
+=
tst_testplugin
.
cpp
CONFIG
(
debug
,
debug
|
release
)
{
LIBS
+=
-
lCTKCored
-
lCTKPluginFrameworkd
DESTDIR
=
$$
PWD
/../../../
debug
/
bins
}
else
{
LIBS
+=
-
lCTKCore
-
lCTKPluginFramework
DESTDIR
=
$$
PWD
/../../../
release
/
bins
}
tests/testitem/.gitignore
0 → 100644
View file @
16f5697b
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
# qtcreator generated files
*.pro.user*
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe
tests/test
/test
.pro
→
tests/test
item/testitem
.pro
View file @
16f5697b
File moved
tests/test/tst_testitem.cpp
→
tests/test
item
/tst_testitem.cpp
View file @
16f5697b
...
@@ -154,7 +154,7 @@ void TestItem::test_PropertyNames_data()
...
@@ -154,7 +154,7 @@ void TestItem::test_PropertyNames_data()
<<
"store_id"
<<
"pos_id"
<<
"operator_id"
<<
"business_date"
<<
"fm_open_id"
<<
"products"
<<
"settled"
;
<<
"store_id"
<<
"pos_id"
<<
"operator_id"
<<
"business_date"
<<
"fm_open_id"
<<
"products"
<<
"settled"
;
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
orderPNames
.
length
()
<<
orderPNames
;
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
orderPNames
.
length
()
<<
orderPNames
;
payPNames
<<
"objectName"
<<
"DBID"
<<
"pay_id"
<<
"pay_str"
<<
"pay_amount"
<<
"discount_amount"
<<
"account"
<<
"trans_id"
<<
"payTransId"
<<
"orderId"
;
payPNames
<<
"objectName"
<<
"DBID"
<<
"pay_id"
<<
"pay_str"
<<
"pay_amount"
<<
"
refund_amount"
<<
"
discount_amount"
<<
"account"
<<
"trans_id"
<<
"payTransId"
<<
"orderId"
;
QTest
::
newRow
(
"Pay"
)
<<
gPay
<<
payPNames
.
length
()
<<
payPNames
;
QTest
::
newRow
(
"Pay"
)
<<
gPay
<<
payPNames
.
length
()
<<
payPNames
;
productPNames
<<
"objectName"
<<
"DBID"
<<
"id"
<<
"quantity"
<<
"price"
<<
"name"
;
productPNames
<<
"objectName"
<<
"DBID"
<<
"id"
<<
"quantity"
<<
"price"
<<
"name"
;
...
@@ -179,17 +179,19 @@ void TestItem::test_DBSave_data()
...
@@ -179,17 +179,19 @@ void TestItem::test_DBSave_data()
Pay
*
pay
=
new
Pay
();
Pay
*
pay
=
new
Pay
();
pay
->
setPayId
(
"1"
);
pay
->
setPayId
(
"1"
);
pay
->
setPayStr
(
"pay1"
);
pay
->
setPayStr
(
"pay1"
);
pay
->
setTransId
(
"1
111
"
);
pay
->
setTransId
(
"1
2345
"
);
pay
->
setPayAmount
(
100
);
pay
->
setPayAmount
(
100
);
QTest
::
newRow
(
"Pay"
)
<<
qobject_cast
<
Item
*>
(
pay
)
<<
true
;
QTest
::
newRow
(
"Pay"
)
<<
qobject_cast
<
Item
*>
(
pay
)
<<
true
;
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
true
;
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
true
;
gOrder
->
setDBID
(
gOrder
->
DBID
());
gOrder
->
setFmId
(
"11111"
);
gOrder
->
setFmId
(
"11111"
);
gOrder
->
setTransId
(
"1
1111
"
);
gOrder
->
setTransId
(
"1
2345
"
);
gOrder
->
setOrderAmount
(
1000
);
gOrder
->
setOrderAmount
(
1000
);
gOrder
->
setProductText
(
"{
\"
pid
\"
:
\"
1
\"
},{
\"
pid
\"
:
\"
2
\"
}"
);
gOrder
->
setProductText
(
"{
\"
pid
\"
:
\"
1
\"
},{
\"
pid
\"
:
\"
2
\"
}"
);
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
true
;
QTest
::
newRow
(
"Order"
)
<<
qobject_cast
<
Item
*>
(
gOrder
)
<<
true
;
pay
->
deleteLater
();
}
}
void
TestItem
::
test_DBSave
()
void
TestItem
::
test_DBSave
()
...
...
tests/testplugin/tst_testplugin.cpp
0 → 100644
View file @
16f5697b
#include <QtTest>
#include <QCoreApplication>
#include "fmvipdispatcher.h"
class
TestPlugin
:
public
QObject
{
Q_OBJECT
public
:
TestPlugin
();
~
TestPlugin
();
private
:
FMVipDispatcher
fmvip
;
private
slots
:
void
initTestCase
();
void
cleanupTestCase
();
void
test_dotask_data
();
void
test_dotask
();
};
TestPlugin
::
TestPlugin
()
{
}
TestPlugin
::~
TestPlugin
()
{
}
void
TestPlugin
::
initTestCase
()
{
}
void
TestPlugin
::
cleanupTestCase
()
{
}
void
TestPlugin
::
test_dotask_data
()
{
QTest
::
addColumn
<
QByteArray
>
(
"reqData"
);
QTest
::
newRow
(
"Refund"
)
<<
QByteArray
(
"{
\"
fm_cmd
\"
: 1004,
\"
trans_id
\"
:
\"
12345
\"
}"
);
// QTest::newRow("Refund not") << QByteArray("{\"fm_cmd\": 1004,\"trans_id\": \"123456\"}");
}
void
TestPlugin
::
test_dotask
()
{
QFETCH
(
QByteArray
,
reqData
);
QByteArray
rspData
;
fmvip
.
doTask
(
reqData
,
rspData
);
}
QTEST_MAIN
(
TestPlugin
)
#include "tst_testplugin.moc"
tests/tests.pro
View file @
16f5697b
TEMPLATE
=
subdirs
TEMPLATE
=
subdirs
SUBDIRS
+=
\
SUBDIRS
+=
\
test
testitem
\
testplugin
CONFIG
+=
ordered
CONFIG
+=
ordered
version.h
View file @
16f5697b
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#define VER_MINOR 1
#define VER_MINOR 1
#define VER_REVISION 0
#define VER_REVISION 0
#define VER_BUILD 1
2
#define VER_BUILD 1
3
//! Convert version numbers to string
//! Convert version numbers to string
#define _STR(S) #S
#define _STR(S) #S
...
...
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