Commit 16452743 by wuyang.zou

一、 Delivery优化

     ①补录异常订单--功能按钮
     ②同步服务端全部订单--功能按钮
     ③POS录入外卖单,线下商品更改此外卖商品 Bug
     ④POS录入完配送费后,仍有商品价格 >0.1的线下商品项录入到配送费之后 BUG
     ⑤Simphony录单认为成功,但实际并没有支付成功
     ⑥走心跳接口回传插件版本号+版本备注
     ⑦Simphony 主配料没有关联导致POS循环卡主
     ⑧ win10系统上的QT数据库无法正常打开 必须去除dsn中的属性[Trusted_Connection=yes]

二、MOP对应功能修改

1、MOP渠道 对应的POS中的 优惠折扣码申请
2,每单是否需要打包 MenuIteam  [  6411123  ]
3, 拉订单详情接口新增字段: channel:MOD / MOP/ ELE/
4, 订单入机成功后向服务端汇报订单入机情况接口新增字段:channel:ipAddress:
parent 847f9da6
......@@ -63,6 +63,8 @@ FlowControl::FlowControl()
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection);
//获取POS机的 [IP地址] + [IP+PORT地址] -> 更新到成员变量:m_ipAddress, m_ipPortAddress;
_GetIpAddress();
/***打开Sql server express 数据库并登陆外卖插件***/
SimProcOrderDB::getInstance();
m_initSimProcOrderDBRet = SimProcOrderDB::getInstance().initSimProcOrderDB();
......@@ -155,31 +157,24 @@ FlowControl::FlowControl()
}
QString FlowControl::_GetIpAddress()
void FlowControl::_GetIpAddress()
{
/***已经验证:IP地址 优先取配置文件中的[IpAddress/ip];只有没有配置的情况才会根据主机名获取ipv4的IP地址,因此为保证IP的准确性,注释通过配置文件获取ip的代码***/
QString ipAddress;
//ipAddress=ConfigManger::GetInstance().GetIpAddress();
//QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_GetIpAddress getFromConfigIni:%1--->>>>]").arg(ipAddress);
QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
foreach(QHostAddress address,info.addresses())
{
if(address.protocol() == QAbstractSocket::IPv4Protocol)
{
foreach(QHostAddress address,info.addresses()) {
if(address.protocol() == QAbstractSocket::IPv4Protocol) {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_GetIpAddress getFromLocalHostName:%1--->>>>]").arg(address.toString());
//1.1.1.1 > length > 7
if(address.toString().length()>7){
ipAddress=address.toString();
}
/*
if(address.toString().contains(ipAddress))
{
if(address.toString().length()>7) {
ipAddress=address.toString();
}
*/
}
}
return ipAddress+QString(":")+QString::number(ConfigManger::GetInstance().GetHttpServerPort());
m_ipAddress = ipAddress;
m_ipPortAddress = ipAddress+QString(":")+QString::number(ConfigManger::GetInstance().GetHttpServerPort());
}
......@@ -321,6 +316,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
m_RepOMSRecordOrderMutex.lock();
RepOMSRecordOrderInfo* repOMSRecordOrder = new RepOMSRecordOrderInfo();
repOMSRecordOrder->orderNo = orderObject->id;
repOMSRecordOrder->channel = orderObject->channel;
repOMSRecordOrder->type = (6 == orderObject->orderStatus)?QString::fromLocal8Bit("6"):QString::fromLocal8Bit("3");
repOMSRecordOrder->status = QString::fromLocal8Bit("2");
repOMSRecordOrder->opUser = m_cashierName.isEmpty()?QString::fromLocal8Bit("POS"):m_cashierName;
......@@ -591,7 +587,7 @@ bool FlowControl::_Login()
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetLoginData(ConfigManger::GetInstance().GetPartnerId(),m_storeId,
m_password, m_posId, m_cashierId,_GetIpAddress());
m_password, m_posId, m_cashierId,m_ipPortAddress);
emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在登录......"));
QLOG_INFO() << QString("[<<<<---Login--->>>>][requestData:%1]")<<sendJson;
if(ConfigManger::GetInstance().GetLoginSslConfig())
......@@ -638,7 +634,7 @@ bool FlowControl::_Login()
m_storeName = recvJson[JSON_STORENAME].toString();
DataManger::GetInstance().SetToken(recvJson[JSON_DATA].toObject()[JSON_TOKEN].toString());
DataManger::GetInstance().SetStoreId(m_storeId);
DataManger::GetInstance().SetPosIpAddress(_GetIpAddress());
DataManger::GetInstance().SetPosIpAddress(m_ipPortAddress);
DataManger::GetInstance().SetPartnerId(ConfigManger::GetInstance().GetPartnerId());
emit hideAlert();
emit setStoreInfo(m_storeId);
......@@ -707,7 +703,7 @@ void FlowControl::_PullOrderData()
m_orderPullList.append(info);
}
} else {
if (_PullOrderDetail(info->orderId) ) {
if (_PullOrderDetail(info->orderId,info->channel) ) {
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderDetail successful---->>>>>]";
m_orderPullList.removeOne(info);
delete info;
......@@ -722,7 +718,7 @@ void FlowControl::_PullOrderData()
return ;
}
bool FlowControl::_PullOrderDetail(const QString& orderId)
bool FlowControl::_PullOrderDetail(const QString& orderId, const QString& channel)
{
if(m_pullOrderSocket==NULL)
m_pullOrderSocket =new BillSocket(this);
......@@ -738,9 +734,12 @@ bool FlowControl::_PullOrderDetail(const QString& orderId)
}
QString url = ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDER);
// 拉取订单详情接口:订单编号
url.append(orderId);
QString posIpAddress = _GetIpAddress();
url.append(QString("&")+JSON_POSIPADDRESS+QString("=")+posIpAddress);
// 拉取订单详情接口: 新增 渠道 参数
url.append(QString("&")+JSON_CHANNEL+QString("=")+channel);
url.append(QString("&")+JSON_POSIPADDRESS+QString("=")+m_ipPortAddress);
QLOG_INFO() << QString("[<<<<---Pull Order Detail--->>>>][requestUrl:]")<<url;
m_pullOrderSocket->SetUrl(QUrl(url));
result = m_pullOrderSocket->GetRequest(recvJson, error);
......@@ -856,7 +855,7 @@ bool FlowControl::_SendHeart()
QJsonObject recvJson;
m_puginVersionComments = ConfigManger::GetInstance().GetOrderServerUrl();
sendJson = DataManger::GetInstance().GetHeartData(m_password,m_posId,_GetIpAddress(),m_puginVersionComments);
sendJson = DataManger::GetInstance().GetHeartData(m_password,m_posId,m_ipPortAddress,m_puginVersionComments);
QLOG_INFO() << QString("[<<<<---Send Heart--->>>>][requestData:%1]")<<sendJson;
m_loginSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetLoginServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_HEART)));
......@@ -911,8 +910,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
QString url = ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_CONFIRM);
url.append(orderId);
QString posIpAddress = _GetIpAddress();
url.append(QString("&")+JSON_POSIPADDRESS+QString("=")+posIpAddress);
url.append(QString("&")+JSON_POSIPADDRESS+QString("=")+m_ipPortAddress);
QLOG_INFO() << QString("[<<<<---Confirm Order Begin--->>>>][requestUrl:]")<<url;
m_procOrderSocket->SetUrl(QUrl(url));
result = m_procOrderSocket->GetRequest(recvJson, error);
......@@ -1302,6 +1300,7 @@ void FlowControl::_ReportOMSRecordOrderInfo()
QLOG_INFO()<<"FlowControl::_ReportOMSRecordOrderInfo load ssl";
//组装POST请求数据;
sendJson.insert("orderNo",RepOMSRecOrderIn->orderNo);
sendJson.insert("channel",RepOMSRecOrderIn->channel);
sendJson.insert("type",RepOMSRecOrderIn->type);
sendJson.insert("status",RepOMSRecOrderIn->status);
sendJson.insert("opUser",RepOMSRecOrderIn->opUser);
......@@ -1309,6 +1308,7 @@ void FlowControl::_ReportOMSRecordOrderInfo()
sendJson.insert("storeId",RepOMSRecOrderIn->storeId);
sendJson.insert("remark",RepOMSRecOrderIn->remark);
sendJson.insert("checkNo",RepOMSRecOrderIn->checkNo);
sendJson.insert("ipAddress",m_ipAddress);
QLOG_INFO() << QString("[<<<<---_ReportOMSRecordOrderInfo:Begin--->>>>][requestData:%1]")<<sendJson;
m_reportOMSRecordOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetLoginServerUrl()+
......@@ -1791,6 +1791,7 @@ bool FlowControl::_ResponseSimphony04Request(const QJsonObject &content, QJsonOb
repOMSRecordOrder->reqResult = 0;
}
repOMSRecordOrder->orderNo = orderId;
repOMSRecordOrder->channel = order_p->channel;
repOMSRecordOrder->type = (6 == order_p->orderStatus)?QString::fromLocal8Bit("6"):QString::fromLocal8Bit("3");
repOMSRecordOrder->status = QString::fromLocal8Bit("1");
repOMSRecordOrder->opUser = m_cashierName;
......@@ -1963,6 +1964,7 @@ bool FlowControl::_ResponseSimphony06Request(const QJsonObject &content, QJsonOb
repOMSRecordOrder->type = QString::fromLocal8Bit("0");
}else{
repOMSRecordOrder->type = order_temp->orderStatus==6?QString::fromLocal8Bit("6"):QString::fromLocal8Bit("3");
repOMSRecordOrder->channel = order_temp->channel;
}
repOMSRecordOrder->status = QString::fromLocal8Bit("2");
repOMSRecordOrder->opUser = m_cashierName;
......@@ -2063,6 +2065,7 @@ bool FlowControl::_ResponseSimphony06Request(const QJsonObject &content, QJsonOb
}
}
repOMSRecordOrder->orderNo = orderId;
repOMSRecordOrder->channel = order_p->channel;
repOMSRecordOrder->type = order_p->orderStatus==6?QString::fromLocal8Bit("6"):QString::fromLocal8Bit("3");
repOMSRecordOrder->status = QString::fromLocal8Bit("2");
repOMSRecordOrder->opUser = m_cashierName;
......@@ -2297,8 +2300,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
if(3 == orderObject->getOrderType()) {
tempOrderType = 12;
tempOrderPayType = 21;
}
// OMS提供的数据://订单渠道: 星巴克APP,百度外卖,饿了么APP,美团外卖 ;
} // OMS提供的数据://订单渠道: 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
// MOD渠道对应的业务逻辑;
else if("MOD" == orderObject->channel) {
tempOrderType = 9;
tempOrderPayType = 84;
......@@ -2322,6 +2325,30 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tempSbkAppPayType = -1;
tempSbkAppPayValue = "-1";
}
} // MOP渠道对应的业务逻辑;
else if("MOP" == orderObject->channel){
tempOrderType = 18;
tempOrderPayType = 84;
//星巴克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");
}else if(2 == orderObject->payWay){
tempSbkAppPayType = 77;
tempSbkAppPayValue = (orderObject->thirdPartyBatch).length()?orderObject->thirdPartyBatch :QString("0");
}else{
tempSbkAppPayType = -1;
tempSbkAppPayValue = "-1";
}
}else if("BAIDU" == orderObject->channel){
tempOrderType = 11;
tempOrderPayType = 83;
......@@ -2330,11 +2357,6 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tempOrderType = 11;
tempOrderPayType = 83;
tempSbkAppPayValue = orderObject->id;
}else if("MEITUAN" == orderObject->channel){
tempOrderType = 11;
tempOrderPayType = 83;
tempSbkAppPayValue = orderObject->id;
}else if("HM" == orderObject->channel){
tempOrderType = 14;
tempOrderPayType = 85;
......@@ -2350,6 +2372,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tempOrderType = 16;
} else if("MOD" == orderObject->channel) {
tempOrderType = 17;
} else if("MOP" == orderObject->channel) {
tempOrderType = 19;
}else{
tempOrderType = 13; // 退货订单类型:13 已经过期; 后期还需要考虑MOP的正向订单类型/退货订单类型;
}
......@@ -2420,6 +2444,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
dishesObject* dish=orderObject->proList.at(i);
// promotion优惠计数器变量;
int promotionTempNo = 0;
// starPromotion 星星优惠计数器变量;
int starPromotionTempNo = 0;
//默认属性直接跳过;
if (dish->code.contains("Default",Qt::CaseInsensitive)) {
continue;
......@@ -2461,12 +2487,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
}
/**********************************************************************************/
// 处理商品的优惠金额信息;针对单个商品多数量情况:需要将这部分优惠折扣金额放在前面 拆分数量的商品上[多少个折扣券,放在前几个商品上,一个上面下对应一个折扣项];
//单项商品的折扣数量最多不超过55个(60个会导致POS死机);当个优惠价格不超200元;
// 单项商品的折扣数量最多不超过55个(60个会导致POS死机);当个优惠价格不超2000元;
/**********************************************************************************/
int promotionSum = (dish->promotionQty>0 && dish->promotionQty<55)?dish->promotionQty:0;
int promotionPrice = (dish->promotionPrice>10 && dish->promotionPrice<20000)?dish->promotionPrice:0;
//QLOG_INFO() << QString("[---begin promotionTempNo---]")<<promotionTempNo;
//QLOG_INFO() << QString("[---promotionSum---]")<<promotionSum;
int promotionPrice = (dish->promotionPrice>1 && dish->promotionPrice<200000)?dish->promotionPrice:0;
if(promotionTempNo < promotionSum){
if(promotionSum && promotionPrice && dish->promotionSku.length()){
sObj.insert("consume_num", 1);
......@@ -2474,12 +2498,23 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
sObj.insert("original_price", promotionPrice);
subProduct.insert(subProduct.count(), sObj);
promotionTempNo++;
//QLOG_INFO() << QString("[---end promotionTempNo---]")<<promotionTempNo;
}
}
/**********************************************************************************/
// 新增支持星星优惠;
int starPromotionSum = (dish->starPromotionQty>0 && dish->starPromotionQty<55)?dish->starPromotionQty:0;
int starPromotionPrice = (dish->starPromotionPrice>1 && dish->starPromotionPrice<200000)?dish->starPromotionPrice:0;
if(starPromotionTempNo < starPromotionSum){
if(starPromotionSum && starPromotionPrice && dish->starPromotionSku.length()){
sObj.insert("consume_num", 1);
sObj.insert("pid", dish->starPromotionSku);
sObj.insert("original_price", starPromotionPrice);
subProduct.insert(subProduct.count(), sObj);
starPromotionTempNo++;
}
}
/**********************************************************************************/
// 汇总插入子商品[sub_products];
//QLOG_INFO() << QString("[---subProduct---]")<<subProduct;
if(subProduct.size()){
tObj.insert("sub_products",subProduct);
} // end 整合子商品结束;
......@@ -2489,6 +2524,16 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
}
}
//向商品列表中 添加 是否打包的SKU;
if(orderObject->isPackage && orderObject->packageSku.length()) {
QJsonObject tPackageObj;
tPackageObj.insert("consume_num", 1);
tPackageObj.insert("pid", orderObject->packageSku);
tPackageObj.insert("original_price", 0);
products.push_back(tPackageObj);
}
//组装完成JSON 对象的商品数据;
rObj.insert("products", products);
data= rObj;
}
......
......@@ -72,6 +72,7 @@ private:
typedef struct REPORTOMS_ORDERRECORD
{
QString orderNo; //订单号
QString channel; //订单渠道
QString type; //订单状态:[3:正向单;6:退货单; 9:POS机系统级别错误; 0:未知订单状态]
QString status; //订单入机状态:[1:成功; 2:失败]
QString opUser; //当前收银员;
......@@ -79,12 +80,14 @@ private:
QString storeId; //门店编号
QString remark; //备注:入机出错信息
QString checkNo; //小票号:入机成功时的小票号;
int reqResult; //向OMS请求汇报结果;
int reqResult; //向OMS请求汇报结果;
}RepOMSRecordOrderInfo;
private:
// 门店信息
QString m_storeId;
QString m_ipAddress; // 门店POS的 IP 地址
QString m_ipPortAddress; // 门店POS的 IP+端口 地址
QString m_password;
QString m_puginVersionComments;
QString m_posId;
......@@ -279,7 +282,7 @@ private slots:
* 参数:[1]订单编号
* 返回:是否成功
* */
bool _PullOrderDetail(const QString &orderId);
bool _PullOrderDetail(const QString &orderId, const QString& channel);
/* 功能:拉取订单
* 参数:NULL
* 返回:是否成功
......@@ -347,7 +350,7 @@ private slots:
// 单位转换
QString _Penny2Dollar(int penny);
QString _GetIpAddress();
void _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=100);
// 避免获取较多历史订单的同时,OMS又有推单过来,导致死锁;
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=100);
......
......@@ -77,6 +77,7 @@ QJsonObject DataManger::GetPullOrderListData(const int& pageNumber, const int& p
rObj.insert(JSON_PAGESIZE,pageSize);
rObj.insert(JSON_SHOPCODE,m_storeId);
rObj.insert(JSON_POSIPADDRESS,QString("http://") + m_posIpAddress);
rObj.insert(JSON_CHANNEL,QString("ALL"));
//rObj.insert(JSON_AUTOCONFIRM, autoconfirm);
return rObj;
}
......
......@@ -11,7 +11,8 @@ bool SimProcOrderDB::initSimProcOrderDB(){
m_sqlDb=QSqlDatabase::addDatabase("QODBC","SimProcOrderDB"); //数据库驱动类型为SQL server;
if(m_sqlDb.isValid()){
QLOG_INFO()<<"[<<<<---SimProcOrderDB::SqlServer ODBC driver is valid--->>>>]";
QString dsn="DRIVER={SQL SERVER};SERVER=127.0.0.1\\sqlexpress;DATABASE=MMXBenefits;Trusted_Connection=yes";
QString dsn="DRIVER={SQL SERVER};SERVER=127.0.0.1\\sqlexpress;DATABASE=MMXBenefits";
// Win10不支持属性: ;Trusted_Connection=yes ; 必须取消此属性,否则 QODBC3: Unable to connnet;
m_sqlDb.setDatabaseName(dsn); //设置数据源名称
m_sqlDb.setUserName("sa"); //登录用户
m_sqlDb.setPassword("SIM29@123");
......
......@@ -53,6 +53,11 @@ void dishesObject::FetchDataFromJson(const QJsonObject &json)
foreach(QJsonValue subDish, subDishesArray)
{
dishesObject *item = new dishesObject(this);
//初始商品数据信息;
item->promotionQty=0;
item->promotionPrice=0;
item->starPromotionQty=0;
item->starPromotionPrice=0;
item->FetchDataFromJson(subDish.toObject());
sub_products.append(item);
}
......
......@@ -22,6 +22,11 @@ class dishesObject : public QObject
Q_PROPERTY (int promotionQty READ getpromotionQty WRITE setpromotionQty)
Q_PROPERTY (int promotionPrice READ getpromotionPrice WRITE setpromotionPrice)
Q_PROPERTY (QString starPromotionSku READ getStarPromotionSku WRITE setStarPromotionSku)
Q_PROPERTY (QString starPromotionName READ getStarPromotionName WRITE setStarPromotionName)
Q_PROPERTY (int starPromotionQty READ getStarPromotionQty WRITE setStarPromotionQty)
Q_PROPERTY (int starPromotionPrice READ getStarPromotionPrice WRITE setStarPromotionPrice)
public:
explicit dishesObject(QObject *parent = 0):QObject(parent){}
dishesObject(const dishesObject& dish,QObject* parent=0);
......@@ -36,11 +41,16 @@ public:
int packagePrice;
int price;
QString options;
//卡券/红包优惠;
QString promotionSku;
QString promotionName;
int promotionQty;
int promotionPrice;
//星星优惠;
QString starPromotionSku;
QString starPromotionName;
int starPromotionQty;
int starPromotionPrice;
QList<dishesObject*> sub_products;
......@@ -84,6 +94,19 @@ protected:
inline int getpromotionQty(){ return promotionQty; }
inline void setpromotionQty(const int& v){ promotionQty = v; }
inline QString getStarPromotionSku(){ return starPromotionSku; }
inline void setStarPromotionSku(const QString& v){ starPromotionSku = v; }
inline QString getStarPromotionName(){ return starPromotionName; }
inline void setStarPromotionName(const QString& v){ starPromotionName = v; }
inline int getStarPromotionPrice(){ return starPromotionPrice; }
inline void setStarPromotionPrice(const int& v){ starPromotionPrice = v; }
inline int getStarPromotionQty(){ return starPromotionQty; }
inline void setStarPromotionQty(const int& v){ starPromotionQty = v; }
};
#endif // DISHESOBJECT_H
......@@ -49,6 +49,10 @@ void OrderObject::FromJson(const QJsonObject &json)
{
QJsonObject proJson = product.toObject();
dishesObject *proObject = new dishesObject(this);
proObject->promotionQty = 0;
proObject->promotionPrice = 0;
proObject->starPromotionQty = 0;
proObject->starPromotionPrice = 0;
proObject->FetchDataFromJson(proJson);
proList.append(proObject);
}
......@@ -69,16 +73,17 @@ QString OrderObject::getChannelName()
{
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel);
if ("MOD" == channel && 3 != orderType){
return QString::fromLocal8Bit("星巴克");
return QString::fromLocal8Bit("星-MOD");
}else if("ELE" == channel){
return QString::fromLocal8Bit("饿了么");
}else if("BAIDU" == channel){
return QString::fromLocal8Bit("百度外卖");
}else if("MOP" == channel){
return QString::fromLocal8Bit("星-MOP");
}else if("MOD" == channel && 3 == orderType){
return QString::fromLocal8Bit("客诉单");
}else{
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName HM :[%1]--->>>>]").arg(channel);
if("HM" == channel){
if("HM" == channel) {
return QString::fromLocal8Bit("盒马");
}
return QString::fromLocal8Bit("未知");
......
......@@ -59,6 +59,8 @@ class OrderObject : public QObject
Q_PROPERTY (int deliveryDiscount READ getDeliveryDiscount WRITE setDeliveryDiscount)
Q_PROPERTY (int disPlateformFee READ getDisPlateformFee WRITE setDisPlateformFee)
Q_PROPERTY (int packageFee READ getPackageFee WRITE setPackageFee)
Q_PROPERTY (int isPackage READ getIsPackage WRITE setIsPackage)
Q_PROPERTY (QString packageSku READ getPackageSku WRITE setPackageSku)
Q_PROPERTY (int packDiscount READ getPackDiscount WRITE setPackDiscount)
Q_PROPERTY (int orderDiscount READ getOrderDiscount WRITE setOrderDiscount)
Q_PROPERTY (int productPrice READ getProductPrice WRITE setProductPrice)
......@@ -137,13 +139,15 @@ public:
QString addressDetail;
int orderIndex;
int updateTime;
QString customerSex; //用户性别 1- 男2-
QString customerSex; //用户性别 1-男; 2-
int needInvoice;
int deliveryPrice; // 配送费
int deliveryDiscount; // 配送费折扣
int disPlateformFee; // 平台优惠折扣;
int packageFee; // 打包费
int packDiscount; // 打包费折扣
int isPackage; // MOP渠道: 是否打包: 0 不打包; 1:打包;
QString packageSku; // MOP渠道: 打包SKU;
int orderDiscount; // 订单整单折扣金额
int productPrice;
......@@ -305,6 +309,9 @@ public:
inline int getPackageFee()const{return packageFee;}
inline void setPackageFee(const int& v){packageFee = v;}
inline int getIsPackage()const{return isPackage;}
inline void setIsPackage(const int& v){isPackage = v;}
inline int getPackDiscount()const{return packDiscount;}
inline void setPackDiscount(const int& v){packDiscount = v;}
......@@ -334,6 +341,9 @@ public:
inline QString getCustomerSex()const{return customerSex;}
inline void setCustomerSex(const QString& v){customerSex = v;}
inline QString getPackageSku()const{return packageSku;}
inline void setPackageSku(const QString& v){packageSku = v;}
};
......
......@@ -115,6 +115,19 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailTable0->setItem(pNum, 2, new QTableWidgetItem(QString::number(tempDishObj->promotionQty) +QString(" )") )); // 数量
ui->detailTable0->item(pNum, 2)->setTextAlignment(Qt::AlignLeft);
}
// 新增展示 星星优惠活动 的优惠项
if(tempDishObj->starPromotionSku.length()){
pNum++;
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->starPromotionName )); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->starPromotionPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 2, new QTableWidgetItem(QString::number(tempDishObj->starPromotionQty) +QString(" )") )); // 数量
ui->detailTable0->item(pNum, 2)->setTextAlignment(Qt::AlignLeft);
}
}
// 新增配送费 + 打包费
ui->detailTable0->insertRow(pNum);
......
......@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2019,110,2
PRODUCTVERSION 2,2019,110,2
FILEVERSION 2,2019,225,1
PRODUCTVERSION 2,2019,225,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
......@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2019.110.2"
VALUE "FileVersion", "2.2019.110.2"
VALUE "ProductVersion", "2.2019.225.1"
VALUE "FileVersion", "2.2019.225.1"
//*************************************************************************//
END
END
......
......@@ -5,16 +5,17 @@
#define APP_THEME "deaufult"
//#define APP_VERSION "1.20171013.01"
//#define APP_VERSION "2.20180822.01"
//#define APP_VERSION "2.20180824.01"
//#define APP_VERSION "2.20180905.01"
//#define APP_VERSION "1.20171013.01"
//#define APP_VERSION "2.20180822.01"
//#define APP_VERSION "2.20180824.01"
//#define APP_VERSION "2.20180905.01"
//#define APP_VERSION "2.2018913.1"
//#define APP_VERSION "2.2018919.1"
//#define APP_VERSION "2.20181023.1"
//#define APP_VERSION "2.20181210.1"
//#define APP_VERSION "2.2019110.1"
#define APP_VERSION "2.2019110.2"
//#define APP_VERSION "2.2019110.2"
#define APP_VERSION "2.2019.225.1"
//修正版本号时,切记修正 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