Commit dd1d7d70 by NitefullWind

1. 修复商品数量错误Bug。 2. 修复POS结算时未传现金的Bug。 3. 数据库保存第三方交易号。

parent 2ef9375d
...@@ -243,6 +243,7 @@ const PropsMap::value_type PropsMapPairs[] = ...@@ -243,6 +243,7 @@ const PropsMap::value_type PropsMapPairs[] =
PropsMap::value_type(PosProps.OrderAmount, "totalAmount"), PropsMap::value_type(PosProps.OrderAmount, "totalAmount"),
PropsMap::value_type(PosProps.Pay_id, "typeModeFlag"), PropsMap::value_type(PosProps.Pay_id, "typeModeFlag"),
PropsMap::value_type(PosProps.Pay_amount, "amount"), PropsMap::value_type(PosProps.Pay_amount, "amount"),
PropsMap::value_type(PosProps.ConsumeNum, "consumeNum"),
}; };
static PropsMap PosToServerProps(PropsMapPairs, PropsMapPairs + (sizeof(PropsMapPairs)/sizeof(PropsMapPairs[0]))); static PropsMap PosToServerProps(PropsMapPairs, PropsMapPairs + (sizeof(PropsMapPairs)/sizeof(PropsMapPairs[0])));
......
...@@ -28,8 +28,10 @@ void TaskFinal::packageServerReq() ...@@ -28,8 +28,10 @@ void TaskFinal::packageServerReq()
transData[ServerProps(prop)] = getPosJsonValue(prop); transData[ServerProps(prop)] = getPosJsonValue(prop);
} }
int orderAmount = getPosJsonValue(PosProps.OrderAmount).toInt();
if (transData[ServerProps(PosProps.PaidAmount)].toInt() == 0) { if (transData[ServerProps(PosProps.PaidAmount)].toInt() == 0) {
transData[ServerProps(PosProps.PaidAmount)] = transData[ServerProps(PosProps.OrderAmount)]; transData[ServerProps(PosProps.PaidAmount)] = orderAmount;
} }
// 产品列表 // 产品列表
...@@ -37,7 +39,7 @@ void TaskFinal::packageServerReq() ...@@ -37,7 +39,7 @@ void TaskFinal::packageServerReq()
foreach(auto p , getPosJsonValue("products").toArray()) foreach(auto p , getPosJsonValue("products").toArray())
{ {
QJsonObject product; QJsonObject product;
product["consumNum"] = p.toObject()["consume_num"]; product[ServerProps(PosProps.ConsumeNum)] = p.toObject()["consume_num"];
int price = p.toObject()["price"].toDouble()*100; int price = p.toObject()["price"].toDouble()*100;
product["price"] = price; product["price"] = price;
product["productId"] = p.toObject()["pid"]; product["productId"] = p.toObject()["pid"];
...@@ -46,11 +48,14 @@ void TaskFinal::packageServerReq() ...@@ -46,11 +48,14 @@ void TaskFinal::packageServerReq()
} }
transData["productList"] = products; transData["productList"] = products;
int payTotalAmount = 0;
QJsonArray payList; QJsonArray payList;
foreach(auto p, getPosJsonValue(PosProps.Pay_ids).toArray()) foreach(auto p, getPosJsonValue(PosProps.Pay_ids).toArray())
{ {
QJsonObject pay; QJsonObject pay;
pay["amount"] = p.toObject()["pay_amount"]; int payAmount = p.toObject()["pay_amount"].toInt();
payTotalAmount += payAmount;
pay["amount"] = payAmount;
pay["thirdPayTransId"] = p.toObject()["pay_transId"].toString(); pay["thirdPayTransId"] = p.toObject()["pay_transId"].toString();
pay["code"] = p.toObject()["code"].toString(); pay["code"] = p.toObject()["code"].toString();
pay[ServerProps(PosProps.TransId)] = getPosJsonValue(PosProps.TransId); pay[ServerProps(PosProps.TransId)] = getPosJsonValue(PosProps.TransId);
...@@ -72,6 +77,14 @@ void TaskFinal::packageServerReq() ...@@ -72,6 +77,14 @@ void TaskFinal::packageServerReq()
payList.append(pay); payList.append(pay);
} }
if(payTotalAmount < orderAmount) {
QJsonObject cashPay;
cashPay["amount"] = orderAmount-payTotalAmount;
cashPay[ServerProps(PosProps.TransId)] = getPosJsonValue(PosProps.TransId);
cashPay["typeModeFlag"] = "20005";
payList.append(cashPay);
}
transData["payList"] = payList; transData["payList"] = payList;
serverReqJsonObj["data"] = transData; serverReqJsonObj["data"] = transData;
} }
...@@ -117,7 +130,7 @@ void TaskFinal::packagePOSRsp() ...@@ -117,7 +130,7 @@ void TaskFinal::packagePOSRsp()
QString trans_id = getPosJsonValue(PosProps.TransId).toString(); QString trans_id = getPosJsonValue(PosProps.TransId).toString();
QString fm_open_id = getServerJsonValue(PosProps.Fm_open_id).toString(); QString fm_open_id = getServerJsonValue(PosProps.Fm_open_id).toString();
QString fm_id = getServerJsonValue(PosProps.Fm_id).toString(); QString fm_id = getServerJsonValue(PosProps.Fm_id).toString();
QString fm_transId = ""; QString fm_transId = getServerJsonValue("thirdPayTransId").toString();
FMBackup::instance()->insertNewOrder(trans_id, fm_open_id, fm_id, fm_transId); FMBackup::instance()->insertNewOrder(trans_id, fm_open_id, fm_id, fm_transId);
} }
} }
......
...@@ -72,8 +72,11 @@ void TaskRefundOrder::packageServerReq() ...@@ -72,8 +72,11 @@ void TaskRefundOrder::packageServerReq()
if(fm_id == "") { if(fm_id == "") {
if(fm_transId!="") { if(fm_transId!="") {
fm_id = FMBackup::instance()->getOrderByTransId(trans_id).fm_id;
if(fm_id == "") {
fm_id = fm_transId; fm_id = fm_transId;
} }
}
if(fm_open_id!="" && trans_id!="") { if(fm_open_id!="" && trans_id!="") {
fm_id = FMBackup::instance()->getOrderByTransId(trans_id).fm_id; fm_id = FMBackup::instance()->getOrderByTransId(trans_id).fm_id;
} }
......
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