📖 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.
🧩 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 eventpriority: any- Rate priority levelcategoryValue: 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 eventcategoryValue: any- Rate categorypriority: 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 identifierrateData: 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 identifierprorationConfig: 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 IDcloneConfig: 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
- Rate Configuration: Use comprehensive forms to set up complex rate structures
- Billing Management: Configure proration and billing frequencies for optimal billing
- Performance Monitoring: Monitor tariff performance and customer usage patterns
- Cost Analysis: Use analytics tools for tariff optimization and cost management
👨💻 For Developers
- Component Extension: Extend functionality through AppComponentClass inheritance
- Service Integration: Use TariffService for all tariff and rate operations
- Form Management: Follow reactive form patterns for complex rate configurations
- 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