# DateValidationServiceService

**Kind:** Class

**Source:** `Frontend/src/app/services/sales/date-validation-service.service.ts` (line 14)

**Part of:** [Frontend](subsystem-frontend-src-app)

`DateValidationServiceService` coordinates date validation in the sales frontend. It registers validators through `AddValidator()`, triggers validation through `FireDateValidation()`, and includes mandatory-field checks by entity and type.

## Methods

| Method | Signature | Returns |
|---|---|---|
| `translateSubscriber` | `translateSubscriber(key: string)` | `void` |
| `FireDateValidation` | `FireDateValidation(data: number)` | `void` |
| `AddValidator` | `AddValidator(type: number, Validator: validator)` | `void` |
| `validateMandatory` | `validateMandatory(type: number)` | `void` |
| `validateMandatoryByEntity` | `validateMandatoryByEntity(type: number, inquiry: Inquiry)` | `void` |
| `validateMandatorybyType` | `validateMandatorybyType(type: number)` | `void` |

## Properties

| Property | Type |
|---|---|
| `validation$` | `any` |

## Where it refuses work

- `DateValidationServiceService` stops the work with an early return when `type < 10`.

## Diagram

```mermaid
graph LR
  Caller[Sales UI or Form] --> AddValidator[AddValidator()]
  AddValidator --> Validators[Registered validators]
  Caller --> FireDateValidation[FireDateValidation()]
  FireDateValidation --> Validators
  FireDateValidation --> Mandatory[Mandatory checks]
  Mandatory --> ByEntity[validateMandatoryByEntity()]
  Mandatory --> ByType[validateMandatorybyType()]
  Mandatory --> Base[validateMandatory()]
  Translate[translateSubscriber()] --> FireDateValidation
```

## Usage

```ts
import { Component } from '@angular/core';
import { DateValidationServiceService } from '../services/sales/date-validation-service.service';

@Component({
  selector: 'app-sales-form',
  template: `<button (click)="validateDates()">Validate dates</button>`,
})
export class SalesFormComponent {
  constructor(
    private readonly dateValidationService: DateValidationServiceService,
  ) {}

  validateDates(): void {
    this.dateValidationService.FireDateValidation();
  }
}
```

## AI Coding Instructions

- Keep the existing public method names and casing when calling this service.
- Register date validation behavior through `AddValidator()` before triggering `FireDateValidation()`.
- Use `validateMandatoryByEntity()` for entity-specific mandatory checks and `validateMandatorybyType()` for type-based checks.
- Keep translation-related validation handling connected to `translateSubscriber()`.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Imported by (1)

- `PamsServicesModule` — `Frontend/src/app/services/pams-services.module.ts`:1
