原文地址 : Laravel + Dcat admin 开发一个健壮的 erp 项目

背景

4个月前我写过一篇文章 dcat-admin 开源框架在 erp 项目中的应用 在几个月前我只是用其完成一些功能开发。但是在项目健壮,以及代码如 dcat 一些深度结合上做的还是不够完善。这个几个月我重新在已有的经验上,对其进行了一些深入的整合。包括在 sass 方面的结合。已经代码健壮性方面的加强。

常用的初始化

ERP 常用的单据实现

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

  • 页面效果

    • 新增
  • 编辑

业务逻辑的梳理

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

  • 分析:
    我们入库的时候,首先明细在批次库存进行加减,然后产品库存也会加减,涉及加减的都会插入一条库存往来账。而库存往来账的表,包含了批次库存以及产品库存发生变化所需要的字段,我们可以通过监听出入库订单审核状态的变化,比如审核通过,然后插入库存往来帐。再通过监听库存往来帐。进行批次库存的加减。在进行监听批次库存的加减进行产品库存的加减。

  • 采购入库单监听(PurchaseInOrderObserver)只要订单审核通过就插入一条库存往来账

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

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

  • 好处

  • 当我们有其他的业务要扣减库存的时候,比如客户销售单。我们只需要监听客户销售单的审核。无需在写一份库存扣减的业务逻辑。提升我们的业务健壮性。

  • 客户销售单





审核图标实现

  • 代码

  • 使用

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

结尾

传统的 erp 软件以 java c# 为主。但是结合我自己这几个月的摸索, 如果对 laravel,以及 Dcat,laravel-admin 底层有一定熟悉。我们可以依靠这些开源的项目快速构建起我们的 crud。同时合理规划好 laravel 的项目架构,业务层架构。代码维护起来还是蛮舒服的。如果大家有需要项目开发也可以联系我

Laravel + Dcat admin 开发一个健壮的 erp 项目相关推荐

  1. 如何利用spring框架来开发一个简单的小项目——书店项目

    这里我将用spring来开发一个简单的书店项目 Step1:所用到的开发软件为 idea , 所用到的jar包为 这些jar的下载可在 官网 下载,选择5.2.6版本下载,不会的在下面评论私信 Ste ...

  2. 初学者如何开发一个好的J2EE项目

    J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向. 首先我们需要知道Java和J2EE是两个不 ...

  3. vue 手机端答题页面_从0开始,手把手教你用Vue开发一个答题App01之项目创建及答题设置页面开发...

    项目演示 项目源码 配套讲解视频 教程说明 本教程适合对Vue基础知识有一点了解,但不懂得综合运用,还未曾使用Vue从头开发过一个小型App的读者.本教程不对所有的Vue知识点进行讲解,而是手把手一步 ...

  4. Laravel Dcat Admin 安装

    安装 环境 PHP >= 7.1 Laravel 5.5.0 ~ 7.* Fileinfo PHP Extension 开始安装 如果安装过程中出现 composer 下载过慢或安装失败的情况, ...

  5. 开发一个springboot+vue的项目【增加铃声制作的功能】

    大家好呀,我是小孟! 参考的地址:https://github.com/Yin-Hongwei 前面小伙伴说要学习spring+vue的项目,我们录制了非常详细的教程,视频播放了突破了30w+,看来是 ...

  6. 如何开发一个直播类 APP 项目开发原理

    主播端: 把主播实时录制的视频,经过(采集.美颜处理.编码)推送到服务器 服务器: 处理(转码.录制.截图.鉴黄)后分发给用户播放端 播放器: 获取服务器地址, 进行拉流.解码.渲染 互动系统: 聊天 ...

  7. laravel-admin / Dcat admin 上传Excel并导入数据到数据库

    准备工作 安装maatwebsite/excel composer require maatwebsite/excel laravel-admin 效果图 创建按钮 $grid->tools(f ...

  8. python开发一个自己的技术网站_手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  9. 开发一个软件,到底需要花多少钱?

    开发一个软件,到底需要花多少钱?下面给大家讲讲 对于很多互联网的创业者来说,评估前期的创业成本是很重要的.在这几年的创业大潮中,伴随着"互联网+"和"互联网思维" ...

最新文章

  1. 模仿并超越人类围棋手,KL正则化搜索让AI下棋更像人类,MetaCMU出品
  2. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  3. 深度学习核心技术精讲100篇(二十)-如何通过树模型实现梯度提升树(GBDT)+LR,随机森林(RandomForest) +LR
  4. Struts2的配置文件——web.xml
  5. 机器学习将在游戏开发中的6种应用
  6. 性能优化(7):教你正确使用css选择器
  7. 总结:JavaEE完整体系架构
  8. Itext7 jar 下载 链接
  9. 处理分类数据 非数值型编码
  10. VS2019创建基于SDL+ffmpeg的工程
  11. 如何将div拼接成html代码,给div拼接html 拼接字符串
  12. 编写一个能将给定非负整数列表中的数字排列成最大数字的函数。
  13. 智能红外遥控器(三):红外学习温湿度读取
  14. Express响应方法
  15. supervisor+cesi多服务器进程集中管理
  16. iPhone白苹果修复工具
  17. 一个手机号可注册两个微信号
  18. “海大与我“ Scrum Meeting(第九周会议记录)
  19. matlab导入表格画图,matlab从excel表格导入数据画图-在matlab上如何导入excel表格然后画图...
  20. 百度云虚拟主机中的网站不能加载静态js、css和images等文件的解决方案

热门文章

  1. 传奇架设登录器列表乱码怎么回事?传奇分享汇
  2. 小米手机证书信任设置在哪里_用小米手机的一定要调整这5个设置,让手机丝滑柔顺,用多4年...
  3. 统计不同数字的个数(升级版)
  4. AcWing 1012. 友好城市(最长上升子序列dp)
  5. c语言程序断点怎么打,C#中如何使用断点操作调试程序
  6. Zynq-7010/7020/7000/7045/7035低成本高性能ARM+FPGA方案
  7. Excel VBA读取其它excel单元格内容详细案例
  8. Java基础教程12-while循环
  9. ubuntu离线安装deb应用包与python包
  10. 德语语法:德语的冠词