原文地址 : Laravel + Dcat admin 开发一个健壮的 erp 项目
背景
4个月前我写过一篇文章 dcat-admin 开源框架在 erp 项目中的应用 在几个月前我只是用其完成一些功能开发。但是在项目健壮,以及代码如 dcat 一些深度结合上做的还是不够完善。这个几个月我重新在已有的经验上,对其进行了一些深入的整合。包括在 sass 方面的结合。已经代码健壮性方面的加强。
常用的初始化
ERP 常用的单据实现
- 在这几个月我把 erp 常用的单据做成了一个abstract class,只要继承 OrderController 并实现其中的几个抽象方法。便可以得到一张单据的编辑创建。里面会自动包含单据常用的审核,删除,批量增加等。
- 抽象方法(我们业务逻辑只要展现数据,至于审核删除批量新增,我们封装好的进行统一管理比如审核的时候检测明细的业务数量是否为0,单据是否包含明细)
页面效果
- 新增
- 编辑
业务逻辑的梳理
- 在进销存以及 erp 软件中,比如出入库的时候会扣减批次库存,产品库存,以及插入一条库存往来的记录。有的老程序员可能会用到数据库的触发器,存储过程等等。在这里我可以介绍下在 laravel 中如何拆分这些业务
- 图示库存往来
分析:
我们入库的时候,首先明细在批次库存进行加减,然后产品库存也会加减,涉及加减的都会插入一条库存往来账。而库存往来账的表,包含了批次库存以及产品库存发生变化所需要的字段,我们可以通过监听出入库订单审核状态的变化,比如审核通过,然后插入库存往来帐。再通过监听库存往来帐。进行批次库存的加减。在进行监听批次库存的加减进行产品库存的加减。- 采购入库单监听(PurchaseInOrderObserver)只要订单审核通过就插入一条库存往来账
- 库存往来账监听 (StockHistoryObserver) 根据单据类型进行批次库存扣减
- 批次库存监听 (SkuStockBatchObserver)当批次库存进行扣减的时候对产品库存进行扣减
- 采购入库单监听(PurchaseInOrderObserver)只要订单审核通过就插入一条库存往来账
好处
- 当我们有其他的业务要扣减库存的时候,比如客户销售单。我们只需要监听客户销售单的审核。无需在写一份库存扣减的业务逻辑。提升我们的业务健壮性。
- 客户销售单
审核图标实现
- 代码
使用
$form->reviewicon('字段', '审核状态');
结尾
传统的 erp 软件以 java c# 为主。但是结合我自己这几个月的摸索, 如果对 laravel,以及 Dcat,laravel-admin 底层有一定熟悉。我们可以依靠这些开源的项目快速构建起我们的 crud。同时合理规划好 laravel 的项目架构,业务层架构。代码维护起来还是蛮舒服的。如果大家有需要项目开发也可以联系我
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。