1. 项目背景和目标
- 销售亏的账-坏账-收不回来的钱
- 采购亏的账-亏损-花超的钱
- 谁亏的-亏在哪里-亏了多少
2. 项目成果
- 坏账走审批流程
- 计算汇总每个采购商品的亏损
- 计算汇总月度亏损总计
3. 技术选型和实现方案
因为目前系统支持部分退货和换货,从最小颗粒度考虑,最终,以商品维度计算亏损情况:
-
采购单:采购亏损额=(商品原价x商品折扣率x数量)-采购单价x采购数量
-
退货单:退货亏损额=退货金额-(商品原价x商品折扣率x退货数量)
-
总亏损额=采购亏损额+退货亏顺额
4. 项目经验总结
- 计算公式进行了多次讨论才得以敲定
- 由于涉及多个对外对接项目,所有需要多种综合考量
- 业务流程本身比较长,又处于流程的末尾,测试难度复杂
5. 项目评价
- 老板喜欢
- 财务喜欢:反驳别人,系统都算不明白何况人呢
- 以前账算不明白怪人,以后就可以怪系统了
6. 展望和建议
- 在系统流程还不是很完善的时候,不建议做这一部分
- 人都对不明白的账,系统可以?
7.SQL
SELECT
c.goods_price,
b.discount_amount,
b.return_number,
b.purchase_total,
ROUND( c.goods_price * m.rate, 2 ) * b.return_number AS discount_expect,
CASE
WHEN a.after_sales_type = 2 THEN
ROUND( c.goods_price * m.rate, 2 ) * b.return_number - b.purchase_total
ELSE
b.purchase_total - ROUND( c.goods_price * m.rate, 2 ) * b.return_number
END AS loose
FROM
return_order a
JOIN return_order_goods b ON a.id = b.return_id
JOIN military_order_goods c ON b.rec_id = c.rec_id
join (select order,CASE
WHEN a.source = 10 THEN 0.97
WHEN a.source = 18 THEN 0.97
ELSE 1
END AS rate from order a)m on m.order=a.ordersn
WHERE
a.ordersn = '20230802152204522120'