# SalesOfferController

**Kind:** Controller

**Source:** `Pams/API/Pams.API/Controllers/Sales/SalesOfferController.cs` (line 16)

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

## Where it refuses work

- `SalesOfferController` stops the work with `HttpResponseException` when `!new Business.Component.NewSales.SalesJobLogic().IsUserAllowedToPrint(branchId, userId)`, in 2 places.
- `SalesOfferController` stops the work with `HttpResponseException` when `dataStream == null`, in 2 places.
- `SalesOfferController` stops the work with `HttpResponseException` when `!offerEntity.HasObject`.
- `SalesOfferController` stops the work with `HttpResponseException` when `!jobEntity.HasObject`.
- `SalesOfferController` stops the work with `HttpResponseException` when `salesOffer == null`.
- `SalesOfferController` stops the work with `HttpResponseException` when `!isFound`.

## Relationships

- MODULE_DECLARES → `getPrincipalContractCommission`
- MODULE_DECLARES → `GetOffersByBranch`
- MODULE_DECLARES → `GetOffersByJobId`
- MODULE_DECLARES → `GetOfferById`
- MODULE_DECLARES → `GetOfferWithAllDetailesById`
- MODULE_DECLARES → `GetCancelReasonById`
- MODULE_DECLARES → `GetLossReasonById`
- MODULE_DECLARES → `GetRegretReasonById`
- MODULE_DECLARES → `CreateOffer`
- MODULE_DECLARES → `UpdateOffer`
- MODULE_DECLARES → `RequestPrices`
- MODULE_DECLARES → `UpdateSalesOfferStage`
- MODULE_DECLARES → `ExtendSalesOffer`
- MODULE_DECLARES → `ExtendSalesOfferRequest`
- MODULE_DECLARES → `ConvertSalesPotentialToOffer`
- MODULE_DECLARES → `AddNote`
- MODULE_DECLARES → `DeleteSalesOffer`
- MODULE_DECLARES → `UpdateCancelReason`
- MODULE_DECLARES → `UpdateRegretReason`
- MODULE_DECLARES → `UpdateLossReason`
- MODULE_DECLARES → `RegretSalesOffer`
- MODULE_DECLARES → `CancelSalesOffer`
- MODULE_DECLARES → `LossSalesOffer`
- MODULE_DECLARES → `UndoRegretSalesOffer`
- MODULE_DECLARES → `UndoCancelSalesOffer`
- MODULE_DECLARES → `UndoLossSalesOffer`
- MODULE_DECLARES → `ApproveArchiveRequest`
- MODULE_DECLARES → `RejectArchiveRequest`
- MODULE_DECLARES → `CreateOfferPrintTemplate`
- MODULE_DECLARES → `PrintWordOffer`
- MODULE_DECLARES → `PrintWordCoverLetter`
- IMPORTS → `BaseController`
- IMPORTS → `SalesOfferBindingModel`
- IMPORTS → `GetCancelReasonById`
- IMPORTS → `GetCancelReasonById`
- IMPORTS → `GetCancelReasonById`
- IMPORTS → `GetLossReasonById`
- IMPORTS → `GetRegretReasonById`
- IMPORTS → `GetRegretReasonById`
- IMPORTS → `RequestPrices`
- IMPORTS → `DeleteDto`
- IMPORTS → `AddNote`
- IMPORTS → `SalesNoteDto`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Save`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `UpdateCancelReason`
- IMPORTS → `UpdateCancelReason`
- IMPORTS → `UpdateCancelReason`
- IMPORTS → `CancelDetailBindingModel`
- IMPORTS → `SalesOfferCancelDetail`
- IMPORTS → `UpdateRegretReason`
- IMPORTS → `UpdateRegretReason`
- IMPORTS → `RegretDetailBindingModel`
- IMPORTS → `SalesOfferRegretDetail`
- IMPORTS → `UpdateLossReason`
- IMPORTS → `LossDetailBindingModel`
- IMPORTS → `SalesOfferLossDetail`
- IMPORTS → `ApproveArchiveRequest`
- IMPORTS → `ApproveArchiveRequest`
- IMPORTS → `RejectArchiveRequest`
- IMPORTS → `RejectArchiveRequest`
- IMPORTS → `PrintWord`
- IMPORTS → `GetJobById`

## Used by

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

### calls by (2)

- `AppSettings` — `Frontend/src/app/settings/app/app.settings.ts`:241
- `AppSettings` — `Pams/Web/Pams.Web/Client/app/settings/app/app.settings.ts`:126
