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
bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId, QDateTime &dateTime, QString &error)
{
// TODO(用于鲜丰演示)
QString apppath=QCoreApplication::applicationDirPath();
QString inipath=apppath+QString("/tmp.ini");
qDebug()<<inipath;
......@@ -62,50 +61,10 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId
qDebug()<<storeId<<posId;
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)
{
// TODO(用于鲜丰演示)
CashierObject obj;
obj.id = "001";
obj.name = "鲜丰测试";
......@@ -390,13 +349,24 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
QJsonObject rObj;
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("senderWrh", "-");
rObj.insert("receiverCode", m_recCodeMap.value(orderObject->channel));
rObj.insert("contactor", orderObject->customer);
rObj.insert("phoneNumber", orderObject->phone);
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("filler", "*");
rObj.insert("seller", "*");
......
......@@ -12,7 +12,7 @@ class PluginWorker;
class FMPLUGINSHARED_EXPORT FmPlugin
{
public:
public slots:
static FmPlugin& GetInstance();
/* 功能:连接数据库
......
......@@ -141,14 +141,14 @@ QString FmPrinter::_GetPrintData(OrderObject *pData)
QString print;
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(_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);
}
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(_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);
......
......@@ -24,6 +24,7 @@ FlowControl::FlowControl()
m_loginSocket = NULL;
m_pullOrderSocket = NULL;
m_procOrderSocket = NULL;
netErrorIndex = 0;
}
bool FlowControl::_GetStoreInfo()
......@@ -111,14 +112,19 @@ bool FlowControl::_PullOrder()
.arg(result).arg(error);
if(!result)
{
netErrorIndex++;
emit setNetStatus("<font color='#ff0000'>异常</font>");
if(neterror)//如果之前网络正常,则开始语音提示网络错误
if(netErrorIndex > 50)
{
emit startNetErrorRemind();
if(neterror)//如果之前网络正常,则开始语音提示网络错误
{
emit startNetErrorRemind();
}
neterror=false;
}
neterror=false;
}else
{
netErrorIndex = 0;
emit setNetStatus("正常");
if(!neterror)//如果之前网络异常,现在正常,则停止语音提示
{
......@@ -198,7 +204,6 @@ bool FlowControl::_PullOrder()
}else
{
//旧数据有更新
//int oldDeliveryStatus = orderObject->delivery_status;
int oldStatus = orderObject->status;
orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("\r\n\r\n old order[%1:%2].[data:%3]")
......@@ -215,11 +220,11 @@ bool FlowControl::_PullOrder()
}
}
if(orderObject->status == 4 || orderObject->status == 5
|| orderObject->status == 6
|| orderObject->status == 200)
// 订单完成后两小时写销售单
if(orderObject->status == 6 || orderObject->status == 200)
{
bool bWrite = true;
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
foreach(ProductObject* pro, orderObject->proList)
{
if(pro->sub_products.isEmpty())
......@@ -242,25 +247,31 @@ bool FlowControl::_PullOrder()
}
}
if(!orderObject->channel.compare("jdwm"))
QDateTime ctime(QDateTime::currentDateTime());
ctime.setTime(QTime(0,0));
if(QDateTime::fromTime_t(orderObject->create_time)<ctime)
{
if(orderObject->service_fee <= 0)
{
bWrite = false;
}
bWrite = false;
}
QString error;
if(bWrite)
{
if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error))
{
QLOG_INFO() << QString("_PullOrder DoOrderEntry successful") << error;
}else
{
QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1").arg(error);
}
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
QTimer::singleShot(1000*60*120, [orderObject](){
QString error;
if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error))
{
QLOG_INFO() << QString("_PullOrder DoOrderEntry successful %1").arg(orderObject->order_id);
}else
{
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;
......
......@@ -49,6 +49,8 @@ private:
// viewId _ orderId
QMap<QString, QString> m_view2Id;
int netErrorIndex;
signals:
/* 功能:连接数据库完成
* 参数:[1]是否成功[2]错误信息
......
......@@ -12,6 +12,7 @@ include("./QsLog/QsLog.pri")
TARGET = fmTakeaway
TEMPLATE = app
CONFIG += c++11
INCLUDEPATH += ../fmPlugin
INCLUDEPATH += ../fmPrinter
......
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data>
<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