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
xiaojing.zhang
fmp_vip
Commits
62e0fa72
Commit
62e0fa72
authored
Jan 31, 2018
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 实现退款退单。
parent
a77fbb94
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
229 additions
and
199 deletions
+229
-199
fmvip/task/taskrefund.cpp
+136
-100
fmvip/task/taskrefund.h
+4
-7
fmvip/windows/fmviprefund.cpp
+86
-84
fmvip/windows/fmviprefund.h
+3
-8
No files found.
fmvip/task/taskrefund.cpp
View file @
62e0fa72
#
include
"taskrefund.h"
#include "fmviprefund.h"
#include "database/dbop.h"
//#include "items/item.h"
//#include "items/order.h"
//#include "items/pay.h"
//#include "items/storeinfo.h"
#include "taskothers.h"
#include <QSharedPointer>
#include <QJsonDocument>
#include "fmmsgwnd.h"
using
namespace
DB
;
TaskRefund
::
TaskRefund
(
QJsonObject
&
jsonObj
,
Session
*
session
,
QObject
*
parent
)
:
FMTask
(
jsonObj
,
FM_Refund
,
session
,
parent
)
,
_refundAmount
(
0
)
// , _order(new FMItem::Order(this
))
,
_order
(
new
Order
(
))
{
}
TaskRefund
::~
TaskRefund
()
{
// delete _order;
}
void
TaskRefund
::
packagePOSReq
()
{
// QString orderId = getPosJsonValue(PosProps.OrderId).toString();
// session()->addData(PosProps.OrderId, orderId);
// FMItem::StoreInfo storeInfo;
// bool isOk = DBOP::GetLastItem(&storeInfo);
// if(isOk) {
// posReqJsonObj = storeInfo.toJson(QStringList(), posReqJsonObj);
// } else {
// QString info = QString::fromLocal8Bit("未设置门店信息,不能进行退款.");
// FMP_WARN() << info;
// setError(FM_API_ERROR, info);
// return;
// }
// DBOP::GetOrderByOrderId(orderId, _order);
// if(_order->isNew()) {
// QString info = QString::fromLocal8Bit("未找到订单信息,不能进行退款.");
// FMP_WARN() << info;
// setError(FM_API_ERROR, info);
// return;
// } else if(DBOP::GetPaysByOrderDBId(_order->DBID()).isEmpty()) {
// QString info = QString::fromLocal8Bit("订单中没有可以进行退款的支付.");
// FMP_WARN() << info;
// setError(FM_API_ERROR, info);
// return;
// }
QString
orderId
=
getPosJsonValue
(
PosProps
.
OrderId
).
toString
();
session
()
->
addData
(
PosProps
.
OrderId
,
orderId
);
QSharedPointer
<
StoreInfo
>
storeInfo
=
GetLastStoreInfo
();
if
(
storeInfo
==
nullptr
)
{
QString
info
=
QString
::
fromLocal8Bit
(
"未设置门店信息,不能进行支付."
);
setError
(
FM_API_ERROR
,
info
);
return
;
}
posReqJsonObj
[
PosProps
.
StoreId
]
=
storeInfo
->
storeId
();
posReqJsonObj
[
PosProps
.
PosId
]
=
storeInfo
->
posId
();
posReqJsonObj
[
PosProps
.
BusinessDate
]
=
storeInfo
->
businessDate
();
posReqJsonObj
[
PosProps
.
OperatorId
]
=
storeInfo
->
operatorId
();
try
{
// _transactionPay.reset(DBSP()->begin());
transaction
t
(
DBSP
()
->
begin
());
// 检查订单是否已存在
odb
::
result
<
Order
>
r
=
DBSP
()
->
query
<
Order
>
(
query
<
Order
>::
orderId
==
orderId
);
if
(
r
.
empty
())
{
QString
info
=
QString
::
fromLocal8Bit
(
"未找到订单信息,不能进行退款."
);
FMP_ERROR
()
<<
info
;
setError
(
FM_API_ERROR
,
info
);
}
else
{
_order
=
DBSP
()
->
load
<
Order
>
(
r
.
begin
()
->
id
());
// 检查订单是否已结算
if
(
_order
->
payList
().
isEmpty
())
{
QString
info
=
QString
::
fromLocal8Bit
(
"订单中没有可以进行退款的支付."
);
FMP_ERROR
()
<<
info
;
setError
(
FM_API_ERROR
,
info
);
return
;
}
session
()
->
addData
(
"RefundOrderDBID"
,
(
qulonglong
)(
_order
->
id
()));
}
}
catch
(
const
odb
::
exception
&
e
)
{
QString
info
=
QString
::
fromLocal8Bit
(
"查询订单时异常:%1"
).
arg
(
e
.
what
());
FMP_ERROR
()
<<
info
;
setError
(
FM_API_ERROR
,
info
);
return
;
}
}
void
TaskRefund
::
setWindow
()
{
// // 已结算则直接退订单
// if(_order->settled()) {
// onRefundOrder(_order->DBID());
// }
// // 未结算,仅有一笔支付则直接退该笔支付
//// else if(_order->payList().size() == 1) {
//// onRefundPay(_order->payList().first()->DBID());
//// }
// // 其他情况显示界面
// else {
// _window = new FMVipRefund();
// connect(qobject_cast<FMVipRefund*>(_window), &FMVipRefund::refundPay, this, &TaskRefund::onRefundPay);
// connect(qobject_cast<FMVipRefund*>(_window), &FMVipRefund::refundOrder, this, &TaskRefund::onRefundOrder);
// }
// 已结算则直接退订单
if
(
_order
->
settled
())
{
onRefundOrder
(
_order
->
id
());
}
// 未结算,仅有一笔支付则直接退该笔支付
else
if
(
_order
->
payList
().
size
()
==
1
)
{
QSharedPointer
<
Pay
>
firstPay
=
_order
->
payList
().
first
().
load
();
onRefundPay
(
firstPay
->
id
());
}
// 其他情况显示界面
else
{
_window
=
new
FMVipRefund
();
connect
(
qobject_cast
<
FMVipRefund
*>
(
_window
),
&
FMVipRefund
::
refundPay
,
this
,
&
TaskRefund
::
onRefundPay
);
connect
(
qobject_cast
<
FMVipRefund
*>
(
_window
),
&
FMVipRefund
::
refundOrder
,
this
,
&
TaskRefund
::
onRefundOrder
);
}
}
void
TaskRefund
::
packageServerReq
()
...
...
@@ -83,60 +99,80 @@ void TaskRefund::packagePOSRsp()
posRspJsonObj
[
"refund_amount"
]
=
_refundAmount
;
}
void
TaskRefund
::
onRefundPay
(
int
DBID
)
void
TaskRefund
::
onRefundPay
(
unsigned
long
DBID
)
{
// posReqJsonObj[PosProps.TransId] = session()->data(PosProps.TransId).toString();
// QSharedPointer<FMItem::Pay> payPointer = DBOP::GetPayByDBId(DBID);
// QSharedPointer<FMItem::Order> orderPointer = DBOP::GetOrderByDBId(payPointer->orderDBID());
// posReqJsonObj = orderPointer->toJson(QStringList(), posReqJsonObj);
// posReqJsonObj[PosProps.TransId] = payPointer->fmTransId();
// 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());
// _refundAmount += payPointer->payAmount();
// }
// if(_window!=nullptr) {
// qobject_cast<FMVipRefund*>(_window)->refresh();
// qobject_cast<FMVipRefund*>(_window)->setIsRefundSuccess(true);
// }
// } else {
// QString msg = searchJsonValue(rspObj, PosProps.Msg).toString();
// FMMsgWnd::FailureWnd(msg, _window);
// }
posReqJsonObj
[
PosProps
.
TransId
]
=
session
()
->
data
(
PosProps
.
TransId
).
toString
();
try
{
odb
::
transaction
t
(
DBSP
()
->
begin
());
QSharedPointer
<
Pay
>
payPointer
=
DBSP
()
->
load
<
Pay
>
(
DBID
);
posReqJsonObj
[
PosProps
.
TransId
]
=
payPointer
->
fmTransId
();
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
());
DBSP
()
->
persist
(
payPointer
);
_order
->
setPaidAmount
(
_order
->
paidAmount
()
-
payPointer
->
refundAmount
());
DBSP
()
->
persist
(
_order
);
_refundAmount
+=
payPointer
->
payAmount
();
if
(
_window
!=
nullptr
)
{
qobject_cast
<
FMVipRefund
*>
(
_window
)
->
refresh
();
qobject_cast
<
FMVipRefund
*>
(
_window
)
->
setIsRefundSuccess
(
true
);
}
}
else
{
QString
msg
=
searchJsonValue
(
rspObj
,
PosProps
.
Msg
).
toString
();
FMMsgWnd
::
FailureWnd
(
msg
,
_window
);
}
}
catch
(
const
odb
::
exception
&
e
)
{
QString
info
=
QString
::
fromLocal8Bit
(
"支付退款失败:%1"
).
arg
(
e
.
what
());
FMP_ERROR
()
<<
info
;
setError
(
FM_API_ERROR
,
info
);
return
;
}
}
void
TaskRefund
::
onRefundOrder
(
int
DBID
)
void
TaskRefund
::
onRefundOrder
(
unsigned
long
DBID
)
{
// QSharedPointer<FMItem::Order> orderPointer = DBOP::GetOrderByDBId(DBID);
// posReqJsonObj[PosProps.Fm_order_id] = orderPointer->fmOrderId();
// posReqJsonObj[PosProps.OrderId] = orderPointer->orderId();
// TaskRefundOrder refundOrder(posReqJsonObj, this);
// QByteArray rspData = refundOrder.doTask();
// QJsonObject rspObj = QJsonDocument::fromJson(rspData).object();
// if(rspObj[PosProps.StatusCode].toInt() == FM_API_SUCCESS) {
// orderPointer->setRefunded(true);
// DBOP::Save(orderPointer.data());
// if(_window!=nullptr) {
// qobject_cast<FMVipRefund*>(_window)->refresh();
// qobject_cast<FMVipRefund*>(_window)->setIsRefundSuccess(true);
// }
// _refundAmount = orderPointer->paidAmount();
// } else {
// QString msg = searchJsonValue(rspObj, PosProps.Msg).toString();
// FMMsgWnd::FailureWnd(msg, _window);
// }
Q_UNUSED
(
DBID
);
try
{
odb
::
transaction
t
(
DBSP
()
->
begin
());
posReqJsonObj
[
PosProps
.
Fm_order_id
]
=
_order
->
fmOrderId
();
posReqJsonObj
[
PosProps
.
OrderId
]
=
_order
->
orderId
();
TaskRefundOrder
refundOrder
(
posReqJsonObj
,
this
);
QByteArray
rspData
=
refundOrder
.
doTask
();
QJsonObject
rspObj
=
QJsonDocument
::
fromJson
(
rspData
).
object
();
if
(
rspObj
[
PosProps
.
StatusCode
].
toInt
()
==
FM_API_SUCCESS
)
{
_order
->
setRefunded
(
true
);
DBSP
()
->
persist
(
_order
);
if
(
_window
!=
nullptr
)
{
qobject_cast
<
FMVipRefund
*>
(
_window
)
->
refresh
();
qobject_cast
<
FMVipRefund
*>
(
_window
)
->
setIsRefundSuccess
(
true
);
}
_refundAmount
=
_order
->
paidAmount
();
}
else
{
QString
msg
=
searchJsonValue
(
rspObj
,
PosProps
.
Msg
).
toString
();
FMMsgWnd
::
FailureWnd
(
msg
,
_window
);
}
t
.
commit
();
}
catch
(
const
odb
::
exception
&
e
)
{
QString
info
=
QString
::
fromLocal8Bit
(
"订单退款失败:%1"
).
arg
(
e
.
what
());
FMP_ERROR
()
<<
info
;
setError
(
FM_API_ERROR
,
info
);
return
;
}
}
fmvip/task/taskrefund.h
View file @
62e0fa72
#ifndef TASKREFUND_H
#define TASKREFUND_H
#include "fmtask.h"
//namespace FMItem {
//class Order;
//}
#include "database.h"
class
TaskRefund
:
public
FMTask
{
...
...
@@ -20,11 +17,11 @@ private:
void
packagePOSRsp
();
private
:
void
onRefundPay
(
int
DBID
);
void
onRefundOrder
(
int
DBID
);
void
onRefundPay
(
unsigned
long
DBID
);
void
onRefundOrder
(
unsigned
long
DBID
);
int
_refundAmount
;
// FMItem::Order *
_order;
QSharedPointer
<
DB
::
Order
>
_order
;
};
#endif // TASKREFUND_H
fmvip/windows/fmviprefund.cpp
View file @
62e0fa72
...
...
@@ -5,15 +5,13 @@
#include <QMutex>
#include "fmloading.h"
#include "fmmsgwnd.h"
//#include "dbop.h"
//#include "items/order.h"
//#include "items/pay.h"
//#include "items/storeinfo.h"
using
namespace
DB
;
FMVipRefund
::
FMVipRefund
(
QDialog
*
parent
)
:
FMVipWnd
(
parent
),
ui
(
new
Ui
::
FMVipRefund
),
// order(new FMItem::Order(this
)) ,
_order
(
new
Order
(
))
,
_isRefundSuccess
(
false
)
{
ui
->
setupUi
(
this
);
...
...
@@ -22,89 +20,93 @@ FMVipRefund::FMVipRefund(QDialog *parent) :
FMVipRefund
::~
FMVipRefund
()
{
delete
ui
;
// delete order;
// pays.clear();
}
bool
FMVipRefund
::
initWnd
(
Session
*
session
)
{
// this->_session = session;
// ui->store_label->setText(session->data(PosProps.StoreId).toString());
// ui->pos_label->setText(session->data(PosProps.PosId).toString());
// ui->operator_label->setText(session->data(PosProps.OperatorId).toString());
// ui->bd_label->setText(session->data(PosProps.BussinessDate).toString());
// QString orderId = session->data(PosProps.OrderId).toString();
// DBOP::GetOrderByOrderId(orderId, order);
// FMItem::StoreInfo storeInfo;
// DBOP::GetItemByDBID(order->storeInfoDBID(), &storeInfo);
// if(order->isNew()) {
// ui->textEdit_order->setText(QString::fromLocal8Bit("未找到orderId为 %1 的订单! ").arg(orderId));
// } 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->orderId()).arg(order->fmOrderId())
// .arg(order->orderAmount()/100.0).arg(order->paidAmount()/100.0)
// .arg(storeInfo.businessDate()).arg(storeInfo.operatorId())
// .arg(storeInfo.storeId()).arg(storeInfo.posId());
// if(order->refunded()) {
// orderInfo += QString::fromLocal8Bit("订单已退款\n");
// ui->btn_refund_order->setEnabled(false);
// } else if (order->settled()) {
// orderInfo += QString::fromLocal8Bit("订单已结算,可以退整单\n");
// ui->btn_refund_order->setEnabled(true);
// } else {
// orderInfo += QString::fromLocal8Bit("订单还未结算,可以选择退某笔支付\n");
// ui->btn_refund_order->setEnabled(false);
// }
// ui->textEdit_order->setText(orderInfo);
// pays = DBOP::GetPaysByOrderDBId(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);
// btn->setCursor(QCursor(Qt::PointingHandCursor));
// if((payPointer->payAmount() <= payPointer->refundAmount()) || order->settled() || order->refunded()
// || payPointer->payId()!="20001") {
// btn->setEnabled(false);
// }
// }
// row++;
// col = 0;
// }
// }
this
->
_session
=
session
;
ui
->
store_label
->
setText
(
session
->
data
(
PosProps
.
StoreId
).
toString
());
ui
->
pos_label
->
setText
(
session
->
data
(
PosProps
.
PosId
).
toString
());
ui
->
operator_label
->
setText
(
session
->
data
(
PosProps
.
OperatorId
).
toString
());
ui
->
bd_label
->
setText
(
session
->
data
(
PosProps
.
BusinessDate
).
toString
());
unsigned
long
orderDBID
=
session
->
data
(
"RefundOrderDBID"
).
toULongLong
();
try
{
odb
::
transaction
t
(
DBSP
()
->
begin
());
_order
=
DBSP
()
->
load
<
Order
>
(
orderDBID
);
QSharedPointer
<
StoreInfo
>
storeInfo
=
_order
->
storeInfo
().
load
();
QString
orderInfo
=
QString
::
fromLocal8Bit
(
"POS订单号:%1
\n
"
"非码订单号:%2
\n
"
"订单总额:%3
\t
已付金额:%4
\n
"
"营业日:%5
\t
收银员:%6
\n
"
"门店号:%7
\t
POS号:%8
\n
"
)
.
arg
(
_order
->
orderId
()).
arg
(
_order
->
fmOrderId
())
.
arg
(
_order
->
orderAmount
()
/
100.0
).
arg
(
_order
->
paidAmount
()
/
100.0
)
.
arg
(
storeInfo
->
businessDate
()).
arg
(
storeInfo
->
operatorId
())
.
arg
(
storeInfo
->
storeId
()).
arg
(
storeInfo
->
posId
());
if
(
_order
->
refunded
())
{
orderInfo
+=
QString
::
fromLocal8Bit
(
"订单已退款
\n
"
);
ui
->
btn_refund_order
->
setEnabled
(
false
);
}
else
if
(
_order
->
settled
())
{
orderInfo
+=
QString
::
fromLocal8Bit
(
"订单已结算,可以退整单
\n
"
);
ui
->
btn_refund_order
->
setEnabled
(
true
);
}
else
{
orderInfo
+=
QString
::
fromLocal8Bit
(
"订单还未结算,可以选择退某笔支付
\n
"
);
ui
->
btn_refund_order
->
setEnabled
(
false
);
}
ui
->
textEdit_order
->
setText
(
orderInfo
);
foreach
(
auto
payLazyPointer
,
_order
->
payList
())
{
_pays
.
append
(
payLazyPointer
.
load
());
}
}
catch
(
const
odb
::
exception
&
e
)
{
QString
info
=
QString
::
fromLocal8Bit
(
"查询订单时异常:%1"
).
arg
(
e
.
what
());
qDebug
()
<<
info
;
return
false
;
}
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"
,
(
qulonglong
)
payPointer
->
id
());
connect
(
btn
,
&
QPushButton
::
clicked
,
this
,
&
FMVipRefund
::
onBtnRefundClicked
);
ui
->
tableWidget_pays
->
setCellWidget
(
row
,
col
,
btn
);
btn
->
setCursor
(
QCursor
(
Qt
::
PointingHandCursor
));
if
((
payPointer
->
payAmount
()
<=
payPointer
->
refundAmount
())
||
_order
->
settled
()
||
_order
->
refunded
()
||
payPointer
->
payId
()
!=
"20001"
)
{
btn
->
setEnabled
(
false
);
}
}
row
++
;
col
=
0
;
}
return
true
;
}
...
...
fmvip/windows/fmviprefund.h
View file @
62e0fa72
...
...
@@ -2,17 +2,12 @@
#define FMVIPREFUND_H
#include "fmvipwnd.h"
#include "database.h"
namespace
Ui
{
class
FMVipRefund
;
}
//namespace FMItem {
//class Order;
//class Pay;
//}
class
FMVipRefund
:
public
FMVipWnd
{
Q_OBJECT
...
...
@@ -42,8 +37,8 @@ private slots:
private
:
Ui
::
FMVipRefund
*
ui
;
// FMItem::Order *
order;
// QList<QSharedPointer<FMItem::Pay> >
pays;
QSharedPointer
<
DB
::
Order
>
_
order
;
QList
<
QSharedPointer
<
DB
::
Pay
>
>
_
pays
;
bool
_isRefundSuccess
;
};
...
...
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