{"version":3,"sources":["webpack:///./src/components/zone-kpi/zone-kpi.ts","webpack:///./src/components/zone-kpi/zone-kpi.html","webpack:///./src/components/zone-plan-copy/zone-plan-copy.ts","webpack:///./src/components/zone-plan-copy/zone-plan-copy.html","webpack:///./src/components/zone-plan-edit/zone-plan-edit.ts","webpack:///./src/components/zone-plan-edit/zone-plan-edit.html","webpack:///./src/components/zone-plan-view/zone-plan-view.ts","webpack:///./src/components/zone-plan-view/zone-plan-view.html","webpack:///./src/components/zone-report-edit/zone-report-edit.ts","webpack:///./src/components/zone-report-edit/zone-report-edit.html","webpack:///./src/components/zone-report-lastperiod-edit/zone-report-lastperiod-edit.ts","webpack:///./src/components/zone-report-lastperiod-edit/zone-report-lastperiod-edit.html","webpack:///./src/components/zone-report-view/zone-report-view.ts","webpack:///./src/components/zone-report-view/zone-report-view.html","webpack:///./src/environment.ts"],"names":["service","activate","params","this","planid","attached","loadPlan","getPlan","zonePlan","console","log","kpi","workingMeetingKpi","tarbiyahMeetingKpi","dawahEventKpi","associateMemberKpi","preliminaryMemberKpi","reportSubmissionKpi","description","reportStatus","organization","reportingPeriod","efficiencyPercentage","fiscalYear","expectedMeetingPerPeriod","expectedIncrease","periodKpiBreakdown","reduce","total","periodData","associateMemberActual","preliminaryMemberActual","workingMeetingActual","tarbiyahMeetingActual","dawahEventActual","overallEfficiency","statusSummary","unitCount","ZoneKpi","module","exports","reportingPeriodService","signalr","router","auth","ea","reportingPeriods","signalreventhandlers","copyPlan","copy","id","selectedReportingPeriod","year","reportingTerm","reportingFrequency","toastr","error","isCopyingPlan","onZonePlanCopied","success","navigate","onZonePlanCopyFailed","e","$values","join","key","hasOwnProperty","on","subscription","subscribe","_","detached","off","dispose","isSystemAdmin","getReportingPeriodsToCreatePlan","allReportingPeriods","filter","r","getNextReportingPeriod","nextReportingPeriod","ZonePlanCopy","isSaving","isSubmitting","isCancelling","afterSave","initialJson","save","isDirty","updatePlan","getPlanData","submitPlan","saveAndSubmitPlan","push","onZonePlanUpdated","setInitialData","length","pop","onZonePlanUpdateFailed","onZonePlanSubmitted","onZonePlanSubmitFailed","initialData","JSON","stringify","makeMemberPlanData","associateMemberPlanData","preliminaryMemberPlanData","supporterMemberPlanData","memberMemberPlanData","makeUnitOrganizationPlanData","dawahUnitOrganizationPlanData","organizationUnitOrganizationPlanData","ymbUnitOrganizationPlanData","ymsUnitOrganizationPlanData","lmUnitOrganizationPlanData","makeMeetingProgramPlanData","workerMeetingProgramPlanData","cmsMeetingProgramPlanData","smMeetingProgramPlanData","memberMeetingProgramPlanData","makeDawahProgramPlanData","dawahMeetingProgramPlanData","stateLeaderMeetingProgramPlanData","stateOutingMeetingProgramPlanData","iftarMeetingProgramPlanData","learningMeetingProgramPlanData","socialDawahMeetingProgramPlanData","dawahGroupMeetingProgramPlanData","nextGMeetingProgramPlanData","tafsirMeetingProgramPlanData","unitMeetingProgramPlanData","bbqMeetingProgramPlanData","gatheringMeetingProgramPlanData","familyVisitMeetingProgramPlanData","eidReunionMeetingProgramPlanData","otherMeetingProgramPlanData","makeTeachingLearningProgramPlanData","groupStudyTeachingLearningProgramPlanData","studyCircleForAssociateMemberTeachingLearningProgramPlanData","studyCircleTeachingLearningProgramPlanData","practiceDarsTeachingLearningProgramPlanData","stateLearningCampTeachingLearningProgramPlanData","quranStudyTeachingLearningProgramPlanData","hadithTeachingLearningProgramPlanData","quranClassTeachingLearningProgramPlanData","weekendIslamicSchoolTeachingLearningProgramPlanData","memorizingAyatTeachingLearningProgramPlanData","memorizingHadithTeachingLearningProgramPlanData","memorizingDoaTeachingLearningProgramPlanData","stateLearningSessionTeachingLearningProgramPlanData","stateQiyamulLailTeachingLearningProgramPlanData","otherTeachingLearningProgramPlanData","makeSocialWelfarePlanData","qardeHasanaSocialWelfarePlanData","patientVisitSocialWelfarePlanData","socialVisitSocialWelfarePlanData","transportSocialWelfarePlanData","shiftingSocialWelfarePlanData","shoppingSocialWelfarePlanData","foodDistributionSocialWelfarePlanData","cleanUpAustraliaSocialWelfarePlanData","otherSocialWelfarePlanData","makeMaterialPlanData","bookSaleMaterialPlanData","bookDistributionMaterialPlanData","vhsSaleMaterialPlanData","vhsDistributionMaterialPlanData","emailDistributionMaterialPlanData","ipdcLeafletDistributionMaterialPlanData","otherSaleMaterialPlanData","otherDistributionMaterialPlanData","makeFinancePlanData","baitulMalFinancePlanData","aDayMasjidProjectFinancePlanData","masjidTableBankFinancePlanData","original","target","dateAndAction","nameAndContactNumber","action","upgradeTarget","workerPromiseIncreaseTarget","otherSourceAction","otherSourceIncreaseTarget","cancelChanges","ZonePlanEdit","ZonePlanView","updateReport","zoneReport","reportid","getReportData","onZoneReportUpdated","loadReport","onZoneReportUpdateFailed","saveAndSubmitReport","submitReport","onReportSubmitted","onReportSubmitFailed","SingleTimeLastPeriodValuesUpdate","lastPeriodValuesUpdateNeeded","window","localStorage","Submitted","getItem","removeItem","updateReportLastPeriodFromModel","getReport","dto","makeMemberData","associateMemberData","preliminaryMemberData","supporterMemberData","memberMemberData","makeUnitOrganizationData","dawahUnitOrganizationData","organizationUnitOrganizationData","ymbUnitOrganizationData","ymsUnitOrganizationData","lmUnitOrganizationData","makeMeetingProgramData","workerMeetingProgramData","cmsMeetingProgramData","smMeetingProgramData","memberMeetingProgramData","makeDawahProgramData","dawahMeetingProgramData","stateLeaderMeetingProgramData","stateOutingMeetingProgramData","iftarMeetingProgramData","learningMeetingProgramData","socialDawahMeetingProgramData","dawahGroupMeetingProgramData","nextGMeetingProgramData","tafsirMeetingProgramData","unitMeetingProgramData","bbqMeetingProgramData","gatheringMeetingProgramData","familyVisitMeetingProgramData","eidReunionMeetingProgramData","otherMeetingProgramData","makeTeachingLearningProgramData","groupStudyTeachingLearningProgramData","studyCircleForAssociateMemberTeachingLearningProgramData","studyCircleTeachingLearningProgramData","practiceDarsTeachingLearningProgramData","stateLearningCampTeachingLearningProgramData","quranStudyTeachingLearningProgramData","hadithTeachingLearningProgramData","quranClassTeachingLearningProgramData","weekendIslamicSchoolTeachingLearningProgramData","memorizingAyatTeachingLearningProgramData","memorizingHadithTeachingLearningProgramData","memorizingDoaTeachingLearningProgramData","stateLearningSessionTeachingLearningProgramData","stateQiyamulLailTeachingLearningProgramData","otherTeachingLearningProgramData","makeMaterialData","bookSaleMaterialData","bookDistributionMaterialData","vhsSaleMaterialData","vhsDistributionMaterialData","emailDistributionMaterialData","ipdcLeafletDistributionMaterialData","otherSaleMaterialData","otherDistributionMaterialData","makeLibraryStockData","bookLibraryStockData","vhsLibraryStockData","otherLibraryStockData","makeFinanceData","baitulMalFinanceData","aDayMasjidProjectFinanceData","masjidTableBankFinanceData","makeSocialWelfareData","qardeHasanaSocialWelfareData","patientVisitSocialWelfareData","socialVisitSocialWelfareData","transportSocialWelfareData","shiftingSocialWelfareData","shoppingSocialWelfareData","foodDistributionSocialWelfareData","cleanUpAustraliaSocialWelfareData","otherSocialWelfareData","comment","lastPeriod","thisPeriod","increased","decreased","personalContact","actual","averageAttendance","workerPromiseLastPeriod","workerPromiseIncreased","workerPromiseDecreased","workerPromiseThisPeriod","totalIncreaseTarget","collection","expense","nisabPaidToCentral","balance","ZoneReportEdit","updateReportLastPeriod","getReportLastPeriodUpdateData","makeFinanceReportData","makeLibraryStockReportData","ZoneReportLastPeriodEdit","isDownloadingList","isDownloadingDetail","isResettingPlan","isResettingReport","isRecalculatingPlan","isRecalculatingYPlanFromQ","isRecalculatingReport","isRecalculatingYReportFromQ","getZoneReport","ZoneReportView","debug","testing","auth0","base","clientId","domain","audience","returnTo","apiBaseUrl"],"mappings":"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","file":"app~ca30380c.e392fe293d8b6aa6827a.chunk.js","sourcesContent":["import { autoinject } from \"aurelia-framework\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { ZonePlanViewModelDto } from \"models/ZonePlanViewModelDto\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { ZoneDetailedKpi } from \"models/ZoneDetailedKpi\";\r\n\r\n@autoinject\r\nexport class ZoneKpi {\r\n planid: number;\r\n zonePlan: ZonePlanViewModelDto;\r\n kpi: ZoneDetailedKpi;\r\n constructor(public service: ZonePlanReportService) {}\r\n\r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n await this.loadPlan();\r\n }\r\n\r\n async loadPlan() {\r\n this.zonePlan = await this.service.getPlan(this.planid, true);\r\n console.log('Zone Plan:', this.zonePlan);\r\n this.kpi = this.zonePlan.kpi;\r\n console.log('KPI Data:', this.kpi);\r\n if (this.kpi) {\r\n console.log('Working Meeting KPI:', this.kpi.workingMeetingKpi);\r\n console.log('Tarbiyah Meeting KPI:', this.kpi.tarbiyahMeetingKpi);\r\n console.log('Dawah Event KPI:', this.kpi.dawahEventKpi);\r\n console.log('Associate Member KPI:', this.kpi.associateMemberKpi);\r\n console.log('Preliminary Member Kpi:', this.kpi.preliminaryMemberKpi);\r\n console.log('Report Submission KPI:', this.kpi.reportSubmissionKpi);\r\n }\r\n }\r\n\r\n get headerData() {\r\n if(!this.zonePlan) return undefined;\r\n return new PlanReportHeaderData(\"Zone Plan\", this.planid, this.zonePlan.description, this.zonePlan.reportStatus, this.zonePlan.organization, this.zonePlan.reportingPeriod);\r\n }\r\n\r\n get workingMeetingKpi(): number {\r\n return this.kpi.workingMeetingKpi.efficiencyPercentage;\r\n }\r\n\r\n get tarbiyahMeetingKpi(): number {\r\n return this.kpi.tarbiyahMeetingKpi.efficiencyPercentage;\r\n }\r\n\r\n get dawahEventKpi(): number {\r\n return this.kpi.dawahEventKpi.efficiencyPercentage;\r\n }\r\n\r\n get associateMemberKpi(): number {\r\n return this.kpi.associateMemberKpi.efficiencyPercentage;\r\n }\r\n\r\n get preliminaryMemberKpi(): number {\r\n return this.kpi.preliminaryMemberKpi.efficiencyPercentage;\r\n }\r\n\r\n get reportSubmissionKpi(): number {\r\n return this.kpi.reportSubmissionKpi.efficiencyPercentage;\r\n }\r\n\r\n get fiscalYear(): number {\r\n return this.kpi.fiscalYear;\r\n }\r\n\r\n get expectedWorkingMeetingsPeriod(): number {\r\n if (!this.kpi || !this.kpi.workingMeetingKpi) return 0;\r\n return this.kpi.workingMeetingKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedTarbiyahMeetingsPeriod(): number {\r\n if (!this.kpi || !this.kpi.tarbiyahMeetingKpi) return 0;\r\n return this.kpi.tarbiyahMeetingKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedDawahEventsPeriod(): number {\r\n if (!this.kpi || !this.kpi.dawahEventKpi) return 0;\r\n return this.kpi.dawahEventKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedAmIncreaseYearly(): number {\r\n if (!this.kpi || !this.kpi.associateMemberKpi) return 0;\r\n return this.kpi.associateMemberKpi.expectedIncrease;\r\n }\r\n\r\n get expectedPmIncreaseYearly(): number {\r\n if (!this.kpi || !this.kpi.preliminaryMemberKpi) return 0;\r\n return this.kpi.preliminaryMemberKpi.expectedIncrease;\r\n }\r\n\r\n get totalAssociateMembers(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.associateMemberActual, 0);\r\n }\r\n\r\n get totalPreliminaryMembers(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.preliminaryMemberActual, 0);\r\n }\r\n\r\n get totalWorkingMeetings(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.workingMeetingActual, 0);\r\n }\r\n\r\n get totalTarbiyahMeetings(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.tarbiyahMeetingActual, 0);\r\n }\r\n\r\n get totalDawahEvents(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.dawahEventActual, 0);\r\n }\r\n\r\n get overallEfficiency(): number {\r\n return this.kpi.overallEfficiency;\r\n }\r\n\r\n get statusSummary(): string {\r\n return this.kpi.statusSummary;\r\n }\r\n\r\n get unitCount(): number {\r\n return this.kpi ? this.kpi.unitCount : 0;\r\n }\r\n}\r\n\r\n\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { ReportingPeriodViewModel } from \"models/ReportingPeriodViewModel\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { ZonePlanViewModelDto } from \"models/ZonePlanViewModelDto\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ZoneReportUpdated } from \"resources/plan-report-header/ZoneReportUpdated\";\r\nimport { ReportingPeriodService } from \"services/ReportingPeriodService\";\r\nimport { AuthService } from \"auth-service\";\r\n\r\n@autoinject\r\nexport class ZonePlanCopy {\r\n planid: number;\r\n zonePlan: ZonePlanViewModelDto;\r\n reportingPeriods: ReportingPeriodViewModel[] = [];\r\n selectedReportingPeriod: ReportingPeriodViewModel;\r\n isCopyingPlan: boolean;\r\n\r\n signalreventhandlers: any = {};\r\n subscription: Subscription;\r\n constructor(public service: ZonePlanReportService, public reportingPeriodService: ReportingPeriodService, public signalr: SignalrWrapper, \r\n public router: AppRouter, public auth: AuthService, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"ZonePlanCopied\": this.onZonePlanCopied,\r\n \"ZonePlanCopyFailed\": this.onZonePlanCopyFailed\r\n };\r\n }\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(ZoneReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n for(const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n async loadPlan() {\r\n this.zonePlan = await this.service.getPlan(this.planid);\r\n if(this.auth.isSystemAdmin) {\r\n const allReportingPeriods = await this.reportingPeriodService.getReportingPeriodsToCreatePlan(this.zonePlan.organization.id);\r\n this.reportingPeriods = allReportingPeriods.filter(r => r.reportingFrequency === this.zonePlan.reportingPeriod.reportingFrequency);\r\n } else {\r\n const nextReportingPeriod = await this.reportingPeriodService.getNextReportingPeriod(this.zonePlan.id);\r\n this.reportingPeriods = [nextReportingPeriod];\r\n }\r\n }\r\n\r\n get headerData() {\r\n if(!this.zonePlan) return undefined;\r\n return new PlanReportHeaderData(\"Zone Plan\", this.planid, this.zonePlan.description, this.zonePlan.reportStatus, this.zonePlan.organization, this.zonePlan.reportingPeriod);\r\n }\r\n\r\n copyPlan = async () => {\r\n try {\r\n await this.service.copy(this.zonePlan.id, this.zonePlan.organization, \r\n this.selectedReportingPeriod.year, this.selectedReportingPeriod.reportingTerm, this.selectedReportingPeriod.reportingFrequency);\r\n } catch(error) {\r\n toastr.error(error);\r\n return;\r\n }\r\n this.isCopyingPlan = true;\r\n }\r\n\r\n onZonePlanCopied = (planid: number) => {\r\n toastr.success(\"Plan Copied\");\r\n this.router.navigate(`zone-plan-edit/${planid}`);\r\n }\r\n\r\n onZonePlanCopyFailed = (e: {$values: string[]}) => {\r\n this.isCopyingPlan = false;\r\n toastr.error(e.$values.join(\", \"));\r\n }\r\n}","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport * as toastr from \"toastr\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { PlanData } from \"models/PlanData\";\r\nimport { MemberPlanData } from \"models/MemberPlanData\";\r\nimport { UnitOrganizationPlanData } from \"models/UnitOrganizationPlanData\";\r\nimport { MeetingProgramPlanData } from \"models/MeetingProgramPlanData\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { TeachingLearningProgramPlanData } from \"models/TeachingLearningProgramPlanData\";\r\nimport { DawahProgramPlanData } from \"models/DawahProgramPlanData\";\r\nimport { MaterialPlanData } from \"models/MaterialPlanData\";\r\nimport { FinancePlanData } from \"models/FinancePlanData\";\r\nimport { SocialWelfarePlanData } from \"models/SocialWelfarePlanData\";\r\nimport { ZonePlanViewModelDto } from \"models/ZonePlanViewModelDto\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ZoneReportUpdated } from \"resources/plan-report-header/ZoneReportUpdated\";\r\n\r\n@autoinject\r\nexport class ZonePlanEdit {\r\n planid: number;\r\n zonePlan: ZonePlanViewModelDto;\r\n isSaving = false;\r\n isSubmitting = false;\r\n isCancelling = false;\r\n afterSave: (() => Promise)[] = [];\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any= {};\r\n subscription: Subscription;\r\n constructor(public service: ZonePlanReportService, public signalr: SignalrWrapper, public router: AppRouter, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"ZonePlanUpdated\": this.onZonePlanUpdated,\r\n \"ZonePlanUpdateFailed\": this.onZonePlanUpdateFailed,\r\n \"ZonePlanSubmitted\": this.onZonePlanSubmitted,\r\n \"ZonePlanSubmitFailed\": this.onZonePlanSubmitFailed\r\n };\r\n }\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(ZoneReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n async loadPlan() {\r\n const zonePlan = await this.service.getPlan(this.planid);\r\n this.zonePlan = zonePlan;\r\n this.setInitialData();\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getPlanData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getPlanData(): PlanData {\r\n return new PlanData(\r\n this.makeMemberPlanData(this.zonePlan.associateMemberPlanData),\r\n this.makeMemberPlanData(this.zonePlan.preliminaryMemberPlanData),\r\n this.makeMemberPlanData(this.zonePlan.supporterMemberPlanData),\r\n this.makeMemberPlanData(this.zonePlan.memberMemberPlanData),\r\n this.makeUnitOrganizationPlanData(this.zonePlan.dawahUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.zonePlan.organizationUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.zonePlan.ymbUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.zonePlan.ymsUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.zonePlan.lmUnitOrganizationPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.workerMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.cmsMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.smMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.memberMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.zonePlan.dawahMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.stateLeaderMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.zonePlan.stateOutingMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.iftarMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.learningMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.zonePlan.socialDawahMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.dawahGroupMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.nextGMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.tafsirMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.unitMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.bbqMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.gatheringMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.familyVisitMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.eidReunionMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.zonePlan.otherMeetingProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.groupStudyTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.studyCircleForAssociateMemberTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.studyCircleTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.practiceDarsTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.stateLearningCampTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.quranStudyTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.hadithTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.quranClassTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.weekendIslamicSchoolTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.memorizingAyatTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.memorizingHadithTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.memorizingDoaTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.stateLearningSessionTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.stateQiyamulLailTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.zonePlan.otherTeachingLearningProgramPlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.qardeHasanaSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.patientVisitSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.socialVisitSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.transportSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.shiftingSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.shoppingSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.foodDistributionSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.cleanUpAustraliaSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.zonePlan.otherSocialWelfarePlanData),\r\n this.makeMaterialPlanData(this.zonePlan.bookSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.bookDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.vhsSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.vhsDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.emailDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.ipdcLeafletDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.otherSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.zonePlan.otherDistributionMaterialPlanData),\r\n this.makeFinancePlanData(this.zonePlan.baitulMalFinancePlanData),\r\n this.makeFinancePlanData(this.zonePlan.aDayMasjidProjectFinancePlanData),\r\n this.makeFinancePlanData(this.zonePlan.masjidTableBankFinancePlanData)\r\n );\r\n }\r\n\r\n private makeMeetingProgramPlanData(original: MeetingProgramPlanData): MeetingProgramPlanData {\r\n return new MeetingProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeMemberPlanData(original: MemberPlanData): MemberPlanData {\r\n return new MemberPlanData(original.nameAndContactNumber, original.action, original.upgradeTarget);\r\n }\r\n\r\n private makeUnitOrganizationPlanData(original: UnitOrganizationPlanData): UnitOrganizationPlanData {\r\n return new UnitOrganizationPlanData(original.action, original.upgradeTarget);\r\n }\r\n\r\n private makeTeachingLearningProgramPlanData(original: TeachingLearningProgramPlanData): TeachingLearningProgramPlanData {\r\n return new TeachingLearningProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeDawahProgramPlanData(original: DawahProgramPlanData): DawahProgramPlanData {\r\n return new DawahProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeMaterialPlanData(original: MaterialPlanData): MaterialPlanData {\r\n return new MaterialPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeFinancePlanData(original: FinancePlanData): FinancePlanData {\r\n return new FinancePlanData(original.action, original.workerPromiseIncreaseTarget, original.otherSourceAction, original.otherSourceIncreaseTarget);\r\n }\r\n\r\n private makeSocialWelfarePlanData(original: SocialWelfarePlanData): SocialWelfarePlanData {\r\n return new SocialWelfarePlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n save = async () => {\r\n if (!this.isDirty) return;\r\n try {\r\n await this.service.updatePlan(this.zonePlan.organization.id, this.planid, this.getPlanData());\r\n this.isSaving = true;\r\n } catch(error) {\r\n toastr.error(error, \"Error Saving Plan\");\r\n }\r\n }\r\n\r\n submitPlan = async () => {\r\n try {\r\n await this.service.submitPlan(this.zonePlan.organization.id, this.planid);\r\n this.isSubmitting = true;\r\n } catch(error) {\r\n toastr.error(error, \"Error Submitting Plan\");\r\n }\r\n }\r\n\r\n saveAndSubmitPlan = async () => {\r\n if (this.isDirty)\r\n {\r\n await this.save();\r\n this.afterSave.push(this.submitPlan);\r\n return;\r\n } \r\n await this.submitPlan();\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getPlanData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadPlan();\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canSubmit() {\r\n return !this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n onZonePlanUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n toastr.success(\"Plan Saved\");\r\n this.setInitialData();\r\n if(this.afterSave.length === 0) return;\r\n await this.afterSave.pop()();\r\n }\r\n\r\n onZonePlanUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Plan\");\r\n if(this.afterSave.length === 0) return;\r\n this.afterSave.pop();\r\n }\r\n\r\n onZonePlanSubmitted = (id: number) => {\r\n this.isSubmitting = false;\r\n toastr.success(\"Plan Submitted\");\r\n this.router.navigate(`zone-plan-view/${id}`);\r\n }\r\n\r\n onZonePlanSubmitFailed = (e: {$values: string[]}) => {\r\n this.isSubmitting = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Submitting Plan\");\r\n }\r\n\r\n get headerData() {\r\n if(!this.zonePlan) return undefined;\r\n return new PlanReportHeaderData(\"Zone Plan\", this.planid, this.zonePlan.description, this.zonePlan.reportStatus, this.zonePlan.organization, this.zonePlan.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { ZonePlanViewModelDto } from \"models/ZonePlanViewModelDto\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ZoneReportUpdated } from \"resources/plan-report-header/ZoneReportUpdated\";\r\n\r\n@autoinject\r\nexport class ZonePlanView {\r\n planid: number;\r\n zonePlan: ZonePlanViewModelDto;\r\n subscription: Subscription;\r\n constructor(public service: ZonePlanReportService, public ea?: EventAggregator) {}\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n this.subscription = this.ea.subscribe(ZoneReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n \r\n async loadPlan() {\r\n this.zonePlan = await this.service.getPlan(this.planid);\r\n }\r\n\r\n get headerData() {\r\n if(!this.zonePlan) return undefined;\r\n return new PlanReportHeaderData(\"Zone Plan\", this.planid, this.zonePlan.description, this.zonePlan.reportStatus, this.zonePlan.organization, this.zonePlan.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\";","import { autoinject } from \"aurelia-framework\";\r\nimport * as toastr from \"toastr\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { ReportData } from \"models/ReportData\";\r\nimport { MemberData } from \"models/MemberData\";\r\nimport { UnitOrganizationData } from \"models/UnitOrganizationData\";\r\nimport { MeetingProgramData } from \"models/MeetingProgramData\";\r\nimport { ReportStatus } from \"models/ReportStatus\";\r\nimport { TeachingLearningProgramData } from \"models/TeachingLearningProgramData\";\r\nimport { DawahProgramData } from \"models/DawahProgramData\";\r\nimport { MaterialData } from \"models/MaterialData\";\r\nimport { LibraryStockData } from \"models/LibraryStockData\";\r\nimport { FinanceData } from \"models/FinanceData\";\r\nimport { SocialWelfareData } from \"models/SocialWelfareData\";\r\nimport { ZoneReportViewModelDto } from \"models/ZoneReportViewModelDto\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ZoneReportUpdated } from \"resources/plan-report-header/ZoneReportUpdated\";\r\n\r\n@autoinject\r\nexport class ZoneReportEdit {\r\n reportid: number;\r\n zoneReport: ZoneReportViewModelDto;\r\n isSaving = false;\r\n isSubmitting = false;\r\n isCancelling = false;\r\n afterSave: (() => Promise)[] = [];\r\n\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any = {};\r\n subscription: Subscription;\r\n constructor(public service: ZonePlanReportService, public signalr: SignalrWrapper, public router: AppRouter, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"ZoneReportUpdated\": this.onZoneReportUpdated,\r\n \"ZoneReportUpdateFailed\": this.onZoneReportUpdateFailed,\r\n \"ReportSubmitted\": this.onReportSubmitted,\r\n \"ReportSubmitFailed\": this.onReportSubmitFailed\r\n };\r\n }\r\n\r\n activate(params: { reportid: number }) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(ZoneReportUpdated, _ => this.loadReport(1));\r\n await this.loadReport(1);\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded: number) {\r\n /*\r\n Calls `updateReportLastPeriodFromModel()` for a single time\r\n when the report status is `Report Not Submitted`.\r\n\r\n `updateReportLastPeriodFromModel()` automatically calls `loadReport()`\r\n which causes the circular calling.\r\n */\r\n if( window.localStorage && lastPeriodValuesUpdateNeeded === 1 && this.zoneReport.reportStatus !== ReportStatus.Submitted ) {\r\n if( !window.localStorage.getItem('firstLoad') ) {\r\n this.service.updateReportLastPeriodFromModel(this.reportid);\r\n window.localStorage['firstLoad'] = true;\r\n }\r\n else {\r\n window.localStorage.removeItem('firstLoad');\r\n }\r\n };\r\n }\r\n\r\n async loadReport(lastPeriodValuesUpdateNeeded: number) {\r\n const dto = await this.service.getReport(this.reportid);\r\n this.zoneReport = dto;\r\n this.setInitialData();\r\n this.SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getReportData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getReportData(): ReportData {\r\n return new ReportData(\r\n this.makeMemberData(this.zoneReport.associateMemberData),\r\n this.makeMemberData(this.zoneReport.preliminaryMemberData),\r\n this.makeMemberData(this.zoneReport.supporterMemberData),\r\n this.makeMemberData(this.zoneReport.memberMemberData),\r\n this.makeUnitOrganizationData(this.zoneReport.dawahUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.organizationUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.ymbUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.ymsUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.lmUnitOrganizationData),\r\n this.makeMeetingProgramData(this.zoneReport.workerMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.cmsMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.smMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.memberMeetingProgramData),\r\n this.makeDawahProgramData(this.zoneReport.dawahMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.stateLeaderMeetingProgramData),\r\n this.makeDawahProgramData(this.zoneReport.stateOutingMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.iftarMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.learningMeetingProgramData),\r\n this.makeDawahProgramData(this.zoneReport.socialDawahMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.dawahGroupMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.nextGMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.tafsirMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.unitMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.bbqMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.gatheringMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.familyVisitMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.eidReunionMeetingProgramData),\r\n this.makeMeetingProgramData(this.zoneReport.otherMeetingProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.groupStudyTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.studyCircleForAssociateMemberTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.studyCircleTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.practiceDarsTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.stateLearningCampTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.quranStudyTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.hadithTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.quranClassTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.weekendIslamicSchoolTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.memorizingAyatTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.memorizingHadithTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.memorizingDoaTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.stateLearningSessionTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.stateQiyamulLailTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.zoneReport.otherTeachingLearningProgramData),\r\n this.makeMaterialData(this.zoneReport.bookSaleMaterialData),\r\n this.makeMaterialData(this.zoneReport.bookDistributionMaterialData),\r\n this.makeMaterialData(this.zoneReport.vhsSaleMaterialData),\r\n this.makeMaterialData(this.zoneReport.vhsDistributionMaterialData),\r\n this.makeMaterialData(this.zoneReport.emailDistributionMaterialData),\r\n this.makeMaterialData(this.zoneReport.ipdcLeafletDistributionMaterialData),\r\n this.makeMaterialData(this.zoneReport.otherSaleMaterialData),\r\n this.makeMaterialData(this.zoneReport.otherDistributionMaterialData),\r\n this.makeLibraryStockData(this.zoneReport.bookLibraryStockData),\r\n this.makeLibraryStockData(this.zoneReport.vhsLibraryStockData),\r\n this.makeLibraryStockData(this.zoneReport.otherLibraryStockData),\r\n this.makeFinanceData(this.zoneReport.baitulMalFinanceData),\r\n this.makeFinanceData(this.zoneReport.aDayMasjidProjectFinanceData),\r\n this.makeFinanceData(this.zoneReport.masjidTableBankFinanceData),\r\n this.makeSocialWelfareData(this.zoneReport.qardeHasanaSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.patientVisitSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.socialVisitSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.transportSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.shiftingSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.shoppingSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.foodDistributionSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.cleanUpAustraliaSocialWelfareData),\r\n this.makeSocialWelfareData(this.zoneReport.otherSocialWelfareData),\r\n this.zoneReport.comment\r\n );\r\n }\r\n\r\n save = async () => {\r\n try {\r\n await this.service.updateReport(this.zoneReport.organization.id, this.reportid, this.getReportData());\r\n } catch (error) {\r\n toastr.error(error, \"Error Saving Report\");\r\n return;\r\n }\r\n this.isSaving = true;\r\n toastr.success(\"Report Saved\");\r\n }\r\n\r\n private makeMemberData(dto: MemberData): MemberData {\r\n return new MemberData(dto.nameAndContactNumber, dto.action, dto.lastPeriod, \r\n dto.upgradeTarget, dto.thisPeriod, dto.increased, dto.decreased, \r\n dto.comment, dto.personalContact);\r\n }\r\n\r\n private makeUnitOrganizationData(dto: UnitOrganizationData): UnitOrganizationData {\r\n return new UnitOrganizationData(\r\n dto.action,\r\n dto.lastPeriod, \r\n dto.upgradeTarget,\r\n dto.thisPeriod,\r\n dto.increased,\r\n dto.decreased, \r\n dto.comment,\r\n );\r\n }\r\n\r\n private makeMeetingProgramData(dto: MeetingProgramData) {\r\n return new MeetingProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeTeachingLearningProgramData(dto: TeachingLearningProgramData) {\r\n return new TeachingLearningProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeDawahProgramData(dto: DawahProgramData) {\r\n return new DawahProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeMaterialData(dto: MaterialData) {\r\n return new MaterialData(dto.target, dto.dateAndAction, dto.actual, dto.comment);\r\n }\r\n\r\n private makeLibraryStockData(dto: LibraryStockData) {\r\n return new LibraryStockData(dto.lastPeriod, dto.thisPeriod, dto.increased, dto.decreased, dto.comment);\r\n }\r\n\r\n private makeFinanceData(dto: FinanceData) {\r\n return new FinanceData(dto.workerPromiseLastPeriod, dto.lastPeriod,dto.workerPromiseIncreaseTarget, dto.workerPromiseIncreased, dto.workerPromiseDecreased, \r\n dto.workerPromiseThisPeriod, dto.otherSourceIncreaseTarget, dto.totalIncreaseTarget, dto.collection, dto.expense, dto.nisabPaidToCentral, \r\n dto.balance, dto.comment, dto.action, dto.otherSourceAction);\r\n }\r\n\r\n private makeSocialWelfareData(dto: SocialWelfareData) {\r\n return new SocialWelfareData(dto.target, dto.dateAndAction, dto.actual, dto.comment);\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getReportData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadReport(0);\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canSubmit() {\r\n return !this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n onZoneReportUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n await this.loadReport(0);\r\n if(this.afterSave.length === 0) return;\r\n await this.afterSave.pop()();\r\n }\r\n\r\n onZoneReportUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Report\");\r\n if(this.afterSave.length === 0) return;\r\n this.afterSave.pop();\r\n }\r\n\r\n saveAndSubmitReport = async () => {\r\n if (this.isDirty)\r\n {\r\n await this.save();\r\n this.afterSave.push(this.submitReport);\r\n return;\r\n } \r\n await this.submitReport();\r\n }\r\n\r\n submitReport = async () => {\r\n try {\r\n await this.service.submitReport(this.zoneReport.organization.id, this.reportid);\r\n } catch(error) {\r\n toastr.error(error, \"Error Submitting Report\");\r\n }\r\n this.isSubmitting = true;\r\n }\r\n\r\n onReportSubmitted = (id: number) => {\r\n this.isSubmitting = false;\r\n toastr.success(\"Report Submitted\");\r\n this.router.navigate(`zone-report-view/${id}`);\r\n }\r\n\r\n onReportSubmitFailed = (e: {$values: string[]}) => {\r\n this.isSubmitting = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Submitting Report\");\r\n } \r\n \r\n get headerData() {\r\n if(!this.zoneReport) return undefined;\r\n return new PlanReportHeaderData(\"Zone Report\", this.reportid, this.zoneReport.description, this.zoneReport.reportStatus, this.zoneReport.organization, this.zoneReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport * as toastr from \"toastr\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { MemberReportData } from \"models/MemberReportData\";\r\nimport { UnitOrganizationReportData } from \"models/UnitOrganizationReportData\";\r\nimport { LibraryStockData } from \"models/LibraryStockData\";\r\nimport { FinanceReportData } from \"models/FinanceReportData\";\r\nimport { FinanceData } from \"models/FinanceData\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { LibraryStockReportData } from \"models/LibraryStockReportData\";\r\nimport { ReportLastPeriodUpdateData } from \"models/ReportLastPeriodUpdateData\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { ZoneReportViewModelDto } from \"models/ZoneReportViewModelDto\";\r\n\r\n@autoinject\r\nexport class ZoneReportLastPeriodEdit {\r\n reportid: number;\r\n zoneReport: ZoneReportViewModelDto;\r\n isSaving = false;\r\n isCancelling = false;\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any = {};\r\n constructor(public service: ZonePlanReportService, public signalr: SignalrWrapper, public router: AppRouter) {\r\n this.signalreventhandlers = {\r\n \"ZoneReportUpdated\": this.onZoneReportUpdated,\r\n \"ZoneReportUpdateFailed\": this.onZoneReportUpdateFailed,\r\n };\r\n }\r\n\r\n activate(params: { reportid: number }) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n await this.loadReport();\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n }\r\n\r\n async loadReport() {\r\n this.zoneReport = await this.service.getReport(this.reportid);\r\n this.setInitialData();\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getReportLastPeriodUpdateData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getReportLastPeriodUpdateData(): ReportLastPeriodUpdateData {\r\n return new ReportLastPeriodUpdateData(\r\n this.makeMemberData(this.zoneReport.memberMemberData),\r\n this.makeMemberData(this.zoneReport.associateMemberData),\r\n this.makeMemberData(this.zoneReport.preliminaryMemberData),\r\n this.makeMemberData(this.zoneReport.supporterMemberData),\r\n this.makeUnitOrganizationData(this.zoneReport.dawahUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.organizationUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.ymbUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.ymsUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.zoneReport.lmUnitOrganizationData),\r\n this.makeFinanceReportData(this.zoneReport.baitulMalFinanceData),\r\n this.makeFinanceReportData(this.zoneReport.aDayMasjidProjectFinanceData),\r\n this.makeFinanceReportData(this.zoneReport.masjidTableBankFinanceData),\r\n this.makeLibraryStockReportData(this.zoneReport.bookLibraryStockData),\r\n this.makeLibraryStockReportData(this.zoneReport.vhsLibraryStockData),\r\n this.makeLibraryStockReportData(this.zoneReport.otherLibraryStockData)\r\n );\r\n }\r\n\r\n save = async () => {\r\n if (!this.isDirty) return;\r\n try {\r\n await this.service.updateReportLastPeriod(this.zoneReport.organization.id, this.reportid, this.getReportLastPeriodUpdateData());\r\n } catch (error) {\r\n toastr.error(error, \"Error Saving Report\");\r\n return;\r\n }\r\n this.isSaving = true;\r\n } \r\n\r\n private makeMemberData(original: MemberReportData): MemberReportData {\r\n return new MemberReportData(original.lastPeriod, original.increased, original.decreased, original.comment, original.personalContact);\r\n }\r\n\r\n private makeUnitOrganizationData(original: UnitOrganizationReportData): UnitOrganizationReportData {\r\n return new UnitOrganizationReportData(original.lastPeriod, original.increased, original.decreased, original.comment);\r\n }\r\n\r\n private makeLibraryStockReportData(original: LibraryStockData): LibraryStockReportData {\r\n return new LibraryStockReportData(original.lastPeriod, original.increased, original.decreased, original.comment);\r\n }\r\n\r\n private makeFinanceReportData(original: FinanceData): FinanceReportData {\r\n return new FinanceReportData(original.workerPromiseLastPeriod,\r\n original.lastPeriod,\r\n original.workerPromiseIncreased,\r\n original.workerPromiseDecreased,\r\n original.collection,\r\n original.expense,\r\n original.nisabPaidToCentral,\r\n original.comment);\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getReportLastPeriodUpdateData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadReport();\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving;\r\n }\r\n\r\n onZoneReportUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n toastr.success(\"Report Saved\");\r\n await this.loadReport();\r\n }\r\n\r\n onZoneReportUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Report\");\r\n }\r\n\r\n get headerData() {\r\n if(!this.zoneReport) return undefined;\r\n return new PlanReportHeaderData(\"Zone Report\", this.reportid, this.zoneReport.description, this.zoneReport.reportStatus, this.zoneReport.organization, this.zoneReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { ZoneReportViewModelDto } from \"models/ZoneReportViewModelDto\";\r\nimport { ZonePlanReportService } from \"services/ZonePlanReportService\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ReportStatus } from \"models/ReportStatus\";\r\nimport { ZoneReportUpdated } from \"resources/plan-report-header/ZoneReportUpdated\";\r\n\r\n@autoinject\r\nexport class ZoneReportView {\r\n reportid: number;\r\n zoneReport: ZoneReportViewModelDto;\r\n isDownloadingList = false;\r\n isDownloadingDetail = false;\r\n isResettingPlan = false;\r\n isResettingReport = false;\r\n isRecalculatingPlan = false;\r\n isRecalculatingYPlanFromQ = false;\r\n isRecalculatingReport = false;\r\n isRecalculatingYReportFromQ = false;\r\n subscription: Subscription;\r\n constructor(public service: ZonePlanReportService, public ea?: EventAggregator) { }\r\n\r\n activate(params: {reportid: number}) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n this.subscription = this.ea.subscribe(ZoneReportUpdated, _ => this.loadReport(1));\r\n await this.loadReport(1);\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n\r\n SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded: number) {\r\n /*\r\n Calls `updateReportLastPeriodFromModel()` for a single time\r\n when the report status is `Report Not Submitted`.\r\n\r\n `updateReportLastPeriodFromModel()` automatically calls `loadReport()`\r\n which causes the circular calling.\r\n */\r\n if( window.localStorage && lastPeriodValuesUpdateNeeded === 1 && this.zoneReport.reportStatus !== ReportStatus.Submitted ) {\r\n if( !window.localStorage.getItem('firstLoad') ) {\r\n this.service.updateReportLastPeriodFromModel(this.reportid);\r\n window.localStorage['firstLoad'] = true;\r\n }\r\n else {\r\n window.localStorage.removeItem('firstLoad');\r\n }\r\n };\r\n }\r\n\r\n async getZoneReport(lastPeriodValuesUpdateNeeded: number) {\r\n this.zoneReport = await this.service.getReport(this.reportid);\r\n this.SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n async loadReport(lastPeriodValuesUpdateNeeded: number) {\r\n this.getZoneReport(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n get headerData() {\r\n if(!this.zoneReport) return undefined;\r\n return new PlanReportHeaderData(\"Zone Report\", this.reportid, this.zoneReport.description, this.zoneReport.reportStatus, this.zoneReport.organization, this.zoneReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","export default {\r\n debug: false,\r\n testing: false,\r\n auth0: {\r\n base: 'https://report.ipdc.org.au',\r\n clientId: '8VngkVb51gkkBZvitSordBN4l8rIOwet',\r\n domain: 'dev-nuzfq563.au.auth0.com',\r\n audience: \"http://35.201.0.39/\",\r\n returnTo: \"https://report.ipdc.org.au\"\r\n },\r\n apiBaseUrl: \"https://report.ipdc.org.au\"\r\n};\r\n"],"sourceRoot":""}