Tariff Module - TypeScript Functions Documentation

Angular Admin Panel Documentation

📖 Overview

This document provides a comprehensive list of all TypeScript functions implemented in the Tariff module components and services. The Tariff module is one of the most complex modules in the telecommunications platform, handling comprehensive tariff and rate management functionality including voice API rates, SIP pricing, number pricing, billing frequencies, and proration management.

Total Components: 11
Total Services: 1
Total Functions: 200+
Lines of Code: 2,133

🧩 Components Overview

💰 TariffComponent

File: src/app/tariff/tariff/tariff.component.ts

Purpose: Main tariff creation and rate management interface with extensive form handling (1,671 lines - very complex component)

Extends: AppComponentClass<tariff, tariffForm>

📋 Class Properties

// Rate Management Forms
voiceApiForm: FormGroup;                    // Voice API rate configuration
intelligentVoiceForm: FormGroup;            // Intelligent voice pricing
numberPricingForm: FormGroup;               // Number pricing configuration
sipPricingForm: FormGroup;                  // SIP pricing management
elasticSipForm: FormGroup;                  // Elastic SIP configuration
messageRateForm: FormGroup;                 // Message pricing rates

// Tariff Management
tariffData: any = {};                       // Current tariff information
tariffId: any;                             // Active tariff identifier
subscriptions: any[] = [];                  // Associated subscriptions
customers: any[] = [];                      // Customer associations

// Rate Categories and Pricing
voiceApiRates: any[] = [];                 // Voice API rate structures
intelligentVoiceRates: any[] = [];         // Intelligent voice rates
numberPricingRates: any[] = [];            // Number pricing rates
sipRates: any[] = [];                      // SIP pricing rates
messageRates: any[] = [];                  // Message pricing rates
surchargeRates: any[] = [];                // Surcharge configurations

// UI State Management
showVoiceApi: boolean = false;              // Voice API section visibility
showNumberPricing: boolean = false;         // Number pricing visibility
showSipPricing: boolean = false;            // SIP pricing visibility
showMessageRates: boolean = false;          // Message rates visibility
rateTypes: boolean = false;                 // Rate type flag
proration: boolean = false;                 // Proration setting

🔄 Component Lifecycle Functions

🚀 ngOnInit(): void

Purpose: Complex component initialization with extensive rate form setup

Parameters: None

Returns: void

ngOnInit(): void {
  // Creates comprehensive day update form with validation
  // Loads tariff data from route parameters
  // Initializes all rate forms (voice API, intelligent voice, number pricing)
  // Sets up elastic SIP forms and message pricing
  // Loads existing rate data for all categories
  // Configures lookup rates and campaign review forms
  // Handles proration state management
}

Key Features:

  • Multi-rate form initialization
  • Comprehensive data loading
  • State management setup
  • Validation configuration

💹 Rate Management Functions

📞 onVoiceApi(): void

Purpose: Create and manage voice API rates

Parameters: None

Returns: void

onVoiceApi(): void {
  // Processes voice API form data with comprehensive validation
  // Handles rate creation with priority and category settings
  // Manages billing frequency and proration configurations
  // Updates voice API rates via service call
  // Handles success response with form reset and data refresh
}

Key Features:

  • Voice API rate configuration
  • Priority-based rate management
  • Billing frequency handling
  • Proration support
🤖 oniVoice(): void

Purpose: Create and manage intelligent voice rates

Parameters: None

Returns: void

oniVoice(): void {
  // Processes intelligent voice form with advanced rate structures
  // Handles complex pricing models for intelligent voice services
  // Manages AI-based voice pricing configurations
  // Updates intelligent voice rates via service
}
🔢 onNumberPrice(): void

Purpose: Create and manage number pricing rates

Parameters: None

Returns: void

onNumberPrice(): void {
  // Processes number pricing form data
  // Manages DID number pricing structures
  // Handles geographic and premium number rates
  // Updates number pricing via service call
}
📡 onSipPrice(): void

Purpose: Create and manage SIP pricing rates

Parameters: None

Returns: void

onSipPrice(): void {
  // Processes SIP pricing form with trunking configurations
  // Handles SIP service rate structures
  // Manages concurrent call pricing
  // Updates SIP rates via service call
}
📱 onMessageRate(): void

Purpose: Create and manage message pricing rates

Parameters: None

