From 68717de74fa057d09fe440490dc6318fe2e5cbdc Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Sun, 8 Aug 2021 13:28:27 +0530 Subject: [PATCH] refractor:update dateformats and language (#1292) --- .../create-charge/create-charge.component.ts | 7 +++- .../edit-charge/edit-charge.component.ts | 38 ++++++++++--------- .../create-fixed-deposit-product.component.ts | 18 +++++++-- .../edit-fixed-deposit-product.component.ts | 18 +++++++-- ...duct-interest-rate-chart-step.component.ts | 22 +++++++++-- .../create-floating-rate.component.ts | 11 ++++-- .../edit-floating-rate.component.ts | 13 ++++--- .../create-loan-product.component.ts | 18 +++++++-- .../edit-loan-product.component.ts | 18 +++++++-- .../loan-product-details-step.component.ts | 15 +++++++- .../create-tax-component.component.ts | 11 ++++-- .../edit-tax-component.component.ts | 13 ++++--- .../create-tax-group.component.ts | 18 +++++---- .../edit-tax-group.component.ts | 18 +++++---- src/app/products/products.service.ts | 17 ++++++--- ...ate-recurring-deposit-product.component.ts | 18 +++++++-- ...dit-recurring-deposit-product.component.ts | 18 +++++++-- ...duct-interest-rate-chart-step.component.ts | 22 +++++++++-- .../create-saving-product.component.ts | 18 +++++++-- .../edit-saving-product.component.ts | 19 ++++++++-- .../create-dividend.component.ts | 12 ++++-- .../create-share-product.component.ts | 18 +++++++-- .../edit-share-product.component.ts | 18 +++++++-- ...are-product-market-price-step.component.ts | 24 +++++++++--- 24 files changed, 316 insertions(+), 106 deletions(-) diff --git a/src/app/products/charges/create-charge/create-charge.component.ts b/src/app/products/charges/create-charge/create-charge.component.ts index c0363006c..34419146d 100644 --- a/src/app/products/charges/create-charge/create-charge.component.ts +++ b/src/app/products/charges/create-charge/create-charge.component.ts @@ -6,6 +6,7 @@ import { DatePipe } from '@angular/common'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** * Create charge component. @@ -43,12 +44,14 @@ export class CreateChargeComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {Router} router Router for navigation. * @param {DatePipe} datePipe Date Pipe to format date. + * @param {SettingsService} settingsService Settings Service */ constructor(private formBuilder: FormBuilder, private productsService: ProductsService, private route: ActivatedRoute, private router: Router, - private datePipe: DatePipe) { + private datePipe: DatePipe, + private settingsService: SettingsService) { this.route.data.subscribe((data: { chargesTemplate: any }) => { this.chargesTemplateData = data.chargesTemplate; this.incomeAndLiabilityAccountData = data.chargesTemplate.incomeOrLiabilityAccountOptions.incomeAccountOptions @@ -216,7 +219,7 @@ export class CreateChargeComponent implements OnInit { }); const charge = this.chargeForm.getRawValue(); // TODO: Update once language and date settings are setup - charge.locale = 'en'; + charge.locale = this.settingsService.language.code; charge.monthDayFormat = monthDayFormat; delete charge.addFeeFrequency; if (!charge.taxGroupId) { diff --git a/src/app/products/charges/edit-charge/edit-charge.component.ts b/src/app/products/charges/edit-charge/edit-charge.component.ts index bc2e32790..49b214f0b 100644 --- a/src/app/products/charges/edit-charge/edit-charge.component.ts +++ b/src/app/products/charges/edit-charge/edit-charge.component.ts @@ -5,6 +5,8 @@ import { ActivatedRoute, Router } from '@angular/router'; /** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; + /** * Edit Charge component. @@ -43,19 +45,19 @@ export class EditChargeComponent implements OnInit { /** Show Fee Options. */ showFeeOptions = false; - /** - * Retrieves the charge data from `resolve`. - * @param {ProductsService} productsService Products Service. - * @param {FormBuilder} formBuilder Form Builder. - * @param {ActivatedRoute} route Activated Route. - * @param {Router} router Router for navigation. - */ - constructor( - private productsService: ProductsService, - private formBuilder: FormBuilder, - private route: ActivatedRoute, - private router: Router, - ) { + /** + * Retrieves the charge data from `resolve`. + * @param {ProductsService} productsService Products Service. + * @param {FormBuilder} formBuilder Form Builder. + * @param {ActivatedRoute} route Activated Route. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service + */ + constructor(private productsService: ProductsService, + private formBuilder: FormBuilder, + private route: ActivatedRoute, + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { chargesTemplate: any }) => { this.chargeData = data.chargesTemplate; }); @@ -71,7 +73,7 @@ export class EditChargeComponent implements OnInit { editChargeForm() { this.chargeForm = this.formBuilder.group({ 'name': [this.chargeData.name, Validators.required], - 'chargeAppliesTo': [{value: this.chargeData.chargeAppliesTo.id, disabled: true}, Validators.required], + 'chargeAppliesTo': [{ value: this.chargeData.chargeAppliesTo.id, disabled: true }, Validators.required], 'currencyCode': [this.chargeData.currency.code, Validators.required], 'amount': [this.chargeData.amount, Validators.required], 'active': [this.chargeData.active], @@ -112,9 +114,9 @@ export class EditChargeComponent implements OnInit { } } if (this.chargeData.taxGroup) { - this.chargeForm.addControl('taxGroupId', this.formBuilder.control({value: this.chargeData.taxGroup.id, disabled: true}, Validators.required)); + this.chargeForm.addControl('taxGroupId', this.formBuilder.control({ value: this.chargeData.taxGroup.id, disabled: true }, Validators.required)); } else { - this.chargeForm.addControl('taxGroupId', this.formBuilder.control({value: '?', disabled: true})); + this.chargeForm.addControl('taxGroupId', this.formBuilder.control({ value: '?', disabled: true })); } } @@ -137,12 +139,12 @@ export class EditChargeComponent implements OnInit { */ submit() { const charges = this.chargeForm.value; - charges.locale = 'en'; + charges.locale = this.settingsService.language.code; charges.chargePaymentMode = this.chargeData.chargePaymentMode.id; this.productsService.updateCharge(this.chargeData.id.toString(), charges) .subscribe((response: any) => { this.router.navigate(['../'], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/fixed-deposit-products/create-fixed-deposit-product/create-fixed-deposit-product.component.ts b/src/app/products/fixed-deposit-products/create-fixed-deposit-product/create-fixed-deposit-product.component.ts index a5cf5ff13..453a69cb3 100644 --- a/src/app/products/fixed-deposit-products/create-fixed-deposit-product/create-fixed-deposit-product.component.ts +++ b/src/app/products/fixed-deposit-products/create-fixed-deposit-product/create-fixed-deposit-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { FixedDepositProductDetailsStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-details-step/fixed-deposit-product-details-step.component'; import { FixedDepositProductCurrencyStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-currency-step/fixed-deposit-product-currency-step.component'; import { FixedDepositProductTermsStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component'; @@ -9,7 +11,9 @@ import { FixedDepositProductInterestRateChartStepComponent } from '../fixed-depo import { FixedDepositProductChargesStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-charges-step/fixed-deposit-product-charges-step.component'; import { FixedDepositProductAccountingStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-accounting-step/fixed-deposit-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-create-fixed-deposit-product', @@ -29,9 +33,17 @@ export class CreateFixedDepositProductComponent implements OnInit { fixedDepositProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { fixedDepositProductsTemplate: any }) => { this.fixedDepositProductsTemplate = data.fixedDepositProductsTemplate; }); @@ -92,13 +104,13 @@ export class CreateFixedDepositProductComponent implements OnInit { const fixedDepositProduct = { ...this.fixedDepositProduct, charges: this.fixedDepositProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for depositAmount + locale: this.settingsService.language.code // locale required for depositAmount }; delete fixedDepositProduct.advancedAccountingRules; this.productsService.createFixedDepositProduct(fixedDepositProduct) .subscribe((response: any) => { this.router.navigate(['../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/fixed-deposit-products/edit-fixed-deposit-product/edit-fixed-deposit-product.component.ts b/src/app/products/fixed-deposit-products/edit-fixed-deposit-product/edit-fixed-deposit-product.component.ts index 40df769e5..fb15227a6 100644 --- a/src/app/products/fixed-deposit-products/edit-fixed-deposit-product/edit-fixed-deposit-product.component.ts +++ b/src/app/products/fixed-deposit-products/edit-fixed-deposit-product/edit-fixed-deposit-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { FixedDepositProductDetailsStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-details-step/fixed-deposit-product-details-step.component'; import { FixedDepositProductCurrencyStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-currency-step/fixed-deposit-product-currency-step.component'; import { FixedDepositProductTermsStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component'; @@ -9,7 +11,9 @@ import { FixedDepositProductInterestRateChartStepComponent } from '../fixed-depo import { FixedDepositProductChargesStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-charges-step/fixed-deposit-product-charges-step.component'; import { FixedDepositProductAccountingStepComponent } from '../fixed-deposit-product-stepper/fixed-deposit-product-accounting-step/fixed-deposit-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-edit-fixed-deposit-product', @@ -29,9 +33,17 @@ export class EditFixedDepositProductComponent implements OnInit { fixedDepositProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service + */ + constructor(private route: ActivatedRoute, - private productsService: ProductsService, - private router: Router) { + private productsService: ProductsService, + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { fixedDepositProductAndTemplate: any }) => { this.fixedDepositProductsTemplate = data.fixedDepositProductAndTemplate; }); @@ -100,7 +112,7 @@ export class EditFixedDepositProductComponent implements OnInit { const fixedDepositProduct = { ...this.fixedDepositProduct, charges: this.fixedDepositProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for depositAmount + locale: this.settingsService.language.code // locale required for depositAmount }; if (!fixedDepositProduct.description) { fixedDepositProduct.description = ''; diff --git a/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-interest-rate-chart-step/fixed-deposit-product-interest-rate-chart-step.component.ts b/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-interest-rate-chart-step/fixed-deposit-product-interest-rate-chart-step.component.ts index 1fe020f34..0b62c2e0b 100644 --- a/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-interest-rate-chart-step/fixed-deposit-product-interest-rate-chart-step.component.ts +++ b/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-interest-rate-chart-step/fixed-deposit-product-interest-rate-chart-step.component.ts @@ -1,17 +1,23 @@ +/** Angular Imports */ import { Component, OnInit, Input } from '@angular/core'; import { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms'; import { DatePipe } from '@angular/common'; import { MatDialog } from '@angular/material/dialog'; import { animate, state, style, transition, trigger } from '@angular/animations'; +/** Custom Components */ import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component'; import { DepositProductIncentiveFormDialogComponent } from 'app/products/deposit-product-incentive-form-dialog/deposit-product-incentive-form-dialog.component'; import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component'; +/** Dialog Components */ import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base'; import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base'; +/** Custom Services */ +import { SettingsService } from 'app/settings/settings.service'; + @Component({ selector: 'mifosx-fixed-deposit-product-interest-rate-chart-step', templateUrl: './fixed-deposit-product-interest-rate-chart-step.component.html', @@ -50,9 +56,17 @@ export class FixedDepositProductInterestRateChartStepComponent implements OnInit chartDetailData: any = []; chartsDetail: any[] = []; + /** + * @param {FormBuilder} formBuilder Form Builder. + * @param {MatDialog} dialog Dialog reference. + * @param {DatePipe} datePipe Date Pipe. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private formBuilder: FormBuilder, public dialog: MatDialog, - private datePipe: DatePipe) { + private datePipe: DatePipe, + private settingsService: SettingsService) { this.createFixedDepositProductInterestRateChartForm(); } @@ -284,7 +298,7 @@ export class FixedDepositProductInterestRateChartStepComponent implements OnInit getData(formType: string, values?: any) { switch (formType) { - case 'Slab': return { title: 'Slab', formfields: this.getSlabFormfields(values) }; + case 'Slab': return { title: 'Slab', formfields: this.getSlabFormfields(values) }; case 'Incentive': return { values, chartTemplate: this.fixedDepositProductsTemplate.chartTemplate }; } } @@ -349,8 +363,8 @@ export class FixedDepositProductInterestRateChartStepComponent implements OnInit get fixedDepositProductInterestRateChart() { // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; - const locale = 'en'; + const locale = this.settingsService.language.code; + const dateFormat = this.settingsService.dateFormat; const fixedDepositProductInterestRateChart = this.fixedDepositProductInterestRateChartForm.value; for (const chart of fixedDepositProductInterestRateChart.charts) { chart.dateFormat = dateFormat; diff --git a/src/app/products/floating-rates/create-floating-rate/create-floating-rate.component.ts b/src/app/products/floating-rates/create-floating-rate/create-floating-rate.component.ts index f74a419d2..506d44907 100644 --- a/src/app/products/floating-rates/create-floating-rate/create-floating-rate.component.ts +++ b/src/app/products/floating-rates/create-floating-rate/create-floating-rate.component.ts @@ -10,6 +10,7 @@ import { MatTableDataSource } from '@angular/material/table'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** Custom Components */ import { FloatingRatePeriodDialogComponent } from '../floating-rate-period-dialog/floating-rate-period-dialog.component'; @@ -36,7 +37,7 @@ export class CreateFloatingRateComponent implements OnInit { /** Data source for floating rate periods table. */ dataSource: MatTableDataSource; /** Date Format. */ - dateFormat = 'dd MMMM yyyy'; + dateFormat = this.settingsService.dateFormat; /** Paginator for floating rate periods table. */ @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; @@ -50,13 +51,15 @@ export class CreateFloatingRateComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {DatePipe} datePipe Date Pipe. * @param {MatDialog} dialog Dialog reference. + * @param {SettingsService} settingsService Settings Service. */ constructor(private router: Router, private formBuilder: FormBuilder, private productsService: ProductsService, private route: ActivatedRoute, private datePipe: DatePipe, - private dialog: MatDialog) { } + private dialog: MatDialog, + private settingsService: SettingsService) { } /** * Sets the floating rate periods table. @@ -111,7 +114,7 @@ export class CreateFloatingRateComponent implements OnInit { fromDate: this.datePipe.transform(response.fromDate, this.dateFormat), interestRate: response.interestRate, isDifferentialToBaseLendingRate: response.isDifferentialToBaseLendingRate, - locale: 'en', + locale: this.settingsService.language.code, dateFormat: this.dateFormat }); this.dataSource.connect().next(this.floatingRatePeriodsData); @@ -137,7 +140,7 @@ export class CreateFloatingRateComponent implements OnInit { fromDate: this.datePipe.transform(response.fromDate, this.dateFormat), interestRate: response.interestRate, isDifferentialToBaseLendingRate: response.isDifferentialToBaseLendingRate, - locale: 'en', + locale: this.settingsService.language.code, dateFormat: this.dateFormat }; this.dataSource.connect().next(this.floatingRatePeriodsData); diff --git a/src/app/products/floating-rates/edit-floating-rate/edit-floating-rate.component.ts b/src/app/products/floating-rates/edit-floating-rate/edit-floating-rate.component.ts index 9d729c8b2..0442ae321 100644 --- a/src/app/products/floating-rates/edit-floating-rate/edit-floating-rate.component.ts +++ b/src/app/products/floating-rates/edit-floating-rate/edit-floating-rate.component.ts @@ -10,6 +10,7 @@ import { MatTableDataSource } from '@angular/material/table'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** Custom Components */ import { FloatingRatePeriodDialogComponent } from '../floating-rate-period-dialog/floating-rate-period-dialog.component'; @@ -38,7 +39,7 @@ export class EditFloatingRateComponent implements OnInit { /** Data source for floating rate periods table. */ dataSource: MatTableDataSource; /** Date Format. */ - dateFormat = 'dd MMMM yyyy'; + dateFormat = this.settingsService.dateFormat; /** Floating Rate Period Data. */ floatingRatePeriodsData: any[] = []; @@ -55,13 +56,15 @@ export class EditFloatingRateComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {DatePipe} datePipe Date Pipe. * @param {MatDialog} dialog Dialog reference. + * @param {SettingsService} settingsService Settings Service. */ constructor(private router: Router, private formBuilder: FormBuilder, private productsService: ProductsService, private route: ActivatedRoute, private datePipe: DatePipe, - private dialog: MatDialog) { + private dialog: MatDialog, + private settingsService: SettingsService) { this.route.data.subscribe((data: { floatingRate: any }) => { this.floatingRateData = data.floatingRate; this.floatingRatePeriodsData = data.floatingRate.ratePeriods ? data.floatingRate.ratePeriods : []; @@ -109,7 +112,7 @@ export class EditFloatingRateComponent implements OnInit { fromDate: this.datePipe.transform(response.fromDate, this.dateFormat), interestRate: response.interestRate, isDifferentialToBaseLendingRate: response.isDifferentialToBaseLendingRate, - locale: 'en', + locale: this.settingsService.language.code, dateFormat: this.dateFormat }); this.dataSource.connect().next(this.floatingRatePeriodsData); @@ -136,7 +139,7 @@ export class EditFloatingRateComponent implements OnInit { fromDate: this.datePipe.transform(response.fromDate, this.dateFormat), interestRate: response.interestRate, isDifferentialToBaseLendingRate: response.isDifferentialToBaseLendingRate, - locale: 'en', + locale: this.settingsService.language.code, dateFormat: this.dateFormat }; this.dataSource.connect().next(this.floatingRatePeriodsData); @@ -174,7 +177,7 @@ export class EditFloatingRateComponent implements OnInit { floatingRatePeriod.modifiedBy = undefined; floatingRatePeriod.createdBy = undefined; floatingRatePeriod.isActive = undefined; - floatingRatePeriod.locale = 'en'; + floatingRatePeriod.locale = this.settingsService.language.code; floatingRatePeriod.dateFormat = this.dateFormat; floatingRatePeriod.fromDate = this.datePipe.transform(floatingRatePeriod.fromDate, this.dateFormat); }); diff --git a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts index bf6bf549a..2aafc9f79 100644 --- a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts +++ b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { LoanProductDetailsStepComponent } from '../loan-product-stepper/loan-product-details-step/loan-product-details-step.component'; import { LoanProductCurrencyStepComponent } from '../loan-product-stepper/loan-product-currency-step/loan-product-currency-step.component'; import { LoanProductTermsStepComponent } from '../loan-product-stepper/loan-product-terms-step/loan-product-terms-step.component'; @@ -8,7 +10,9 @@ import { LoanProductSettingsStepComponent } from '../loan-product-stepper/loan-p import { LoanProductChargesStepComponent } from '../loan-product-stepper/loan-product-charges-step/loan-product-charges-step.component'; import { LoanProductAccountingStepComponent } from '../loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-create-loan-product', @@ -27,8 +31,16 @@ export class CreateLoanProductComponent implements OnInit { loanProductsTemplate: any; accountingRuleData = ['None', 'Cash', 'Accrual (periodic)', 'Accrual (upfront)']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Product Service. + * @param {SettingsService} settingsService Settings Service + * @param {Router} router Router for navigation. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, + private settingsService: SettingsService, private router: Router) { this.route.data.subscribe((data: { loanProductsTemplate: any }) => { this.loanProductsTemplate = data.loanProductsTemplate; @@ -81,19 +93,19 @@ export class CreateLoanProductComponent implements OnInit { submit() { // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; const loanProduct = { ...this.loanProduct, charges: this.loanProduct.charges.map((charge: any) => ({ id: charge.id })), dateFormat, - locale: 'en' + locale: this.settingsService.language.code }; delete loanProduct.allowAttributeConfiguration; delete loanProduct.advancedAccountingRules; this.productsService.createLoanProduct(loanProduct) .subscribe((response: any) => { this.router.navigate(['../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts index 21d25c1a0..9d43097a9 100644 --- a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts +++ b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { LoanProductDetailsStepComponent } from '../loan-product-stepper/loan-product-details-step/loan-product-details-step.component'; import { LoanProductCurrencyStepComponent } from '../loan-product-stepper/loan-product-currency-step/loan-product-currency-step.component'; import { LoanProductTermsStepComponent } from '../loan-product-stepper/loan-product-terms-step/loan-product-terms-step.component'; @@ -8,7 +10,9 @@ import { LoanProductSettingsStepComponent } from '../loan-product-stepper/loan-p import { LoanProductChargesStepComponent } from '../loan-product-stepper/loan-product-charges-step/loan-product-charges-step.component'; import { LoanProductAccountingStepComponent } from '../loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-edit-loan-product', @@ -27,8 +31,16 @@ export class EditLoanProductComponent implements OnInit { loanProductAndTemplate: any; accountingRuleData = ['None', 'Cash', 'Accrual (periodic)', 'Accrual (upfront)']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Product Service. + * @param {SettingsService} settingsService Settings Service + * @param {Router} router Router for navigation. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, + private settingsService: SettingsService, private router: Router) { this.route.data.subscribe((data: { loanProductAndTemplate: any }) => { this.loanProductAndTemplate = data.loanProductAndTemplate; @@ -89,19 +101,19 @@ export class EditLoanProductComponent implements OnInit { submit() { // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; const loanProduct = { ...this.loanProduct, charges: this.loanProduct.charges.map((charge: any) => ({ id: charge.id })), dateFormat, - locale: 'en' + locale: this.settingsService.language.code }; delete loanProduct.allowAttributeConfiguration; delete loanProduct.advancedAccountingRules; this.productsService.updateLoanProduct(this.loanProductAndTemplate.id, loanProduct) .subscribe((response: any) => { this.router.navigate(['../../', response.resourceId], { relativeTo: this.route }); - }); + }); } diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-details-step/loan-product-details-step.component.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-details-step/loan-product-details-step.component.ts index 90bb8549b..cb0d488fb 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-details-step/loan-product-details-step.component.ts +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-details-step/loan-product-details-step.component.ts @@ -1,7 +1,11 @@ +/** Angular Imports */ import { Component, OnInit, Input } from '@angular/core'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { DatePipe } from '@angular/common'; +/** Custom Services */ +import { SettingsService } from 'app/settings/settings.service'; + @Component({ selector: 'mifosx-loan-product-details-step', templateUrl: './loan-product-details-step.component.html', @@ -18,8 +22,15 @@ export class LoanProductDetailsStepComponent implements OnInit { minDate = new Date(2000, 0, 1); maxDate = new Date(new Date().setFullYear(new Date().getFullYear() + 10)); + /** + * @param {FormBuilder} formBuilder Form Builder. + * @param {DatePipe} datePipe Date Pipe. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private formBuilder: FormBuilder, - private datePipe: DatePipe) { + private datePipe: DatePipe, + private settingsService: SettingsService) { this.createLoanProductDetailsForm(); } @@ -53,7 +64,7 @@ export class LoanProductDetailsStepComponent implements OnInit { const prevStartDate: Date = this.loanProductDetailsForm.value.startDate; const prevCloseDate: Date = this.loanProductDetailsForm.value.closeDate; // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; this.loanProductDetailsForm.patchValue({ startDate: this.datePipe.transform(prevStartDate, dateFormat) || '', closeDate: this.datePipe.transform(prevCloseDate, dateFormat) || '' diff --git a/src/app/products/manage-tax-components/create-tax-component/create-tax-component.component.ts b/src/app/products/manage-tax-components/create-tax-component/create-tax-component.component.ts index b05d7fbc0..750eb62a5 100644 --- a/src/app/products/manage-tax-components/create-tax-component/create-tax-component.component.ts +++ b/src/app/products/manage-tax-components/create-tax-component/create-tax-component.component.ts @@ -6,6 +6,7 @@ import { DatePipe } from '@angular/common'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** * Create Tax Component component. @@ -41,13 +42,15 @@ export class CreateTaxComponentComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {Router} router Router for navigation. * @param {DatePipe} datePipe Date Pipe to format date. + * @param {SettingsService} settingsService Settings Service. */ constructor(private formBuilder: FormBuilder, private productsService: ProductsService, private route: ActivatedRoute, private router: Router, - private datePipe: DatePipe) { - this.route.data.subscribe(( data: { taxComponentTemplate: any }) => { + private datePipe: DatePipe, + private settingsService: SettingsService) { + this.route.data.subscribe((data: { taxComponentTemplate: any }) => { this.taxComponentTemplateData = data.taxComponentTemplate; }); } @@ -114,12 +117,12 @@ export class CreateTaxComponentComponent implements OnInit { submit() { const prevStartDate: Date = this.taxComponentForm.value.startDate; // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; this.taxComponentForm.patchValue({ startDate: this.datePipe.transform(prevStartDate, dateFormat) }); const taxComponent = this.taxComponentForm.value; - taxComponent.locale = 'en'; + taxComponent.locale = this.settingsService.language.code; taxComponent.dateFormat = dateFormat; this.productsService.createTaxComponent(taxComponent).subscribe((response: any) => { this.router.navigate(['../', response.resourceId], { relativeTo: this.route }); diff --git a/src/app/products/manage-tax-components/edit-tax-component/edit-tax-component.component.ts b/src/app/products/manage-tax-components/edit-tax-component/edit-tax-component.component.ts index 7f26611db..9b7d2a186 100644 --- a/src/app/products/manage-tax-components/edit-tax-component/edit-tax-component.component.ts +++ b/src/app/products/manage-tax-components/edit-tax-component/edit-tax-component.component.ts @@ -6,6 +6,7 @@ import { DatePipe } from '@angular/common'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** * Edit tax component. @@ -31,12 +32,14 @@ export class EditTaxComponentComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {Router} router Router for navigation. * @param {DatePipe} datePipe Date Pipe to format date. + * @param {SettingsService} settingsService Settings Service. */ constructor(private formBuilder: FormBuilder, private productsService: ProductsService, private route: ActivatedRoute, private router: Router, - private datePipe: DatePipe) { + private datePipe: DatePipe, + private settingsService: SettingsService) { this.route.data.subscribe((data: { taxComponent: any }) => { this.taxComponentData = data.taxComponent; }); @@ -57,8 +60,8 @@ export class EditTaxComponentComponent implements OnInit { 'name': [this.taxComponentData.name, [Validators.required]], 'percentage': [this.taxComponentData.percentage, [Validators.required, Validators.pattern('^(0*[1-9][0-9]*(\\.[0-9]+)?|0+\\.[0-9]*[1-9][0-9]*)$'), Validators.max(100)]], 'startDate': [this.taxComponentData.startDate && new Date(this.taxComponentData.startDate)], - 'creditAccountType': [{value: this.taxComponentData.creditAccountType.value, disabled: true}], - 'creditAccount': [{value: this.taxComponentData.creditAccount.name, disabled: true}] + 'creditAccountType': [{ value: this.taxComponentData.creditAccountType.value, disabled: true }], + 'creditAccount': [{ value: this.taxComponentData.creditAccount.name, disabled: true }] }); } @@ -69,12 +72,12 @@ export class EditTaxComponentComponent implements OnInit { submit() { const prevStartDate: Date = this.taxComponentForm.value.startDate; // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; this.taxComponentForm.patchValue({ startDate: this.datePipe.transform(prevStartDate, dateFormat) }); const taxComponent = this.taxComponentForm.value; - taxComponent.locale = 'en'; + taxComponent.locale = this.settingsService.language.code; taxComponent.dateFormat = dateFormat; this.productsService.updateTaxComponent(this.taxComponentData.id, taxComponent).subscribe((response: any) => { this.router.navigate(['../../', response.resourceId], { relativeTo: this.route }); diff --git a/src/app/products/manage-tax-groups/create-tax-group/create-tax-group.component.ts b/src/app/products/manage-tax-groups/create-tax-group/create-tax-group.component.ts index 6a23e5c39..b32a17312 100644 --- a/src/app/products/manage-tax-groups/create-tax-group/create-tax-group.component.ts +++ b/src/app/products/manage-tax-groups/create-tax-group/create-tax-group.component.ts @@ -7,6 +7,7 @@ import { MatDialog } from '@angular/material/dialog'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** Dialog Components */ import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; @@ -48,13 +49,16 @@ export class CreateTaxGroupComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {Router} router Router for navigation. * @param {DatePipe} datePipe Date Pipe to format date. + * @param {MatDialog} dialog Dialog reference. + * @param {SettingsService} settingsService Settings Service. */ constructor(private formBuilder: FormBuilder, - private productsService: ProductsService, - private route: ActivatedRoute, - private router: Router, - private datePipe: DatePipe, - public dialog: MatDialog) { + private productsService: ProductsService, + private route: ActivatedRoute, + private router: Router, + private datePipe: DatePipe, + public dialog: MatDialog, + private settingsService: SettingsService) { this.route.data.subscribe((data: { taxGroupTemplate: any }) => { this.taxGroupTemplateData = data.taxGroupTemplate; this.taxComponentOptions = this.taxGroupTemplateData.taxComponents; @@ -163,8 +167,8 @@ export class CreateTaxGroupComponent implements OnInit { * if successful redirects to Tax Groups. */ submit() { - const dateFormat = 'yyyy-MM-dd'; - const locale = 'en'; + const locale = this.settingsService.language.code; + const dateFormat = this.settingsService.dateFormat; const taxGroup = { ...this.taxGroupForm.value, taxComponents: this.taxComponentsDataSource, diff --git a/src/app/products/manage-tax-groups/edit-tax-group/edit-tax-group.component.ts b/src/app/products/manage-tax-groups/edit-tax-group/edit-tax-group.component.ts index 0561be3ce..4818dc679 100644 --- a/src/app/products/manage-tax-groups/edit-tax-group/edit-tax-group.component.ts +++ b/src/app/products/manage-tax-groups/edit-tax-group/edit-tax-group.component.ts @@ -7,6 +7,7 @@ import { MatDialog } from '@angular/material/dialog'; /** Custom Services */ import { ProductsService } from '../../products.service'; +import { SettingsService } from 'app/settings/settings.service'; /** Dialog Components */ import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; @@ -48,13 +49,16 @@ export class EditTaxGroupComponent implements OnInit { * @param {ActivatedRoute} route Activated Route. * @param {Router} router Router for navigation. * @param {DatePipe} datePipe Date Pipe to format date. + * @param {MatDialog} dialog Dialog reference. + * @param {SettingsService} settingsService Settings Service. */ constructor(private formBuilder: FormBuilder, - private productsService: ProductsService, - private route: ActivatedRoute, - private router: Router, - private datePipe: DatePipe, - public dialog: MatDialog) { + private productsService: ProductsService, + private route: ActivatedRoute, + private router: Router, + private datePipe: DatePipe, + public dialog: MatDialog, + private settingsService: SettingsService) { this.route.data.subscribe((data: { taxGroup: any }) => { this.taxGroupData = data.taxGroup; this.taxComponentOptions = this.taxGroupData.taxComponents; @@ -193,8 +197,8 @@ export class EditTaxGroupComponent implements OnInit { * if successful redirects to Tax Groups. */ submit() { - const dateFormat = 'yyyy-MM-dd'; - const locale = 'en'; + const locale = this.settingsService.language.code; + const dateFormat = this.settingsService.dateFormat; const taxGroup = { ...this.taxGroupForm.value, taxComponents: this.taxComponentsDataSource, diff --git a/src/app/products/products.service.ts b/src/app/products/products.service.ts index 8690eb9d9..aa2ad6f36 100644 --- a/src/app/products/products.service.ts +++ b/src/app/products/products.service.ts @@ -5,6 +5,9 @@ import { HttpClient, HttpParams } from '@angular/common/http'; /** rxjs Imports */ import { Observable } from 'rxjs'; +/** Custom Services */ +import { SettingsService } from 'app/settings/settings.service'; + /** * Products service. */ @@ -15,8 +18,10 @@ export class ProductsService { /** * @param {HttpClient} http Http Client to send requests. + * @param {SettingsService} settingsService Settings Service. */ - constructor(private http: HttpClient) { } + constructor(private http: HttpClient, + private settingsService: SettingsService) { } /** * @returns {Observable} Loan products data @@ -105,10 +110,10 @@ export class ProductsService { } getDividendData(shareProductId: any, dividendId: any): Observable { - const httpParams = new HttpParams().set('dateFormat', 'dd MMMM yyyy') - .set('limit', '10') - .set('locale', 'en') - .set('offset', '0'); + const httpParams = new HttpParams().set('dateFormat', this.settingsService.dateFormat) + .set('limit', '10') + .set('locale', this.settingsService.language.code) + .set('offset', '0'); return this.http.get(`/shareproduct/${shareProductId}/dividend/${dividendId}`, { params: httpParams }); } @@ -394,7 +399,7 @@ export class ProductsService { */ getAllInterestRateCharts(productId: string): Observable { const httpParams = new HttpParams().set('productId', productId); - return this.http.get(`/interestratecharts`, {params: httpParams}); + return this.http.get(`/interestratecharts`, { params: httpParams }); } createRecurringDepositProduct(recurringDepositProduct: any): Observable { diff --git a/src/app/products/recurring-deposit-products/create-recurring-deposit-product/create-recurring-deposit-product.component.ts b/src/app/products/recurring-deposit-products/create-recurring-deposit-product/create-recurring-deposit-product.component.ts index 43e5b64d4..4d70c2d22 100644 --- a/src/app/products/recurring-deposit-products/create-recurring-deposit-product/create-recurring-deposit-product.component.ts +++ b/src/app/products/recurring-deposit-products/create-recurring-deposit-product/create-recurring-deposit-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { RecurringDepositProductDetailsStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-details-step/recurring-deposit-product-details-step.component'; import { RecurringDepositProductCurrencyStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-currency-step/recurring-deposit-product-currency-step.component'; import { RecurringDepositProductTermsStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-terms-step/recurring-deposit-product-terms-step.component'; @@ -9,7 +11,9 @@ import { RecurringDepositProductInterestRateChartStepComponent } from '../recurr import { RecurringDepositProductChargesStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-charges-step/recurring-deposit-product-charges-step.component'; import { RecurringDepositProductAccountingStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-accounting-step/recurring-deposit-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-create-recurring-deposit-product', @@ -29,9 +33,17 @@ export class CreateRecurringDepositProductComponent implements OnInit { recurringDepositProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, - private productsService: ProductsService, - private router: Router) { + private productsService: ProductsService, + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { recurringDepositProductsTemplate: any }) => { this.recurringDepositProductsTemplate = data.recurringDepositProductsTemplate; }); @@ -92,7 +104,7 @@ export class CreateRecurringDepositProductComponent implements OnInit { const recurringDepositProduct = { ...this.recurringDepositProduct, charges: this.recurringDepositProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for depositAmount + locale: this.settingsService.language.code // locale required for depositAmount }; if (!recurringDepositProduct.description) { recurringDepositProduct.description = ''; diff --git a/src/app/products/recurring-deposit-products/edit-recurring-deposit-product/edit-recurring-deposit-product.component.ts b/src/app/products/recurring-deposit-products/edit-recurring-deposit-product/edit-recurring-deposit-product.component.ts index 5d95542e9..9230ee4d1 100644 --- a/src/app/products/recurring-deposit-products/edit-recurring-deposit-product/edit-recurring-deposit-product.component.ts +++ b/src/app/products/recurring-deposit-products/edit-recurring-deposit-product/edit-recurring-deposit-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { RecurringDepositProductDetailsStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-details-step/recurring-deposit-product-details-step.component'; import { RecurringDepositProductCurrencyStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-currency-step/recurring-deposit-product-currency-step.component'; import { RecurringDepositProductTermsStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-terms-step/recurring-deposit-product-terms-step.component'; @@ -9,7 +11,9 @@ import { RecurringDepositProductInterestRateChartStepComponent } from '../recurr import { RecurringDepositProductChargesStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-charges-step/recurring-deposit-product-charges-step.component'; import { RecurringDepositProductAccountingStepComponent } from '../recurring-deposit-product-stepper/recurring-deposit-product-accounting-step/recurring-deposit-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-edit-recurring-deposit-product', @@ -29,9 +33,17 @@ export class EditRecurringDepositProductComponent implements OnInit { recurringDepositProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, - private productsService: ProductsService, - private router: Router) { + private productsService: ProductsService, + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { recurringDepositProductAndTemplate: any }) => { this.recurringDepositProductsTemplate = data.recurringDepositProductAndTemplate; }); @@ -100,7 +112,7 @@ export class EditRecurringDepositProductComponent implements OnInit { const recurringDepositProduct = { ...this.recurringDepositProduct, charges: this.recurringDepositProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for depositAmount + locale: this.settingsService.language.code // locale required for depositAmount }; if (!recurringDepositProduct.description) { recurringDepositProduct.description = ''; diff --git a/src/app/products/recurring-deposit-products/recurring-deposit-product-stepper/recurring-deposit-product-interest-rate-chart-step/recurring-deposit-product-interest-rate-chart-step.component.ts b/src/app/products/recurring-deposit-products/recurring-deposit-product-stepper/recurring-deposit-product-interest-rate-chart-step/recurring-deposit-product-interest-rate-chart-step.component.ts index 5a567e6b3..fec49b5fb 100644 --- a/src/app/products/recurring-deposit-products/recurring-deposit-product-stepper/recurring-deposit-product-interest-rate-chart-step/recurring-deposit-product-interest-rate-chart-step.component.ts +++ b/src/app/products/recurring-deposit-products/recurring-deposit-product-stepper/recurring-deposit-product-interest-rate-chart-step/recurring-deposit-product-interest-rate-chart-step.component.ts @@ -1,17 +1,23 @@ +/** Angular Imports */ import { Component, OnInit, Input } from '@angular/core'; import { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms'; import { DatePipe } from '@angular/common'; import { MatDialog } from '@angular/material/dialog'; import { animate, state, style, transition, trigger } from '@angular/animations'; +/** Custom Components */ import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component'; import { DepositProductIncentiveFormDialogComponent } from 'app/products/deposit-product-incentive-form-dialog/deposit-product-incentive-form-dialog.component'; import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component'; +/** Dialog Components */ import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base'; import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base'; + +import { SettingsService } from 'app/settings/settings.service'; + @Component({ selector: 'mifosx-recurring-deposit-product-interest-rate-chart-step', templateUrl: './recurring-deposit-product-interest-rate-chart-step.component.html', @@ -50,9 +56,17 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On chartDetailData: any = []; chartsDetail: any[] = []; + /** + * @param {FormBuilder} formBuilder Form Builder. + * @param {MatDialog} dialog Dialog reference. + * @param {DatePipe} datePipe Date Pipe to format date. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private formBuilder: FormBuilder, - public dialog: MatDialog, - private datePipe: DatePipe) { + public dialog: MatDialog, + private datePipe: DatePipe, + private settingsService: SettingsService) { this.createrecurringDepositProductInterestRateChartForm(); } @@ -350,8 +364,8 @@ export class RecurringDepositProductInterestRateChartStepComponent implements On get recurringDepositProductInterestRateChart() { // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; - const locale = 'en'; + const dateFormat = this.settingsService.dateFormat; + const locale = this.settingsService.language.code; const recurringDepositProductInterestRateChart = this.recurringDepositProductInterestRateChartForm.value; for (const chart of recurringDepositProductInterestRateChart.charts) { chart.dateFormat = dateFormat; diff --git a/src/app/products/saving-products/create-saving-product/create-saving-product.component.ts b/src/app/products/saving-products/create-saving-product/create-saving-product.component.ts index 99470ab37..62ef18a84 100644 --- a/src/app/products/saving-products/create-saving-product/create-saving-product.component.ts +++ b/src/app/products/saving-products/create-saving-product/create-saving-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { SavingProductDetailsStepComponent } from '../saving-product-stepper/saving-product-details-step/saving-product-details-step.component'; import { SavingProductCurrencyStepComponent } from '../saving-product-stepper/saving-product-currency-step/saving-product-currency-step.component'; import { SavingProductTermsStepComponent } from '../saving-product-stepper/saving-product-terms-step/saving-product-terms-step.component'; @@ -8,7 +10,9 @@ import { SavingProductSettingsStepComponent } from '../saving-product-stepper/sa import { SavingProductChargesStepComponent } from '../saving-product-stepper/saving-product-charges-step/saving-product-charges-step.component'; import { SavingProductAccountingStepComponent } from '../saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-create-saving-product', @@ -27,9 +31,17 @@ export class CreateSavingProductComponent implements OnInit { savingProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { savingProductsTemplate: any }) => { this.savingProductsTemplate = data.savingProductsTemplate; }); @@ -84,13 +96,13 @@ export class CreateSavingProductComponent implements OnInit { const savingProduct = { ...this.savingProduct, charges: this.savingProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for nominalAnnualInterestRate + locale: this.settingsService.language.code // locale required for nominalAnnualInterestRate }; delete savingProduct.advancedAccountingRules; this.productsService.createSavingProduct(savingProduct) .subscribe((response: any) => { this.router.navigate(['../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/saving-products/edit-saving-product/edit-saving-product.component.ts b/src/app/products/saving-products/edit-saving-product/edit-saving-product.component.ts index a24cf761a..04a77648c 100644 --- a/src/app/products/saving-products/edit-saving-product/edit-saving-product.component.ts +++ b/src/app/products/saving-products/edit-saving-product/edit-saving-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { SavingProductDetailsStepComponent } from '../saving-product-stepper/saving-product-details-step/saving-product-details-step.component'; import { SavingProductCurrencyStepComponent } from '../saving-product-stepper/saving-product-currency-step/saving-product-currency-step.component'; import { SavingProductTermsStepComponent } from '../saving-product-stepper/saving-product-terms-step/saving-product-terms-step.component'; @@ -8,7 +10,10 @@ import { SavingProductSettingsStepComponent } from '../saving-product-stepper/sa import { SavingProductChargesStepComponent } from '../saving-product-stepper/saving-product-charges-step/saving-product-charges-step.component'; import { SavingProductAccountingStepComponent } from '../saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; + @Component({ selector: 'mifosx-edit-saving-product', @@ -27,9 +32,17 @@ export class EditSavingProductComponent implements OnInit { savingProductAndTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { savingProductAndTemplate: any }) => { this.savingProductAndTemplate = data.savingProductAndTemplate; }); @@ -92,13 +105,13 @@ export class EditSavingProductComponent implements OnInit { const savingProduct = { ...this.savingProduct, charges: this.savingProduct.charges.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for nominalAnnualInterestRate + locale: this.settingsService.language.code // locale required for nominalAnnualInterestRate }; delete savingProduct.advancedAccountingRules; this.productsService.updateSavingProduct(this.savingProductAndTemplate.id, savingProduct) .subscribe((response: any) => { this.router.navigate(['../../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/share-products/create-dividend/create-dividend.component.ts b/src/app/products/share-products/create-dividend/create-dividend.component.ts index 62f0670ce..68b492fff 100644 --- a/src/app/products/share-products/create-dividend/create-dividend.component.ts +++ b/src/app/products/share-products/create-dividend/create-dividend.component.ts @@ -6,6 +6,8 @@ import { DatePipe } from '@angular/common'; /** Custom Services. */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; + /** * Create Dividend component. @@ -30,13 +32,17 @@ export class CreateDividendComponent implements OnInit { * Get Share Product data from `Resolver`. * @param {FormBuilder} formBuilder Form Builder. * @param {ActivatedRoute} route Activated Route. + * @param {DatePipe} datePipe Date Pipe to format date. + * @param {ProductsService} productsService Products Service. * @param {Router} router Router. + * @param {SettingsService} settingsService Settings Service. */ constructor(private formBuilder: FormBuilder, private route: ActivatedRoute, private datePipe: DatePipe, private productService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { shareProduct: any }) => { this.shareProductData = data.shareProduct; }); @@ -61,7 +67,7 @@ export class CreateDividendComponent implements OnInit { * Submits Create Dividend form. */ submit() { - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; const startDate = this.createDividendForm.value.dividendPeriodStartDate; const endDate = this.createDividendForm.value.dividendPeriodEndDate; this.createDividendForm.patchValue({ @@ -69,7 +75,7 @@ export class CreateDividendComponent implements OnInit { 'dividendPeriodEndDate': this.datePipe.transform(endDate, dateFormat) }); const dividendForm = this.createDividendForm.value; - dividendForm.locale = 'en'; + dividendForm.locale = this.settingsService.language.code; dividendForm.dateFormat = dateFormat; this.productService.createDividend(this.shareProductData.id, dividendForm).subscribe((response: any) => { this.router.navigate(['../'], { relativeTo: this.route }); diff --git a/src/app/products/share-products/create-share-product/create-share-product.component.ts b/src/app/products/share-products/create-share-product/create-share-product.component.ts index e4d7aca45..7b68905c5 100644 --- a/src/app/products/share-products/create-share-product/create-share-product.component.ts +++ b/src/app/products/share-products/create-share-product/create-share-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { ShareProductDetailsStepComponent } from '../share-product-stepper/share-product-details-step/share-product-details-step.component'; import { ShareProductCurrencyStepComponent } from '../share-product-stepper/share-product-currency-step/share-product-currency-step.component'; import { ShareProductTermsStepComponent } from '../share-product-stepper/share-product-terms-step/share-product-terms-step.component'; @@ -9,7 +11,9 @@ import { ShareProductMarketPriceStepComponent } from '../share-product-stepper/s import { ShareProductChargesStepComponent } from '../share-product-stepper/share-product-charges-step/share-product-charges-step.component'; import { ShareProductAccountingStepComponent } from '../share-product-stepper/share-product-accounting-step/share-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-create-share-product', @@ -29,9 +33,17 @@ export class CreateShareProductComponent implements OnInit { shareProductsTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { shareProductsTemplate: any }) => { this.shareProductsTemplate = data.shareProductsTemplate; }); @@ -92,12 +104,12 @@ export class CreateShareProductComponent implements OnInit { const shareProduct = { ...this.shareProduct, chargesSelected: this.shareProduct.chargesSelected.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for digitsAfterDecimal + locale: this.settingsService.language.code // locale required for digitsAfterDecimal }; this.productsService.createShareProduct(shareProduct) .subscribe((response: any) => { this.router.navigate(['../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/share-products/edit-share-product/edit-share-product.component.ts b/src/app/products/share-products/edit-share-product/edit-share-product.component.ts index a2fc9c815..e3f513507 100644 --- a/src/app/products/share-products/edit-share-product/edit-share-product.component.ts +++ b/src/app/products/share-products/edit-share-product/edit-share-product.component.ts @@ -1,6 +1,8 @@ +/** Angular Imports */ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +/** Custom Components */ import { ShareProductDetailsStepComponent } from '../share-product-stepper/share-product-details-step/share-product-details-step.component'; import { ShareProductCurrencyStepComponent } from '../share-product-stepper/share-product-currency-step/share-product-currency-step.component'; import { ShareProductTermsStepComponent } from '../share-product-stepper/share-product-terms-step/share-product-terms-step.component'; @@ -9,7 +11,9 @@ import { ShareProductMarketPriceStepComponent } from '../share-product-stepper/s import { ShareProductChargesStepComponent } from '../share-product-stepper/share-product-charges-step/share-product-charges-step.component'; import { ShareProductAccountingStepComponent } from '../share-product-stepper/share-product-accounting-step/share-product-accounting-step.component'; +/** Custom Services */ import { ProductsService } from 'app/products/products.service'; +import { SettingsService } from 'app/settings/settings.service'; @Component({ selector: 'mifosx-edit-share-product', @@ -29,9 +33,17 @@ export class EditShareProductComponent implements OnInit { shareProductAndTemplate: any; accountingRuleData = ['None', 'Cash']; + /** + * @param {ActivatedRoute} route Activated Route. + * @param {ProductsService} productsService Products Service. + * @param {Router} router Router. + * @param {SettingsService} settingsService Settings Service. + */ + constructor(private route: ActivatedRoute, private productsService: ProductsService, - private router: Router) { + private router: Router, + private settingsService: SettingsService) { this.route.data.subscribe((data: { shareProductAndTemplate: any }) => { this.shareProductAndTemplate = data.shareProductAndTemplate; }); @@ -101,12 +113,12 @@ export class EditShareProductComponent implements OnInit { const shareProduct = { ...this.shareProduct, chargesSelected: this.shareProduct.chargesSelected.map((charge: any) => ({ id: charge.id })), - locale: 'en' // locale required for digitsAfterDecimal + locale: this.settingsService.language.code // locale required for digitsAfterDecimal }; this.productsService.updateShareProduct(this.shareProductAndTemplate.id, shareProduct) .subscribe((response: any) => { this.router.navigate(['../../', response.resourceId], { relativeTo: this.route }); - }); + }); } } diff --git a/src/app/products/share-products/share-product-stepper/share-product-market-price-step/share-product-market-price-step.component.ts b/src/app/products/share-products/share-product-stepper/share-product-market-price-step/share-product-market-price-step.component.ts index 16a5c2a95..dc6f41a92 100644 --- a/src/app/products/share-products/share-product-stepper/share-product-market-price-step/share-product-market-price-step.component.ts +++ b/src/app/products/share-products/share-product-stepper/share-product-market-price-step/share-product-market-price-step.component.ts @@ -1,15 +1,19 @@ +/** Angular Imports */ import { Component, OnInit, Input } from '@angular/core'; import { DatePipe } from '@angular/common'; import { FormGroup, FormBuilder, FormArray } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; +/** Dialog Components */ import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component'; import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component'; - import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base'; import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicker-base'; import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base'; +/** Custom Services */ +import { SettingsService } from 'app/settings/settings.service'; + @Component({ selector: 'mifosx-share-product-market-price-step', templateUrl: './share-product-market-price-step.component.html', @@ -21,11 +25,20 @@ export class ShareProductMarketPriceStepComponent implements OnInit { shareProductMarketPriceForm: FormGroup; + /** For displaying required columns */ displayedColumns: string[] = ['fromDate', 'shareValue', 'actions']; + /** + * @param {FormBuilder} formBuilder Form Builder. + * @param {DatePipe} datePipe Date Pipe to format date. + * @param {DatePipe} datePipe Date Pipe to format date. + * @param {SettingsService} settingsService Settings Service + */ + constructor(private formBuilder: FormBuilder, public dialog: MatDialog, - private datePipe: DatePipe) { + private datePipe: DatePipe, + private settingsService: SettingsService) { this.createShareProductMarketPriceForm(); } @@ -37,7 +50,7 @@ export class ShareProductMarketPriceStepComponent implements OnInit { createShareProductMarketPriceForm() { this.shareProductMarketPriceForm = this.formBuilder.group({ - 'marketPricePeriods': this.formBuilder.array([]) + 'marketPricePeriods': this.formBuilder.array([]) }); } @@ -113,14 +126,15 @@ export class ShareProductMarketPriceStepComponent implements OnInit { get shareProductMarketPrice() { // TODO: Update once language and date settings are setup - const dateFormat = 'yyyy-MM-dd'; + const dateFormat = this.settingsService.dateFormat; + const locale = this.settingsService.language.code; const marketPricePeriods = []; for (const marketPricePeriod of this.marketPricePeriods.value) { marketPricePeriods.push({ ...marketPricePeriod, fromDate: this.datePipe.transform(marketPricePeriod.fromDate, dateFormat), dateFormat, - locale: 'en' + locale }); } return { marketPricePeriods };