Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sbkpay
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
sbkpay
Commits
d8b004d6
Commit
d8b004d6
authored
Aug 24, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 实现打印日结单、交班单时弹窗显示等待信息。
parent
2f600226
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1163 additions
and
575 deletions
+1163
-575
sbkpay/control.cpp
+29
-10
sbkpay/global.h
+1
-0
sbkpay/hostwidget.cpp
+671
-560
sbkpay/hostwidget.h
+6
-0
sbkpay/hostwidget.ui
+453
-1
sbkpay/main.cpp
+1
-1
sbkpay/sbkpay.pro
+2
-3
No files found.
sbkpay/control.cpp
View file @
d8b004d6
...
...
@@ -52,6 +52,7 @@ Control::Control(QObject *parent) : QObject(parent), _widget(NULL)
void
Control
::
Start
(
const
char
*
indata
,
char
*
outdata
)
{
bool
refundflag
=
false
;
QLOG_INFO
()
<<
"get data from pos:"
<<
QString
::
fromLocal8Bit
(
indata
);
QString
appPath
;
...
...
@@ -83,9 +84,10 @@ void Control::Start(const char *indata, char *outdata)
connect
(
_widget
,
&
HostWidget
::
RequestWithType
,
this
,
&
Control
::
RequestWithType
);
connect
(
_widget
,
&
HostWidget
::
Exits
,
this
,
[
&
loop
]
()
connect
(
_widget
,
&
HostWidget
::
Exits
,
this
,
[
&
loop
,
&
refundflag
]
()
{
QLOG_INFO
()
<<
"quit with normal"
;
refundflag
=
true
;
loop
.
exit
();
});
connect
(
_widget
,
&
HostWidget
::
ExitWithMSG
,
this
,
[
this
,
&
loop
]
(
QString
code
,
QString
message
)
...
...
@@ -95,6 +97,22 @@ void Control::Start(const char *indata, char *outdata)
loop
.
exit
();
});
// QString reqtype;
// reqtype.append(_request.TransType[0]).append(_request.TransType[1]);
// _widget->ShowWithRequest(_request);
// if(reqtype.compare("40") != 0)
// {
// loop.exec();
// }else
// {
// if(reqtype.compare("40") == 0 && refundflag == false)
// loop.exec();
// }
// _widget->ShowWithRequest(_request);
_widget
->
ShowWithRequest
(
_posReqJsonObj
);
...
...
@@ -251,19 +269,19 @@ bool Control::SendMessageToSBKAPI(const QJsonObject &json, QByteArray &outdata,
strcpy
(
in
,
reqXmlStr
.
toUtf8
().
data
());
QLOG_INFO
()
<<
"Request StarbucksAPI XML data: "
<<
in
;
#ifndef SBKTEST
int
result
=
skbSend
(
in
,
guid
,
out
,
errMsg
,
mode
);
#else
#ifdef MOCK
QLOG_DEBUG
()
<<
"=========================================== Read debug data. ========================================"
;
QLOG_DEBUG
()
<<
"Test req type: "
<<
type
;
QFile
f
(
qApp
->
applicationDirPath
()
+
QString
(
"/test/%1.txt"
).
arg
(
type
));
f
.
open
(
QIODevice
::
ReadOnly
);
strcpy
(
out
,
f
.
readAll
().
data
());
Sleep
(
1000
*
10
);
QLOG_DEBUG
()
<<
"=========================================== End read debug data. ===================================="
;
int
result
=
0
;
#endif //! End def SBKTEST
#else
int
result
=
skbSend
(
in
,
guid
,
out
,
errMsg
,
mode
);
#endif //! End def MOCK
QLOG_DEBUG
()
<<
"StarbucksAPI return to GBK: "
<<
QString
::
fromLocal8Bit
(
out
);
...
...
@@ -545,7 +563,11 @@ void Control::Request(ReqType type, QStringList list)
char
signStr
[
MAX_BUF_LEN
]
=
{
0
};
bool
rlt
=
false
;
#ifdef MOCK
#else
if
((
rlt
=
GetSPCCSign
(
jsonArray
.
data
(),
signStr
,
error
)))
#endif
{
json
[
"sign"
]
=
QString
::
fromLocal8Bit
(
signStr
);
...
...
@@ -556,12 +578,9 @@ void Control::Request(ReqType type, QStringList list)
if
(
rlt
)
rlt
=
Control
::
GetJson
(
type
,
rtjson
,
outdata
,
error
);
if
(
!
rlt
)
else
SetResPonseWithMessage
(
"23"
,
error
);
_lock
.
lock
();
if
(
_widget
!=
NULL
&&
type
==
finds
)
{
...
...
sbkpay/global.h
View file @
d8b004d6
...
...
@@ -44,6 +44,7 @@
#define JSON_KEY_TYPE "type"
#define JSON_KEY_FMID "fmId"
#define JSON_KEY_EXT "ext"
#define JSON_KEYT_STATE "state"
#define JSON_KEY_PRINT "print"
#define JSON_KEY_PRINTACTION "printAction"
#define JSON_KEY_PRINTPATH "path"
...
...
sbkpay/hostwidget.cpp
View file @
d8b004d6
#
include
"hostwidget.h"
#include "ui_hostwidget.h"
#include "QKeyEvent"
#include "QsLog.h"
#include "fmtool.h"
#include "labelstimer.h"
#include <QMovie>
#include <QDateTime>
#include <QJsonArray>
HostWidget
::
HostWidget
(
QWidget
*
parent
)
:
FMPWindow
(
parent
),
ui
(
new
Ui
::
HostWidget
)
{
ui
->
setupUi
(
this
);
_need_exit
=
false
;
_runing
=
false
;
_widgetlist
.
append
(
ui
->
pay
);
_widgetlist
.
append
(
ui
->
find
);
_widgetlist
.
append
(
ui
->
Manager
);
_widgetlist
.
append
(
ui
->
sign
);
_curr_show_widget
=
NULL
;
//ui->btn_mananger_print->setEnabled(false);
//ui->btn_mananger_check->setEnabled(false);
InitWidget
();
_label_pay_timer
=
new
LabelsTimer
(
ui
->
label_pay_time
,
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
_label_find_timer
=
new
LabelsTimer
(
ui
->
label_check_timer
,
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
connect
(
_label_pay_timer
,
&
LabelsTimer
::
timeout
,
this
,
&
HostWidget
::
on_TimeOut
);
connect
(
_label_find_timer
,
&
LabelsTimer
::
timeout
,
this
,
&
HostWidget
::
on_TimeOut
);
_label_pay_movie
=
new
QMovie
(
":res/loading.gif"
);
_label_pay_movie
->
start
();
ui
->
label_pay_time_load
->
setMovie
(
_label_pay_movie
);
ui
->
label_logo
->
setMovie
(
_label_pay_movie
);
ui
->
tableWidget
->
setEditTriggers
(
QAbstractItemView
::
NoEditTriggers
);
ui
->
tableWidget
->
horizontalHeader
()
->
setSectionResizeMode
(
QHeaderView
::
Stretch
);
ui
->
tableWidget
->
verticalHeader
()
->
setDefaultSectionSize
(
45
);
}
void
HostWidget
::
ShowWidget
(
QWidget
*
showwidget
)
{
if
(
showwidget
==
ui
->
pay
)
{
ui
->
lineEdit_pay_code
->
clear
();
ui
->
lineEdit_pay_code
->
setWindowOpacity
(
0
);
ui
->
lineEdit_pay_code
->
setFocus
();
ui
->
label_pay_msg_time
->
setVisible
(
false
);
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
}
for
(
int
i
=
0
;
i
<
_widgetlist
.
size
();
++
i
)
{
if
(
showwidget
==
_widgetlist
.
at
(
i
))
{
if
(
showwidget
->
isHidden
())
showwidget
->
show
();
continue
;
}
_widgetlist
.
at
(
i
)
->
hide
();
}
//this->show();
this
->
showFullScreen
();
}
void
HostWidget
::
InitWidget
()
{
for
(
int
i
=
0
;
i
<
_widgetlist
.
size
();
++
i
)
{
_widgetlist
.
at
(
i
)
->
hide
();
}
}
void
HostWidget
::
setRuning
(
bool
runing
)
{
_runing
=
runing
;
}
HostWidget
::~
HostWidget
()
{
delete
ui
;
if
(
_label_pay_timer
!=
NULL
)
{
delete
_label_pay_timer
;
_label_pay_timer
=
NULL
;
}
}
void
HostWidget
::
keyPressEvent
(
QKeyEvent
*
ke
)
{
if
(
ke
->
key
()
==
Qt
::
Key_Return
&&
_curr_show_widget
==
ui
->
pay
)
{
ShowPayWidget
();
}
else
{
FMPWindow
::
keyPressEvent
(
ke
);
}
}
void
HostWidget
::
ShowPayWidget
()
{
if
(
!
_need_exit
&&
_runing
==
false
)
{
_runing
=
true
;
ui
->
btn_pay_exit
->
hide
();
ui
->
label_pay_money
->
hide
();
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
QStringList
list
;
list
.
append
(
ui
->
lineEdit_pay_code
->
text
());
QLOG_INFO
()
<<
list
;
if
(
_type
==
pay
)
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝支付中..."
));
emit
RequestWithType
(
pay
,
list
);
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝退款中..."
));
emit
RequestWithType
(
refund
,
list
);
}
}
else
emit
Exits
();
}
void
HostWidget
::
ShowWithRequest
(
AlipayRequest
request
)
{
QString
reqtype
;
_data
=
request
;
reqtype
.
append
(
request
.
TransType
[
0
]).
append
(
request
.
TransType
[
1
]);
if
(
reqtype
.
compare
(
"10"
)
==
0
)
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
}
if
(
reqtype
.
compare
(
"30"
)
==
0
)
{
_type
=
pay
;
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetString
(
_data
.
Amount
,
12
).
toInt
()
/
100.0
;
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描支付宝二维码"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消支付"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"需收取 ¥ %1"
).
arg
(
Amount
));
}
if
(
reqtype
.
compare
(
"40"
)
==
0
)
{
_type
=
refund
;
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
// double Amount = FMTool::GetString(_data.Amount, 12).toInt()/100.0;
// ui->label_pay_title->setText(QString::fromLocal8Bit("请扫描退款凭证号"));
// ui->btn_pay_exit->setText(QString::fromLocal8Bit("取消退款"));
// ui->label_pay_money->setText(QString::fromLocal8Bit("退款 ¥ %1").arg(Amount));
ui
->
btn_pay_exit
->
hide
();
ui
->
label_pay_money
->
hide
();
//_refundamout = FMTool::GetString(_data.Amount, 12).toInt();
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
QStringList
list
;
list
.
append
(
FMTool
::
GetString
(
request
.
OriginTrace
,
64
));
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝退款中..."
));
emit
RequestWithType
(
refund
,
list
);
}
if
(
reqtype
.
compare
(
"80"
)
==
0
)
{
_type
=
finds
;
ui
->
label_find_msg
->
clear
();
ui
->
dateEdit_find_begin
->
setDate
(
QDate
::
currentDate
());
ui
->
dateEdit_find_end
->
setDate
(
QDate
::
currentDate
());
ui
->
tableWidget
->
hide
();
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
hide
();
ShowWidget
(
ui
->
find
);
_curr_show_widget
=
ui
->
find
;
ui
->
label_find_page
->
setText
(
"1"
);
}
}
void
HostWidget
::
ShowWiteJson
(
bool
flag
,
QJsonObject
object
,
QString
error
)
{
ui
->
widget_check_load
->
hide
();
ui
->
btn_find_check
->
show
();
_label_find_timer
->
stop
();
_need_exit
=
true
;
QLOG_INFO
()
<<
object
;
if
(
!
flag
)
{
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"查询失败(%1)"
).
arg
(
error
));
}
else
{
if
((
object
.
contains
(
JSON_KEY_TOTALNUM
)
&&
object
[
JSON_KEY_TOTALNUM
].
toInt
()
==
0
)
||
!
object
.
contains
(
JSON_KEY_QUERYINFO
))
{
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"无交易记录"
));
}
else
{
ui
->
frame
->
show
();
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"%1到%2的账单流水"
).
arg
(
ui
->
dateEdit_find_begin
->
text
(),
ui
->
dateEdit_find_end
->
text
()));
if
(
ui
->
label_find_page
->
text
().
compare
(
"1"
)
==
0
)
{
_line
=
object
[
JSON_KEY_TOTALNUM
].
toInt
()
/
10
;
if
(
object
[
JSON_KEY_TOTALNUM
].
toInt
()
%
10
!=
0
)
_line
+=
1
;
}
QJsonArray
array
=
object
[
JSON_KEY_QUERYINFO
].
toArray
();
foreach
(
auto
val
,
array
)
{
QJsonObject
tmp
=
val
.
toObject
();
ui
->
tableWidget
->
insertRow
(
0
);
QTableWidgetItem
*
item0
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_FMID
].
toString
());
item0
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
0
,
item0
);
QTableWidgetItem
*
item1
=
new
QTableWidgetItem
(
QString
::
number
(
tmp
[
JSON_KEY_TRANSAMOUNT
].
toInt
()
/
100.0
));
item1
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
1
,
item1
);
QTableWidgetItem
*
item2
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_TRANSTIME
].
toString
());
item2
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
2
,
item2
);
QTableWidgetItem
*
item3
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_STATEMSG
].
toString
());
item3
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
3
,
item3
);
// QWidget *pWdg = new QWidget(ui->tableWidget);
// QHBoxLayout *hLayout = new QHBoxLayout(pWdg);
// QPushButton * pBtn = new QPushButton(pWdg);
// pBtn->setFixedSize(70, 30);
// pBtn->setFocusPolicy(Qt::NoFocus);
// pBtn->setProperty("orderId", tmp[JSON_KEY_FMID].toString());
// pBtn->setText(QString::fromLocal8Bit("打印"));
// hLayout->addWidget(pBtn);
// hLayout->setMargin(0);
// pWdg->setLayout(hLayout);
// ui->tableWidget->setCellWidget(0, 4, pWdg); // 操作按钮
// pBtn->setStyleSheet("border:0px;border-radius:2px;background-color: rgb(0, 179, 238);font: 75 20px \"Microsoft YaHei UI Light\";");
// connect(pBtn, &QPushButton::clicked, this, [this, pBtn]()
// {
// QStringList list;
// list.append(pBtn->property("orderId").toString());
// this->hide();
// emit RequestWithType(againprint, list);
// });
}
ui
->
tableWidget
->
sortByColumn
(
2
,
Qt
::
DescendingOrder
);
ui
->
tableWidget
->
show
();
}
}
}
void
HostWidget
::
ShowWithRequest
(
QJsonObject
requestObj
)
{
_type
=
(
ReqType
)
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_REQTYPE
).
toInt
();
_posReqJsonObj
=
requestObj
;
switch
(
_type
)
{
case
manage
:
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
break
;
}
case
sign
:
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
on_btn_mananger_register_clicked
();
break
;
}
case
pay
:
{
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_TRANSAMOUNT
).
toInt
()
/
100.0
;
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描输入支付宝二维码"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消支付"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"需收取 ¥ %1"
).
arg
(
Amount
));
break
;
}
case
refund
:
{
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_TRANSAMOUNT
).
toInt
()
/
100.0
;
QString
FmId
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_FMID
).
toString
();
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描退款凭证号"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消退款"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"退款 ¥ %1"
).
arg
(
Amount
));
ui
->
lineEdit_pay_code
->
setText
(
FmId
);
ShowPayWidget
();
break
;
}
default
:
break
;
}
}
void
HostWidget
::
ShowWiteMGS
(
ReqType
type
,
bool
flag
,
QString
message
)
{
if
(
type
==
sign
)
{
_need_exit
=
true
;
if
(
flag
)
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"获取签名成功"
));
else
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"获取签名失败"
));
ui
->
label_sign_msg
->
setText
(
message
);
ui
->
btn_sign_sign
->
show
();
ShowWidget
(
ui
->
sign
);
return
;
}
if
(
type
==
pay
&&
_curr_show_widget
==
ui
->
pay
)
{
_need_exit
=
true
;
_label_pay_timer
->
stop
();
ui
->
label_pay_time_load
->
setVisible
(
false
);
ui
->
label_pay_money
->
setVisible
(
true
);
ui
->
label_pay_money
->
setText
(
message
);
ui
->
btn_pay_exit
->
setVisible
(
true
);
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_pay_msg_time
->
setVisible
(
true
);
_label_pay_timer
->
setLabel
(
ui
->
label_pay_msg_time
);
_label_pay_timer
->
start
(
3
);
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付成功"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付失败"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
refund
&&
_curr_show_widget
==
ui
->
pay
)
{
_need_exit
=
true
;
_label_pay_timer
->
stop
();
ui
->
label_pay_time_load
->
setVisible
(
false
);
ui
->
label_pay_money
->
setVisible
(
true
);
ui
->
label_pay_money
->
setText
(
message
);
ui
->
btn_pay_exit
->
setVisible
(
true
);
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_pay_msg_time
->
setVisible
(
true
);
_label_pay_timer
->
setLabel
(
ui
->
label_pay_msg_time
);
_label_pay_timer
->
start
(
3
);
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"退款成功"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"退款失败"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
endday
)
{
emit
Exits
();
return
;
}
if
(
type
==
shift
)
{
emit
Exits
();
return
;
}
if
(
type
==
againprint
)
{
emit
Exits
();
return
;
}
}
void
HostWidget
::
on_btn_mananger_register_clicked
()
{
QStringList
list
;
ShowWidget
(
ui
->
sign
);
ui
->
btn_sign_sign
->
hide
();
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"签到中..."
));
ui
->
label_sign_msg
->
setText
(
""
);
// ui->label_sign_storeid->setText(FMTool::GetString(_data.StoreNo, 20));
ui
->
label_sign_storeid
->
setText
(
FMTool
::
GetJsonValue
(
_posReqJsonObj
,
JSON_KEY_STOREID
).
toString
());
emit
RequestWithType
(
sign
,
list
);
}
void
HostWidget
::
on_btn_mananger_check_clicked
()
{
_type
=
finds
;
ui
->
label_find_msg
->
clear
();
ui
->
dateEdit_find_begin
->
setDisplayFormat
(
"yyyy-MM-dd"
);
ui
->
dateEdit_find_end
->
setDisplayFormat
(
"yyyy-MM-dd"
);
ui
->
dateEdit_find_begin
->
setDate
(
QDate
::
currentDate
());
ui
->
dateEdit_find_end
->
setDate
(
QDate
::
currentDate
());
ui
->
tableWidget
->
hide
();
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
hide
();
ShowWidget
(
ui
->
find
);
_curr_show_widget
=
ui
->
find
;
ui
->
label_find_page
->
setText
(
"1"
);
}
void
HostWidget
::
on_btn_mananger_print_clicked
()
{
QStringList
list
;
this
->
hide
();
emit
RequestWithType
(
endday
,
list
);
}
void
HostWidget
::
on_TimeOut
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"01"
,
QString
::
fromLocal8Bit
(
"操作超时"
));
}
void
HostWidget
::
on_btn_mananger_exit_clicked
()
{
this
->
hide
();
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_pay_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_find_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_sign_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"01"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_sign_sign_clicked
()
{
QStringList
list
;
ui
->
btn_sign_sign
->
hide
();
emit
RequestWithType
(
sign
,
list
);
}
void
HostWidget
::
on_btn_mananger_print_shift_clicked
()
{
QStringList
list
;
this
->
hide
();
emit
RequestWithType
(
shift
,
list
);
}
void
HostWidget
::
on_btn_find_check_clicked
()
{
QStringList
list
;
ui
->
tableWidget
->
clear
();
QStringList
headerString
;
headerString
<<
QString
::
fromLocal8Bit
(
"订单编号"
)
<<
QString
::
fromLocal8Bit
(
"订单金额"
)
<<
QString
::
fromLocal8Bit
(
"订单时间"
)
<<
QString
::
fromLocal8Bit
(
"支付状态"
)
/*<<QString::fromLocal8Bit("操作")*/
;
ui
->
tableWidget
->
horizontalHeader
()
->
setStyleSheet
(
"QHeaderView::section{border: 0px;font: 75 18px
\"
Microsoft YaHei UI Light
\"
;}"
);
ui
->
tableWidget
->
horizontalHeader
()
->
setFixedHeight
(
25
);
//设置表头的高度
ui
->
tableWidget
->
setHorizontalHeaderLabels
(
headerString
);
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
show
();
ui
->
btn_find_check
->
hide
();
list
.
append
(
ui
->
dateEdit_find_begin
->
text
().
replace
(
"/"
,
"-"
));
list
.
append
(
ui
->
dateEdit_find_end
->
text
().
replace
(
"/"
,
"-"
));
list
.
append
(
ui
->
label_find_page
->
text
());
_label_find_timer
->
start
();
emit
RequestWithType
(
finds
,
list
);
}
void
HostWidget
::
on_btn_find_next_clicked
()
{
if
(
ui
->
label_find_page
->
text
().
toInt
()
==
_line
)
return
;
int
page
=
ui
->
label_find_page
->
text
().
toInt
()
+
1
;
ui
->
label_find_page
->
setText
(
QString
::
number
(
page
));
on_btn_find_check_clicked
();
}
void
HostWidget
::
on_btn_find_up_clicked
()
{
if
(
ui
->
label_find_page
->
text
().
compare
(
"1"
)
!=
0
)
{
int
page
=
ui
->
label_find_page
->
text
().
toInt
()
-
1
;
ui
->
label_find_page
->
setText
(
QString
::
number
(
page
));
}
on_btn_find_check_clicked
();
}
#
include
"hostwidget.h"
#include "ui_hostwidget.h"
#include "QKeyEvent"
#include "QsLog.h"
#include "fmtool.h"
#include "labelstimer.h"
#include <QMovie>
#include <QDateTime>
#include <QJsonArray>
HostWidget
::
HostWidget
(
QWidget
*
parent
)
:
FMPWindow
(
parent
),
ui
(
new
Ui
::
HostWidget
)
{
ui
->
setupUi
(
this
);
_need_exit
=
false
;
_runing
=
false
;
_widgetlist
.
append
(
ui
->
pay
);
_widgetlist
.
append
(
ui
->
find
);
_widgetlist
.
append
(
ui
->
Manager
);
_widgetlist
.
append
(
ui
->
sign
);
_widgetlist
.
append
(
ui
->
wait
);
_curr_show_widget
=
NULL
;
//ui->btn_mananger_print->setEnabled(false);
//ui->btn_mananger_check->setEnabled(false);
InitWidget
();
_label_pay_timer
=
new
LabelsTimer
(
ui
->
label_pay_time
,
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
_label_find_timer
=
new
LabelsTimer
(
ui
->
label_check_timer
,
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
_label_wait_timer
=
new
LabelsTimer
(
ui
->
label_wait_time
,
30
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
connect
(
_label_pay_timer
,
&
LabelsTimer
::
timeout
,
this
,
&
HostWidget
::
on_TimeOut
);
connect
(
_label_find_timer
,
&
LabelsTimer
::
timeout
,
this
,
&
HostWidget
::
on_TimeOut
);
connect
(
_label_wait_timer
,
&
LabelsTimer
::
timeout
,
this
,
&
HostWidget
::
on_TimeOut
);
_label_pay_movie
=
new
QMovie
(
":res/loading.gif"
);
_label_pay_movie
->
start
();
ui
->
label_pay_time_load
->
setMovie
(
_label_pay_movie
);
ui
->
label_logo
->
setMovie
(
_label_pay_movie
);
ui
->
label_wait_time_lod
->
setMovie
(
_label_pay_movie
);
ui
->
tableWidget
->
setEditTriggers
(
QAbstractItemView
::
NoEditTriggers
);
//ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui
->
tableWidget
->
verticalHeader
()
->
setDefaultSectionSize
(
45
);
}
void
HostWidget
::
ShowWidget
(
QWidget
*
showwidget
)
{
if
(
showwidget
==
ui
->
pay
)
{
ui
->
lineEdit_pay_code
->
clear
();
ui
->
lineEdit_pay_code
->
setWindowOpacity
(
0
);
ui
->
lineEdit_pay_code
->
setFocus
();
ui
->
label_pay_msg_time
->
setVisible
(
false
);
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
}
for
(
int
i
=
0
;
i
<
_widgetlist
.
size
();
++
i
)
{
if
(
showwidget
==
_widgetlist
.
at
(
i
))
{
if
(
showwidget
->
isHidden
())
showwidget
->
show
();
continue
;
}
_widgetlist
.
at
(
i
)
->
hide
();
}
//this->show();
this
->
showFullScreen
();
}
void
HostWidget
::
InitWidget
()
{
for
(
int
i
=
0
;
i
<
_widgetlist
.
size
();
++
i
)
{
_widgetlist
.
at
(
i
)
->
hide
();
}
}
void
HostWidget
::
setRuning
(
bool
runing
)
{
_runing
=
runing
;
}
HostWidget
::~
HostWidget
()
{
delete
ui
;
if
(
_label_pay_timer
!=
NULL
)
{
delete
_label_pay_timer
;
_label_pay_timer
=
NULL
;
}
}
void
HostWidget
::
keyPressEvent
(
QKeyEvent
*
ke
)
{
if
(
ke
->
key
()
==
Qt
::
Key_Return
&&
_curr_show_widget
==
ui
->
pay
)
{
ShowPayWidget
();
}
else
{
FMPWindow
::
keyPressEvent
(
ke
);
}
}
void
HostWidget
::
ShowPayWidget
()
{
if
(
!
_need_exit
&&
_runing
==
false
)
{
_runing
=
true
;
ui
->
btn_pay_exit
->
hide
();
ui
->
label_pay_money
->
hide
();
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
QStringList
list
;
list
.
append
(
ui
->
lineEdit_pay_code
->
text
());
QLOG_INFO
()
<<
list
;
if
(
_type
==
pay
)
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝支付中..."
));
emit
RequestWithType
(
pay
,
list
);
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝退款中..."
));
emit
RequestWithType
(
refund
,
list
);
}
}
else
emit
Exits
();
}
void
HostWidget
::
ShowWithRequest
(
AlipayRequest
request
)
{
QString
reqtype
;
_data
=
request
;
reqtype
.
append
(
request
.
TransType
[
0
]).
append
(
request
.
TransType
[
1
]);
if
(
reqtype
.
compare
(
"10"
)
==
0
)
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
}
if
(
reqtype
.
compare
(
"30"
)
==
0
)
{
_type
=
pay
;
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetString
(
_data
.
Amount
,
12
).
toInt
()
/
100.0
;
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描支付宝二维码"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消支付"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"需收取 ¥ %1"
).
arg
(
Amount
));
}
if
(
reqtype
.
compare
(
"40"
)
==
0
)
{
_type
=
refund
;
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
// double Amount = FMTool::GetString(_data.Amount, 12).toInt()/100.0;
// ui->label_pay_title->setText(QString::fromLocal8Bit("请扫描退款凭证号"));
// ui->btn_pay_exit->setText(QString::fromLocal8Bit("取消退款"));
// ui->label_pay_money->setText(QString::fromLocal8Bit("退款 ¥ %1").arg(Amount));
ui
->
btn_pay_exit
->
hide
();
ui
->
label_pay_money
->
hide
();
//_refundamout = FMTool::GetString(_data.Amount, 12).toInt();
_label_pay_timer
->
start
(
60
,
QString
::
fromLocal8Bit
(
"%1 秒"
));
QStringList
list
;
list
.
append
(
FMTool
::
GetString
(
request
.
OriginTrace
,
64
));
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付宝退款中..."
));
emit
RequestWithType
(
refund
,
list
);
}
if
(
reqtype
.
compare
(
"80"
)
==
0
)
{
_type
=
finds
;
ui
->
label_find_msg
->
clear
();
ui
->
dateEdit_find_begin
->
setDate
(
QDate
::
currentDate
());
ui
->
dateEdit_find_end
->
setDate
(
QDate
::
currentDate
());
ui
->
tableWidget
->
hide
();
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
hide
();
ShowWidget
(
ui
->
find
);
_curr_show_widget
=
ui
->
find
;
ui
->
label_find_page
->
setText
(
"1"
);
}
}
void
HostWidget
::
ShowWiteJson
(
bool
flag
,
QJsonObject
object
,
QString
error
)
{
ui
->
widget_check_load
->
hide
();
ui
->
btn_find_check
->
show
();
_label_find_timer
->
stop
();
QLOG_INFO
()
<<
object
;
if
(
!
flag
)
{
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"查询失败(%1)"
).
arg
(
error
));
}
else
{
if
((
object
.
contains
(
JSON_KEY_TOTALNUM
)
&&
object
[
JSON_KEY_TOTALNUM
].
toInt
()
==
0
)
||
!
object
.
contains
(
JSON_KEY_QUERYINFO
))
{
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"无交易记录"
));
}
else
{
ui
->
frame
->
show
();
ui
->
label_find_msg
->
setText
(
QString
::
fromLocal8Bit
(
"%1到%2的账单流水"
).
arg
(
ui
->
dateEdit_find_begin
->
text
(),
ui
->
dateEdit_find_end
->
text
()));
if
(
ui
->
label_find_page
->
text
().
compare
(
"1"
)
==
0
)
{
_line
=
object
[
JSON_KEY_TOTALNUM
].
toInt
()
/
10
;
if
(
object
[
JSON_KEY_TOTALNUM
].
toInt
()
%
10
!=
0
)
_line
+=
1
;
}
QJsonArray
array
=
object
[
JSON_KEY_QUERYINFO
].
toArray
();
foreach
(
auto
val
,
array
)
{
QJsonObject
tmp
=
val
.
toObject
();
ui
->
tableWidget
->
insertRow
(
0
);
QTableWidgetItem
*
item0
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_FMID
].
toString
());
item0
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
0
,
item0
);
QTableWidgetItem
*
item1
=
new
QTableWidgetItem
(
QString
::
number
(
tmp
[
JSON_KEY_TRANSAMOUNT
].
toInt
()
/
100.0
));
item1
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
1
,
item1
);
QTableWidgetItem
*
item2
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_TRANSTIME
].
toString
());
item2
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
2
,
item2
);
QTableWidgetItem
*
item3
=
new
QTableWidgetItem
(
tmp
[
JSON_KEY_STATEMSG
].
toString
());
item3
->
setTextAlignment
(
Qt
::
AlignCenter
);
ui
->
tableWidget
->
setItem
(
0
,
3
,
item3
);
QWidget
*
pWdg
=
new
QWidget
(
ui
->
tableWidget
);
QHBoxLayout
*
hLayout
=
new
QHBoxLayout
(
pWdg
);
QPushButton
*
pBtn
=
new
QPushButton
(
pWdg
);
pBtn
->
setFixedSize
(
70
,
30
);
pBtn
->
setFocusPolicy
(
Qt
::
NoFocus
);
pBtn
->
setProperty
(
"orderId"
,
tmp
[
JSON_KEY_FMID
].
toString
());
pBtn
->
setText
(
QString
::
fromLocal8Bit
(
"打印"
));
hLayout
->
addWidget
(
pBtn
);
hLayout
->
setMargin
(
0
);
pWdg
->
setLayout
(
hLayout
);
ui
->
tableWidget
->
setCellWidget
(
0
,
4
,
pWdg
);
// 操作按钮
pBtn
->
setStyleSheet
(
"border:0px;border-radius:2px;background-color: rgb(0, 179, 238);font: 75 20px
\"
Microsoft YaHei UI Light
\"
;"
);
qDebug
()
<<
"********************-----------*******************"
<<
tmp
;
if
(
tmp
[
JSON_KEYT_STATE
].
toString
().
toInt
()
!=
1
)
{
pBtn
->
setEnabled
(
false
);
pBtn
->
setStyleSheet
(
"border:0px;border-radius:2px;background-color: rgb(208, 208, 208);font: 75 20px
\"
Microsoft YaHei UI Light
\"
;"
);
}
connect
(
pBtn
,
&
QPushButton
::
clicked
,
this
,
[
this
,
pBtn
]()
{
QStringList
list
;
list
.
append
(
pBtn
->
property
(
"orderId"
).
toString
());
on_btn_printagain_clicked
();
emit
RequestWithType
(
againprint
,
list
);
});
}
ui
->
tableWidget
->
sortByColumn
(
2
,
Qt
::
DescendingOrder
);
ui
->
tableWidget
->
show
();
}
}
}
void
HostWidget
::
ShowWithRequest
(
QJsonObject
requestObj
)
{
_type
=
(
ReqType
)
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_REQTYPE
).
toInt
();
_posReqJsonObj
=
requestObj
;
switch
(
_type
)
{
case
manage
:
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
break
;
}
case
sign
:
{
ShowWidget
(
ui
->
Manager
);
_curr_show_widget
=
ui
->
Manager
;
on_btn_mananger_register_clicked
();
break
;
}
case
pay
:
{
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_TRANSAMOUNT
).
toInt
()
/
100.0
;
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描输入支付宝二维码"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消支付"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"需收取 ¥ %1"
).
arg
(
Amount
));
break
;
}
case
refund
:
{
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
double
Amount
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_TRANSAMOUNT
).
toInt
()
/
100.0
;
QString
FmId
=
FMTool
::
GetJsonValue
(
requestObj
,
JSON_KEY_FMID
).
toString
();
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"请扫描退款凭证号"
));
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"取消退款"
));
ui
->
label_pay_money
->
setText
(
QString
::
fromLocal8Bit
(
"退款 ¥ %1"
).
arg
(
Amount
));
ui
->
lineEdit_pay_code
->
setText
(
FmId
);
ShowPayWidget
();
break
;
}
default
:
break
;
}
}
void
HostWidget
::
ShowWiteMGS
(
ReqType
type
,
bool
flag
,
QString
message
)
{
if
(
type
==
sign
)
{
_need_exit
=
true
;
if
(
flag
)
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"获取签名成功"
));
else
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"获取签名失败"
));
ui
->
label_sign_msg
->
setText
(
message
);
ui
->
btn_sign_sign
->
show
();
ShowWidget
(
ui
->
sign
);
return
;
}
if
(
type
==
pay
&&
_curr_show_widget
==
ui
->
pay
)
{
_need_exit
=
true
;
_label_pay_timer
->
stop
();
ui
->
label_pay_time_load
->
setVisible
(
false
);
ui
->
label_pay_money
->
setVisible
(
true
);
ui
->
label_pay_money
->
setText
(
message
);
ui
->
btn_pay_exit
->
setVisible
(
true
);
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_pay_msg_time
->
setVisible
(
true
);
_label_pay_timer
->
setLabel
(
ui
->
label_pay_msg_time
);
_label_pay_timer
->
start
(
3
);
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付成功"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"支付失败"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
refund
&&
_curr_show_widget
==
ui
->
pay
)
{
_need_exit
=
true
;
_label_pay_timer
->
stop
();
ui
->
label_pay_time_load
->
setVisible
(
false
);
ui
->
label_pay_money
->
setVisible
(
true
);
ui
->
label_pay_money
->
setText
(
message
);
ui
->
btn_pay_exit
->
setVisible
(
true
);
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_pay_msg_time
->
setVisible
(
true
);
_label_pay_timer
->
setLabel
(
ui
->
label_pay_msg_time
);
_label_pay_timer
->
start
(
3
);
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"退款成功"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"退款失败"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
endday
)
{
_need_exit
=
true
;
_label_wait_timer
->
stop
();
ui
->
label_wait_time_lod
->
setVisible
(
false
);
ui
->
label_wait_title
->
show
();
ui
->
btn_wait_quit
->
show
();
ui
->
btn_wait_quit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_wait_msg_time
->
setVisible
(
true
);
_label_wait_timer
->
setLabel
(
ui
->
label_wait_msg_time
);
_label_wait_timer
->
start
(
3
);
ui
->
label_wait_title
->
setText
(
message
);
ui
->
label_wait_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_wait_title
->
setText
(
message
);
ui
->
label_wait_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
shift
)
{
_need_exit
=
true
;
_label_wait_timer
->
stop
();
ui
->
label_wait_time_lod
->
setVisible
(
false
);
ui
->
label_wait_title
->
show
();
ui
->
btn_wait_quit
->
show
();
ui
->
btn_wait_quit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_wait_msg_time
->
setVisible
(
true
);
_label_wait_timer
->
setLabel
(
ui
->
label_wait_msg_time
);
_label_wait_timer
->
start
(
3
);
ui
->
label_wait_title
->
setText
(
message
);
ui
->
label_wait_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_wait_title
->
setText
(
message
);
ui
->
label_wait_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
if
(
type
==
againprint
)
{
_need_exit
=
true
;
_label_pay_timer
->
stop
();
ui
->
label_pay_time_load
->
setVisible
(
false
);
ui
->
label_pay_money
->
setVisible
(
true
);
ui
->
label_pay_money
->
setText
(
message
);
ui
->
label_pay_title
->
show
();
ui
->
label_pay_msg_time
->
show
();
ui
->
btn_pay_exit
->
setVisible
(
true
);
ui
->
btn_pay_exit
->
setText
(
QString
::
fromLocal8Bit
(
"确认"
));
if
(
flag
)
{
ui
->
label_pay_msg_time
->
setVisible
(
true
);
_label_pay_timer
->
setLabel
(
ui
->
label_pay_msg_time
);
_label_pay_timer
->
start
(
3
);
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"重印小票成功"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/success.png"
));
}
else
{
ui
->
label_pay_msg_time
->
hide
();
ui
->
label_pay_title
->
setText
(
QString
::
fromLocal8Bit
(
"重印小票失败"
));
ui
->
label_pay_time
->
setPixmap
(
QPixmap
(
":res/warning.png"
));
}
return
;
}
}
void
HostWidget
::
on_btn_printagain_clicked
()
{
_type
=
againprint
;
ui
->
label_pay_title
->
hide
();
ui
->
label_pay_money
->
hide
();
//ui->label_pay_msg_time->hide();
ui
->
btn_pay_exit
->
hide
();
ShowWidget
(
ui
->
pay
);
_curr_show_widget
=
ui
->
pay
;
}
void
HostWidget
::
on_btn_mananger_register_clicked
()
{
QStringList
list
;
ShowWidget
(
ui
->
sign
);
ui
->
btn_sign_sign
->
hide
();
ui
->
label_sign_title
->
setText
(
QString
::
fromLocal8Bit
(
"签到中..."
));
ui
->
label_sign_msg
->
setText
(
""
);
// ui->label_sign_storeid->setText(FMTool::GetString(_data.StoreNo, 20));
ui
->
label_sign_storeid
->
setText
(
FMTool
::
GetJsonValue
(
_posReqJsonObj
,
JSON_KEY_STOREID
).
toString
());
emit
RequestWithType
(
sign
,
list
);
}
void
HostWidget
::
on_btn_mananger_check_clicked
()
{
_type
=
finds
;
ui
->
label_find_msg
->
clear
();
ui
->
dateEdit_find_begin
->
setDisplayFormat
(
"yyyy-MM-dd"
);
ui
->
dateEdit_find_end
->
setDisplayFormat
(
"yyyy-MM-dd"
);
ui
->
dateEdit_find_begin
->
setDate
(
QDate
::
currentDate
());
ui
->
dateEdit_find_end
->
setDate
(
QDate
::
currentDate
());
ui
->
tableWidget
->
hide
();
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
hide
();
ShowWidget
(
ui
->
find
);
_curr_show_widget
=
ui
->
find
;
ui
->
label_find_page
->
setText
(
"1"
);
}
void
HostWidget
::
on_btn_mananger_print_clicked
()
{
QStringList
list
;
// this->hide();
ui
->
label_wait_msg_time
->
setVisible
(
false
);
ui
->
btn_wait_quit
->
hide
();
ui
->
label_wait_time_lod
->
setVisible
(
true
);
ui
->
label_wait_title
->
setText
(
QString
::
fromLocal8Bit
(
"正在打印日结单.."
));
ShowWidget
(
ui
->
wait
);
_curr_show_widget
=
ui
->
wait
;
_label_wait_timer
->
start
();
emit
RequestWithType
(
endday
,
list
);
}
void
HostWidget
::
on_TimeOut
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"01"
,
QString
::
fromLocal8Bit
(
"操作超时"
));
}
void
HostWidget
::
on_btn_mananger_exit_clicked
()
{
this
->
hide
();
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_pay_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_find_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_sign_exit_clicked
()
{
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"01"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
void
HostWidget
::
on_btn_sign_sign_clicked
()
{
QStringList
list
;
ui
->
btn_sign_sign
->
hide
();
emit
RequestWithType
(
sign
,
list
);
}
void
HostWidget
::
on_btn_mananger_print_shift_clicked
()
{
QStringList
list
;
// this->hide();
ui
->
label_wait_msg_time
->
setVisible
(
false
);
ui
->
btn_wait_quit
->
hide
();
ui
->
label_wait_time_lod
->
setVisible
(
true
);
ui
->
label_wait_title
->
setText
(
QString
::
fromLocal8Bit
(
"正在打印交班单.."
));
ShowWidget
(
ui
->
wait
);
_curr_show_widget
=
ui
->
wait
;
_label_wait_timer
->
start
();
emit
RequestWithType
(
shift
,
list
);
}
void
HostWidget
::
on_btn_find_check_clicked
()
{
QStringList
list
;
ui
->
tableWidget
->
clear
();
QStringList
headerString
;
headerString
<<
QString
::
fromLocal8Bit
(
"订单编号"
)
<<
QString
::
fromLocal8Bit
(
"订单金额"
)
<<
QString
::
fromLocal8Bit
(
"订单时间"
)
<<
QString
::
fromLocal8Bit
(
"支付状态"
)
/*<<QString::fromLocal8Bit("操作")*/
;
int
width
=
ui
->
widget_find_main
->
width
()
-
4
;
qDebug
()
<<
"==========="
<<
width
;
//ui->tableWidget->setColumnWidth(0,1/10.0*width);
ui
->
tableWidget
->
horizontalHeader
()
->
setStyleSheet
(
"QHeaderView::section{border: 0px;font: 75 18px
\"
Microsoft YaHei UI Light
\"
;}"
);
ui
->
tableWidget
->
horizontalHeader
()
->
setFixedHeight
(
25
);
//设置表头的高度
ui
->
tableWidget
->
setHorizontalHeaderLabels
(
headerString
);
ui
->
tableWidget
->
setColumnWidth
(
0
,
5
/
14.0
*
width
);
ui
->
tableWidget
->
setColumnWidth
(
1
,
2
/
14.0
*
width
);
ui
->
tableWidget
->
setColumnWidth
(
2
,
3
/
14.0
*
width
);
ui
->
tableWidget
->
setColumnWidth
(
3
,
2
/
14.0
*
width
);
ui
->
frame
->
hide
();
ui
->
widget_check_load
->
show
();
ui
->
btn_find_check
->
hide
();
list
.
append
(
ui
->
dateEdit_find_begin
->
text
().
replace
(
"/"
,
"-"
));
list
.
append
(
ui
->
dateEdit_find_end
->
text
().
replace
(
"/"
,
"-"
));
list
.
append
(
ui
->
label_find_page
->
text
());
_label_find_timer
->
start
();
emit
RequestWithType
(
finds
,
list
);
}
void
HostWidget
::
on_btn_find_next_clicked
()
{
if
(
ui
->
label_find_page
->
text
().
toInt
()
==
_line
)
return
;
int
page
=
ui
->
label_find_page
->
text
().
toInt
()
+
1
;
ui
->
label_find_page
->
setText
(
QString
::
number
(
page
));
on_btn_find_check_clicked
();
}
void
HostWidget
::
on_btn_find_up_clicked
()
{
if
(
ui
->
label_find_page
->
text
().
compare
(
"1"
)
!=
0
)
{
int
page
=
ui
->
label_find_page
->
text
().
toInt
()
-
1
;
ui
->
label_find_page
->
setText
(
QString
::
number
(
page
));
}
on_btn_find_check_clicked
();
}
void
HostWidget
::
on_btn_wait_quit_clicked
()
{
_label_wait_timer
->
stop
();
this
->
hide
();
if
(
_need_exit
)
emit
Exits
();
else
emit
ExitWithMSG
(
"02"
,
QString
::
fromLocal8Bit
(
"收银员取消"
));
}
sbkpay/hostwidget.h
View file @
d8b004d6
...
...
@@ -45,6 +45,8 @@ protected:
void
keyPressEvent
(
QKeyEvent
*
ke
);
private
slots
:
void
on_btn_printagain_clicked
();
void
on_btn_mananger_register_clicked
();
void
on_btn_mananger_check_clicked
();
...
...
@@ -71,6 +73,8 @@ private slots:
void
on_btn_mananger_print_shift_clicked
();
void
on_btn_wait_quit_clicked
();
private
:
void
ShowWidget
(
QWidget
*
showwidget
);
...
...
@@ -92,6 +96,8 @@ private:
LabelsTimer
*
_label_find_timer
;
LabelsTimer
*
_label_wait_timer
;
QMovie
*
_label_pay_movie
;
int
_line
;
...
...
sbkpay/hostwidget.ui
View file @
d8b004d6
...
...
@@ -6,7 +6,7 @@
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
2
1
11
</width>
<width>
2
5
11
</width>
<height>
839
</height>
</rect>
</property>
...
...
@@ -1924,6 +1924,458 @@ QHeaderView::section{
</layout>
</widget>
</item>
<item>
<widget
class=
"QWidget"
name=
"wait"
native=
"true"
>
<property
name=
"minimumSize"
>
<size>
<width>
310
</width>
<height>
0
</height>
</size>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_9"
>
<property
name=
"spacing"
>
<number>
0
</number>
</property>
<property
name=
"leftMargin"
>
<number>
0
</number>
</property>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<spacer
name=
"verticalSpacer_12"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QWidget"
name=
"horizontalWidget"
native=
"true"
>
<property
name=
"minimumSize"
>
<size>
<width>
310
</width>
<height>
310
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
16777215
</width>
<height>
16777215
</height>
</size>
</property>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_12"
>
<property
name=
"spacing"
>
<number>
0
</number>
</property>
<property
name=
"leftMargin"
>
<number>
0
</number>
</property>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<spacer
name=
"horizontalSpacer_33"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QWidget"
name=
"widget_wait_main"
native=
"true"
>
<property
name=
"minimumSize"
>
<size>
<width>
310
</width>
<height>
310
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
310
</width>
<height>
310
</height>
</size>
</property>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#widget_wait_main
{
font: 9pt
"
Agency FB
"
;
background-color: rgb(255, 255, 255);
border-radius:15px
}
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_10"
>
<property
name=
"spacing"
>
<number>
0
</number>
</property>
<property
name=
"leftMargin"
>
<number>
0
</number>
</property>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<spacer
name=
"verticalSpacer_23"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QLabel"
name=
"label_wait_title"
>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#label_wait_title
{
font: 75 25px
"
Microsoft YaHei UI Light
"
;
}
</string>
</property>
<property
name=
"text"
>
<string>
请等待...
</string>
</property>
<property
name=
"alignment"
>
<set>
Qt::AlignCenter
</set>
</property>
</widget>
</item>
<item>
<spacer
name=
"verticalSpacer_24"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QWidget"
name=
"horizontalWidget"
native=
"true"
>
<property
name=
"minimumSize"
>
<size>
<width>
50
</width>
<height>
50
</height>
</size>
</property>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_16"
>
<property
name=
"spacing"
>
<number>
0
</number>
</property>
<property
name=
"leftMargin"
>
<number>
0
</number>
</property>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<spacer
name=
"horizontalSpacer_36"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QWidget"
name=
"widget_wait_time"
native=
"true"
>
<property
name=
"minimumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<widget
class=
"QLabel"
name=
"label_wait_time"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
64
</width>
<height>
64
</height>
</rect>
</property>
<property
name=
"minimumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#label_wait_time
{
font: 16px
"
微软雅黑
"
;
color: rgb(0, 179, 238);
min-width: 64px; min-height:64px;
max-width: 64px; max-height:64px;
}
</string>
</property>
<property
name=
"text"
>
<string>
<
html
><
head/
><
body
><
p
>
20 秒
<
/p
><
/body
><
/html
>
</string>
</property>
<property
name=
"alignment"
>
<set>
Qt::AlignCenter
</set>
</property>
</widget>
<widget
class=
"QLabel"
name=
"label_wait_time_lod"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
64
</width>
<height>
64
</height>
</rect>
</property>
<property
name=
"minimumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
64
</width>
<height>
64
</height>
</size>
</property>
<property
name=
"text"
>
<string>
<
html
><
head/
><
body
><
p
><
br/
><
/p
><
/body
><
/html
>
</string>
</property>
<property
name=
"alignment"
>
<set>
Qt::AlignCenter
</set>
</property>
</widget>
</widget>
</item>
<item>
<spacer
name=
"horizontalSpacer_35"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<spacer
name=
"verticalSpacer_26"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
0
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QLabel"
name=
"label_wait_msg_time"
>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#label_wait_msg_time
{
font: 16px
"
微软雅黑
"
;
}
</string>
</property>
<property
name=
"text"
>
<string>
3
</string>
</property>
<property
name=
"alignment"
>
<set>
Qt::AlignCenter
</set>
</property>
</widget>
</item>
<item>
<spacer
name=
"verticalSpacer_27"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
0
</height>
</size>
</property>
</spacer>
</item>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_6"
>
<property
name=
"spacing"
>
<number>
0
</number>
</property>
<item>
<spacer
name=
"horizontalSpacer_38"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
<item>
<widget
class=
"QPushButton"
name=
"btn_wait_quit"
>
<property
name=
"minimumSize"
>
<size>
<width>
280
</width>
<height>
33
</height>
</size>
</property>
<property
name=
"maximumSize"
>
<size>
<width>
16777215
</width>
<height>
16777215
</height>
</size>
</property>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#btn_wait_quit
{
border:0px;
border-radius:3px;
background-color: rgb(128, 134, 143);
font: 75 20px
"
Microsoft YaHei UI Light
"
;
color: rgb(255, 255, 255);
}
</string>
</property>
<property
name=
"text"
>
<string>
关闭
</string>
</property>
</widget>
</item>
<item>
<spacer
name=
"horizontalSpacer_37"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer
name=
"verticalSpacer_14"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<spacer
name=
"horizontalSpacer_34"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
40
</width>
<height>
20
</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<spacer
name=
"verticalSpacer_13"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault
spacing=
"6"
margin=
"11"
/>
...
...
sbkpay/main.cpp
View file @
d8b004d6
...
...
@@ -289,7 +289,7 @@ int main(int argc, char *argv[])
// control.Start(as, b);
char
spccIn
[
MAX_BUF_LEN
]
=
"{
\"
fmId
\"
:
\"
0123456789012345678
\"
,
\"
reqType
\"
:35
3
,
\"
storeId
\"
:
\"
1713
\"
,
\"
stationId
\"
:
\"
1
\"
,
\"
partnerId
\"
:1443,
\"
operatorId
\"
:
\"
sssaw
\"
,
\"
transId
\"
:
\"
52342342323806
\"
,
\"
transAmount
\"
:8000,
\"
partnerOrderId
\"
:
\"
909911039993720192019
\"
,
\"
businessDate
\"
:
\"
20170508
\"
,
\"
products
\"
:[{
\"
pid
\"
:
\"
123
\"
,
\"
name
\"
:
\"
中杯拿铁
\"
,
\"
price
\"
:321,
\"
salesType
\"
:
\"
NORMAL
\"
}]}"
;
char
spccIn
[
MAX_BUF_LEN
]
=
"{
\"
fmId
\"
:
\"
0123456789012345678
\"
,
\"
reqType
\"
:35
1
,
\"
storeId
\"
:
\"
1713
\"
,
\"
stationId
\"
:
\"
1
\"
,
\"
partnerId
\"
:1443,
\"
operatorId
\"
:
\"
sssaw
\"
,
\"
transId
\"
:
\"
52342342323806
\"
,
\"
transAmount
\"
:8000,
\"
partnerOrderId
\"
:
\"
909911039993720192019
\"
,
\"
businessDate
\"
:
\"
20170508
\"
,
\"
products
\"
:[{
\"
pid
\"
:
\"
123
\"
,
\"
name
\"
:
\"
中杯拿铁
\"
,
\"
price
\"
:321,
\"
salesType
\"
:
\"
NORMAL
\"
}]}"
;
control
.
Start
(
spccIn
,
b
);
return
a
.
exec
();
...
...
sbkpay/sbkpay.pro
View file @
d8b004d6
...
...
@@ -13,10 +13,9 @@ TARGET = sbkpay
include
(
"./QsLog/QsLog.pri"
)
CONFIG
+=
C
++
11
SBKDLL
CONFIG
+=
C
++
11
SBKDLL
1
#DEFINES += SBKTEST
#DEFINES += SBKDLL
DEFINES
+=
MOCK
include
(
$$
PWD
/
qtwinmigrate
/
src
/
qtwinmigrate
.
pri
)
...
...
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