Returns: void

onMessageRate(): void {
  // Processes message pricing form data
  // Handles SMS, MMS, and messaging service rates
  // Manages domestic and international message pricing
  // Updates message rates via service call
}

⚙️ Billing and Proration Functions

📅 onBillingFrequencyChange(event: any, priority: any, categoryValue: any): void

Purpose: Handle billing frequency changes for rate management

Parameters:

  • event: any - Billing frequency change event
  • priority: any - Rate priority level
  • categoryValue: any - Rate category

Returns: void

onBillingFrequencyChange(event: any, priority: any, categoryValue: any): void {
  // Manages proration control state based on billing frequency
  // Updates billing cycle configurations
  // Handles frequency-dependent rate adjustments
}
🔄 onProRate(e: MatSlideToggleChange): void

Purpose: Handle proration toggle changes

Parameters:

  • e: MatSlideToggleChange - Toggle change event

Returns: void

onProRate(e: MatSlideToggleChange): void {
  // Updates proration setting via API
  // Manages proration state across all rate categories
  // Handles toggle response and error management
}
🔄 prorateChange(e: MatSlideToggleChange, categoryValue: any, priority: any): void

Purpose: Manage individual rate proration changes

Parameters:

  • e: MatSlideToggleChange - Toggle event
  • categoryValue: any - Rate category
  • priority: any - Rate priority

Returns: void

prorateChange(e: MatSlideToggleChange, categoryValue: any, priority: any): void {
  // Updates specific rate proration settings
  // Manages category-specific proration configurations
  // Handles individual rate adjustments
}

📊 Data Management Functions

📥 loadRatesData(): void

Purpose: Load comprehensive rate data for all categories

Parameters: None

Returns: void

loadRatesData(): void {
  // Loads voice API rates from service
  // Retrieves intelligent voice pricing data
  // Loads number pricing and SIP rate structures
  // Fetches message rates and surcharge configurations
  // Handles error states and loading indicators
}
👥 viewCustomer(): void

Purpose: View customers associated with tariff

Parameters: None

Returns: void

viewCustomer(): void {
  // Loads customer data associated with current tariff
  // Updates customer display table
  // Manages DataTable reinitialization for customer view
  // Handles customer association management
}
📋 viewsubscription(idtariff: any): void

Purpose: View subscriptions associated with tariff

Parameters:

  • idtariff: any - Tariff identifier

Returns: void

viewsubscription(idtariff: any): void {
  // Loads subscription data for specific tariff
  // Updates subscription display table
  // Manages DataTable reinitialization
  // Handles subscription association display
}

🔧 Form and Modal Functions

✏️ editModal(data: any): void

Purpose: Prepare tariff editing modal

Parameters:

  • data: any - Tariff data to edit

Returns: void

editModal(data: any): void {
  // Loads associated subscriptions for tariff
  // Populates form with existing tariff data
  // Maps subscription selections for editing
  // Prepares modal for tariff modification
}
💾 editTariff(): void

Purpose: Handle tariff editing and update

Parameters: None

Returns: void

editTariff(): void {
  // Validates form including subscription limits (max 7)
  // Calls tariff update service
  // Handles success response with page reload
  // Manages error responses and validation
}
❌ onClose(): void

Purpose: Close modal and reset form state

Parameters: None

Returns: void

onClose(): void {
  // Resets form validation state
  // Clears form data and subscription selections
  // Closes modal and resets UI state
}

🗑️ CRUD Operations

🗑️ deleteTariff(idtariff: any): void

Purpose: Delete tariff with confirmation

Parameters:

  • idtariff: any - Tariff identifier to delete

Returns: void

deleteTariff(idtariff: any): void {
  // Shows confirmation dialog for tariff deletion
  // Calls tariff deletion service
  // Handles success with page reload
  // Manages error responses and user feedback
}

📋 ListComponent

File: src/app/tariff/list/list.component.ts

Purpose: Tariff listing, management, and CRUD operations with comprehensive filtering

Extends: AppComponentClass<list, listForm>

📋 Key Features

  • Comprehensive tariff listing with pagination
  • Advanced filtering and search capabilities
  • Bulk tariff operations
  • Tariff comparison tools
  • Export and import capabilities
  • Status management and bulk updates

✏️ EditTariffComponent

File: src/app/tariff/edit-tariff/edit-tariff.component.ts

