Commit 26bc1646 by wuyang.zou

New Feature: 解耦POS, 支持解耦2.0的功能: 销售单/退货单 商品表+促销表+汇总表+打印表 各存储一条记录

             兼容 解耦前 + 解耦后两种模式
             考虑到打印程序部署的过度阶段: 入机模式下,会将真实的小票号同步 商品表+促销表

Version: 2.2021.4.19
parent 59ea8f13
Pipeline #32130 failed with stage
in 0 seconds
...@@ -107,7 +107,7 @@ private: ...@@ -107,7 +107,7 @@ private:
bool m_bLastHeartIsError; bool m_bLastHeartIsError;
int m_orderCount; int m_orderCount;
int m_clickPosCount; int m_clickPosCount;
int m_skipRecordPos; // int m_skipRecordPos; //使用订单级别: OrderObject->decouplePosVersion 标识;
//订单清除定时器 //订单清除定时器
QTimer *m_clearTimer; QTimer *m_clearTimer;
QTimer *m_heartTimer; QTimer *m_heartTimer;
...@@ -350,12 +350,22 @@ private slots: ...@@ -350,12 +350,22 @@ private slots:
* */ * */
void _ReportOMSRecordOrderInfo(); void _ReportOMSRecordOrderInfo();
/* 功能:向OMS汇报订单落库情况队列添加 子项;
* 参数:
* 1: OrderObject Point [ 订单对象指针 ];
* 2:入机落库消息类别 [ 1:落库存储; 2:模拟入机 ];
* 3:入机或落库结果 [ 1: 成功 2:失败;];
* 4: 入机落库消息描述;
* 返回:NULL
* */
void _AddItemToReportOmsList(const OrderObject* orderPoint, const int& msgType, const int& msgRet, const QString& chkNum, const QString& msgDesc);
/* 功能:往 向OMS汇报POS订单入机状态的队列 添加新项 或 更新队列中数据; /* 功能:往 向OMS汇报POS订单入机状态的队列 添加新项 或 更新队列中数据;
* 参数:NULL * 参数:NULL
* 返回:NULL * 返回:NULL
* */ * */
void _AddOrUpdateReportOmsList(const QString &orderId, const QString &channel, const QString &repType, const QString &status, const QString &error); void _AddOrUpdateReportOmsList(const QString &orderId, const QString &channel, const QString &repType, const QString &status, const QString &chkNum, const QString &error);
/* 功能:获取Json对象的字符 /* 功能:获取Json对象的字符
......
...@@ -39,14 +39,14 @@ public: ...@@ -39,14 +39,14 @@ public:
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool insertOrderPromotion(OrderObject* orderObj); bool insertOrderPromotion(OrderObject* orderObj, const QString& posCheckNo);
/** /**
*功能:插入订单 券 优惠列表到pos本地数据库中; *功能:插入订单 券 优惠列表到pos本地数据库中;
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool insertCouponPromotion(OrderObject* orderObj); bool insertCouponPromotion(OrderObject* orderObj, const QString& posCheckNo);
/** /**
...@@ -54,14 +54,23 @@ public: ...@@ -54,14 +54,23 @@ public:
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool insertNormalPromotion(OrderObject* orderObj); bool insertNormalPromotion(OrderObject* orderObj, const QString& posCheckNo);
/**
*功能:更新 订单商品促销优惠表 订单状态和小票号;
*参数:[1]订单对象指针 [2]小票号
*返回:true操作成功,false失败
**/
bool updateOrderPromotionCheckNum(OrderObject* orderObj,const QString& posCheckNo);
/** /**
*功能:查询 订单的优惠数据是否存在本地的POS系统中; *功能:查询 订单的优惠数据是否存在本地的POS系统中;
*参数:[1]订单号 *参数:[1]订单号
*返回:true是,false否 *返回:true是,false否
**/ **/
bool isOrderPromotionExist(const QString& orderId); bool isOrderPromotionExist(OrderObject* orderObj);
/** /**
*功能:删除本地数据库中的 订单优惠数据; *功能:删除本地数据库中的 订单优惠数据;
......
#include "gethascashboxandrefundauth.h"
GetHasCashboxAndRefundAuth::GetHasCashboxAndRefundAuth()
{
}
...@@ -70,6 +70,13 @@ public: ...@@ -70,6 +70,13 @@ public:
**/ **/
bool insertNormalSubProd(OrderObject* orderObj, const int mainProdIndex, QList<dishesObject*> &subProdList, const QString& posCheckNo); bool insertNormalSubProd(OrderObject* orderObj, const int mainProdIndex, QList<dishesObject*> &subProdList, const QString& posCheckNo);
/**
*功能:插入订单 配送费+打包费+打包属性到pos本地数据库中;
*参数:[1] [2]
*返回:true操作成功,false失败
**/
bool insertDeliveryPackageAndPack(OrderObject* orderObj, const QString& posCheckNo);
/** /**
*功能:更新 订单商品列表 订单状态和小票号; *功能:更新 订单商品列表 订单状态和小票号;
...@@ -84,7 +91,7 @@ public: ...@@ -84,7 +91,7 @@ public:
*参数:[1]订单号 *参数:[1]订单号
*返回:true是,false否 *返回:true是,false否
**/ **/
bool isOrderProductExist(const QString& orderId); bool isOrderProductExist(OrderObject* orderObj);
/** /**
*功能:删除本地数据库中的 订单商品数据; *功能:删除本地数据库中的 订单商品数据;
......
...@@ -77,13 +77,6 @@ bool PrintMsgQueueDB::insertOrderPrtMsg( OrderObject* orderObj, const QString& p ...@@ -77,13 +77,6 @@ bool PrintMsgQueueDB::insertOrderPrtMsg( OrderObject* orderObj, const QString& p
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text(); QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false; return false;
} }
if ( isOrderSaleRefoundPrtMsgExist(orderObj->id, orderObj->orderStatus) ) {
QLOG_INFO()<<QString("[<<<--PrintMsgQueueDB::insertOrderPrtMsg Print Msg Had Exist , orderId:%1 orderStatus:%2-->>>>]").arg(orderObj->id).arg(orderObj->orderStatus);
m_sqlDb.close();
return true;
}
bool result = false; bool result = false;
QSqlQuery query(m_sqlDb); QSqlQuery query(m_sqlDb);
...@@ -109,13 +102,26 @@ bool PrintMsgQueueDB::insertOrderPrtMsg( OrderObject* orderObj, const QString& p ...@@ -109,13 +102,26 @@ bool PrintMsgQueueDB::insertOrderPrtMsg( OrderObject* orderObj, const QString& p
if ( query.first() ) { if ( query.first() ) {
printTabIndex = query.value(0).toInt(); printTabIndex = query.value(0).toInt();
query.clear(); query.clear();
query.prepare(QString("update tb_msr_customer_info set reserve1=%1 where order_id='%2' and chk_num=%3 ")
.arg(printTabIndex).arg(orderObj->id).arg(posCheckNo.toInt()) ); if ( orderObj->orderStatus == OrderObject::Refunded ) {
query.prepare(QString("update tb_msr_customer_info set reserve1=%1 where order_id='%2' and order_status = 6 ")
.arg(printTabIndex).arg( orderObj->id) );
} else {
query.prepare(QString("update tb_msr_customer_info set reserve1=%1 where order_id='%2' and order_status <> 6 ")
.arg(printTabIndex).arg( orderObj->id) );
}
if ( !query.exec() ) { if ( !query.exec() ) {
QLOG_INFO()<<QString("Update tb_msr_customer_info Failed, orderId:%1, chk_num:%2 , prtTabIndex:%3, Then Rollback tb_print_msr_customer ") QLOG_ERROR()<<QString("Update tb_msr_customer_info Failed, orderId:%1, chk_num:%2 , prtTabIndex:%3, Then Rollback tb_print_msr_customer ")
.arg(orderObj->id).arg( posCheckNo.toInt() ).arg( printTabIndex ); .arg(orderObj->id).arg( posCheckNo.toInt() ).arg( printTabIndex );
query.clear(); query.clear();
query.prepare(QString("delete from tb_print_msr_customer where id=%1 ").arg(printTabIndex) ); query.prepare(QString("delete from tb_print_msr_customer where id=%1 ").arg(printTabIndex) ); // 根据插表自增ID进行删除,无需使用订单状态。
if ( !query.exec() ) {
QLOG_INFO()<<QString("Rollback tb_print_msr_customer Failed, orderId:%1, prtTabIndex:%2 ").arg(orderObj->id).arg( printTabIndex );
}else {
QLOG_INFO()<<QString("Rollback tb_print_msr_customer Success, orderId:%1, prtTabIndex:%2 ").arg(orderObj->id).arg( printTabIndex );
}
} else { } else {
result = true; result = true;
QLOG_INFO()<<QString("Update tb_msr_customer_info Success, orderId:%1, chk_num:%2 , prtTabIndex:%3 ") QLOG_INFO()<<QString("Update tb_msr_customer_info Success, orderId:%1, chk_num:%2 , prtTabIndex:%3 ")
...@@ -164,35 +170,24 @@ bool PrintMsgQueueDB::updatePrintMsgStatus(OrderObject* orderObj, const int &pri ...@@ -164,35 +170,24 @@ bool PrintMsgQueueDB::updatePrintMsgStatus(OrderObject* orderObj, const int &pri
} }
bool PrintMsgQueueDB::isOrderSaleRefoundPrtMsgExist(const QString& orderId, const int& orderStatus){ bool PrintMsgQueueDB::isOrderPrtMsgExist(OrderObject* orderObj){
bool result; QMutexLocker mutex(&m_mutex);
QSqlQuery query(m_sqlDb); if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
if ( orderStatus == OrderObject::Refunded) { return false;
query.prepare(QString("select order_id from tb_print_msr_customer where order_id='%1' and order_status = '%2' ").arg(orderId).arg(orderStatus));
} else {
query.prepare(QString("select order_id from tb_print_msr_customer where order_id='%1' and order_status != '%2' ").arg(orderId).arg(orderStatus));
} }
bool result;
if(!query.exec()) { QSqlQuery query(m_sqlDb);
QLOG_ERROR()<<"[<<<<---SqlServer Database:isOrderSaleRefoundPrtMsgExist--->>>>]"<<orderId<<query.lastError().text(); if ( orderObj->orderStatus == OrderObject::Refunded ) {
result= false; query.prepare(QString("select order_id from tb_print_msr_customer where order_id='%1' and order_status = 6 ").arg(orderObj->id) );
}
if(query.first()) {
result= true;
} else { } else {
result = false; query.prepare(QString("select order_id from tb_print_msr_customer where order_id='%1' and order_status <> 6 ").arg(orderObj->id) );
} }
return result;
}
bool PrintMsgQueueDB::isOrderPrtMsgExist(const QString& orderId){
bool result;
QSqlQuery query(m_sqlDb);
query.prepare(QString("select order_id from tb_print_msr_customer where order_id='%1'").arg(orderId));
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:isOrderPrtMsgExist--->>>>]"<<orderId<<query.lastError().text(); QLOG_ERROR()<<"[<<<<---SqlServer Database:isOrderPrtMsgExist--->>>>] order_id: "<<orderObj->id
<< " order_status: "<<orderObj->orderStatus <<query.lastError().text();
result= false; result= false;
} }
if(query.first()) { if(query.first()) {
......
...@@ -42,18 +42,11 @@ public: ...@@ -42,18 +42,11 @@ public:
bool updatePrintMsgStatus(OrderObject* orderObj, const int &printStatus); bool updatePrintMsgStatus(OrderObject* orderObj, const int &printStatus);
/** /**
*功能:查询 订单号和小票号 的打印消息队列记录 是否存在本地的POS系统中;
*参数:[1]订单号 [2]小票号
*返回:true是,false否
**/
bool isOrderSaleRefoundPrtMsgExist(const QString& orderId, const int& orderStatus );
/**
*功能:查询订单的打印消息记录是否存在本地的POS系统中; *功能:查询订单的打印消息记录是否存在本地的POS系统中;
*参数:[1]订单号 *参数:[1]订单号
*返回:true是,false否 *返回:true是,false否
**/ **/
bool isOrderPrtMsgExist(const QString& orderId); bool isOrderPrtMsgExist(OrderObject* orderObj);
/** /**
*功能:删除本地数据库中的 订单打印消息队列; *功能:删除本地数据库中的 订单打印消息队列;
......
...@@ -60,12 +60,19 @@ public: ...@@ -60,12 +60,19 @@ public:
/** /**
*功能:插入一条汇总单信息到pos本地数据库中; *功能:插入一条汇总单信息到pos本地数据库中;
*参数:[1]订单号 [2]小票号 *参数:[1]订单对象指针 [2]小票号 [3]Pos机实际开单时间
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool insertOrderSumBill(OrderObject* orderObj, const QString& posCheckNo, const QString& posCheckTime); bool insertOrderSumBill(OrderObject* orderObj, const QString& posCheckNo, const QString& posCheckTime);
/** /**
*功能:为了解耦POS, 需要提前将汇总单信息插入到pos本地数据库中,小票号+开单时间等信息需要真实入机后进行更新;
*参数:[1]订单对象指针 [2]小票号 [3]Pos机实际开单时间
*返回:true操作成功,false失败
**/
bool updateSumBillCknoAndCktime(OrderObject* orderObj, const QString& posCheckNo, const QString& posCheckTime);
/**
*功能: 根据订单对象指针 同步pos本地数据库中数据; *功能: 根据订单对象指针 同步pos本地数据库中数据;
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回: 0: 同步失败;1: 无需同步;2: 同步成功; *返回: 0: 同步失败;1: 无需同步;2: 同步成功;
...@@ -112,7 +119,7 @@ public: ...@@ -112,7 +119,7 @@ public:
*参数:[1]订单号 *参数:[1]订单号
*返回:true是,false否 *返回:true是,false否
**/ **/
bool isOrderSumBillExist(const QString& orderId); bool isOrderSumBillExist(OrderObject* orderObj);
bool queryValue(const QString& orderId, const QString& key, QString& error, QVariant &value); bool queryValue(const QString& orderId, const QString& key, QString& error, QVariant &value);
bool queryIsNull(const QString &orderId, const QString& key,QString &error, bool &result); bool queryIsNull(const QString &orderId, const QString& key,QString &error, bool &result);
......
...@@ -194,6 +194,38 @@ bool SimProcOrderDB::updatePushOrderStatus(const QString &orderId, const int &pu ...@@ -194,6 +194,38 @@ bool SimProcOrderDB::updatePushOrderStatus(const QString &orderId, const int &pu
} }
bool SimProcOrderDB::updatePushOrderStatusAndChkNum(const QString &orderId, const int &pushOrderStatus, const QString &chkNum)
{
//QMutexLocker mutex(&m_mutex);
bool retTryLock = m_mutex.tryLock(VALUE_TRYLOCKNETTIMEOUT);
if(!retTryLock){
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePushOrderStatus Try Lock Failed--->>>>]";
return false;
}
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePushOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
m_mutex.unlock();
return false;
}
bool result;
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isPushed=%1, posCheckNo='%2' where orderId='%3'")
.arg(QString::number(pushOrderStatus)).arg(chkNum).arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePushOrderStatus Failed--->>>>] OrderId: " << orderId << " " << query.lastError().text();
result= false;
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId: %1 pushOrderStatus: %2 CheckNum: %3 Success--->>>>]")
.arg(orderId).arg(pushOrderStatus).arg(chkNum);
result = true;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool SimProcOrderDB::getDbOrderAllFlag(const QString& id, int& dataBaseIsOrderExistInt, int& dataBaseIsPushInt, int& dataBaseIsCancleInt, bool SimProcOrderDB::getDbOrderAllFlag(const QString& id, int& dataBaseIsOrderExistInt, int& dataBaseIsPushInt, int& dataBaseIsCancleInt,
int& dataBaseIsORSPushInt, int& dataBaseIsORSCancleInt, QString& dataBasePosOrderCheckNo){ int& dataBaseIsORSPushInt, int& dataBaseIsORSCancleInt, QString& dataBasePosOrderCheckNo){
//QMutexLocker mutex(&m_mutex); //QMutexLocker mutex(&m_mutex);
...@@ -292,6 +324,36 @@ bool SimProcOrderDB::updateRefundOrderStatus(const QString &orderId, const int & ...@@ -292,6 +324,36 @@ bool SimProcOrderDB::updateRefundOrderStatus(const QString &orderId, const int &
return result; return result;
} }
bool SimProcOrderDB::updateRefundOrderStatusAndChkNum(const QString &orderId, const int &refundOrderStatus, const QString &chkNum)
{
//QMutexLocker mutex(&m_mutex);
bool retTryLock = m_mutex.tryLock(VALUE_TRYLOCKNETTIMEOUT);
if(!retTryLock){
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateRefundOrderStatus Try Lock Failed--->>>>]";
return false;
}
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateRefundOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
m_mutex.unlock();
return false;
}
bool result;
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isRefund=%1, posCheckNo='%2' where orderId='%3'")
.arg(QString::number(refundOrderStatus)).arg(chkNum).arg(orderId));
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateRefundOrderStatus Failed--->>>>] OrderId: " << orderId << " " <<query.lastError().text();
result= false;
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId: %1 refundOrderStatus: %2 CheckNum: %3 Successd --->>>>]")
.arg(orderId).arg(refundOrderStatus).arg(chkNum);
result = true;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool SimProcOrderDB::isRefundOrder(const QString &orderId) bool SimProcOrderDB::isRefundOrder(const QString &orderId)
{ {
//QMutexLocker mutex(&m_mutex); //QMutexLocker mutex(&m_mutex);
......
...@@ -45,6 +45,14 @@ public: ...@@ -45,6 +45,14 @@ public:
bool updatePushOrderStatus(const QString& orderId, const int &pushOrderStatus); bool updatePushOrderStatus(const QString& orderId, const int &pushOrderStatus);
/** /**
*功能:更新推单的入账状态[POS录单状态:订单录销售单的意思;同时也用来标记POS是否打印过录单小票]
*专供解耦版本的订单使用;
*参数: [1]订单号 [2]入账状态(目前情况都是"1") [3] 解耦Pos自定义(订单号后5位)生成的小票号;
*返回: true操作成功; false失败
**/
bool updatePushOrderStatusAndChkNum(const QString &orderId, const int &pushOrderStatus, const QString &chkNum);
/**
*功能:查订单在数据库中的标志性数据; *功能:查订单在数据库中的标志性数据;
*参数:[1]订单号 [2]订单是否存在 [3]是否销售单 [4]是否退货单 [5]是否ORS销售单 [6]是否ORS退货单 [7]订单对应小票号; *参数:[1]订单号 [2]订单是否存在 [3]是否销售单 [4]是否退货单 [5]是否ORS销售单 [6]是否ORS退货单 [7]订单对应小票号;
*返回:true:获取成功,false:获取失败; *返回:true:获取成功,false:获取失败;
...@@ -67,6 +75,15 @@ public: ...@@ -67,6 +75,15 @@ public:
bool updateRefundOrderStatus(const QString& orderId, const int &refundOrderStatus); bool updateRefundOrderStatus(const QString& orderId, const int &refundOrderStatus);
/** /**
*功能:更新退款入账状态[POS退款录单状态:订单录退款单的意思;同时也用来标记POS是否打印过退款单小票]
*专供解耦版本的订单使用;
*参数:[1]订单号 [2]退款入账状态 [3] 解耦Pos自定义(订单号后5位)生成的小票号;
*返回:true操作成功,false失败
**/
bool updateRefundOrderStatusAndChkNum(const QString& orderId, const int &refundOrderStatus, const QString &chkNum);
/**
*功能:查询是否退款入账[POS退款录单:即模拟Simphony退单是否成功:成功:TRUE;未成功:FALSE] *功能:查询是否退款入账[POS退款录单:即模拟Simphony退单是否成功:成功:TRUE;未成功:FALSE]
*参数:[1]订单号 *参数:[1]订单号
*返回:true是,false否 *返回:true是,false否
......
...@@ -29,6 +29,7 @@ class OrderObject : public QObject ...@@ -29,6 +29,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString storeId READ getStoreId WRITE setStoreId) Q_PROPERTY (QString storeId READ getStoreId WRITE setStoreId)
Q_PROPERTY (QString storeName READ getStoreName WRITE setStoreName) Q_PROPERTY (QString storeName READ getStoreName WRITE setStoreName)
Q_PROPERTY (QString storeAddress READ getStoreAddress WRITE setStoreAddress) Q_PROPERTY (QString storeAddress READ getStoreAddress WRITE setStoreAddress)
Q_PROPERTY (int storeType READ getStoreType WRITE setStoreType)
Q_PROPERTY (QString channel READ getChannel WRITE setChannel) Q_PROPERTY (QString channel READ getChannel WRITE setChannel)
Q_PROPERTY (int payWay READ getPayWay WRITE setPayWay) Q_PROPERTY (int payWay READ getPayWay WRITE setPayWay)
Q_PROPERTY (QString deliveryTime READ getDeliveryTime WRITE setDeliveryTime) Q_PROPERTY (QString deliveryTime READ getDeliveryTime WRITE setDeliveryTime)
...@@ -94,6 +95,8 @@ class OrderObject : public QObject ...@@ -94,6 +95,8 @@ class OrderObject : public QObject
Q_PROPERTY (int tenderDeliveryDiscountB READ getTenderDeliveryDiscountB WRITE setTenderDeliveryDiscountB) Q_PROPERTY (int tenderDeliveryDiscountB READ getTenderDeliveryDiscountB WRITE setTenderDeliveryDiscountB)
Q_PROPERTY (QString tenderDeliveryDiscountBSku READ getTenderDeliveryDiscountBSku WRITE setTenderDeliveryDiscountBSku) Q_PROPERTY (QString tenderDeliveryDiscountBSku READ getTenderDeliveryDiscountBSku WRITE setTenderDeliveryDiscountBSku)
Q_PROPERTY (int decouplePosVersion READ getDecouplePosVersion WRITE setDecouplePosVersion)
Q_PROPERTY (int globalServiceType READ getGlobalServiceType WRITE setGlobalServiceType) Q_PROPERTY (int globalServiceType READ getGlobalServiceType WRITE setGlobalServiceType)
Q_PROPERTY (int globalOrderType READ getGlobalOrderType WRITE setGlobalOrderType) Q_PROPERTY (int globalOrderType READ getGlobalOrderType WRITE setGlobalOrderType)
...@@ -146,6 +149,7 @@ public: ...@@ -146,6 +149,7 @@ public:
QString storeId; QString storeId;
QString storeName; QString storeName;
QString storeAddress; QString storeAddress;
int storeType ;
QString channel; //订单渠道: 1 星巴克APP 2饿了么APP 3 客诉单; QString channel; //订单渠道: 1 星巴克APP 2饿了么APP 3 客诉单;
int payWay; int payWay;
QString deliveryTime; //配送时间 QString deliveryTime; //配送时间
...@@ -204,6 +208,7 @@ public: ...@@ -204,6 +208,7 @@ public:
int tenderDeliveryDiscountB; // 配送费 B账户优惠金额 int tenderDeliveryDiscountB; // 配送费 B账户优惠金额
QString tenderDeliveryDiscountBSku; // 配送费 B账户优惠SKU; QString tenderDeliveryDiscountBSku; // 配送费 B账户优惠SKU;
int decouplePosVersion; // 解耦POS版本
int globalServiceType; // 全链路服务类型: globalServiceType【新增字段:int】 int globalServiceType; // 全链路服务类型: globalServiceType【新增字段:int】
int globalOrderType; // 全链路订单类型: globalOrderType 【新增字段:int】 int globalOrderType; // 全链路订单类型: globalOrderType 【新增字段:int】
...@@ -289,6 +294,9 @@ public: ...@@ -289,6 +294,9 @@ public:
inline QString getStoreAddress()const{return storeAddress;} inline QString getStoreAddress()const{return storeAddress;}
inline void setStoreAddress(const QString& v){storeAddress = v;} inline void setStoreAddress(const QString& v){storeAddress = v;}
inline int getStoreType()const{return storeType;}
inline void setStoreType(const int& v){storeType = v;}
inline QString getChannel()const{return channel;} inline QString getChannel()const{return channel;}
inline void setChannel(const QString& v){channel = v;} inline void setChannel(const QString& v){channel = v;}
...@@ -469,6 +477,9 @@ public: ...@@ -469,6 +477,9 @@ public:
inline int getTenderDeliveryDiscountB()const{return tenderDeliveryDiscountB;} inline int getTenderDeliveryDiscountB()const{return tenderDeliveryDiscountB;}
inline void setTenderDeliveryDiscountB(const int& v){tenderDeliveryDiscountB = v;} inline void setTenderDeliveryDiscountB(const int& v){tenderDeliveryDiscountB = v;}
inline int getDecouplePosVersion()const{return decouplePosVersion;}
inline void setDecouplePosVersion(const int& v){decouplePosVersion = v;}
inline QString getTenderDeliveryDiscountBSku()const{return tenderDeliveryDiscountBSku;} inline QString getTenderDeliveryDiscountBSku()const{return tenderDeliveryDiscountBSku;}
inline void setTenderDeliveryDiscountBSku(const QString& v){tenderDeliveryDiscountBSku = v;} inline void setTenderDeliveryDiscountBSku(const QString& v){tenderDeliveryDiscountBSku = v;}
......
...@@ -73,7 +73,13 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -73,7 +73,13 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO
ui->detailLab5->setText( QString("[%1 | %2 ]").arg( orderObject->memo).arg(orderObject->consumerRemark) ); ui->detailLab5->setText( QString("[%1 | %2 ]").arg( orderObject->memo).arg(orderObject->consumerRemark) );
//订单在 POS 上最新开单号:红色属性设置; //订单在 POS 上最新开单号:红色属性设置;
ui->detailLab8->setText(QString("[ %1 ]").arg(orderObject->dataBasePosOrderCheckNo)); if (orderObject->decouplePosVersion < 20 ) {
// 需入机模式-订单;
ui->detailLab8->setText(QString("[ %1 ]").arg(orderObject->dataBasePosOrderCheckNo));
} else {
// 不入机模式-订单;
ui->detailLab8->setText(QString("[ %1 ]").arg( orderObject->dataBasePosOrderCheckNo.left(5) ) );
}
int i = 0, pNum = 0, coupNum = 0, orderCoupNum = 0; int i = 0, pNum = 0, coupNum = 0, orderCoupNum = 0;
/*********************************** 遍历 商品列表:商品信息展示 begin ***************************************************/ /*********************************** 遍历 商品列表:商品信息展示 begin ***************************************************/
......
...@@ -33,7 +33,6 @@ SOURCES += main.cpp\ ...@@ -33,7 +33,6 @@ SOURCES += main.cpp\
DTools/configManger.cpp \ DTools/configManger.cpp \
DTools/dataManger.cpp \ DTools/dataManger.cpp \
DTools/getCaboxAReAuth.cpp \ DTools/getCaboxAReAuth.cpp \
DTools/gethascashboxandrefundauth.cpp \
DTools/headframe.cpp \ DTools/headframe.cpp \
DTools/printCupStickPosDB.cpp \ DTools/printCupStickPosDB.cpp \
DTools/printMsgQueueDB.cpp \ DTools/printMsgQueueDB.cpp \
...@@ -146,6 +145,7 @@ FORMS += mainForm.ui \ ...@@ -146,6 +145,7 @@ FORMS += mainForm.ui \
floatForm.ui \ floatForm.ui \
detailForm.ui \ detailForm.ui \
padForm.ui \ padForm.ui \
pickForm.ui \
RejectForm.ui \ RejectForm.ui \
bstatusForm.ui \ bstatusForm.ui \
bstatusItem.ui \ bstatusItem.ui \
......
...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico" ...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif #endif
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2021,2,26 FILEVERSION 2,2021,4,19
PRODUCTVERSION 2,2021,2,26 PRODUCTVERSION 2,2021,4,19
//*************************************************************************// //*************************************************************************//
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO ...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "fmTakeout.exe" VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin" VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2021.2.26" VALUE "ProductVersion", "2.2021.4.19"
VALUE "FileVersion", "2.2021.2.26" VALUE "FileVersion", "2.2021.4.19"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -237,13 +237,6 @@ void MainForm::on_mainBtnHide_clicked() ...@@ -237,13 +237,6 @@ void MainForm::on_mainBtnHide_clicked()
emit showFloatForm(); emit showFloatForm();
} }
/*
void MainForm::on_mainBtnHideAndLockForm()
{
on_mainBtnHide_clicked();
emit lockFloatForm();
}
*/
void MainForm::onShowOrderDetails(OrderObject *orderObject) void MainForm::onShowOrderDetails(OrderObject *orderObject)
{ {
...@@ -278,8 +271,12 @@ void MainForm::onOrderClear(const QString &orderId, const int &oldstatus) ...@@ -278,8 +271,12 @@ void MainForm::onOrderClear(const QString &orderId, const int &oldstatus)
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString()); table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++) for(int i=0; i<table->rowCount(); i++)
{ {
if(!table->item(i, 1)->text().compare(orderId)) // 过期订单数据,主界面需要清除界面上订单记录 [订单号添加换行符用于比对查找];
int tempOrderIdLen = orderId.length();
QString tempOrderId = orderId.left( tempOrderIdLen -5 ).append( "\r\n" ).append( orderId.right(5) );
if(!table->item(i, 1)->text().compare(tempOrderId))
{ {
QLOG_INFO() << QString("[<<<<---MainForm::onOrderClear: Find orderId:%1, tempOrderId:%2 Then Clear Ui Item --->>>>]").arg(orderId).arg(tempOrderId);
table->removeRow(i); table->removeRow(i);
QString btnText(tabBtn->property("name").toString()); QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText); btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
...@@ -392,12 +389,16 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus) ...@@ -392,12 +389,16 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
// 非首次收到的订单需要现在原先表中删除 // 非首次收到的订单需要现在原先表中删除
if(oldStatus != -100) if(oldStatus != -100)
{ {
tabBtn = _GetTabBtnByOrderStatus(oldStatus); tabBtn = _GetTabBtnByOrderStatus(oldStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString()); table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++) for(int i=0; i<table->rowCount(); i++)
{ {
if(!table->item(i, 1)->text().compare(orderObject->id)) // 订单状态改变,主界面需要先移除Old Item后, 再添加New Item; [订单号添加换行符用于比对查找];
int tempOrderIdLen = orderObject->id.length();
QString tempOrderId = orderObject->id.left( tempOrderIdLen -5 ).append( "\r\n" ).append( orderObject->id.right(5) );
if(!table->item(i, 1)->text().compare(tempOrderId))
{ {
QLOG_INFO() << QString("[<<<<---MainForm::onChangeOrderStatus:Find/RemoveItem: orderId:%1, tempOrderId:%2 --->>>>]").arg(orderObject->id).arg(tempOrderId);
table->removeRow(i); table->removeRow(i);
QString btnText(tabBtn->property("name").toString()); QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText); btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
...@@ -406,15 +407,19 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus) ...@@ -406,15 +407,19 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
} }
} }
// 将数据插入到表中 // 将数据插入到表中
tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus); tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString()); table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
table->insertRow(0); table->insertRow(0);
QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName()); QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName());
item0->setTextAlignment(Qt::AlignCenter); item0->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 0, item0); // 渠道 table->setItem(0, 0, item0); // 渠道
QTableWidgetItem *item1 = new QTableWidgetItem(orderObject->id); // 订单状态变更,插件主界面刷新主界面显示 [订单号添加换行符];
int tempOrderIdLen = orderObject->id.length();
QString tempOrderId = orderObject->id.left( tempOrderIdLen -5 ).append( "\r\n" ).append( orderObject->id.right(5) );
// QLOG_INFO() << QString("[<<<<---MainForm::onChangeOrderStatus:AddItem orderId:%1, tempOrderId:%2 --->>>>]").arg(orderObject->id).arg(tempOrderId);
QTableWidgetItem *item1 = new QTableWidgetItem(tempOrderId);
item1->setTextAlignment(Qt::AlignCenter); item1->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 1, item1); // 订单ID table->setItem(0, 1, item1); // 订单ID
...@@ -627,7 +632,13 @@ void MainForm::on_mainBtnDown_clicked() ...@@ -627,7 +632,13 @@ void MainForm::on_mainBtnDown_clicked()
void MainForm::onMainTableItemClicked(QTableWidgetItem *item) void MainForm::onMainTableItemClicked(QTableWidgetItem *item)
{ {
emit getOrderDetails(((QTableWidget*)sender())->item(item->row(), 1)->text()); // 插件主界面点击 Item行,进入订单详情界面展示 [订单号摘除换行符];
QString uiItemOrderId = ((QTableWidget*)sender())->item(item->row(), 1)->text();
QString originOrderId = uiItemOrderId;
int bpos = originOrderId.indexOf("\r");
originOrderId = originOrderId.mid(0,bpos) + originOrderId.mid( bpos + 2 );
QLOG_INFO() << QString("[<<<<---MainForm::onMainTableItemClicked: uiItemOrderId:%1, OrderId:%2 Then Entry Detail Ui--->>>>]").arg(uiItemOrderId).arg(originOrderId);
emit getOrderDetails(originOrderId);
} }
void MainForm::on_mainEdtSearch_clicked() void MainForm::on_mainEdtSearch_clicked()
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
//#define APP_VERSION "2.2021.1.11" //#define APP_VERSION "2.2021.1.11"
//#define APP_VERSION "2.2021.2.22" //#define APP_VERSION "2.2021.2.22"
//#define APP_VERSION "2.2021.2.26" //#define APP_VERSION "2.2021.2.26"
#define APP_VERSION "2.2021.4.12" #define APP_VERSION "2.2021.4.19"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
......
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