Commit 1b338b66 by ss.dai

1:自动入账改为完成后两小时 2:新增京东服务费计算(商品额-商家优惠)*0.08 3:入账只录当天的订单 4:修改小票配送方式的显示(骑士转送->自定义数据)

parent ce44cc42
...@@ -50,7 +50,6 @@ bool FmPlugin::ConnectDb(const QString &host, const QString &username, const QSt ...@@ -50,7 +50,6 @@ bool FmPlugin::ConnectDb(const QString &host, const QString &username, const QSt
bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId, QDateTime &dateTime, QString &error) bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId, QDateTime &dateTime, QString &error)
{ {
// TODO(用于鲜丰演示)
QString apppath=QCoreApplication::applicationDirPath(); QString apppath=QCoreApplication::applicationDirPath();
QString inipath=apppath+QString("/tmp.ini"); QString inipath=apppath+QString("/tmp.ini");
qDebug()<<inipath; qDebug()<<inipath;
...@@ -62,50 +61,10 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId ...@@ -62,50 +61,10 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId
qDebug()<<storeId<<posId; qDebug()<<storeId<<posId;
return true; return true;
/*if(!m_db.open())
{
error = m_db.lastError().text();
return false;
}
QSqlQuery query = QSqlQuery(m_db);
// 获取门店号
QString queryStoreId("select sys_var_value from sys_t_system where sys_var_id='g_branch_no';");
query.prepare(queryStoreId);
if (!query.exec())
{
error = query.lastError().text();
m_db.close();
return false;
}
query.next();
storeId = query.value(0).toString();
m_storeId = storeId;
// 获取营业日
QString queryDateTime("select sys_var_value from sys_t_system where sys_var_id='dBusiness';");
query.prepare(queryDateTime);
if (!query.exec())
{
error = query.lastError().text();
m_db.close();
return false;
}
query.next();
dateTime = query.value(0).toDateTime();
posId="1";
cashierId="1";
error = QString("success");
m_db.close();
return true;
*/
} }
bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &error) bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &error)
{ {
// TODO(用于鲜丰演示)
CashierObject obj; CashierObject obj;
obj.id = "001"; obj.id = "001";
obj.name = "鲜丰测试"; obj.name = "鲜丰测试";
...@@ -390,13 +349,24 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject) ...@@ -390,13 +349,24 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
QJsonObject rObj; QJsonObject rObj;
rObj.insert("uuid", orderObject->order_view_id.isEmpty()?orderObject->order_id:orderObject->order_view_id); rObj.insert("uuid", orderObject->order_view_id.isEmpty()?orderObject->order_id:orderObject->order_view_id);
// 京东的服务费由客户端来算出
// 计算规则 (订单商品金额的总和-商家承担优惠)*0.08
QString serviceFee;
if(orderObject->channel=="jdwm")
{
serviceFee = _Penny2Dollar((orderObject->product_fee-orderObject->dis_shop_fee)*0.08);
}else
{
serviceFee = _Penny2Dollar(orderObject->service_fee);
}
rObj.insert("senderCode", m_storeId); rObj.insert("senderCode", m_storeId);
rObj.insert("senderWrh", "-"); rObj.insert("senderWrh", "-");
rObj.insert("receiverCode", m_recCodeMap.value(orderObject->channel)); rObj.insert("receiverCode", m_recCodeMap.value(orderObject->channel));
rObj.insert("contactor", orderObject->customer); rObj.insert("contactor", orderObject->customer);
rObj.insert("phoneNumber", orderObject->phone); rObj.insert("phoneNumber", orderObject->phone);
rObj.insert("deliverAddress", orderObject->address); rObj.insert("deliverAddress", orderObject->address);
rObj.insert("remark", _Penny2Dollar(orderObject->service_fee)); rObj.insert("remark", serviceFee);
rObj.insert("ocrDate", QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-ddThh:mm:ss.zzz+0800")); rObj.insert("ocrDate", QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-ddThh:mm:ss.zzz+0800"));
rObj.insert("filler", "*"); rObj.insert("filler", "*");
rObj.insert("seller", "*"); rObj.insert("seller", "*");
......
...@@ -12,7 +12,7 @@ class PluginWorker; ...@@ -12,7 +12,7 @@ class PluginWorker;
class FMPLUGINSHARED_EXPORT FmPlugin class FMPLUGINSHARED_EXPORT FmPlugin
{ {
public: public slots:
static FmPlugin& GetInstance(); static FmPlugin& GetInstance();
/* 功能:连接数据库 /* 功能:连接数据库
......
...@@ -141,14 +141,14 @@ QString FmPrinter::_GetPrintData(OrderObject *pData) ...@@ -141,14 +141,14 @@ QString FmPrinter::_GetPrintData(OrderObject *pData)
QString print; QString print;
if(!pData->channelName.compare("饿了么")) if(!pData->channelName.compare("饿了么"))
{ {
print = str_print.append(QString("(鲜丰水果)")+storename).append("|").append("#"+QString::number(pData->order_index)+" 饿了么").append("|").append(pData->order_view_id.isEmpty()?pData->order_id:pData->order_view_id).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm")) print = str_print.append(QString("(鲜丰水果)")+storename).append("|").append("#"+QString::number(pData->order_index)+" 饿了么").append("|").append(pData->delivery_party).append("|").append(pData->order_view_id.isEmpty()?pData->order_id:pData->order_view_id).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm"))
.append("|").append(QString("备注:")+pData->remark).append("|").append(invoice).append("|").append(pData->invoice_title).append("|").append(str_comd_list).append("|").append(_Penny2Dollar(pData->total_fee-pData->send_fee)).append("|").append(_Penny2Dollar(pData->discount_fee)) .append("|").append(QString("备注:")+pData->remark).append("|").append(invoice).append("|").append(pData->invoice_title).append("|").append(str_comd_list).append("|").append(_Penny2Dollar(pData->total_fee-pData->send_fee)).append("|").append(_Penny2Dollar(pData->discount_fee))
.append("|").append(_Penny2Dollar(pData->send_fee)).append("|").append(QString::number(pData->total_amount)).append("|").append(_Penny2Dollar(pData->total_fee-pData->discount_fee)).append("|").append(pData->customer).append("|").append(pData->address).append("|"). .append("|").append(_Penny2Dollar(pData->send_fee)).append("|").append(QString::number(pData->total_amount)).append("|").append(_Penny2Dollar(pData->total_fee-pData->discount_fee)).append("|").append(pData->customer).append("|").append(pData->address).append("|").
append(pData->phone); append(pData->phone);
} }
else else
{ {
print = str_print.append(QString("(鲜丰水果)")+storename).append("|").append("#"+QString::number(pData->order_index)).append(pData->channelName).append("|").append(pData->order_view_id.isEmpty()?pData->order_id:pData->order_view_id).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm")) print = str_print.append(QString("(鲜丰水果)")+storename).append("|").append("#"+QString::number(pData->order_index)).append(pData->channelName).append("|").append(pData->delivery_party).append("|").append(pData->order_view_id.isEmpty()?pData->order_id:pData->order_view_id).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm"))
.append("|").append(QString("备注:")+pData->remark).append("|").append(invoice).append("|").append(pData->invoice_title).append("|").append(str_comd_list).append("|").append(_Penny2Dollar(pData->total_fee-pData->send_fee)).append("|").append(_Penny2Dollar(pData->discount_fee)) .append("|").append(QString("备注:")+pData->remark).append("|").append(invoice).append("|").append(pData->invoice_title).append("|").append(str_comd_list).append("|").append(_Penny2Dollar(pData->total_fee-pData->send_fee)).append("|").append(_Penny2Dollar(pData->discount_fee))
.append("|").append(_Penny2Dollar(pData->send_fee)).append("|").append(QString::number(pData->total_amount)).append("|").append(_Penny2Dollar(pData->total_fee-pData->discount_fee)).append("|").append(pData->customer).append("|").append(pData->address).append("|"). .append("|").append(_Penny2Dollar(pData->send_fee)).append("|").append(QString::number(pData->total_amount)).append("|").append(_Penny2Dollar(pData->total_fee-pData->discount_fee)).append("|").append(pData->customer).append("|").append(pData->address).append("|").
append(pData->phone); append(pData->phone);
......
...@@ -24,6 +24,7 @@ FlowControl::FlowControl() ...@@ -24,6 +24,7 @@ FlowControl::FlowControl()
m_loginSocket = NULL; m_loginSocket = NULL;
m_pullOrderSocket = NULL; m_pullOrderSocket = NULL;
m_procOrderSocket = NULL; m_procOrderSocket = NULL;
netErrorIndex = 0;
} }
bool FlowControl::_GetStoreInfo() bool FlowControl::_GetStoreInfo()
...@@ -111,14 +112,19 @@ bool FlowControl::_PullOrder() ...@@ -111,14 +112,19 @@ bool FlowControl::_PullOrder()
.arg(result).arg(error); .arg(result).arg(error);
if(!result) if(!result)
{ {
netErrorIndex++;
emit setNetStatus("<font color='#ff0000'>异常</font>"); emit setNetStatus("<font color='#ff0000'>异常</font>");
if(netErrorIndex > 50)
{
if(neterror)//如果之前网络正常,则开始语音提示网络错误 if(neterror)//如果之前网络正常,则开始语音提示网络错误
{ {
emit startNetErrorRemind(); emit startNetErrorRemind();
} }
neterror=false; neterror=false;
}
}else }else
{ {
netErrorIndex = 0;
emit setNetStatus("正常"); emit setNetStatus("正常");
if(!neterror)//如果之前网络异常,现在正常,则停止语音提示 if(!neterror)//如果之前网络异常,现在正常,则停止语音提示
{ {
...@@ -198,7 +204,6 @@ bool FlowControl::_PullOrder() ...@@ -198,7 +204,6 @@ bool FlowControl::_PullOrder()
}else }else
{ {
//旧数据有更新 //旧数据有更新
//int oldDeliveryStatus = orderObject->delivery_status;
int oldStatus = orderObject->status; int oldStatus = orderObject->status;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
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]")
...@@ -215,11 +220,11 @@ bool FlowControl::_PullOrder() ...@@ -215,11 +220,11 @@ bool FlowControl::_PullOrder()
} }
} }
if(orderObject->status == 4 || orderObject->status == 5 // 订单完成后两小时写销售单
|| orderObject->status == 6 if(orderObject->status == 6 || orderObject->status == 200)
|| 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())
...@@ -242,25 +247,31 @@ bool FlowControl::_PullOrder() ...@@ -242,25 +247,31 @@ bool FlowControl::_PullOrder()
} }
} }
if(!orderObject->channel.compare("jdwm")) QDateTime ctime(QDateTime::currentDateTime());
{ ctime.setTime(QTime(0,0));
if(orderObject->service_fee <= 0)
if(QDateTime::fromTime_t(orderObject->create_time)<ctime)
{ {
bWrite = false; bWrite = false;
} }
}
QString error;
if(bWrite) if(bWrite)
{ {
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
QTimer::singleShot(1000*60*120, [orderObject](){
QString error;
if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error)) if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error))
{ {
QLOG_INFO() << QString("_PullOrder DoOrderEntry successful") << error; QLOG_INFO() << QString("_PullOrder DoOrderEntry successful %1").arg(orderObject->order_id);
}else }else
{ {
QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1").arg(error); QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1 %2").arg(orderObject->order_id, error);
} }
});
}else
{
QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
} }
} }
m_timestamp = orderObject->timestamp; m_timestamp = orderObject->timestamp;
......
...@@ -49,6 +49,8 @@ private: ...@@ -49,6 +49,8 @@ private:
// viewId _ orderId // viewId _ orderId
QMap<QString, QString> m_view2Id; QMap<QString, QString> m_view2Id;
int netErrorIndex;
signals: signals:
/* 功能:连接数据库完成 /* 功能:连接数据库完成
* 参数:[1]是否成功[2]错误信息 * 参数:[1]是否成功[2]错误信息
......
...@@ -12,6 +12,7 @@ include("./QsLog/QsLog.pri") ...@@ -12,6 +12,7 @@ include("./QsLog/QsLog.pri")
TARGET = fmTakeaway TARGET = fmTakeaway
TEMPLATE = app TEMPLATE = app
CONFIG += c++11
INCLUDEPATH += ../fmPlugin INCLUDEPATH += ../fmPlugin
INCLUDEPATH += ../fmPrinter INCLUDEPATH += ../fmPrinter
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.0.0, 2017-04-14T09:39:05. --> <!-- Written by QtCreator 4.0.0, 2017-04-21T16:05:36. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
......
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