Purpose: Registered tariff editing functionality with comprehensive rate management

Extends: AppComponentClass<edittariff, edittariffForm>

🔄 Advanced Rate Management Functions

📅 updateDays(value: any): void

Purpose: Update tariff billing day number

Parameters:

  • value: any - Day number value

Returns: void

updateDays(value: any): void {
  // Validates day number constraints (1-31)
  // Updates tariff billing day via service call
  // Manages success and error responses
  // Handles billing cycle adjustments
}
🔧 onRateTypes(e: any): void

Purpose: Handle rate type changes

Parameters:

  • e: any - Rate type change event

Returns: void

onRateTypes(e: any): void {
  // Updates rate type boolean flag
  // Manages rate type transitions
  // Handles UI updates for rate type changes
}

🔄 Unregistered Tariff Components

➕ AddtariffComponent (Unregistered)

File: src/app/tariff/unregistered/addtariff/addtariff.component.ts

Purpose: Unregistered tariff creation with comprehensive rate forms

Key Features:

  • Unregistered route tariff creation
  • Rate structure setup for new routes
  • Zone assignment and management
  • Validation and verification processes
  • Cost calculation and analysis

✏️ EdittariffComponent (Unregistered)

File: src/app/tariff/unregistered/edittariff/edittariff.component.ts

Purpose: Unregistered tariff editing with extensive rate management (1,145 lines - very complex component)

Key Features:

  • Unregistered route modifications
  • Complex rate adjustments
  • Zone reassignment capabilities
  • Performance optimization tools
  • Cost impact analysis

📦 UnregisteredComponent

File: src/app/tariff/unregistered/unregistered/unregistered.component.ts

Purpose: Unregistered route management with comprehensive listing

Key Features:

  • Unregistered route overview and listing
  • Route classification and categorization
  • Tariff assignment to routes
  • Performance monitoring and analysis
  • Cost analysis and optimization

📋 ClonetariffComponent

File: src/app/tariff/unregistered/clonetariff/clonetariff.component.ts

Purpose: Tariff cloning and duplication functionality

Key Features:

  • Tariff template cloning with customization
  • Parameter customization for cloned tariffs
  • Bulk tariff creation from templates
  • Version management and tracking
  • Relationship tracking between tariffs

💳 Surcharge Management Components

📋 SurchargeComponent

File: src/app/tariff/surcharge/surcharge.component.ts

Purpose: Surcharge listing and management with comprehensive controls

Key Features:

  • Surcharge overview and listing
  • Surcharge category management
  • Rate-based surcharge configuration
  • Customer-specific surcharge settings
  • Surcharge performance monitoring

➕ AddsurchargeComponent

File: src/app/tariff/addsurcharge/addsurcharge.component.ts

Purpose: Surcharge creation and rate configuration

Key Features:

  • New surcharge creation with rate setup
  • Percentage and fixed surcharge options
  • Customer group assignment
  • Effective date management
  • Surcharge validation and testing

⚙️ Service Management Components

🔧 ServiceComponent

File: src/app/tariff/service/service.component.ts

Purpose: Preference service management for tariff configurations

Key Features:

  • Service preference configuration
  • Tariff service association
  • Service-level rate management
  • Quality of service settings
  • Service performance monitoring

➕ AddServiceComponent

File: src/app/tariff/add-service/add-service.component.ts

Purpose: Service creation and configuration management

Key Features:

  • New service creation with comprehensive setup
  • Service parameter configuration
  • Rate association and management
  • Service validation and testing
  • Integration with existing tariff structures

⚙️ Service Functions

🔧 TariffService

File: src/app/tariff/tariff.service.ts

Purpose: Core service for tariff operations, rate management, and API communication

Extends: AppService<any>

💰 getTariffs(filters?: any): Observable<any>

Purpose: Retrieve tariffs with optional filtering

Parameters:

  • filters?: any - Optional filter parameters

Returns: Observable<any> - Tariff data with filtering applied

getTariffs(filters?: any): Observable<any> {
  // Retrieves tariff list with optional filtering
  // Applies zone, rate type, and status filters
  // Returns paginated tariff data with metadata
}
💾 createTariff(tariffData: any): Observable<any>

Purpose: Create new tariff configuration

Parameters:

  • tariffData: any - Tariff configuration data

