Commit 76ee0f47 by shangshang.dai

Fix 1:自提订单核销的接口改动

parent f4c0918c
...@@ -166,6 +166,15 @@ bool FlowControl::_PullOrder() ...@@ -166,6 +166,15 @@ bool FlowControl::_PullOrder()
//新数据 //新数据
orderObject = new OrderObject(this); orderObject = new OrderObject(this);
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
//将 非码Mall 改为 鲜丰App
if(!orderObject->channelName.compare("非码Mall"))
{
orderObject->channelName = "鲜丰App";
}
//------------------------------
m_ordersMap.insert(orderObject->order_id, orderObject); m_ordersMap.insert(orderObject->order_id, orderObject);
if(!orderObject->order_view_id.isEmpty()) if(!orderObject->order_view_id.isEmpty())
{ {
...@@ -176,12 +185,6 @@ bool FlowControl::_PullOrder() ...@@ -176,12 +185,6 @@ bool FlowControl::_PullOrder()
.arg(orderObject->order_id, orderObject->status_desc) .arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject)); .arg(_GetJsonStr(jsonObject));
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if(orderObject->order_type == 3 && orderObject->status ==2 )
{
orderObject->status =4;
}
emit changeOrderStatus(orderObject); emit changeOrderStatus(orderObject);
if(!Orderstatus::getInstance().isorderexit(orderId)) if(!Orderstatus::getInstance().isorderexit(orderId))
...@@ -211,16 +214,18 @@ bool FlowControl::_PullOrder() ...@@ -211,16 +214,18 @@ bool FlowControl::_PullOrder()
} }
}else }else
{ {
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if(orderObject->order_type == 3 && orderObject->status ==2 )
{
orderObject->status =4;
}
//旧数据有更新 //旧数据有更新
int oldStatus = orderObject->status; int oldStatus = orderObject->status;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
//将 非码Mall 改为 鲜丰App
if(!orderObject->channelName.compare("非码Mall"))
{
orderObject->channelName = "鲜丰App";
}
//------------------------------
QLOG_INFO() << QString("\r\n\r\n old order[%1:%2].[data:%3]") QLOG_INFO() << QString("\r\n\r\n old order[%1:%2].[data:%3]")
.arg(orderObject->order_id, orderObject->status_desc) .arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject)); .arg(_GetJsonStr(jsonObject));
...@@ -237,49 +242,49 @@ bool FlowControl::_PullOrder() ...@@ -237,49 +242,49 @@ bool FlowControl::_PullOrder()
} }
// 订单完成后两小时写销售单 // 订单完成后两小时写销售单
if(orderObject->status == 6 || orderObject->status == 200) // if(orderObject->status == 6 || orderObject->status == 200)
{ // {
bool bWrite = true; // bool bWrite = true;
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据) // // 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
foreach(ProductObject* pro, orderObject->proList) // foreach(ProductObject* pro, orderObject->proList)
{ // {
if(pro->sub_products.isEmpty()) // if(pro->sub_products.isEmpty())
{ // {
if(pro->unit_ratio <= 0) // if(pro->unit_ratio <= 0)
{ // {
bWrite = false; // bWrite = false;
break; // break;
} // }
}else // }else
{ // {
foreach(ProductObject* cpro, pro->sub_products) // foreach(ProductObject* cpro, pro->sub_products)
{ // {
if(cpro->unit_ratio <= 0) // if(cpro->unit_ratio <= 0)
{ // {
bWrite = false; // bWrite = false;
break; // break;
} // }
} // }
} // }
} // }
if(bWrite) // if(bWrite)
{ // {
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id); // QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
//TODO // //TODO
QTimer::singleShot(1000*60*60*2, [orderObject, this](){ // QTimer::singleShot(1000*60*60*2, [orderObject, this](){
QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id); // QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id);
m_mutex.lock(); // m_mutex.lock();
m_billList.append(orderObject); // m_billList.append(orderObject);
m_mutex.unlock(); // m_mutex.unlock();
}); // });
}else // }else
{ // {
_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误")); // //_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误"));
QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id); // QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
} // }
} // }
m_timestamp = orderObject->timestamp; m_timestamp = orderObject->timestamp;
} }
syncTime = recvJson[JSON_SYNCTIME].toInt()*1000; syncTime = recvJson[JSON_SYNCTIME].toInt()*1000;
...@@ -402,81 +407,8 @@ bool FlowControl::_GetDelivers(const QString &orderId) ...@@ -402,81 +407,8 @@ bool FlowControl::_GetDelivers(const QString &orderId)
bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &deliverObj) bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &deliverObj)
{ {
// QString error; Q_UNUSED(orderId)
// bool result; Q_UNUSED(deliverObj)
// QJsonObject sendJson;
// QJsonObject recvJson;
// sendJson = DataManger::GetInstance().GetConfirmOrderData(orderId, deliverObj.id, deliverObj.name, deliverObj.phone);
// emit showAlert(AlertForm::LOADING, "正在通信......");
// QLOG_INFO() << QString("[---confirm order---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
// result = m_procOrderSocket->Request(sendJson, recvJson, error);
// QLOG_INFO() << QString("confirm order finsh. [result:%1][msg:%2][recvData:%3]")
// .arg(result).arg(error, _GetJsonStr(recvJson));
// if(!result)
// {
// emit showAlert(AlertForm::ERROR, "接单失败![网络错误]");
// }else
// {
// if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
// {
// result = false;
// emit showAlert(AlertForm::ERROR, QString("接单失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
// }else
// {
// OrderObject *orderObject = m_ordersMap.value(orderId);
// emit showAlert(AlertForm::LOADING, "正在录入天天饮食......");
// QLOG_INFO() << QString("[---order entry begin---]");
// QString orderEntryError("");
// if(!FmPlugin::GetInstance().DoOrderEntry(orderObject, m_cashierObject.id, m_cashierObject.name,
// m_cashierObject.shiftId, m_cashierObject.shiftName, error))
// {
// QString dirPath = QString("%1/orders").arg(QApplication::applicationDirPath());
// QDir dir;
// dir.mkdir(dirPath);
// QFile file(QString("%1/%2").arg(dirPath, orderObject->order_id));
// if(!file.exists())
// {
// file.open(QFile::WriteOnly);
// file.close();
// }
// orderEntryError = QString("<font color=\"#FF0000\">[此单录入天天饮食失败,请务必及时在订单详情页补录]</font>");
// QLOG_ERROR() << QString("order entry failed,[%1]").arg(error);
// }else
// {
// QLOG_INFO() << QString("order entry success.");
// }
// QString remark(orderObject->remark), deliveryTime;
// remark = remark.isEmpty()? "" : QString("[备注: %1]").arg(remark);
// deliveryTime = QString("[期望送达时间: %1]").arg(orderObject->delivery_time==0? "立即送出" : QDateTime::fromTime_t(orderObject->delivery_time).toString("yyyy-MM-dd hh:mm:ss"));
// emit showAlert(AlertForm::SUCCESS, QString("接单成功!%1<br/>%2<br/>%3").arg(remark).arg(deliveryTime).arg(orderEntryError));
// // 通知主界面移动订单
// int oldStatus = orderObject->status;
// orderObject->status = recvJson[JSON_STATUS].toInt();
// orderObject->status_desc = recvJson[JSON_STATUSDESC].toString();
// emit changeOrderStatus(orderObject, oldStatus);
// if(orderObject->status==2&&!orderObject->courier_name.isEmpty())
// {
// // 打印
// QLOG_INFO() << QString("[---begin print---].");
// orderObject->courier_name = deliverObj.name;
// orderObject->courier_phone = deliverObj.phone;
// if(FmPrinter::GetInstance().DoPrint(ConfigManger::GetInstance().GetPrinterName(), orderObject))
// {
// QLOG_INFO() << QString("print sucessful");
// }else
// {
// QLOG_INFO() << QString("print failed");
// }
// }
// }
// }
return true; return true;
} }
...@@ -635,6 +567,23 @@ bool FlowControl::_ReportBillEntryResult(const QString &orderId, int status, con ...@@ -635,6 +567,23 @@ bool FlowControl::_ReportBillEntryResult(const QString &orderId, int status, con
return result; return result;
} }
bool FlowControl::_ChargeOffOrder(const QString &orderId)
{
bool result;
QJsonObject sendJson;
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetChargeOffData(orderId);
QLOG_INFO() << QString("[---chargeoff order---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
QString error1;
result = m_procOrderSocket->Request(sendJson, recvJson, error1);
QLOG_INFO() << QString("chargeoff order finsh. [result:%1][msg:%2][recvData:%3]")
.arg(result).arg(error1, _GetJsonStr(recvJson));
return result;
}
bool FlowControl::_RefuseRefund(const QString& orderId) bool FlowControl::_RefuseRefund(const QString& orderId)
{ {
QString error; QString error;
...@@ -869,10 +818,25 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI ...@@ -869,10 +818,25 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
_RefuseOrder(orderId, 2); _RefuseOrder(orderId, 2);
}else if(!operation.compare(OPERATION_SENDOUT)) }else if(!operation.compare(OPERATION_SENDOUT))
{ {
_SendOrder(orderId,deliverObj); // 如果是自提订单则核销
if(m_ordersMap.value(orderId)->order_type == 3)
{
_ChargeOffOrder(orderId);
}else
{
_SendOrder(orderId,deliverObj);
}
}else if(!operation.compare(OPERATION_COMPLETE)) }else if(!operation.compare(OPERATION_COMPLETE))
{ {
_CompleteOrder(orderId); // 如果是自提订单则核销
if(m_ordersMap.value(orderId)->order_type == 3)
{
_ChargeOffOrder(orderId);
}else
{
_CompleteOrder(orderId);
}
}else if(!operation.compare(OPERATION_REFUSEREFUND)) }else if(!operation.compare(OPERATION_REFUSEREFUND))
{ {
_RefuseRefund(orderId); _RefuseRefund(orderId);
......
...@@ -183,6 +183,12 @@ private slots: ...@@ -183,6 +183,12 @@ private slots:
* */ * */
bool _ReportBillEntryResult(const QString& orderId, int status, const QString& error); bool _ReportBillEntryResult(const QString& orderId, int status, const QString& error);
/* 功能:核销订单(用于自提订单)
* 参数:NULL
* 返回:是否成功
* */
bool _ChargeOffOrder(const QString& orderId);
/* 功能:获取Json对象的字符 /* 功能:获取Json对象的字符
* 参数:NULL * 参数:NULL
* 返回:Json字符串 * 返回:Json字符串
......
...@@ -8,7 +8,7 @@ enum ...@@ -8,7 +8,7 @@ enum
REFUSE_ORDER,COMPLETE_ORDER = 16, REFUSE_ORDER,COMPLETE_ORDER = 16,
REFUSE_REFUND = 18,SEND_ORDER = 19, REFUSE_REFUND = 18,SEND_ORDER = 19,
REFUND_ORDER = 20, GET_DELIVER=21, REFUND_ORDER = 20, GET_DELIVER=21,
REPORT_BILL_RESULT = 23, REPORT_BILL_RESULT = 23,CHARGEOFF_ORDER=71,
UPDATE_STOCK=80 UPDATE_STOCK=80
}; };
...@@ -165,3 +165,15 @@ QJsonObject DataManger::GetReportOERData(const QString &orderId, int status, con ...@@ -165,3 +165,15 @@ QJsonObject DataManger::GetReportOERData(const QString &orderId, int status, con
rObj.insert(JSON_POSVERSION, APP_VERSION); rObj.insert(JSON_POSVERSION, APP_VERSION);
return rObj; return rObj;
} }
QJsonObject DataManger::GetChargeOffData(const QString &orderId)
{
QJsonObject rObj, cObj;
rObj.insert(JSON_REQTYPE, CHARGEOFF_ORDER);
cObj.insert(JSON_ORDERID, orderId);
// 暂时没有取餐码
cObj.insert("delivery_code", orderId);
rObj.insert(JSON_ORDER, cObj);
rObj.insert(JSON_POSVERSION, APP_VERSION);
return rObj;
}
...@@ -74,6 +74,12 @@ public: ...@@ -74,6 +74,12 @@ public:
* */ * */
QJsonObject GetReportOERData(const QString& orderId, int status, const QString& error); QJsonObject GetReportOERData(const QString& orderId, int status, const QString& error);
/* 功能:获取核销订单的数据
* 参数:[1]订单ID
* 返回:汇报销售单写入结果数据
* */
QJsonObject GetChargeOffData(const QString& orderId);
private: private:
DataManger(){} DataManger(){}
DataManger(DataManger const&); DataManger(DataManger const&);
......
...@@ -105,7 +105,14 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -105,7 +105,14 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->setText("同意退款"); ui->detailBtn2->setText("同意退款");
} }
ui->detailBtn3->setText(GetOperNameByStatus(orderObject->status)); if(orderObject->order_type==3)
{
ui->detailBtn3->setText("核销");
}else
{
ui->detailBtn3->setText(GetOperNameByStatus(orderObject->status));
}
ui->detailBtn3->setProperty("operation", GetOperByStatus(orderObject->status)); ui->detailBtn3->setProperty("operation", GetOperByStatus(orderObject->status));
ui->detailBtn3->setProperty("orderId", orderObject->order_id); ui->detailBtn3->setProperty("orderId", orderObject->order_id);
......
...@@ -394,7 +394,14 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus) ...@@ -394,7 +394,14 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
pBtn->setObjectName("mainProcBtn"); pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->order_id); pBtn->setProperty("orderId", orderObject->order_id);
pBtn->setProperty("operation", table->property("operation").toString()); pBtn->setProperty("operation", table->property("operation").toString());
pBtn->setText(table->property("operationName").toString()); if(orderObject->order_type==3)
{
pBtn->setText("核销");
}else
{
pBtn->setText(table->property("operationName").toString());
}
hLayout->addWidget(pBtn); hLayout->addWidget(pBtn);
hLayout->setMargin(0); hLayout->setMargin(0);
pWdg->setLayout(hLayout); pWdg->setLayout(hLayout);
......
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