背景
4个月前我写过一篇文章 dcat-admin 开源框架在 erp 项目中的应用 在几个月前我只是用其完成一些功能开发。可是在项目健壮,以及代码如 dcat 一些深度结合上作的仍是不够完善。这个几个月我从新在已有的经验上,对其进行了一些深刻的整合。包括在 sass 方面的结合。已经代码健壮性方面的增强。php
经常使用的初始化

ERP 经常使用的单据实现
- 在这几个月我把 erp 经常使用的单据作成了一个abstract class,只要继承 OrderController 并实现其中的几个抽象方法。即可以获得一张单据的编辑建立。里面会自动包含单据经常使用的审核,删除,批量增长等。
- 抽象方法(咱们业务逻辑只要展示数据,至于审核删除批量新增,咱们封装好的进行统一管理好比审核的时候检测明细的业务数量是否为0,单据是否包含明细)




业务逻辑的梳理
- 在进销存以及 erp 软件中,好比出入库的时候会扣减批次库存,产品库存,以及插入一条库存往来的记录。有的老程序员可能会用到数据库的触发器,存储过程等等。在这里我能够介绍下在 laravel 中如何拆分这些业务
- 图示库存往来

咱们入库的时候,首先明细在批次库存进行加减,而后产品库存也会加减,涉及加减的都会插入一条库存往来帐。而库存往来帐的表,包含了批次库存以及产品库存发生变化所须要的字段,咱们能够经过监听出入库订单审核状态的变化,好比审核经过,而后插入库存往来账。再经过监听库存往来账。进行批次库存的加减。在进行监听批次库存的加减进行产品库存的加减。laravel
- 采购入库单监听(PurchaseInOrderObserver)只要订单审核经过就插入一条库存往来帐

- 库存往来帐监听 (StockHistoryObserver) 根据单据类型进行批次库存扣减

- 批次库存监听 (SkuStockBatchObserver)当批次库存进行扣减的时候对产品库存进行扣减

好处程序员
- 当咱们有其余的业务要扣减库存的时候,好比客户销售单。咱们只须要监听客户销售单的审核。无需在写一份库存扣减的业务逻辑。提高咱们的业务健壮性。
- 客户销售单






审核图标实现


$form->reviewicon('字段', '审核状态');

结尾
传统的 erp 软件以 java c# 为主。可是结合我本身这几个月的摸索, 若是对 laravel,以及 Dcat,laravel-admin 底层有必定熟悉。咱们能够依靠这些开源的项目快速构建起咱们的 crud。同时合理规划好 laravel 的项目架构,业务层架构。代码维护起来仍是蛮舒服的。若是你们有须要项目开发也能够联系我数据库