Commit aa0d27e8 by ss.dai

入账问题修复

parent edf54080
...@@ -391,13 +391,12 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject) ...@@ -391,13 +391,12 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
rObj.insert("uuid", orderObject->order_id); rObj.insert("uuid", orderObject->order_id);
rObj.insert("senderCode", m_storeId); rObj.insert("senderCode", m_storeId);
// rObj.insert("senderCode", "31310033");
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", "非码外卖"); rObj.insert("remark", _Penny2Dollar(orderObject->service_fee));
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", "*");
...@@ -412,14 +411,19 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject) ...@@ -412,14 +411,19 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
foreach(ProductObject *cpObj, pObj->sub_products) foreach(ProductObject *cpObj, pObj->sub_products)
{ {
float ratio = (float)cpObj->unit_ratio/100; float ratio = (float)cpObj->unit_ratio/100;
// 该商品应收的钱
float ys_fee = _Penny2Dollar(cpObj->price*cpObj->productAmount);
// 该商品实际收到的钱
float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee);
QJsonObject cObj; QJsonObject cObj;
cObj.insert("skuId", cpObj->pid); cObj.insert("skuId", cpObj->pid);
cObj.insert("qty", cpObj->productAmount*ratio); cObj.insert("qty", cpObj->productAmount*ratio);
cObj.insert("price", _Penny2Dollar(cpObj->price)); cObj.insert("price", ss_fee/ratio);
cObj.insert("total", ""); cObj.insert("total", "");
cObj.insert("freight", ""); cObj.insert("freight", "");
cObj.insert("payAmount", ""); cObj.insert("payAmount", "");
cObj.insert("unitPrice", ""); cObj.insert("unitPrice", _Penny2Dollar(pObj->price)/ratio);
cObj.insert("priceAmount", ""); cObj.insert("priceAmount", "");
cObj.insert("buyAmount", ""); cObj.insert("buyAmount", "");
cObj.insert("businessDiscount", ""); cObj.insert("businessDiscount", "");
...@@ -433,13 +437,21 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject) ...@@ -433,13 +437,21 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
{ {
float ratio = (float)pObj->unit_ratio/100; float ratio = (float)pObj->unit_ratio/100;
QJsonObject cObj; QJsonObject cObj;
// 该商品应收的钱
float ys_fee = _Penny2Dollar(pObj->price*pObj->productAmount);
// 该商品实际收到的钱
float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee);
cObj.insert("skuId", pObj->pid); cObj.insert("skuId", pObj->pid);
cObj.insert("qty", pObj->productAmount*ratio); cObj.insert("qty", pObj->productAmount*ratio);
cObj.insert("price", _Penny2Dollar(pObj->price)); cObj.insert("price", ss_fee/ratio);
cObj.insert("total", ""); cObj.insert("total", "");
cObj.insert("freight", ""); cObj.insert("freight", "");
cObj.insert("payAmount", ""); cObj.insert("payAmount", "");
cObj.insert("unitPrice", ""); cObj.insert("unitPrice", _Penny2Dollar(pObj->price)/ratio);
cObj.insert("priceAmount", ""); cObj.insert("priceAmount", "");
cObj.insert("buyAmount", ""); cObj.insert("buyAmount", "");
cObj.insert("businessDiscount", ""); cObj.insert("businessDiscount", "");
...@@ -460,6 +472,7 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject) ...@@ -460,6 +472,7 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
rObj.insert("products", products); rObj.insert("products", products);
rObj.insert("pays", pays); rObj.insert("pays", pays);
qDebug() << rObj;
qDebug() << "销售单数据: "<< rObj;
return QJsonDocument(rObj).toJson(QJsonDocument::Compact); return QJsonDocument(rObj).toJson(QJsonDocument::Compact);
} }
...@@ -192,7 +192,7 @@ bool FlowControl::_PullOrder() ...@@ -192,7 +192,7 @@ bool FlowControl::_PullOrder()
//int oldDeliveryStatus = orderObject->delivery_status; //int oldDeliveryStatus = orderObject->delivery_status;
int oldStatus = orderObject->status; int oldStatus = orderObject->status;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("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));
if(oldStatus != orderObject->status) if(oldStatus != orderObject->status)
...@@ -209,13 +209,45 @@ bool FlowControl::_PullOrder() ...@@ -209,13 +209,45 @@ bool FlowControl::_PullOrder()
|| orderObject->status == 6 || orderObject->status == 6
|| orderObject->status == 200) || orderObject->status == 200)
{ {
QString error; bool bWrite = true;
if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error)) foreach(ProductObject* pro, orderObject->proList)
{ {
QLOG_INFO() << QString("_PullOrder DoOrderEntry successful") << error; if(pro->sub_products.isEmpty())
}else {
if(pro->unit_ratio < 0)
{
bWrite = false;
break;
}
}else
{
foreach(ProductObject* cpro, pro->sub_products)
{
if(cpro->unit_ratio < 0)
{
bWrite = false;
break;
}
}
}
}
QString error;
if(bWrite&&(orderObject->channel.compare("jdwm")))
{ {
QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1").arg(error); //FOR TEST
if(orderObject->order_id == "3543791065")
{
orderObject->order_id = "3543791066";
}
//FOR TEST
if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error))
{
QLOG_INFO() << QString("_PullOrder DoOrderEntry successful") << error;
}else
{
QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1").arg(error);
}
} }
} }
m_timestamp = orderObject->timestamp; m_timestamp = orderObject->timestamp;
......
...@@ -8,7 +8,8 @@ class ProductObject : public BaseObject ...@@ -8,7 +8,8 @@ class ProductObject : public BaseObject
Q_OBJECT Q_OBJECT
public: public:
ProductObject(QObject *parent=0) ProductObject(QObject *parent=0)
:BaseObject(parent){} :BaseObject(parent),
unit_ratio(-1){}
/* 功能:从Json对象初获取数据 /* 功能:从Json对象初获取数据
* 参数:[1]JSon对象 * 参数:[1]JSon对象
......
<?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-03-14T17:30:08. --> <!-- Written by QtCreator 4.0.0, 2017-03-17T09:56:14. -->
<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