diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8c996cab..e79fa83b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -88,6 +88,7 @@ import {PricePlanDrawerComponent} from "./shared/price-plan-drawer/price-plan-dr import {OfferComponent} from "./shared/forms/offer/offer.component"; import { ThemeService } from './services/theme.service'; import { ThemeAwareTranslateLoader } from './services/theme-aware-translate.loader'; +import { RevenueReportComponent } from './shared/revenue-report/revenue-report.component' // Función Factory requerida para crear el cargador con sus dependencias export function createThemeAwareLoader(http: HttpClient, themeService: ThemeService) { @@ -193,6 +194,7 @@ import { OperatorRevenueSharingComponent } from "src/app/pages/admin/operator-re MatomoRouterModule, CharacteristicComponent, PricePlanDrawerComponent, + RevenueReportComponent, OfferComponent, AboutDomeComponent, MarkdownTextareaComponent, diff --git a/src/app/models/interfaces.ts b/src/app/models/interfaces.ts index b753efab..cc45df2d 100644 --- a/src/app/models/interfaces.ts +++ b/src/app/models/interfaces.ts @@ -297,3 +297,11 @@ export interface PricePlanChangeState extends FormChangeState { }; }[]; } + +export interface Report { + label?: string; + text?: string; + link?: string; + items?: Report[]; +} + diff --git a/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.html b/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.html index f832104a..270604f6 100644 --- a/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.html +++ b/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.html @@ -10,108 +10,13 @@

- -

My Subscription Plan

- -
-

- {{ subscription?.text }} -

-
- - - } - - @if(billing){ -
- -

Billing History

- -
- @for(child of billing?.items; track child){ -
- {{ child?.label }}: - @for(state of child?.items; track state){ -
- - {{state?.label}}: - @if(state?.link != null){ - - {{state?.text}} - - } @else { - {{state?.text}} - } - -
- } - -
- } -
- + @for (section of report; track section) { +
+ +
- } - - @if(revenue){ -
-

Revenue Volume Monitoring

-
- @for(child of revenue?.items; track child){ -
- {{ child?.label }}: {{child?.text}} -
- } -
-
- } - - @if(revenueSummary){ -
-

Revenue Summary

-
-

- {{ revenueSummary?.text }} -

-
-
- } - - - @if(referral){ -
-

Referral Program Area

-
- @for(child of referral?.items; track child){ -
- {{ child?.label }}: {{child?.text}} -
- } -
-
- } - - @if(support){ -
-

Support Contact

-
- @for(child of support?.items; track child){ -
- {{ child?.label }}: - @if(child?.link != null){ - - {{child?.text}} - - } @else { - {{child?.text}} - } -
- } -
-
- } + } + }
diff --git a/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.ts b/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.ts index fc6a5627..e193eb8c 100644 --- a/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.ts +++ b/src/app/pages/user-profile/profile-sections/provider-revenue-sharing/provider-revenue-sharing.component.ts @@ -3,17 +3,19 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import {LocalStorageService} from "src/app/services/local-storage.service"; -import { LoginInfo } from 'src/app/models/interfaces'; +import { LoginInfo, Report } from 'src/app/models/interfaces'; import { RevenueSharingService } from 'src/app/services/revenue-sharing.service' +import { RevenueReportComponent } from 'src/app/shared/revenue-report/revenue-report.component' import * as moment from 'moment'; @Component({ selector: 'provider-revenue-sharing', standalone: true, - imports: [TranslateModule, FontAwesomeModule, CommonModule], + imports: [TranslateModule, FontAwesomeModule, CommonModule, RevenueReportComponent], templateUrl: './provider-revenue-sharing.component.html', styleUrl: './provider-revenue-sharing.component.css' }) + export class ProviderRevenueSharingComponent implements OnInit { loading: boolean = false; subscription:any; @@ -24,8 +26,11 @@ export class ProviderRevenueSharingComponent implements OnInit { support:any; errorMessage: any = ''; showError:boolean=false; + partyId:any=''; + report: Report[]=[]; + constructor( private localStorage: LocalStorageService, @@ -42,21 +47,7 @@ export class ProviderRevenueSharingComponent implements OnInit { this.loading=false; console.log('------') console.log(info) - for(let i=0; i + + +
+

+ {{ node.label }}: +

+ + + @if(node.text) { + + @if(node.link) { + + {{ node.text }} + + } @else { + {{ node.text }} + } + + } +
+ + + @if(node.items?.length > 0) { +
+ @for (child of node.items; track child) { + + } +
+ } + + + \ No newline at end of file diff --git a/src/app/shared/revenue-report/revenue-report.component.spec.ts b/src/app/shared/revenue-report/revenue-report.component.spec.ts new file mode 100644 index 00000000..2d473ea3 --- /dev/null +++ b/src/app/shared/revenue-report/revenue-report.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RevenueReportComponent } from './revenue-report.component'; + +describe('RevenueReportComponent', () => { + let component: RevenueReportComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [RevenueReportComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(RevenueReportComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/revenue-report/revenue-report.component.ts b/src/app/shared/revenue-report/revenue-report.component.ts new file mode 100644 index 00000000..b10f3a7a --- /dev/null +++ b/src/app/shared/revenue-report/revenue-report.component.ts @@ -0,0 +1,13 @@ +import { Component, Input } from '@angular/core'; +import {Report} from 'src/app/models/interfaces' + +@Component({ + selector: 'app-revenue-report', + standalone: true, + imports: [], + templateUrl: './revenue-report.component.html', + styleUrl: './revenue-report.component.css' +}) +export class RevenueReportComponent { + @Input() node!: any; +}