采销系统-坏账和亏损项目总结

文章目录

  • 1. 项目背景和目标
  • 2. 项目成果
  • 3. 技术选型和实现方案
  • 4. 项目经验总结
  • 5. 项目评价
  • 6. 展望和建议
  • 7.SQL

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'

你可能感兴趣的:(项目经验总结,坏账,亏损)