Commit 76ee0f47 by shangshang.dai

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

parent f4c0918c
......@@ -166,6 +166,15 @@ bool FlowControl::_PullOrder()
//新数据
orderObject = new OrderObject(this);
orderObject->FromJson(jsonObject);
//将 非码Mall 改为 鲜丰App
if(!orderObject->channelName.compare("非码Mall"))
{
orderObject->channelName = "鲜丰App";
}
//------------------------------
m_ordersMap.insert(orderObject->order_id, orderObject);
if(!orderObject->order_view_id.isEmpty())
{
......@@ -176,12 +185,6 @@ bool FlowControl::_PullOrder()
.arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject));
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if(orderObject->order_type == 3 && orderObject->status ==2 )
{
orderObject->status =4;
}
emit changeOrderStatus(orderObject);
if(!Orderstatus::getInstance().isorderexit(orderId))
......@@ -211,16 +214,18 @@ bool FlowControl::_PullOrder()
}
}else
{
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if(orderObject->order_type == 3 && orderObject->status ==2 )
{
orderObject->status =4;
}
//旧数据有更新
int oldStatus = orderObject->status;
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]")
.arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject));
......@@ -237,49 +242,49 @@ bool FlowControl::_PullOrder()
}
// 订单完成后两小时写销售单
if(orderObject->status == 6 || orderObject->status == 200)
{
bool bWrite = true;
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
foreach(ProductObject* pro, orderObject->proList)
{
if(pro->sub_products.isEmpty())
{
if(pro->unit_ratio <= 0)
{
bWrite = false;
break;
}
}else
{
foreach(ProductObject* cpro, pro->sub_products)
{
if(cpro->unit_ratio <= 0)
{
bWrite = false;
break;
}
}
}
}
if(bWrite)
{
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
//TODO
QTimer::singleShot(1000*60*60*2, [orderObject, this](){
QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id);
m_mutex.lock();
m_billList.append(orderObject);
m_mutex.unlock();
});
}else
{
_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误"));
QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
}
}
// if(orderObject->status == 6 || orderObject->status == 200)
// {
// bool bWrite = true;
// // 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
// foreach(ProductObject* pro, orderObject->proList)
// {
// if(pro->sub_products.isEmpty())
// {
// if(pro->unit_ratio <= 0)
// {
// bWrite = false;
// break;
// }
// }else
// {
// foreach(ProductObject* cpro, pro->sub_products)
// {
// if(cpro->unit_ratio <= 0)
// {
// bWrite = false;
// break;
// }
// }
// }
// }
// if(bWrite)
// {
// QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
// //TODO
// QTimer::singleShot(1000*60*60*2, [orderObject, this](){
// QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id);
// m_mutex.lock();
// m_billList.append(orderObject);
// m_mutex.unlock();
// });
// }else
// {
// //_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误"));
// QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
// }
// }
m_timestamp = orderObject->timestamp;
}
syncTime = recvJson[JSON_SYNCTIME].toInt()*1000;
......@@ -402,81 +407,8 @@ bool FlowControl::_GetDelivers(const QString &orderId)
bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &deliverObj)
{
// QString error;
// bool result;
// 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");
// }
// }
// }
// }
Q_UNUSED(orderId)
Q_UNUSED(deliverObj)
return true;
}
......@@ -635,6 +567,23 @@ bool FlowControl::_ReportBillEntryResult(const QString &orderId, int status, con
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)
{
QString error;
......@@ -869,10 +818,25 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
_RefuseOrder(orderId, 2);
}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))
{
_CompleteOrder(orderId);
// 如果是自提订单则核销
if(m_ordersMap.value(orderId)->order_type == 3)
{
_ChargeOffOrder(orderId);
}else
{
_CompleteOrder(orderId);
}
}else if(!operation.compare(OPERATION_REFUSEREFUND))
{
_RefuseRefund(orderId);
......
......@@ -183,6 +183,12 @@ private slots:
* */
bool _ReportBillEntryResult(const QString& orderId, int status, const QString& error);
/* 功能:核销订单(用于自提订单)
* 参数:NULL
* 返回:是否成功
* */
bool _ChargeOffOrder(const QString& orderId);
/* 功能:获取Json对象的字符
* 参数:NULL
* 返回:Json字符串
......
......@@ -8,7 +8,7 @@ enum
REFUSE_ORDER,COMPLETE_ORDER = 16,
REFUSE_REFUND = 18,SEND_ORDER = 19,
REFUND_ORDER = 20, GET_DELIVER=21,
REPORT_BILL_RESULT = 23,
REPORT_BILL_RESULT = 23,CHARGEOFF_ORDER=71,
UPDATE_STOCK=80
};
......@@ -165,3 +165,15 @@ QJsonObject DataManger::GetReportOERData(const QString &orderId, int status, con
rObj.insert(JSON_POSVERSION, APP_VERSION);
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:
* */
QJsonObject GetReportOERData(const QString& orderId, int status, const QString& error);
/* 功能:获取核销订单的数据
* 参数:[1]订单ID
* 返回:汇报销售单写入结果数据
* */
QJsonObject GetChargeOffData(const QString& orderId);
private:
DataManger(){}
DataManger(DataManger const&);
......
......@@ -105,7 +105,14 @@ void DetailForm::InitData(OrderObject *orderObject)
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("orderId", orderObject->order_id);
......
......@@ -394,7 +394,14 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->order_id);
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->setMargin(0);
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