Commit 2707a861 by 刘帅

Merge remote-tracking branch 'origin/XianFeng' into xianfeng

parents 416614ab bb26bfbe
#include "fmPrinter.h"
#include "fmPrinter.h"
#include <QFile>
#include <QCoreApplication>
#include <QDateTime>
......@@ -288,7 +288,7 @@ QString FmPrinter::_GetPrintData(OrderObject *pData)
bPrintCode = "0";
deliveryStr = "NULL";
bPrintXXCHC = "0";
}else if(pData->status == 21)
}else if(pData->status == 22)
{
str0 = pData->channelName+"(顾客申请部分退单)";
remark = QString("请马上联系站点沟通顾客,否则取消单将算入门店异常取消单,影响门店排名,站点电话在平台软件订单里面点击更多联系人");
......
#include "flowControl.h"
#include "flowControl.h"
#include "fmPlugin.h"
#include "fmPrinter.h"
#include "QsLog.h"
......@@ -112,9 +112,9 @@ bool FlowControl::_PullOrder()
QLOG_INFO() << QString("[---pull order---][requestData:%1]").arg(_GetJsonStr(sendJson));
result = m_pullOrderSocket->Request(sendJson, recvJson, error);
qDebug() << "---------------------------------------------------------------";
qDebug() << recvJson;
qDebug() << "---------------------------------------------------------------";
// qDebug() << "---------------------------------------------------------------";
// qDebug() << recvJson;
// qDebug() << "---------------------------------------------------------------";
QLOG_INFO() << QString("pull order finsh. [result:%1][msg:%2]")
.arg(result).arg(error);
if(!result)
......@@ -237,7 +237,7 @@ bool FlowControl::_PullOrder()
.arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject));
if((oldStatus != orderObject->status) && (orderObject->status == 3))
if((oldStatus != orderObject->status) && (orderObject->status == 3) && !m_refundOrders.contains(orderObject->order_id))
{
emit showAlert(AlertForm::ERROR, QString("[%1][%2]号订单[%3]已被取消!").arg(orderObject->channelName).arg(orderObject->order_index).arg(orderObject->order_id));
}
......@@ -252,7 +252,7 @@ bool FlowControl::_PullOrder()
}
}
if( (orderObject->status==20||orderObject->status==21) && Orderstatus::getInstance().isprinted_20(orderId))
if( (orderObject->status==20||orderObject->status==22) && Orderstatus::getInstance().isprinted_20(orderId))
{
if(FmPrinter::GetInstance().DoPrint(ConfigManger::GetInstance().GetPrinterName(), orderObject))
{
......@@ -265,50 +265,34 @@ 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(orderObject->status == 22 && orderObject->refund_products.isEmpty())
{
QJsonObject sendJson;
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetRefundDetails(orderObject->order_id);
// 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();
// });
QLOG_INFO() << QString("[---pull refundDetails---][requestData:%1]").arg(_GetJsonStr(sendJson));
result = m_pullOrderSocket->Request(sendJson, recvJson, error);
QLOG_INFO() << QString("pull refundDetails finsh. [result:%1][msg:%2]")
.arg(result).arg(error);
// }else
// {
// //_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误"));
// QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
// }
// }
if(result)
{
if(recvJson["statusCode"].toInt() == 100)
{
QJsonArray items = recvJson["refund_info"].toObject()["refund_items"].toArray();
foreach(QJsonValue item, items)
{
QJsonObject itemObj = item.toObject();
ProductObject *dish = new ProductObject;
dish->pid = itemObj["pid"].toString();
dish->name = itemObj["name"].toString();
orderObject->refund_products.append(dish);
}
orderObject->refund_total_fee = recvJson["refund_info"].toObject()["refund_total"].toInt();
}
}
}
m_timestamp = orderObject->timestamp;
}
syncTime = recvJson[JSON_SYNCTIME].toInt()*1000;
......@@ -769,7 +753,14 @@ bool FlowControl::_RefundOrder(const QString &orderId, const QString &reason)
QJsonObject sendJson;
QJsonObject recvJson;
if( m_ordersMap.value(orderId)->status == 20 || m_ordersMap.value(orderId)->status == 22)
{
sendJson = DataManger::GetInstance().GetAgreeRefundData(reason,orderId);
}else
{
sendJson = DataManger::GetInstance().GetRefundOrderData(reason,orderId);
}
emit showAlert(AlertForm::LOADING, "正在通信......");
QLOG_INFO() << QString("[---refund order---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
......@@ -778,7 +769,7 @@ bool FlowControl::_RefundOrder(const QString &orderId, const QString &reason)
.arg(result).arg(error, _GetJsonStr(recvJson));
if(!result)
{
emit showAlert(AlertForm::ERROR, "完成失败![网络错误]");
emit showAlert(AlertForm::ERROR, "退款失败![网络错误]");
}else
{
if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
......@@ -795,6 +786,8 @@ bool FlowControl::_RefundOrder(const QString &orderId, const QString &reason)
orderObject->status = recvJson[JSON_STATUS].toInt();
orderObject->status_desc = recvJson[JSON_STATUSDESC].toString();
emit changeOrderStatus(orderObject, oldStatus);
m_refundOrders.append(orderId);
}
}
......@@ -997,6 +990,7 @@ void FlowControl::onRefund(const QString &orderId, const QString &reason)
void FlowControl::onPullDishes()
{
qDebug() << __FUNCTION__;
QString error;
bool result;
QJsonObject sendJson;
......
/********************
/********************
* 流程控制
* *****************/
......@@ -61,6 +61,8 @@ private:
QList<OrderObject*> m_billList;
QMutex m_mutex;
QStringList m_refundOrders;
signals:
/* 功能:连接数据库完成
* 参数:[1]是否成功[2]错误信息
......
#include "dataManger.h"
#include "dataManger.h"
#include "preDefine.h"
// 请求类型
......@@ -7,6 +7,7 @@ enum
LOGIN = 10, PULL_ORDER, CONFIRM_ORDER,
REFUSE_ORDER,COMPLETE_ORDER = 16,
REFUSE_REFUND = 18,SEND_ORDER = 19,
AGREE_REFUND= 17,
REFUND_ORDER = 20, GET_DELIVER=21,
REPORT_BILL_RESULT = 23,
PULL_DISHES = 24, UPD_DISHES_STATUS = 25,
......@@ -124,6 +125,18 @@ QJsonObject DataManger::GetRefundOrderData(const QString &reason, const QString
return rObj;
}
QJsonObject DataManger::GetAgreeRefundData(const QString &reason, const QString &orderId)
{
QJsonObject rObj, cObj;
rObj.insert(JSON_REQTYPE, AGREE_REFUND);
cObj.insert(JSON_ORDERID, orderId);
cObj.insert(JSON_REASON, reason);
rObj.insert(JSON_ORDER, cObj);
rObj.insert(JSON_TOKEN, m_token);
rObj.insert(JSON_POSVERSION, APP_VERSION);
return rObj;
}
QJsonObject DataManger::GetRefuseRefundData(const QString &reason, const QString &orderId)
{
QJsonObject rObj, cObj;
......@@ -237,3 +250,13 @@ QJsonObject DataManger::GetOperatingStatusData(const QString &channel, int statu
rObj.insert("business_status", status);
return rObj;
}
QJsonObject DataManger::GetRefundDetails(const QString &orderId)
{
QJsonObject json, order;
json.insert("reqtype", 27);
order.insert("order_id", orderId);
json.insert("order", order);
json.insert("token", m_token);
return json;
}
#ifndef DATAMANGER_H
#ifndef DATAMANGER_H
#define DATAMANGER_H
#include <QJsonObject>
......@@ -52,11 +52,18 @@ public:
* 返回:登录数据
* */
QJsonObject GetCompleteOrderData(const QString& orderId);
/* 功能:获取同意退单数据
/* 功能:获取商家主动退单数据
* 参数:[1]时间戳
* 返回:登录数据
* */
QJsonObject GetRefundOrderData(const QString& reason, const QString& orderId);
/* 功能:获取同意退单数据
* 参数:[1]时间戳
* 返回:登录数据
* */
QJsonObject GetAgreeRefundData(const QString& reason, const QString& orderId);
/* 功能:获取拒绝退单数据
* 参数:[1]时间戳
* 返回:登录数据
......@@ -105,6 +112,11 @@ public:
QJsonObject GetOperatingStatusData(const QString &channel, int status);
/* 功能:获取退款详情数据
* 参数:NULL
* 返回:数据
* */
QJsonObject GetRefundDetails(const QString& orderId);
private:
DataManger(){}
......
#include "util.h"
#include "util.h"
#include "preDefine.h"
QString Penny2Dollar(int penny)
......@@ -26,6 +26,7 @@ QString GetOperByStatus(int status)
return "NULL";
break;
case 20:
case 22:
return OPERATION_REFUSEREFUND;
break;
default:
......@@ -53,6 +54,7 @@ QString GetOperNameByStatus(int status)
return "NULL";
break;
case 20:
case 22:
return OPERATIONNAME_REFUSEREFUND;
break;
default:
......
#ifndef ORDEROBJECT_H
#ifndef ORDEROBJECT_H
#define ORDEROBJECT_H
#include "productObject.h"
......@@ -112,6 +112,9 @@ public:
QPushButton* curt_table_btn; //当前订单所在表对应的按钮
QList<ProductObject*> refund_products; // 需要退款的商品
int refund_total_fee; // 退款总金额
protected:
int getorder_type() const;
void setorder_type(const int& v);
......
#include "detailForm.h"
#include "detailForm.h"
#include "ui_detailForm.h"
#include "DTools/util.h"
#include "preDefine.h"
......@@ -9,6 +9,7 @@
#include <QFile>
#include "QsLog.h"
#include "DTools/orderstatus.h"
#include <QDebug>
DetailForm::DetailForm(QWidget *parent) :
......@@ -29,6 +30,7 @@ DetailForm::~DetailForm()
void DetailForm::InitData(OrderObject *orderObject)
{
qDebug() << __FUNCTION__;
m_orderObject = orderObject;
// 恢复界面
......@@ -58,27 +60,56 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailLab8->setText(orderObject->has_invoiced? QString("发票抬头:%1").arg(orderObject->invoice_title) : "不需要发票");
ui->detailLab9->setText(QString("-")+Penny2Dollar(orderObject->dis_shop_fee));
ui->detailLab10->setText(QString("-")+Penny2Dollar(orderObject->service_fee));
ui->detailLab11->setText(QString("-")+Penny2Dollar(orderObject->dis_shop_fee+orderObject->service_fee));
int pricecount=0;
for(int i=0; i<orderObject->proList.count(); i++)
{
ui->detailTable0->insertRow(i);
ui->detailTable0->setItem(i, 0, new QTableWidgetItem(orderObject->proList.at(i)->name+"["+orderObject->proList.at(i)->property_tags+"]")); // 商品名
ui->detailTable0->item(i, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 1, new QTableWidgetItem(Penny2Dollar(orderObject->proList.at(i)->price))); // 价格
ui->detailTable0->item(i, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->productAmount))); // 数量
ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter);
pricecount=pricecount+orderObject->proList.at(i)->price*orderObject->proList.at(i)->productAmount;
ui->detailLab11->setText(Penny2Dollar(orderObject->shop_fee-orderObject->dis_shop_fee-orderObject->service_fee));
int priceCount = 0;
int rowCount = 0;
foreach(ProductObject *pProduct, orderObject->proList)
{
ui->detailTable0->insertRow(rowCount);
ui->detailTable0->setItem(rowCount, 0, new QTableWidgetItem(pProduct->name+"["+pProduct->property_tags+"]")); // 商品名
ui->detailTable0->item(rowCount, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(rowCount, 1, new QTableWidgetItem(Penny2Dollar(pProduct->price))); // 价格
ui->detailTable0->item(rowCount, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(rowCount, 2, new QTableWidgetItem(QString::number(pProduct->productAmount))); // 数量
ui->detailTable0->item(rowCount, 2)->setTextAlignment(Qt::AlignCenter);
priceCount = priceCount + pProduct->price*pProduct->productAmount;
rowCount++;
}
ui->detailTable0->insertRow(rowCount);
ui->detailTable0->setItem(rowCount,0,new QTableWidgetItem(QString("商品合计")));
ui->detailTable0->item(rowCount, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(rowCount, 1, new QTableWidgetItem(Penny2Dollar(priceCount))); // 商品总价
ui->detailTable0->item(rowCount, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(rowCount, 2, new QTableWidgetItem(QString::number(orderObject->total_amount))); // 总数量
ui->detailTable0->item(rowCount, 2)->setTextAlignment(Qt::AlignCenter);
rowCount++;
if(!orderObject->refund_products.isEmpty())
{
ui->detailTable0->insertRow(rowCount);
ui->detailTable0->setItem(rowCount,0,new QTableWidgetItem(QString("退款商品")));
ui->detailTable0->item(rowCount, 0)->setTextAlignment(Qt::AlignCenter);
rowCount++;
foreach(ProductObject* pProduct, orderObject->refund_products)
{
ui->detailTable0->insertRow(rowCount);
ui->detailTable0->setItem(rowCount, 0, new QTableWidgetItem(pProduct->name)); // 商品名
ui->detailTable0->item(rowCount, 0)->setTextAlignment(Qt::AlignCenter);
rowCount++;
}
ui->detailTable0->insertRow(rowCount);
ui->detailTable0->setItem(rowCount,0,new QTableWidgetItem(QString("退款总额")));
ui->detailTable0->item(rowCount, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(rowCount, 1, new QTableWidgetItem(Penny2Dollar(orderObject->refund_total_fee))); // 商品总价
ui->detailTable0->item(rowCount, 1)->setTextAlignment(Qt::AlignCenter);
}
int count=orderObject->proList.count();
ui->detailTable0->insertRow(count);
ui->detailTable0->setItem(count,0,new QTableWidgetItem(QString("商品合计")));
ui->detailTable0->item(count, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(count, 1, new QTableWidgetItem(Penny2Dollar(pricecount))); // 商品总价
ui->detailTable0->item(count, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(count, 2, new QTableWidgetItem(QString::number(orderObject->total_amount))); // 总数量
ui->detailTable0->item(count, 2)->setTextAlignment(Qt::AlignCenter);
QString records;
foreach(QString record, orderObject->records)
......@@ -96,11 +127,11 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->setProperty("operation", OPERATION_REFUSE);
ui->detailBtn2->setProperty("orderId", orderObject->order_id);
ui->detailBtn2->show();
if(orderObject->status !=2&&orderObject->status !=4&&orderObject->status !=6&&orderObject->status !=200&&orderObject->status !=20 )
if(orderObject->status !=2&&orderObject->status !=4&&orderObject->status !=6&&orderObject->status !=200&&orderObject->status !=20&&orderObject->status !=22 )
{
ui->detailBtn2->hide();
}
if(orderObject->status==20||orderObject->status ==6||orderObject->status ==200)
if(orderObject->status==22||orderObject->status==20||orderObject->status ==6||orderObject->status ==200)
{
ui->detailBtn2->setText("同意退款");
}
......@@ -168,7 +199,7 @@ void DetailForm::on_detailBtn1_clicked()
void DetailForm::on_detailBtn2_clicked()
{
QString refuse_reason;
if(m_orderObject->delivery_status==2)
if(m_orderObject->delivery_status==2 || m_orderObject->status==20 ||m_orderObject->status==22)
{
refuse_reason = "8";
emit dorefund(m_orderObject->order_id,refuse_reason);
......
......@@ -988,7 +988,7 @@
</size>
</property>
<property name="text">
<string>优惠合计:</string>
<string>预计收入:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
......
#include "mainForm.h"
#include "mainForm.h"
#include "QsLog.h"
#include "ui_mainForm.h"
#include "preDefine.h"
......@@ -41,8 +41,6 @@ MainForm::MainForm(QWidget *parent) :
connect(this, &MainForm::processOrder, &FlowControl::GetInstance(), &FlowControl::onProcessOrder);
connect(this, &MainForm::getOnDutyCashiers, &FlowControl::GetInstance(), &FlowControl::onGetOnDutyCashiers);
connect(this, &MainForm::getOrderDetails, &FlowControl::GetInstance(), &FlowControl::onGetOrderDetails);
connect(this, &MainForm::PullDishes, &FlowControl::GetInstance(), &FlowControl::onPullDishes);
connect(this, &MainForm::GetBusinessStatus, &FlowControl::GetInstance(), &FlowControl::onGetBusinessStatus);
connect(&FlowControl::GetInstance(), &FlowControl::hideAlert, this, &MainForm::onHideAlert);
connect(&FlowControl::GetInstance(), &FlowControl::showAlert, this, &MainForm::onShowAlert);
connect(&FlowControl::GetInstance(), &FlowControl::setOpeStatus, this, &MainForm::onSetOpeStatus);
......@@ -98,12 +96,17 @@ void MainForm::MyShow()
m_resultForm->hide();
connect(m_resultForm, &QListWidget::itemClicked, this, &MainForm::onSearchResultItemClicked);
// 菜品管理门店管理
m_dishesForm = new dishesForm(this);
//ui->mainBtnMDGL->hide();
m_bunisStatusForm = new BStatusForm(this);
//ui->mainBtnDc->hide();
emit flowStart();
connect(this, &MainForm::PullDishes, &FlowControl::GetInstance(), &FlowControl::onPullDishes);
connect(this, &MainForm::GetBusinessStatus, &FlowControl::GetInstance(), &FlowControl::onGetBusinessStatus);
ui->mainEdtSearch->setFocus();
return;
}
......@@ -120,7 +123,7 @@ void MainForm::_Init()
// 初始化文字
ui->mainLabStoreid->setText(UI_STOREID);
ui->mainLabVersion->setText("1.3.4");
ui->mainLabVersion->setText("1.3.8");
ui->mainLabCashier->setText(UI_CASHIER);
// 初始化表
......@@ -303,6 +306,7 @@ QPushButton *MainForm::_GetTabBtnByOrderStatus(int orderStatus)
return ui->mainBtnFinsh;
break;
case 20:
case 22:
return ui->mainBtnRefund;
break;
default:
......@@ -398,9 +402,23 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
QTableWidgetItem *item4 = new QTableWidgetItem(orderObject->phone);
item4->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 4, item4); // 联系方式
if(orderObject->status == 20)
{
QTableWidgetItem *item5 = new QTableWidgetItem("全额退款");
item5->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 5, item5);
}else if(orderObject->status == 22)
{
QTableWidgetItem *item5 = new QTableWidgetItem("部分退款");
item5->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 5, item5);
}else
{
QTableWidgetItem *item5 = new QTableWidgetItem(QDateTime::fromTime_t(orderObject->create_time).toString("MM-dd hh:mm"));
item5->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 5, item5); // 下单时间
}
if(table == ui->mainTableRefund||(table==ui->mainTableMake&&orderObject->delivery_type==0&&!orderObject->bAppointSender)||table==ui->mainTableOur)
{
QWidget *pWdg = new QWidget(table);
......@@ -523,6 +541,7 @@ void MainForm::onSearchResultItemClicked(QListWidgetItem *item)
void MainForm::on_mainBtnDc_clicked()
{
qDebug() << __FUNCTION__;
emit PullDishes();
}
......
......@@ -756,7 +756,7 @@
</column>
<column>
<property name="text">
<string>下单时间</string>
<string>退款类型</string>
</property>
</column>
<column>
......
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