---
tags: [inventory, cross-module]
module: Inventory
---

# CrossModuleDependencies

## Connections
[[_Inventory]] · [[[Model]Warehouse]] · [[[Model]Requisition]] · [[[Model]WarehouseProductLog]] · [[[Service]WarehouseServices]] · [[[Service]RequisitionServices]]

---

## Accounting Module
| Used | Type | Purpose |
|---|---|---|
| [[[Model]Account]] | Model | Warehouse.account_id — warehouse linked to chart of accounts |
| `AccountsEnum` | Enum | Default account type when auto-creating warehouse account |
| `AutoStoringAccountOfWarehouseService` | Service | Called by [[[Service]WarehouseServices#StoringWarehouseService]] when autocreate_account=true |

---

## CompanyUser Module
| Used | Type | Purpose |
|---|---|---|
| [[[Model]User]] | Model | `created_by` on Warehouse, Requisition, WarehouseProductLog |
| `CompanyUsersRepository` | Repository | User lookups for filter dropdowns |
| `RetrievingAllUsersService` | Service | Users dropdown in requisition list filters |

---

## Products Module
| Used | Type | Purpose |
|---|---|---|
| [[Products/[Model]Product\|[Model]Product]] | Model | RequisitionProduct.product_id; WarehouseProductLog.product_id (withTrashed) |
| [[Products/[Model]WarehouseProduct\|[Model]WarehouseProduct]] | Model | RequisitionProduct.warehouse_product_id; Warehouse.warehouseProducts |
| [[Products/[Model]CostCenter\|[Model]CostCenter]] | Model | Warehouse.cost_center_id; WarehouseProductLog.cost_center_id |
| [[Products/[Enum]Enums\|[Enum]Enums]] `ProductTypeEnum` | Enum | Filters physical products only for invoice conversion |
| [[Products/[Service]ProductServices\|[Service]ProductServices]] `RetrivingProductService` | Service | Product list in requisition form |
| [[Products/[Repo]Repositories\|[Repo]Repositories]] `CategoriesRepository` | Repo | Product category data |
| [[Products/[Repo]Repositories\|[Repo]Repositories]] `UnitsRepository` | Repo | Product unit data |

---

## Purchases Module
| Used | Type | Purpose |
|---|---|---|
| `Supplier` | Model | Requisition.supplier_id (INBOUND type) |
| `PurchaseBill` | Model | Target entity when converting INBOUND requisition |
| `BillReturn` | Model | WarehouseProductLog polymorphic entity type |
| `PurchaseOrder` | Model | Related purchase flow |
| `SuppliersRepository` | Repository | Supplier dropdown on INBOUND form |
| `PreparingDataForCreatingPurchaseBillService` | Service | Bill form data on requisition → bill conversion |

---

## Sales Module
| Used | Type | Purpose |
|---|---|---|
| `Customer` | Model | Requisition.customer_id (OUTBOUND type) |
| `Invoice` | Model | Target entity when converting OUTBOUND requisition; WarehouseProductLog entity type |
| `InvoiceReturn` | Model | WarehouseProductLog polymorphic entity type |
| `CustomersRepository` | Repository | Customer dropdown on OUTBOUND form |
| `PreparingDataForCreatingInvoiceService` | Service | Invoice form data on requisition → invoice conversion |
| `InvoiceTaxesStatusEnum` | Enum | Tax status reference during conversion |

---

## Settings Module
| Used | Type | Purpose |
|---|---|---|
| [[Settings/[Model]Tax\|[Model]Tax]] | Model | RequisitionProduct.tax_id |
| [[Settings/[Model]FormDesign\|[Model]FormDesign]] | Model | PDF print layout for requisition |
| [[Settings/[Repo]Repositories\|[Repo]Repositories]] `TaxesRepository` | Repo | Tax dropdown |
| [[Settings/[Repo]Repositories\|[Repo]Repositories]] `GeneralSettingsRepository` | Repo | Currency + company settings |
| [[Settings/[Service]FormDesignServices\|[Service]FormDesignServices]] `RetrievingFormDesignByFormTypeService` | Service | PDF form design |
| [[Settings/[Service]TaxServices\|[Service]TaxServices]] `RetrievingDefaultTaxService` | Service | Default tax on requisition form |
| [[Settings/[Service]SettingsServices\|[Service]SettingsServices]] `RetrievingInventorySystemService` | Service | Determines if negative stock is allowed |
| [[Settings/[Enum]Enums\|[Enum]Enums]] `FeaturesEnum` | Enum | Feature flag checks |
| [[Settings/[Enum]Enums\|[Enum]Enums]] `InventorySystemEnum` | Enum | Inventory system type config |

---

## App (Core)
| Used | Type | Purpose |
|---|---|---|
| `TenantBaseController` | Base class | All web controllers |
| `BaseApiController` | Base class | API controllers |
| `UsesTenantConnection` | Trait | All models use tenant DB |
| `AuditableTrait` | Trait | Warehouse, Requisition, RequisitionProduct, WarehouseProductLog |
| `SoftDeletes` | Trait | All models |
| `DownloadingPDFService` | Service | PDF generation for requisition + reports |
