Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
FmTakeaway
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shangshang.dai
FmTakeaway
Commits
506fa128
Commit
506fa128
authored
Jul 03, 2017
by
shangshang.dai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 1:修复入账的编码由pid改为stock_barcode,正式上线版本
parent
10ea5cfd
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
95 additions
and
26 deletions
+95
-26
fmPlugin/fmPlugin.cpp
+58
-23
fmTakeaway/Control/flowControl.cpp
+5
-3
fmTakeaway/Model/productObject.cpp
+20
-0
fmTakeaway/Model/productObject.h
+12
-0
No files found.
fmPlugin/fmPlugin.cpp
View file @
506fa128
...
@@ -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
);
...
...
fmTakeaway/Control/flowControl.cpp
View file @
506fa128
...
@@ -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
();
...
...
fmTakeaway/Model/productObject.cpp
View file @
506fa128
...
@@ -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
;
...
...
fmTakeaway/Model/productObject.h
View file @
506fa128
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment