Commit acf01b49 by wuyang.zou

1、POS取消订单,订单进入异常单,双击进入订单详情页面。送达时间显示合理信息;

    2、退单的时候,频繁输入错误授权号[00不在范围内的账号]。退款到账了,但是这个
订单入机失败。进入了异常单队列,显示【POS录单失败】。再次退单提示【取消订单失败
,蜂鸟拒绝退单】
    3、外卖订单中有收费附加品,OMS插件端进入订单详情页面。收费附加品名称跟在了商品规格后面,但是收费附加品价格未显示/被计入
    4、伙伴角色登录系统后退单,在经理授权框页面点击取消按钮,立即操作POS页面的菜单,这时会把该笔订单正向录入列表,不打印小票
    5、App退单时,svc支付方式,绑定的第三方交易流水号为 退款fmid;
    6、完善录外卖订单,锁屏功能,避免店员在进入录外卖单前点击的商品进入外卖订单内,导致与实际外卖订单价格不一致问题;
    7、更新FmTakeout.exe 版本号信息
    8、修复运力不足导致 oms 取消订单后,没有录入POS BUG;
    9、完善退货授权的获取;
    10、增加日志记录大小(10 M* 40个)
parent 1d1cbf00
......@@ -259,6 +259,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
if(orderObject == NULL)
{
orderObject = new OrderObject(this);
//初始化数据;
orderObject->orderIndex = 0;
orderObject->FromJson(jsonObject);
orderObject->isPush = false;
orderObject->isCancle = false;
......@@ -333,10 +335,14 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder _ClickOMSAssignArea --->>>>]");
if("HM" == orderObject->channel){
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder [HM Order] don't _ClickOMSAssignArea,Wait Timeout Event --->>>>]");
}else{
emit doHideMainShowFloatFrom();
emit doLockFloatForm();
_ClickOMSAssignArea();
}
}
break;
case OrderObject::Confirmed:
// 针对已经确认的订单:POS可能录过,也可能没有; 因此就需要 orderObject->isPush 来判断POS是否录过:true:录过;false:没录过;
......@@ -353,10 +359,15 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed _ClickOMSAssignArea --->>>>]");
if("HM" == orderObject->channel){
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed [HM Order] don't _ClickOMSAssignArea,Wait Timeout Event --->>>>]");
}else{
emit doHideMainShowFloatFrom();
emit doLockFloatForm();
_ClickOMSAssignArea();
}
}
break;
case OrderObject::Sendout:
if(!orderObject->isPush)
......@@ -372,12 +383,36 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Sendout m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Sendout m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Sendout _ClickOMSAssignArea --->>>>]");
if("HM" == orderObject->channel){
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Sendout [HM Order] don't _ClickOMSAssignArea,Wait Timeout Event --->>>>]");
}else{
emit doHideMainShowFloatFrom();
emit doLockFloatForm();
_ClickOMSAssignArea();
}
}
break;
case OrderObject::Finished:
if(!orderObject->isPush) {
orderObject->pushOrderType = 1;
orderObject->pushOrderTimes = 0;
m_OrderEntryMutex.lock();
if(!m_simValidOrdersList.contains(orderObject->id))
{
m_simValidOrdersList.append(orderObject->id);
}
m_OrderEntryMutex.unlock();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Finished m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Finished m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Finished _ClickOMSAssignArea --->>>>]");
if("HM" == orderObject->channel){
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Finished [HM Order] don't _ClickOMSAssignArea,Wait Timeout Event --->>>>]");
}else{
emit doHideMainShowFloatFrom();
emit doLockFloatForm();
_ClickOMSAssignArea();
}
}
break;
case OrderObject::RequestRefund:
// 星巴克:当客户同意退款时,外卖插件收到请求退款后,直接进行退款处理;
......@@ -1073,17 +1108,20 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
int status = data[JSON_RECEIVINGSTATUS].toInt();
if(1==status) {
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("退单成功"));
//m_OrderEntryMutex.lock(); //必须提前加锁,否则后期订单ID会变更;
//m_OrderEntryMutex.lock(); //必须提前加锁,否则后期订单ID会变更;
//获取POS退单成功,OMS服务端返回的RefundFmId ( 此字段只有星巴克APP SVC卡支付的case,才会使用到 )
QString refundFmIdTemp = data[JSON_REFUNDFMID].toString();
int orderStatus = data[JSON_ORDERSTATUS].toInt();
OrderObject* orderObject = m_FmOrdersMap.value(orderId);
int oldOrderStatus = orderObject->orderStatus;
orderObject->orderStatus = orderStatus;
orderObject->refundFmId = refundFmIdTemp;
emit changeOrderStatus(orderObject, oldOrderStatus);
emit doHideMainShowFloatFrom();
//退货订单,将此订单添加到simphony 模拟点单列表中;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->orderStatus:%2 --->>>>]").arg(orderObject->id).arg(orderObject->orderStatus);
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->isCancle:%2 --->>>>]").arg(orderObject->id).arg(orderObject->isCancle);
if (OrderObject::Refunded == orderObject->orderStatus && OrderObject::SimExcept != oldOrderStatus) {
if (OrderObject::Refunded == orderObject->orderStatus && OrderObject::SimExceptSale != oldOrderStatus && OrderObject::SimExceptRefund != oldOrderStatus) {
//只有退单成功 且 是录POS 成功的才进行加锁;
emit doLockFloatForm();
//能退单成功就肯定能断言,此订单是没有录过退货的
......@@ -1104,10 +1142,27 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]");
m_OrderEntryMutex.unlock();
_ClickOMSAssignArea(); //必须执行,否则退货,点击取消后,就不会再提醒了;
} else if(OrderObject::SimExcept == oldOrderStatus) {
//录正向销售单报错的处理机制;
} else if(OrderObject::SimExceptSale == oldOrderStatus) {
m_OrderEntryMutex.lock();
m_simValidOrdersList.removeOne(orderObject->id);
m_OrderEntryMutex.unlock();
//正向单已经录入成功,录退单报错的的处理机制;
} else if(OrderObject::SimExceptRefund == oldOrderStatus){
emit doLockFloatForm();
m_OrderEntryMutex.lock();
if(!m_simValidOrdersList.contains(orderObject->id)) //不存在队列中,则将其加入到队列中;
{
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: SimExceptRefund : orderId:%1 ;(SimProcOrderDB::getInstance().isRefundOrder:--->>>>]").arg(orderObject->id)<<SimProcOrderDB::getInstance().isRefundOrder(orderObject->id);
m_simValidOrdersList.insert(0,orderObject->id);
orderObject->pushOrderType = 0;
orderObject->pushOrderTimes = 0;
}
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder:SimExceptRefund : m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder:SimExceptRefund : m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder:SimExceptRefund : _ClickOMSAssignArea --->>>>]");
m_OrderEntryMutex.unlock();
_ClickOMSAssignArea(); //必须执行,否则退货,点击取消后,就不会再提醒了;
}
//m_OrderEntryMutex.unlock(); //必须放开锁的范围;否则会出错;
} else {
......@@ -1670,7 +1725,11 @@ bool FlowControl::_ResponseSimphony06Request(const QJsonObject &content, QJsonOb
m_simValidOrdersList.removeOne(orderId);
m_OrderEntryMutex.unlock();
int oldStatus = order_p->orderStatus;
order_p->orderStatus = OrderObject::SimExcept;
if(6 == oldStatus || OrderObject::SimExceptRefund == order_p->orderStatus){
order_p->orderStatus = OrderObject::SimExceptRefund;
}else{
order_p->orderStatus = OrderObject::SimExceptSale;
}
emit changeOrderStatus(order_p,oldStatus);
error=QString::fromLocal8Bit("Request Action06: Catch Sim Recorded Order Exception And Report Success");
retProcSimExceptCode = 1;
......@@ -1776,6 +1835,21 @@ bool FlowControl::_ResponseHM21Request(const QJsonObject &content, QJsonObject &
//获取门店营业状态
QString strOpeStatus=QString::fromLocal8Bit("正常");
emit setOpeStatus(strOpeStatus);
//增加筛选条件,判断当前POS系统录单的订单是否还没录单完成:如果该订单录单没有完成,不返回100,务必让服务的等待;
if(content[JSON_ORDER_ID].toString().isEmpty()) {
error =QString::fromLocal8Bit("订单号不能为空");
return false;
} else {
if(!m_simValidOrdersList.isEmpty()){
QString simValidOrderListFirstOne = m_simValidOrdersList.first();
if(content[JSON_ORDER_ID].toString() == simValidOrderListFirstOne){
error =QString::fromLocal8Bit("当前订单正在录POS系统,请耐心等待");
return false;
}
}
}
QJsonObject hmOrderJson = content["orderDetail"].toObject();
QLOG_INFO()<<"FlowControl::_ResponseHM21Request:"<<hmOrderJson;
if(!hmOrderJson.isEmpty()){
......@@ -1880,7 +1954,13 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
//星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡;
if(4 == orderObject->payWay){
tempSbkAppPayType = 14 ;
//svc卡支付时传交易流水号协定:
if(OrderObject::Refunded == orderObject->orderStatus ||OrderObject::SimExceptRefund == orderObject->orderStatus){
tempSbkAppPayValue = orderObject->refundFmId.isEmpty()?QString("0"):orderObject->refundFmId;
}else{
tempSbkAppPayValue = orderObject->payfmId;
}
//tempSbkAppPayValue = orderObject->payfmId;
}else if(1 == orderObject->payWay){
tempSbkAppPayType = 78;
tempSbkAppPayValue = (orderObject->thirdPartyBatch).length()?orderObject->thirdPartyBatch :QString("0");
......@@ -1903,6 +1983,11 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tempOrderType = 11;
tempOrderPayType = 83;
tempSbkAppPayValue = orderObject->id;
}else if("HM" == orderObject->channel){
tempOrderType = 14;
tempOrderPayType = 85;
tempSbkAppPayValue = orderObject->id;
}else{
tempOrderType = 11;
tempOrderPayType = 83;
......@@ -1952,11 +2037,13 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
cObj.insert("dis_platform_fee", /*orderObject->dis_platform_fee*/0); // 平台承担优惠金额
cObj.insert("send_fee", orderObject->deliveryPrice); // 配送费
cObj.insert("shop_fee", /*orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee*/0); // 商户能够拿到的钱(去除平台佣金)
cObj.insert("package_fee", orderObject->totalPrice); // 打包费
//cObj.insert("package_fee", orderObject->packageFee); // 打包费上面已传;
cObj.insert("invoice_amount",orderObject->totalPrice);
if("ELE"==orderObject->channel){
if("ELE" == orderObject->channel){
cObj.insert("thirdPartyOrderId",orderObject->thirdPartyOrderId);
}else{
}else if("HM" == orderObject->channel){
cObj.insert("thirdPartyOrderId",orderObject->thirdPartyOrderId);
} else {
cObj.insert("thirdPartyOrderId","0");
}
cObj.insert("paid_trans_id",orderObject->id);
......@@ -1964,7 +2051,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
/************************************************************************************/
int hasCashbox = 0 ,hasRefundAuth = 0;
hasCashbox = GetCaboxAReAuth::getInstance().getUserHasCashBox(m_cashierId);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[ACTION:01: 获取当前用户是否绑定钱箱] hasCashbox:%1:--->>>>>]").arg(hasCashbox);
hasRefundAuth = GetCaboxAReAuth::getInstance().getUserRefundAuth(m_cashierId);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[ACTION:01:] 获取当前用户是否绑定钱箱:hasCashbox:%1; 当前用户是否拥有退货权限:hasRefundAuth:%2:--->>>>>]").arg(hasCashbox).arg(hasRefundAuth);
cObj.insert("hasCashbox",hasCashbox);
cObj.insert("hasRefundAuth",hasRefundAuth);
/************************************************************************************/
......@@ -1975,7 +2063,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
QJsonObject tObj;
dishesObject* dish=orderObject->proList.at(i);
//默认属性直接跳过;
if (orderObject->proList.at(i)->code.contains("Default",Qt::CaseSensitive)) {
if (orderObject->proList.at(i)->code.contains("Default",Qt::CaseInsensitive)) {
continue;
}
//针对同一商品,多份数量需要将其,拆分成单份;[如果不拆分,将导致多份商品中配料价格出现 漏钱:POS中的账将会出现少金额]
......@@ -1994,7 +2082,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
{
dishesObject* subDish=dish->sub_products.at(j);
//默认属性直接跳过;
if(!subDish->code.isEmpty() && !subDish->code.contains("Default",Qt::CaseSensitive) )
if(!subDish->code.isEmpty() && !subDish->code.contains("Default",Qt::CaseInsensitive) )
{
sObj.insert("consume_num", subDish->qty);
sObj.insert("pid", subDish->code);
......
......@@ -53,9 +53,6 @@ int GetCaboxAReAuth::getUserHasCashBox(const QString& operatorId){
if(query.first()) {
result= query.value(0).toInt()?1:0;
QLOG_INFO()<<"[<<<<---SqlServer Database operatorId:%1,getUserHasCashBox:%2--->>>>]"<<operatorId<<result;
QLOG_INFO()<<"[<<<<---SqlServer Database operatorId:%1,:getUserHasCashBox query.value(0):%2--->>>>]"<<operatorId<<query.value(0).toInt();
QLOG_INFO()<<"[<<<<---SqlServer Database operatorId:%1,:getUserHasCashBox query.value(1):%2--->>>>]"<<operatorId<<query.value(1).toInt();
QLOG_INFO()<<"[<<<<---SqlServer Database operatorId:%1,:getUserHasCashBox query.value(2):%2--->>>>]"<<operatorId<<query.value(2).toInt();
} else {
result = 0;
}
......@@ -72,14 +69,15 @@ int GetCaboxAReAuth::getUserRefundAuth(const QString& operatorId){
}
int result = 0;
QSqlQuery query(m_sqlDb);
//query.prepare(QString("select distinct 0 from employee ").arg(operatorId));
query.prepare(QString("select distinct 0 from employee "));
QLOG_INFO()<<QString("SELECT count(*) FROM [DataStore].[dbo].[EMPLOYEE] AS A , [DataStore].[dbo].[ROLE_EMPLOYEE] AS B WHERE A.EmployeeID = B.EmployeeID and B.RoleID in (2,10) AND ObjectNumber ='%1'").arg(operatorId);
query.prepare(QString("SELECT count(*) FROM [DataStore].[dbo].[EMPLOYEE] AS A , [DataStore].[dbo].[ROLE_EMPLOYEE] AS B WHERE A.EmployeeID = B.EmployeeID and B.RoleID in (2,10) AND ObjectNumber ='%1'").arg(operatorId));
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:getUserRefundAuth--->>>>]"<<query.lastError().text();
result= 0;
}
if(query.first()) {
result= 0; //等待后期更新;
result= query.value(0).toInt()?1:0;
QLOG_INFO()<<"[<<<<---SqlServer Database operatorId:%1,getUserRefundAuth:%2--->>>>]"<<operatorId<<result;
} else {
result = 0;
}
......
......@@ -67,7 +67,7 @@ void OrderObject::FetchDataFromJson(const QJsonObject &json)
QString OrderObject::getChannelName()
{
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%3]--->>>>]").arg(channel);
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel);
if ("MOD" == channel && 3 != orderType){
return QString::fromLocal8Bit("星巴克");
}else if("ELE" == channel){
......@@ -76,10 +76,11 @@ QString OrderObject::getChannelName()
return QString::fromLocal8Bit("百度外卖");
}else if("MOD" == channel && 3 == orderType){
return QString::fromLocal8Bit("客诉单");
}else if("HM" == channel){
}else{
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName HM :[%1]--->>>>]").arg(channel);
if("HM" == channel){
return QString::fromLocal8Bit("盒马");
}
else{
return QString::fromLocal8Bit("未知");
}
}
......
......@@ -13,6 +13,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString id READ getId WRITE setId)
Q_PROPERTY (QString payfmId READ getPayfmId WRITE setPayfmId)
Q_PROPERTY (QString thirdPartyBatch READ getThirdPartyBatch WRITE setThirdPartyBatch)
Q_PROPERTY (QString refundFmId READ getRefundFmId WRITE setRefundFmId)
Q_PROPERTY (QString thirdPartyOrderId READ getThirdPartyOrderId WRITE setThirdPartyOrderId)
Q_PROPERTY (int orderType READ getOrderType WRITE setOrderType)
......@@ -73,7 +74,7 @@ public:
typedef enum {
NewOrder=2,Confirmed,Sendout,Finished,Refunded,RequestRefund
,Locked=-1,AgreeRefund=30,RefuseRefund=40 ,SimExcept=50
,Locked=-1,AgreeRefund=30,RefuseRefund=40 ,SimExceptSale=50,SimExceptRefund=51
/*,Refunded=6 Cancled=6(订单状态是6时,是退单); 退单目前本佳那边不区分*/
}OrderStatus;
......@@ -92,6 +93,7 @@ public:
QString id; //编号
QString payfmId; //FM唯一码
QString thirdPartyBatch ; //第三方交易流水号
QString refundFmId; //退货时,不应该传递第三方交易流水号[应该使用退货的非码ID]
QString thirdPartyOrderId; //第三方订单ID
int orderType; //订单类型: 用来区分是 正常订单(1) 预订单(2) 还是 客诉单:3 (星巴克定义客诉单的类型:12);
QString orgOrderId; //原始订单编号
......@@ -159,6 +161,9 @@ public:
inline QString getThirdPartyBatch()const{return thirdPartyBatch;}
inline void setThirdPartyBatch(const QString& v){thirdPartyBatch = v;}
inline QString getRefundFmId()const{return refundFmId;}
inline void setRefundFmId(const QString& v){refundFmId = v;}
inline QString getThirdPartyOrderId()const{return thirdPartyOrderId;}
inline void setThirdPartyOrderId(const QString& v){thirdPartyOrderId = v;}
......
......@@ -30,7 +30,7 @@
#include <QtGlobal>
#include <iostream>
const int QsLogging::SizeRotationStrategy::MaxBackupCount = 10;
const int QsLogging::SizeRotationStrategy::MaxBackupCount = 40;
QsLogging::RotationStrategy::~RotationStrategy()
{
......
......@@ -44,10 +44,11 @@ void DetailForm::InitData(OrderObject *orderObject)
//订单完成后,送达时间需要更新为 finishTime
if(OrderObject::Finished == orderObject->orderStatus){
ui->detailLab2->setText( (orderObject->finishTime.isEmpty() || 0==orderObject->finishTime.length() )? QString::fromLocal8Bit("已经送达") : orderObject->finishTime);
}else if(OrderObject::Refunded == orderObject->orderStatus){
ui->detailLab2->setText(QString(""));
}else{
ui->detailLab2->setText(orderObject->deliveryTime.isEmpty()? QString::fromLocal8Bit("立即送出") : orderObject->deliveryTime);
ui->detailLab2->setText(orderObject->deliveryTime);
}
//ui->detailLab2->setText(orderObject->deliveryTime.isEmpty()? QString::fromLocal8Bit("立即送出") : orderObject->deliveryTime);
QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailLab2->setText --->>>>]");
ui->detailLab3->setText(orderObject->riderName.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2")
......@@ -83,22 +84,23 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailTable0->setItem(pNum, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->qty))); // 数量
ui->detailTable0->item(pNum, 2)->setTextAlignment(Qt::AlignCenter);
/*
// 选项太多,不便于显示;
int j = 0;
dishesObject* tempDishObj = orderObject->proList[i];
for(; j<tempDishObj->sub_products.count(); j++)
{
if(tempDishObj->sub_products.at(j)->price > 0){
pNum++;
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(GetProductName(tempDishObj->sub_products.at(j)))); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + GetProductName(tempDishObj->sub_products.at(j)) )); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(tempDishObj->sub_products.at(j)->price))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 2, new QTableWidgetItem(QString::number(tempDishObj->sub_products.at(j)->qty))); // 数量
ui->detailTable0->item(pNum, 2)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 2, new QTableWidgetItem(QString::number(tempDishObj->sub_products.at(j)->qty) +QString(" )") )); // 数量
ui->detailTable0->item(pNum, 2)->setTextAlignment(Qt::AlignLeft);
}
}
*/
}
// 新增配送费 + 打包费
ui->detailTable0->insertRow(pNum);
......@@ -133,7 +135,7 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->setText(GetOperNameByStatus(orderObject->orderStatus, true));
ui->detailBtn2->setProperty("operation", GetOperByStatus(orderObject->orderStatus, true));
ui->detailBtn2->setProperty("orderId", orderObject->id);
if(orderObject->orderStatus != 1 && orderObject->orderStatus != 20 && orderObject->orderStatus != 2 && orderObject->orderStatus != 3 && orderObject->orderStatus != OrderObject::SimExcept)
if(orderObject->orderStatus != 1 && orderObject->orderStatus != 20 && orderObject->orderStatus != 2 && orderObject->orderStatus != 3 && orderObject->orderStatus != OrderObject::SimExceptSale)
{
ui->detailBtn2->hide();
}
......
IDI_ICON ICON DISCARDABLE "logo.ico"
#if defined(UNDER_CE)
#include <winbase.h>
#else
#include <winver.h>
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2018,913,1
PRODUCTVERSION 2,2018,913,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "Delivery Order Plug-in Application"
VALUE "InternalName", "fmTakeout.exe"
VALUE "LegalCopyright", "Copyright (C)2013-2018"
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plug-in"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2018.913.1"
VALUE "FileVersion", "2.2018.913.1"
//*************************************************************************//
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
\ No newline at end of file
......@@ -28,7 +28,7 @@ void InitLogger()
QDir().mkdir(logDir);
QString logPath = QString("%1/%2").arg(logDir).arg("log");
DestinationPtr fileDst(DestinationFactory::MakeFileDestination(
logPath, EnableLogRotation, MaxSizeBytes(2*1024*1024), MaxOldLogCount(50)));
logPath, EnableLogRotation, MaxSizeBytes(10*1024*1024), MaxOldLogCount(40)));
logger.addDestination(fileDst);
DestinationPtr consoleDst(DestinationFactory::MakeDebugOutputDestination());
logger.addDestination(consoleDst);
......
......@@ -539,19 +539,40 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
//connect(pBtn, &QPushButton::clicked, this, &MainForm::onMainProcBtnClicked);
}
// SIM录外卖订单出现异常的订单;
if(OrderObject::SimExcept == orderObject->orderStatus)
// SIM录外卖订单出现异常的订单(正向销售单);
if(OrderObject::SimExceptSale == orderObject->orderStatus)
{
qDebug()<<table->objectName()<<"------";
QWidget *pWdg = new QWidget(table);
QHBoxLayout *hLayout = new QHBoxLayout(pWdg);
QPushButton * pBtn = new QPushButton(pWdg);
pBtn->setFixedSize(90, 30);
pBtn->setFixedSize(120, 30);
pBtn->setFocusPolicy(Qt::NoFocus);
pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->id);
//pBtn->setProperty("operation", table->property("operation").toString());
pBtn->setText(QString::fromLocal8Bit("录单失败,未退款"));
pBtn->setDisabled(true);
hLayout->addWidget(pBtn);
hLayout->setMargin(0);
pWdg->setLayout(hLayout);
table->setCellWidget(0, 6, pWdg); // 操作按钮
//connect(pBtn, &QPushButton::clicked, this, &MainForm::onMainProcBtnClicked);
}
// SIM录退货:外卖订单出现异常的订单(已退单);
if(OrderObject::SimExceptRefund == orderObject->orderStatus)
{
qDebug()<<table->objectName()<<"------";
QWidget *pWdg = new QWidget(table);
QHBoxLayout *hLayout = new QHBoxLayout(pWdg);
QPushButton * pBtn = new QPushButton(pWdg);
pBtn->setFixedSize(120, 30);
pBtn->setFocusPolicy(Qt::NoFocus);
pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->id);
//pBtn->setProperty("operation", table->property("operation").toString());
pBtn->setText(QString::fromLocal8Bit("POS录单失败"));
pBtn->setText(QString::fromLocal8Bit("录单失败,已退款"));
pBtn->setDisabled(true);
hLayout->addWidget(pBtn);
hLayout->setMargin(0);
......
......@@ -7,7 +7,12 @@
//#define APP_VERSION "1.20171013.01"
//#define APP_VERSION "2.20180822.01"
#define APP_VERSION "2.20180824.01"
//#define APP_VERSION "2.20180824.01"
//#define APP_VERSION "2.20180905.01"
#define APP_VERSION "2.2018913.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
#define CONFIG_NAME "config.ini"
......@@ -64,6 +69,7 @@
#define JSON_ERRCODE "code"
#define JSON_STATUS "status"
#define JSON_ORDERSTATUS "orderStatus"
#define JSON_REFUNDFMID "refundFmId"
#define JSON_STATUSDESC "status_desc"
#define JSON_MESSAGE "message"
#define JSON_ERRMSG "message"
......
[FmServer]
;<<<非码POS插件:登陆注册+5分钟心跳 服务器地址>>>
loginUrl=https://delposservice.starbucks.net/backstage/pos/
loginUrl=https://delposserviceapi.starbucks.net/backstage/pos/
;星巴克开发环境:loginUrl=http://10.92.194.44:8083/backstage/pos/
;星巴克测试环境:loginUrl=http://delposservice.stg.starbucks.net/pos/
;星巴克生产环境:loginUrl=https://delposservice.starbucks.net/pos/
;星巴克测试环境:loginUrl=http://delposserviceapi.stg.starbucks.net/pos/
;星巴克生产环境:loginUrl=https://delposserviceapi.starbucks.net/backstage/pos/
;<<<非码外卖拉取订单服务器地址>>>
orderUrl=https://delposservice.starbucks.net/backstage/order/
;星巴克测试环境: orderUrl=https://delposservice.stg.starbucks.net/backstage/order/
;星巴克开发环境: orderUrl=https://delposservice.dev.starbucks.net/backstage/order/
;星巴克生产环境: orderUrl=https://delposservice.starbucks.net/backstage/order/
orderUrl=https://delposserviceapi.starbucks.net/backstage/order/
;星巴克测试环境: orderUrl=https://delposserviceapi.stg.starbucks.net/backstage/order/
;星巴克开发环境: orderUrl=https://delposserviceapi.dev.starbucks.net/backstage/order/
;星巴克生产环境: orderUrl=https://delposserviceapi.starbucks.net/backstage/order/
[Interface]
;接口名称
......
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