Commit 506fa128 by shangshang.dai

Fix 1:修复入账的编码由pid改为stock_barcode,正式上线版本

parent 10ea5cfd
...@@ -192,6 +192,7 @@ bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashi ...@@ -192,6 +192,7 @@ bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashi
{ {
QJsonObject recvJson; QJsonObject recvJson;
recvJson = QJsonDocument::fromJson(recvArray).object(); recvJson = QJsonDocument::fromJson(recvArray).object();
qDebug() << recvJson;
QString uuid = recvJson["uuid"].toString(); QString uuid = recvJson["uuid"].toString();
if(uuid.isEmpty()) if(uuid.isEmpty())
{ {
...@@ -476,12 +477,13 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS ...@@ -476,12 +477,13 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS
QJsonArray products; QJsonArray products;
for(int i=0; i < orderObject->proList.count(); i++) for(int i=0; i < orderObject->proList.count(); i++)
{ {
qDebug() <<orderObject->order_id << i;
ProductObject *pObj = orderObject->proList.at(i); ProductObject *pObj = orderObject->proList.at(i);
if(!pObj->sub_products.isEmpty()) if(!pObj->sub_products.isEmpty())
{ {
//qDebug() << "有子商品";
// 组合商品应收的钱 // 组合商品应收的钱
float zh_ys_fee = _Penny2Dollar(pObj->price*pObj->productAmount); float zh_ys_fee = _Penny2Dollar(pObj->price*pObj->productAmount);
//qDebug() << "组合应收" <<zh_ys_fee << pObj->price << pObj->productAmount;
// 组合商品实际收到的钱 // 组合商品实际收到的钱
float zh_ss_fee = zh_ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee); float zh_ss_fee = zh_ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee);
// 组合的成本 // 组合的成本
...@@ -495,7 +497,9 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS ...@@ -495,7 +497,9 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS
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;
// qDebug() << "子商品:" << cpObj->name << cpObj->productAmount<<cpObj->cost <<ratio;
// 该商品的成本金额 // 该商品的成本金额
float cb_fee = _Penny2Dollar(cpObj->productAmount*ratio*cpObj->cost); float cb_fee = _Penny2Dollar(cpObj->productAmount*ratio*cpObj->cost);
...@@ -503,31 +507,33 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS ...@@ -503,31 +507,33 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS
float ys_fee = zh_ys_fee*(cb_fee/zh_cb_fee); float ys_fee = zh_ys_fee*(cb_fee/zh_cb_fee);
// 该商品实际收到的钱 组合实际收的钱*(该商品的成本/组合成本) // 该商品实际收到的钱 组合实际收的钱*(该商品的成本/组合成本)
float ss_fee = zh_ss_fee*(cb_fee/zh_cb_fee); float ss_fee = zh_ss_fee*(cb_fee/zh_cb_fee);
// qDebug() << "该商品价格 " << cb_fee << ys_fee << ss_fee;
// // 该商品应收的钱 // // 该商品应收的钱
// float ys_fee = _Penny2Dollar(cpObj->price*cpObj->productAmount); // float ys_fee = _Penny2Dollar(cpObj->price*cpObj->productAmount);
// // 该商品实际收到的钱 // // 该商品实际收到的钱
// float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee); // float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee);
if(_proMap.contains(cpObj->pid)) if(_proMap.contains(cpObj->stock_barcode))
{ {
Product_elemet elemet; Product_elemet elemet;
elemet.skuId = cpObj->pid; elemet.skuId = cpObj->stock_barcode;
elemet.qty = _proMap.value(cpObj->pid).qty + cpObj->productAmount*ratio; elemet.qty = _proMap.value(cpObj->stock_barcode).qty + cpObj->productAmount*ratio;
elemet.ys_fee = _proMap.value(cpObj->pid).ys_fee + ys_fee; elemet.ys_fee = _proMap.value(cpObj->stock_barcode).ys_fee + ys_fee;
elemet.ss_fee = _proMap.value(cpObj->pid).ss_fee + ss_fee; elemet.ss_fee = _proMap.value(cpObj->stock_barcode).ss_fee + ss_fee;
elemet.note = _proMap.value(cpObj->pid).note + cb_fee; elemet.note = _proMap.value(cpObj->stock_barcode).note + cb_fee;
_proMap.insert(cpObj->pid, elemet); _proMap.insert(cpObj->stock_barcode, elemet);
//qDebug() << "商品插入表格0 " << elemet.skuId << elemet.qty << elemet.ys_fee << elemet.ss_fee << elemet.note;
}else }else
{ {
Product_elemet elemet; Product_elemet elemet;
elemet.skuId = cpObj->pid; elemet.skuId = cpObj->stock_barcode;
elemet.qty = cpObj->productAmount*ratio; elemet.qty = cpObj->productAmount*ratio;
elemet.ys_fee = ys_fee; elemet.ys_fee = ys_fee;
elemet.ss_fee = ss_fee; elemet.ss_fee = ss_fee;
elemet.note = cb_fee; elemet.note = cb_fee;
_proMap.insert(cpObj->pid, elemet); _proMap.insert(cpObj->stock_barcode, elemet);
//qDebug() << "商品插入表格1 " << elemet.skuId << elemet.qty << elemet.ys_fee << elemet.ss_fee << elemet.note;
} }
} }
}else }else
...@@ -539,24 +545,24 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS ...@@ -539,24 +545,24 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject, const QS
// 该商品实际收到的钱 // 该商品实际收到的钱
float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee); float ss_fee = ys_fee*(1-(float)orderObject->dis_shop_fee/orderObject->product_fee);
if(_proMap.contains(pObj->pid)) if(_proMap.contains(pObj->stock_barcode))
{ {
Product_elemet elemet; Product_elemet elemet;
elemet.skuId = pObj->pid; elemet.skuId = pObj->stock_barcode;
elemet.qty = _proMap.value(pObj->pid).qty + pObj->productAmount*ratio; elemet.qty = _proMap.value(pObj->stock_barcode).qty + pObj->productAmount*ratio;
elemet.ys_fee = _proMap.value(pObj->pid).ys_fee + ys_fee; elemet.ys_fee = _proMap.value(pObj->stock_barcode).ys_fee + ys_fee;
elemet.ss_fee = _proMap.value(pObj->pid).ss_fee + ss_fee; elemet.ss_fee = _proMap.value(pObj->stock_barcode).ss_fee + ss_fee;
elemet.note = _proMap.value(pObj->pid).note + _Penny2Dollar(pObj->productAmount*ratio*pObj->cost); elemet.note = _proMap.value(pObj->stock_barcode).note + _Penny2Dollar(pObj->productAmount*ratio*pObj->cost);
_proMap.insert(pObj->pid, elemet); _proMap.insert(pObj->stock_barcode, elemet);
}else }else
{ {
Product_elemet elemet; Product_elemet elemet;
elemet.skuId = pObj->pid; elemet.skuId = pObj->stock_barcode;
elemet.qty = pObj->productAmount*ratio; elemet.qty = pObj->productAmount*ratio;
elemet.ys_fee = ys_fee; elemet.ys_fee = ys_fee;
elemet.ss_fee = ss_fee; elemet.ss_fee = ss_fee;
elemet.note = _Penny2Dollar(pObj->productAmount*ratio*pObj->cost); elemet.note = _Penny2Dollar(pObj->productAmount*ratio*pObj->cost);
_proMap.insert(pObj->pid, elemet); _proMap.insert(pObj->stock_barcode, elemet);
} }
} }
} }
...@@ -610,6 +616,24 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid) ...@@ -610,6 +616,24 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid)
double sendFee; double sendFee;
sendFee = _Penny2Dollar(orderObject->send_fee); sendFee = _Penny2Dollar(orderObject->send_fee);
double packFee = 0;
int packTmp = 0;
for(int i=0; i < orderObject->proList.count(); i++)
{
ProductObject *pObj = orderObject->proList.at(i);
if(!pObj->sub_products.isEmpty())
{
foreach(ProductObject *cpObj, pObj->sub_products)
{
packTmp += cpObj->pack_charge;
}
}else
{
packTmp += pObj->pack_charge;
}
}
packFee = _Penny2Dollar(packTmp);
QJsonObject rObj; QJsonObject rObj;
rObj.insert("num",orderObject->order_view_id.isEmpty()?orderObject->order_id:orderObject->order_view_id); rObj.insert("num",orderObject->order_view_id.isEmpty()?orderObject->order_id:orderObject->order_view_id);
...@@ -619,14 +643,14 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid) ...@@ -619,14 +643,14 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid)
rObj.insert("filDate",QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-ddThh:mm:ss.zzz+0800")); rObj.insert("filDate",QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-ddThh:mm:ss.zzz+0800"));
rObj.insert("filler","非码外卖"); rObj.insert("filler","非码外卖");
rObj.insert("note", QDateTime::currentDateTime().toString("yyyy-MM-ddThh:mm:ss.zzz+0800")); rObj.insert("note", QDateTime::currentDateTime().toString("yyyy-MM-ddThh:mm:ss.zzz+0800"));
rObj.insert("total", serviceFee+sendFee); rObj.insert("total", serviceFee+sendFee+packFee);
rObj.insert("customFieldS1", m_storeId); rObj.insert("customFieldS1", m_storeId);
rObj.insert("customFieldS2", uuid); rObj.insert("customFieldS2", uuid);
rObj.insert("customFieldN1",0); rObj.insert("customFieldN1",0);
rObj.insert("customFieldN2",0); rObj.insert("customFieldN2",0);
QJsonArray array; QJsonArray array;
QJsonObject cObj0, cObj1; QJsonObject cObj0, cObj1, cObj2;
cObj0.insert("line", 1); cObj0.insert("line", 1);
cObj0.insert("itemName","服务费"); cObj0.insert("itemName","服务费");
cObj0.insert("total", serviceFee); cObj0.insert("total", serviceFee);
...@@ -662,6 +686,17 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid) ...@@ -662,6 +686,17 @@ QByteArray FmPlugin::_GetFeeData(const OrderObject *orderObject, QString uuid)
cObj1.insert("customFieldN2", 0); cObj1.insert("customFieldN2", 0);
cObj1.insert("note",""); cObj1.insert("note","");
array.insert(1, cObj1); array.insert(1, cObj1);
cObj2.insert("line", 3);
cObj2.insert("itemName", "包装费");
cObj2.insert("total", packFee);
cObj2.insert("customFieldS1", "");
cObj2.insert("customFieldS2", "");
cObj2.insert("customFieldN1", 0);
cObj2.insert("customFieldN2", 0);
cObj2.insert("note","");
array.insert(2, cObj2);
rObj.insert("details", array); rObj.insert("details", array);
return QJsonDocument(rObj).toJson(QJsonDocument::Compact); return QJsonDocument(rObj).toJson(QJsonDocument::Compact);
......
...@@ -223,7 +223,7 @@ bool FlowControl::_PullOrder() ...@@ -223,7 +223,7 @@ bool FlowControl::_PullOrder()
} }
// 订单完成后两小时写销售单 // 订单完成后两小时写销售单
if(orderObject->status == 6 || orderObject->status == 200 ) if(orderObject->status == 6 || orderObject->status == 200)
{ {
bool bWrite = true; bool bWrite = true;
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据) // 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
...@@ -231,7 +231,7 @@ bool FlowControl::_PullOrder() ...@@ -231,7 +231,7 @@ bool FlowControl::_PullOrder()
{ {
if(pro->sub_products.isEmpty()) if(pro->sub_products.isEmpty())
{ {
if(pro->unit_ratio < 0) if(pro->unit_ratio <= 0)
{ {
bWrite = false; bWrite = false;
break; break;
...@@ -240,7 +240,7 @@ bool FlowControl::_PullOrder() ...@@ -240,7 +240,7 @@ bool FlowControl::_PullOrder()
{ {
foreach(ProductObject* cpro, pro->sub_products) foreach(ProductObject* cpro, pro->sub_products)
{ {
if(cpro->unit_ratio < 0) if(cpro->unit_ratio <= 0)
{ {
bWrite = false; bWrite = false;
break; break;
...@@ -248,9 +248,11 @@ bool FlowControl::_PullOrder() ...@@ -248,9 +248,11 @@ bool FlowControl::_PullOrder()
} }
} }
} }
if(bWrite) if(bWrite)
{ {
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id); QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
//TODO
QTimer::singleShot(1000*60*60, [orderObject, this](){ QTimer::singleShot(1000*60*60, [orderObject, this](){
QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id); QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id);
m_mutex.lock(); m_mutex.lock();
......
...@@ -18,6 +18,26 @@ void ProductObject::FromJson(const QJsonObject &json) ...@@ -18,6 +18,26 @@ void ProductObject::FromJson(const QJsonObject &json)
return; return;
} }
int ProductObject::getpack_charge() const
{
return pack_charge;
}
void ProductObject::setpack_charge(const int &v)
{
pack_charge = v;
}
QString ProductObject::getstock_barcode() const
{
return stock_barcode;
}
void ProductObject::setstock_barcode(const QString &v)
{
stock_barcode = v;
}
int ProductObject::getcost() const int ProductObject::getcost() const
{ {
return cost; return cost;
......
...@@ -24,6 +24,8 @@ public: ...@@ -24,6 +24,8 @@ public:
Q_PROPERTY (int productAmount READ getProductAmount WRITE setProductAmount) Q_PROPERTY (int productAmount READ getProductAmount WRITE setProductAmount)
Q_PROPERTY (int cost READ getcost WRITE setcost) Q_PROPERTY (int cost READ getcost WRITE setcost)
Q_PROPERTY (int unit_ratio READ getunit_ratio WRITE setunit_ratio) Q_PROPERTY (int unit_ratio READ getunit_ratio WRITE setunit_ratio)
Q_PROPERTY (QString stock_barcode READ getstock_barcode WRITE setstock_barcode)
Q_PROPERTY (int pack_charge READ getpack_charge WRITE setpack_charge)
QString pid; QString pid;
QString name; QString name;
...@@ -31,12 +33,22 @@ public: ...@@ -31,12 +33,22 @@ public:
int price; int price;
int productAmount; int productAmount;
QString stock_barcode; // 鲜丰特有入账短编码
int pack_charge; // 鲜丰特有的包装费(用于核算成本)
int cost; // 成本价 int cost; // 成本价
int unit_ratio; // 商品系数 int unit_ratio; // 商品系数
QList<ProductObject *> sub_products; // 子商品 QList<ProductObject *> sub_products; // 子商品
protected: protected:
int getpack_charge() const;
void setpack_charge(const int& v);
QString getstock_barcode() const;
void setstock_barcode(const QString& v);
int getcost() const; int getcost() const;
void setcost(const int& v); void setcost(const int& v);
......
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