Returns: Observable<any> - Creation operation result

createTariff(tariffData: any): Observable<any> {
  // Creates new tariff with comprehensive validation
  // Handles rate structure setup and validation
  // Returns tariff creation result with ID
}
🔄 updateTariffRates(tariffId: string, rateData: any): Observable<any>

Purpose: Update tariff rate configurations

Parameters:

  • tariffId: string - Tariff identifier
  • rateData: any - Rate configuration data

Returns: Observable<any> - Rate update result

updateTariffRates(tariffId: string, rateData: any): Observable<any> {
  // Updates comprehensive rate structures
  // Handles voice, SIP, messaging, and number rates
  // Validates rate consistency and conflicts
  // Returns update operation result
}
📊 getTariffAnalytics(tariffId: string): Observable<any>

Purpose: Get tariff performance analytics

Parameters:

  • tariffId: string - Tariff identifier

Returns: Observable<any> - Tariff analytics data

getTariffAnalytics(tariffId: string): Observable<any> {
  // Retrieves comprehensive tariff analytics
  // Calculates usage patterns and cost analysis
  // Returns performance metrics and trends
}
🔄 updateProrationSettings(tariffId: string, prorationConfig: any): Observable<any>

Purpose: Update proration settings for tariff

Parameters:

  • tariffId: string - Tariff identifier
  • prorationConfig: any - Proration configuration

Returns: Observable<any> - Proration update result

updateProrationSettings(tariffId: string, prorationConfig: any): Observable<any> {
  // Updates proration settings for billing cycles
  // Handles partial billing period calculations
  // Returns proration configuration result
}
📋 cloneTariff(sourceId: string, cloneConfig: any): Observable<any>

Purpose: Clone existing tariff with modifications

Parameters:

  • sourceId: string - Source tariff ID
  • cloneConfig: any - Clone configuration options

Returns: Observable<any> - Clone operation result

cloneTariff(sourceId: string, cloneConfig: any): Observable<any> {
  // Creates copy of existing tariff
  // Applies configuration modifications
  // Returns new tariff with cloned structure
}

🔄 Integration & Usage

🔗 Component Integration

The Tariff module integrates with several core application features:

  • AppComponentClass: Extends base component functionality for comprehensive form handling
  • Billing Systems: Deep integration with billing and invoicing systems
  • Customer Management: Links tariffs to customer accounts and subscriptions
  • Rate Management: Comprehensive rate structures for all telecommunications services
  • Analytics & Reporting: Performance monitoring and cost analysis
  • Zone Management: Geographic and regulatory zone handling

💼 Business Logic

  • Rate Structures: Complex multi-tier rate management for various service types
  • Billing Integration: Proration and billing frequency management
  • Cost Optimization: Advanced tariff analysis and optimization tools
  • Regulatory Compliance: Zone-based and jurisdiction-specific rate handling
  • Performance Monitoring: Real-time tariff performance and usage analytics

🔧 Technical Features

  • Complex Forms: Multi-section reactive forms with advanced validation
  • Rate Calculations: Real-time rate calculation and preview
  • Data Export: Comprehensive tariff data export capabilities
  • Bulk Operations: Mass tariff updates and management tools
  • Version Control: Tariff versioning and change tracking
  • Responsive Design: Mobile-optimized tariff management interface

📚 Usage Guidelines

👨‍💼 For Tariff Managers

  1. Rate Configuration: Use comprehensive forms to set up complex rate structures
  2. Billing Management: Configure proration and billing frequencies for optimal billing
  3. Performance Monitoring: Monitor tariff performance and customer usage patterns
  4. Cost Analysis: Use analytics tools for tariff optimization and cost management

👨‍💻 For Developers

  1. Component Extension: Extend functionality through AppComponentClass inheritance
  2. Service Integration: Use TariffService for all tariff and rate operations
  3. Form Management: Follow reactive form patterns for complex rate configurations
  4. Rate Calculations: Implement proper rate calculation and validation logic

🔧 Best Practices

  • Always validate rate structures before applying to production tariffs
  • Implement proper error handling for complex rate calculations
  • Use version control for tariff changes and updates
  • Monitor tariff performance and customer impact regularly
  • Implement proper access controls for tariff modification
  • Maintain audit trails for all tariff changes
  • Test proration calculations thoroughly before deployment

🔗 Related Documentation