---
tags: [accounting, service]
module: Accounting
---

# AssetServices

## Connections
[[_Accounting]] · [[[Model]Asset]] · [[[Model]JournalEntry]] · [[[Repo]Repositories]] · [[[Controller]AssetController]] · [[[Command]Commands]] · [[[Cross]CrossModuleDependencies]]

## Source
`Modules/Accounting/Services/Asset/`

## CRUD Services
| Service | Responsibility |
|---|---|
| `CreatingAssetService` | Creates asset record + purchase [[[Model]JournalEntry]] |
| `UpdatingAssetService` | Updates asset metadata |
| `DeletingAssetService` | Soft-deletes asset (no transactions) |
| `DeletingAssetWithTransactionsService` | Deletes asset + all related JEs (depreciation, capitalization, sell) |

## Lifecycle Transaction Services
| Service | Responsibility |
|---|---|
| `CreatingAssetDepreciateService` | Records a depreciation event + [[[Model]JournalEntry]] |
| `CreatingAssetCapitalizeService` | Records a capitalization improvement + [[[Model]JournalEntry]] |
| `CreatingAssetSellingService` | Records asset sale, calculates profit/loss + [[[Model]JournalEntry]] |
| `DepreciateAssetsAutomaticallyService` | Batch depreciation for all depreciable assets (called by [[[Command]Commands]]) |
| `CreatingDecliningBalanceParametersService` | Stores declining-balance depreciation parameters |
| `CreatingStraightLineParametersService` | Stores straight-line depreciation parameters |

## Retrieval & Preparation Services
`RetrievingAssetService` · `RetrievingAssetEntriesService` · `RetrievingAssetJournalRecordsService` · `RetrievingCapitalizeAssetService` · `RetrievingDepreciateAssetService` · `PreparingDataForCreatingAssetService` · `PreparingDataForDepreciationPopupService` · `PreparingDataForCapitalizationPopupService` · `PreparingDataForSellingPopupService`

## Activity Log Services
`RetrievingAssetActivityLogService` · `RetrievingAssetDepreciationActivityLogService` · `RetrievingAssetCapitalizationActivityLogService` · `RetrievingAssetSellsActivityLogService`

## Subscription
`SubscriptionAssetsStatusService` — checks if asset feature is enabled in tenant subscription ([[[Cross]CrossModuleDependencies#Tenant]])
