Commit 7f6b32d2 by LIDINGDA\ldd

1.数据库添加营业日字段;2.添加收银员pos编号营业日获取设置;3.规范界面输入

parent 168bb6ab
#include "fmp_epay_p.h"
#include "fmp_epay_def.h"
#include "fmp_pe_handlers.h"
#include <QDateTime>
class ctkPluginContext;
......@@ -10,6 +11,7 @@ FMPePay::FMPePay(ctkPluginContext *context)
_inited(false),
_databasename(DEFAULT_EPAY_DATABASENAME),
_table(DEFAULT_EPAY_TABLE),
_businessdate(QDateTime::currentDateTime().toString("yyyyMMdd")),
d_ptr(new FMPePayPrivate(this))
{
FMPStartEventHandler *ste_handler = new FMPStartEventHandler(_ctx, this);
......@@ -28,3 +30,10 @@ int FMPePay::Pay()
Q_D(FMPePay);
return d->Pay();
}
void FMPePay::SetBasicInfo(QVariantHash hash)
{
Q_D(FMPePay);
this->_businessdate = hash[FMP_BASIC_BUSINESSDATE].toString();
d->SetBasicInfo(hash);
}
......@@ -18,11 +18,14 @@ public:
int StopService();
int Pay();
void SetBasicInfo(QVariantHash hash);
private:
bool _inited;
QString _url;
QString _databasename;
QString _table;
QString _businessdate;
FMPePayPrivate* d_ptr;
};
......
......@@ -19,7 +19,7 @@ public:
return d.toString().toFloat() / 100;
}
if ((idx.column() == 11) && role == Qt::DisplayRole) {
if ((idx.column() == 12) && role == Qt::DisplayRole) {
QVariant d = QSqlTableModel::data(idx,role);
if (d.toBool()) {
return QString::fromLocal8Bit("已退款");
......
......@@ -36,6 +36,7 @@
#define SQL_KEY_PAYID "pay_id"
#define SQL_KEY_PAYTRANSID "pay_transId"
#define SQL_KEY_TRANSID "trans_id"
#define SQL_KEY_BUSSINEDATE "business_date"
#define SQL_KEY_CODE "code"
#define SQL_KEY_FMID "fmId"
#define SQL_KEY_EBCODE "pay_ebcode"
......@@ -46,6 +47,8 @@
#define DEFAULT_EPAY_DATABASENAME "fmp_test.db"
#define DEFAULT_EPAY_TABLE "fmp_pay"
//基础信息 营业日/操作员/pos编号
#define FMP_BASIC_BUSINESSDATE "businessdate"
#endif // FMP_EPAY_DEF
......
......@@ -12,7 +12,6 @@ class FMPePayInterface : public FMPluginInterface
public:
explicit FMPePayInterface(ctkPluginContext *ctx) : FMPluginInterface(ctx) {}
virtual int Pay() = 0;
// /**
// * @brief ShowPayDialog
// * 呈现支付主界面
......
......@@ -98,6 +98,7 @@ void FMPePayPrivate::onShowPayWnd()
"mcoupon_amount integer, "
"alipay_amount integer, "
"invoice_amount integer, "
"business_date varchar(30), "
"isrefund boolean"
")";
......@@ -114,17 +115,16 @@ void FMPePayPrivate::onShowPayWnd()
_model = new FMPPayCheckModel(NULL, _db->getDb());
_model->setTable(q->_table);
_model->setEditStrategy(QSqlTableModel::OnManualSubmit);
_model->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("非码交易号"));
_model->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("三方交易号"));
_model->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("交易渠道"));
_model->setHeaderData(6, Qt::Horizontal, QString::fromLocal8Bit("金额(元)"));
_model->setHeaderData(11, Qt::Horizontal, QString::fromLocal8Bit("已退款"));
}
if(_payDialog == nullptr) {
QVariantHash hash;
hash[FMP_BASIC_BUSINESSDATE] = q->_businessdate;
_setting = q->GetService<FMPSettingsInterface>(q->_ctx);
_payDialog = new FMPPayDialog(this, _logger);
_payDialog = new FMPPayDialog(this, _logger, hash);
}
_payDialog->show();
......@@ -135,11 +135,12 @@ QSqlTableModel *FMPePayPrivate::model() const
return _model;
}
void FMPePayPrivate::ControlPayJson(QString sum, QString code, QString date)
void FMPePayPrivate::ControlPayJson(QString sum, QString code)
{
Q_Q(FMPePay);
QtConcurrent::run( [q, sum, code, date, this ]()
QtConcurrent::run( [q, sum, code, this ]()
{
if(_reverse_flag)
{
......@@ -147,7 +148,7 @@ void FMPePayPrivate::ControlPayJson(QString sum, QString code, QString date)
return ;
}
if(!GetPayJson(sum, code, date))
if(!GetPayJson(sum, code))
{
emit error(QString::fromLocal8Bit("获取门店信息失败"));
return ;
......@@ -166,6 +167,7 @@ void FMPePayPrivate::ControlPayJson(QString sum, QString code, QString date)
{
outjson.insert(SQL_KEY_ISREFUND, false);
outjson.insert(SQL_KEY_CODE, code);
outjson.insert(SQL_KEY_BUSSINEDATE, q->_businessdate);
outjson.insert(SQL_KEY_TRANSID, _current_json[SQL_KEY_TRANSID].toString());
_db->insert(q->_table, outjson.toVariantHash());
......@@ -238,6 +240,14 @@ bool FMPePayPrivate::CheckReturnJson(QByteArray data, QJsonObject &returnjson)
return true;
}
void FMPePayPrivate::SetBasicInfo(QVariantHash hash)
{
Q_Q(FMPePay);
if(_payDialog != NULL)
_payDialog->setBasicInfo(hash);
}
void FMPePayPrivate::GetCheckMode(QString sum)
{
QString sql = QString("fmId like '%%%1%%' or pay_transId like '%%%1%%'").arg(sum);
......@@ -350,8 +360,10 @@ void FMPePayPrivate::ControlReverseJson()
qDebug() << _current_json;
}
bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code, const QString& date)
bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code)
{
Q_Q(FMPePay);
_current_json = QJsonObject::fromVariantMap( QVariantMap() );
QJsonObject transaction;
......@@ -375,7 +387,7 @@ bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code, const Q
_current_json.insert( FMP_EPAY_VER, ver);
_current_json.insert( FMP_EPAY_REQUESTTYPE, 72);
_current_json.insert( FMP_EPAY_BUSINESSDATE, date);
_current_json.insert( FMP_EPAY_BUSINESSDATE, q->_businessdate);
_current_json.insert( FMP_EPAY_CLIENTREQCOUNT, (int)((++s_ClientReqCount)%=10000000));
_current_json.insert( FMP_EPAY_STOREID, storeid);
_current_json.insert( FMP_EPAY_STATIONID, station);
......
......@@ -24,7 +24,7 @@ public:
int Pay();
void ControlPayJson(QString sum, QString code, QString date);
void ControlPayJson(QString sum, QString code);
void ControlRefundJson(QString sum, QString code);
......@@ -39,12 +39,13 @@ private:
void GetReverseJson();
bool GetPayJson(const QString &sum, const QString &code, const QString &date);
bool GetPayJson(const QString &sum, const QString &code);
bool HttpPost(QJsonObject& outjson, QJsonObject json, QString &error, int timeout = 60);
bool CheckReturnJson(QByteArray data, QJsonObject &returnjson);
void SetBasicInfo(QVariantHash hash);
signals:
void showPayWnd();
......
......@@ -11,7 +11,7 @@
#include <QStyledItemDelegate>
FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QWidget *parent) :
FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QVariantHash basicinfo, QWidget *parent) :
_logger(logger),
_control(control),
QDialog(parent),
......@@ -20,6 +20,9 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
ui->setupUi(this);
QString businessdate = basicinfo[FMP_BASIC_BUSINESSDATE].toString();
ui->label_date->setText(businessdate.insert(4,"-").insert(7, "-"));
_wait = NULL;
this->setWindowFlags( windowFlags() | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
......@@ -45,8 +48,6 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
connect(_control, &FMPePayPrivate::error, this, &FMPPayDialog::showErrorMsg);
connect(_control, &FMPePayPrivate::finished, this, &FMPPayDialog::showSuccessMsg);
getBusinessDate();
ui->lineedit_num->setFocus();
_current_LineEdit = ui->lineedit_num;
......@@ -55,7 +56,15 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
QSqlTableModel *model = _control->model();
model->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("非码交易号"));
model->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("三方交易号"));
model->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("交易渠道"));
model->setHeaderData(6, Qt::Horizontal, QString::fromLocal8Bit("金额(元)"));
model->setHeaderData(11, Qt::Horizontal, QString::fromLocal8Bit("营业日期"));
model->setHeaderData(12, Qt::Horizontal, QString::fromLocal8Bit("退款"));
ui->tableView->setModel(model);
ui->tableView->hideColumn(1);
ui->tableView->hideColumn(3);
ui->tableView->hideColumn(5);
......@@ -69,11 +78,11 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
ui->tableView->verticalHeader()->setVisible(false);
QHeaderView *header = ui->tableView->horizontalHeader();
ui->tableView->setColumnWidth(0, 220);
ui->tableView->setColumnWidth(2, 260);
ui->tableView->setColumnWidth(0, 180);
ui->tableView->setColumnWidth(2, 220);
ui->tableView->setColumnWidth(4, 120);
ui->tableView->setColumnWidth(5, 80);
ui->tableView->setColumnWidth(6, 60);
ui->tableView->setColumnWidth(6, 100);
ui->tableView->setColumnWidth(11, 100);
header->setVisible(true);
header->setStretchLastSection(true);
......@@ -82,11 +91,18 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
ui->lineedit_num->setValidator(pReg);
QRegExp rxs("^[A-Za-z0-9]+$");
QRegExpValidator *pRegs = new QRegExpValidator(rxs, this);
ui->lineedit_code->setValidator(pRegs);
setPayView();
}
void FMPPayDialog::showErrorMsg(QString errormsg)
{
//ui->lineedit_num->clear();
ui->lineedit_code->clear();
if(errormsg == "")
errormsg = QString("");
......@@ -98,6 +114,9 @@ void FMPPayDialog::showErrorMsg(QString errormsg)
void FMPPayDialog::showSuccessMsg(QJsonObject json)
{
ui->lineedit_num->clear();
ui->lineedit_code->clear();
if(!_wait->isHidden())
_wait->hide();
......@@ -108,17 +127,11 @@ void FMPPayDialog::showSuccessMsg(QJsonObject json)
else
setRefundSuccessView(json);
}
void FMPPayDialog::setBusinessDate(QString date)
void FMPPayDialog::setBasicInfo(QVariantHash basicinfo)
{
//调用设置模块设置营业日
qDebug() << "set BusinessDate success";
}
QString date = basicinfo[FMP_BASIC_BUSINESSDATE].toString();
void FMPPayDialog::getBusinessDate()
{
//利用设置模块获取营业日并显示
qDebug() << "get BusinessDate success";
ui->label_date->setText(date.insert(4,"-").insert(7, "-"));
}
FMPPayDialog::~FMPPayDialog()
......@@ -236,14 +249,55 @@ void FMPPayDialog::setRefundView()
void FMPPayDialog::on_btn_num_clicked()
{
QRegExp rx("^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$");
QString num_str = qobject_cast<QPushButton*>(sender())->text();
if(rx.exactMatch(_current_LineEdit->text().append(num_str)) /*&& _current_LineEdit->text().append(num_str).compare("0.00") != 0*/)
if(_current_LineEdit == ui->lineedit_num && CheckLineEditSum(_current_LineEdit->text().append(num_str)))
{
_current_LineEdit->setText(_current_LineEdit->text().append(num_str));
}
if(_current_LineEdit == ui->lineedit_code && CheckLineEditCode(_current_LineEdit->text().append(num_str)))
{
_current_LineEdit->setText(_current_LineEdit->text().append(num_str));
}
}
bool FMPPayDialog::CheckLineEditSum(QString sum)
{
if(sum.compare("0.00") == 0 || sum.compare("00") == 0)
return false;
if(sum.contains("."))
{
QStringList list = sum.split(".");
if(list.size() == 2)
{
QString tmp = list.value(1);
if(tmp.size() > 2)
return false;
}else
return false;
}
return true;
}
bool FMPPayDialog::CheckLineEditCode(QString code)
{
int i = 0;
while( i < code.size())
{
if(!((code[i] >= 'a' && code[i] <= 'z') || (code[i] >= 'A' && code[i] <= 'Z') || (code[i] >= '0' && code[i] <= '9')))
break;
++i;
}
return (i == code.size());
}
void FMPPayDialog::on_btn_pay_clicked()
......@@ -265,11 +319,21 @@ void FMPPayDialog::on_btn_confirm_clicked()
}
if(ui->lineedit_num->text() == "" || ui->lineedit_num->text().toDouble() < 0.01 ||
ui->lineedit_code->text() == "" || ui->lineedit_code->text().size() < 15)
{
ui->lineedit_num->clear();
ui->lineedit_code->clear();
_wait->SetContent(FMPPayWait::ERROR, QString::fromLocal8Bit("金额或条码错误\n请重新输入"));
_wait->show();
return;
}
if(ui->btn_pay->isChecked())
{
_wait->SetContent(FMPPayWait::LOADING, QString::fromLocal8Bit("支付中..."));
_control->ControlPayJson(ui->lineedit_num->text(), ui->lineedit_code->text(), ui->label_date->text());
_control->ControlPayJson(ui->lineedit_num->text(), ui->lineedit_code->text());
}
else
......
......@@ -3,6 +3,7 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QVariantHash>
#include <QJsonDocument>
#include <QModelIndex>
#include <QDateTime>
......@@ -14,7 +15,6 @@
#include "fmp_epayview_focuslineedit.h"
class FMPePayPrivate;
class FMPSettingsInterface;
class FMPLoggerInterface;
namespace Ui {
......@@ -26,7 +26,7 @@ class FMPPayDialog : public QDialog
Q_OBJECT
public:
explicit FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QWidget *parent = 0);
explicit FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QVariantHash basicinfo, QWidget *parent = 0);
~FMPPayDialog();
public slots:
......@@ -36,6 +36,8 @@ public slots:
void onSelectionChanged(QModelIndex idx);
void setBasicInfo(QVariantHash basicinfo);
protected:
void keyPressEvent(QKeyEvent *);
......@@ -75,21 +77,19 @@ private:
void setCheckView();
void getBusinessDate();
void setBusinessDate(QString date);
void setPaySuccessView(QJsonObject json);
void setRefundSuccessView(QJsonObject json);
bool CheckLineEditSum(QString sum);
bool CheckLineEditCode(QString code);
private:
Ui::FMPPayDialog *ui;
FMPFocusLineEdit *_current_LineEdit;
FMPSettingsInterface* _settings;
FMPePayPrivate *_control;
FMPPayWait *_wait;
......
......@@ -200,13 +200,13 @@ background-color: rgb(148, 148, 148);
<property name="minimumSize">
<size>
<width>161</width>
<height>41</height>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>41</height>
<height>16777215</height>
</size>
</property>
<property name="font">
......
......@@ -5,7 +5,7 @@
#define VER_MINOR 1
#define VER_REVISION 0
#define VER_BUILD 14
#define VER_BUILD 15
//! Convert version numbers to string
#define _STR(S) #S
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment