Laravel + Dcat admin 開發一個健壯的 erp 項目

背景

4個月前我寫過一篇文章 dcat-admin 開源框架在 erp 項目中的應用 在幾個月前我只是用其完成一些功能開發。可是在項目健壯,以及代碼如 dcat 一些深度結合上作的仍是不夠完善。這個幾個月我從新在已有的經驗上,對其進行了一些深刻的整合。包括在 sass 方面的結合。已經代碼健壯性方面的增強。php

經常使用的初始化

Laravel + Dcat admin 開發一個健壯的 erp 項目

ERP 經常使用的單據實現

  • 在這幾個月我把 erp 經常使用的單據作成了一個abstract class,只要繼承 OrderController 並實現其中的幾個抽象方法。即可以獲得一張單據的編輯建立。裏面會自動包含單據經常使用的審覈,刪除,批量增長等。
  • 抽象方法(咱們業務邏輯只要展示數據,至於審覈刪除批量新增,咱們封裝好的進行統一管理好比審覈的時候檢測明細的業務數量是否爲0,單據是否包含明細)

Laravel + Dcat admin 開發一個健壯的 erp 項目

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 頁面效果java

    • 新增

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 編輯

Laravel + Dcat admin 開發一個健壯的 erp 項目

業務邏輯的梳理

  • 在進銷存以及 erp 軟件中,好比出入庫的時候會扣減批次庫存,產品庫存,以及插入一條庫存往來的記錄。有的老程序員可能會用到數據庫的觸發器,存儲過程等等。在這裏我能夠介紹下在 laravel 中如何拆分這些業務
  • 圖示庫存往來

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 分析:

咱們入庫的時候,首先明細在批次庫存進行加減,而後產品庫存也會加減,涉及加減的都會插入一條庫存往來帳。而庫存往來帳的表,包含了批次庫存以及產品庫存發生變化所須要的字段,咱們能夠經過監聽出入庫訂單審覈狀態的變化,好比審覈經過,而後插入庫存往來賬。再經過監聽庫存往來賬。進行批次庫存的加減。在進行監聽批次庫存的加減進行產品庫存的加減。laravel

  • 採購入庫單監聽(PurchaseInOrderObserver)只要訂單審覈經過就插入一條庫存往來帳

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 庫存往來帳監聽 (StockHistoryObserver) 根據單據類型進行批次庫存扣減

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 批次庫存監聽 (SkuStockBatchObserver)當批次庫存進行扣減的時候對產品庫存進行扣減

Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 好處程序員

    • 當咱們有其餘的業務要扣減庫存的時候,好比客戶銷售單。咱們只須要監聽客戶銷售單的審覈。無需在寫一份庫存扣減的業務邏輯。提高咱們的業務健壯性。
    • 客戶銷售單

Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目

審覈圖標實現

  • 代碼

Laravel + Dcat admin 開發一個健壯的 erp 項目
Laravel + Dcat admin 開發一個健壯的 erp 項目

  • 使用
$form->reviewicon('字段', '審覈狀態');

Laravel + Dcat admin 開發一個健壯的 erp 項目

結尾

傳統的 erp 軟件以 java c# 爲主。可是結合我本身這幾個月的摸索, 若是對 laravel,以及 Dcat,laravel-admin 底層有必定熟悉。咱們能夠依靠這些開源的項目快速構建起咱們的 crud。同時合理規劃好 laravel 的項目架構,業務層架構。代碼維護起來仍是蠻舒服的。若是你們有須要項目開發也能夠聯繫我數據庫

相關文章
相關標籤/搜索