Skip to content

MrmTotalSalesComponent

reference
2 min readUpdated

Kind: Class

Source: Pams/Web/Pams.Web/Client/app/components/dashboard/dashboard-libary/widgets/mrm-total-sales/mrm-total-sales.component.ts (line 97)

Part of: Pams

MrmTotalSalesComponent is an Angular dashboard widget that retrieves and saves total-sales dashboard data, then calculates totals by year and month. It participates in Angular lifecycle hooks, handles authorization access, initializes widget state, and translates month names for display.

Methods

MethodSignatureReturns
GetAuthorizationAccessGetAuthorizationAccess(url: string)void
ngOnInitngOnInit()void
ngOnChangesngOnChanges()void
ngOnDestroyngOnDestroy()void
getDashboardDatagetDashboardData()void
initalizingDatainitalizingData(value: BranchData[])void
saveDashboardDatasaveDashboardData()void
calculateSumByYearcalculateSumByYear()void
calculateSumByMonthcalculateSumByMonth(monthIndex: number)void
translateMonthNametranslateMonthName(month: MonthData)string
getpriceFormattedgetpriceFormatted(x: undefined)string
onResizeonResize()void
setChachingsetChaching()void
getChachinggetChaching()void
switchWithTaxableHandlerswitchWithTaxableHandler()void
switchVendorTypeIdHandlerswitchVendorTypeIdHandler()void
onEnumIdChangedonEnumIdChanged(e: undefined)void
switchChartTypeHandlerswitchChartTypeHandler()void
switchBasedOnTendencyHandlerswitchBasedOnTendencyHandler()void
comparingWithPrevMonthcomparingWithPrevMonth(month: MonthData, bIndex: number, monthIndex: number, propertyName: string)string
comparingBookingWithPrevSummcomparingBookingWithPrevSumm(month: MonthsSum, index: number, propertyName: string)string
isCurrentMonthisCurrentMonth(month: MonthData)boolean
getpriceForecastAmountgetpriceForecastAmount(month: MonthData)number
expectedCurrencyChangeexpectedCurrencyChange(e: undefined)void
selectTextselectText(e: undefined)void
mouseoverRowSpanmouseoverRowSpan(e: undefined, bIndex: number)void
mouseoutRowSpanmouseoutRowSpan(e: undefined, bIndex: number)void
editSelectedMonthPrepareeditSelectedMonthPrepare(month: MonthData, supplierId: number)void
sortingsorting(propertyName: string, propertyType: string, monthIndex: number)void
syncScrollsyncScroll(e: undefined)void
openPopupopenPopup(n: string, t: string, i: string, btnTxt: string)void
savePopupsavePopup()void
ClosewithDonotSaveClosewithDonotSave()void
OnOpenedPopupOnOpenedPopup()void
closePopupclosePopup()void

Properties

PropertyType
sharedPopupSharedPopupComponent
scrollOneElementRef
_widgetWidget
_widgetTypestring
withoutOptionBarboolean
editModeboolean
bookingOrSalesnumber
withNominalboolean
withTaxableboolean
withTaxableBackupboolean
isPamsDataboolean
enumIdnumber
forecastRuleIdnumber
allowedtoEditboolean
allowedtoEnableEdtingboolean
widgetEditRequestany
widgetEditEndany
forecastRulesany[]
calcMrmSalesByany
selectedYearnumber
viewByDatasourceany[]
todayWidgetsEnumany
cachingWidgetDataCachingWidgetData
dataBranchData[]
originalDataBranchData[]
selectedDataBranchData[]
singleMonthsMonthData
branchCurrencyany
basedOnTendencyboolean
subscriptionSubscription
SeriseRangeany[]
echartsIntanceany
totalBookingMonthsMonthsSum[]
tempMonthSumMonthsSum
totalTargetsnumber
yearBookingnumber
totalForecastsnumber
tempTotalTargetTotalTargets
allGroupsTotalSalesnumber
totalSalesAfterCommissionnumber
totalPercentageOfAchievedSalesnumber
totalDirectServicenumber
totalDirectSalesWithoutScrapnumber
totalDirectSalesWithScrapnumber
totalTotalDirectSalesWithScrapnumber
totalCommissionnumber
totalCumulativeSalesnumber
popupany
searchTextstring
fixedColumnLeftNumOnenumber

Where it refuses work

  • MrmTotalSalesComponent stops the work with an early return when a[propertyName] < b[propertyName], in 2 places.
  • MrmTotalSalesComponent stops the work with an early return when a[propertyName] > b[propertyName], in 2 places.
  • MrmTotalSalesComponent stops the work with an early return when month.MonthId == 12.
  • MrmTotalSalesComponent stops the work with an early return when month[propertyName] < this.data[bIndex].MrmTotalSalesGroups[monthIndex - 1][propertyName].
  • MrmTotalSalesComponent stops the work with an early return when month[propertyName] < this.totalBookingMonths[index - 1][propertyName].
  • MrmTotalSalesComponent stops the work with an early return when this.allowedtoEnableEdting.

Diagram

mermaid
graph LR
    A[Angular Lifecycle] --> B[ngOnInit]
    A --> C[ngOnChanges]
    A --> D[ngOnDestroy]

    B --> E[GetAuthorizationAccess]
    B --> F[initalizingData]
    F --> G[getDashboardData]

    G --> H[calculateSumByYear]
    G --> I[calculateSumByMonth]
    I --> J[translateMonthName]

    K[Dashboard Configuration] --> L[saveDashboardData]

Usage

ts
import { Component, ViewChild } from '@angular/core';
import { MrmTotalSalesComponent } from './mrm-total-sales.component';

@Component({
  selector: 'app-dashboard-page',
  template: `
    <app-mrm-total-sales #totalSalesWidget></app-mrm-total-sales>
    <button type="button" (click)="refreshSalesData()">
      Refresh sales data
    </button>
  `
})
export class DashboardPageComponent {
  @ViewChild('totalSalesWidget')
  totalSalesWidget!: MrmTotalSalesComponent;

  refreshSalesData(): void {
    this.totalSalesWidget.getDashboardData();
  }

  saveWidgetSettings(): void {
    this.totalSalesWidget.saveDashboardData();
  }
}

AI Coding Instructions

  • Keep initialization logic inside ngOnInit() and react to updated bound values through ngOnChanges().
  • Preserve the existing GetAuthorizationAccess() flow when adding dashboard data requests or save actions.
  • Use initalizingData() for resetting or preparing widget state before processing dashboard results.
  • Keep year and month aggregation logic in calculateSumByYear() and calculateSumByMonth() rather than duplicating calculations in templates.
  • Clean up subscriptions, timers, or other retained resources in ngOnDestroy().

Used by

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

Imported by (3)

  • TranslateHandlerPams/Web/Pams.Web/Client/app/app.module.ts:1
  • DashboardTabComponentPams/Web/Pams.Web/Client/app/components/dashboard/dashboard-libary/dashboard-tab/dashboard-tab.component.ts:1
  • ReportsTabComponentPams/Web/Pams.Web/Client/app/components/dashboard/reports-library/reports-tab/reports-tab.component.ts:1

Was this page helpful?

Download as PDF