# ProductController

**Kind:** Controller

**Source:** `Pams/API/Pams.API/Controllers/PM/ProductController.cs` (line 9)

**Part of:** [Pams](subsystem-pams)

## Where it refuses work

- `ProductController` stops the work with an early return when `isSaved != Business.Entity.EnumNewSales.EnumReturnMessage.SavedSuccessfuly`, in 2 places.
- `ProductController` stops the work with an early return when `!logic.IsFound(id, CompanyID)`.
- `ProductController` stops the work with an early return when `!logic.IsFound(model.Id, CompanyID) && model.Id > 0`.
- `ProductController` stops the work with an early return when `model?.Products?.Count == 0`.
- `ProductController` stops the work with an early return when `!logic.IsFound(model.ID, CompanyID)`.
- `ProductController` stops the work with an early return when `isDeleted != Business.Entity.EnumNewSales.EnumReturnMessage.DeletedSuccessfuly`.

## Relationships

- MODULE_DECLARES → `GetById`
- MODULE_DECLARES → `GetLookup`
- MODULE_DECLARES → `GetAllStoresLookup`
- MODULE_DECLARES → `GetAllProductsByFilter`
- MODULE_DECLARES → `GetAllProductsByFilterFunnel`
- MODULE_DECLARES → `GetAllProducts`
- MODULE_DECLARES → `GetAllProductsFunnel`
- MODULE_DECLARES → `GetAllStoresDetailByProductId`
- MODULE_DECLARES → `GetAllStoresDetail`
- MODULE_DECLARES → `GetAllStoresDetailFunnel`
- MODULE_DECLARES → `SaveProduct`
- MODULE_DECLARES → `UpdateAssembledProducts`
- MODULE_DECLARES → `DeleteProduct`
- MODULE_DECLARES → `EditProductToStore`
- MODULE_DECLARES → `GetExternalAppConfig`
- MODULE_DECLARES → `GetLookupFromExternalApp`
- IMPORTS → `BaseController`
- IMPORTS → `GetById`
- IMPORTS → `GetById`
- IMPORTS → `GetById`
- IMPORTS → `GetById`
- IMPORTS → `GetById`
- IMPORTS → `GetById`
- IMPORTS → `GetLookup`
- IMPORTS → `ProductBindingModel`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `MismachedProductsBindingModel`
- IMPORTS → `Delete`
- IMPORTS → `DeleteDto`
- IMPORTS → `StoreProductBindingModel`

## Used by

3 references from 3 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### calls by (3)

- `ProductsDetailsComponent` — `Frontend/src/app/components/configuration/products/products-details/products-details.component.ts`:1
- `AppSettings` — `Frontend/src/app/settings/app/app.settings.ts`:241
- `AppSettings` — `Pams/Web/Pams.Web/Client/app/settings/app/app.settings.ts`:126
