{"version":3,"file":"main.037255c8363255c7.js","mappings":"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","sources":["./src/app/messages/en-US.js","./src/app/messages/es.js","./src/app/messages/fr.js","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/accounting/base-upload/base-upload.component.ts","./src/app/components/accounting/batch-invoice/batch-invoice-list.component.ts","./src/app/components/accounting/batch-invoice/batch-invoice-list.component.html","./src/app/components/accounting/batch-invoice/models/batch-invoice-list.model.ts","./src/app/components/accounting/batch-invoice/update-invoice-number/update-invoice-number.component.ts","./src/app/components/accounting/batch-invoice/update-invoice-number/update-invoice-number.component.html","./src/app/components/accounting/batch-invoice/view-details/batch-invoice-details.component.ts","./src/app/components/accounting/batch-invoice/view-details/batch-invoice-details.component.html","./src/app/components/accounting/gst-adjustment/gst-adjustment.component.ts","./src/app/components/accounting/gst-adjustment/gst-adjustment.component.html","./src/app/components/accounting/open-item/do-bounce-cheque/do-bounce-cheque.component.ts","./src/app/components/accounting/open-item/do-bounce-cheque/do-bounce-cheque.component.html","./src/app/components/accounting/open-item/do-manual-pay/do-manual-pay.component.ts","./src/app/components/accounting/open-item/do-manual-pay/do-manual-pay.component.html","./src/app/components/accounting/open-item/do-refund/do-refund.component.ts","./src/app/components/accounting/open-item/do-refund/do-refund.component.html","./src/app/components/accounting/open-item/models/open-item-list.model.ts","./src/app/components/accounting/open-item/open-item-list.component.ts","./src/app/components/accounting/open-item/open-item-list.component.html","./src/app/components/accounting/open-item/view-details/open-item-details.component.ts","./src/app/components/accounting/open-item/view-details/open-item-details.component.html","./src/app/components/accounting/reconcile/models/reconcile-list.model.ts","./src/app/components/accounting/reconcile/reconcile-list.component.ts","./src/app/components/accounting/reconcile/reconcile-list.component.html","./src/app/components/accounting/refund-upload/refund-upload.component.ts","./src/app/components/accounting/refund-upload/refund-upload.component.html","./src/app/components/accounting/review-refund-upload/review-refund-upload.component.ts","./src/app/components/accounting/review-refund-upload/review-refund-upload.component.html","./src/app/components/admin/user-profile/create-user/create-profile/create-profile.component.ts","./src/app/components/admin/user-profile/create-user/create-profile/create-profile.component.html","./src/app/components/admin/user-profile/create-user/create-user.component.ts","./src/app/components/admin/user-profile/create-user/create-user.component.html","./src/app/components/admin/user-profile/search-user/search-user.component.ts","./src/app/components/admin/user-profile/search-user/search-user.component.html","./src/app/components/admin/user-profile/user-profile.component.ts","./src/app/components/admin/user-profile/user-profile.component.html","./src/app/components/admin/user-profile/user-profile.constant.ts","./src/app/components/admin/user-profile/user-profile.model.ts","./src/app/components/admin/user-profile/user-success/user-success.component.ts","./src/app/components/admin/user-profile/user-success/user-success.component.html","./src/app/components/admin/user-profile/view-user/edit-personal-details/edit-personal-details.component.ts","./src/app/components/admin/user-profile/view-user/edit-personal-details/edit-personal-details.component.html","./src/app/components/admin/user-profile/view-user/edit-user-profile/edit-user-profile.component.ts","./src/app/components/admin/user-profile/view-user/edit-user-profile/edit-user-profile.component.html","./src/app/components/admin/user-profile/view-user/view-personal-details/view-personal-details.component.ts","./src/app/components/admin/user-profile/view-user/view-personal-details/view-personal-details.component.html","./src/app/components/admin/user-profile/view-user/view-user-profile/view-user-profile.component.ts","./src/app/components/admin/user-profile/view-user/view-user-profile/view-user-profile.component.html","./src/app/components/admin/user-profile/view-user/view-user.component.ts","./src/app/components/admin/user-profile/view-user/view-user.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.commponent.html","./src/app/components/horiz-menu/horiz-menu.component.ts","./src/app/components/horiz-menu/horiz-menu.component.html","./src/app/components/login/adb2c-login-redirect/adb2c-login-redirect.component.ts","./src/app/components/login/adb2c-login-redirect/adb2c-login-redirect.component.html","./src/app/components/login/adb2c-login/adb2c-login.component.ts","./src/app/components/login/adb2c-login/adb2c-login.component.html","./src/app/components/login/adb2c-user-type-listing/adb2c-user-type-listing.component.ts","./src/app/components/login/adb2c-user-type-listing/adb2c-user-type-listing.component.html","./src/app/components/login/customer-login/customer-accept-offer.component.ts","./src/app/components/login/customer-login/customer-accept-offer.component.html","./src/app/components/login/customer-login/customer-enter-otp.component.ts","./src/app/components/login/customer-login/customer-enter-otp.component.html","./src/app/components/login/customer-login/customer-login.component.ts","./src/app/components/login/customer-login/customer-login.component.html","./src/app/components/login/user-role-selection/user-role-selection.component.ts","./src/app/components/login/user-role-selection/user-role-selection.component.html","./src/app/components/new-product/base/base-configurables-list/base-configurables-list.component.ts","./src/app/components/new-product/base/base-configurables-list/base-configurables-list.component.html","./src/app/components/new-product/base/base-listing/base-listing.component.ts","./src/app/components/new-product/base/base-main/base-main.component.ts","./src/app/components/new-product/base/base-main/base-main.component.html","./src/app/components/new-product/base/base-open-item-list/base-open-item-list.component.ts","./src/app/components/new-product/base/base-open-item-list/base-open-item-list.component.html","./src/app/components/new-product/base/base-proposal/base-proposal.component.ts","./src/app/components/new-product/base/base-proposal/base-proposal.component.html","./src/app/components/new-product/base/base-reconcile-list/base-reconcile-list.component.ts","./src/app/components/new-product/base/base-reconcile-list/base-reconcile-list.component.html","./src/app/components/new-product/base/base-subscription/base-subscription.component.ts","./src/app/components/new-product/base/base-subscription/base-subscription.component.html","./src/app/components/new-product/base/base-todo-list/base-todo-list.component.ts","./src/app/components/new-product/base/base-todo-list/base-todo-list.component.html","./src/app/components/new-product/base/utils/proposal-common.ts","./src/app/components/new-product/home/base/search-criteria.ts","./src/app/components/new-product/home/export-list/export-list.component.ts","./src/app/components/new-product/home/export-list/export-list.component.html","./src/app/components/new-product/home/home-constant.ts","./src/app/components/new-product/home/home.component.ts","./src/app/components/new-product/home/home.component.html","./src/app/components/new-product/home/policy-list/policy-list-details/policy-list-details.component.ts","./src/app/components/new-product/home/policy-list/policy-list-details/policy-list-details.component.html","./src/app/components/new-product/home/policy-list/policy-list.component.ts","./src/app/components/new-product/home/policy-list/policy-list.component.html","./src/app/components/new-product/home/preset-report/auto-debit/auto-debit.component.ts","./src/app/components/new-product/home/preset-report/auto-debit/auto-debit.component.html","./src/app/components/new-product/home/preset-report/auto-debit/auto-debit.model.ts","./src/app/components/new-product/home/preset-report/bank-trans/bank-trans.component.ts","./src/app/components/new-product/home/preset-report/bank-trans/bank-trans.component.html","./src/app/components/new-product/home/preset-report/bank-trans/bank-trans.model.ts","./src/app/components/new-product/home/preset-report/cbg-daily-download/cbg-daily-download.component.ts","./src/app/components/new-product/home/preset-report/cbg-daily-download/cbg-daily-download.component.html","./src/app/components/new-product/home/preset-report/cbg-daily-download/cbg-daily-download.model.ts","./src/app/components/new-product/home/preset-report/citi-monthly-report/citi-monthly-report.component.ts","./src/app/components/new-product/home/preset-report/citi-monthly-report/citi-monthly-report.component.html","./src/app/components/new-product/home/preset-report/citi-monthly-report/citi-monthly-report.model.ts","./src/app/components/new-product/home/preset-report/citi-weekly-invoice/citi-weekly-invoice.component.ts","./src/app/components/new-product/home/preset-report/citi-weekly-invoice/citi-weekly-invoice.component.html","./src/app/components/new-product/home/preset-report/citi-weekly-invoice/citi-weekly-invoice.model.ts","./src/app/components/new-product/home/preset-report/daily-trans-document-print/print-document-report.component.ts","./src/app/components/new-product/home/preset-report/daily-trans-document-print/print-document-report.component.html","./src/app/components/new-product/home/preset-report/daily-trans-document-print/print-document-report.model.ts","./src/app/components/new-product/home/preset-report/datapost-document-print/print-datapost.component.ts","./src/app/components/new-product/home/preset-report/datapost-document-print/print-datapost.component.html","./src/app/components/new-product/home/preset-report/datapost-document-print/print-datapost.model.ts","./src/app/components/new-product/home/preset-report/ibg-reinsurance/ibg-reinsurance-report.component.ts","./src/app/components/new-product/home/preset-report/ibg-reinsurance/ibg-reinsurance-report.component.html","./src/app/components/new-product/home/preset-report/ibg-reinsurance/ibg-reinsurance-report.model.ts","./src/app/components/new-product/home/preset-report/ibg-renewal-report/ibg-renewal-report.component.ts","./src/app/components/new-product/home/preset-report/ibg-renewal-report/ibg-renewal-report.component.html","./src/app/components/new-product/home/preset-report/ibg-renewal-report/ibg-renewal-report.model.ts","./src/app/components/new-product/home/preset-report/loan-redemption/loan-redemption.component.ts","./src/app/components/new-product/home/preset-report/loan-redemption/loan-redemption.component.html","./src/app/components/new-product/home/preset-report/loan-redemption/loan-redemption.model.ts","./src/app/components/new-product/home/preset-report/manual-paid-auto-debit/manual-paid-auto-debit.component.ts","./src/app/components/new-product/home/preset-report/manual-paid-auto-debit/manual-paid-auto-debit.component.html","./src/app/components/new-product/home/preset-report/manual-paid-auto-debit/manual-paid-auto-debit.model.ts","./src/app/components/new-product/home/preset-report/preset-report.component.ts","./src/app/components/new-product/home/preset-report/preset-report.component.html","./src/app/components/new-product/home/preset-report/renewal-report/renewal-report.component.ts","./src/app/components/new-product/home/preset-report/renewal-report/renewal-report.component.html","./src/app/components/new-product/home/preset-report/renewal-report/renewal-report.model.ts","./src/app/components/new-product/home/preset-report/summary-invoice-auto-debit/summary-invoice-auto-debit.component.ts","./src/app/components/new-product/home/preset-report/summary-invoice-auto-debit/summary-invoice-auto-debit.component.html","./src/app/components/new-product/home/preset-report/summary-invoice-auto-debit/summary-invoice-auto-debit.model.ts","./src/app/components/new-product/home/todo-list/todo-list.component.ts","./src/app/components/new-product/home/todo-list/todo-list.component.html","./src/app/components/new-product/home/warning-zone/warning-zone.component.ts","./src/app/components/new-product/home/warning-zone/warning-zone.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-manual-pay/mf-hk-do-manual-pay.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-manual-pay/mf-hk-do-manual-pay.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-refund/mf-hk-do-refund.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-refund/mf-hk-do-refund.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-details/mf-hk-open-item-details.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-details/mf-hk-open-item-details.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-reconcile-list/mf-hk-reconcile-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-reconcile-list/mf-hk-reconcile-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/add-clauses-exclusions/add-clauses-excl-list/add-clauses-excl-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/add-clauses-exclusions/add-clauses-excl-list/add-clauses-excl-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/button-panel/mf-hk-button-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/button-panel/mf-hk-button-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/configurables/configurables.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/configurables/configurables.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/deductible/deductible-list/deductible-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/deductible/deductible-list/deductible-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/endorsement-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/endorsement-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/mf-hk-end-list-search-criteria.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/extra-peril/extra-peril-list/extra-peril-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/extra-peril/extra-peril-list/extra-peril-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/header/mf-hk-header.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/header/mf-hk-header.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-policy-list/mf-hk-policy-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-policy-list/mf-hk-policy-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-report-list/mf-hk-report-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-report-list/mf-hk-report-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-todo-list/mf-hk-search-criteria.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-todo-list/mf-hk-todo-list.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-todo-list/mf-hk-todo-list.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-field-validation-echo-panel/mf-hk-field-validation-echo-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-field-validation-echo-panel/mf-hk-field-validation-echo-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-main.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-main.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-pending-transaction-panel/mf-hk-pending-transaction-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-pending-transaction-panel/mf-hk-pending-transaction-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-referral-validation-echo-panel/mf-hk-referral-validation-echo-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-referral-validation-echo-panel/mf-hk-referral-validation-echo-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/master/hase/mf-hk-master/mf-hk-master.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/master/hase/mf-hk-master/mf-hk-master.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-create/mf-hk-client-create.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-create/mf-hk-client-create.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-search/mf-hk-client-search.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-search/mf-hk-client-search.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-view/mf-hk-client-view.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-view/mf-hk-client-view.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-address-help-form/mf-hk-address-help-form.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-address-help-form/mf-hk-address-help-form.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-base.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-base.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-clauses-and-deductibles/mf-hk-clauses-and-deductibles.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-clauses-and-deductibles/mf-hk-clauses-and-deductibles.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-preferred-delivery/mf-hk-preferred-delivery.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-preferred-delivery/mf-hk-preferred-delivery.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/premium-summary/mf-hk-premium-summary.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/premium-summary/mf-hk-premium-summary.component.html","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/tabs/mf-hk-tabs.component.ts","./src/app/components/new-product/sme/mortgage-fire/hong-kong/components/tabs/mf-hk-tabs.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/button-panel/mf-sg-button-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/button-panel/mf-sg-button-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/client/mf-sg-client-view/mf-sg-client-view.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/client/mf-sg-client-view/mf-sg-client-view.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/header/mf-sg-header.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/header/mf-sg-header.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-field-validation-echo-panel/mf-sg-echo-field-validation-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-field-validation-echo-panel/mf-sg-echo-field-validation-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-main.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-main.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-pending-transaction-panel/mf-sg-pending-transaction-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-pending-transaction-panel/mf-sg-pending-transaction-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-referral-validation-echo-panel/mf-sg-echo-referral-validation-panel.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-referral-validation-echo-panel/mf-sg-echo-referral-validation-panel.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/FireInterestedParties.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/citi/ct-sg-master.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/citi/ct-sg-master.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/MfSgEquipmentListingEntity.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/md-details/md-details.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/md-details/md-details.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing-edit-form/mf-sg-equipment-listing-edit-form.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing-edit-form/mf-sg-equipment-listing-edit-form.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-master.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-master.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-qs-fire-interested-parties/mf-sg-qs-fire-interested-parties.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-qs-fire-interested-parties/mf-sg-qs-fire-interested-parties.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/mf-sg-base.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/mf-sg-base.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/mf-sg-preferred-delivery/mf-sg-preferred-delivery.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/mf-sg-preferred-delivery/mf-sg-preferred-delivery.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-period-history/citi/ct-sg-premium-period-history.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-period-history/citi/ct-sg-premium-period-history.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-summary/citi/ct-sg-premium-summary.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-summary/citi/ct-sg-premium-summary.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-summary/mf-sg-premium-summary.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/premium-summary/mf-sg-premium-summary.component.html","./src/app/components/new-product/sme/mortgage-fire/singapore/components/tabs/mf-sg-tabs.component.ts","./src/app/components/new-product/sme/mortgage-fire/singapore/components/tabs/mf-sg-tabs.component.html","./src/app/components/product/auto-loan-redemption/auto-loan-redemption.component.ts","./src/app/components/product/auto-loan-redemption/auto-loan-redemption.component.html","./src/app/components/product/auto-loan-redemption/auto-loan-redemption.entity.ts","./src/app/components/product/bounced-mail-policy/bounced-mail-policy.component.ts","./src/app/components/product/bounced-mail-policy/bounced-mail-policy.component.html","./src/app/components/product/ibg-sg-upload/ibg-sg-upload.component.ts","./src/app/components/product/ibg-sg-upload/ibg-sg-upload.component.html","./src/app/components/product/lst-rate/lst-rate.component.ts","./src/app/components/product/lst-rate/lst-rate.component.html","./src/app/components/product/lst-rate/lstRateEntity.ts","./src/app/components/product/messageBoard/client-timeline/client-timeline.component.ts","./src/app/components/product/messageBoard/client-timeline/client-timeline.component.html","./src/app/components/product/messageBoard/message-board/message-board.component.ts","./src/app/components/product/messageBoard/message-board/message-board.component.html","./src/app/components/product/messageBoard/message-forum/MessageBoardModel.ts","./src/app/components/product/messageBoard/message-forum/message-forum.component.ts","./src/app/components/product/messageBoard/message-forum/message-forum.component.html","./src/app/components/product/messageBoard/underwriter-internal-comment/underwriter-internal-comment.component.ts","./src/app/components/product/messageBoard/underwriter-internal-comment/underwriter-internal-comment.component.html","./src/app/components/product/multi-year-auto-debit-upload/multi-year-auto-debit-upload.component.ts","./src/app/components/product/multi-year-auto-debit-upload/multi-year-auto-debit-upload.component.html","./src/app/components/product/policyWordingSetUp/policy-wording-setup.component.ts","./src/app/components/product/policyWordingSetUp/policy-wording-setup.component.html","./src/app/components/product/policyWordingSetUp/policy-wording.entity.ts","./src/app/components/product/rm-screen/RmScreenListingEntity.ts","./src/app/components/product/rm-screen/rm-grid-edit-form/rm-grid-edit-form.component.ts","./src/app/components/product/rm-screen/rm-grid-edit-form/rm-grid-edit-form.component.html","./src/app/components/product/rm-screen/rm-screen.component.ts","./src/app/components/product/rm-screen/rm-screen.component.html","./src/app/components/product/sme/masterPolicy/md-validation-message/md-validation-message.component.ts","./src/app/components/product/sme/masterPolicy/md-validation-message/md-validation-message.component.html","./src/app/components/security/auth.guard.ts","./src/app/components/shared/base/base.component.ts","./src/app/components/shared/button-default/button-default.component.ts","./src/app/components/shared/button-default/button-default.component.html","./src/app/components/shared/idle/enums/idle-warning.states.enum.ts","./src/app/components/shared/idle/idle-warning/idle-warning.component.ts","./src/app/components/shared/idle/idle-warning/idle-warning.component.html","./src/app/components/shared/idle/modal/modal.component.ts","./src/app/components/shared/idle/modal/modal.component.html","./src/app/components/shared/idle/ngx-idle-timeout.module.ts","./src/app/components/shared/idle/ngx-idle-timeout/ngx-idle-timeout.component.ts","./src/app/components/shared/idle/ngx-idle-timeout/ngx-idle-timeout.component.html","./src/app/components/shared/new-product/components/checkbox-question/checkbox-question.component.ts","./src/app/components/shared/new-product/components/checkbox-question/checkbox-question.component.html","./src/app/components/shared/new-product/components/currency-box-conditional-question/currency-box-conditional-question.component.ts","./src/app/components/shared/new-product/components/currency-box-conditional-question/currency-box-conditional-question.component.html","./src/app/components/shared/new-product/components/currency-box-v1-question/currency-box-v1-question.component.ts","./src/app/components/shared/new-product/components/currency-box-v1-question/currency-box-v1-question.component.html","./src/app/components/shared/new-product/components/date-input-question/date-input-question.component.ts","./src/app/components/shared/new-product/components/date-input-question/date-input-question.component.html","./src/app/components/shared/new-product/components/date-picker-v1-question/date-picker-v1-question.component.ts","./src/app/components/shared/new-product/components/date-picker-v1-question/date-picker-v1-question.component.html","./src/app/components/shared/new-product/components/drop-down-list-filter-question/drop-down-list-filter-question.component.ts","./src/app/components/shared/new-product/components/drop-down-list-filter-question/drop-down-list-filter-question.component.html","./src/app/components/shared/new-product/components/drop-down-list-question/drop-down-list-question.component.ts","./src/app/components/shared/new-product/components/drop-down-list-question/drop-down-list-question.component.html","./src/app/components/shared/new-product/components/numeric-box-question/numeric-box-question.component.ts","./src/app/components/shared/new-product/components/numeric-box-question/numeric-box-question.component.html","./src/app/components/shared/new-product/components/percentage-box-v1-question/percentage-box-v1-question.component.ts","./src/app/components/shared/new-product/components/percentage-box-v1-question/percentage-box-v1-question.component.html","./src/app/components/shared/new-product/components/radio-button-v1-question/radio-button-v1-question.component.ts","./src/app/components/shared/new-product/components/radio-button-v1-question/radio-button-v1-question.component.html","./src/app/components/shared/new-product/components/text-area-question/text-area-question.component.ts","./src/app/components/shared/new-product/components/text-area-question/text-area-question.component.html","./src/app/components/shared/new-product/components/text-box-question/text-box-question.component.ts","./src/app/components/shared/new-product/components/text-box-question/text-box-question.component.html","./src/app/components/shared/new-product/components/text-box-v2-question/text-box-v2-question.component.ts","./src/app/components/shared/new-product/components/text-box-v2-question/text-box-v2-question.component.html","./src/app/components/shared/new-product/components/yes-no-radio-question/yes-no-radio-question.component.ts","./src/app/components/shared/new-product/components/yes-no-radio-question/yes-no-radio-question.component.html","./src/app/components/shared/notifier/button-notifier.ts","./src/app/components/shared/partials/clauses-deductibles/clauses-deductibles.component.ts","./src/app/components/shared/partials/clauses-deductibles/clauses-deductibles.component.html","./src/app/components/shared/partials/configurable-filter/configurable-filter.component.ts","./src/app/components/shared/partials/configurable-filter/configurable-filter.component.html","./src/app/components/shared/partials/configurable-form-add/configurable-form-add.component.ts","./src/app/components/shared/partials/configurable-form-add/configurable-form-add.component.html","./src/app/components/shared/partials/configurable-form-add/mf-hk-config-add-criteria.ts","./src/app/components/shared/partials/configurable-form-base/configurable-form-base.component.ts","./src/app/components/shared/partials/configurable-form-base/configurable-form-base.component.html","./src/app/components/shared/partials/configurable-form-edit/configurable-form-edit.component.ts","./src/app/components/shared/partials/configurable-form-edit/configurable-form-edit.component.html","./src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria.ts","./src/app/components/shared/partials/custom-error/custom-error.component.ts","./src/app/components/shared/partials/custom-error/custom-error.component.html","./src/app/components/shared/partials/dialog/dialog-ref.ts","./src/app/components/shared/partials/dialog/dialog-tokens.ts","./src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component.ts","./src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component.html","./src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component.ts","./src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component.html","./src/app/components/shared/partials/md-confirmation-message-v4/md-confirmation-message-v4.component.ts","./src/app/components/shared/partials/md-confirmation-message-v4/md-confirmation-message-v4.component.html","./src/app/components/shared/partials/md-confirmation-message-v5/md-confirmation-message-v5.component.ts","./src/app/components/shared/partials/md-confirmation-message-v5/md-confirmation-message-v5.component.html","./src/app/components/shared/partials/md-confirmation-message-v6/ProposalEntity.ts","./src/app/components/shared/partials/md-confirmation-message-v6/md-confirmation-message-v6.component.ts","./src/app/components/shared/partials/md-confirmation-message-v6/md-confirmation-message-v6.component.html","./src/app/components/shared/partials/md-confirmation-message-with-reason-attachment/md-confirmation-message-with-reason-attachment.component.ts","./src/app/components/shared/partials/md-confirmation-message-with-reason-attachment/md-confirmation-message-with-reason-attachment.component.html","./src/app/components/shared/partials/md-confirmation-message-with-reason/md-confirmation-message-with-reason.component.ts","./src/app/components/shared/partials/md-confirmation-message-with-reason/md-confirmation-message-with-reason.component.html","./src/app/components/shared/partials/md-information-message/md-information-message.component.ts","./src/app/components/shared/partials/md-information-message/md-information-message.component.html","./src/app/components/shared/partials/md-menu-header/md-profile-details/md-profile-details.component.ts","./src/app/components/shared/partials/md-menu-header/md-profile-details/md-profile-details.component.html","./src/app/components/shared/partials/md-occupation/occupation-search/occupation-search.component.ts","./src/app/components/shared/partials/md-occupation/occupation-search/occupation-search.component.html","./src/app/components/shared/partials/md-preferred-delivery-method/md-preferred-delivery-method.component.ts","./src/app/components/shared/partials/md-preferred-delivery-method/md-preferred-delivery-method.component.html","./src/app/components/shared/partials/md-product-selection-dialog/md-product-selection-dialog.component.ts","./src/app/components/shared/partials/md-product-selection-dialog/md-product-selection-dialog.component.html","./src/app/components/shared/partials/md-successful-file-upload/md-successful-file-upload.component.ts","./src/app/components/shared/partials/md-successful-file-upload/md-successful-file-upload.component.html","./src/app/components/shared/partials/mdClient/client-create/base/base-client-create/base-client-create.component.ts","./src/app/components/shared/partials/mdClient/client-create/base/base-client-create/base-client-create.component.html","./src/app/components/shared/partials/mdClient/client-create/client-create.component.ts","./src/app/components/shared/partials/mdClient/client-create/client-create.component.html","./src/app/components/shared/partials/mdClient/client-search/client-search.component.ts","./src/app/components/shared/partials/mdClient/client-search/client-search.component.html","./src/app/components/shared/partials/mdClient/client-view/client-view.component.ts","./src/app/components/shared/partials/mdClient/client-view/client-view.component.html","./src/app/components/shared/products/address-help-form/address-help-form.component.ts","./src/app/components/shared/products/address-help-form/address-help-form.component.html","./src/app/components/shared/products/mf-contact-us-form/mf-contact-us-form.component.ts","./src/app/components/shared/products/mf-contact-us-form/mf-contact-us-form.component.html","./src/app/finance/finance-constant.ts","./src/app/finance/finance-enums.ts","./src/app/framework/app.enums.ts","./src/app/framework/const.shared.ts","./src/app/framework/domain-entity/exceptions/argument-invalid-exception.ts","./src/app/framework/domain-entity/exceptions/argument-null-exception.ts","./src/app/framework/domain-entity/exceptions/exception.ts","./src/app/framework/domain-entity/exceptions/not-implemented-exception.ts","./src/app/framework/domain-entity/exceptions/unauthorized-exception.ts","./src/app/framework/domain-entity/guid.ts","./src/app/framework/domain-entity/key-value.ts","./src/app/framework/enum.shared.ts","./src/app/framework/utils/cloner.ts","./src/app/framework/utils/common.ts","./src/app/framework/utils/exception-manager.ts","./src/app/interceptor/http-interceptor.ts","./src/app/interceptor/http-notifier.ts","./src/app/models/customer/base/client-address-entity.model.ts","./src/app/models/customer/base/client-entity.model.ts","./src/app/models/new-product/abstract-factory/button-panel/dbs-button-panel.ts","./src/app/models/new-product/abstract-factory/button-panel/hase-button-panel.ts","./src/app/models/new-product/abstract-factory/doc-type/dbs-doc-type.ts","./src/app/models/new-product/abstract-factory/doc-type/hase-doc-type.ts","./src/app/models/new-product/abstract-factory/factory/dbs-product-factory.ts","./src/app/models/new-product/abstract-factory/factory/hase-product-factory.ts","./src/app/models/new-product/abstract-factory/google-places/dbs-google-places.ts","./src/app/models/new-product/abstract-factory/google-places/hase-google-places.ts","./src/app/models/new-product/abstract-factory/master/dbs-master.ts","./src/app/models/new-product/abstract-factory/master/hase-master.ts","./src/app/models/new-product/abstract-factory/premium-summary/dbs-premium-summary.ts","./src/app/models/new-product/abstract-factory/premium-summary/hase-premium-summary.ts","./src/app/models/new-product/abstract-factory/proposal/dbs-proposal.ts","./src/app/models/new-product/abstract-factory/proposal/hase-proposal.ts","./src/app/models/new-product/base/echo.model.ts","./src/app/models/new-product/base/echos.model.ts","./src/app/models/new-product/base/proposal-action.model.ts","./src/app/models/new-product/base/proposal-entity.model.ts","./src/app/models/new-product/base/proposal-package-model.ts","./src/app/models/new-product/base/proposal.model.ts","./src/app/models/new-product/base/question-entity.model.ts","./src/app/models/new-product/base/question-section.ts","./src/app/models/new-product/base/rule.model.ts","./src/app/models/new-product/base/section-tab.model.ts","./src/app/models/new-product/base/section.model.ts","./src/app/models/new-product/base/utils/proposal-editable-helper.service.ts","./src/app/models/new-product/base/validator/question-entity.validator.ts","./src/app/models/new-product/const/proposal-const.ts","./src/app/models/new-product/factory/proposal-entity.factory.ts","./src/app/models/new-product/mapper/proposal-entity.mapper.ts","./src/app/models/new-product/mapper/question-entity.mapper.ts","./src/app/models/new-product/notifier/api-action-notifier.ts","./src/app/models/new-product/notifier/api-mapper-notifier.ts","./src/app/models/new-product/notifier/dialog-action-notifier.ts","./src/app/models/new-product/notifier/page-life-cycle-notifier.ts","./src/app/models/new-product/notifier/proposal-service-notifier.ts","./src/app/models/new-product/notifier/question-notifier.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-answer-change.manager.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-business-rules.manager.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal-location.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/questions/mf-hk-client-create-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/questions/mf-hk-master-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/questions/mf-hk-premium-summary-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-business-rule-schema.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-section-schema.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-tab-schema.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/base/validator/mf-hk-question-entity.validator.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/const/mf-hk-const.ts","./src/app/models/new-product/sme/mortgage-fire/hong-kong/utils/mf-hk-helper.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-answer-change.manager.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-business-rules.manager.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-field-validation.manager.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-location.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/questions/mf-sg-client-create-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/questions/mf-sg-master-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/questions/mf-sg-premium-summary-question-section.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-business-rule-schema.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-section-schema.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/base/validator/mf-sg-question-entity.validator.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/const/mf-sg-const.ts","./src/app/models/new-product/sme/mortgage-fire/singapore/utils/mf-sg-helper.ts","./src/app/models/new-product/utils/component.helper.ts","./src/app/models/new-product/utils/proposal.helper.ts","./src/app/models/new-product/utils/report.helper.ts","./src/app/models/product/baseMapper.ts","./src/app/pipes/aus-currency.pipe.ts","./src/app/pipes/new-lines.pipe.ts","./src/app/pipes/percent-no-symbol.pipe.ts","./src/app/pipes/percentage.pipe.ts","./src/app/resources/locales.ts","./src/app/services/authentication/authorization.service.ts","./src/app/services/batch-invoice-list.service.ts","./src/app/services/broadcast.service.ts","./src/app/services/clauses-deductibles.service.ts","./src/app/services/client-timeline.service.ts","./src/app/services/custom-messages.service.ts","./src/app/services/customer/client.service.ts","./src/app/services/dal/api.service.ts","./src/app/services/dialog/cdk-dialog.service.ts","./src/app/services/dialog/dialog-wrapper.service.ts","./src/app/services/document/document.service.ts","./src/app/services/error-handler/error-handler.service.ts","./src/app/services/excel-template.service.ts","./src/app/services/excel.service.ts","./src/app/services/file-upload.service.ts","./src/app/services/identity-roles.service.ts","./src/app/services/idle/idle-timer.service.ts","./src/app/services/idle/idle.service.ts","./src/app/services/idle/modal.service.ts","./src/app/services/lst-rate.service.ts","./src/app/services/master-data.service.ts","./src/app/services/master-policy.service.ts","./src/app/services/message-board.service.ts","./src/app/services/new-product/base/product.service.ts","./src/app/services/new-product/base/utils/proposal-available-action-helper.service.ts","./src/app/services/new-product/proposal-activity.service.ts","./src/app/services/new-product/proposal.service.ts","./src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-coverage.service.ts","./src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-message.service.ts","./src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal-print.service.ts","./src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service.ts","./src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-tabchange.service.ts","./src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal-print.service.ts","./src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service.ts","./src/app/services/notifier.service.ts","./src/app/services/open-item-list.service.ts","./src/app/services/policy-customer-login.service.ts","./src/app/services/policy-wording-setup.service.ts","./src/app/services/preset-export.service.ts","./src/app/services/reconcile-list.service.ts","./src/app/services/rm-screen.service.ts","./src/app/services/storages/session-storage.service.ts","./src/app/services/upload-excel.service.ts","./src/app/services/url.service.ts","./src/app/services/user-list.service.ts","./src/app/services/user-profile.service.ts","./src/app/shared/date-formatter.ts","./src/app/shared/ext/extensions.ts","./src/app/shared/global.ts","./src/app/shared/linqts/linq.ts","./src/app/shared/user/identity-role.ts","./src/app/shared/user/identity.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["// Custom Messages\r\nexport const enCustomMessages = {\r\n teamEfficiency: \"Team Efficiency\",\r\n teamMembers: \"Team Members\",\r\n dashboard: \"Dashboard\",\r\n planning: \"Planning\",\r\n profile: \"Profile\",\r\n info: \"Info\",\r\n language: \"Language\",\r\n trend: \"Trend\",\r\n volume: \"Volume\",\r\n myTeam: \"My Team\",\r\n allTeams: \"All Teams\",\r\n teamCalendar: \"Team Calendar\",\r\n saveChanges: \"Save Changes\",\r\n cancel: \"Cancel\",\r\n warehouse: \"app\",\r\n startFreeTrial: \"Start Free Trial\",\r\n buyNow: \"Buy Now\",\r\n getSource: \"Get the source code on GitHub\",\r\n demoInfo:\r\n \"This demo application is built using the following Kendo UI for Angular components.\",\r\n firstName: \"First Name\",\r\n middleName: \"Middle Name\",\r\n lastName: \"Last Name\",\r\n email: \"Email Address\",\r\n phoneNumber: \"Phone Number\",\r\n country: \"Country\",\r\n biography: \"Short Biography\",\r\n public: \"Include in public directory\",\r\n team: \"Team\",\r\n employee: \"Employee\",\r\n contactName: \"Contact Name\",\r\n jobTitle: \"Job Title\",\r\n status: \"Status\",\r\n performance: \"Performance\",\r\n rating: \"Rating\",\r\n engagement: \"Engagement\",\r\n budget: \"Budget\",\r\n contacts: \"Contacts\",\r\n address: \"Address\",\r\n phone: \"Phone\",\r\n gridSearch: \"Search in all columns...\",\r\n exportExcel: \"Export to Excel\",\r\n exportPdf: \"Export to PDF\",\r\n};\r\n\r\n// Kendo Angular Component Messages\r\nexport const enComponentMessages = {\r\n // Grid\r\n \"kendo.grid.groupPanelEmpty\":\r\n \"Drag a column header and drop it here to group by that column\",\r\n \"kendo.grid.noRecords\": \"No records available.\",\r\n \"kendo.grid.pagerFirstPage\": \"Go to the first page\",\r\n \"kendo.grid.pagerPreviousPage\": \"Go to the previous page\",\r\n \"kendo.grid.pagerNextPage\": \"Go to the next page\",\r\n \"kendo.grid.pagerLastPage\": \"Go to the last page\",\r\n \"kendo.grid.pagerPage\": \"Page\",\r\n \"kendo.grid.pagerOf\": \"of\",\r\n \"kendo.grid.pagerItems\": \"items\",\r\n \"kendo.grid.pagerItemsPerPage\": \"items per page\",\r\n \"kendo.grid.pagerPageNumberInputTitle\": \"Page Number\",\r\n \"kendo.grid.filter\": \"Filter\",\r\n \"kendo.grid.filterEqOperator\": \"Is equal to\",\r\n \"kendo.grid.filterNotEqOperator\": \"Is not equal to\",\r\n \"kendo.grid.filterIsNullOperator\": \"Is null\",\r\n \"kendo.grid.filterIsNotNullOperator\": \"Is not null\",\r\n \"kendo.grid.filterIsEmptyOperator\": \"Is empty\",\r\n \"kendo.grid.filterIsNotEmptyOperator\": \"Is not empty\",\r\n \"kendo.grid.filterStartsWithOperator\": \"Starts with\",\r\n \"kendo.grid.filterContainsOperator\": \"Contains\",\r\n \"kendo.grid.filterNotContainsOperator\": \"Does not contain\",\r\n \"kendo.grid.filterEndsWithOperator\": \"Ends with\",\r\n \"kendo.grid.filterGteOperator\": \"Is greater than or equal to\",\r\n \"kendo.grid.filterGtOperator\": \"Is greater than\",\r\n \"kendo.grid.filterLteOperator\": \"Is less than or equal to\",\r\n \"kendo.grid.filterLtOperator\": \"Is less than\",\r\n \"kendo.grid.filterIsTrue\": \"is true\",\r\n \"kendo.grid.filterIsFalse\": \"is false\",\r\n \"kendo.grid.filterBooleanAll\": \"(All)\",\r\n \"kendo.grid.filterAfterOrEqualOperator\": \"Is after or equal to\",\r\n \"kendo.grid.filterAfterOperator\": \"Is after\",\r\n \"kendo.grid.filterBeforeOperator\": \"Is before\",\r\n \"kendo.grid.filterBeforeOrEqualOperator\": \"Is before or equal to\",\r\n \"kendo.grid.filterFilterButton\": \"Filter\",\r\n \"kendo.grid.filterClearButton\": \"Clear\",\r\n \"kendo.grid.filterAndLogic\": \"And\",\r\n \"kendo.grid.filterOrLogic\": \"Or\",\r\n \"kendo.grid.filterDateToggle\": \"Toggle calendar\",\r\n \"kendo.grid.filterDateToday\": \"Today\",\r\n \"kendo.grid.filterNumericDecrement\": \"Decrease value\",\r\n \"kendo.grid.filterNumericIncrement\": \"Increase value\",\r\n \"kendo.grid.loading\": \"Loading\",\r\n \"kendo.grid.sort\": \"Sort\",\r\n \"kendo.grid.columnMenu\": \"Column Menu\",\r\n \"kendo.grid.columns\": \"Columns\",\r\n \"kendo.grid.lock\": \"Lock\",\r\n \"kendo.grid.unlock\": \"Unlock\",\r\n \"kendo.grid.stick\": \"Stick\",\r\n \"kendo.grid.unstick\": \"Unstick\",\r\n \"kendo.grid.setColumnPosition\": \"Set Column Position\",\r\n \"kendo.grid.sortAscending\": \"Sort Ascending\",\r\n \"kendo.grid.sortDescending\": \"Sort Descending\",\r\n \"kendo.grid.columnsApply\": \"Apply\",\r\n \"kendo.grid.columnsReset\": \"Reset\",\r\n \"kendo.grid.sortable\": \"Sortable\",\r\n \"kendo.grid.sortedAscending\": \"Sorted ascending\",\r\n \"kendo.grid.sortedDescending\": \"Sorted descending\",\r\n \"kendo.grid.sortedDefault\": \"Not sorted\",\r\n\r\n // DropDowns\r\n \"kendo.autocomplete.noDataText\": \"No data found\",\r\n \"kendo.autocomplete.clearTitle\": \"Clear\",\r\n \"kendo.combobox.noDataText\": \"No data found\",\r\n \"kendo.combobox.clearTitle\": \"Clear\",\r\n \"kendo.dropdownlist.noDataText\": \"No data found\",\r\n \"kendo.dropdownlist.clearTitle\": \"Clear\",\r\n\r\n // Calendar\r\n \"kendo.calendar.today\": \"TODAY\",\r\n\r\n // TextBox\r\n \"kendo.textbox.clearTitle\": \"Clear\",\r\n\r\n // DatePicker\r\n \"kendo.datepicker.today\": \"TODAY\",\r\n \"kendo.datepicker.toggle\": \"Toggle calendar\",\r\n\r\n // DateInput\r\n \"kendo.dateinput.increment\": \"Increase value\",\r\n \"kendo.dateinput.decrement\": \"Decrease value\",\r\n\r\n // NumericTextBox\r\n \"kendo.numerictextbox.increment\": \"Increase value\",\r\n \"kendo.numerictextbox.decrement\": \"Decrease value\",\r\n\r\n // DateTimePicker\r\n \"kendo.datetimepicker.dateTab\": \"Date\",\r\n \"kendo.datetimepicker.dateTabLabel\": \"Date tab\",\r\n \"kendo.datetimepicker.timeTab\": \"Time\",\r\n \"kendo.datetimepicker.timeTabLabel\": \"Time tab\",\r\n \"kendo.datetimepicker.toggle\": \"Toggle popup\",\r\n \"kendo.datetimepicker.accept\": \"Set\",\r\n \"kendo.datetimepicker.acceptLabel\": \"Set\",\r\n \"kendo.datetimepicker.cancel\": \"Cancel\",\r\n \"kendo.datetimepicker.cancelLabel\": \"Cancel\",\r\n \"kendo.datetimepicker.now\": \"NOW\",\r\n \"kendo.datetimepicker.nowLabel\": \"Select now\",\r\n \"kendo.datetimepicker.today\": \"TODAY\",\r\n \"kendo.datetimepicker.prevButtonTitle\": \"Navigate to previous view\",\r\n \"kendo.datetimepicker.nextButtonTitle\": \"Navigate to next view\",\r\n\r\n // TimePicker\r\n \"kendo.timepicker.accept\": \"Set\",\r\n \"kendo.timepicker.acceptLabel\": \"Set\",\r\n \"kendo.timepicker.cancel\": \"Cancel\",\r\n \"kendo.timepicker.cancelLabel\": \"Cancel\",\r\n \"kendo.timepicker.now\": \"Now\",\r\n \"kendo.timepicker.nowLabel\": \"Now\",\r\n \"kendo.timepicker.toggle\": \"Toggle time list\",\r\n\r\n // FileSelect\r\n \"kendo.fileselect.cancel\": \"Cancel\",\r\n \"kendo.fileselect.clearSelectedFiles\": \"Clear\",\r\n \"kendo.fileselect.dropFilesHere\": \"Drop files here to upload\",\r\n \"kendo.fileselect.externalDropFilesHere\":\r\n \"Drag and drop files here to upload\",\r\n \"kendo.fileselect.filesBatchStatus\": \"files\",\r\n \"kendo.fileselect.filesBatchStatusFailed\": \"files failed to upload.\",\r\n \"kendo.fileselect.filesBatchStatusUploaded\": \"files successfully uploaded.\",\r\n \"kendo.fileselect.fileStatusFailed\": \"File failed to upload.\",\r\n \"kendo.fileselect.fileStatusUploaded\": \"File successfully uploaded.\",\r\n \"kendo.fileselect.headerStatusPaused\": \"Paused\",\r\n \"kendo.fileselect.headerStatusUploaded\": \"Done\",\r\n \"kendo.fileselect.headerStatusUploading\": \"Uploading...\",\r\n \"kendo.fileselect.invalidFileExtension\": \"File type not allowed.\",\r\n \"kendo.fileselect.invalidMaxFileSize\": \"File size too large.\",\r\n \"kendo.fileselect.invalidMinFileSize\": \"File size too small.\",\r\n \"kendo.fileselect.remove\": \"Remove\",\r\n \"kendo.fileselect.retry\": \"Retry\",\r\n \"kendo.fileselect.select\": \"Select files...\",\r\n \"kendo.fileselect.uploadSelectedFiles\": \"Upload files\",\r\n\r\n // Scheduler\r\n \"kendo.scheduler.agendaViewTitle\": \"Agenda\",\r\n \"kendo.scheduler.allDay\": \"all day\",\r\n \"kendo.scheduler.allEvents\": \"All events\",\r\n \"kendo.scheduler.calendarToday\": \"TODAY\",\r\n \"kendo.scheduler.cancel\": \"Cancel\",\r\n \"kendo.scheduler.save\": \"Save\",\r\n \"kendo.scheduler.editorEventTitle\": \"Title\",\r\n \"kendo.scheduler.editorEventStart\": \"Start\",\r\n \"kendo.scheduler.editorEventStartTimeZone\": \"Start Time Zone\",\r\n \"kendo.scheduler.editorEventEnd\": \"End\",\r\n \"kendo.scheduler.editorEventEndTimeZone\": \"End Time Zone\",\r\n \"kendo.scheduler.dateHeader\": \"Date\",\r\n \"kendo.scheduler.dayViewTitle\": \"Day\",\r\n \"kendo.scheduler.deleteConfirmation\":\r\n \"Are you sure you want to delete this event?\",\r\n \"kendo.scheduler.deleteDialogTitle\": \"Delete Event\",\r\n \"kendo.scheduler.deleteOccurrence\": \"Delete current occurrence\",\r\n \"kendo.scheduler.deleteRecurringConfirmation\":\r\n \"Do you want to delete only this event occurrence or the whole series?\",\r\n \"kendo.scheduler.deleteRecurringDialogTitle\": \"Delete Recurring Item\",\r\n \"kendo.scheduler.deleteSeries\": \"Delete the series\",\r\n \"kendo.scheduler.deleteTitle\": \"Delete\",\r\n \"kendo.scheduler.destroy\": \"Delete\",\r\n \"kendo.scheduler.editOccurrence\": \"Edit current occurrence\",\r\n \"kendo.scheduler.editorEventAllDay\": \"All Day Event\",\r\n \"kendo.scheduler.editorEventDescription\": \"Description\",\r\n \"kendo.scheduler.editorEventSeparateTimeZones\": \"End in different Time Zone\",\r\n \"kendo.scheduler.editorEventTimeZone\": \"Specify Time Zone\",\r\n \"kendo.scheduler.editorTitle\": \"Event\",\r\n \"kendo.scheduler.editRecurringConfirmation\":\r\n \"Do you want to edit only this event occurrence or the whole series?\",\r\n \"kendo.scheduler.editRecurringDialogTitle\": \"Edit Recurring Item\",\r\n \"kendo.scheduler.editSeries\": \"Edit the series\",\r\n \"kendo.scheduler.eventHeader\": \"Event\",\r\n \"kendo.scheduler.monthViewTitle\": \"Month\",\r\n \"kendo.scheduler.multiDayViewTitle\": \"Multi-Day\",\r\n \"kendo.scheduler.nextTitle\": \"Next\",\r\n \"kendo.scheduler.previousTitle\": \"Previous\",\r\n \"kendo.scheduler.recurrenceEditorDailyInterval\": \"day(s)\",\r\n \"kendo.scheduler.recurrenceEditorDailyRepeatEvery\": \"Repeat every\",\r\n \"kendo.scheduler.recurrenceEditorEndAfter\": \"After\",\r\n \"kendo.scheduler.recurrenceEditorEndLabel\": \"End\",\r\n \"kendo.scheduler.recurrenceEditorEndNever\": \"Never\",\r\n \"kendo.scheduler.recurrenceEditorEndOccurrence\": \"occurrence(s)\",\r\n \"kendo.scheduler.recurrenceEditorEndOn\": \"On\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesDaily\": \"Daily\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesMonthly\": \"Monthly\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesNever\": \"Never\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesWeekly\": \"Weekly\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesYearly\": \"Yearly\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyDay\": \"Day\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyInterval\": \"month(s)\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyRepeatEvery\": \"Repeat every\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyRepeatOn\": \"Repeat on\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsFirst\": \"First\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsFourth\": \"Fourth\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsLast\": \"Last\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsSecond\": \"Second\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsThird\": \"Third\",\r\n \"kendo.scheduler.recurrenceEditorRepeat\": \"Repeat\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysDay\": \"Day\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysWeekday\": \"Weekday\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysWeekendday\": \"Weekend Day\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyInterval\": \"week(s)\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyRepeatEvery\": \"Repeat every\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyRepeatOn\": \"Repeat on\",\r\n \"kendo.scheduler.recurrenceEditorYearlyInterval\": \"year(s)\",\r\n \"kendo.scheduler.recurrenceEditorYearlyOf\": \"of\",\r\n \"kendo.scheduler.recurrenceEditorYearlyRepeatEvery\": \"Repeat every\",\r\n \"kendo.scheduler.recurrenceEditorYearlyRepeatOn\": \"Repeat on\",\r\n \"kendo.scheduler.showFullDay\": \"Show full day\",\r\n \"kendo.scheduler.showWorkDay\": \"Show business hours\",\r\n \"kendo.scheduler.timeHeader\": \"Time\",\r\n \"kendo.scheduler.timelineMonthViewTitle\": \"Timeline Month\",\r\n \"kendo.scheduler.timelineViewTitle\": \"Timeline\",\r\n \"kendo.scheduler.timelineWeekViewTitle\": \"Timeline Week\",\r\n \"kendo.scheduler.today\": \"Today\",\r\n \"kendo.scheduler.weekViewTitle\": \"Week\",\r\n \"kendo.scheduler.workWeekViewTitle\": \"Work Week\",\r\n\r\n // RecurrenceEditor\r\n \"kendo.recurrenceeditor.dailyInterval\": \"day(s)\",\r\n \"kendo.recurrenceeditor.dailyRepeatEvery\": \"Repeat every\",\r\n \"kendo.recurrenceeditor.endAfter\": \"After\",\r\n \"kendo.recurrenceeditor.endLabel\": \"End\",\r\n \"kendo.recurrenceeditor.endNever\": \"Never\",\r\n \"kendo.recurrenceeditor.endOccurrence\": \"occurrence(s)\",\r\n \"kendo.recurrenceeditor.endOn\": \"On\",\r\n \"kendo.recurrenceeditor.frequenciesDaily\": \"Daily\",\r\n \"kendo.recurrenceeditor.frequenciesMonthly\": \"Monthly\",\r\n \"kendo.recurrenceeditor.frequenciesNever\": \"Never\",\r\n \"kendo.recurrenceeditor.frequenciesWeekly\": \"Weekly\",\r\n \"kendo.recurrenceeditor.frequenciesYearly\": \"Yearly\",\r\n \"kendo.recurrenceeditor.monthlyDay\": \"Day\",\r\n \"kendo.recurrenceeditor.monthlyInterval\": \"month(s)\",\r\n \"kendo.recurrenceeditor.monthlyRepeatEvery\": \"Repeat every\",\r\n \"kendo.recurrenceeditor.monthlyRepeatOn\": \"Repeat on\",\r\n \"kendo.recurrenceeditor.offsetPositionsFourth\": \"Fourth\",\r\n \"kendo.recurrenceeditor.offsetPositionsLast\": \"Last\",\r\n \"kendo.recurrenceeditor.offsetPositionsSecond\": \"Second\",\r\n \"kendo.recurrenceeditor.offsetPositionsThird\": \"Third\",\r\n \"kendo.recurrenceeditor.repeat\": \"Repeat\",\r\n \"kendo.recurrenceeditor.weekdaysDay\": \"Day\",\r\n \"kendo.recurrenceeditor.weekdaysWeekday\": \"Weekday\",\r\n \"kendo.recurrenceeditor.weekdaysWeekendday\": \"Weekend Day\",\r\n \"kendo.recurrenceeditor.weeklyInterval\": \"week(s)\",\r\n \"kendo.recurrenceeditor.weeklyRepeatEvery\": \"Repeat every\",\r\n \"kendo.recurrenceeditor.weeklyRepeatOn\": \"Repeat on\",\r\n \"kendo.recurrenceeditor.yearlyInterval\": \"year(s)\",\r\n \"kendo.recurrenceeditor.yearlyOf\": \"of\",\r\n \"kendo.recurrenceeditor.yearlyRepeatEvery\": \"Repeat every\",\r\n \"kendo.recurrenceeditor.yearlyRepeatOn\": \"Repeat on\",\r\n};\r\n","// Custom Messages\r\nexport const esCustomMessages = {\r\n teamEfficiency: 'Eficiencia del equipo',\r\n teamMembers: 'Miembros del equipo',\r\n dashboard: 'Tablero',\r\n planning: 'Planificación',\r\n info: 'Informacion',\r\n profile: 'Perfil',\r\n language: 'Idioma',\r\n trend: 'Tendencia',\r\n volume: 'Volumen',\r\n myTeam: 'Mi equipo',\r\n allTeams: 'Todos los equipos',\r\n teamCalendar: 'Calendario del equipo',\r\n saveChanges: 'Guardar cambios',\r\n cancel: 'Cancelar',\r\n warehouse: 'Almacén De Café',\r\n startFreeTrial: 'Iniciar prueba gratuita',\r\n buyNow: 'Comprar ahora',\r\n getSource: 'Obtenga el código fuente en GitHub',\r\n demoInfo:\r\n 'Esta aplicación de demostración está construida utilizando los siguientes componentes de Kendo UI for Angular.',\r\n firstName: 'Primer nombre',\r\n middleName: 'Segundo nombre',\r\n lastName: 'Apellido',\r\n email: 'Dirección de correo electrónico',\r\n phoneNumber: 'Número de teléfono',\r\n country: 'País',\r\n biography: 'Biografía corta',\r\n public: 'Incluir en directorio público',\r\n team: 'Equipo',\r\n employee: 'Empleado',\r\n contactName: 'Nombre de contacto',\r\n jobTitle: 'Título del trabajo',\r\n status: 'Estado',\r\n performance: 'Rendimiento',\r\n rating: 'Clasificación',\r\n engagement: 'Compromiso',\r\n budget: 'Presupuesto',\r\n contacts: 'Contactos',\r\n address: 'Dirección',\r\n phone: 'Teléfono',\r\n gridSearch: 'Buscar en todas las columnas ...',\r\n exportExcel: 'Exportar a Excel',\r\n exportPdf: 'Exportar a PDF'\r\n};\r\n\r\n// Kendo Angular Component Messages\r\nexport const esComponentMessages = {\r\n // Grid\r\n 'kendo.grid.groupPanelEmpty': 'Arrastre el título de una columna y suéltelo aquí para agrupar por ese criterio',\r\n 'kendo.grid.noRecords': 'No hay datos disponibles.',\r\n 'kendo.grid.pagerFirstPage': 'Ir a la primera página',\r\n 'kendo.grid.pagerPreviousPage': 'Ir a la página anterior',\r\n 'kendo.grid.pagerNextPage': 'Ir a la página siguiente',\r\n 'kendo.grid.pagerLastPage': 'Ir a la última página',\r\n 'kendo.grid.pagerPage': 'Página',\r\n 'kendo.grid.pagerOf': 'de',\r\n 'kendo.grid.pagerItems': 'ítems',\r\n 'kendo.grid.pagerItemsPerPage': 'ítems por página',\r\n 'kendo.grid.pagerPageNumberInputTitle': 'Número de Página',\r\n 'kendo.grid.filter': 'Filtrar',\r\n 'kendo.grid.filterEqOperator': 'Es igual a',\r\n 'kendo.grid.filterNotEqOperator': 'No es igual a',\r\n 'kendo.grid.filterIsNullOperator': 'Es nulo',\r\n 'kendo.grid.filterIsNotNullOperator': 'No es nulo',\r\n 'kendo.grid.filterIsEmptyOperator': 'Está vacío',\r\n 'kendo.grid.filterIsNotEmptyOperator': 'No está vacío',\r\n 'kendo.grid.filterStartsWithOperator': 'Comienza con',\r\n 'kendo.grid.filterContainsOperator': 'Contiene',\r\n 'kendo.grid.filterNotContainsOperator': 'No contiene',\r\n 'kendo.grid.filterEndsWithOperator': 'Termina en',\r\n 'kendo.grid.filterGteOperator': 'Es mayor o igual que',\r\n 'kendo.grid.filterGtOperator': 'Es mayor que',\r\n 'kendo.grid.filterLteOperator': 'Es menor o igual que',\r\n 'kendo.grid.filterLtOperator': 'Es menor o igual que',\r\n 'kendo.grid.filterIsTrue': 'Sí',\r\n 'kendo.grid.filterIsFalse': 'No',\r\n 'kendo.grid.filterBooleanAll': '(Todas)',\r\n 'kendo.grid.filterAfterOrEqualOperator': 'Es posterior o igual a',\r\n 'kendo.grid.filterAfterOperator': 'Es posterior',\r\n 'kendo.grid.filterBeforeOperator': 'Es anterior',\r\n 'kendo.grid.filterBeforeOrEqualOperator': 'Es anterior o igual a',\r\n 'kendo.grid.filterFilterButton': 'Filtrar',\r\n 'kendo.grid.filterClearButton': 'Limpiar filtros',\r\n 'kendo.grid.filterAndLogic': 'Y',\r\n 'kendo.grid.filterOrLogic': 'O',\r\n 'kendo.grid.filterDateToggle': 'Mostrar calendario',\r\n 'kendo.grid.filterDateToday': 'Hoy',\r\n 'kendo.grid.filterNumericDecrement': 'Disminuir valor',\r\n 'kendo.grid.filterNumericIncrement': 'Incrementar valor',\r\n 'kendo.grid.loading': 'Cargando',\r\n 'kendo.grid.sort': 'Ordenar',\r\n 'kendo.grid.columnMenu': 'Menú Columna',\r\n 'kendo.grid.columns': 'Columnas',\r\n 'kendo.grid.lock': 'Bloquear',\r\n 'kendo.grid.unlock': 'Desbloquear',\r\n 'kendo.grid.stick': 'Stick',\r\n 'kendo.grid.unstick': 'Unstick',\r\n 'kendo.grid.setColumnPosition': 'Set Column Position',\r\n 'kendo.grid.sortAscending': 'Orden ascendente',\r\n 'kendo.grid.sortDescending': 'Orden descendente',\r\n 'kendo.grid.columnsApply': 'Aplicar',\r\n 'kendo.grid.columnsReset': 'Defecto',\r\n 'kendo.grid.sortable': 'Ordenable',\r\n 'kendo.grid.sortedAscending': 'Ordenado ascendentemente',\r\n 'kendo.grid.sortedDescending': 'Ordenado descendentemente',\r\n 'kendo.grid.sortedDefault': 'No ordenado',\r\n\r\n // DropDowns\r\n 'kendo.autocomplete.noDataText': 'No hay datos disponibles',\r\n 'kendo.autocomplete.clearTitle': 'Borrar',\r\n 'kendo.combobox.noDataText': 'No hay datos disponibles',\r\n 'kendo.combobox.clearTitle': 'Borrar',\r\n 'kendo.dropdownlist.noDataText': 'No hay datos disponibles',\r\n 'kendo.dropdownlist.clearTitle': 'Borrar',\r\n\r\n // Calendar\r\n 'kendo.calendar.today': 'Hoy',\r\n\r\n // TextBox\r\n 'kendo.textbox.clearTitle': 'Borrar',\r\n\r\n // DatePicker\r\n 'kendo.datepicker.today': 'Hoy',\r\n 'kendo.datepicker.toggle': 'Alternar calendario',\r\n\r\n // DateInput\r\n 'kendo.dateinput.increment': 'Incrementar valor',\r\n 'kendo.dateinput.decrement': 'Disminuir valor',\r\n\r\n // NumericTextBox\r\n 'kendo.numerictextbox.increment': 'Incrementar valor',\r\n 'kendo.numerictextbox.decrement': 'Disminuir valor',\r\n\r\n // DateTimePicker\r\n 'kendo.datetimepicker.dateTab': 'Fecha',\r\n 'kendo.datetimepicker.dateTabLabel': 'Mostrar fecha',\r\n 'kendo.datetimepicker.timeTab': 'Hora',\r\n 'kendo.datetimepicker.timeTabLabel': 'Mostrar hora',\r\n 'kendo.datetimepicker.toggle': 'Cambiar calendario',\r\n 'kendo.datetimepicker.accept': 'Acceptar',\r\n 'kendo.datetimepicker.acceptLabel': 'Acceptar',\r\n 'kendo.datetimepicker.cancel': 'Cancelar',\r\n 'kendo.datetimepicker.cancelLabel': 'Cancelar',\r\n 'kendo.datetimepicker.now': 'AHORA',\r\n 'kendo.datetimepicker.nowLabel': 'Ahora',\r\n 'kendo.datetimepicker.today': 'HOY',\r\n 'kendo.datetimepicker.prevButtonTitle': 'Navigate to previous view',\r\n 'kendo.datetimepicker.nextButtonTitle': 'Navigate to next view',\r\n\r\n // TimePicker\r\n 'kendo.timepicker.accept': 'Fijar',\r\n 'kendo.timepicker.acceptLabel': 'Fijar',\r\n 'kendo.timepicker.cancel': 'Cancelar',\r\n 'kendo.timepicker.cancelLabel': 'Cancelar',\r\n 'kendo.timepicker.now': 'Ahora',\r\n 'kendo.timepicker.nowLabel': 'Ahora',\r\n 'kendo.timepicker.toggle': 'Alternar lista de tiempo',\r\n\r\n // FileSelect\r\n 'kendo.fileselect.cancel': 'Cancelar',\r\n 'kendo.fileselect.clearSelectedFiles': 'Borrar',\r\n 'kendo.fileselect.dropFilesHere': 'Arrastre los archivos aquí para subirlos',\r\n 'kendo.fileselect.headerStatusUploaded': 'Completado',\r\n 'kendo.fileselect.headerStatusUploading': 'Subiendo...',\r\n 'kendo.fileselect.invalidFileExtension': 'Tipo de fichero no permitido.',\r\n 'kendo.fileselect.invalidMaxFileSize': 'Tamaño fichero demasiado grande.',\r\n 'kendo.fileselect.invalidMinFileSize': 'Tamaño fichero demasiado pequeño.',\r\n 'kendo.fileselect.remove': 'Quitar',\r\n 'kendo.fileselect.retry': 'Reintentar',\r\n 'kendo.fileselect.select': 'Seleccione...',\r\n 'kendo.fileselect.uploadSelectedFiles': 'Subir archivos',\r\n 'kendo.fileselect.externalDropFilesHere': 'Arrastra aqui los ficheros a subir',\r\n 'kendo.fileselect.filesBatchStatus': 'ficheros',\r\n 'kendo.fileselect.filesBatchStatusFailed': 'fallo al subir ficheros.',\r\n 'kendo.fileselect.filesBatchStatusUploaded': 'ficheros subidos correctamente.',\r\n 'kendo.fileselect.fileStatusFailed': 'Fallo al subir fichero.',\r\n 'kendo.fileselect.fileStatusUploaded': 'Fichero subido correctamente.',\r\n 'kendo.fileselect.headerStatusPaused': 'Pausado',\r\n\r\n // Scheduler\r\n 'kendo.scheduler.agendaViewTitle': 'Agenda',\r\n 'kendo.scheduler.allDay': 'todo el día',\r\n 'kendo.scheduler.allEvents': 'Todos los eventos',\r\n 'kendo.scheduler.calendarToday': 'Hoy',\r\n 'kendo.scheduler.cancel': 'Cancelar',\r\n 'kendo.scheduler.save': 'Save',\r\n 'kendo.scheduler.editorEventTitle': 'Título',\r\n 'kendo.scheduler.editorEventStart': 'Inicio',\r\n 'kendo.scheduler.editorEventStartTimeZone': 'Zona horaria de inicio',\r\n 'kendo.scheduler.editorEventEnd': 'Fin',\r\n 'kendo.scheduler.editorEventEndTimeZone': 'Zona horaria final',\r\n 'kendo.scheduler.dateHeader': 'Fecha',\r\n 'kendo.scheduler.dayViewTitle': 'Título',\r\n 'kendo.scheduler.deleteConfirmation': '¿Está seguro que quiere eliminar este evento?',\r\n 'kendo.scheduler.deleteDialogTitle': 'Eliminar evento',\r\n 'kendo.scheduler.deleteOccurrence': 'Delete current occurrence',\r\n 'kendo.scheduler.deleteRecurringConfirmation': 'Do you want to delete only this event occurrence or the whole series?',\r\n 'kendo.scheduler.deleteRecurringDialogTitle': '¿Quiere eliminar esta ocurrencia del evento o la serie completa?',\r\n 'kendo.scheduler.deleteSeries': 'Eliminar la serie',\r\n 'kendo.scheduler.deleteTitle': 'Eliminar evento',\r\n 'kendo.scheduler.destroy': 'Eliminar',\r\n 'kendo.scheduler.editOccurrence': 'Editar ocurrencia actual',\r\n 'kendo.scheduler.editorEventAllDay': 'Todo el día',\r\n 'kendo.scheduler.editorEventDescription': 'Descripción',\r\n 'kendo.scheduler.editorEventSeparateTimeZones': 'Usar zonas horarias separadas para el inicio y el fin',\r\n 'kendo.scheduler.editorEventTimeZone': 'Zona horaria de fin',\r\n 'kendo.scheduler.editorTitle': 'Título',\r\n 'kendo.scheduler.editRecurringConfirmation': '¿Quiere editar esta ocurrencia del evento o la serie completa?',\r\n 'kendo.scheduler.editRecurringDialogTitle': 'Editar elemento recurrente',\r\n 'kendo.scheduler.editSeries': 'Editar la serie',\r\n 'kendo.scheduler.eventHeader': 'Evento',\r\n 'kendo.scheduler.monthViewTitle': 'Mes',\r\n 'kendo.scheduler.multiDayViewTitle': 'Multi-Day',\r\n 'kendo.scheduler.nextTitle': 'Siguiente',\r\n 'kendo.scheduler.previousTitle': 'Anterior',\r\n 'kendo.scheduler.recurrenceEditorDailyInterval': 'día(s)',\r\n 'kendo.scheduler.recurrenceEditorDailyRepeatEvery': 'Repetir cada:',\r\n 'kendo.scheduler.recurrenceEditorEndAfter': 'Después',\r\n 'kendo.scheduler.recurrenceEditorEndLabel': 'Fin',\r\n 'kendo.scheduler.recurrenceEditorEndNever': 'Nunca',\r\n 'kendo.scheduler.recurrenceEditorEndOccurrence': 'ocurrencia(s)',\r\n 'kendo.scheduler.recurrenceEditorEndOn': 'On',\r\n 'kendo.scheduler.recurrenceEditorFrequenciesDaily': 'Diariamente',\r\n 'kendo.scheduler.recurrenceEditorFrequenciesMonthly': 'Mensualmente',\r\n 'kendo.scheduler.recurrenceEditorFrequenciesNever': 'Nunca',\r\n 'kendo.scheduler.recurrenceEditorFrequenciesWeekly': 'Semanalmente',\r\n 'kendo.scheduler.recurrenceEditorFrequenciesYearly': 'Anualmente',\r\n 'kendo.scheduler.recurrenceEditorMonthlyDay': 'Día',\r\n 'kendo.scheduler.recurrenceEditorMonthlyInterval': 'mes(es)',\r\n 'kendo.scheduler.recurrenceEditorMonthlyRepeatEvery': 'Repetir cada:',\r\n 'kendo.scheduler.recurrenceEditorMonthlyRepeatOn': 'Repetir en:',\r\n 'kendo.scheduler.recurrenceEditorOffsetPositionsFirst': 'primero',\r\n 'kendo.scheduler.recurrenceEditorOffsetPositionsFourth': 'cuarto',\r\n 'kendo.scheduler.recurrenceEditorOffsetPositionsLast': 'último',\r\n 'kendo.scheduler.recurrenceEditorOffsetPositionsSecond': 'segundo',\r\n 'kendo.scheduler.recurrenceEditorOffsetPositionsThird': 'tercero',\r\n 'kendo.scheduler.recurrenceEditorRepeat': 'Repetir',\r\n 'kendo.scheduler.recurrenceEditorWeekdaysDay': 'día',\r\n 'kendo.scheduler.recurrenceEditorWeekdaysWeekday': 'día de semana',\r\n 'kendo.scheduler.recurrenceEditorWeekdaysWeekendday': 'Día de fin de semana',\r\n 'kendo.scheduler.recurrenceEditorWeeklyInterval': 'semana(s)',\r\n 'kendo.scheduler.recurrenceEditorWeeklyRepeatEvery': 'Repetir cada:',\r\n 'kendo.scheduler.recurrenceEditorWeeklyRepeatOn': 'Repetir en:',\r\n 'kendo.scheduler.recurrenceEditorYearlyInterval': 'año(s)',\r\n 'kendo.scheduler.recurrenceEditorYearlyOf': 'de',\r\n 'kendo.scheduler.recurrenceEditorYearlyRepeatEvery': 'Repetir cada:',\r\n 'kendo.scheduler.recurrenceEditorYearlyRepeatOn': 'Repetir en:',\r\n 'kendo.scheduler.showFullDay': 'Mostrar día completo',\r\n 'kendo.scheduler.showWorkDay': 'Mostrar horas laborables',\r\n 'kendo.scheduler.timeHeader': 'Hora',\r\n 'kendo.scheduler.timelineMonthViewTitle': 'Timeline Month',\r\n 'kendo.scheduler.timelineViewTitle': 'Línea de tiempo',\r\n 'kendo.scheduler.timelineWeekViewTitle': 'Timeline Week',\r\n 'kendo.scheduler.today': 'Hoy',\r\n 'kendo.scheduler.weekViewTitle': 'Semana',\r\n 'kendo.scheduler.workWeekViewTitle': 'Semana laboral',\r\n\r\n // RecurrenceEditor\r\n 'kendo.recurrenceeditor.dailyInterval': 'día(s)',\r\n 'kendo.recurrenceeditor.dailyRepeatEvery': 'Repetir cada:',\r\n 'kendo.recurrenceeditor.endAfter': 'Después',\r\n 'kendo.recurrenceeditor.endLabel': 'Fin:',\r\n 'kendo.recurrenceeditor.endNever': 'Nunca',\r\n 'kendo.recurrenceeditor.endOccurrence': 'ocurrencia(s)',\r\n 'kendo.recurrenceeditor.endOn': 'En',\r\n 'kendo.recurrenceeditor.frequenciesDaily': 'Diariamente',\r\n 'kendo.recurrenceeditor.frequenciesMonthly': 'Mensualmente',\r\n 'kendo.recurrenceeditor.frequenciesNever': 'Nunca',\r\n 'kendo.recurrenceeditor.frequenciesWeekly': 'Semanalmente',\r\n 'kendo.recurrenceeditor.frequenciesYearly': 'Anualmente',\r\n 'kendo.recurrenceeditor.monthlyDay': 'Día',\r\n 'kendo.recurrenceeditor.monthlyInterval': 'mes(es)',\r\n 'kendo.recurrenceeditor.monthlyRepeatEvery': 'Repetir cada:',\r\n 'kendo.recurrenceeditor.monthlyRepeatOn': 'Repetir en:',\r\n 'kendo.recurrenceeditor.offsetPositionsFourth': 'cuarto',\r\n 'kendo.recurrenceeditor.offsetPositionsLast': 'último',\r\n 'kendo.recurrenceeditor.offsetPositionsSecond': 'segundo',\r\n 'kendo.recurrenceeditor.offsetPositionsThird': 'tercero',\r\n 'kendo.recurrenceeditor.repeat': 'Repetir',\r\n 'kendo.recurrenceeditor.weekdaysDay': 'día',\r\n 'kendo.recurrenceeditor.weekdaysWeekday': 'día de semana',\r\n 'kendo.recurrenceeditor.weekdaysWeekendday': 'día de fin de semana',\r\n 'kendo.recurrenceeditor.weeklyInterval': 'semana(s)',\r\n 'kendo.recurrenceeditor.weeklyRepeatEvery': 'Repetir cada:',\r\n 'kendo.recurrenceeditor.weeklyRepeatOn': 'Repetir en:',\r\n 'kendo.recurrenceeditor.yearlyInterval': 'año(s)',\r\n 'kendo.recurrenceeditor.yearlyOf': 'de',\r\n 'kendo.recurrenceeditor.yearlyRepeatEvery': 'Repetir cada:',\r\n 'kendo.recurrenceeditor.yearlyRepeatOn': 'Repetir en:'\r\n};\r\n","// Custom Messages\r\nexport const frCustomMessages = {\r\n teamEfficiency: \"Efficacité de l'équipe\",\r\n teamMembers: \"Membres de l'équipe\",\r\n dashboard: 'Tableau de bord',\r\n planning: 'Planification',\r\n info: 'Info',\r\n profile: 'Profil',\r\n language: 'Langue',\r\n trend: 'Tendance',\r\n volume: 'Le volume',\r\n myTeam: 'Mon équipe',\r\n allTeams: 'Toutes les équipes',\r\n teamCalendar: \"Calendrier d'équipe\",\r\n saveChanges: 'Sauvegarder les modifications',\r\n cancel: 'Annuler',\r\n warehouse: 'Entrepôt De Café',\r\n startFreeTrial: \"Démarrer l'essai gratuit\",\r\n buyNow: 'Acheter maintenant',\r\n getSource: 'Récupérer le code source sur GitHub',\r\n demoInfo:\r\n \"Cette application de démonstration est construite à l'aide des composants Kendo UI for Angular.\",\r\n firstName: 'Prénom',\r\n middleName: 'Deuxième nom',\r\n lastName: 'Nom de famille',\r\n email: 'Adresse e-mail',\r\n phoneNumber: 'Numéro de téléphone',\r\n country: 'Pays',\r\n biography: 'Biographie courte',\r\n public: 'Inclure dans le répertoire public',\r\n team: 'Équipe',\r\n employee: 'Employé',\r\n contactName: 'Nom du contact',\r\n jobTitle: 'Titre du poste',\r\n status: 'Statut',\r\n performance: 'Performance',\r\n rating: 'Évaluation',\r\n engagement: 'Engagement',\r\n budget: 'Budget',\r\n contacts: 'Contacts',\r\n address: 'Adresse',\r\n phone: 'Téléphone',\r\n gridSearch: 'Rechercher dans toutes les colonnes ...',\r\n exportExcel: 'Exporter vers Excel',\r\n exportPdf: 'Exporter au format PDF'\r\n};\r\n\r\n// Kendo Angular Component Messages\r\nexport const frComponentMessages = {\r\n // Grid\r\n 'kendo.grid.groupPanelEmpty': 'Faites glisser un en-tête de colonne et déposer ici pour grouper par cette colonne.',\r\n 'kendo.grid.noRecords': 'Aucun élément disponible.',\r\n 'kendo.grid.pagerFirstPage': 'Aller à la première page',\r\n 'kendo.grid.pagerPreviousPage': 'Aller à la page précédente',\r\n 'kendo.grid.pagerNextPage': 'Aller à la page suivante',\r\n 'kendo.grid.pagerLastPage': 'Aller à la dernière page',\r\n 'kendo.grid.pagerPage': 'Page',\r\n 'kendo.grid.pagerOf': 'de',\r\n 'kendo.grid.pagerItems': 'éléments',\r\n 'kendo.grid.pagerItemsPerPage': 'éléments par page',\r\n 'kendo.grid.pagerPageNumberInputTitle': 'Page Number',\r\n 'kendo.grid.filter': 'Filtrer',\r\n 'kendo.grid.filterEqOperator': 'Est égal à',\r\n 'kendo.grid.filterNotEqOperator': 'N’est pas égal à',\r\n 'kendo.grid.filterIsNullOperator': 'Est nulle',\r\n 'kendo.grid.filterIsNotNullOperator': 'N’est pas nulle',\r\n 'kendo.grid.filterIsEmptyOperator': 'Est vide',\r\n 'kendo.grid.filterIsNotEmptyOperator': 'N’est pas vide',\r\n 'kendo.grid.filterStartsWithOperator': 'Commence par',\r\n 'kendo.grid.filterContainsOperator': 'Contient',\r\n 'kendo.grid.filterNotContainsOperator': 'Ne contient pas',\r\n 'kendo.grid.filterEndsWithOperator': 'Se termine par',\r\n 'kendo.grid.filterGteOperator': 'Est supérieur ou égal à',\r\n 'kendo.grid.filterGtOperator': 'Est supérieur à',\r\n 'kendo.grid.filterLteOperator': 'Est inférieur ou égal à',\r\n 'kendo.grid.filterLtOperator': 'Est inférieur',\r\n 'kendo.grid.filterIsTrue': 'est vrai',\r\n 'kendo.grid.filterIsFalse': 'est fausse',\r\n 'kendo.grid.filterBooleanAll': '(Tout)',\r\n 'kendo.grid.filterAfterOrEqualOperator': 'Est postérieur ou égal à',\r\n 'kendo.grid.filterAfterOperator': 'Est postérieur',\r\n 'kendo.grid.filterBeforeOperator': 'Est antérieur',\r\n 'kendo.grid.filterBeforeOrEqualOperator': 'Est antérieur ou égal à',\r\n 'kendo.grid.filterFilterButton': 'Filtrer',\r\n 'kendo.grid.filterClearButton': 'Effacer filtre',\r\n 'kendo.grid.filterAndLogic': 'Et',\r\n 'kendo.grid.filterOrLogic': 'Ou',\r\n 'kendo.grid.filterDateToggle': 'Afficher le calendrier',\r\n 'kendo.grid.filterDateToday': \"Aujourd'hui\",\r\n 'kendo.grid.filterNumericDecrement': 'Diminuer la valeur',\r\n 'kendo.grid.filterNumericIncrement': 'Augmenter la valeur',\r\n 'kendo.grid.loading': 'Chargement',\r\n 'kendo.grid.sort': 'Tri',\r\n 'kendo.grid.columnMenu': 'Menu des colonnes',\r\n 'kendo.grid.columns': 'Colonnes',\r\n 'kendo.grid.lock': 'Bloquer',\r\n 'kendo.grid.unlock': 'Débloquer',\r\n 'kendo.grid.stick': 'Stick',\r\n 'kendo.grid.unstick': 'Unstick',\r\n 'kendo.grid.setColumnPosition': 'Set Column Position',\r\n 'kendo.grid.sortAscending': 'Tri croissant',\r\n 'kendo.grid.sortDescending': 'Tri décroissant',\r\n 'kendo.grid.columnsApply': 'Appliquer',\r\n 'kendo.grid.columnsReset': 'Réinitialiser',\r\n 'kendo.grid.sortable': 'Sortable',\r\n 'kendo.grid.sortedAscending': 'Sorted ascending',\r\n 'kendo.grid.sortedDescending': 'Sorted descending',\r\n 'kendo.grid.sortedDefault': 'Not sorted',\r\n\r\n // DropDowns\r\n 'kendo.autocomplete.noDataText': 'Aucun enregistrement trouvé',\r\n 'kendo.autocomplete.clearTitle': 'Effacer',\r\n 'kendo.combobox.noDataText': 'Aucun enregistrement trouvé',\r\n 'kendo.combobox.clearTitle': 'Effacer',\r\n 'kendo.dropdownlist.noDataText': 'Aucun enregistrement trouvé',\r\n 'kendo.dropdownlist.clearTitle': 'Effacer',\r\n\r\n // Calendar\r\n 'kendo.calendar.today': `Aujourd'hui`,\r\n\r\n // TextBox\r\n 'kendo.textbox.clearTitle': 'Effacer',\r\n\r\n // DatePicker\r\n 'kendo.datepicker.today': `Aujourd'hui`,\r\n 'kendo.datepicker.toggle': 'Afficher le calendrier',\r\n\r\n // DateInput\r\n 'kendo.dateinput.increment': 'Augmenter la valeur',\r\n 'kendo.dateinput.decrement': 'Diminuer la valeur',\r\n\r\n // NumericTextBox\r\n 'kendo.numerictextbox.increment': 'Augmenter la valeur',\r\n 'kendo.numerictextbox.decrement': 'Diminuer la valeur',\r\n\r\n // DateTimePicker\r\n 'kendo.datetimepicker.dateTab': 'Date',\r\n 'kendo.datetimepicker.dateTabLabel': 'Onglet de date',\r\n 'kendo.datetimepicker.timeTab': 'Heures',\r\n 'kendo.datetimepicker.timeTabLabel': 'Onglet des heures',\r\n 'kendo.datetimepicker.toggle': 'Afficher le calendrier',\r\n 'kendo.datetimepicker.accept': 'Valider',\r\n 'kendo.datetimepicker.acceptLabel': 'Valider',\r\n 'kendo.datetimepicker.cancel': 'Annuler',\r\n 'kendo.datetimepicker.cancelLabel': 'Annuler',\r\n 'kendo.datetimepicker.now': 'Maintenant',\r\n 'kendo.datetimepicker.nowLabel': 'Sélectionner maintenant',\r\n 'kendo.datetimepicker.today': \"Aujourd'hui\",\r\n 'kendo.datetimepicker.prevButtonTitle': 'Navigate to previous view',\r\n 'kendo.datetimepicker.nextButtonTitle': 'Navigate to next view',\r\n\r\n // TimePicker\r\n \"kendo.timepicker.accept\": \"Valider\",\r\n \"kendo.timepicker.acceptLabel\": \"Valider\",\r\n \"kendo.timepicker.cancel\": \"Annuler\",\r\n \"kendo.timepicker.cancelLabel\": \"Annuler\",\r\n \"kendo.timepicker.now\": \"Maintenant\",\r\n \"kendo.timepicker.nowLabel\": \"Maintenant\",\r\n \"kendo.timepicker.toggle\": \"Afficher le sélecteur\",\r\n\r\n // FileSelect\r\n \"kendo.fileselect.cancel\": \"Annuler\",\r\n \"kendo.fileselect.clearSelectedFiles\": \"Supprimer\",\r\n \"kendo.fileselect.dropFilesHere\": \"déposer les fichiers à télécharger ici\",\r\n \"kendo.fileselect.headerStatusUploaded\": \"Complété\",\r\n \"kendo.fileselect.headerStatusUploading\": \"Téléchargement...\",\r\n \"kendo.fileselect.invalidFileExtension\": \"Type de fichier non autorisé.\",\r\n \"kendo.fileselect.invalidMaxFileSize\": \"Le fichier est trop volumineux.\",\r\n \"kendo.fileselect.invalidMinFileSize\": \"Le fichier est trop petit.\",\r\n \"kendo.fileselect.remove\": \"Retirer\",\r\n \"kendo.fileselect.retry\": \"Réessayer\",\r\n \"kendo.fileselect.select\": \"Sélectionner...\",\r\n \"kendo.fileselect.uploadSelectedFiles\": \"Télécharger des fichiers\",\r\n \"kendo.fileselect.externalDropFilesHere\": \"Drag and drop files here to upload\",\r\n \"kendo.fileselect.filesBatchStatus\": \"files\",\r\n \"kendo.fileselect.filesBatchStatusFailed\": \"files failed to upload.\",\r\n \"kendo.fileselect.filesBatchStatusUploaded\": \"files successfully uploaded.\",\r\n \"kendo.fileselect.fileStatusFailed\": \"File failed to upload.\",\r\n \"kendo.fileselect.fileStatusUploaded\": \"File successfully uploaded.\",\r\n \"kendo.fileselect.headerStatusPaused\": \"Paused\",\r\n\r\n // Scheduler\r\n \"kendo.scheduler.agendaViewTitle\": \"Agenda\",\r\n \"kendo.scheduler.allDay\": \"toute la journée\",\r\n \"kendo.scheduler.allEvents\": \"Tous les évènements\",\r\n \"kendo.scheduler.calendarToday\": \"AUJOURD'HUI\",\r\n \"kendo.scheduler.cancel\": \"Annuler\",\r\n \"kendo.scheduler.save\": \"Sauvegarder\",\r\n \"kendo.scheduler.editorEventTitle\": \"Evènement\",\r\n \"kendo.scheduler.editorEventStart\": \"Début\",\r\n \"kendo.scheduler.editorEventStartTimeZone\": \"Début Zone Horaire\",\r\n \"kendo.scheduler.editorEventEnd\": \"Fin\",\r\n \"kendo.scheduler.editorEventEndTimeZone\": \"Fin Zone Horaire\",\r\n \"kendo.scheduler.dateHeader\": \"Date\",\r\n \"kendo.scheduler.dayViewTitle\": \"Jour\",\r\n \"kendo.scheduler.deleteConfirmation\": \"Etes-vous sûr de vouloir supprimer cet évènement ?\",\r\n \"kendo.scheduler.deleteDialogTitle\": \"Suppression de l'évènement'\",\r\n \"kendo.scheduler.deleteOccurrence\": \"Supprimer l'occurrence courante\",\r\n \"kendo.scheduler.deleteRecurringConfirmation\": \"Voulez-vous supprimer seulement cette occurrence ou toute la série ?\",\r\n \"kendo.scheduler.deleteRecurringDialogTitle\": \"Voulez-vous supprimer seulement cet évènement ou toute la série ?\",\r\n \"kendo.scheduler.deleteSeries\": \"Supprimer la série\",\r\n \"kendo.scheduler.deleteTitle\": \"Suppression de l'évènement\",\r\n \"kendo.scheduler.destroy\": \"Supprimer\",\r\n \"kendo.scheduler.editOccurrence\": \"Modifier l'occurrence courante\",\r\n \"kendo.scheduler.editorEventAllDay\": \"Toute la journée\",\r\n \"kendo.scheduler.editorEventDescription\": \"Description\",\r\n \"kendo.scheduler.editorEventSeparateTimeZones\": \"Utiliser une Zone Horaire de début et de fin différente\",\r\n \"kendo.scheduler.editorEventTimeZone\": \"Zone Horaire\",\r\n \"kendo.scheduler.editorTitle\": \"Evènement\",\r\n \"kendo.scheduler.editRecurringConfirmation\": \"Voulez-vous modifier seulement cet évènement ou toute la série?\",\r\n \"kendo.scheduler.editRecurringDialogTitle\": \"Modification de l'élément courant\",\r\n \"kendo.scheduler.editSeries\": \"Modifier la série\",\r\n \"kendo.scheduler.eventHeader\": \"Evènement\",\r\n \"kendo.scheduler.monthViewTitle\": \"Mois\",\r\n \"kendo.scheduler.multiDayViewTitle\": \"Multi-Jours\",\r\n \"kendo.scheduler.nextTitle\": \"Prochain\",\r\n \"kendo.scheduler.previousTitle\": \"Précédent\",\r\n \"kendo.scheduler.recurrenceEditorDailyInterval\": \"jour(s)\",\r\n \"kendo.scheduler.recurrenceEditorDailyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.scheduler.recurrenceEditorEndAfter\": \"Après\",\r\n \"kendo.scheduler.recurrenceEditorEndLabel\": \"Fin\",\r\n \"kendo.scheduler.recurrenceEditorEndNever\": \"Jamais\",\r\n \"kendo.scheduler.recurrenceEditorEndOccurrence\": \"occurrence(s)\",\r\n \"kendo.scheduler.recurrenceEditorEndOn\": \"Le\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesDaily\": \"Une fois par jour\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesMonthly\": \"Une fois par mois\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesNever\": \"Jamais\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesWeekly\": \"Une fois par semaine\",\r\n \"kendo.scheduler.recurrenceEditorFrequenciesYearly\": \"Une fois par an\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyDay\": \"Jour\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyInterval\": \"mois\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.scheduler.recurrenceEditorMonthlyRepeatOn\": \"Répéter le :\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsFirst\": \"premier\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsFourth\": \"quatrième\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsLast\": \"dernier\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsSecond\": \"second\",\r\n \"kendo.scheduler.recurrenceEditorOffsetPositionsThird\": \"troisième\",\r\n \"kendo.scheduler.recurrenceEditorRepeat\": \"Répéter\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysDay\": \"jour\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysWeekday\": \"jour de la semaine\",\r\n \"kendo.scheduler.recurrenceEditorWeekdaysWeekendday\": \"jour du week-end\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyInterval\": \"semaine(s)\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.scheduler.recurrenceEditorWeeklyRepeatOn\": \"Répéter le :\",\r\n \"kendo.scheduler.recurrenceEditorYearlyInterval\": \"année(s)\",\r\n \"kendo.scheduler.recurrenceEditorYearlyOf\": \"de\",\r\n \"kendo.scheduler.recurrenceEditorYearlyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.scheduler.recurrenceEditorYearlyRepeatOn\": \"Répéter le :\",\r\n \"kendo.scheduler.showFullDay\": \"Montrer toute la journée\",\r\n \"kendo.scheduler.showWorkDay\": \"Montrer les heures ouvrables\",\r\n \"kendo.scheduler.timeHeader\": \"Heure\",\r\n \"kendo.scheduler.timelineMonthViewTitle\": \"Timeline Mois\",\r\n \"kendo.scheduler.timelineViewTitle\": \"Timeline\",\r\n \"kendo.scheduler.timelineWeekViewTitle\": \"Timeline Semaine\",\r\n \"kendo.scheduler.today\": \"Aujourd'hui\",\r\n \"kendo.scheduler.weekViewTitle\": \"Semaine\",\r\n \"kendo.scheduler.workWeekViewTitle\": \"Semaine de travail\",\r\n\r\n // RecurrenceEditor\r\n \"kendo.recurrenceeditor.dailyInterval\": \"jour(s)\",\r\n \"kendo.recurrenceeditor.dailyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.recurrenceeditor.endAfter\": \"Après\",\r\n \"kendo.recurrenceeditor.endLabel\": \"Finir :\",\r\n \"kendo.recurrenceeditor.endNever\": \"Jamais\",\r\n \"kendo.recurrenceeditor.endOccurrence\": \"occurrence(s)\",\r\n \"kendo.recurrenceeditor.endOn\": \"Le\",\r\n \"kendo.recurrenceeditor.frequenciesDaily\": \"Une fois par jour\",\r\n \"kendo.recurrenceeditor.frequenciesMonthly\": \"Une fois par mois\",\r\n \"kendo.recurrenceeditor.frequenciesNever\": \"Jamais\",\r\n \"kendo.recurrenceeditor.frequenciesWeekly\": \"Une fois par semaine\",\r\n \"kendo.recurrenceeditor.frequenciesYearly\": \"Une fois par an\",\r\n \"kendo.recurrenceeditor.monthlyDay\": \"Jour\",\r\n \"kendo.recurrenceeditor.monthlyInterval\": \"mois\",\r\n \"kendo.recurrenceeditor.monthlyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.recurrenceeditor.monthlyRepeatOn\": \"Répéter le :\",\r\n \"kendo.recurrenceeditor.offsetPositionsFourth\": \"quatrième\",\r\n \"kendo.recurrenceeditor.offsetPositionsLast\": \"dernier\",\r\n \"kendo.recurrenceeditor.offsetPositionsSecond\": \"second\",\r\n \"kendo.recurrenceeditor.offsetPositionsThird\": \"troisième\",\r\n \"kendo.recurrenceeditor.repeat\": \"Répéter\",\r\n \"kendo.recurrenceeditor.weekdaysDay\": \"jour\",\r\n \"kendo.recurrenceeditor.weekdaysWeekday\": \"jour de la semaine\",\r\n \"kendo.recurrenceeditor.weekdaysWeekendday\": \"jour de week-end\",\r\n \"kendo.recurrenceeditor.weeklyInterval\": \"semaine(s)\",\r\n \"kendo.recurrenceeditor.weeklyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.recurrenceeditor.weeklyRepeatOn\": \"Répéter le :\",\r\n \"kendo.recurrenceeditor.yearlyInterval\": \"année(s)\",\r\n \"kendo.recurrenceeditor.yearlyOf\": \"de\",\r\n \"kendo.recurrenceeditor.yearlyRepeatEvery\": \"Répéter chaque :\",\r\n \"kendo.recurrenceeditor.yearlyRepeatOn\": \"Répéter le :\",\r\n};\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { HomeComponent } from \"./components/new-product/home/home.component\";\r\nimport { IbgSgUploadComponent } from \"./components/product/ibg-sg-upload/ibg-sg-upload.component\";\r\nimport { RmScreenComponent } from \"./components/product/rm-screen/rm-screen.component\";\r\nimport { AutoLoanRedemptionComponent } from \"./components/product/auto-loan-redemption/auto-loan-redemption.component\";\r\nimport { BouncedMailPolicyComponent } from \"./components/product/bounced-mail-policy/bounced-mail-policy.component\";\r\nimport { ReviewRefundUploadComponent } from \"./components/accounting/review-refund-upload/review-refund-upload.component\";\r\nimport { RefundUploadComponent } from \"./components/accounting/refund-upload/refund-upload.component\";\r\nimport { Adb2cLoginRedirectComponent } from \"./components/login/adb2c-login-redirect/adb2c-login-redirect.component\";\r\nimport { Adb2cLoginComponent } from \"./components/login/adb2c-login/adb2c-login.component\";\r\nimport { AuthGuard } from \"./components/security/auth.guard\";\r\nimport { MultiYearAutoDebitUploadComponent } from \"./components/product/multi-year-auto-debit-upload/multi-year-auto-debit-upload.component\";\r\nimport { PolicyWordigSetupComponent } from \"./components/product/policyWordingSetUp/policy-wording-setup.component\";\r\nimport { LstRateComponent } from \"./components/product/lst-rate/lst-rate.component\";\r\nimport { BatchInvoiceListComponent } from \"./components/accounting/batch-invoice/batch-invoice-list.component\";\r\nimport { UserProfileComponent } from \"./components/admin/user-profile/user-profile.component\";\r\nimport { CustomerLoginComponent } from \"./components/login/customer-login/customer-login.component\";\r\nimport { CustomerEnterOtpComponent } from \"./components/login/customer-login/customer-enter-otp.component\";\r\nimport { CustomerAcceptOfferComponent } from \"./components/login/customer-login/customer-accept-offer.component\";\r\nimport { Adb2cUserTypeListingComponent } from \"./components/login/adb2c-user-type-listing/adb2c-user-type-listing.component\";\r\nimport { GstAdjustmentComponent } from \"./components/accounting/gst-adjustment/gst-adjustment.component\";\r\nimport { UserRoleSelectionComponent } from \"./components/login/user-role-selection/user-role-selection.component\";\r\nimport { BaseProposalComponent } from \"./components/new-product/base/base-proposal/base-proposal.component\";\r\nimport { BaseOpenItemListComponent } from \"./components/new-product/base/base-open-item-list/base-open-item-list.component\";\r\nimport { BaseReconcileListComponent } from \"./components/new-product/base/base-reconcile-list/base-reconcile-list.component\";\r\nimport { EndorsementListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/endorsement-list.component\";\r\nimport { ConfigurablesComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/configurables/configurables.component\";\r\nexport const ROUTE_LOGIN = \"\"; //todo, unify with \"src/app/app.module\"\r\nexport const ROUTE_HOME = \"product/home\"; //todo, unify with \"src/app/app.module\"\r\nexport const ROUTE_PROPOSAL = \"proposal\"; //todo, unify with \"src/app/app.module\"\r\nexport const ROUTE_CUSTOMER_LOGIN = \"customerLogin\";\r\nexport const ROUTE_USER_TYPE_LISTING = \"adb2cUserTypeListing\";\r\nexport const ROUTE_USER_ROLE_SELECTION = \"userroleselection\";\r\n\r\nconst routes = [\r\n {\r\n path: ROUTE_LOGIN,\r\n component: Adb2cLoginComponent, //HomeComponent,\r\n text: \"\",\r\n },\r\n {\r\n path: ROUTE_USER_ROLE_SELECTION,\r\n component: UserRoleSelectionComponent,\r\n text: \"user role selection\",\r\n canActivate: [AuthGuard],\r\n // data: {\r\n // role: \"hasProductReadWriteRoles\",\r\n // },\r\n },\r\n {\r\n path: ROUTE_HOME, //follow old angular\r\n component: HomeComponent,\r\n text: \"Home\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"hasProductReadWriteRoles\",\r\n },\r\n },\r\n {\r\n path: ROUTE_PROPOSAL,\r\n component: BaseProposalComponent,\r\n text: \"Proposal\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"hasProductTransactRoles\",\r\n },\r\n },\r\n //{ path: 'proposal/:id/:guid', component: HomeComponent },\r\n {\r\n path: ROUTE_CUSTOMER_LOGIN,\r\n component: CustomerLoginComponent,\r\n text: \"Customer Login\",\r\n },\r\n {\r\n path: \"customerEnterOtp/:enc/:email/:mobile/:dob/:last4UniqueId\",\r\n component: CustomerEnterOtpComponent,\r\n text: \"\",\r\n },\r\n {\r\n path: \"customerAcceptOffer/:enc/:proposalIdList/:productList/:policyList/:expiryDateList\",\r\n component: CustomerAcceptOfferComponent,\r\n text: \"\",\r\n },\r\n {\r\n path: \"\", //follow old angular\r\n text: \"Accounting\",\r\n children: [\r\n {\r\n path: \"openItem\",\r\n component: BaseOpenItemListComponent,\r\n text: \"Open Item\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n {\r\n path: \"batchInvoice\",\r\n component: BatchInvoiceListComponent,\r\n text: \"Batch Invoice\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n {\r\n path: \"reconcile\",\r\n component: BaseReconcileListComponent,\r\n text: \"Reconcile\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n {\r\n path: \"reviewRefundUpload\",\r\n component: ReviewRefundUploadComponent,\r\n text: \"Bulk Refund in Review Upload\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n {\r\n path: \"refundUpload\",\r\n component: RefundUploadComponent,\r\n text: \"Bulk Refund Upload\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n {\r\n path: \"dbsAccountingGSTAdjustmentUpload\",\r\n component: GstAdjustmentComponent,\r\n text: \"GST Adjustment Upload\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isFinanceAccounting\",\r\n },\r\n },\r\n ],\r\n },\r\n //todo: new angular has to use extra queryParams to differentiate?\r\n {\r\n path: \"\", //follow old angular\r\n text: \"Product\",\r\n children: [\r\n {\r\n path: \"customerLogin\",\r\n component: CustomerLoginComponent,\r\n text: \"CustomerLogin\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n },\r\n {\r\n path: \"uploadExcelCreate\",\r\n component: IbgSgUploadComponent,\r\n text: \"IBG (SG) - Upload\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n },\r\n {\r\n path: \"rmscreen\",\r\n component: RmScreenComponent,\r\n text: \"RM Screen\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n },\r\n {\r\n path: \"lstRate\",\r\n component: LstRateComponent,\r\n text: \"LSTRates\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n },\r\n {\r\n path: \"autoLoanRedemption?type=CBG\",\r\n component: AutoLoanRedemptionComponent,\r\n text: \"CBG Loan Redemption - Upload\",\r\n data: {\r\n type: \"CBG\",\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"autoLoanRedemption?type=IBG\",\r\n component: AutoLoanRedemptionComponent,\r\n text: \"IBG Loan Redemption - Upload\",\r\n data: {\r\n type: \"IBG\",\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"autoLoanRedemption?type=Citi\",\r\n component: AutoLoanRedemptionComponent,\r\n text: \"Citi Loan Redemption - Upload\",\r\n data: {\r\n type: \"Citi\",\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"bouncedMailPolicy\",\r\n component: BouncedMailPolicyComponent,\r\n text: \"Bounced Mail Policy\",\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab|isOperationUnderwriter\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"policyWordingSetUp\",\r\n component: PolicyWordigSetupComponent,\r\n text: \"Policy Wording SetUp\",\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab|isOperationUnderwriter\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"multiYearAutoDebit\",\r\n component: MultiYearAutoDebitUploadComponent,\r\n text: \"Multiyear AutoDebit - Upload\",\r\n data: {\r\n role: \"isUnderwriter|isIBGProductTab\",\r\n type: \"CBG\",\r\n },\r\n canActivate: [AuthGuard],\r\n },\r\n ],\r\n },\r\n {\r\n path: \"\", //follow old angular\r\n text: \"Configurables\",\r\n children: [\r\n {\r\n path: \"configurables\",\r\n component: ConfigurablesComponent,\r\n text: \"Endorsement Clause\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"isUnderwriter\",\r\n },\r\n },\r\n ],\r\n },\r\n //admin\r\n {\r\n path: \"\", //follow old angular\r\n text: \"Admin\",\r\n children: [\r\n {\r\n path: \"userProfileList\",\r\n component: UserProfileComponent,\r\n text: \"User Profile\",\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: \"showAdminTab\",\r\n },\r\n },\r\n ],\r\n },\r\n { path: ROUTE_USER_TYPE_LISTING, component: Adb2cUserTypeListingComponent },\r\n {\r\n path: \"adb2csso\",\r\n component: Adb2cLoginRedirectComponent,\r\n },\r\n {\r\n path: \"**\",\r\n component: Adb2cLoginComponent,\r\n }, //todo: wildcard { path: '**', component: PageNotFoundComponent }\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule, RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n NavigationStart,\r\n Router,\r\n RouterEvent,\r\n} from \"@angular/router\";\r\nimport { MessageService } from \"@progress/kendo-angular-l10n\";\r\nimport {\r\n DrawerComponent,\r\n DrawerMode,\r\n DrawerSelectEvent,\r\n} from \"@progress/kendo-angular-layout\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { AuthenticationResult } from \"@azure/msal-browser\";\r\n//import { Adb2cLoginComponent } from \"./core/components/login/adb2c-login/adb2c-login.component\";\r\nimport { SessionStorageService } from \"./services/storages/session-storage.service\";\r\nimport { ROUTE_HOME } from \"./app.module\";\r\nimport { PolicyCustomerLoginService } from \"./services/policy-customer-login.service\";\r\nimport { IdentityRolesService } from \"./services/identity-roles.service\";\r\nimport { Identity } from \"./shared/user/identity\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { ROUTE_USER_ROLE_SELECTION } from \"./app-routing.module\";\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"./app.component.html\",\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n public selected = \"Team\";\r\n public items: Array = [];\r\n public mode: DrawerMode = \"push\";\r\n public mini = true;\r\n isCustomerLogin: boolean = false;\r\n isUserroleselection: boolean = false;\r\n\r\n constructor(\r\n private router: Router,\r\n public msgService: MessageService,\r\n private msalService: MsalService,\r\n private activatedRoute: ActivatedRoute,\r\n private sessionStorageService: SessionStorageService,\r\n public policyCustomerLoginService: PolicyCustomerLoginService,\r\n private identityRolesService: IdentityRolesService,\r\n private identity: Identity\r\n ) {}\r\n\r\n ngOnInit() {\r\n // // Update Drawer selected state when change router path\r\n // this.router.events.subscribe((route: any) => {\r\n // if (route instanceof NavigationStart) {\r\n // this.items = this.drawerItems().map((item) => {\r\n // if (item.path && item.path === route.url) {\r\n // item.selected = true;\r\n // return item;\r\n // } else {\r\n // item.selected = false;\r\n // return item;\r\n // }\r\n // });\r\n // }\r\n // });\r\n\r\n // this.setDrawerConfig();\r\n\r\n // this.customMsgService.localeChange.subscribe(() => {\r\n // this.items = this.drawerItems();\r\n // });\r\n\r\n // window.addEventListener('resize', () => {\r\n // this.setDrawerConfig();\r\n // });\r\n this.showHideHeader();\r\n\r\n const path = window.location.pathname.toLocaleLowerCase();\r\n const lastSegment = path.slice(path.lastIndexOf(\"/\"), path.length); //some env is sub-folder\r\n switch (lastSegment) {\r\n case \"/customerlogin\":\r\n // allowing public facing customer login module\r\n this.sessionStorageService.clear(); //clear sessionStorage\r\n this.identityRolesService.clearAuthData();\r\n this.router.navigate([\"/customerlogin\"]);\r\n this.policyCustomerLoginService.isCustomerLogin = true;\r\n this.policyCustomerLoginService.isCustomerOTP = false;\r\n this.policyCustomerLoginService.isCustomerOffer = false;\r\n break;\r\n case \"/\" + ROUTE_USER_ROLE_SELECTION:\r\n this.isUserroleselection = true;\r\n this.router.navigate([\"/\" + ROUTE_USER_ROLE_SELECTION]);\r\n break;\r\n default: //reset isUserroleselection, after re-login\r\n this.isUserroleselection = false;\r\n this.msalService.instance.handleRedirectPromise().then((res) => {\r\n if (res != null && res.account != null) {\r\n this.msalService.instance.setActiveAccount(res.account);\r\n this.router.navigate([\"/adb2csso\"]);\r\n } else {\r\n let authData = this.sessionStorageService.get(\"authorizationData\");\r\n if (authData == null) {\r\n this.msalService.instance.loginRedirect();\r\n } else {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n }\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n //window.removeEventListener('resize', () => {});\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n showHeader(): boolean {\r\n return this.isLoggedIn() && !this.isUserroleselection;\r\n }\r\n\r\n showHorizMenu(): boolean {\r\n return this.isLoggedIn(); // &&\r\n //!this.isUserroleselection\r\n }\r\n\r\n showHideHeader() {\r\n //if there's any route change event by any sibling's children\r\n this.router.events\r\n .pipe(filter((event: any) => event instanceof NavigationEnd))\r\n .subscribe((event: NavigationEnd) => {\r\n let url = event.url;\r\n if (url.toLocaleLowerCase() === \"/\" + ROUTE_USER_ROLE_SELECTION) {\r\n //hide menu if proposalpage\r\n this.isUserroleselection = true;\r\n } else {\r\n this.isUserroleselection = false;\r\n }\r\n });\r\n }\r\n // public setDrawerConfig() {\r\n // const pageWidth = window.innerWidth;\r\n // if (pageWidth <= 770) {\r\n // this.mode = 'overlay';\r\n // this.mini = false;\r\n // } else {\r\n // this.mode = 'push';\r\n // this.mini = true;\r\n // }\r\n // }\r\n\r\n // public drawerItems() {\r\n // return [\r\n // { text: this.customMsgService.translate('team'), icon: 'k-i-grid', path: '/', selected: true },\r\n // { text: this.customMsgService.translate('dashboard'), icon: 'k-i-chart-line-markers', path: '/dashboard', selected: false },\r\n // { text: this.customMsgService.translate('planning'), icon: 'k-i-calendar', path: '/planning', selected: false },\r\n // { text: this.customMsgService.translate('profile'), icon: 'k-i-user', path: '/profile', selected: false },\r\n // { separator: true },\r\n // { text: this.customMsgService.translate('info'), icon: 'k-i-information', path: '/info', selected: false }\r\n // ];\r\n // }\r\n\r\n // public toggleDrawer(drawer: DrawerComponent): void {\r\n // drawer.toggle();\r\n // }\r\n\r\n // public onSelect(ev: DrawerSelectEvent): void {\r\n // this.router.navigate([ev.item.path]);\r\n // this.selected = ev.item.text;\r\n // }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule, LOCALE_ID, ErrorHandler } from \"@angular/core\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n//import { LoggerModule, NgxLoggerLevel } from \"ngx-logger\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { HeaderComponent } from \"./components/header/header.component\";\r\nimport { CustomMessagesService } from \"./services/custom-messages.service\";\r\nimport {\r\n ExcelModule,\r\n GridModule,\r\n PDFModule,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { LabelModule } from \"@progress/kendo-angular-label\";\r\nimport { LayoutModule } from \"@progress/kendo-angular-layout\";\r\nimport { SchedulerModule } from \"@progress/kendo-angular-scheduler\";\r\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\r\nimport { EditorModule } from \"@progress/kendo-angular-editor\";\r\nimport { FileSelectModule } from \"@progress/kendo-angular-upload\";\r\nimport { ChartsModule } from \"@progress/kendo-angular-charts\";\r\nimport { IntlModule } from \"@progress/kendo-angular-intl\";\r\nimport { DateInputsModule } from \"@progress/kendo-angular-dateinputs\";\r\nimport { InputsModule } from \"@progress/kendo-angular-inputs\";\r\nimport { DropDownsModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { NotificationModule } from \"@progress/kendo-angular-notification\";\r\nimport { MessageService } from \"@progress/kendo-angular-l10n\";\r\nimport { MenusModule } from \"@progress/kendo-angular-menu\";\r\nimport { UploadsModule } from \"@progress/kendo-angular-upload\";\r\nimport { DialogsModule } from \"@progress/kendo-angular-dialog\";\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport \"hammerjs\";\r\nimport \"@progress/kendo-angular-intl/locales/en/all\";\r\nimport \"@progress/kendo-angular-intl/locales/es/all\";\r\nimport \"@progress/kendo-angular-intl/locales/fr/all\";\r\nimport { GooglePlaceModule } from \"ngx-google-places-autocomplete\";\r\nimport { CustomHttpInterceptor } from \"./interceptor/http-interceptor\";\r\nimport { HorizMenuComponent } from \"./components/horiz-menu/horiz-menu.component\";\r\nimport { BouncedMailPolicyComponent } from \"./components/product/bounced-mail-policy/bounced-mail-policy.component\";\r\nimport { AutoLoanRedemptionComponent } from \"./components/product/auto-loan-redemption/auto-loan-redemption.component\";\r\nimport { MdConfirmationMessageV6Component } from \"./components/shared/partials/md-confirmation-message-v6/md-confirmation-message-v6.component\";\r\nimport { MdConfirmationMessageV1Component } from \"./components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { MdConfirmationMessageV2Component } from \"./components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { MdSuccessfulFileUploadComponent } from \"./components/shared/partials/md-successful-file-upload/md-successful-file-upload.component\";\r\nimport { MdProductSelectionDialogComponent } from \"./components/shared/partials/md-product-selection-dialog/md-product-selection-dialog.component\";\r\nimport { MfSgMainComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-main.component\";\r\nimport { MfSgBaseComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/mf-sg-base.component\";\r\nimport { MfSgButtonPanelComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/button-panel/mf-sg-button-panel.component\";\r\nimport { MfSgMasterComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-master.component\";\r\nimport { IbgSgUploadComponent } from \"./components/product/ibg-sg-upload/ibg-sg-upload.component\";\r\nimport { HomeComponent } from \"./components/new-product/home/home.component\";\r\nimport { ExportListComponent } from \"./components/new-product/home/export-list/export-list.component\";\r\nimport { PolicyListComponent } from \"./components/new-product/home/policy-list/policy-list.component\";\r\nimport { TodoListComponent } from \"./components/new-product/home/todo-list/todo-list.component\";\r\nimport { WarningZoneComponent } from \"./components/new-product/home/warning-zone/warning-zone.component\";\r\nimport { PolicyListDetailsComponent } from \"./components/new-product/home/policy-list/policy-list-details/policy-list-details.component\";\r\nimport { RmScreenComponent } from \"./components/product/rm-screen/rm-screen.component\";\r\nimport { RmGridEditFormComponent } from \"./components/product/rm-screen/rm-grid-edit-form/rm-grid-edit-form.component\";\r\nimport { ReviewRefundUploadComponent } from \"./components/accounting/review-refund-upload/review-refund-upload.component\";\r\nimport { RefundUploadComponent } from \"./components/accounting/refund-upload/refund-upload.component\";\r\nimport { ReconcileListComponent } from \"./components/accounting/reconcile/reconcile-list.component\";\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { OpenItemListComponent } from \"./components/accounting/open-item/open-item-list.component\";\r\nimport { OpenItemDetailsComponent } from \"./components/accounting/open-item/view-details/open-item-details.component\";\r\nimport { MsalModule, MsalService, MSAL_INSTANCE } from \"@azure/msal-angular\";\r\nimport {\r\n IPublicClientApplication,\r\n PublicClientApplication,\r\n} from \"@azure/msal-browser\";\r\nimport { CustomerLoginComponent } from \"./components/login/customer-login/customer-login.component\";\r\nimport { CustomerEnterOtpComponent } from \"./components/login/customer-login/customer-enter-otp.component\";\r\nimport { CustomerAcceptOfferComponent } from \"./components/login/customer-login/customer-accept-offer.component\";\r\nimport { Adb2cLoginComponent } from \"./components/login/adb2c-login/adb2c-login.component\";\r\nimport { Adb2cLoginRedirectComponent } from \"./components/login/adb2c-login-redirect/adb2c-login-redirect.component\";\r\nimport { environment } from \"../environments/environment\";\r\nimport { AuthGuard } from \"./components/security/auth.guard\";\r\nimport { DoManualPayComponent } from \"./components/accounting/open-item/do-manual-pay/do-manual-pay.component\";\r\nimport { DoRefundComponent } from \"./components/accounting/open-item/do-refund/do-refund.component\";\r\nimport { DoBounceChequeComponent } from \"./components/accounting/open-item/do-bounce-cheque/do-bounce-cheque.component\";\r\nimport { NgxIdleTimeoutModule } from \"./components/shared/idle/ngx-idle-timeout.module\";\r\nimport { MultiYearAutoDebitUploadComponent } from \"./components/product/multi-year-auto-debit-upload/multi-year-auto-debit-upload.component\";\r\nimport { BaseComponent } from \"./components/shared/base/base.component\";\r\nimport { PolicyWordigSetupComponent } from \"./components/product/policyWordingSetUp/policy-wording-setup.component\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { PresetReportComponent } from \"./components/new-product/home/preset-report/preset-report.component\";\r\nimport { AutoDebitComponent } from \"./components/new-product/home/preset-report/auto-debit/auto-debit.component\";\r\nimport { BatchInvoiceListComponent } from \"./components/accounting/batch-invoice/batch-invoice-list.component\";\r\nimport { BatchInvoiceDetailsComponent } from \"./components/accounting/batch-invoice/view-details/batch-invoice-details.component\";\r\nimport { UpdateInvoiceNumberComponent } from \"./components/accounting/batch-invoice/update-invoice-number/update-invoice-number.component\";\r\nimport { BankTransComponent } from \"./components/new-product/home/preset-report/bank-trans/bank-trans.component\";\r\nimport { CitiMonthlyReportComponent } from \"./components/new-product/home/preset-report/citi-monthly-report/citi-monthly-report.component\";\r\nimport { CitiWeeklyInvoiceComponent } from \"./components/new-product/home/preset-report/citi-weekly-invoice/citi-weekly-invoice.component\";\r\nimport { CbgDailyDownloadComponent } from \"./components/new-product/home/preset-report/cbg-daily-download/cbg-daily-download.component\";\r\nimport { PrintDocumentReportComponent } from \"./components/new-product/home/preset-report/daily-trans-document-print/print-document-report.component\";\r\nimport { PrintDatapostReportComponent } from \"./components/new-product/home/preset-report/datapost-document-print/print-datapost.component\";\r\nimport { LstReportComponent } from \"./components/new-product/home/preset-report/ibg-reinsurance/ibg-reinsurance-report.component\";\r\nimport { IBGRenewalReportComponent } from \"./components/new-product/home/preset-report/ibg-renewal-report/ibg-renewal-report.component\";\r\nimport { LoanRedemptionReportComponent } from \"./components/new-product/home/preset-report/loan-redemption/loan-redemption.component\";\r\nimport { ManualPaidAutoDebitComponent } from \"./components/new-product/home/preset-report/manual-paid-auto-debit/manual-paid-auto-debit.component\";\r\nimport { RenewalReportComponent } from \"./components/new-product/home/preset-report/renewal-report/renewal-report.component\";\r\nimport { MfSgTabsComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/tabs/mf-sg-tabs.component\";\r\nimport { SummaryInvoiceAutoDebitComponent } from \"./components/new-product/home/preset-report/summary-invoice-auto-debit/summary-invoice-auto-debit.component\";\r\nimport { LstRateComponent } from \"./components/product/lst-rate/lst-rate.component\";\r\nimport { UserProfileComponent } from \"./components/admin/user-profile/user-profile.component\";\r\nimport { SearchUserComponent } from \"./components/admin/user-profile/search-user/search-user.component\";\r\nimport { CreateUserComponent } from \"./components/admin/user-profile/create-user/create-user.component\";\r\nimport { ViewUserComponent } from \"./components/admin/user-profile/view-user/view-user.component\";\r\nimport { ViewUserProfileComponent } from \"./components/admin/user-profile/view-user/view-user-profile/view-user-profile.component\";\r\nimport { ViewPersonalDetailsComponent } from \"./components/admin/user-profile/view-user/view-personal-details/view-personal-details.component\";\r\nimport { EditUserProfileComponent } from \"./components/admin/user-profile/view-user/edit-user-profile/edit-user-profile.component\";\r\nimport { EditPersonalDetailsComponent } from \"./components/admin/user-profile/view-user/edit-personal-details/edit-personal-details.component\";\r\nimport { CreateProfileComponent } from \"./components/admin/user-profile/create-user/create-profile/create-profile.component\";\r\nimport { TextAreaQuestionComponent } from \"./components/shared/new-product/components/text-area-question/text-area-question.component\";\r\nimport { TextBoxQuestionComponent } from \"./components/shared/new-product/components/text-box-question/text-box-question.component\";\r\nimport { DropDownListFilterQuestionComponent } from \"./components/shared/new-product/components/drop-down-list-filter-question/drop-down-list-filter-question.component\";\r\nimport { DateInputQuestionComponent } from \"./components/shared/new-product/components/date-input-question/date-input-question.component\";\r\nimport { RadioButtonV1QuestionComponent } from \"./components/shared/new-product/components/radio-button-v1-question/radio-button-v1-question.component\";\r\nimport { YesNoRadioQuestionComponent } from \"./components/shared/new-product/components/yes-no-radio-question/yes-no-radio-question.component\";\r\nimport { NumericBoxQuestionComponent } from \"./components/shared/new-product/components/numeric-box-question/numeric-box-question.component\";\r\nimport { DatePickerV1QuestionComponent } from \"./components/shared/new-product/components/date-picker-v1-question/date-picker-v1-question.component\";\r\nimport { DropDownListQuestionComponent } from \"./components/shared/new-product/components/drop-down-list-question/drop-down-list-question.component\";\r\nimport { CurrencyBoxV1QuestionComponent } from \"./components/shared/new-product/components/currency-box-v1-question/currency-box-v1-question.component\";\r\nimport { UserSuccessComponent } from \"./components/admin/user-profile/user-success/user-success.component\";\r\nimport { MfSgHeaderComponentComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/header/mf-sg-header.component\";\r\nimport { ClientSearchComponent } from \"./components/shared/partials/mdClient/client-search/client-search.component\";\r\nimport { ClientViewComponent } from \"./components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport { ClientCreateComponent } from \"./components/shared/partials/mdClient/client-create/client-create.component\";\r\nimport { MfSgClientViewComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/client/mf-sg-client-view/mf-sg-client-view.component\";\r\nimport { MfSgQsFireInterestedPartiesComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-qs-fire-interested-parties/mf-sg-qs-fire-interested-parties.component\";\r\nimport { CurrencyBoxConditionalQuestionComponent } from \"./components/shared/new-product/components/currency-box-conditional-question/currency-box-conditional-question.component\";\r\nimport { MfSgPremiumSummaryComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/premium-summary/mf-sg-premium-summary.component\";\r\nimport { PercentageBoxV1QuestionComponent } from \"./components/shared/new-product/components/percentage-box-v1-question/percentage-box-v1-question.component\";\r\nimport { PercentagePipe } from \"./pipes/percentage.pipe\";\r\nimport { AusCurrencyPipe } from \"./pipes/aus-currency.pipe\";\r\nimport { NewLinesPipe } from \"./pipes/new-lines.pipe\";\r\nimport { ButtonDefaultComponent } from \"./components/shared/button-default/button-default.component\";\r\nimport { CtSgMasterComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/citi/ct-sg-master.component\";\r\nimport { CtSgPremiumSummaryComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/premium-summary/citi/ct-sg-premium-summary.component\";\r\nimport { MdProfileDetailsComponent } from \"./components/shared/partials/md-menu-header/md-profile-details/md-profile-details.component\";\r\nimport { AddressHelpFormComponent } from \"./components/shared/products/address-help-form/address-help-form.component\";\r\nimport { Adb2cUserTypeListingComponent } from \"./components/login/adb2c-user-type-listing/adb2c-user-type-listing.component\";\r\nimport { MdPreferredDeliveryMethodComponent } from \"./components/shared/partials/md-preferred-delivery-method/md-preferred-delivery-method.component\";\r\nimport { MfSgPreferredDeliveryComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/mf-sg-preferred-delivery/mf-sg-preferred-delivery.component\";\r\nimport { CtSgPremiumPeriodHistoryComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/premium-period-history/citi/ct-sg-premium-period-history.component\";\r\nimport { MfSgPendingTransactionPanelComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-pending-transaction-panel/mf-sg-pending-transaction-panel.component\";\r\nimport { MfSgEchoReferralValidationPanelComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-referral-validation-echo-panel/mf-sg-echo-referral-validation-panel.component\";\r\nimport { MfSgEchoFieldValidationPanelComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/main/mf-sg-field-validation-echo-panel/mf-sg-echo-field-validation-panel.component\";\r\nimport { MdInformationMessageComponent } from \"./components/shared/partials/md-information-message/md-information-message.component\";\r\nimport { FooterComponent } from \"./components/footer/footer.component\";\r\nimport { MfContactUsFormComponent } from \"./components/shared/products/mf-contact-us-form/mf-contact-us-form.component\";\r\nimport { MessageForumComponent } from \"./components/product/messageBoard/message-forum/message-forum.component\";\r\nimport { MdValidationMessageComponent } from \"./components/product/sme/masterPolicy/md-validation-message/md-validation-message.component\";\r\nimport { MessageBoardComponent } from \"./components/product/messageBoard/message-board/message-board.component\";\r\nimport { UnderwriterInternalCommentComponent } from \"./components/product/messageBoard/underwriter-internal-comment/underwriter-internal-comment.component\";\r\nimport { ClientTimelineComponent } from \"./components/product/messageBoard/client-timeline/client-timeline.component\";\r\nimport { MdConfirmationMessageWithReasonComponent } from \"./components/shared/partials/md-confirmation-message-with-reason/md-confirmation-message-with-reason.component\";\r\nimport { MdConfirmationMessageV4Component } from \"./components/shared/partials/md-confirmation-message-v4/md-confirmation-message-v4.component\";\r\nimport { OccupationSearchComponent } from \"./components/shared/partials/md-occupation/occupation-search/occupation-search.component\";\r\nimport { MdDetailsComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/md-details/md-details.component\";\r\nimport { MfSgEquipmentListingComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing.component\";\r\nimport { MfSgEquipmentListingEditComponent } from \"./components/new-product/sme/mortgage-fire/singapore/components/master/mf-sg-equipment-listing/mf-sg-equipment-listing-edit-form/mf-sg-equipment-listing-edit-form\";\r\nimport { MdConfirmationMessageV5Component } from \"./components/shared/partials/md-confirmation-message-v5/md-confirmation-message-v5.component\";\r\nimport { PercentNoSymbolPipe } from \"./pipes/percent-no-symbol.pipe\";\r\nimport { MdConfirmationMessageWithReasonAttachmentComponent } from \"./components/shared/partials/md-confirmation-message-with-reason-attachment/md-confirmation-message-with-reason-attachment.component\";\r\nimport { BaseUploadComponent } from \"./components/accounting/base-upload/base-upload.component\";\r\nimport { GstAdjustmentComponent } from \"./components/accounting/gst-adjustment/gst-adjustment.component\";\r\nimport { CustomErrorComponent } from \"./components/shared/partials/custom-error/custom-error.component\";\r\nimport { ErrorHandlerService } from \"./services/error-handler/error-handler.service\";\r\nimport { BaseListingComponent } from \"./components/new-product/base/base-listing/base-listing.component\";\r\nimport { UserRoleSelectionComponent } from \"./components/login/user-role-selection/user-role-selection.component\";\r\nimport {\r\n ProductService,\r\n productFactory,\r\n} from \"./services/new-product/base/product.service\";\r\nimport { MfHkMasterComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/master/hase/mf-hk-master/mf-hk-master.component\";\r\nimport { BaseClientCreateComponent } from \"./components/shared/partials/mdClient/client-create/base/base-client-create/base-client-create.component\";\r\nimport { MfHkClientCreateComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-create/mf-hk-client-create.component\";\r\nimport { BaseSubscriptionComponent } from \"./components/new-product/base/base-subscription/base-subscription.component\";\r\nimport { MfHkBaseComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-base.component\";\r\nimport { MfHkMainComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-main.component\";\r\nimport { BaseMainComponent } from \"./components/new-product/base/base-main/base-main.component\";\r\nimport { BaseProposalComponent } from \"./components/new-product/base/base-proposal/base-proposal.component\";\r\nimport { MfHkTabsComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/tabs/mf-hk-tabs.component\";\r\nimport { MfHkHeaderComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/header/mf-hk-header.component\";\r\nimport { MfHkButtonPanelComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/button-panel/mf-hk-button-panel.component\";\r\nimport { MfHkFieldValidationEchoPanelComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-field-validation-echo-panel/mf-hk-field-validation-echo-panel.component\";\r\nimport { MfHkReferralValidationEchoPanelComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-referral-validation-echo-panel/mf-hk-referral-validation-echo-panel.component\";\r\nimport { MfHkPremiumSummaryComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/premium-summary/mf-hk-premium-summary.component\";\r\nimport { MfHkPendingTransactionPanelComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/main/mf-hk-pending-transaction-panel/mf-hk-pending-transaction-panel.component\";\r\nimport { MfHkClientSearchComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-search/mf-hk-client-search.component\";\r\nimport { MfHkClientViewComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/md-client/mf-hk-client-view/mf-hk-client-view.component\";\r\nimport { MfHkPreferredDeliveryComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-preferred-delivery/mf-hk-preferred-delivery.component\";\r\nimport { CheckboxQuestionComponent } from \"./components/shared/new-product/components/checkbox-question/checkbox-question.component\";\r\nimport { MfHkTodoListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-todo-list/mf-hk-todo-list.component\";\r\nimport { BaseTodoListComponent } from \"./components/new-product/base/base-todo-list/base-todo-list.component\";\r\nimport { MfHkPolicyListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-policy-list/mf-hk-policy-list.component\";\r\nimport { MfHkReportComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/home/mf-hk-report-list/mf-hk-report-list.component\";\r\nimport { BaseOpenItemListComponent } from \"./components/new-product/base/base-open-item-list/base-open-item-list.component\";\r\nimport { MfHkOpenItemListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-list.component\";\r\nimport { MfHkDoManualPayComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-manual-pay/mf-hk-do-manual-pay.component\";\r\nimport { MfHkDoRefundComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-do-refund/mf-hk-do-refund.component\";\r\nimport { MfHkOpenItemDetailsComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-open-item-list/mf-hk-open-item-details/mf-hk-open-item-details.component\";\r\nimport { BaseReconcileListComponent } from \"./components/new-product/base/base-reconcile-list/base-reconcile-list.component\";\r\nimport { MfHkReconcileListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/accounting/mf-hk-reconcile-list/mf-hk-reconcile-list.component\";\r\nimport { MfHkAddressHelpFormComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-address-help-form/mf-hk-address-help-form.component\";\r\nimport { TextBoxV2QuestionComponent } from \"./components/shared/new-product/components/text-box-v2-question/text-box-v2-question.component\";\r\nimport { EndorsementListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/endorsement-list.component\";\r\nimport { ConfigurablesComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/configurables/configurables.component\";\r\nimport { BaseConfigurablesListComponent } from \"./components/new-product/base/base-configurables-list/base-configurables-list.component\";\r\nimport { DeductibleListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/deductible/deductible-list/deductible-list.component\";\r\nimport { ExtraPerilListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/extra-peril/extra-peril-list/extra-peril-list.component\";\r\nimport { AddClausesExclListComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/add-clauses-exclusions/add-clauses-excl-list/add-clauses-excl-list.component\";\r\nimport { ConfigurableFilterComponent } from \"./components/shared/partials/configurable-filter/configurable-filter.component\";\r\nimport { ConfigurableFormAddComponent } from \"./components/shared/partials/configurable-form-add/configurable-form-add.component\";\r\nimport { ConfigurableFormBaseComponent } from \"./components/shared/partials/configurable-form-base/configurable-form-base.component\";\r\nimport { ConfigurableFormEditComponent } from \"./components/shared/partials/configurable-form-edit/configurable-form-edit.component\";\r\nimport { MfHkClausesAndDeductiblesComponent } from \"./components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-clauses-and-deductibles/mf-hk-clauses-and-deductibles.component\";\r\nimport { ClausesDeductiblesComponent } from \"./components/shared/partials/clauses-deductibles/clauses-deductibles.component\";\r\n\r\nexport const ROUTE_LOGIN = \"\"; //todo, unify with \"src/app/app.module\"\r\nexport const ROUTE_HOME = \"product/home\"; //todo, unify with \"src/app/app.module\"\r\nexport const ROUTE_PROPOSAL = \"proposal\"; //todo, unify with \"src/app/app.module\"\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: environment.adb2cSettings,\r\n });\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n HorizMenuComponent,\r\n BouncedMailPolicyComponent,\r\n AutoLoanRedemptionComponent,\r\n MdConfirmationMessageV1Component,\r\n MdConfirmationMessageV2Component,\r\n MdConfirmationMessageV6Component,\r\n MdSuccessfulFileUploadComponent,\r\n MdProductSelectionDialogComponent,\r\n MdProfileDetailsComponent,\r\n MfSgMainComponent,\r\n IbgSgUploadComponent,\r\n HomeComponent,\r\n ExportListComponent,\r\n PolicyListComponent,\r\n TodoListComponent,\r\n WarningZoneComponent,\r\n PolicyListDetailsComponent,\r\n RmScreenComponent,\r\n RmGridEditFormComponent,\r\n ReviewRefundUploadComponent,\r\n RefundUploadComponent,\r\n ReconcileListComponent,\r\n OpenItemListComponent,\r\n OpenItemDetailsComponent,\r\n CustomerLoginComponent,\r\n CustomerEnterOtpComponent,\r\n CustomerAcceptOfferComponent,\r\n Adb2cLoginComponent,\r\n Adb2cLoginRedirectComponent,\r\n Adb2cUserTypeListingComponent,\r\n DoManualPayComponent,\r\n DoRefundComponent,\r\n DoBounceChequeComponent,\r\n MultiYearAutoDebitUploadComponent,\r\n BaseComponent,\r\n MfSgBaseComponent,\r\n MfSgButtonPanelComponent,\r\n MfSgTabsComponent,\r\n MfSgMasterComponent,\r\n PolicyWordigSetupComponent,\r\n LstRateComponent,\r\n BatchInvoiceListComponent,\r\n BatchInvoiceDetailsComponent,\r\n UpdateInvoiceNumberComponent,\r\n //report component\r\n PresetReportComponent,\r\n AutoDebitComponent,\r\n BankTransComponent,\r\n CitiMonthlyReportComponent,\r\n CitiWeeklyInvoiceComponent,\r\n CbgDailyDownloadComponent,\r\n PrintDocumentReportComponent,\r\n PrintDatapostReportComponent,\r\n LstReportComponent,\r\n IBGRenewalReportComponent,\r\n LoanRedemptionReportComponent,\r\n ManualPaidAutoDebitComponent,\r\n RenewalReportComponent,\r\n SummaryInvoiceAutoDebitComponent,\r\n //Admin\r\n UserProfileComponent,\r\n SearchUserComponent,\r\n CreateUserComponent,\r\n ViewUserComponent,\r\n ViewUserProfileComponent,\r\n ViewPersonalDetailsComponent,\r\n EditUserProfileComponent,\r\n EditPersonalDetailsComponent,\r\n CreateProfileComponent,\r\n TextAreaQuestionComponent,\r\n TextBoxQuestionComponent,\r\n DropDownListFilterQuestionComponent,\r\n DateInputQuestionComponent,\r\n RadioButtonV1QuestionComponent,\r\n YesNoRadioQuestionComponent,\r\n NumericBoxQuestionComponent,\r\n DatePickerV1QuestionComponent,\r\n DropDownListQuestionComponent,\r\n CurrencyBoxV1QuestionComponent,\r\n UserSuccessComponent,\r\n MfSgHeaderComponentComponent,\r\n ClientSearchComponent,\r\n ClientViewComponent,\r\n ClientCreateComponent,\r\n MfSgClientViewComponent,\r\n MfSgQsFireInterestedPartiesComponent,\r\n CurrencyBoxConditionalQuestionComponent,\r\n MfSgPremiumSummaryComponent,\r\n PercentageBoxV1QuestionComponent,\r\n PercentagePipe,\r\n AusCurrencyPipe,\r\n ButtonDefaultComponent,\r\n CtSgMasterComponent,\r\n CtSgPremiumSummaryComponent,\r\n AddressHelpFormComponent,\r\n MdPreferredDeliveryMethodComponent,\r\n MfSgPreferredDeliveryComponent,\r\n CtSgPremiumPeriodHistoryComponent,\r\n MfSgPendingTransactionPanelComponent,\r\n MfSgEchoReferralValidationPanelComponent,\r\n MfSgEchoFieldValidationPanelComponent,\r\n MdInformationMessageComponent,\r\n FooterComponent,\r\n MfContactUsFormComponent,\r\n MessageForumComponent,\r\n NewLinesPipe,\r\n MdValidationMessageComponent,\r\n MessageBoardComponent,\r\n UnderwriterInternalCommentComponent,\r\n ClientTimelineComponent,\r\n MdConfirmationMessageWithReasonComponent,\r\n MdConfirmationMessageV4Component,\r\n OccupationSearchComponent,\r\n MfSgEquipmentListingComponent,\r\n MfSgEquipmentListingEditComponent,\r\n MdDetailsComponent,\r\n MdConfirmationMessageV5Component,\r\n PercentNoSymbolPipe,\r\n MdConfirmationMessageWithReasonAttachmentComponent,\r\n BaseUploadComponent,\r\n GstAdjustmentComponent,\r\n CustomErrorComponent,\r\n BaseListingComponent,\r\n UserRoleSelectionComponent,\r\n MfHkMasterComponent,\r\n BaseClientCreateComponent,\r\n MfHkClientCreateComponent,\r\n BaseSubscriptionComponent,\r\n MfHkBaseComponent,\r\n MfHkMainComponent,\r\n BaseMainComponent,\r\n BaseProposalComponent,\r\n MfHkTabsComponent,\r\n MfHkHeaderComponent,\r\n MfHkButtonPanelComponent,\r\n MfHkFieldValidationEchoPanelComponent,\r\n MfHkReferralValidationEchoPanelComponent,\r\n MfHkPremiumSummaryComponent,\r\n MfHkPendingTransactionPanelComponent,\r\n MfHkClientSearchComponent,\r\n MfHkClientViewComponent,\r\n MfHkPreferredDeliveryComponent,\r\n CheckboxQuestionComponent,\r\n MfHkTodoListComponent,\r\n BaseTodoListComponent,\r\n MfHkPolicyListComponent,\r\n BaseOpenItemListComponent,\r\n MfHkOpenItemListComponent,\r\n MfHkDoManualPayComponent,\r\n MfHkDoRefundComponent,\r\n MfHkOpenItemDetailsComponent,\r\n BaseReconcileListComponent,\r\n MfHkReconcileListComponent,\r\n MfHkAddressHelpFormComponent,\r\n TextBoxV2QuestionComponent,\r\n EndorsementListComponent,\r\n ConfigurablesComponent,\r\n BaseConfigurablesListComponent,\r\n DeductibleListComponent,\r\n ExtraPerilListComponent,\r\n AddClausesExclListComponent,\r\n ConfigurableFilterComponent,\r\n ConfigurableFormAddComponent,\r\n ConfigurableFormBaseComponent,\r\n ConfigurableFormEditComponent,\r\n MfHkClausesAndDeductiblesComponent,\r\n ClausesDeductiblesComponent,\r\n MfHkReportComponent,\r\n ],\r\n imports: [\r\n GooglePlaceModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n GridModule,\r\n PDFModule,\r\n ExcelModule,\r\n LabelModule,\r\n IconsModule,\r\n LayoutModule,\r\n SchedulerModule,\r\n ButtonsModule,\r\n EditorModule,\r\n FileSelectModule,\r\n HttpClientModule,\r\n // //https://github.com/dbfannin/ngx-logger\r\n // LoggerModule.forRoot({\r\n // serverLoggingUrl: \"\", // '/api/logs', // Replace with YOUR API\r\n // level: NgxLoggerLevel.OFF,\r\n // serverLogLevel: NgxLoggerLevel.ERROR,\r\n // disableConsoleLogging: false,\r\n // }),\r\n ChartsModule,\r\n IntlModule,\r\n DateInputsModule,\r\n InputsModule,\r\n DropDownsModule,\r\n UploadsModule,\r\n //RouterModule.forRoot(drawerRoutes),\r\n //RouterModule.forRoot(routes),\r\n NotificationModule,\r\n MenusModule,\r\n DialogsModule,\r\n NotificationModule,\r\n MsalModule,\r\n AppRoutingModule,\r\n NgxIdleTimeoutModule,\r\n OverlayModule,\r\n PortalModule,\r\n ],\r\n providers: [\r\n { provide: MessageService, useClass: CustomMessagesService },\r\n { provide: LOCALE_ID, useValue: \"en-US\" },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: CustomHttpInterceptor,\r\n multi: true,\r\n },\r\n { provide: MSAL_INSTANCE, useFactory: MSALInstanceFactory },\r\n MsalService,\r\n AuthGuard,\r\n { provide: ErrorHandler, useClass: ErrorHandlerService },\r\n {\r\n provide: ProductService,\r\n useFactory: productFactory,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FileInfo,\r\n FileRestrictions,\r\n RemoveEvent,\r\n SelectEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { UploadExcel } from \"src/app/components/product/auto-loan-redemption/auto-loan-redemption.entity\";\r\nimport { dlgModelArgs } from \"src/app/components/shared/partials/md-successful-file-upload/md-successful-file-upload.component\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-base-upload\",\r\n templateUrl: \"./base-upload.component.html\",\r\n styleUrls: [\"./base-upload.component.scss\"],\r\n})\r\nexport class BaseUploadComponent implements OnInit {\r\n uploadExcel!: UploadExcel;\r\n excelFilesErrorMessage: string = \"\";\r\n hasError: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n // Error logs\r\n errorLogs!: { Title: string; Logs: string[] };\r\n\r\n public redirectOpened = false;\r\n redirectMessage: any;\r\n redirectData: any;\r\n sub?: Subscription;\r\n\r\n constructor(\r\n protected uploadService: UploadExcelService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected excelTemplate: ExcelTemplateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.uploadExcel = new UploadExcel();\r\n\r\n //https://stackoverflow.com/questions/36814995/multiple-subscriptions-to-observable\r\n //might need to change to Subject/BehaviorSubject if needed in the future\r\n this.sub = this.route.data.subscribe();\r\n\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub?.unsubscribe();\r\n }\r\n\r\n excelAndSizeRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".xls\", \".xlsx\"],\r\n maxFileSize: 5242880, // Check for each file size less than 5MB, 1024 * 1024 * 5\r\n };\r\n\r\n public resetFiles(): void {\r\n //todo: currently only allow single file upload\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n this.uploadExcel.files = {};\r\n }\r\n\r\n public removeEvent(e: RemoveEvent): void {\r\n this.resetFiles();\r\n }\r\n\r\n public select(e: SelectEvent): void {\r\n this.resetFiles();\r\n\r\n const that = this;\r\n\r\n this.hasError = false;\r\n\r\n let totalFileSize = this.getUploadedFilesTotalSize(e.files);\r\n if (totalFileSize / 1024 / 1024 > 20) {\r\n this.hasError = true;\r\n this.excelFilesErrorMessage =\r\n \"Total file size allowed in a file is 20MB.\";\r\n } else {\r\n const uploadExcels: File[] = new Array();\r\n e.files.forEach((file: FileInfo) => {\r\n //this already check extension & individual file size by kendo control itself\r\n if (!file.validationErrors && file.rawFile) {\r\n uploadExcels.push(file.rawFile);\r\n }\r\n });\r\n if (this.uploadExcel != undefined && this.uploadExcel != null) {\r\n this.uploadExcel.files = uploadExcels;\r\n }\r\n }\r\n }\r\n\r\n getUploadedFilesTotalSize(files: FileInfo[]): number {\r\n let totalFileSize: number = 0;\r\n\r\n files.forEach((file: FileInfo) => {\r\n if (file.rawFile) {\r\n totalFileSize += file.rawFile.size;\r\n }\r\n });\r\n\r\n return totalFileSize;\r\n }\r\n\r\n add(): void {\r\n this.hasError = false;\r\n\r\n if (this.uploadExcel?.files?.length > 0) {\r\n this.addExcel();\r\n } else {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n }\r\n }\r\n\r\n getUploadedExcelFiles(uploadedExcel: UploadExcel): FormData {\r\n const formData: FormData = new FormData();\r\n for (let i = 0; i < uploadedExcel.files.length; i++) {\r\n formData.append(\"file\" + i.toString(), uploadedExcel.files[i]);\r\n }\r\n return formData;\r\n }\r\n\r\n addExcel() {\r\n //virtual, overide\r\n }\r\n\r\n public confirmationModelForSuccessullExcelUpload(args: dlgModelArgs) {\r\n this.redirectOpened = false;\r\n if (args.status === \"return\") {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef,\r\n Inject,\r\n LOCALE_ID,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport * as Enum from \"./../../../framework/enum.shared\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectAllCheckboxState,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { SortDescriptor, orderBy } from \"@progress/kendo-data-query\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport { openItemDisplayStatus } from \"../../../finance/finance-constant\";\r\nimport {\r\n BatchInvoiceEntity,\r\n SearchCriteria,\r\n} from \"./models/batch-invoice-list.model\";\r\nimport { common } from \"../../../framework/utils/common\";\r\nimport { warningZoneArgs } from \"../../new-product/home/warning-zone/warning-zone.component\";\r\nimport { Day } from \"@progress/kendo-date-math\";\r\nimport { BatchInvoiceListingEntity } from \"./BatchInvoiceListingEntity\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { BatchInvoiceListService } from \"src/app/services/batch-invoice-list.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport {\r\n MdConfirmationMessageV2Component,\r\n v2DlgInputArgs,\r\n} from \"../../shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\n\r\n@Component({\r\n selector: \"app-batch-invoice-list\",\r\n templateUrl: \"./batch-invoice-list.component.html\",\r\n styleUrls: [\"./batch-invoice-list.component.scss\"],\r\n})\r\nexport class BatchInvoiceListComponent implements OnInit {\r\n @ViewChild(\"heroForm\", {\r\n static: false,\r\n })\r\n private form!: UntypedFormGroup;\r\n\r\n @ViewChild(\"oiEffectiveDateTo\", {\r\n static: false,\r\n })\r\n public oiEffectiveDateTo!: DatePickerComponent;\r\n\r\n public openItemEntryDate_min!: Date;\r\n public openItemEntryDate_max!: Date;\r\n\r\n @ViewChild(\"oiPolicyEffectiveDateTo\", {\r\n static: false,\r\n })\r\n public oiPolicyEffectiveDateTo!: DatePickerComponent;\r\n\r\n public policyeffectiveDate_min!: Date;\r\n public policyeffectiveDate_max!: Date;\r\n\r\n @ViewChild(\"autoDebitPeriod_dateInput\", {\r\n static: false,\r\n })\r\n public autoDebitPeriod_dateInput!: DatePickerComponent;\r\n\r\n @ViewChild(\"appendTo\", {\r\n read: ViewContainerRef,\r\n static: false,\r\n })\r\n public appendTo!: ViewContainerRef;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public selectAllState: SelectAllCheckboxState = \"unchecked\";\r\n public listing: BatchInvoiceListingEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n searchCriteria = new SearchCriteria();\r\n public statusList!: Array<{\r\n text: string;\r\n value: number;\r\n }>;\r\n private isCitiProduct: boolean = false;\r\n autoDebitPeriod: any;\r\n public segmentList!: Array<{\r\n text: string;\r\n value: string;\r\n }>;\r\n public userProductList!: any;\r\n public checkableRows: number[] = [];\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n public showDetails: boolean = false;\r\n public openItemId!: string;\r\n public redirectOpened: boolean = false;\r\n public redirectUpdateInvoiceOpened: boolean = false;\r\n public doManualPay: boolean = false;\r\n public doRefundPay: boolean = false;\r\n public doBatchAndExport: boolean = false;\r\n openItem!: BatchInvoiceEntity | undefined;\r\n\r\n msg_maxWarning!: string;\r\n public dialogOpened = false;\r\n public confirmationOpened = false;\r\n dialogCommand!: Enum.ProposalCommandAction;\r\n dialogData: any;\r\n confirmationMessage: any;\r\n confirmationMsg!: string;\r\n confirmationData: any;\r\n public warningDlgOpened = false;\r\n warningMessage!: string;\r\n warningData!: any;\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public disabledDates: Day[] = [\r\n Day.Saturday,\r\n Day.Sunday,\r\n Day.Tuesday,\r\n Day.Wednesday,\r\n Day.Thursday,\r\n Day.Friday,\r\n ];\r\n public isSearch: boolean = false;\r\n public isSelectAll: boolean = true;\r\n public newInvoices: Array<{}> = [];\r\n public allInvoiceList: any;\r\n public mySelection: any = [];\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) public locale: string,\r\n private batchInvoiceListService: BatchInvoiceListService,\r\n private identity: Identity,\r\n private excelTemplate: ExcelTemplateService,\r\n private cdkDialogService: CdkDialogService,\r\n private notifier: NotifierService\r\n ) {}\r\n ngOnInit(): void {\r\n this.defaultSearchCriteria();\r\n this.fetchUserList();\r\n this.fetchStatusList();\r\n }\r\n\r\n private defaultSearchCriteria() {\r\n // segment dropdownlist options\r\n const segmentList = [\r\n {\r\n text: \"CBG\",\r\n value: \"CBG\",\r\n },\r\n {\r\n text: \"IBG\",\r\n value: \"IBG\",\r\n },\r\n {\r\n text: \"PB\",\r\n value: \"PB\",\r\n },\r\n {\r\n text: \"TPC\",\r\n value: \"TPC\",\r\n },\r\n ];\r\n this.segmentList = segmentList;\r\n\r\n const policyEffectiveDateFrom: Date = new Date(\"1/1/2018\");\r\n this.searchCriteria.policyeffectiveDateFrom = policyEffectiveDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const policyeffectiveDateTo: Date = new Date(policyEffectiveDateFrom);\r\n policyeffectiveDateTo.setFullYear(\r\n policyEffectiveDateFrom.getFullYear() + 1\r\n );\r\n this.searchCriteria.policyeffectiveDateTo = policyeffectiveDateTo;\r\n }\r\n\r\n private fetchUserList() {\r\n // get user productsList\r\n this.userProductList = this.identity.currentUser().products;\r\n }\r\n\r\n private fetchStatusList() {\r\n // get statusList\r\n this.statusList = [];\r\n\r\n for (const key in openItemDisplayStatus) {\r\n if (openItemDisplayStatus.hasOwnProperty(key)) {\r\n const value = openItemDisplayStatus[key];\r\n this.statusList.push({\r\n text: value,\r\n value: Number(key),\r\n });\r\n }\r\n }\r\n // sort statusList by asc\r\n this.statusList.sort((x, y) => {\r\n return x.text > y.text ? 1 : x.text < y.text ? -1 : 0;\r\n });\r\n }\r\n public on_quoteNumber_keyup(event: any): void {\r\n var k;\r\n k = event.data?.charCodeAt(); // k = event.keyCode; (Both can be used)\r\n if (\r\n !(\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 45 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n )\r\n ) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n selectAllPolicy = (select: boolean) => {\r\n if (select) {\r\n this.isSelectAll = false;\r\n this.checkableRows.forEach((idx) => {\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n if (this.selectedRowIndexes.indexOf(allIdx) == -1) {\r\n this.selectedRowIndexes.push(allIdx);\r\n\r\n this.gridView.data[allIdx].isChecked = true;\r\n }\r\n });\r\n this.newInvoices = [];\r\n this.listing.forEach((invoice: BatchInvoiceListingEntity) => {\r\n invoice.isChecked = true;\r\n if (\r\n invoice.batchId === \"\" &&\r\n (invoice.statusId === 2 ||\r\n (invoice.statusId === 20 && invoice.pendInvBankBatchID === \"\"))\r\n ) {\r\n const openItemId = invoice.openItemId;\r\n this.newInvoices.push(openItemId);\r\n }\r\n });\r\n this.loadData();\r\n } else {\r\n this.isSelectAll = true;\r\n this.selectedRowIndexes = [];\r\n this.newInvoices = [];\r\n\r\n this.gridView.data.forEach((item) => {\r\n item.isChecked = false;\r\n });\r\n }\r\n };\r\n\r\n SetSelectedItem(dataItem: BatchInvoiceListingEntity, idx: number) {\r\n //revert\r\n dataItem.isChecked = !dataItem.isChecked;\r\n\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n //add\r\n if (dataItem.isChecked) {\r\n if (this.selectedRowIndexes.indexOf(allIdx) == -1) {\r\n this.selectedRowIndexes.push(allIdx);\r\n this.newInvoices.push(dataItem.openItemId);\r\n }\r\n } else {\r\n //remove\r\n this.selectedRowIndexes.forEach((item, loopIndex) => {\r\n if (item === allIdx) {\r\n //item is the one that store the actual index; loopIndex is local index\r\n this.selectedRowIndexes.splice(loopIndex, 1);\r\n this.newInvoices.splice(loopIndex, 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n generateSelectedPolicies() {\r\n if (this.newInvoices.length === 0) {\r\n const msg = \"Please choose at least 1 record to generate\";\r\n // this.warningDlgOpened = true;\r\n // this.confirmationMsg = msg;\r\n this.WarningPopup(msg);\r\n } else {\r\n const msg =\r\n \"You are about to Generate Batch Invoice for the selected Policies.

Action cannot be reverted back once done.

Please confirm.\";\r\n this.confirmationMsg = msg;\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: \"\",\r\n message: this.confirmationMsg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n }\r\n\r\n WarningPopup(msg: string) {\r\n let v2InputData: v2DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: \"\",\r\n message: msg,\r\n };\r\n\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV2Component,\r\n {\r\n data: v2InputData,\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {});\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n this.checkDatesRange();\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n\r\n private checkDatesRange() {\r\n if (\r\n this.searchCriteria.effectiveDateFrom !== null &&\r\n this.searchCriteria.effectiveDateTo === null\r\n ) {\r\n this.searchCriteria.effectiveDateTo =\r\n this.searchCriteria.effectiveDateFrom;\r\n }\r\n if (\r\n this.searchCriteria.policyeffectiveDateFrom !== null &&\r\n this.searchCriteria.policyeffectiveDateTo === null\r\n ) {\r\n this.searchCriteria.policyeffectiveDateTo =\r\n this.searchCriteria.policyeffectiveDateFrom;\r\n }\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n this.reformatPeriod();\r\n\r\n // dates\r\n const dates: boolean =\r\n this.searchCriteria.effectiveDateFrom !== null ||\r\n this.searchCriteria.effectiveDateTo !== null ||\r\n this.searchCriteria.policyeffectiveDateFrom !== null ||\r\n this.searchCriteria.policyeffectiveDateFrom !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n reformatPeriod = () => {\r\n this.searchCriteria.autoDebitPeriod = \"\";\r\n if (!common.isUndefinedOrNull(this.autoDebitPeriod)) {\r\n if (this.isCitiProduct) {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"dd/MM/yyyy\",\r\n this.locale\r\n );\r\n this.searchCriteria.autoDebitPeriodYear = period.split(\"/\")[2];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodDate = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n } else {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear = !common.isUndefinedOrNull(\r\n period.split(\"/\")[2]\r\n )\r\n ? period.split(\"/\")[2]\r\n : period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n }\r\n } else {\r\n const validPeriod: boolean = this.autoDebitPeriod !== null;\r\n if (!validPeriod) {\r\n this.searchCriteria.autoDebitPeriodYear = \"\";\r\n this.searchCriteria.autoDebitPeriodMonth = \"\";\r\n this.searchCriteria.autoDebitPeriodDate = \"\";\r\n this.searchCriteria.autoDebitPeriod = \"\";\r\n }\r\n }\r\n };\r\n\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n this.isSearch = true;\r\n this.batchInvoiceListService\r\n .searchBatchInvoiceListing(this.getQueryString())\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.allInvoiceList = result;\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n this.notifier.success(\"Search successfully\", this.appendTo);\r\n }\r\n },\r\n (err: any) => {\r\n this.notifier.error(\"Search failed\", this.appendTo);\r\n }\r\n );\r\n }\r\n private getQueryString(): string {\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"desc\");\r\n\r\n let array = [\r\n [\"effectiveDateFrom\", \"gte\", this.searchCriteria.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.searchCriteria.effectiveDateTo],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"batchId\", \"eq\", this.searchCriteria.invoiceNo],\r\n [\"segments\", \"eq\", this.searchCriteria.segments],\r\n [\"statusIds\", \"eq\", this.searchCriteria.statusIds],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n [\r\n \"policyeffectiveDateFrom\",\r\n \"eq\",\r\n this.searchCriteria.policyeffectiveDateFrom,\r\n ],\r\n [\r\n \"policyeffectiveDateTo\",\r\n \"eq\",\r\n this.searchCriteria.policyeffectiveDateTo,\r\n ],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n return querystring;\r\n }\r\n\r\n updateInvoiceNumber = () => {\r\n this.redirectUpdateInvoiceOpened = true;\r\n };\r\n\r\n downloadAllPolicies = () => {\r\n this.batchInvoiceListService\r\n .doDownloadAllPoliciesHandler(this.searchCriteria)\r\n .then((response: any) => {\r\n if (response)\r\n this.excelTemplate.downloadAllPolicies(\r\n allPoliciesDownloadColumns,\r\n \"Policy\",\r\n \"Batch Invoice Policy\",\r\n response\r\n );\r\n });\r\n };\r\n\r\n public buildCheckRows(dataItem: any, idx: number): boolean {\r\n if (!dataItem.batchId) {\r\n this.checkableRows.push(idx);\r\n }\r\n\r\n //isSelectAll is true by default, means canSelectAll\r\n if (this.isSelectAll) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private loadItems(): void {\r\n this.listing.forEach((entity, index) => {\r\n entity.isChecked = this.buildCheckRows(entity, index);\r\n entity.statusDisplayText = openItemDisplayStatus[entity.statusId];\r\n });\r\n\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n private clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.checkableRows = [];\r\n this.selectedRowIndexes = [];\r\n }\r\n public on_searchEffectiveDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.effectiveDateFrom === null) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.openItemEntryDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.openItemEntryDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.openItemEntryDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.openItemEntryDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.openItemEntryDate_min = value;\r\n this.openItemEntryDate_max = maxDate;\r\n\r\n // open datepicker\r\n // this.oiEffectiveDateTo.toggle();\r\n this.on_searchOIFrom_focus();\r\n }\r\n public on_searchPolicyEffectiveDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.policyeffectiveDateFrom === null) {\r\n this.searchCriteria.policyeffectiveDateTo = undefined;\r\n this.policyeffectiveDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.policyeffectiveDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.policyeffectiveDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.policyeffectiveDate_min = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n this.on_searchOIFrom_focus();\r\n }\r\n\r\n public on_searchOIFrom_focus(): void {\r\n if (this.oiEffectiveDateTo.isOpen) {\r\n this.oiEffectiveDateTo.toggle();\r\n }\r\n if (this.oiEffectiveDateTo.isOpen) {\r\n this.oiEffectiveDateTo.toggle();\r\n }\r\n }\r\n public on_searchPEFrom_focus(): void {\r\n if (this.oiPolicyEffectiveDateTo.isOpen) {\r\n this.oiPolicyEffectiveDateTo.toggle();\r\n }\r\n if (this.oiPolicyEffectiveDateTo.isOpen) {\r\n this.oiPolicyEffectiveDateTo.toggle();\r\n }\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n this.openItemId = dataItem.openItemId;\r\n\r\n if (columnIndex === 0) {\r\n this.openItem = dataItem;\r\n switch (dataItem.actionName) {\r\n default:\r\n return;\r\n }\r\n } else {\r\n this.redirectOpened = true;\r\n }\r\n }\r\n\r\n public returnToBatchInvoiceListing(val: any) {\r\n this.redirectOpened = false;\r\n this.redirectUpdateInvoiceOpened = false;\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n this.confirmationOpened = false;\r\n if (args.status === \"yes\") {\r\n this.batchInvoiceListService\r\n .doBatchAndExportHandler(this.newInvoices)\r\n .subscribe((response: any) => {\r\n if (response)\r\n this.excelTemplate.downloadBatchInvoices(\r\n batchInvoiceColumns,\r\n \"Batch id Generated\",\r\n \"Batched Policy\",\r\n response.d?.results\r\n );\r\n }),\r\n (error: any) => {\r\n this.notifier.error(\"Download failed\", this.appendTo);\r\n };\r\n }\r\n }\r\n}\r\nconst batchInvoiceColumns: string[] = [\r\n \"Batch Id\",\r\n \"Financial Institution Branch/BU PC Code\",\r\n \"Bank Reference Number\",\r\n \"Meridian Master Policy Number\",\r\n \"Policy Type\",\r\n \"Policy Number\",\r\n \"Main Insured Name\",\r\n \"Insured Correspondence Address\",\r\n \"Risk Address\",\r\n \"Original Inception Date\",\r\n \"Policy Inception/Start Date\",\r\n \"Policy Expiry Date\",\r\n \"Endorsement Effective Date\",\r\n \"Total Sum Insured\",\r\n \"Gross Premium excl. GST\",\r\n \"GST on Gross Premium\",\r\n \"Commission excl. GST\",\r\n \"GST on Commission\",\r\n \"Premium Net Off Comm.\",\r\n \"GST on Premium Net Off Comm.\",\r\n \"Transaction Code\",\r\n \"Total Premium\",\r\n];\r\n\r\nconst allPoliciesDownloadColumns: string[] = [\r\n \"Policy Number\",\r\n \"Total Premium\",\r\n \"GST Amount\",\r\n \"Batch Id\",\r\n \"Status\",\r\n \"Last Updated By\",\r\n];\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n = 48 && $event.charCode < 58)\r\n \"\r\n name=\"invoiceNo\"\r\n #name=\"ngModel\"\r\n [(ngModel)]=\"searchCriteria.invoiceNo\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n
\r\n
\r\n
\r\n \r\n Select All\r\n \r\n \r\n Deselect All\r\n \r\n \r\n Batch &\r\n Download Policies\r\n \r\n \r\n Update Invoice No\r\n \r\n \r\n Export All\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","export class SearchCriteria {\r\n constructor() {\r\n /**\r\n * Backend does not accept 'undefined'.\r\n * Hence initialize to empty string. */\r\n\r\n this.productRadio = \"dbs\"; // default dbs\r\n this.policyNo = \"\";\r\n this.invoiceNo = \"\";\r\n this.chequeNo = \"\";\r\n this.cin = \"\";\r\n this.segments = [];\r\n this.productIds = [];\r\n this.statusIds = [];\r\n this.autoDebitPeriodYear = \"\";\r\n this.autoDebitPeriodMonth = \"\";\r\n this.autoDebitPeriodDate = \"\";\r\n }\r\n\r\n pageNo!: number;\r\n pageSize!: number;\r\n\r\n productRadio: string;\r\n policyNo: string;\r\n invoiceNo: string;\r\n chequeNo: string;\r\n cin: string;\r\n segments: Array;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n autoDebitPeriod: any;\r\n autoDebitPeriodYear: string;\r\n autoDebitPeriodMonth: string;\r\n autoDebitPeriodDate: string;\r\n productIds: Array;\r\n statusIds: Array;\r\n policyeffectiveDateFrom?: Date;\r\n policyeffectiveDateTo?: Date;\r\n}\r\nexport class BatchInvoiceEntity {\r\n id!: string;\r\n statusId!: number;\r\n policyNo!: string;\r\n invoiceNo!: string;\r\n amount!: string;\r\n amountGst!: string;\r\n stampDuty!: string;\r\n payerTypeId!: number;\r\n autoDebitTransId!: number;\r\n invoiceId!: number;\r\n refundId!: number;\r\n manualPaymentId!: number;\r\n dateCreated!: string;\r\n createdByUserName!: string;\r\n lastUpdatedByUserName!: string;\r\n batchId!: number;\r\n policyCertificateNumber!: string;\r\n startEffectiveDate!: string;\r\n autoDebitMonth!: number;\r\n manualPaymentChequeNumber!: string;\r\n manualPaymentChequeIssuanceBank!: string;\r\n refundPaymentChequeNumber!: string;\r\n refundPaymentChequeIssuanceBank!: string;\r\n remarks!: string;\r\n payerName!: string;\r\n manualPaymentRemarks!: string;\r\n refundPaymentRemarks!: string;\r\n statusDisplayText!: string;\r\n autoDebitMonthDisplayText!: string;\r\n chequeIssuanceBank!: string;\r\n chequeNumber!: string;\r\n}\r\nexport class UpdateBatchInvoiceEntity {\r\n amount!: string;\r\n amountGst!: string;\r\n batchId!: number;\r\n invoiceNo!: number;\r\n lastUpdatedByUserName!: string;\r\n openItemId!: string;\r\n policyCertificateNumber!: string;\r\n policyNo!: string;\r\n status!: number;\r\n statusDisplayText!: string;\r\n}\r\n\r\nexport class AllPoliciesDownloadEntity {\r\n amount!: string;\r\n amountGst!: string;\r\n batchId!: number;\r\n invoiceNo!: number;\r\n lastUpdatedByUserName!: string;\r\n openItemId!: string;\r\n policyCertificateNumber!: string;\r\n policyNo!: string;\r\n status!: number;\r\n statusDisplayText!: string;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n Input,\r\n ViewContainerRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { GridDataResult } from \"@progress/kendo-angular-grid\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport { BatchInvoiceListService } from \"src/app/services/batch-invoice-list.service\";\r\nimport { UpdateBatchInvoiceEntity } from \"../models/batch-invoice-list.model\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\n\r\n@Component({\r\n selector: \"app-update-invoice-number\",\r\n templateUrl: \"./update-invoice-number.component.html\",\r\n})\r\nexport class UpdateInvoiceNumberComponent implements OnInit {\r\n @Input() public opened = false;\r\n @Input() openItemId!: string;\r\n @Output() closeDialogEvent = new EventEmitter();\r\n private batchListing: UpdateBatchInvoiceEntity[] = [];\r\n public gridView!: GridDataResult;\r\n public updateSuccess: boolean = false;\r\n public isBatchIdError: boolean = false;\r\n public isInvoiceNoError: boolean = false;\r\n public enableUpdate: boolean = false;\r\n public enableGrid: boolean = false;\r\n public batchId!: number;\r\n public invoiceNo!: string;\r\n\r\n @ViewChild(\"appendTo\", { read: ViewContainerRef, static: false })\r\n public appendTo!: ViewContainerRef;\r\n\r\n constructor(\r\n private batchInvoiceListService: BatchInvoiceListService,\r\n private notifier: NotifierService\r\n ) {}\r\n ngOnInit(): void {}\r\n\r\n public close(status: any) {\r\n this.opened = false;\r\n this.closeDialogEvent.emit();\r\n }\r\n\r\n public onPolicySearch = () => {\r\n if (this.batchId > 0) {\r\n this.isBatchIdError = false;\r\n\r\n this.batchInvoiceListService\r\n .doSearchInvoiceNumberHandler(this.batchId)\r\n .subscribe(\r\n (response) => {\r\n this.batchListing = response.d.results;\r\n if (this.batchListing !== undefined) {\r\n this.enableGrid = true;\r\n if (this.batchListing.length > 0) {\r\n this.enableUpdate = true;\r\n this.batchListing.forEach((entity) => {\r\n entity.statusDisplayText = this.translateStatus(\r\n entity.status\r\n );\r\n });\r\n } else {\r\n this.enableUpdate = false;\r\n }\r\n\r\n this.gridView = {\r\n data: this.batchListing,\r\n total: this.batchListing?.length,\r\n };\r\n this.notifier.success(\"Search successfully\", this.appendTo);\r\n }\r\n },\r\n (err: any) => {\r\n this.notifier.error(\"Search failed\", this.appendTo);\r\n }\r\n );\r\n } else {\r\n this.isBatchIdError = true;\r\n this.notifier.error(\"Status failed\", this.appendTo);\r\n }\r\n };\r\n\r\n translateStatus = (e: any): string => {\r\n return openItemDisplayStatus[e];\r\n };\r\n\r\n public updateInvoiceNo = () => {\r\n this.isBatchIdError = false;\r\n this.isInvoiceNoError = false;\r\n\r\n if (this.batchId === null || this.batchId === 0) {\r\n this.isBatchIdError = true;\r\n return;\r\n }\r\n if (this.invoiceNo === \"\" || this.invoiceNo === undefined) {\r\n this.isInvoiceNoError = true;\r\n return;\r\n }\r\n if (!this.isBatchIdError && !this.isInvoiceNoError) {\r\n this.batchInvoiceListService\r\n .doUpdateInvoiceNumberHandler(this.batchId, this.invoiceNo)\r\n .subscribe(\r\n (response) => {\r\n this.updateSuccess = true;\r\n this.notifier.success(\"Update successfully\", this.appendTo);\r\n setTimeout(() => {\r\n this.close(\"return\");\r\n }, 1500);\r\n },\r\n (err: any) => {\r\n this.notifier.error(\"Update failed\", this.appendTo);\r\n }\r\n );\r\n }\r\n };\r\n}\r\n","\r\n
\r\n

\r\n Update Invoice Number\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Invoice No updated.\r\n

\r\n

\r\n Please enter a valid batch id.\r\n

\r\n

\r\n Please enter a valid invoice no.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n = 48 && $event.charCode < 58)\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Search\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Update Invoice No\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Return\r\n \r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n Input,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { GridDataResult } from \"@progress/kendo-angular-grid\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { BatchInvoiceListService } from \"src/app/services/batch-invoice-list.service\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { BatchInvoiceEntity } from \"../models/batch-invoice-list.model\";\r\n@Component({\r\n selector: \"app-batch-invoice-details\",\r\n templateUrl: \"./batch-invoice-details.component.html\",\r\n})\r\nexport class BatchInvoiceDetailsComponent implements OnInit {\r\n @Input() public opened = false;\r\n @Input() openItemId!: string;\r\n @Output() closeDialogEvent = new EventEmitter();\r\n private listing: BatchInvoiceEntity[] = [];\r\n public displayPolicyCertificateNo!: string;\r\n public gridView!: GridDataResult;\r\n\r\n @ViewChild(\"appendTo\", { read: ViewContainerRef, static: false })\r\n public appendTo!: ViewContainerRef;\r\n\r\n constructor(\r\n private batchInvoiceListService: BatchInvoiceListService,\r\n private notifier: NotifierService\r\n ) {}\r\n ngOnInit(): void {\r\n this.getBatchInvoiceHistory();\r\n }\r\n private getBatchInvoiceHistory(): void {\r\n this.batchInvoiceListService\r\n .getBatchInvoiceHistory(this.openItemId)\r\n .subscribe(\r\n (result: BatchInvoiceEntity[]) => {\r\n if (common.isDefined(result)) {\r\n this.displayPolicyCertificateNo = result[0].policyCertificateNumber;\r\n this.listing = result;\r\n this.loadItems();\r\n this.notifier.success(\"History search successfully\", this.appendTo);\r\n }\r\n },\r\n (err: any) => {\r\n this.notifier.error(\"History search failed\", this.appendTo);\r\n }\r\n );\r\n }\r\n public close(status: any) {\r\n this.opened = false;\r\n this.closeDialogEvent.emit();\r\n }\r\n private loadItems(): void {\r\n this.listing.forEach((entity) => {\r\n entity.statusDisplayText = openItemDisplayStatus[entity.statusId];\r\n if (entity.autoDebitMonth !== 0) {\r\n entity.autoDebitMonthDisplayText = proposalCommon.translateMonth(\r\n entity.autoDebitMonth\r\n );\r\n }\r\n entity.chequeIssuanceBank = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeIssuanceBank\r\n )\r\n ? entity.manualPaymentChequeIssuanceBank\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeIssuanceBank)\r\n ? entity.refundPaymentChequeIssuanceBank\r\n : \"\";\r\n\r\n entity.chequeNumber = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeNumber\r\n )\r\n ? entity.manualPaymentChequeNumber\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeNumber)\r\n ? entity.refundPaymentChequeNumber\r\n : \"\";\r\n entity.remarks = !common.isStringNullOrEmpty(entity.manualPaymentRemarks)\r\n ? entity.manualPaymentRemarks\r\n : !common.isStringNullOrEmpty(entity.refundPaymentRemarks)\r\n ? entity.refundPaymentRemarks\r\n : \"\";\r\n });\r\n\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.listing?.length,\r\n };\r\n }\r\n}\r\n","\r\n
\r\n \r\n Open Item Details\r\n \r\n
\r\n
\r\n \r\n \r\n {{displayPolicyCertificateNo}}\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n {{dataItem.startEffectiveDate | date :'short'}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Return\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { BaseUploadComponent } from \"../base-upload/base-upload.component\";\r\n\r\n@Component({\r\n selector: \"app-gst-adjustment\",\r\n templateUrl: \"./gst-adjustment.component.html\",\r\n styleUrls: [\"./gst-adjustment.component.scss\"],\r\n})\r\nexport class GstAdjustmentComponent extends BaseUploadComponent {\r\n constructor(\r\n public override uploadService: UploadExcelService,\r\n public override router: Router,\r\n public override route: ActivatedRoute,\r\n public override excelTemplate: ExcelTemplateService\r\n ) {\r\n super(uploadService, router, route, excelTemplate);\r\n }\r\n\r\n downloadTemplate(): void {\r\n this.excelTemplate.downloadTemplate(\r\n columns,\r\n \"GSTAdjustment\",\r\n \"GSTAdjustmentTemplate\"\r\n );\r\n }\r\n\r\n override addExcel() {\r\n this.isProcessing = true;\r\n this.errorLogs.Logs = []; //reset errorLogs\r\n\r\n const uploadedExcelFormData = this.getUploadedExcelFiles(this.uploadExcel);\r\n\r\n this.uploadService.uploadGSTAdjustment(uploadedExcelFormData).subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n //no longer result.data as in angularJs but result.body\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.status === 200) {\r\n tempData = {\r\n message: \"Upload successful.\",\r\n status: true,\r\n };\r\n this.uploadService\r\n .generateGSTAdjustmentReport(\"GSTAdjustmentReport\")\r\n .subscribe(\r\n (result: any) => {\r\n const fileName: string = result.headers.get(\"x-filename\");\r\n this.uploadService.generateAnchorAndTriggerDownload(\r\n result.body,\r\n fileName\r\n );\r\n },\r\n (error: any) => {\r\n let message: string = \"\";\r\n switch (error?.status) {\r\n case 401:\r\n message = \"Unauthorized document download\";\r\n break;\r\n default:\r\n message =\r\n \"Document download response with unexpected status: \" +\r\n error?.status?.toString();\r\n break;\r\n }\r\n tempData = {\r\n message: message,\r\n validationMessage: undefined,\r\n status: false,\r\n };\r\n\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n );\r\n } else {\r\n let message: string = \"\";\r\n switch (result.status) {\r\n case 401:\r\n message = \"Unauthorized document download\";\r\n break;\r\n default:\r\n message =\r\n \"Document download response with unexpected status: \" +\r\n result.status.toString();\r\n break;\r\n }\r\n\r\n tempData = {\r\n message: message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n }\r\n\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n //this.uploadExcel.files = {};//maybe no need to clear, just like original\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n this.errorLogs.Logs = new Array();\r\n this.errorLogs.Title = \"Error\";\r\n\r\n const log: string =\r\n Global.isDefined(error?.data?.ExceptionMessage) &&\r\n error.data.ExceptionMessage !== \"\"\r\n ? error.data.ExceptionMessage\r\n : \"Failed to upload excel file. Please contact the system administrator.\";\r\n\r\n this.errorLogs.Logs.push(log);\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n}\r\n\r\nconst columns: string[] = [\r\n \"Policy Number\",\r\n \"EPL (column manually created) Policy number + Reference\",\r\n \"Reference\",\r\n \"Open Item Audit Number\",\r\n];\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n 0\"\r\n title=\"Error\"\r\n [expanded]=\"true\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport {\r\n OpenItemEntity,\r\n ManualPaymentEntity,\r\n} from \"../models/open-item-list.model\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\n\r\n@Component({\r\n selector: \"app-do-bounce-cheque-form\",\r\n templateUrl: \"./do-bounce-cheque.component.html\",\r\n styleUrls: [\"./do-bounce-cheque.component.scss\"],\r\n})\r\nexport class DoBounceChequeComponent implements OnInit {\r\n public manualPayment = new ManualPaymentEntity();\r\n //public openItemId!:string;\r\n public openItemEntity = new OpenItemEntity();\r\n public totalPremium: any;\r\n public active = false;\r\n public opened: boolean = false;\r\n\r\n @Input() openItemId!: string;\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() bounceCheque: EventEmitter =\r\n new EventEmitter();\r\n\r\n constructor(\r\n private openItemListService: OpenItemListService,\r\n private cdkDialogService: CdkDialogService\r\n ) {\r\n this.active = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getOpenItemDetails();\r\n }\r\n private getOpenItemDetails() {\r\n this.openItemListService\r\n .getOpenItemDetails(this.openItemId)\r\n .subscribe((response: OpenItemEntity) => {\r\n let openItem: OpenItemEntity = response;\r\n\r\n let chequeIssuanceBank = !common.isStringNullOrEmpty(\r\n openItem.manualPaymentChequeIssuanceBank\r\n )\r\n ? openItem.manualPaymentChequeIssuanceBank\r\n : !common.isStringNullOrEmpty(\r\n openItem.refundPaymentChequeIssuanceBank\r\n )\r\n ? openItem.refundPaymentChequeIssuanceBank\r\n : \"\";\r\n\r\n let chequeNo = !common.isStringNullOrEmpty(\r\n openItem.manualPaymentChequeNumber\r\n )\r\n ? openItem.manualPaymentChequeNumber\r\n : !common.isStringNullOrEmpty(openItem.refundPaymentChequeNumber)\r\n ? openItem.refundPaymentChequeNumber\r\n : \"\";\r\n\r\n let paymentRemarks = common.isStringNullOrEmpty(openItem.remarks)\r\n ? \"-\"\r\n : openItem.remarks;\r\n\r\n this.openItemEntity = openItem;\r\n this.openItemEntity.chequeIssuanceBank = chequeIssuanceBank;\r\n this.openItemEntity.chequeNumber = chequeNo;\r\n this.openItemEntity.remarks = paymentRemarks;\r\n });\r\n }\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n //this.closeForm();\r\n this.ConfirmationPopup(\"Are you sure you want to bounce this cheque?\", \"\");\r\n //e.preventDefault();\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n this.bounceCheque.emit(this.manualPayment);\r\n }\r\n }\r\n}\r\n","\r\n \r\n Bounce Cheque Payment\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Bounce Cheque\r\n \r\n \r\n Return\r\n \r\n \r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport {\r\n ManualPaymentEntity,\r\n OpenItemEntity,\r\n} from \"../models/open-item-list.model\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n\r\n@Component({\r\n selector: \"app-do-manual-pay-form\",\r\n templateUrl: \"./do-manual-pay.component.html\",\r\n styleUrls: [\"./do-manual-pay.component.scss\"],\r\n})\r\nexport class DoManualPayComponent implements OnInit {\r\n public manualPayment = new ManualPaymentEntity();\r\n public openItemId!: string;\r\n public openItemEntity = new OpenItemEntity();\r\n public totalPremium: any;\r\n public active = false;\r\n public payByChequeOnly: boolean = false;\r\n public isCashPayment: boolean = false;\r\n public opened: boolean = false;\r\n //validation\r\n invalidRequiredField = false;\r\n invalidPayerName = false;\r\n invalidCIB = false;\r\n invalidCN = false;\r\n\r\n @Input() public set model(openItemEntity: any) {\r\n this.openItemEntity = openItemEntity;\r\n // toggle the Dialog visibility\r\n this.active = openItemEntity !== undefined;\r\n this.manualPayment.paymentType = 2;\r\n this.manualPayment.openItemId = openItemEntity.openItemId;\r\n this.payByChequeOnly = this.openItemEntity?.statusId === 11;\r\n }\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() makePayment: EventEmitter = new EventEmitter();\r\n\r\n constructor(private cdkDialogService: CdkDialogService) {}\r\n\r\n ngOnInit(): void {}\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n public onChangePaymentType(val: any): void {\r\n this.manualPayment.chequeIssuanceBank = \"\";\r\n this.manualPayment.chequeNo = \"\";\r\n this.invalidCIB = false;\r\n this.invalidCN = false;\r\n if (val === 1) {\r\n this.isCashPayment = true;\r\n } else {\r\n this.isCashPayment = false;\r\n }\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n this.invalidRequiredField = false;\r\n // do form validation\r\n const isValid: boolean = this.validateMandatoryFields();\r\n if (isValid) {\r\n this.ConfirmationPopup(\"Are you sure you want to make this payment?\", \"\");\r\n } else {\r\n this.invalidRequiredField = true;\r\n e.preventDefault();\r\n }\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n this.makePayment.emit(this.manualPayment);\r\n }\r\n }\r\n private validateMandatoryFields(): boolean {\r\n let hasError: boolean = false;\r\n // validate mandatory fields\r\n if (common.isStringNullOrEmpty(this.manualPayment.payerName)) {\r\n hasError = true;\r\n this.invalidPayerName = true;\r\n } else {\r\n this.invalidPayerName = false;\r\n }\r\n if (!this.isCashPayment) {\r\n if (common.isStringNullOrEmpty(this.manualPayment.chequeIssuanceBank)) {\r\n hasError = true;\r\n this.invalidCIB = true;\r\n } else {\r\n this.invalidCIB = false;\r\n }\r\n if (common.isStringNullOrEmpty(this.manualPayment.chequeNo)) {\r\n hasError = true;\r\n this.invalidCN = true;\r\n } else {\r\n this.invalidCN = false;\r\n }\r\n }\r\n\r\n return !hasError;\r\n }\r\n}\r\n","\r\n \r\n Manual Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Cheque

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Make Payment\r\n \r\n \r\n Return\r\n \r\n \r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport {\r\n RefundPaymentEntity,\r\n OpenItemEntity,\r\n} from \"../models/open-item-list.model\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { RefundPaymentType } from \"src/app/framework/enum.shared\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\n\r\n@Component({\r\n selector: \"app-do-refund-pay-form\",\r\n templateUrl: \"./do-refund.component.html\",\r\n styleUrls: [\"./do-refund.component.scss\"],\r\n})\r\nexport class DoRefundComponent implements OnInit {\r\n public refundPayment = new RefundPaymentEntity();\r\n public openItemId!: string;\r\n public openItemEntity = new OpenItemEntity();\r\n public totalPremium: any;\r\n public active = false;\r\n public opened: boolean = false;\r\n\r\n refundType!: RefundPaymentType;\r\n refundTypeDisplayText!: string;\r\n\r\n @Input() public set model(openItemEntity: any) {\r\n this.refundPayment.openItemId = openItemEntity.openItemId;\r\n }\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() doRefund: EventEmitter = new EventEmitter();\r\n //validation\r\n invalidRequiredField = false;\r\n invalidPayerName = false;\r\n invalidCIB = false;\r\n invalidCN = false;\r\n invalidRemark = false;\r\n\r\n constructor(\r\n private cdkDialogService: CdkDialogService,\r\n private openItemListService: OpenItemListService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getOpenItemDetails();\r\n }\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n private getOpenItemDetails() {\r\n this.openItemListService\r\n .getOpenItem(this.refundPayment.openItemId)\r\n .subscribe((response: OpenItemEntity) => {\r\n const openItem: OpenItemEntity = response;\r\n this.active = openItem !== undefined;\r\n this.openItemEntity = openItem;\r\n this.refundType =\r\n openItem.statusId === OpenItemStatus.PendingRefundToBankInReview\r\n ? RefundPaymentType.OnlineTransfer\r\n : openItem.statusId ===\r\n OpenItemStatus.PendingRefundToIndividualInReview\r\n ? RefundPaymentType.Cheque\r\n : RefundPaymentType.Undefined;\r\n const refundTypeDisplayText: string =\r\n proposalCommon.translateRefundPaymentType(this.refundType);\r\n this.refundTypeDisplayText = refundTypeDisplayText;\r\n this.refundPayment.refundPaymentType = this.refundType;\r\n });\r\n }\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n this.invalidRequiredField = false;\r\n const isValid: boolean = this.validateMandatoryFields();\r\n if (isValid) {\r\n this.ConfirmationPopup(\r\n \"Are you sure you want to refund this payment?\",\r\n \"\"\r\n );\r\n } else {\r\n this.invalidRequiredField = true;\r\n e.preventDefault();\r\n }\r\n }\r\n private validateMandatoryFields(): boolean {\r\n let hasError: boolean = false;\r\n // validate mandatory fields\r\n if (common.isStringNullOrEmpty(this.refundPayment.payerName)) {\r\n hasError = true;\r\n this.invalidPayerName = true;\r\n } else {\r\n this.invalidPayerName = false;\r\n }\r\n if (common.isStringNullOrEmpty(this.refundPayment.chequeIssuanceBank)) {\r\n hasError = true;\r\n this.invalidCIB = true;\r\n } else {\r\n this.invalidCIB = false;\r\n }\r\n if (common.isStringNullOrEmpty(this.refundPayment.chequeNo)) {\r\n hasError = true;\r\n this.invalidCN = true;\r\n } else {\r\n this.invalidCN = false;\r\n }\r\n if (this.refundType === 2) {\r\n if (common.isStringNullOrEmpty(this.refundPayment.remarks)) {\r\n hasError = true;\r\n this.invalidRemark = true;\r\n } else {\r\n this.invalidRemark = false;\r\n }\r\n }\r\n\r\n return !hasError;\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n this.doRefund.emit(this.refundPayment);\r\n }\r\n }\r\n}\r\n","\r\n \r\n Refund Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Remarks\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Make Refund\r\n \r\n \r\n Cancel\r\n \r\n \r\n\r\n","export class SearchCriteria {\r\n constructor() {\r\n /**\r\n * Backend does not accept 'undefined'.\r\n * Hence initialize to empty string. */\r\n\r\n this.productRadio = \"dbs\"; // default dbs\r\n this.policyNo = \"\";\r\n this.invoiceNo = \"\";\r\n this.chequeNo = \"\";\r\n this.cin = \"\";\r\n this.segments = [];\r\n this.productIds = [];\r\n this.statusIds = [];\r\n this.autoDebitPeriodYear = \"\";\r\n this.autoDebitPeriodMonth = \"\";\r\n this.autoDebitPeriodDate = \"\";\r\n }\r\n\r\n pageNo!: number;\r\n pageSize!: number;\r\n\r\n productRadio: string;\r\n policyNo: string;\r\n invoiceNo: string;\r\n chequeNo: string;\r\n cin: string;\r\n segments: Array;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n autoDebitPeriod: any;\r\n autoDebitPeriodYear: string;\r\n autoDebitPeriodMonth: string;\r\n autoDebitPeriodDate: string;\r\n productIds: Array;\r\n statusIds: Array;\r\n policyeffectiveDateFrom?: Date;\r\n policyeffectiveDateTo?: Date;\r\n}\r\nexport class OpenItemEntity {\r\n id!: string;\r\n statusId!: number;\r\n policyNo!: string;\r\n invoiceNo!: string;\r\n amount!: string;\r\n amountGst!: string;\r\n stampDuty!: string;\r\n payerTypeId!: number;\r\n autoDebitTransId!: number;\r\n invoiceId!: number;\r\n refundId!: number;\r\n manualPaymentId!: number;\r\n dateCreated!: string;\r\n createdByUserName!: string;\r\n lastUpdatedByUserName!: string;\r\n batchId!: number;\r\n policyCertificateNumber!: string;\r\n startEffectiveDate!: string;\r\n autoDebitMonth!: number;\r\n manualPaymentChequeNumber!: string;\r\n manualPaymentChequeIssuanceBank!: string;\r\n refundPaymentChequeNumber!: string;\r\n refundPaymentChequeIssuanceBank!: string;\r\n remarks!: string;\r\n payerName!: string;\r\n manualPaymentRemarks!: string;\r\n refundPaymentRemarks!: string;\r\n statusDisplayText!: string;\r\n autoDebitMonthDisplayText!: string;\r\n autoDebitDate!: string;\r\n chequeIssuanceBank!: string;\r\n chequeNumber!: string;\r\n}\r\n\r\nexport class ManualPaymentEntity {\r\n openItemId?: string;\r\n payerName!: string;\r\n paymentType?: number;\r\n chequeIssuanceBank!: string;\r\n chequeNo!: string;\r\n // receiptDocumentId! : number;\r\n remarks!: string;\r\n invoiceNumber!: string;\r\n}\r\n\r\nexport class RefundPaymentEntity {\r\n openItemId!: string;\r\n payerName!: string;\r\n chequeIssuanceBank!: string;\r\n chequeNo!: string;\r\n remarks!: string;\r\n refundPaymentType!: number;\r\n}\r\n\r\nexport class RefundReviewEntity {\r\n openItemId!: string;\r\n}\r\n","import { Component, OnInit, Inject, LOCALE_ID } from \"@angular/core\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { BaseOpenItemListComponent } from \"../../new-product/base/base-open-item-list/base-open-item-list.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\n\r\n@Component({\r\n selector: \"app-open-item-list\",\r\n templateUrl: \"./open-item-list.component.html\",\r\n styleUrls: [\"./open-item-list.component.scss\"],\r\n})\r\nexport class OpenItemListComponent\r\n extends BaseOpenItemListComponent\r\n implements OnInit\r\n{\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n @Inject(LOCALE_ID) public override locale: string,\r\n public override openItemListService: OpenItemListService,\r\n public override identity: Identity,\r\n public override excelTemplate: ExcelTemplateService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n locale,\r\n openItemListService,\r\n identity,\r\n excelTemplate,\r\n cdkDialogService\r\n );\r\n }\r\n\r\n // this.refresh() in ngOnInit() has to be called separately by component,\r\n // cannot place in BaseOpenItemListComponent, else call twice\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.defaultSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n this.fetchStatusList();\r\n this.initStatusLists();\r\n this.setDbsAutoDebitPeriod();\r\n this.refresh();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n Search\r\n \r\n \r\n Export\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output, Input } from \"@angular/core\";\r\nimport { GridDataResult } from \"@progress/kendo-angular-grid\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\nimport { OpenItemEntity } from \"../models/open-item-list.model\";\r\n@Component({\r\n selector: \"app-open-item-details\",\r\n templateUrl: \"./open-item-details.component.html\",\r\n})\r\nexport class OpenItemDetailsComponent implements OnInit {\r\n @Input() public opened = false;\r\n @Input() openItemId!: string;\r\n @Output() closeDialogEvent = new EventEmitter();\r\n private listing: OpenItemEntity[] = [];\r\n public displayPolicyCertificateNo!: string;\r\n public gridView!: GridDataResult;\r\n constructor(private openItemListService: OpenItemListService) {}\r\n ngOnInit(): void {\r\n this.getOpenItemHistory();\r\n }\r\n private getOpenItemHistory(): void {\r\n this.openItemListService.getOpenItemHistory(this.openItemId).subscribe(\r\n (result: OpenItemEntity[]) => {\r\n if (common.isDefined(result)) {\r\n this.displayPolicyCertificateNo = result[0].policyCertificateNumber;\r\n this.listing = result;\r\n this.loadItems();\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n public close(status: any): void {\r\n this.opened = false;\r\n this.closeDialogEvent.emit();\r\n }\r\n private loadItems(): void {\r\n this.listing.forEach((entity) => {\r\n entity.statusDisplayText = openItemDisplayStatus[entity.statusId];\r\n if (entity.autoDebitMonth !== 0) {\r\n entity.autoDebitMonthDisplayText = proposalCommon.translateMonth(\r\n entity.autoDebitMonth\r\n );\r\n }\r\n entity.chequeIssuanceBank = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeIssuanceBank\r\n )\r\n ? entity.manualPaymentChequeIssuanceBank\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeIssuanceBank)\r\n ? entity.refundPaymentChequeIssuanceBank\r\n : \"\";\r\n\r\n entity.chequeNumber = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeNumber\r\n )\r\n ? entity.manualPaymentChequeNumber\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeNumber)\r\n ? entity.refundPaymentChequeNumber\r\n : \"\";\r\n });\r\n\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.listing?.length,\r\n };\r\n }\r\n}\r\n","\r\n
\r\n

Open Item Details

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.dateCreated | date : \"short\" }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Return\r\n \r\n \r\n
\r\n
\r\n","export class SearchCriteria{\r\n productRadio: string='dbs';\r\n invoiceNumber: string='';\r\n autoDebitPeriodYear: string='';\r\n autoDebitPeriodMonth: string='';\r\n autoDebitPeriodDate: string='';\r\n policyNumber: string='';\r\n autoDebitPeriod: any;\r\n}\r\n\r\nexport interface ReconcilePoliciesDownloadEntity {\r\n serialNumber: any;\r\n invoiceNo: string;\r\n meridianOpenItemSequenceNo: string;\r\n action: string;\r\n status: string;\r\n total: string;\r\n gst: string;\r\n savedBy: string;\r\n openItemId: string;\r\n policyCertificateNumber: string;\r\n Id: any;\r\n paidBy:string;\r\n remark:string;\r\n}","import { Component, OnInit, Inject, LOCALE_ID } from \"@angular/core\";\r\nimport { BaseReconcileListComponent } from \"../../new-product/base/base-reconcile-list/base-reconcile-list.component\";\r\n\r\n@Component({\r\n selector: \"app-reconcile-list\",\r\n templateUrl: \"./reconcile-list.component.html\",\r\n styleUrls: [\"./reconcile-list.component.scss\"],\r\n})\r\nexport class ReconcileListComponent\r\n extends BaseReconcileListComponent\r\n implements OnInit {}\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please enter at least ONE search info.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Auto Debit Period\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Search\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ excelFilesErrorMessage }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload Excel\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { BaseUploadComponent } from \"../base-upload/base-upload.component\";\r\nimport { Global } from \"src/app/shared/global\";\r\n\r\n@Component({\r\n selector: \"app-refund-upload\",\r\n templateUrl: \"./refund-upload.component.html\",\r\n styleUrls: [\"./refund-upload.component.scss\"],\r\n})\r\nexport class RefundUploadComponent extends BaseUploadComponent {\r\n constructor(\r\n public override uploadService: UploadExcelService,\r\n public override router: Router,\r\n public override route: ActivatedRoute,\r\n public override excelTemplate: ExcelTemplateService\r\n ) {\r\n super(uploadService, router, route, excelTemplate);\r\n }\r\n\r\n downloadTemplate(): void {\r\n this.excelTemplate.downloadTemplate(\r\n columns,\r\n \"Refund\",\r\n \"RefundUploadTemplate\"\r\n );\r\n }\r\n\r\n override addExcel() {\r\n this.isProcessing = true;\r\n this.errorLogs.Logs = []; //reset errorLogs\r\n\r\n const uploadedExcelFormData = this.getUploadedExcelFiles(this.uploadExcel);\r\n\r\n this.uploadService.uploadRefund(uploadedExcelFormData).subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n //no longer result.data as in angularJs but result.body\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.body.Status === false) {\r\n tempData = {\r\n message: result.body.Message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n } else {\r\n tempData = {\r\n message: result.body.Message,\r\n status: true,\r\n };\r\n }\r\n\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n this.errorLogs.Logs = new Array();\r\n this.errorLogs.Title = \"Error\";\r\n\r\n const log: string =\r\n Global.isDefined(error?.data?.ExceptionMessage) &&\r\n error.data.ExceptionMessage !== \"\"\r\n ? error.data.ExceptionMessage\r\n : \"Failed to upload excel file. Please contact the system administrator.\";\r\n\r\n this.errorLogs.Logs.push(log);\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n}\r\n\r\nconst columns: string[] = [\r\n \"Policy Certificate Number\",\r\n \"Payee Name\",\r\n \"Cheque Issuing Bank\",\r\n \"Cheque Number\",\r\n \"Remarks\",\r\n];\r\n","
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FileInfo,\r\n FileRestrictions,\r\n RemoveEvent,\r\n SelectEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { ExcelService } from \"src/app/services/excel.service\";\r\nimport { dlgModelArgs } from \"../../shared/partials/md-successful-file-upload/md-successful-file-upload.component\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { UploadExcel } from \"../../product/auto-loan-redemption/auto-loan-redemption.entity\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\n\r\n@Component({\r\n selector: \"app-review-refund-upload\",\r\n templateUrl: \"./review-refund-upload.component.html\",\r\n styleUrls: [\"./review-refund-upload.component.scss\"],\r\n})\r\nexport class ReviewRefundUploadComponent implements OnInit {\r\n uploadExcel!: UploadExcel;\r\n excelFilesErrorMessage: string = \"\";\r\n hasError: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n // Error logs\r\n errorLogs!: { Title: string; Logs: string[] };\r\n\r\n public redirectOpened = false;\r\n redirectMessage: any;\r\n redirectData: any;\r\n sub: any;\r\n\r\n constructor(\r\n private excelService: ExcelService,\r\n private uploadService: UploadExcelService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private excelTemplate: ExcelTemplateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.uploadExcel = new UploadExcel();\r\n\r\n this.sub = this.route.data.subscribe();\r\n\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub?.unsubscribe();\r\n }\r\n\r\n downloadTemplate(): void {\r\n this.excelTemplate.downloadTemplate(\r\n columns,\r\n \"Refund\",\r\n \"ReviewRefundUploadTemplate\"\r\n );\r\n }\r\n\r\n excelAndSizeRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".xls\", \".xlsx\"],\r\n maxFileSize: 5242880, // Check for each file size less than 5MB, 1024 * 1024 * 5\r\n };\r\n\r\n public resetFiles(): void {\r\n //todo: currently only allow single file upload\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n this.uploadExcel.files = {};\r\n }\r\n\r\n public removeEvent(e: RemoveEvent): void {\r\n this.resetFiles();\r\n }\r\n\r\n public select(e: SelectEvent): void {\r\n this.resetFiles();\r\n\r\n const that = this;\r\n\r\n this.hasError = false;\r\n\r\n let totalFileSize = this.getUploadedClaimFilesTotalSize(e.files);\r\n if (totalFileSize / 1024 / 1024 > 20) {\r\n this.hasError = true;\r\n this.excelFilesErrorMessage =\r\n \"Total file size allowed in a claim is 20MB.\";\r\n } else {\r\n const uploadExcels: File[] = new Array();\r\n e.files.forEach((file: FileInfo) => {\r\n //this already check extension & individual file size by kendo control itself\r\n if (!file.validationErrors && file.rawFile) {\r\n uploadExcels.push(file.rawFile);\r\n }\r\n });\r\n if (this.uploadExcel != undefined && this.uploadExcel != null) {\r\n this.uploadExcel.files = uploadExcels;\r\n }\r\n }\r\n }\r\n\r\n getUploadedClaimFilesTotalSize(files: FileInfo[]): number {\r\n let totalFileSize: number = 0;\r\n\r\n files.forEach((file: FileInfo) => {\r\n if (file.rawFile) {\r\n totalFileSize += file.rawFile.size;\r\n }\r\n });\r\n\r\n return totalFileSize;\r\n }\r\n\r\n add(): void {\r\n this.hasError = false;\r\n\r\n if (this.uploadExcel?.files?.length > 0) {\r\n this.addExcel();\r\n } else {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n }\r\n }\r\n\r\n getUploadedExcelFiles(uploadedExcel: UploadExcel): FormData {\r\n const formData: FormData = new FormData();\r\n for (let i = 0; i < uploadedExcel.files.length; i++) {\r\n formData.append(\"file\" + i.toString(), uploadedExcel.files[i]);\r\n }\r\n return formData;\r\n }\r\n\r\n addExcel() {\r\n this.isProcessing = true;\r\n\r\n const uploadedExcelFormData = this.getUploadedExcelFiles(this.uploadExcel);\r\n\r\n this.uploadService.uploadReviewRefund(uploadedExcelFormData).subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n //no longer result.data as in angularJs but result.body\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.body.Status === false) {\r\n tempData = {\r\n message: result.body.Message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n } else {\r\n tempData = {\r\n message: result.body.Message,\r\n status: true,\r\n };\r\n }\r\n\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n //this.uploadExcel.files = {};//maybe no need to clear, just like original\r\n\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n // this.dialog.modalLarge(\r\n // 'shared/partials/mdSuccessfullFileUpload/successfullFileUpload.html',\r\n // 'SuccessFullFileUpload', data\r\n // , this.confirmationModelForSuccessullExcelUpload, undefined, undefined, undefined, false, 'standardModal');\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n // Prompt fail\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.errorLogs.Title = \"Error\";\r\n\r\n const log: string =\r\n Global.isDefined(error?.data?.ExceptionMessage) &&\r\n error.data.ExceptionMessage !== \"\"\r\n ? error.data.ExceptionMessage\r\n : \"Failed to upload excel file. Please contact the system administrator.\";\r\n\r\n this.errorLogs.Logs.push(log);\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n public confirmationModelForSuccessullExcelUpload(args: dlgModelArgs) {\r\n this.redirectOpened = false;\r\n if (args.status === \"return\") {\r\n //todo\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n //this.$state.go('product.home', { reload: true });\r\n }\r\n }\r\n}\r\nconst columns: string[] = [\"Policy Certificate Number\", \"Refund Premium\"];\r\n","\r\n\r\n","import { Component, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, UntypedFormGroup } from \"@angular/forms\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport {\r\n ApiModel,\r\n PersonModel,\r\n SelectedProducts,\r\n SelectedRoles,\r\n UserDetailsModel,\r\n UserProfileModel,\r\n} from \"../../user-profile.model\";\r\nimport * as constants from \"../../user-profile.constant\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { sessionstorageEnum } from \"src/app/framework/app.enums\";\r\n\r\n@Component({\r\n selector: \"app-create-profile\",\r\n templateUrl: \"./create-profile.component.html\",\r\n styleUrls: [\"./create-profile.component.scss\"],\r\n})\r\nexport class CreateProfileComponent implements OnInit {\r\n @Input() isTab2: boolean = false;\r\n model = new ApiModel();\r\n userDetails = new UserDetailsModel();\r\n userProfile = new UserProfileModel();\r\n isUserAvailable = \"\";\r\n isUserExists = false;\r\n userLogin!: string;\r\n title!: string;\r\n serverErrorMsg!: string;\r\n public dob_max!: Date;\r\n @ViewChild(\"userForm\", { static: false })\r\n private userForm!: UntypedFormGroup;\r\n public teamsData = new Array<{ text: string; value: number }>();\r\n public organizationsData = new Array<{ text: string; value: number }>();\r\n public productData = new Array();\r\n public roleData = new Array();\r\n isInvalidEmailAddress = false;\r\n isUserEmailIDExists = false;\r\n isEmailSameRoleExistEp2 = false;\r\n showNoProductsMessage = false;\r\n isUserEmailIDAvailable = \"\";\r\n isUserEmailRoleAlreadyPresent = \"\";\r\n userTypeOptions: any = [];\r\n public userType = new Array<{ text: string; value: number }>();\r\n public accessControlList = new Array<{ text: string; value: number }>();\r\n //personal details\r\n personalDetails = new PersonModel();\r\n public genderList = new Array<{ text: string; value: number }>();\r\n public statusList = new Array<{ text: string; value: number }>();\r\n public nationality = new Array<{ text: string; value: string }>();\r\n public noOfChilds = new Array<{ text: string; value: string }>();\r\n public countryData = new Array<{ text: string; value: string }>();\r\n\r\n constructor(\r\n private userProfileService: UserProfileService,\r\n public identityRolesService: IdentityRolesService\r\n ) {}\r\n ngOnInit(): void {\r\n this.dob_max = new Date();\r\n this.userDetails.userType = \"\";\r\n this.userDetails.receiveEmail = true;\r\n this.userDetails.active = true;\r\n if (this.identityRolesService.isThailandUser) this.title = \"System\";\r\n else this.title = \"Products\";\r\n this.getUserTeam();\r\n this.getAccessControlGroupsList();\r\n //personal details\r\n this.genderList = [\r\n { text: \"Male\", value: 1 },\r\n { text: \"Female\", value: 2 },\r\n ];\r\n this.statusList = [\r\n { text: \"\", value: 0 },\r\n { text: \"Single\", value: 1 },\r\n { text: \"Married\", value: 2 },\r\n ];\r\n this.loadNationality();\r\n this.loadChildData();\r\n //this.personalDetails.nationality = \"112\";//HE-75: Remove Nationality Defaulting to \"Malaysia\"\r\n this.setModeToDirectives();\r\n }\r\n\r\n setModeToDirectives() {\r\n //this.userProfile.person.mode = mode;\r\n this.userProfile.marketer = {\r\n marketerId: \"\",\r\n marketerCode: \"\",\r\n branchId: \"\",\r\n organisationByProducts: \"\",\r\n mode: \"create\",\r\n };\r\n //this.userProfile.userDetails.mode = \"create\";\r\n this.userProfile.underwriter = {\r\n organisationByProducts: \"\",\r\n meridianCode: \"\",\r\n geniusCode: \"\",\r\n mode: \"create\",\r\n };\r\n }\r\n\r\n saveData(): UserProfileModel {\r\n this.userDetails.productsByOrganisation = [];\r\n this.userDetails.productIds.forEach((pid) => {\r\n this.userDetails.productsByOrganisation.push(\r\n this.productData.filter((x) => x.value === pid)[0]\r\n );\r\n });\r\n //\r\n this.userDetails.roles = [];\r\n this.userDetails.roleIds.forEach((roleid) => {\r\n this.userDetails.roles.push(\r\n this.roleData.filter((x) => x.value == roleid.toString())[0]\r\n );\r\n });\r\n this.userProfile.userDetails = this.userDetails;\r\n this.userProfile.subUser = this.getSubUserType(\r\n this.userProfile.userDetails.userType\r\n );\r\n this.userProfile.person = this.personalDetails;\r\n this.userProfile.userType = this.userProfile.userDetails.userType;\r\n return this.userProfile;\r\n }\r\n\r\n getSubUserType(userType: number) {\r\n //subuser info is not required for agent,broker,client as there will not be any extra info for these\r\n // other than person details\r\n if (userType == 3) {\r\n return this.userProfile.underwriter;\r\n } else {\r\n //if (userType == 6) {\r\n return this.userProfile.marketer;\r\n }\r\n }\r\n\r\n getUserTeam(): void {\r\n this.userProfileService.getUserTeam().subscribe((result: any) => {\r\n result.items.forEach((item: any) => {\r\n this.teamsData.push({ text: item.o, value: item.i });\r\n });\r\n });\r\n }\r\n private getAccessControlGroupsList() {\r\n this.userProfileService.getAccessControlGroups().subscribe((result) => {\r\n this.accessControlList = result?.items;\r\n if (\r\n this.identityRolesService.isAdmin &&\r\n !this.identityRolesService.showInterfaceMaintenance\r\n ) {\r\n //FP007222 Additional Work - Restrict Underwriter For Honkong Admin\r\n if (!this.identityRolesService.isThailandUser) {\r\n this.userType = [\r\n { value: 2, text: \"Broker\" },\r\n { value: 3, text: \"Underwriter\" },\r\n ];\r\n } else {\r\n this.userType = [{ value: 2, text: \"Broker\" }];\r\n }\r\n } else {\r\n this.userType = [\r\n { value: 1, text: \"System Maintenance\" },\r\n { value: 2, text: \"Broker\" },\r\n { value: 3, text: \"Underwriter\" },\r\n //,{ value: \"5\", text: \"Agent\" }//DBS Admin Screen Enable Changes\r\n //,{ value: \"6\", text: \"Marketer\" }//DBS Admin Screen Enable Changes\r\n ];\r\n }\r\n });\r\n }\r\n public onChangeOrg(val?: any): void {\r\n this.userDetails.productIds = [];\r\n this.productData = [];\r\n this.userDetails.roleIds = [];\r\n this.roleData = [];\r\n if (this.userDetails.userOrganisation)\r\n this.getProductsByOrganisationAndCountry();\r\n }\r\n private getProductsByOrganisationAndCountry(): void {\r\n this.userProfileService\r\n .getProductsByOrganisationAndCountry(\r\n this.userDetails.userOrganisation,\r\n this.userDetails.userCountry\r\n )\r\n .subscribe((result: any) => {\r\n if (result.items?.length > 0) {\r\n this.showNoProductsMessage = false;\r\n result.items.forEach((item: any) => {\r\n let selectedProduct: SelectedProducts = {\r\n text: item.o,\r\n value: item.i,\r\n };\r\n this.productData.push(selectedProduct);\r\n });\r\n } else this.showNoProductsMessage = true;\r\n });\r\n }\r\n public onProductSelectionChange(val: any): void {\r\n this.userDetails.roleIds = [];\r\n this.roleData = [];\r\n if (this.userDetails.productIds?.length > 0) {\r\n this.getRoles();\r\n }\r\n }\r\n private getRoles(): void {\r\n this.userProfileService\r\n .getRoles(this.userDetails.productIds, this.userDetails.userType)\r\n .subscribe((result: any) => {\r\n result.items.forEach((item: any) => {\r\n let role: SelectedRoles = {\r\n text: item.o,\r\n value: item.i,\r\n };\r\n this.roleData.push(role);\r\n });\r\n });\r\n }\r\n getProductById(pid: any): void {}\r\n onSubmit(): void {}\r\n checkUser(): void {\r\n this.isUserAvailable = \"\";\r\n //By default userlogin will not be allowed to update. But Super Admin can update the UserLogin. So below check is for updating the userlogin by superadmin\r\n if (this.userLogin === this.userDetails.userName) {\r\n this.isUserAvailable = \"\";\r\n this.isUserExists = false;\r\n return;\r\n }\r\n //DBS Admin Screen Enable Changes\r\n if (!this.userDetails.userName) {\r\n this.isUserAvailable = \"Username Empty\";\r\n } else {\r\n this.userProfileService\r\n .checkUserLogin(this.userDetails.userName)\r\n .subscribe(\r\n (model: any) => {\r\n if (model.body.isAvailable == true) {\r\n this.isUserAvailable = \"\";\r\n this.isUserExists = false;\r\n } else {\r\n this.isUserAvailable = \"Username Not Available\";\r\n this.isUserExists = true;\r\n }\r\n },\r\n function (err: any) {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n onKeypressEvent(event: any) {\r\n if (event.charCode === 32) event.preventDefault();\r\n }\r\n //Load country based on the selected usertype\r\n private loadCountry(): void {\r\n this.countryData = [];\r\n //let userCountry = this.identityRolesService.isThailandUser ? \"TH\" : \"SG\";\r\n let userCountry = this.identityRolesService\r\n .getIdentity()\r\n .currentUser().CountryISO; //cater HK\r\n constants.countryData.forEach((item) => {\r\n if (!this.identityRolesService.showInterfaceMaintenance) {\r\n if (userCountry === item.value) {\r\n this.userDetails.displayUserCountry = item.text;\r\n this.userDetails.userCountry = item.value;\r\n }\r\n } else {\r\n this.countryData.push(item);\r\n }\r\n });\r\n }\r\n changeOrganizationList(): void {\r\n //DBS Admin Screen Enable Changes\r\n this.showNoProductsMessage = false;\r\n this.productData = [];\r\n this.userDetails.productIds = [];\r\n this.roleData = [];\r\n this.userDetails.roleIds = [];\r\n this.userDetails.userOrganisation = undefined;\r\n this.loadOrganization();\r\n }\r\n private clearData(): void {\r\n this.organizationsData = [];\r\n this.userDetails.userOrganisation = undefined;\r\n this.userDetails.userCountry = undefined;\r\n this.productData = [];\r\n this.userDetails.productIds = [];\r\n this.roleData = [];\r\n this.userDetails.roleIds = [];\r\n }\r\n public checkEmailIDInADB2C() {\r\n if (this.IsADB2CCountry()) {\r\n if (this.validateEmail(this.userDetails.email)) {\r\n this.isUserEmailIDAvailable = \"\";\r\n var B2CACCESS_TOKEN = sessionStorage.getItem(\r\n sessionstorageEnum.B2CAccessToken\r\n );\r\n this.userProfileService\r\n .CheckEmailIDInADB2C(this.userDetails.email, B2CACCESS_TOKEN)\r\n .subscribe((result: any) => {\r\n if (\r\n common.isDefined(result.body) &&\r\n common.isDefined(result.status) &&\r\n result.body.Error === \"user not found/active!\"\r\n ) {\r\n this.isInvalidEmailAddress = true;\r\n this.isUserEmailIDExists = true;\r\n this.isUserEmailIDAvailable =\r\n \"EmailID is not registered in ADB2C\";\r\n this.userDetails.isNotifyCreation = false;\r\n } else {\r\n this.userDetails.mobileNumber = result.body.mobile;\r\n if (result.body.mobile && result.body.mobile != \"\") {\r\n this.userDetails.isNotifyCreation = true;\r\n } else {\r\n this.userDetails.isNotifyCreation = false;\r\n }\r\n this.checkUserEmailID();\r\n }\r\n });\r\n }\r\n } else {\r\n this.isUserEmailIDExists = false;\r\n this.isUserEmailIDAvailable = \"\";\r\n }\r\n }\r\n private validateEmail(email: any): boolean {\r\n this.isUserEmailRoleAlreadyPresent = \"\";\r\n this.isInvalidEmailAddress = false;\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n if (reg.test(email)) {\r\n this.isInvalidEmailAddress = false;\r\n this.isUserEmailIDAvailable = \"\";\r\n this.isUserEmailIDExists = false;\r\n return true;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n if (common.isDefined(email) && email.length != 0) {\r\n this.isUserEmailIDAvailable = \"EmailID is not valid\";\r\n this.isUserEmailIDExists = true;\r\n }\r\n return false;\r\n }\r\n }\r\n private checkUserEmailID() {\r\n if (this.IsADB2CCountry()) {\r\n var userEmailID = this.userDetails.email;\r\n var userOrganisationGroupID = this.userDetails.userType;\r\n if (userEmailID == \"\") {\r\n this.isUserEmailIDAvailable = \"UserEmailID Empty\";\r\n } else {\r\n if (common.isDefined(userEmailID) && userEmailID == \"\") {\r\n this.isUserEmailIDAvailable = \"UserEmailID Empty\";\r\n } else {\r\n if (\r\n common.isDefined(userOrganisationGroupID) &&\r\n userOrganisationGroupID != \"\"\r\n ) {\r\n this.validateEmailSameRoleExistEp2(\r\n userEmailID,\r\n userOrganisationGroupID\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n this.isUserEmailIDAvailable = \"\";\r\n this.isUserEmailIDExists = false;\r\n }\r\n }\r\n private IsADB2CCountry(): boolean {\r\n return true; //all Banca using ADB2C\r\n }\r\n private validateEmailSameRoleExistEp2(email: any, selectedRole: any) {\r\n this.isUserEmailRoleAlreadyPresent = \"\";\r\n this.userProfileService\r\n .GetUserRolesByEmail(email)\r\n .subscribe((usertypeList) => {\r\n this.userTypeOptions = usertypeList.body;\r\n\r\n if (\r\n common.isDefined(this.userTypeOptions) &&\r\n common.isDefined(this.userTypeOptions.Items) &&\r\n Array.isArray(this.userTypeOptions.Items) &&\r\n this.userTypeOptions.Items.length > 0\r\n ) {\r\n var isEmailSameRoleExistEp2 = this.userTypeOptions.Items.some(\r\n function (item: any) {\r\n return item.OrganisationGroupID == selectedRole;\r\n }\r\n );\r\n }\r\n this.isEmailSameRoleExistEp2 = isEmailSameRoleExistEp2;\r\n\r\n if (isEmailSameRoleExistEp2) {\r\n this.isUserEmailRoleAlreadyPresent =\r\n \"Email Address is already present with the same User Type. Kindly update the existing user to assign new Role.\";\r\n } else {\r\n this.isUserEmailRoleAlreadyPresent = \"\";\r\n }\r\n });\r\n }\r\n public changeUserType(val: any) {\r\n this.clearData();\r\n this.loadCountry();\r\n if (this.userDetails.email?.length > 0)\r\n this.validateEmailSameRoleExistEp2(\r\n this.userDetails.email,\r\n this.userDetails.userType\r\n );\r\n if (\r\n !this.identityRolesService.showInterfaceMaintenance &&\r\n this.userDetails.userType\r\n )\r\n this.loadOrganization();\r\n }\r\n private loadOrganization(): void {\r\n this.organizationsData = [];\r\n this.userProfileService\r\n .getOrganisationByGroupType(this.userDetails.userType)\r\n .subscribe((result) => {\r\n result.items.forEach((item: any) => {\r\n //For User Type \"Broker\" > Under Organization, keep HASE only\r\n if (this.userDetails.userType == 2) {\r\n if (String(item.o).toUpperCase() === \"HASE\") {\r\n this.organizationsData.push({ text: item.o, value: item.i });\r\n } else {\r\n //do nothing, dun insert\r\n }\r\n } else {\r\n this.organizationsData.push({ text: item.o, value: item.i });\r\n }\r\n });\r\n\r\n //HE-75: Keep Organization as a non-default field for both Underwriter and Broker User Type\r\n // if (this.userDetails.userType == 2 || this.userDetails.userType == 3) {\r\n // this.userDetails.userOrganisation = this.organizationsData[0].value;\r\n // this.onChangeOrg();\r\n // }\r\n });\r\n }\r\n //personal details\r\n //Load country based on the selected usertype\r\n private loadNationality(): void {\r\n constants.nationality.forEach((item) => {\r\n this.nationality.push(item);\r\n });\r\n }\r\n private loadChildData(): void {\r\n constants.personNoOfChildren.forEach((item) => {\r\n this.noOfChilds.push(item);\r\n });\r\n }\r\n\r\n private isDateTimeMinValue(value: any) {\r\n return value === \"0001-01-01T00:00:00\";\r\n }\r\n public validateFormData(): boolean {\r\n this.markFormGroupTouched(this.userForm);\r\n if (\r\n this.isUserEmailIDAvailable?.length === 0 &&\r\n this.isUserEmailRoleAlreadyPresent?.length === 0 &&\r\n this.isUserAvailable?.length === 0\r\n )\r\n return this.userForm.valid;\r\n else return false;\r\n }\r\n private markFormGroupTouched(formGroup: FormGroup) {\r\n (Object).values(formGroup.controls).forEach((item: any) => {\r\n item.markAsTouched();\r\n if (item.controls) {\r\n this.markFormGroupTouched(item);\r\n }\r\n });\r\n }\r\n //this is to toggle disabled field based on active field\r\n public toggleDisabled(): void {\r\n if (this.userDetails.active) {\r\n this.userDetails.disabled = !this.userDetails.active;\r\n }\r\n }\r\n public getTitle(): string {\r\n return this.isTab2 ? \"Additional Information\" : \"Profile\";\r\n }\r\n public showServerValidation(msg: string): void {\r\n this.serverErrorMsg = msg;\r\n }\r\n\r\n protected dispUserCountry(): boolean {\r\n return (\r\n !this.identityRolesService.showInterfaceMaintenance &&\r\n common.isDefined(this.userDetails.displayUserCountry) &&\r\n this.userDetails.displayUserCountry !== \"\"\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Enter\r\n UserName\r\n \r\n
\r\n \r\n {{ isUserAvailable }}\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Email is\r\n required\r\n \r\n \r\n {{\r\n isUserEmailIDAvailable\r\n }}\r\n {{\r\n isUserEmailRoleAlreadyPresent\r\n }}\r\n Please enter a valid email\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please Select\r\n Atleast One UserType\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{ userDetails.displayUserCountry }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n You must select\r\n a Country for this user.\r\n \r\n
\r\n \r\n 0\"\r\n class=\"col-md-12 row k-bottom-lightgray\"\r\n style=\"padding: inherit\"\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n You must select\r\n an Organisation for this user.\r\n \r\n
\r\n \r\n 0\"\r\n class=\"col-md-12 row k-bottom-lightgray\"\r\n style=\"padding: inherit\"\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n You must select\r\n at least one product for this user.\r\n \r\n
\r\n \r\n \r\n
\r\n No Products for the Selected Organisation\r\n
\r\n \r\n 0\"\r\n class=\"col-md-12 row k-bottom-lightgray\"\r\n style=\"padding: inherit\"\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n You must select\r\n at least one role for this user.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please Enter\r\n LastName\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
    \r\n
  • \r\n {{ serverErrorMsg }}\r\n
  • \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { DialogWrapperService } from \"src/app/services/dialog/dialog-wrapper.service\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { UserProfileModel } from \"../user-profile.model\";\r\nimport { CreateProfileComponent } from \"./create-profile/create-profile.component\";\r\nimport { UserSuccessComponent } from \"../user-success/user-success.component\";\r\n\r\n@Component({\r\n selector: \"app-create-user\",\r\n templateUrl: \"./create-user.component.html\",\r\n styleUrls: [\"./create-user.component.scss\"],\r\n})\r\nexport class CreateUserComponent implements OnInit {\r\n @Output() changeTab: EventEmitter = new EventEmitter();\r\n @ViewChild(CreateProfileComponent)\r\n createProfileData!: CreateProfileComponent;\r\n additionalInformationImage = \"additional_grey.png\";\r\n isTab2 = false;\r\n constructor(\r\n private userProfileService: UserProfileService,\r\n private dialogWrapperService: DialogWrapperService\r\n ) {}\r\n ngOnInit(): void {}\r\n cancel(): void {\r\n this.changeTab.emit();\r\n }\r\n next(): void {\r\n if (this.createProfileData?.validateFormData()) {\r\n this.additionalInformationImage = \"additional.png\";\r\n this.isTab2 = true;\r\n }\r\n }\r\n back(): void {\r\n this.additionalInformationImage = \"additional_grey.png\";\r\n this.isTab2 = false;\r\n }\r\n saveAllUserProfile(): void {\r\n if (this.createProfileData?.validateFormData()) {\r\n let model: UserProfileModel = this.createProfileData?.saveData();\r\n this.userProfileService.saveUserDetails(model).subscribe((response) => {\r\n if (response && response.body) {\r\n if (response.body.status === \"success\") {\r\n this.openPopup();\r\n } else\r\n this.createProfileData.showServerValidation(\r\n response.body.invalidDataErrorList\r\n );\r\n }\r\n });\r\n }\r\n }\r\n private openPopup() {\r\n this.dialogWrapperService\r\n .modalSmall(\r\n \"user-success.component.html\",\r\n UserSuccessComponent,\r\n \"\",\r\n undefined,\r\n undefined,\r\n null,\r\n null,\r\n false,\r\n \"\"\r\n )\r\n .subscribe((result: any) => {});\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
    \r\n \r\n
    \r\n
    User Data Profile
    \r\n
    \r\n \r\n
    \r\n \r\n Additional Information\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n
\r\n
\r\n \r\n Next\r\n \r\n
\r\n
\r\n \r\n Back\r\n \r\n \r\n Save\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { DialogCloseResult } from \"@progress/kendo-angular-dialog\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { DialogWrapperService } from \"src/app/services/dialog/dialog-wrapper.service\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { UserProfileList } from \"../user-profile.model\";\r\nimport { ViewUserComponent } from \"../view-user/view-user.component\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { UserSuccessComponent } from \"../user-success/user-success.component\";\r\n\r\n@Component({\r\n selector: \"app-search-user\",\r\n templateUrl: \"./search-user.component.html\",\r\n styleUrls: [\"./search-user.component.scss\"],\r\n})\r\nexport class SearchUserComponent implements OnInit {\r\n userListModel = new UserProfileList();\r\n constructor(\r\n private userProfile: UserProfileService,\r\n private dialogWrapperService: DialogWrapperService\r\n ) {}\r\n ngOnInit(): void {}\r\n userName = \"\";\r\n userSearchText = \"\";\r\n userListLoaded = false;\r\n contentLoaded = false;\r\n organisationListLoaded = false;\r\n productListLoaded = false;\r\n hasResult = false;\r\n\r\n showSearchTextMsg = false;\r\n showNoResultsMsg = false;\r\n searchText = \"\";\r\n getUserProfileDetails(userId: any, organisationId: any, mode: any) {\r\n var data = {\r\n userId: userId,\r\n organisationId: organisationId,\r\n mode: mode,\r\n };\r\n this.dialogWrapperService\r\n .modalLarge(\r\n \"view-user.component.html\",\r\n ViewUserComponent,\r\n data,\r\n undefined,\r\n undefined,\r\n null,\r\n null,\r\n false,\r\n \"slidingModal\"\r\n )\r\n .subscribe((result: any) => {\r\n if (result instanceof DialogCloseResult) {\r\n } else {\r\n this.confirmationProductModalClose(result);\r\n }\r\n });\r\n }\r\n\r\n confirmationProductModalClose = (data: any) => {\r\n if (data === \"success\") {\r\n this.dialogWrapperService\r\n .modalSmall(\r\n \"user-success.component.html\",\r\n UserSuccessComponent,\r\n \"\", //todo\r\n undefined,\r\n undefined,\r\n null,\r\n null,\r\n false,\r\n \"\"\r\n )\r\n .subscribe((result: any) => {});\r\n }\r\n };\r\n\r\n clearContent(): void {\r\n this.userListModel.Items = [];\r\n this.hasResult = false;\r\n this.showNoResultsMsg = false;\r\n this.showSearchTextMsg = false;\r\n }\r\n\r\n //method which will be used for searching the user based on the searchText and organisation name\r\n searchUser(): void {\r\n this.userListLoaded = true;\r\n this.userProfile.searchUserList(this.searchText).subscribe(\r\n (model: any) => {\r\n if (common.isObject(model) && model.body.Items.length > 0) {\r\n this.userListModel = model.body;\r\n this.showNoResultsMsg = false;\r\n } else if (common.isObject(model) && model.body.Items.length == 0) {\r\n //When no records\r\n this.userListModel.Items = []; //setting the scope to empty if no records\r\n this.showNoResultsMsg = true;\r\n }\r\n this.hasResult = true;\r\n this.userListLoaded = false;\r\n },\r\n (err: any) => {\r\n this.userListLoaded = false;\r\n this.showNoResultsMsg = false;\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n
\r\n \r\n Please Select either OrganisationName or SearchText to Search Users\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n No matching result for this search criteria\r\n
\r\n \r\n Filtered result\r\n {{\r\n userListModel.Items.length\r\n }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ item.UserName + \" | \" + item.UserLogin }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Organisation Name\r\n
\r\n \r\n {{ item.OrganisationName }}\r\n
\r\n \r\n
\r\n Email\r\n
\r\n \r\n {{ item.Email }}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { SelectEvent, TabStripComponent } from \"@progress/kendo-angular-layout\";\r\n\r\n@Component({\r\n selector: \"app-user-profile\",\r\n templateUrl: \"./user-profile.component.html\",\r\n styleUrls: [\"./user-profile.component.scss\"],\r\n})\r\nexport class UserProfileComponent implements OnInit {\r\n @ViewChild(\"tabstrip\") public tabstrip!: TabStripComponent;\r\n ngOnInit(): void {}\r\n onTabSelect(e: SelectEvent) {}\r\n selectFirstTab(val: any): void {\r\n this.tabstrip.selectTab(0);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Add User\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","export const countryData = [\r\n {\r\n value: \"HK\",\r\n text: \"Hong Kong\",\r\n },\r\n {\r\n value: \"SG\",\r\n text: \"Singapore\",\r\n },\r\n];\r\nexport const personNoOfChildren = [\r\n {\r\n value: \"1\",\r\n text: \"0\",\r\n },\r\n {\r\n value: \"2\",\r\n text: \"1\",\r\n },\r\n {\r\n value: \"3\",\r\n text: \"2\",\r\n },\r\n {\r\n value: \"4\",\r\n text: \"3\",\r\n },\r\n {\r\n value: \"5\",\r\n text: \"4\",\r\n },\r\n {\r\n value: \"6\",\r\n text: \"5\",\r\n },\r\n {\r\n value: \"7\",\r\n text: \">5\",\r\n },\r\n];\r\nexport const nationality = [\r\n {\r\n value: \"1\",\r\n text: \"Afghans\",\r\n },\r\n {\r\n value: \"2\",\r\n text: \"Albanians\",\r\n },\r\n {\r\n value: \"3\",\r\n text: \"Algerians\",\r\n },\r\n {\r\n value: \"4\",\r\n text: \"Americans\",\r\n },\r\n {\r\n value: \"5\",\r\n text: \"Andorrans\",\r\n },\r\n {\r\n value: \"6\",\r\n text: \"Angolans\",\r\n },\r\n {\r\n value: \"7\",\r\n text: \"Argentines\",\r\n },\r\n {\r\n value: \"8\",\r\n text: \"Armenians\",\r\n },\r\n {\r\n value: \"9\",\r\n text: \"Aromanians\",\r\n },\r\n {\r\n value: \"0\",\r\n text: \"Arubans\",\r\n },\r\n {\r\n value: \"11\",\r\n text: \"Australians\",\r\n },\r\n {\r\n value: \"12\",\r\n text: \"Austrians\",\r\n },\r\n {\r\n value: \"13\",\r\n text: \"Azeris\",\r\n },\r\n {\r\n value: \"14\",\r\n text: \"Bahamians\",\r\n },\r\n {\r\n value: \"15\",\r\n text: \"Bahrainis\",\r\n },\r\n {\r\n value: \"16\",\r\n text: \"Bangladeshis\",\r\n },\r\n {\r\n value: \"17\",\r\n text: \"Barbadians\",\r\n },\r\n {\r\n value: \"18\",\r\n text: \"Belarusians\",\r\n },\r\n {\r\n value: \"19\",\r\n text: \"Belgians\",\r\n },\r\n {\r\n value: \"20\",\r\n text: \"Belizeans\",\r\n },\r\n {\r\n value: \"21\",\r\n text: \"Bermudians\",\r\n },\r\n {\r\n value: \"22\",\r\n text: \"Boers\",\r\n },\r\n {\r\n value: \"23\",\r\n text: \"Bosniaks\",\r\n },\r\n {\r\n value: \"24\",\r\n text: \"Brazilians\",\r\n },\r\n {\r\n value: \"25\",\r\n text: \"Bretons\",\r\n },\r\n {\r\n value: \"26\",\r\n text: \"British\",\r\n },\r\n {\r\n value: \"27\",\r\n text: \"British Virgin Islanders\",\r\n },\r\n {\r\n value: \"28\",\r\n text: \"Bulgarians\",\r\n },\r\n {\r\n value: \"29\",\r\n text: \"Burmeses\",\r\n },\r\n {\r\n value: \"30\",\r\n text: \"Macedonian Bulgarians\",\r\n },\r\n {\r\n value: \"31\",\r\n text: \"Burkinabès\",\r\n },\r\n {\r\n value: \"32\",\r\n text: \"Burundians\",\r\n },\r\n {\r\n value: \"33\",\r\n text: \"Cambodians\",\r\n },\r\n {\r\n value: \"34\",\r\n text: \"Cameroonians\",\r\n },\r\n {\r\n value: \"35\",\r\n text: \"Canadians\",\r\n },\r\n {\r\n value: \"36\",\r\n text: \"Catalans\",\r\n },\r\n {\r\n value: \"37\",\r\n text: \"Cape Verdeans\",\r\n },\r\n {\r\n value: \"38\",\r\n text: \"Chadians\",\r\n },\r\n {\r\n value: \"39\",\r\n text: \"Chileans\",\r\n },\r\n {\r\n value: \"40\",\r\n text: \"Chinese\",\r\n },\r\n {\r\n value: \"41\",\r\n text: \"Colombians\",\r\n },\r\n {\r\n value: \"42\",\r\n text: \"Comorians\",\r\n },\r\n {\r\n value: \"43\",\r\n text: \"Congolese\",\r\n },\r\n {\r\n value: \"44\",\r\n text: \"Croatians\",\r\n },\r\n {\r\n value: \"45\",\r\n text: \"Cubans\",\r\n },\r\n {\r\n value: \"46\",\r\n text: \"Cypriots\",\r\n },\r\n {\r\n value: \"47\",\r\n text: \"Turkish Cypriots\",\r\n },\r\n {\r\n value: \"48\",\r\n text: \"Czechs\",\r\n },\r\n {\r\n value: \"49\",\r\n text: \"Danes\",\r\n },\r\n {\r\n value: \"50\",\r\n text: \"Dominicans (Republic)\",\r\n },\r\n {\r\n value: \"51\",\r\n text: \"Dominicans (Commonwealth)\",\r\n },\r\n {\r\n value: \"52\",\r\n text: \"Dutch\",\r\n },\r\n {\r\n value: \"53\",\r\n text: \"East Timorese\",\r\n },\r\n {\r\n value: \"54\",\r\n text: \"Ecuadorians\",\r\n },\r\n {\r\n value: \"55\",\r\n text: \"Egyptians\",\r\n },\r\n {\r\n value: \"56\",\r\n text: \"Emiratis\",\r\n },\r\n {\r\n value: \"57\",\r\n text: \"English\",\r\n },\r\n {\r\n value: \"58\",\r\n text: \"Eritreans\",\r\n },\r\n {\r\n value: \"59\",\r\n text: \"Estonians\",\r\n },\r\n {\r\n value: \"60\",\r\n text: \"Ethiopians\",\r\n },\r\n {\r\n value: \"61\",\r\n text: \"Faroese\",\r\n },\r\n {\r\n value: \"62\",\r\n text: \"Finns\",\r\n },\r\n {\r\n value: \"63\",\r\n text: \"Finnish Swedish\",\r\n },\r\n {\r\n value: \"64\",\r\n text: \"Fijians\",\r\n },\r\n {\r\n value: \"65\",\r\n text: \"Filipinos\",\r\n },\r\n {\r\n value: \"66\",\r\n text: \"French citizens\",\r\n },\r\n {\r\n value: \"67\",\r\n text: \"Georgians\",\r\n },\r\n {\r\n value: \"68\",\r\n text: \"Germans\",\r\n },\r\n {\r\n value: \"69\",\r\n text: \"Baltic Germans\",\r\n },\r\n {\r\n value: \"70\",\r\n text: \"Ghanaians\",\r\n },\r\n {\r\n value: \"71\",\r\n text: \"Gibraltar\",\r\n },\r\n {\r\n value: \"72\",\r\n text: \"Greeks\",\r\n },\r\n {\r\n value: \"73\",\r\n text: \"Greek Macedonians\",\r\n },\r\n {\r\n value: \"74\",\r\n text: \"Grenadians\",\r\n },\r\n {\r\n value: \"75\",\r\n text: \"Guatemalans\",\r\n },\r\n {\r\n value: \"76\",\r\n text: \"Guianese (French)\",\r\n },\r\n {\r\n value: \"77\",\r\n text: \"Guineans\",\r\n },\r\n {\r\n value: \"78\",\r\n text: \"Guinea-Bissau nationals\",\r\n },\r\n {\r\n value: \"79\",\r\n text: \"Guyanese\",\r\n },\r\n {\r\n value: \"80\",\r\n text: \"Haitians\",\r\n },\r\n {\r\n value: \"81\",\r\n text: \"Hondurans\",\r\n },\r\n {\r\n value: \"82\",\r\n text: \"Hong Kong\",\r\n },\r\n {\r\n value: \"83\",\r\n text: \"Hungarians\",\r\n },\r\n {\r\n value: \"84\",\r\n text: \"Icelanders\",\r\n },\r\n {\r\n value: \"85\",\r\n text: \"Indians\",\r\n },\r\n {\r\n value: \"86\",\r\n text: \"Indonesians\",\r\n },\r\n {\r\n value: \"87\",\r\n text: \"Iranians (Persians)\",\r\n },\r\n {\r\n value: \"88\",\r\n text: \"Arabs\",\r\n },\r\n {\r\n value: \"89\",\r\n text: \"Irish\",\r\n },\r\n {\r\n value: \"90\",\r\n text: \"Israelis\",\r\n },\r\n {\r\n value: \"91\",\r\n text: \"Italians\",\r\n },\r\n {\r\n value: \"92\",\r\n text: \"Ivoirians\",\r\n },\r\n {\r\n value: \"93\",\r\n text: \"Jamaicans\",\r\n },\r\n {\r\n value: \"94\",\r\n text: \"Japanese\",\r\n },\r\n {\r\n value: \"95\",\r\n text: \"Jordanians\",\r\n },\r\n {\r\n value: \"96\",\r\n text: \"Kazakhs\",\r\n },\r\n {\r\n value: \"97\",\r\n text: \"Kenyans\",\r\n },\r\n {\r\n value: \"98\",\r\n text: \"Koreans\",\r\n },\r\n {\r\n value: \"99\",\r\n text: \"Kosovo Albanians\",\r\n },\r\n {\r\n value: \"100\",\r\n text: \"Kurds\",\r\n },\r\n {\r\n value: \"101\",\r\n text: \"Kuwaitis\",\r\n },\r\n {\r\n value: \"102\",\r\n text: \"Lao\",\r\n },\r\n {\r\n value: \"103\",\r\n text: \"Latvians\",\r\n },\r\n {\r\n value: \"104\",\r\n text: \"Lebanese\",\r\n },\r\n {\r\n value: \"105\",\r\n text: \"Liberians\",\r\n },\r\n {\r\n value: \"106\",\r\n text: \"Libyans\",\r\n },\r\n {\r\n value: \"107\",\r\n text: \"Liechtensteiners\",\r\n },\r\n {\r\n value: \"108\",\r\n text: \"Lithuanians\",\r\n },\r\n {\r\n value: \"109\",\r\n text: \"Luxembourgers\",\r\n },\r\n {\r\n value: \"110\",\r\n text: \"Macedonians\",\r\n },\r\n {\r\n value: \"111\",\r\n text: \"Malagasy\",\r\n },\r\n {\r\n value: \"112\",\r\n text: \"Malaysian\",\r\n },\r\n {\r\n value: \"113\",\r\n text: \"Malawians\",\r\n },\r\n {\r\n value: \"114\",\r\n text: \"Maldivians\",\r\n },\r\n {\r\n value: \"115\",\r\n text: \"Malians\",\r\n },\r\n {\r\n value: \"116\",\r\n text: \"Maltese\",\r\n },\r\n {\r\n value: \"117\",\r\n text: \"Manx\",\r\n },\r\n {\r\n value: \"118\",\r\n text: \"Mauritians\",\r\n },\r\n {\r\n value: \"119\",\r\n text: \"Mexicans\",\r\n },\r\n {\r\n value: \"120\",\r\n text: \"Moldovans\",\r\n },\r\n {\r\n value: \"121\",\r\n text: \"Moroccans\",\r\n },\r\n {\r\n value: \"122\",\r\n text: \"Mongolians\",\r\n },\r\n {\r\n value: \"123\",\r\n text: \"Montenegrins\",\r\n },\r\n {\r\n value: \"124\",\r\n text: \"Namibians\",\r\n },\r\n {\r\n value: \"125\",\r\n text: \"Nepalese\",\r\n },\r\n {\r\n value: \"126\",\r\n text: \"New Zealanders\",\r\n },\r\n {\r\n value: \"127\",\r\n text: \"Nicaraguans\",\r\n },\r\n {\r\n value: \"128\",\r\n text: \"Nigeriens\",\r\n },\r\n {\r\n value: \"129\",\r\n text: \"Nigerians\",\r\n },\r\n {\r\n value: \"130\",\r\n text: \"Norwegians\",\r\n },\r\n {\r\n value: \"131\",\r\n text: \"Pakistanis\",\r\n },\r\n {\r\n value: \"132\",\r\n text: \"Palauans\",\r\n },\r\n {\r\n value: \"133\",\r\n text: \"Palestinians\",\r\n },\r\n {\r\n value: \"134\",\r\n text: \"Panamanians\",\r\n },\r\n {\r\n value: \"135\",\r\n text: \"Papua New Guineans\",\r\n },\r\n {\r\n value: \"136\",\r\n text: \"Paraguayans\",\r\n },\r\n {\r\n value: \"137\",\r\n text: \"Peruvians\",\r\n },\r\n {\r\n value: \"138\",\r\n text: \"Poles\",\r\n },\r\n {\r\n value: \"139\",\r\n text: \"Portuguese\",\r\n },\r\n {\r\n value: \"140\",\r\n text: \"Puerto Ricans\",\r\n },\r\n {\r\n value: \"141\",\r\n text: \"Quebecers\",\r\n },\r\n {\r\n value: \"142\",\r\n text: \"Réunionnais\",\r\n },\r\n {\r\n value: \"143\",\r\n text: \"Romanians\",\r\n },\r\n {\r\n value: \"144\",\r\n text: \"Russians\",\r\n },\r\n {\r\n value: \"145\",\r\n text: \"Baltic Russians\",\r\n },\r\n {\r\n value: \"146\",\r\n text: \"Rwandans\",\r\n },\r\n {\r\n value: \"147\",\r\n text: \"Salvadorans\",\r\n },\r\n {\r\n value: \"148\",\r\n text: \"São Tomé and Príncipe\",\r\n },\r\n {\r\n value: \"149\",\r\n text: \"Saudis\",\r\n },\r\n {\r\n value: \"150\",\r\n text: \"Scots\",\r\n },\r\n {\r\n value: \"151\",\r\n text: \"Senegalese\",\r\n },\r\n {\r\n value: \"152\",\r\n text: \"Serbs\",\r\n },\r\n {\r\n value: \"153\",\r\n text: \"Sierra Leoneans\",\r\n },\r\n {\r\n value: \"154\",\r\n text: \"Singaporeans\",\r\n },\r\n {\r\n value: \"155\",\r\n text: \"Slovaks\",\r\n },\r\n {\r\n value: \"156\",\r\n text: \"Slovenes\",\r\n },\r\n {\r\n value: \"157\",\r\n text: \"Somalis\",\r\n },\r\n {\r\n value: \"158\",\r\n text: \"South Africans\",\r\n },\r\n {\r\n value: \"159\",\r\n text: \"Spaniards\",\r\n },\r\n {\r\n value: \"160\",\r\n text: \"Sri Lankans\",\r\n },\r\n {\r\n value: \"161\",\r\n text: \"St Lucians\",\r\n },\r\n {\r\n value: \"162\",\r\n text: \"Sudanese\",\r\n },\r\n {\r\n value: \"163\",\r\n text: \"Surinamese\",\r\n },\r\n {\r\n value: \"164\",\r\n text: \"Swedes\",\r\n },\r\n {\r\n value: \"165\",\r\n text: \"Swiss\",\r\n },\r\n {\r\n value: \"166\",\r\n text: \"Syrians\",\r\n },\r\n {\r\n value: \"167\",\r\n text: \"Taiwanese\",\r\n },\r\n {\r\n value: \"168\",\r\n text: \"Tanzanians\",\r\n },\r\n {\r\n value: \"169\",\r\n text: \"Thais\",\r\n },\r\n {\r\n value: \"170\",\r\n text: \"Tibetans\",\r\n },\r\n {\r\n value: \"171\",\r\n text: \"Tobagonians\",\r\n },\r\n {\r\n value: \"172\",\r\n text: \"Trinidadians\",\r\n },\r\n {\r\n value: \"173\",\r\n text: \"Tunisians\",\r\n },\r\n {\r\n value: \"174\",\r\n text: \"Turks\",\r\n },\r\n {\r\n value: \"175\",\r\n text: \"Tuvaluans\",\r\n },\r\n {\r\n value: \"176\",\r\n text: \"Ugandans\",\r\n },\r\n {\r\n value: \"177\",\r\n text: \"Ukrainians\",\r\n },\r\n {\r\n value: \"178\",\r\n text: \"Uruguayans\",\r\n },\r\n {\r\n value: \"179\",\r\n text: \"Uzbeks\",\r\n },\r\n {\r\n value: \"180\",\r\n text: \"Vanuatuans\",\r\n },\r\n {\r\n value: \"181\",\r\n text: \"Venezuelans\",\r\n },\r\n {\r\n value: \"182\",\r\n text: \"Vietnamese\",\r\n },\r\n {\r\n value: \"183\",\r\n text: \"Welsh\",\r\n },\r\n {\r\n value: \"184\",\r\n text: \"Yemenis\",\r\n },\r\n {\r\n value: \"185\",\r\n text: \"Zambians\",\r\n },\r\n {\r\n value: \"186\",\r\n text: \"Zimbabweans\",\r\n },\r\n];\r\n","export class UserProfile {\r\n UserId!: number;\r\n OrganisationId!: number;\r\n OrganisationName!: string;\r\n UserLogin!: string;\r\n UserName!: string;\r\n Email!: string;\r\n active!: boolean;\r\n lastLoginTime!: Date;\r\n ipAddress!: string;\r\n receiveEmail!: boolean;\r\n Preferences!: string;\r\n builderUser!: boolean;\r\n webServiceUser!: boolean;\r\n disabled!: boolean;\r\n meridianCode!: string;\r\n geniusCode!: string;\r\n personalId!: string;\r\n mobileNumber!: string;\r\n blackList!: boolean;\r\n organisationGroupId!: string;\r\n isDefault!: string;\r\n}\r\nexport class UserProfileList {\r\n Items: UserProfile[];\r\n constructor() {\r\n this.Items = new Array();\r\n }\r\n}\r\nexport class UserDetailsModel {\r\n userId!: number;\r\n\r\n /// \r\n /// UserLogin\r\n /// \r\n userName!: string;\r\n\r\n password!: string;\r\n\r\n active!: boolean;\r\n\r\n email!: string;\r\n\r\n organisatoinId!: number;\r\n\r\n // for underwriter used only\r\n mappedOrganisationId!: number;\r\n\r\n productsByOrganisation!: SelectedProducts[];\r\n productIds!: Array;\r\n userOrganisation!: number | undefined;\r\n meridianCode!: string;\r\n\r\n geniusCode!: string;\r\n\r\n receiveEmail!: boolean;\r\n\r\n blackListed!: boolean;\r\n\r\n underwriterGroup!: UnderwriterControlGroupModel;\r\n\r\n notifyUserCreation!: boolean;\r\n isNotifyCreation!: boolean;\r\n\r\n /// \r\n /// UserName\r\n /// \r\n name!: string;\r\n\r\n confirmPassword!: string;\r\n\r\n isSuperAgent!: boolean;\r\n\r\n disabled!: boolean;\r\n\r\n suspended!: boolean;\r\n\r\n isPrulia!: boolean;\r\n\r\n accessGroupId!: number;\r\n displayAccessGroup!: string;\r\n locked!: boolean;\r\n\r\n userCountry?: string;\r\n displayUserCountry!: string;\r\n\r\n //DBS Admin Screen Enable Changes\r\n roles!: SelectedRoles[];\r\n roleIds!: Array;\r\n\r\n isPasswordExpired!: boolean;\r\n\r\n currentPassword!: string;\r\n //End\r\n\r\n //Added FP007222\r\n userTeamId!: number;\r\n teamId!: number;\r\n userTeam: any;\r\n //End FP007222\r\n\r\n authType!: string;\r\n\r\n mobileNumber!: string;\r\n userType: any;\r\n}\r\nexport class SelectedRoles {\r\n text!: string;\r\n\r\n value!: string;\r\n}\r\nexport class UnderwriterControlGroupModel {\r\n groupId!: number;\r\n groupName!: string;\r\n groupDetails!: UnderwriterControlGroupDetailsModel[];\r\n}\r\nexport class UnderwriterControlGroupDetailsModel {\r\n groupDetailsId!: number;\r\n\r\n type!: number;\r\n\r\n productId!: string;\r\n\r\n productName!: string;\r\n\r\n defaultMinLimit!: number;\r\n\r\n defaultMaxLimit!: number;\r\n\r\n overwrittenMinLimit!: number;\r\n\r\n overwrittenMaxLimit!: number;\r\n\r\n coverageCode!: string;\r\n\r\n startEffectiveDate!: Date;\r\n\r\n endEffectiveDate!: Date;\r\n\r\n coverageProductMappingId!: string;\r\n\r\n coverageDisplayName!: string;\r\n\r\n parentProductId!: string;\r\n\r\n parentProductName!: string;\r\n}\r\nexport class SelectedProducts {\r\n text!: string;\r\n value!: string;\r\n}\r\nexport class UserProfileModel {\r\n userDetails!: UserDetailsModel;\r\n person!: PersonModel;\r\n subUser: any;\r\n userType!: string;\r\n underwriter?: UnderwriterModel;\r\n broker?: BrokerModel;\r\n marketer?: MarketerModel;\r\n systemAdmin?: SystemAdministratorModel;\r\n}\r\n\r\n//UnderwriterModelFactory\r\nexport class UnderwriterModel {\r\n organisationByProducts: any;\r\n meridianCode: any;\r\n geniusCode: any;\r\n mode: any;\r\n}\r\n\r\n//BrokerModelFactory\r\nexport class BrokerModel {\r\n organisationId!: number;\r\n organisationName: any;\r\n product: any;\r\n}\r\n\r\n//MarketerModelFactory\r\nexport class MarketerModel {\r\n marketerId: any;\r\n marketerCode: any;\r\n branchId: any;\r\n organisationByProducts: any;\r\n mode: any;\r\n}\r\n\r\nexport class SystemAdministratorModel {\r\n organisationId!: number;\r\n organisationName: any;\r\n product: any;\r\n isSuperUser: any;\r\n userRole: any;\r\n}\r\n\r\nexport class PersonModel {\r\n constructor() {\r\n this.addresses = new Array();\r\n this.userDetails = new UserDetailsModel();\r\n }\r\n\r\n personId!: number;\r\n\r\n userDetails!: UserDetailsModel;\r\n\r\n displayName!: string;\r\n\r\n firstName!: string;\r\n\r\n lastName!: string;\r\n\r\n fullName!: string;\r\n\r\n maritalStatus!: number;\r\n displayMaritalStatus!: string;\r\n\r\n nameOfSpouse!: string;\r\n\r\n education!: string;\r\n\r\n passportNo!: string;\r\n\r\n dateOfBirth?: Date | string;\r\n\r\n gender!: number;\r\n displayGender!: string;\r\n\r\n salutation!: string;\r\n\r\n nationality!: string;\r\n displayNationality!: string;\r\n\r\n occupation!: string;\r\n\r\n race!: string;\r\n\r\n noOfChildren!: string;\r\n\r\n hobbies!: string;\r\n\r\n lastModifiedDate!: Date;\r\n\r\n status!: string;\r\n\r\n addresses!: AddressModel[];\r\n\r\n taboo!: string;\r\n\r\n mobileNo!: string;\r\n\r\n email!: string;\r\n\r\n polisyAsiaClientTypeMapping!: string;\r\n\r\n clientNumber!: string;\r\n\r\n categoryID?: number;\r\n}\r\nexport class AddressModel {\r\n addressId!: number;\r\n\r\n addressCategoryId!: number;\r\n\r\n addressTypeId!: number;\r\n\r\n addressLine1!: string;\r\n\r\n addressLine2!: string;\r\n\r\n addressLine3!: string;\r\n\r\n addressLine4!: string;\r\n\r\n city!: string;\r\n\r\n expiryDate!: Date;\r\n\r\n postcode!: string;\r\n\r\n startDate!: Date;\r\n\r\n state!: string;\r\n\r\n country!: string;\r\n\r\n lastUpdatedDate!: Date;\r\n\r\n polisyAsiaAddressTypeId!: number;\r\n\r\n subDistrict!: string;\r\n}\r\nexport class ApiModel {\r\n organisationName!: string;\r\n userTypeDesc!: string;\r\n userType!: string | number;\r\n userProfile!: UserProfileModel;\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"@progress/kendo-angular-dialog\";\r\n\r\n@Component({\r\n selector: \"app-user-success\",\r\n templateUrl: \"./user-success.component.html\",\r\n styleUrls: [\"./user-success.component.scss\"],\r\n})\r\nexport class UserSuccessComponent implements OnInit {\r\n constructor(public dialog: DialogRef) {}\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
\r\n User Profile Successfully Created.\r\n
\r\n
\r\n
\r\n UserProfile Successfully Created\r\n
\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n LOCALE_ID,\r\n Inject,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport {\r\n ApiModel,\r\n PersonModel,\r\n UserProfileModel,\r\n} from \"../../user-profile.model\";\r\nimport * as constants from \"../../user-profile.constant\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { FormGroup, UntypedFormGroup } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: \"app-edit-personal-details\",\r\n templateUrl: \"./edit-personal-details.component.html\",\r\n styleUrls: [\"./edit-personal-details.component.scss\"],\r\n})\r\nexport class EditPersonalDetailsComponent implements OnInit {\r\n isDataLoaded: boolean = false;\r\n userDetails = new ApiModel();\r\n @Input() data!: any;\r\n personalDetails = new PersonModel();\r\n public genderList = new Array<{ text: string; value: number }>();\r\n public statusList = new Array<{ text: string; value: number }>();\r\n public nationality = new Array<{ text: string; value: string }>();\r\n public noOfChilds = new Array<{ text: string; value: string }>();\r\n @ViewChild(\"userForm\", { static: false })\r\n private userForm!: UntypedFormGroup;\r\n dob!: Date | undefined;\r\n public dob_max!: Date;\r\n serverErrorMsg!: string;\r\n constructor(\r\n @Inject(LOCALE_ID) public locale: string,\r\n private userProfileService: UserProfileService\r\n ) {}\r\n ngOnInit(): void {\r\n this.dob_max = new Date();\r\n this.genderList = [\r\n { text: \"Male\", value: 1 },\r\n { text: \"Female\", value: 2 },\r\n ];\r\n this.statusList = [\r\n { text: \"\", value: 0 },\r\n { text: \"Single\", value: 1 },\r\n { text: \"Married\", value: 2 },\r\n ];\r\n this.getUserProfile();\r\n this.loadNationality();\r\n this.loadChildData();\r\n }\r\n public getUserProfile(): void {\r\n if (common.isDefined(this.data?.userId) && this.data?.userId != \"\") {\r\n this.isDataLoaded = true;\r\n this.userProfileService\r\n .searchUserProfileByUserId(this.data.userId)\r\n .subscribe((response) => {\r\n if (response && response.body) {\r\n this.userDetails = response.body;\r\n this.personalDetails = this.userDetails.userProfile.person;\r\n this.setDate();\r\n this.isDataLoaded = false;\r\n }\r\n });\r\n }\r\n }\r\n setDate(): void {\r\n if (this.isDateTimeMinValue(this.personalDetails.dateOfBirth))\r\n this.dob = undefined;\r\n else {\r\n if (this.personalDetails.dateOfBirth) {\r\n let date = formatDate(\r\n this.personalDetails.dateOfBirth,\r\n \"dd/MM/yyyy\",\r\n \"en-US\"\r\n );\r\n let year = date.split(\"/\")[2];\r\n let month = date.split(\"/\")[1];\r\n let day = date.split(\"/\")[0];\r\n this.dob = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\r\n }\r\n }\r\n }\r\n //save data\r\n saveData(): UserProfileModel {\r\n if (this.dob) {\r\n const answer = new Date(this.dob);\r\n const year = answer.getFullYear();\r\n const month = answer.getMonth() + 1;\r\n const day = answer.getDate();\r\n this.personalDetails!.dateOfBirth = `${year}-${month}-${day} 12:00:00 AM`;\r\n }\r\n this.userDetails.userProfile.subUser = { mode: \"edit\" };\r\n return this.userDetails.userProfile;\r\n }\r\n //Load country based on the selected usertype\r\n private loadNationality(): void {\r\n constants.nationality.forEach((item) => {\r\n this.nationality.push(item);\r\n });\r\n }\r\n private loadChildData(): void {\r\n constants.personNoOfChildren.forEach((item) => {\r\n this.noOfChilds.push(item);\r\n });\r\n }\r\n isDateTimeMinValue(value: any) {\r\n return formatDate(value, \"yyyy\", this.locale) === \"0001\";\r\n }\r\n onSubmit(): void {}\r\n public validateFormData(): boolean {\r\n return this.userForm.valid;\r\n }\r\n public showServerValidation(msg: string): void {\r\n this.serverErrorMsg = msg;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Additional Information
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Please Enter\r\n LastName\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
    \r\n
  • \r\n {{ serverErrorMsg }}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport {\r\n ApiModel,\r\n SelectedProducts,\r\n SelectedRoles,\r\n UserDetailsModel,\r\n UserProfileModel,\r\n} from \"../../user-profile.model\";\r\nimport { FormGroup, UntypedFormGroup } from \"@angular/forms\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport * as constants from \"../../user-profile.constant\";\r\n\r\n@Component({\r\n selector: \"app-edit-user-profile\",\r\n templateUrl: \"./edit-user-profile.component.html\",\r\n styleUrls: [\"./edit-user-profile.component.scss\"],\r\n})\r\nexport class EditUserProfileComponent implements OnInit {\r\n isDataLoaded: boolean = false;\r\n @Input() data!: any;\r\n @Input() accessControlList!: any;\r\n @Input() teamsData!: any;\r\n model = new ApiModel();\r\n userDetails = new UserDetailsModel();\r\n isUserAvailable = \"\";\r\n isUserExists = false;\r\n userLogin!: string;\r\n title!: string;\r\n @ViewChild(\"userForm\", { static: false })\r\n private userForm!: UntypedFormGroup;\r\n public productData = new Array();\r\n public roleData = new Array();\r\n constructor(\r\n private userProfileService: UserProfileService,\r\n public identityRolesService: IdentityRolesService\r\n ) {}\r\n ngOnInit(): void {\r\n if (this.identityRolesService.isThailandUser) this.title = \"System\";\r\n else this.title = \"Products\";\r\n this.getUserProfile();\r\n }\r\n public getUserProfile(): void {\r\n if (common.isDefined(this.data?.userId) && this.data?.userId != \"\") {\r\n this.isDataLoaded = true;\r\n this.userProfileService\r\n .searchUserProfileByUserId(this.data.userId)\r\n .subscribe((response) => {\r\n if (response && response.body) {\r\n this.model = response.body;\r\n this.userDetails = this.model.userProfile.userDetails;\r\n this.userLogin = this.userDetails.userName;\r\n this.userDetails.userTeam = this.userDetails.teamId;\r\n this.loadCountry();\r\n if (this.model.userType != 1)\r\n this.getProductsByOrganisationAndCountry();\r\n else this.model.userTypeDesc = \"System Maintenance\";\r\n this.isDataLoaded = false;\r\n }\r\n });\r\n }\r\n }\r\n saveData(): UserProfileModel {\r\n this.userDetails.productsByOrganisation = [];\r\n this.userDetails.productIds?.forEach((pid) => {\r\n this.userDetails.productsByOrganisation.push(\r\n this.productData.filter((x) => x.value === pid)[0]\r\n );\r\n });\r\n //\r\n this.userDetails.roles = [];\r\n this.userDetails.roleIds?.forEach((roleid) => {\r\n this.userDetails.roles.push(\r\n this.roleData.filter((x) => x.value == roleid.toString())[0]\r\n );\r\n });\r\n this.model.userProfile.subUser = { mode: \"edit\" };\r\n return this.model.userProfile;\r\n }\r\n getProductsByOrganisationAndCountry(): void {\r\n this.userProfileService\r\n .getProductsByOrganisationAndCountry(\r\n this.userDetails.userOrganisation,\r\n this.userDetails.userCountry\r\n )\r\n .subscribe((result: any) => {\r\n result.items.forEach((item: any) => {\r\n let selectedProduct: SelectedProducts = {\r\n text: item.o,\r\n value: item.i,\r\n };\r\n this.productData.push(selectedProduct);\r\n });\r\n this.setSelectedProduct();\r\n });\r\n }\r\n getRoles(): void {\r\n this.userProfileService\r\n .getRoles(this.userDetails.productIds, this.model.userType)\r\n .subscribe((result: any) => {\r\n result.items.forEach((item: any) => {\r\n let role: SelectedRoles = {\r\n text: item.o,\r\n value: item.i,\r\n };\r\n this.roleData.push(role);\r\n });\r\n this.setSelectedroles();\r\n });\r\n }\r\n setSelectedProduct(): void {\r\n this.userDetails.productIds = [];\r\n this.userDetails.productsByOrganisation.forEach((item) => {\r\n this.userDetails.productIds.push(item.value);\r\n });\r\n this.getRoles();\r\n }\r\n setSelectedroles(): void {\r\n this.userDetails.roleIds = [];\r\n this.userDetails.roles.forEach((item) => {\r\n this.userDetails.roleIds.push(parseInt(item.value));\r\n });\r\n }\r\n getProductById(pid: any): void {}\r\n onSubmit(): void {}\r\n checkUser(): void {\r\n this.isUserAvailable = \"\";\r\n //By default userlogin will not be allowed to update. But Super Admin can update the UserLogin. So below check is for updating the userlogin by superadmin\r\n if (this.userLogin === this.userDetails.userName) {\r\n this.isUserAvailable = \"\";\r\n this.isUserExists = false;\r\n return;\r\n }\r\n //DBS Admin Screen Enable Changes\r\n if (!this.userDetails.userName) {\r\n this.isUserAvailable = \"Username Empty\";\r\n } else {\r\n this.userProfileService\r\n .checkUserLogin(this.userDetails.userName)\r\n .subscribe(\r\n (model: any) => {\r\n if (model.body.isAvailable == true) {\r\n this.isUserAvailable = \"\";\r\n this.isUserExists = false;\r\n } else {\r\n this.isUserAvailable = \"Username Not Available\";\r\n this.isUserExists = true;\r\n }\r\n },\r\n function (err: any) {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n onKeypressEvent(event: any) {\r\n if (event.charCode === 32) event.preventDefault();\r\n }\r\n //Load country based on the selected usertype\r\n private loadCountry(): void {\r\n constants.countryData.forEach((item) => {\r\n if (this.userDetails.userCountry === item.value) {\r\n this.userDetails.displayUserCountry = item.text;\r\n this.userDetails.userCountry = item.value;\r\n }\r\n });\r\n }\r\n public validateFormData(): boolean {\r\n return this.userForm.valid;\r\n }\r\n //this is to toggle disabled field based on active field\r\n public toggleDisabled(): void {\r\n if (this.userDetails.active) {\r\n this.userDetails.disabled = !this.userDetails.active;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Profile
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Enter\r\n UserName\r\n \r\n
\r\n \r\n {{ isUserAvailable }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{ userDetails.mobileNumber }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ model.userTypeDesc }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.displayUserCountry }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ model.organisationName }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n You must select\r\n at least one product for this user.\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n You must select\r\n at least one role for this user.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Input, OnInit, LOCALE_ID, Inject } from \"@angular/core\";\r\nimport { Gender, MaritalStatus } from \"src/app/framework/enum.shared\";\r\nimport { ApiModel, PersonModel } from \"../../user-profile.model\";\r\nimport * as constants from \"../../user-profile.constant\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { DatePipe, formatDate } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"app-view-personal-details\",\r\n templateUrl: \"./view-personal-details.component.html\",\r\n styleUrls: [\"./view-personal-details.component.scss\"],\r\n})\r\nexport class ViewPersonalDetailsComponent implements OnInit {\r\n isDataLoaded: boolean = false;\r\n personalDetails = new PersonModel();\r\n @Input() data!: any;\r\n model = new ApiModel();\r\n isDateTimeMin!: boolean;\r\n constructor(\r\n @Inject(LOCALE_ID) public locale: string,\r\n private userProfileService: UserProfileService\r\n ) {}\r\n ngOnInit(): void {\r\n this.getUserProfile();\r\n }\r\n public getUserProfile(): void {\r\n if (common.isDefined(this.data?.userId) && this.data?.userId != \"\") {\r\n this.isDataLoaded = true;\r\n this.userProfileService\r\n .searchUserProfileByUserId(this.data.userId)\r\n .subscribe((response) => {\r\n if (response && response.body) {\r\n this.model = response.body;\r\n this.personalDetails = this.model.userProfile.person;\r\n this.personalDetails.displayGender =\r\n Gender[this.personalDetails.gender];\r\n this.personalDetails.displayMaritalStatus =\r\n MaritalStatus[this.personalDetails.maritalStatus];\r\n this.loadChild();\r\n this.loadNationality();\r\n this.isDateTimeMinValue(this.personalDetails.dateOfBirth);\r\n this.isDataLoaded = false;\r\n }\r\n });\r\n }\r\n }\r\n //Load country based on the selected usertype\r\n private loadNationality(): void {\r\n constants.nationality.forEach((item) => {\r\n if (this.personalDetails.nationality === item.value) {\r\n this.personalDetails.displayNationality = item.text;\r\n }\r\n });\r\n }\r\n private loadChild(): void {\r\n constants.personNoOfChildren.forEach((item) => {\r\n if (this.personalDetails.noOfChildren === item.value) {\r\n this.personalDetails.noOfChildren = item.text;\r\n }\r\n });\r\n }\r\n isDateTimeMinValue(value: any) {\r\n this.isDateTimeMin = formatDate(value, \"yyyy\", this.locale) === \"0001\";\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Additional Information
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ personalDetails.displayName }}
\r\n
\r\n \r\n
\r\n
{{ personalDetails.salutation }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ personalDetails.firstName }}
\r\n
\r\n \r\n
\r\n
{{ personalDetails.lastName }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{\r\n personalDetails.dateOfBirth | date : \"dd/MM/yyyy\"\r\n }}\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ personalDetails.displayGender }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ personalDetails.displayNationality }}
\r\n
\r\n \r\n
\r\n
{{ personalDetails.race }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ personalDetails.passportNo }}
\r\n
\r\n \r\n
\r\n \r\n {{ personalDetails.displayMaritalStatus }}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
{{ personalDetails.nameOfSpouse }}
\r\n
\r\n \r\n
\r\n
{{ personalDetails.noOfChildren }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ personalDetails.education }}
\r\n
\r\n \r\n
\r\n
{{ personalDetails.hobbies }}
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { ApiModel, UserDetailsModel } from \"../../user-profile.model\";\r\nimport * as constants from \"../../user-profile.constant\";\r\n\r\n@Component({\r\n selector: \"app-view-user-profile\",\r\n templateUrl: \"./view-user-profile.component.html\",\r\n styleUrls: [\"./view-user-profile.component.scss\"],\r\n})\r\nexport class ViewUserProfileComponent implements OnInit {\r\n isDataLoaded: boolean = false;\r\n model = new ApiModel();\r\n userDetails = new UserDetailsModel();\r\n title!: string;\r\n @Input() accessControlList!: any;\r\n @Input() data!: any;\r\n @Input() teamsData!: any;\r\n constructor(\r\n private userProfileService: UserProfileService,\r\n public identityRolesService: IdentityRolesService\r\n ) {}\r\n ngOnInit(): void {\r\n if (this.identityRolesService.isThailandUser) this.title = \"System\";\r\n else this.title = \"Products\";\r\n this.getUserProfile();\r\n }\r\n public getUserProfile(): void {\r\n if (common.isDefined(this.data?.userId) && this.data?.userId != \"\") {\r\n this.isDataLoaded = true;\r\n this.userProfileService\r\n .searchUserProfileByUserId(this.data.userId)\r\n .subscribe(\r\n (response) => {\r\n if (response && response.body) {\r\n this.model = response.body;\r\n this.userDetails = this.model.userProfile.userDetails;\r\n if (this.model.userType == 1)\r\n this.model.userTypeDesc = \"System Maintenance\";\r\n this.loadCountry();\r\n this.loadTeams();\r\n this.loadAccessControlGroup();\r\n this.isDataLoaded = false;\r\n }\r\n },\r\n (err: any) => {\r\n this.isDataLoaded = false;\r\n }\r\n );\r\n }\r\n }\r\n //Load country based on the selected usertype\r\n private loadCountry(): void {\r\n constants.countryData.forEach((item) => {\r\n if (this.userDetails.userCountry === item.value) {\r\n this.userDetails.displayUserCountry = item.text;\r\n this.userDetails.userCountry = item.value;\r\n }\r\n });\r\n }\r\n private loadTeams(): void {\r\n this.teamsData.forEach((item: any) => {\r\n if (this.userDetails.teamId === item.value) {\r\n this.userDetails.userTeam = item.text;\r\n }\r\n });\r\n }\r\n private loadAccessControlGroup(): void {\r\n this.accessControlList.forEach((item: any) => {\r\n if (this.userDetails.accessGroupId === item.value) {\r\n this.userDetails.displayAccessGroup = item.text;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Profile
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.userName }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.userTeam }}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.email }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ userDetails.receiveEmail ? \"Yes\" : \"No\" }}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{ userDetails.mobileNumber }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ model.userTypeDesc }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.displayUserCountry }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ model.organisationName }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ product.text }}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ role.text }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.active ? \"Yes\" : \"No\" }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.disabled ? \"Yes\" : \"No\" }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ userDetails.suspended ? \"Yes\" : \"No\" }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{ userDetails.displayAccessGroup }}
\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport { DialogRef } from \"@progress/kendo-angular-dialog\";\r\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { ApiModel, PersonModel, UserProfileModel } from \"../user-profile.model\";\r\nimport { EditPersonalDetailsComponent } from \"./edit-personal-details/edit-personal-details.component\";\r\nimport { EditUserProfileComponent } from \"./edit-user-profile/edit-user-profile.component\";\r\n@Component({\r\n selector: \"app-view-user\",\r\n templateUrl: \"./view-user.component.html\",\r\n styleUrls: [\"./view-user.component.scss\"],\r\n})\r\nexport class ViewUserComponent implements OnInit {\r\n @Input() public data: any;\r\n @ViewChild(EditUserProfileComponent)\r\n editUserProfileData!: EditUserProfileComponent;\r\n @ViewChild(EditPersonalDetailsComponent)\r\n editPersonalData!: EditPersonalDetailsComponent;\r\n personalDetails!: PersonModel;\r\n userDetails?: ApiModel;\r\n tabIndex = 0;\r\n title = \"View User Details\";\r\n public accessControlList = new Array<{ text: string; value: number }>();\r\n public teamsData = new Array<{ text: string; value: number }>();\r\n constructor(\r\n public dialog: DialogRef,\r\n private userProfileService: UserProfileService\r\n ) {}\r\n ngOnInit(): void {\r\n this.getUserTeam();\r\n this.getAccessControlGroupsList();\r\n }\r\n onTabSelect(e: SelectEvent) {\r\n this.tabIndex = e.index;\r\n }\r\n edit(): void {\r\n this.data.mode = \"edit\";\r\n this.title = \"Edit User Details\";\r\n }\r\n resetEdit(): void {\r\n this.data.mode = \"view\";\r\n this.title = \"View User Details\";\r\n }\r\n saveEdit(): void {\r\n if (this.tabIndex === 0) {\r\n if (this.editUserProfileData?.validateFormData()) {\r\n let model: UserProfileModel = this.editUserProfileData?.saveData();\r\n this.userProfileService.saveUserDetails(model).subscribe((response) => {\r\n if (response && response.body) {\r\n if (response.body.status === \"success\") {\r\n this.dialog.close(response.body.status);\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n if (this.editPersonalData?.validateFormData()) {\r\n let model: UserProfileModel = this.editPersonalData?.saveData();\r\n this.userProfileService.saveUserDetails(model).subscribe((response) => {\r\n if (response && response.body) {\r\n if (response.body.status === \"success\") {\r\n this.dialog.close(response.body.status);\r\n } else\r\n this.editPersonalData.showServerValidation(\r\n response.body.invalidDataErrorList\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n private getAccessControlGroupsList() {\r\n this.userProfileService.getAccessControlGroups().subscribe((result) => {\r\n this.accessControlList = result?.items;\r\n });\r\n }\r\n private getUserTeam(): void {\r\n this.userProfileService.getUserTeam().subscribe((result: any) => {\r\n result.items.forEach((item: any) => {\r\n this.teamsData.push({ text: item.o, value: item.i });\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n {{ title }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-footer\",\r\n templateUrl: \"./footer.component.html\",\r\n styleUrls: [\"./footer.component.scss\"],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n getYear = new Date().getFullYear();\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n\r\n
\r\n

© {{ getYear }} - Chubb E-placement℠ System

\r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n LOCALE_ID,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { CldrIntlService, IntlService } from \"@progress/kendo-angular-intl\";\r\nimport { MessageService } from \"@progress/kendo-angular-l10n\";\r\nimport { CustomMessagesService } from \"../../services/custom-messages.service\";\r\nimport { locales } from \"src/app/resources/locales\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { SessionStorageService } from \"src/app/services/storages/session-storage.service\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { BaseComponent } from \"../shared/base/base.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DialogWrapperService } from \"src/app/services/dialog/dialog-wrapper.service\";\r\nimport { DialogCloseResult } from \"@progress/kendo-angular-dialog\";\r\nimport { MdProfileDetailsComponent } from \"../shared/partials/md-menu-header/md-profile-details/md-profile-details.component\";\r\nimport { AuthorizationService } from \"src/app/services/authentication/authorization.service\";\r\nimport { ROUTE_USER_TYPE_LISTING } from \"src/app/app-routing.module\";\r\n\r\n@Component({\r\n selector: \"app-header-component\",\r\n templateUrl: \"./header.commponent.html\",\r\n styleUrls: [\"./header.component.scss\"],\r\n})\r\nexport class HeaderComponent extends BaseComponent implements OnInit {\r\n @Output() public toggle = new EventEmitter();\r\n @Input() public selectedPage?: string;\r\n\r\n inspectCurrentOnlineUserEnable: boolean = false;\r\n appAdminEnable: boolean = false;\r\n impersonateUserEnable: boolean = false;\r\n impersonateUser = \"\";\r\n userTypeOptions: any;\r\n isUserCount: boolean = false;\r\n\r\n isUserLoggedIn!: boolean;\r\n currentUser: IUser | undefined;\r\n userInfo: any;\r\n userDisplayName: string = \"\";\r\n userOrganizationName: string = \"\";\r\n\r\n //#region theme, no use for now\r\n public customMsgService: CustomMessagesService;\r\n\r\n public selectedLanguage = { locale: \"English\", localeId: \"en-US\" };\r\n public locales = locales;\r\n public popupSettings = { width: \"150\" };\r\n public themes: { href: string; text: string }[] = [\r\n {\r\n href: \"assets/kendo-theme-default/dist/all.css\",\r\n text: \"Default\",\r\n },\r\n {\r\n href: \"assets/kendo-theme-bootstrap/dist/all.css\",\r\n text: \"Bootstrap\",\r\n },\r\n {\r\n href: \"assets/kendo-theme-material/dist/all.css\",\r\n text: \"Material\",\r\n },\r\n ];\r\n public selectedTheme = this.themes[1];\r\n public message: string = \"\";\r\n public userTypeName: string | undefined;\r\n //#endregion\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public identity: Identity,\r\n public messages: MessageService,\r\n @Inject(LOCALE_ID) public localeId: string,\r\n public intlService: IntlService,\r\n private sessionStorageService: SessionStorageService,\r\n private userProfileService: UserProfileService,\r\n private dialogWrapperService: DialogWrapperService,\r\n private authorizationService: AuthorizationService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n //when log-in, the sessionStorageService might not yet init-ed, hence needs to sub to a broadcast\r\n this.broadcastService.onAutheticated.subscribe((msg: any) => {\r\n this.isUserLoggedIn = msg.loginStatus;\r\n this.userInfo = this.sessionStorageService.get(\r\n Identity.USER_STORAGE_NAME\r\n );\r\n this.userDisplayName = this.userInfo?.displayName;\r\n this.userOrganizationName = this.userInfo?.organisationName;\r\n\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser(); //when first init\r\n this.getUserTypeOptions();\r\n });\r\n\r\n //when refresh\r\n this.userInfo = this.sessionStorageService.get(\"authorizedUserData\");\r\n\r\n //#region theme, no use for now\r\n this.localeId = this.selectedLanguage.localeId;\r\n this.setLocale(this.localeId);\r\n // //load Bootstrap first\r\n // this.changeTheme({\r\n // href: \"assets/kendo-theme-bootstrap/dist/all.css\",\r\n // text: \"Bootstrap\",\r\n // });\r\n //load default first, which to mimic Banca\r\n this.changeTheme({\r\n href: \"assets/kendo-theme-default/dist/all.css\",\r\n text: \"Default\",\r\n });\r\n this.customMsgService = this.messages as CustomMessagesService;\r\n this.customMsgService.language = this.selectedLanguage.localeId;\r\n //#endregion\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser(); //when refresh\r\n\r\n this.inspectCurrentOnlineUserEnable =\r\n this.identityRolesService.isSuperAdmin;\r\n this.appAdminEnable = this.identityRolesService.isSuperAdmin;\r\n this.impersonateUserEnable = this.identityRolesService.isSuperAdmin;\r\n this.userDisplayName = this.userInfo?.displayName;\r\n this.userOrganizationName = this.userInfo?.organisationName;\r\n }\r\n\r\n getUserTypeOptions() {\r\n if (this.currentUser) {\r\n this.userProfileService\r\n .GetUserRolesByEmail(this.currentUser.emailAddress)\r\n .subscribe((userTypeList) => {\r\n var userId = this.sessionStorageService.get(\"_USRLE\");\r\n if (userId != null) {\r\n userTypeList.body.Items.forEach((value: any) => {\r\n if (value.UserId == userId) {\r\n value.UserName = \"user-circle-o\";\r\n } else {\r\n value.UserName = \"random\";\r\n }\r\n });\r\n }\r\n\r\n this.userTypeOptions = userTypeList.body;\r\n this.isUserCount = this.userTypeOptions.Items.length > 1;\r\n this.userTypeName = \"\";\r\n let displayName = \"\";\r\n this.userDisplayName = \"\";\r\n\r\n displayName =\r\n this.identity.currentUser().organisationShortName + \" | \";\r\n if (\r\n this.identity.currentUser().organisationShortName != undefined &&\r\n this.identity\r\n .currentUser()\r\n .organisationShortName?.trim()\r\n .toLowerCase() ==\r\n this.identity.currentUser().displayName.trim().toLowerCase()\r\n ) {\r\n displayName += this.identity.currentUser().userName;\r\n } else {\r\n displayName += this.identity.currentUser().displayName;\r\n }\r\n\r\n if (this.identity.getCurrentUserType() === 1)\r\n this.userTypeName = \"Admin\";\r\n else if (this.identity.getCurrentUserType() === 2)\r\n this.userTypeName = \"Broker\";\r\n else if (this.identity.getCurrentUserType() === 3)\r\n this.userTypeName = \"Underwriter\";\r\n else if (this.identity.getCurrentUserType() === 4)\r\n this.userTypeName = \"Client\";\r\n else if (this.identity.getCurrentUserType() === 5)\r\n this.userTypeName = \"AgentusertypeList.type === 4\";\r\n else if (this.identity.getCurrentUserType() === 6)\r\n this.userTypeName = \"Marketer\";\r\n\r\n this.userDisplayName = displayName + \" (\" + this.userTypeName + \")\";\r\n // if(Identity.currentUser() !=null)\r\n // {\r\n // window.document.title = \"Eplacement\";\r\n // }\r\n\r\n //, 1000);\r\n });\r\n }\r\n }\r\n\r\n //#region from old code\r\n impersonateUserWithDialog(event: any) {\r\n //todo\r\n // Dialog.modalLarge(\r\n // 'core/components/admin/partials/mdImpersonate/impersonateUser.html',\r\n // 'ImpersonateUserController', {},\r\n // undefined,\r\n // undefined, false);\r\n }\r\n\r\n openProfileDetails($event: any) {\r\n var data = {\r\n details: this.currentUser,\r\n message: \"\",\r\n };\r\n this.dialogWrapperService\r\n .modalLarge(\r\n \"../shared/partials/md-menu-header/md-profile-details/md-profile-details.component.html\",\r\n MdProfileDetailsComponent,\r\n data, //todo\r\n undefined,\r\n undefined,\r\n null,\r\n null,\r\n false,\r\n \"slidingModal\"\r\n )\r\n .subscribe((result) => {\r\n if (result instanceof DialogCloseResult) {\r\n //console.log(\"close\");\r\n } else {\r\n this.confirmationProductModalClose(result);\r\n }\r\n });\r\n }\r\n\r\n confirmationProductModalClose = (data: any) => {\r\n if (data.confirmation) {\r\n }\r\n };\r\n\r\n inspectCurrentOnlineUser(event: any) {\r\n //todo\r\n // event.preventDefault();\r\n // Dialog.modalLarge(\r\n // 'core/components/admin/partials/mdInspectCurrentOnlineUser/currentOnlineUser.html',\r\n // 'CurrentOnlineUserController', {},\r\n // undefined,\r\n // undefined, false);\r\n }\r\n\r\n appAdmin = function (event: any) {\r\n //todo\r\n // event.preventDefault();\r\n // Dialog.modalLarge(\r\n // 'core/components/admin/partials/mdAppAdmin/appAdmin.html',\r\n // 'AppAdminController', {},\r\n // undefined,\r\n // undefined, false);\r\n };\r\n\r\n SetDefaultUserRoles() {\r\n var userLoginObj = this.userTypeOptions.Items.filter(\r\n (e: { UserId: any }) => {\r\n if (e.UserId === this.currentUser?.id) return e;\r\n return null;\r\n }\r\n );\r\n if (userLoginObj !== null) {\r\n this.userProfileService.SetDefaultUserRoles(userLoginObj[0].UserLogin);\r\n }\r\n }\r\n\r\n ChangeUserLogin(UserLogin: any, UserId: any) {\r\n this.sessionStorageService.set(\"_USRLE\", UserId);\r\n let ssoUserName = \"adb2c_roles_management\"; // configured in the API\r\n let loginData = {\r\n userName: ssoUserName,\r\n password: UserLogin,\r\n };\r\n\r\n this.authorizationService.login(loginData).subscribe((response: any) => {\r\n this.identity.storeAuthData(response);\r\n // populating the current user\r\n this.identity.populateCurrentUser(true).subscribe(() => {\r\n setTimeout(() => {\r\n if (this.identity.isAuthenticated()) {\r\n this.router.navigate([\"/\" + ROUTE_USER_TYPE_LISTING]);\r\n } else {\r\n this.message = \"Invalid sign on !\";\r\n }\r\n }, 2000);\r\n });\r\n });\r\n }\r\n\r\n logOut() {\r\n this.identityRolesService.logOut();\r\n }\r\n //#endregion\r\n\r\n //#region theme, no use for now\r\n public changeTheme(theme: { href: string; text: string }) {\r\n this.selectedTheme = theme;\r\n const themeEl: any = document.getElementById(\"theme\");\r\n themeEl.href = theme.href;\r\n }\r\n\r\n public changeLanguage(item: any): void {\r\n this.customMsgService.language = item.localeId;\r\n this.setLocale(item.localeId);\r\n }\r\n\r\n public setLocale(locale: any): void {\r\n (this.intlService as CldrIntlService).localeId = locale;\r\n }\r\n\r\n public onButtonClick(): void {\r\n this.toggle.emit();\r\n }\r\n //#endregion\r\n}\r\n","\r\n\r\n","import * as Enums from \"src/app/framework/enum.shared\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { ROUTE_LOGIN } from \"src/app/app.module\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { IdleService } from \"src/app/services/idle/idle.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { BaseComponent } from \"../shared/base/base.component\";\r\nimport { IdleWarningStates } from \"../shared/idle/enums/idle-warning.states.enum\";\r\nimport { v1DlgInputArgs } from \"../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { MdProductSelectionDialogComponent } from \"../shared/partials/md-product-selection-dialog/md-product-selection-dialog.component\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { ROUTE_USER_ROLE_SELECTION } from \"src/app/app-routing.module\";\r\n\r\n@Component({\r\n selector: \"[app-horiz-menu]\", //render Selector as an Attribute, to prevent nested\r\n templateUrl: \"./horiz-menu.component.html\",\r\n styleUrls: [\"./horiz-menu.component.scss\"],\r\n})\r\nexport class HorizMenuComponent extends BaseComponent implements OnInit {\r\n public items: any[];\r\n\r\n idleTimer = true;\r\n allowedIdleTimeInSeconds = environment.idleAllowed;\r\n titleMessage = `You have been idle for ${\r\n this.allowedIdleTimeInSeconds / 60\r\n } minutes`;\r\n warningTimeInSeconds = environment.idleWarning;\r\n bodyMessage = `You are about to log off in ${this.warningTimeInSeconds} seconds`;\r\n public productListing: any;\r\n\r\n hideMenus: boolean = false;\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public idleService: IdleService,\r\n public masterPolicyService: MasterPolicyService,\r\n public masterDataService: MasterDataService,\r\n public uploadService: UploadExcelService,\r\n private cdkDialogService: CdkDialogService,\r\n public identity: Identity\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n\r\n this.items = this.mapItems(router.config);\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.showHideMenus();\r\n this.getCountry();\r\n this.timerSubscribe();\r\n }\r\n\r\n showHideMenus() {\r\n this.router.events\r\n .pipe(filter((event: any) => event instanceof NavigationEnd))\r\n .subscribe((event: NavigationEnd) => {\r\n let url = event.url;\r\n //https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\r\n const paramsString = url.substring(url.indexOf(\"?\") + 1, url.length);\r\n const searchParams = new URLSearchParams(paramsString);\r\n\r\n // Iterating the search parameters\r\n for (const p of searchParams) {\r\n //console.log(p);\r\n }\r\n if (\r\n searchParams.has(\"pid\") ||\r\n paramsString === \"/\" + ROUTE_USER_ROLE_SELECTION\r\n ) {\r\n //hide menu if proposalpage\r\n this.hideMenus = true;\r\n } else {\r\n this.hideMenus = false;\r\n }\r\n });\r\n }\r\n\r\n getCountry(): void {\r\n //todo\r\n // this.sub = this.route.queryParams.subscribe((params) => {\r\n // this.productId = params[\"pdid\"];\r\n\r\n // let country = this.productService.getCountryByProductId(this.productId!);\r\n // switch (country) {\r\n // case \"SG\":\r\n // this.isSgProduct = true;\r\n // this.isHkProduct = false;\r\n // break;\r\n // case \"HK\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n // break;\r\n // default:\r\n // }\r\n // });\r\n }\r\n\r\n //#region idle\r\n resubscribe(): void {\r\n this.idleTimer = true;\r\n this.timerSubscribe();\r\n }\r\n\r\n private timerSubscribe(): void {\r\n this.idleService.idleStateChanged().subscribe((val) => {\r\n if (val === IdleWarningStates.SecondaryTimerExpired) {\r\n this.idleService.stopTimer();\r\n this.idleTimer = false;\r\n //logout\r\n this.identityRolesService.logOut();\r\n this.router.navigate([\"/\" + ROUTE_LOGIN]);\r\n }\r\n });\r\n }\r\n //#endregion\r\n\r\n /* Method to invoke when product selection modal window open */\r\n btnNew_Onclick(event: any): void {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: null, //args.data,\r\n message: \"\", //this.confirmationMsg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdProductSelectionDialogComponent,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n\r\n event.preventDefault(); //do not goes further\r\n }\r\n\r\n //#region obsolete\r\n public onSelect({ item }: { item: any }): void {\r\n if (!item.items) {\r\n this.router.navigate([item.path]);\r\n }\r\n }\r\n\r\n // convert the routes to menu items.\r\n private mapItems(routes: any[], path?: string): any[] {\r\n return routes.map((item) => {\r\n const result: any = {\r\n text: item.text,\r\n path: (path ? `${path}/` : \"\") + item.path,\r\n };\r\n\r\n if (item.children) {\r\n result.items = this.mapItems(item.children, item.path);\r\n }\r\n\r\n return result;\r\n });\r\n }\r\n //#endregion\r\n //reload admin user profile\r\n public loadUserProfile(): void {\r\n //if same route, force reload\r\n //https://stackblitz.com/edit/angular-same-route-reload\r\n this.router\r\n .navigateByUrl(\"/\", { skipLocationChange: true })\r\n .then(() => this.router.navigate([\"/\" + \"userProfileList\"]));\r\n }\r\n}\r\n","\r\n\r\n
    \r\n
  • E-placement℠
  • \r\n \r\n
    Home \r\n \r\n \r\n New\r\n \r\n \r\n Accounting\r\n
    \r\n Open Item\r\n Batch Invoice\r\n Reconcile\r\n Bulk Refund in Review Upload\r\n Bulk Refund Upload\r\n GST Adjustment Upload\r\n
    \r\n \r\n\r\n \r\n Product\r\n
    \r\n IBG (SG) - Upload\r\n RM Screen\r\n LST Rate\r\n CBG Loan Redemption - Upload\r\n IBG Loan Redemption - Upload\r\n Citi Loan Redemption - Upload\r\n Bounced Mail Policy\r\n Policy Wording SetUp\r\n Multiyear AutoDebit - Upload\r\n
    \r\n \r\n
  • \r\n Clauses and Deductibles\r\n
  • \r\n \r\n \r\n Admin\r\n
    \r\n User Profile\r\n
    \r\n \r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { AuthenticationResult } from \"@azure/msal-browser\";\r\nimport {\r\n ROUTE_HOME,\r\n ROUTE_USER_ROLE_SELECTION,\r\n} from \"src/app/app-routing.module\";\r\nimport * as Enums from \"./../../../framework/enum.shared\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { AuthorizationService } from \"src/app/services/authentication/authorization.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { UrlService } from \"src/app/services/url.service\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { environment } from \"src/environments/environment\";\r\n//import { AuthorizationService } from 'src/app/core/services/authentication/authorization.service';\r\n\r\n@Component({\r\n selector: \"app-adb2c-login-redirect\",\r\n templateUrl: \"./adb2c-login-redirect.component.html\",\r\n styleUrls: [\"./adb2c-login-redirect.component.scss\"],\r\n})\r\nexport class Adb2cLoginRedirectComponent implements OnInit {\r\n constructor(\r\n private msalService: MsalService,\r\n private authorizationService: AuthorizationService,\r\n private identity: Identity,\r\n private router: Router,\r\n private identityRolesService: IdentityRolesService,\r\n private urlService: UrlService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n var loginSilentRequest = {\r\n scopes: [environment.adb2cSettings.clientId],\r\n };\r\n\r\n this.msalService.instance\r\n .acquireTokenSilent(loginSilentRequest)\r\n .then((res) => {\r\n var ssoUserName = \"adb2c_to_ams_sso\"; // need to be configured in api as well\r\n var loginData = {\r\n userName: ssoUserName,\r\n password: res.accessToken,\r\n };\r\n\r\n this.authorizationService.login(loginData).subscribe(async (resp) => {\r\n this.identity.storeAuthData(resp);\r\n\r\n if (\r\n common.isDefined(resp.DefaultUserLoginCount) &&\r\n parseInt(resp.DefaultUserLoginCount) < 1\r\n ) {\r\n //some env is sub-folder\r\n window.location.href = this.urlService.GetFullUrlWithSubDirectory(\r\n ROUTE_USER_ROLE_SELECTION\r\n );\r\n } else {\r\n // console.log(\"adb2cssologin have default\");\r\n // populating the current user\r\n //has to wait until fully finish to get latest this.identity.currentUser()\r\n //this.identity.populateCurrentUser(true);\r\n await this.identity.populateCurrentUser_Promise(true);\r\n this.redirectPage();\r\n }\r\n });\r\n });\r\n }\r\n\r\n redirectPage() {\r\n //check admin first in new angular, since some users could have multiple roles\r\n if (this.identity.currentUser().userType == Enums.UserType.Admin) {\r\n this.router.navigate([\"/userProfileList\"]);\r\n } else if (\r\n this.identityRolesService.hasProductReadWriteRoles ||\r\n this.identityRolesService.hasProductTransactRoles\r\n ) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n } else if (this.identityRolesService.isFinanceAccounting) {\r\n this.router.navigate([\"/openItem\"]);\r\n }\r\n }\r\n\r\n // // Step 1: handle Access Token response\r\n // handleAccessTokenResponse(response) {\r\n // if (response !== null) {\r\n // if (!response.accessToken || response.accessToken === \"\") {\r\n // // throw Auth exception if access token is not returned from ADB2C\r\n // //throw new msal.InteractionRequiredAuthError;\r\n\r\n // } else {\r\n // /* Access token is sent to API for verification and application token is generated\r\n // Note: Do not change login-form ID in login drLogin.html & drADB2CSSOLogin.html\r\n // */\r\n\r\n // }\r\n // }\r\n // }\r\n}\r\n","

Loading ... Please wait...

\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { AuthenticationResult } from \"@azure/msal-browser\";\r\n\r\n@Component({\r\n selector: \"app-adb2c-login\",\r\n templateUrl: \"./adb2c-login.component.html\",\r\n styleUrls: [\"./adb2c-login.component.scss\"],\r\n})\r\nexport class Adb2cLoginComponent implements OnInit {\r\n constructor(private msalService: MsalService) {}\r\n\r\n isLoggedIn(): boolean {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n login() {\r\n // handle auth redired/do all initial setup for msal\r\n this.msalService.instance\r\n .handleRedirectPromise()\r\n .then((authResult) => {\r\n // Check if user signed in\r\n const account = this.msalService.instance.getActiveAccount();\r\n if (!account) {\r\n // redirect anonymous user to login page\r\n this.msalService.instance.loginRedirect();\r\n }\r\n })\r\n .catch((err) => {\r\n // TODO: Handle errors\r\n console.log(err);\r\n });\r\n // this.msalService.instance.loginRedirect();\r\n // this.msalService.loginPopup().subscribe((Response : AuthenticationResult) =>{\r\n // this.msalService.instance.setActiveAccount(Response.account);\r\n // })\r\n }\r\n\r\n logout() {\r\n this.msalService.instance.logout();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.login();\r\n\r\n // this.msalService.instance.handleRedirectPromise().then(\r\n // res=> {\r\n // if(res !=null && res.account !=null){\r\n // this.msalService.instance.setActiveAccount(res.account);\r\n // }\r\n // }\r\n // )\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

Signing on ... Please wait...

\r\n \r\n
0\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n E-placement℠\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n Your current internet browser is not supported. The following are the recommended minimum internet browser versions that can be used to access the System via Internet :\r\n
  • Microsoft Internet Explorer Version 11 and above
  • \r\n
  • Google Chrome 44.0.2403.155 and above
  • \r\n
  • Mozilla Firefox 40.0 and above
  • \r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n ","import { Identity } from \"src/app/shared/user/identity\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app-routing.module\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enums from \"./../../../framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"app-adb2c-user-type-listing\",\r\n templateUrl: \"./adb2c-user-type-listing.component.html\",\r\n styleUrls: [\"./adb2c-user-type-listing.component.scss\"],\r\n})\r\nexport class Adb2cUserTypeListingComponent implements OnInit {\r\n public isProfileDetailsUpdated: boolean = false;\r\n public isExternalUser: boolean = false;\r\n\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n public identity: Identity,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (\r\n this.identityRolesService.hasProductReadWriteRoles ||\r\n this.identityRolesService.hasProductTransactRoles\r\n ) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n } else if (this.identityRolesService.isFinanceAccounting) {\r\n this.router.navigate([\"/openItem\"]);\r\n } else if (this.identity.currentUser().userType == Enums.UserType.Admin) {\r\n this.router.navigate([\"/userProfileList\"]);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
E-placement℠
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n Login\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Your current internet browser is not supported.
\r\n

\r\n The following are the recommended minimum internet browser\r\n versions that can be used to access the System via Internet\r\n :\r\n

\r\n
    \r\n
  • \r\n Microsoft Internet Explorer Version 11 and above\r\n
  • \r\n
  • Google Chrome 44.0.2403.155 and above
  • \r\n
  • Mozilla Firefox 40.0 and above
  • \r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { PolicyCustomerLoginService } from \"../../../services/policy-customer-login.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-customer-accept-offer\",\r\n templateUrl: \"./customer-accept-offer.component.html\",\r\n styleUrls: [\"./customer-accept-offer.component.scss\"],\r\n})\r\nexport class CustomerAcceptOfferComponent implements OnInit {\r\n public hasError: boolean = false;\r\n public msg: string = \"\";\r\n IsDisabled: boolean = false;\r\n\r\n enc: string = \"\";\r\n productList: any;\r\n proposalIdList: any;\r\n policyList: any;\r\n expiryDateList: any;\r\n productPolicyList: any;\r\n premium1Year: number | undefined;\r\n premium3Year: number | undefined;\r\n showDropdown: boolean = false;\r\n showDetails: boolean = false;\r\n policyNumberDescription: string = \"\";\r\n productDescription: string | undefined;\r\n userChoice: { name: string } = {\r\n name: \"No\",\r\n };\r\n proposalIdProductPolicy: any;\r\n hasSuccess: boolean = false;\r\n productPolicySelected: any;\r\n footerTitle: string = \"\";\r\n\r\n constructor(\r\n private policyCustomerLoginService: PolicyCustomerLoginService,\r\n private route: ActivatedRoute\r\n ) {\r\n const getYear = new Date().getFullYear();\r\n this.footerTitle = \"© \" + getYear + \" - \" + \"Chubb E-placement℠ System\";\r\n }\r\n\r\n onSubmit = () => {\r\n let proposalId = \"\";\r\n if (this.proposalIdList.length > 1) {\r\n let idxProposal = this.proposalIdList.findIndex(\r\n (x: any) => x === this.productPolicySelected\r\n );\r\n this.policyNumberDescription = this.policyList[idxProposal];\r\n proposalId = this.productPolicySelected;\r\n } else {\r\n this.policyNumberDescription = this.policyList[0];\r\n proposalId = this.proposalIdList[0];\r\n }\r\n\r\n this.policyCustomerLoginService\r\n .acceptReject(\r\n this.enc,\r\n proposalId,\r\n this.policyNumberDescription,\r\n this.userChoice.name\r\n )\r\n .then((response) => {\r\n if (response.status === 1) {\r\n this.showDetails = true;\r\n if (this.proposalIdList.length === 1) {\r\n this.hasError = false;\r\n this.hasSuccess = true;\r\n this.msg =\r\n \"Thank you! Your response has been submitted for this policy\";\r\n } else {\r\n this.hasError = false;\r\n this.hasSuccess = true;\r\n this.msg =\r\n \"Thank you! Your response has been submitted for this policy. Please select another policy to renew and acknowledge your acceptance for this exclusive promotion\";\r\n }\r\n } else if (response.status === 7) {\r\n this.showDetails = false;\r\n if (this.proposalIdList.length === 1) {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you, your response has been submitted for this policy\";\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you! Your response has been submitted for this policy.  Please select another policy to renew and acknowledge your acceptance for this exclusive promotion\";\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg = \"An error has occurred\";\r\n }\r\n });\r\n };\r\n\r\n onProductPolicyChange = () => {\r\n this.hasError = false;\r\n this.hasSuccess = false;\r\n if (\r\n this.productPolicySelected !== undefined &&\r\n this.productPolicySelected !== null\r\n ) {\r\n this.showDetails = false;\r\n\r\n let idxPolicy: string = this.proposalIdProductPolicy.findIndex(\r\n (x: any) => x.proposalId === this.productPolicySelected\r\n );\r\n let encExpiryDate = this.expiryDateList[idxPolicy];\r\n\r\n this.policyCustomerLoginService\r\n .calculatePremium(this.enc, this.productPolicySelected, encExpiryDate)\r\n .then((data) => {\r\n if (data.status === 1) {\r\n this.premium1Year = data.premium1Year;\r\n this.premium3Year = data.premium3Year;\r\n\r\n this.policyNumberDescription = this.policyList[idxPolicy];\r\n this.productDescription = this.productList[idxPolicy];\r\n\r\n this.showDetails = true;\r\n } else if (data.status === 7) {\r\n this.showDetails = false;\r\n if (this.proposalIdList.length === 1) {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you, your response has been submitted for this policy\";\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you! Your response has been submitted for this policy.  Please select another policy to renew and acknowledge your acceptance for this exclusive promotion\";\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg = \"An error has occurred\";\r\n }\r\n });\r\n }\r\n };\r\n\r\n downloadFaqs = (e: any) => {\r\n this.policyCustomerLoginService.downloadFaqs();\r\n e.preventDefault();\r\n };\r\n\r\n ngOnInit(): void {\r\n this.route.firstChild?.params.subscribe((param: any) => {\r\n this.enc = param.enc;\r\n this.proposalIdList = param.proposalIdList;\r\n this.productList = param.productList;\r\n this.policyList = param.policyList;\r\n this.expiryDateList = param.expiryDateList;\r\n });\r\n\r\n this.premium1Year = 0;\r\n this.premium3Year = 0;\r\n this.showDropdown = false;\r\n this.showDetails = false;\r\n this.proposalIdList =\r\n this.proposalIdList !== undefined\r\n ? this.proposalIdList.split(\"|\").map((i: number) => (isNaN(i) ? i : +i))\r\n : [];\r\n this.productList =\r\n this.productList !== undefined\r\n ? this.productList.split(\"|\").map((i: number) => (isNaN(i) ? i : +i))\r\n : [];\r\n this.policyList =\r\n this.policyList !== undefined\r\n ? this.policyList.split(\"|\").map((i: number) => (isNaN(i) ? i : +i))\r\n : [];\r\n this.expiryDateList =\r\n this.expiryDateList !== undefined\r\n ? this.expiryDateList.split(\"|\").map((i: number) => (isNaN(i) ? i : +i))\r\n : [];\r\n this.policyNumberDescription = \"\";\r\n this.productDescription = \"\";\r\n this.proposalIdProductPolicy = [];\r\n this.productPolicyList = [];\r\n\r\n this.IsDisabled = false;\r\n\r\n this.productList.forEach((ele: any, index: any) => {\r\n this.productPolicyList.push(\r\n this.productList[index] + \" \" + this.policyList[index]\r\n );\r\n });\r\n\r\n this.proposalIdList.forEach((ele: any, index: any) => {\r\n this.proposalIdProductPolicy.push({\r\n proposalId: this.proposalIdList[index],\r\n productPolicy: this.productPolicyList[index],\r\n });\r\n });\r\n if (this.proposalIdList.length > 1) {\r\n this.showDropdown = true;\r\n } else {\r\n this.hasError = false;\r\n this.hasSuccess = false;\r\n this.showDetails = true; //temp\r\n this.policyCustomerLoginService\r\n .calculatePremium(\r\n this.enc,\r\n this.proposalIdList[0],\r\n this.expiryDateList[0]\r\n )\r\n .then((response) => {\r\n if (response.status === 1) {\r\n this.premium1Year = response.premium1Year;\r\n this.premium3Year = response.premium3Year;\r\n\r\n this.policyNumberDescription = this.policyList[0];\r\n this.productDescription = this.productList[0];\r\n\r\n this.showDetails = true;\r\n } else if (response.status === 7) {\r\n this.showDetails = false;\r\n if (this.proposalIdList.length === 1) {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you, your response has been submitted for this policy\";\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg =\r\n \"Thank you! Your response has been submitted for this policy.  Please select another policy to renew and acknowledge your acceptance for this exclusive promotion\";\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.hasSuccess = false;\r\n this.msg = \"An error has occurred\";\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \"chubb\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Please select the policy to renew

\r\n \r\n \r\n
\r\n
\r\n
\r\n

Exclusive Promotion:

\r\n

\r\n Enjoy 5% discount when you renew on our 3-year Fire Mortgage Plan\r\n

\r\n

\r\n Product Name : {{ productDescription }}\r\n

\r\n

\r\n Policy Number : {{ policyNumberDescription }}\r\n

\r\n

\r\n Thank you for expressing interest in our exclusive promotion that allows\r\n you to enjoy greater savings when you choose to renew your policy on a\r\n 3-year plan.\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Existing Plan (1-year)
(before GST)
Promotion Plan (3-year)
(before GST)
{{ premium1Year | ausCurrency }}\r\n {{ premium3Year | ausCurrency }}
(5% discount off your 3 years total premium)\r\n
\r\n
\r\n

\r\n Note: Premium is subject to GST at the prevailing rate based on the\r\n effective date of policy renewal.\r\n

\r\n

\r\n If you wish to take up this offer and renew your policy on a 3-year\r\n plan, please click on ‘Yes’. If otherwise, please click on ‘No’ and your\r\n existing policy will be renewed automatically on the current annual plan\r\n arrangement.\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Submit\r\n \r\n
\r\n For more information relating to this offer, please read our\r\n FAQs or contact our\r\n Customer Service Representatives at:\r\n
\r\n
\r\n E-mail : dbscs.sg@chubb.com\r\n
\r\n Hotline : +65 6398 8797\r\n
\r\n
\r\n (Mondays to Fridays, 9:00am to 5:00pm; excluding Public Holidays)\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{ msg }}

\r\n

{{ msg }}

\r\n \r\n\r\n
\r\n
\r\n

{{ footerTitle }}

\r\n
\r\n
\r\n","import { Component, OnInit, ViewChildren } from \"@angular/core\";\r\nimport { Validators, FormControl, FormGroup } from \"@angular/forms\";\r\nimport { PolicyCustomerLoginService } from \"../../../services/policy-customer-login.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-customer-enter-otp\",\r\n templateUrl: \"./customer-enter-otp.component.html\",\r\n styleUrls: [\"./customer-enter-otp.component.scss\"],\r\n})\r\nexport class CustomerEnterOtpComponent implements OnInit {\r\n public userEmailMobile: string | undefined;\r\n public dob: string = \"\";\r\n public last4UniqueId: string = \"\";\r\n public hasError: boolean = false;\r\n public msg: string = \"\";\r\n IsDisabled: boolean = false;\r\n\r\n formInput = [\"input1\", \"input2\", \"input3\", \"input4\", \"input5\", \"input6\"];\r\n @ViewChildren(\"formRow\") rows: any;\r\n otpForm: FormGroup;\r\n enc: string = \"\";\r\n email: string = \"\";\r\n mobile: string = \"\";\r\n otpSent: string | undefined;\r\n otpSentInBold: string | undefined;\r\n otpResent: string | undefined;\r\n otpInput:\r\n | {\r\n size: number;\r\n type: string; //\"text\",\r\n onDone: (value: any) => void;\r\n onChange: (value: any) => void;\r\n }\r\n | undefined;\r\n canResendOtp: boolean = false;\r\n resendOtp: string | undefined;\r\n timer: any;\r\n footerTitle: string = \"\";\r\n\r\n constructor(\r\n private policyCustomerLoginService: PolicyCustomerLoginService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n this.otpForm = this.toFormGroup(this.formInput);\r\n const getYear = new Date().getFullYear();\r\n this.footerTitle = \"© \" + getYear + \" - \" + \"Chubb E-placement℠ System\";\r\n }\r\n\r\n toFormGroup = (elements: any) => {\r\n const group: any = {};\r\n elements.forEach((key: string | number) => {\r\n group[key] = new FormControl(\"\", Validators.required);\r\n });\r\n return new FormGroup(group);\r\n };\r\n\r\n resendOtpAndStartTimer = () => {\r\n this.policyCustomerLoginService\r\n .getOTP(this.email, this.dob, this.last4UniqueId)\r\n .then((response) => {\r\n if (response.status === 1) {\r\n this.otpResent = \"OTP resent Successfully\";\r\n this.hasError = false;\r\n this.resetOtpString();\r\n this.startTimer();\r\n } else if (response.status === 4) {\r\n this.IsDisabled = true;\r\n this.killTimer();\r\n this.hasError = true;\r\n let lockInMinutes = \"30\";\r\n if (\r\n response.lockInMinutes !== undefined &&\r\n response.lockInMinutes !== null\r\n ) {\r\n lockInMinutes = response.lockInMinutes;\r\n }\r\n this.msg =\r\n \"Sorry, this link has been disabled for \" +\r\n lockInMinutes +\r\n \" minutes due to multiple failed verification attempts. Please try again later. \";\r\n } else {\r\n this.hasError = true;\r\n this.msg = \"Sorry, the OTP is invalid. Please try again.\";\r\n }\r\n });\r\n };\r\n\r\n onSubmit = () => {\r\n this.otpForm.markAllAsTouched();\r\n if (this.otpForm.status === \"VALID\") {\r\n this.policyCustomerLoginService\r\n .validateOtpWithDds(this.enc, this.getOtpString())\r\n .then((response) => {\r\n if (response.status === 1) {\r\n this.msg = \"OTP is valid\";\r\n this.router.navigate([\r\n \"/customerAcceptOffer\",\r\n this.enc,\r\n response.proposalIdList,\r\n response.productList,\r\n response.policyList,\r\n response.expiryDateList,\r\n ]);\r\n this.policyCustomerLoginService.isCustomerLogin = false;\r\n this.policyCustomerLoginService.isCustomerOTP = false;\r\n this.policyCustomerLoginService.isCustomerOffer = true;\r\n } else if (response.status === 4) {\r\n this.IsDisabled = true;\r\n this.killTimer();\r\n this.hasError = true;\r\n let lockInMinutes = \"30\";\r\n if (\r\n response.lockInMinutes !== undefined &&\r\n response.lockInMinutes !== null\r\n ) {\r\n lockInMinutes = response.lockInMinutes;\r\n }\r\n this.msg =\r\n \"Sorry, this link has been disabled for \" +\r\n lockInMinutes +\r\n \" minutes due to multiple failed verification attempts. Please try again later.\";\r\n } else if (response.status === 5) {\r\n this.hasError = true;\r\n this.msg = \"Sorry, the OTP is invalid. Please try again.\";\r\n } else if (response.status === 6) {\r\n this.hasError = true;\r\n this.msg = \"Sorry, the OTP is invalid. Please try again.\";\r\n } else {\r\n this.hasError = true;\r\n this.msg = \"Invalid enc/otp\";\r\n }\r\n });\r\n } else {\r\n this.msg = \"Failed to read Otp value, please restart from beginning.\";\r\n this.hasError = true;\r\n }\r\n };\r\n\r\n keyDownEvent(event: any, index: any) {\r\n let pos = index;\r\n if (event.keyCode === 8 && event.which === 8) {\r\n pos = index - 1;\r\n this.otpForm.controls[\"input\" + index].setValue(\"\");\r\n } else {\r\n pos = index + 1;\r\n }\r\n if (pos > -1 && pos < this.formInput.length) {\r\n setTimeout(() => {\r\n this.rows._results[pos].nativeElement.focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n getOtpString = () => {\r\n let otp: string =\r\n this.otpForm.controls[\"input1\"].value +\r\n this.otpForm.controls[\"input2\"].value +\r\n this.otpForm.controls[\"input3\"].value +\r\n this.otpForm.controls[\"input4\"].value +\r\n this.otpForm.controls[\"input5\"].value +\r\n this.otpForm.controls[\"input6\"].value;\r\n return otp;\r\n };\r\n\r\n resetOtpString = () => {\r\n this.otpForm.controls[\"input1\"].setValue(\"\");\r\n this.otpForm.controls[\"input2\"].setValue(\"\");\r\n this.otpForm.controls[\"input3\"].setValue(\"\");\r\n this.otpForm.controls[\"input4\"].setValue(\"\");\r\n this.otpForm.controls[\"input5\"].setValue(\"\");\r\n this.otpForm.controls[\"input6\"].setValue(\"\");\r\n };\r\n\r\n ngOnInit(): void {\r\n this.route.firstChild?.params.subscribe((param: any) => {\r\n this.enc = param.enc;\r\n this.dob = param.dob;\r\n this.email = param.email;\r\n this.mobile = param.mobile;\r\n this.last4UniqueId = param.last4UniqueId;\r\n });\r\n\r\n if (this.email !== \"\") {\r\n let maskedEmail = \"\";\r\n let emailWithoutDomain = this.email.substring(0, this.email.indexOf(\"@\"));\r\n let emailWithOnlyDomain = this.email.substring(this.email.indexOf(\"@\"));\r\n switch (emailWithoutDomain.length) {\r\n case 1:\r\n maskedEmail = \"x\" + emailWithOnlyDomain;\r\n break;\r\n case 2:\r\n maskedEmail =\r\n emailWithoutDomain.substring(0, 1) + \"X\" + emailWithOnlyDomain;\r\n break;\r\n case 3:\r\n maskedEmail =\r\n emailWithoutDomain.substring(0, 1) +\r\n \"X\" +\r\n emailWithoutDomain.substring(2, 3) +\r\n emailWithOnlyDomain;\r\n break;\r\n case 4:\r\n maskedEmail =\r\n emailWithoutDomain.substring(0, 1) +\r\n \"X\" +\r\n emailWithoutDomain.substring(3, 5) +\r\n emailWithOnlyDomain;\r\n break;\r\n case 5:\r\n maskedEmail =\r\n emailWithoutDomain.substring(0, 1) +\r\n \"X\" +\r\n emailWithoutDomain.substring(4, 7) +\r\n emailWithOnlyDomain;\r\n break;\r\n default:\r\n maskedEmail =\r\n emailWithoutDomain.substring(0, 2) +\r\n \"XXXXX\" +\r\n this.email.substring(this.email.indexOf(\"@\") - 3);\r\n break;\r\n }\r\n this.otpSent = \"Enter the OTP that has been sent to your email address \";\r\n this.otpSentInBold = maskedEmail;\r\n } else {\r\n this.otpSent = \"Enter the OTP that has been sent to your mobile number \";\r\n this.otpSentInBold =\r\n \"+65XXXXX\" + this.mobile.substr(this.mobile.length - 3);\r\n }\r\n this.otpResent = \"\";\r\n\r\n this.otpInput = {\r\n size: 6,\r\n type: \"password\", //\"text\",\r\n onDone: function (value) {\r\n //console.log(value);\r\n },\r\n onChange: function (value) {\r\n //console.log(value);\r\n },\r\n };\r\n\r\n this.startTimer();\r\n }\r\n\r\n convertMinsToHrsMins = (mins: number) => {\r\n let h: string = Math.floor(mins / 60).toString();\r\n let m: string = (mins % 60).toString();\r\n h = parseInt(h) < 10 ? \"0\" + h : h;\r\n m = parseInt(m) < 10 ? \"0\" + m : m;\r\n return `${h}:${m}`;\r\n };\r\n\r\n startTimer = () => {\r\n this.canResendOtp = false;\r\n var countDown = 5 * 60;\r\n this.resendOtp =\r\n \"Resend OTP
(in \" +\r\n this.convertMinsToHrsMins(countDown) +\r\n \" minutes)\";\r\n this.timer = setInterval(() => {\r\n this.resendOtp =\r\n \"Resend OTP
(in \" +\r\n this.convertMinsToHrsMins(countDown) +\r\n \" minutes)\";\r\n countDown--;\r\n if (countDown === 0) {\r\n this.canResendOtp = true;\r\n this.killTimer();\r\n }\r\n }, 1000);\r\n };\r\n\r\n killTimer = () => {\r\n if (this.timer !== undefined) {\r\n clearInterval(this.timer);\r\n this.timer = undefined;\r\n this.resendOtp = \"Resend OTP\\r\\n\";\r\n }\r\n };\r\n}\r\n","
\r\n \"chubb\r\n
\r\n
\r\n \r\n

Enter One time Password (OTP)

\r\n

\r\n {{ otpSent }} {{ otpSentInBold }} :\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ msg }}

\r\n
\r\n \r\n Submit\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n If you did not receive your OTP or if your OTP has expired, please click\r\n here to request for a new OTP.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ otpResent }}

\r\n

\r\n For any enquiries, please contact us at\r\n dbscs.sg@chubb.com.\r\n

\r\n
\r\n
\r\n
\r\n

{{ footerTitle }}

\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { PolicyCustomerLoginService } from \"../../../services/policy-customer-login.service\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-customer-login\",\r\n templateUrl: \"./customer-login.component.html\",\r\n styleUrls: [\"./customer-login.component.scss\"],\r\n})\r\nexport class CustomerLoginComponent implements OnInit {\r\n public footerTitle: string = \"\";\r\n public userEmailMobile: string | undefined;\r\n public dob: string | undefined;\r\n public last4UniqueId: string | undefined;\r\n public customerLoginForm: UntypedFormGroup = new UntypedFormGroup({\r\n userEmailMobile: new UntypedFormControl(\"\", Validators.required),\r\n dob: new UntypedFormControl(\"\", Validators.required),\r\n last4UniqueId: new UntypedFormControl(\"\", Validators.required),\r\n });\r\n public hasError: boolean = false;\r\n public msg: string = \"\";\r\n IsDisabled: boolean = false;\r\n currentMsgToParent = \"\";\r\n msgFromChild1: any = [];\r\n\r\n constructor(\r\n private policyCustomerLoginService: PolicyCustomerLoginService,\r\n private router: Router\r\n ) {\r\n const getYear = new Date().getFullYear();\r\n this.footerTitle = \"© \" + getYear + \" - \" + \"Chubb E-placement℠ System\";\r\n }\r\n\r\n onSubmit = () => {\r\n this.customerLoginForm.markAllAsTouched();\r\n if (this.customerLoginForm.status === \"VALID\") {\r\n // get otp\r\n this.policyCustomerLoginService\r\n .getOTP(\r\n this.customerLoginForm.controls[\"userEmailMobile\"].value,\r\n this.customerLoginForm.controls[\"dob\"].value,\r\n this.customerLoginForm.controls[\"last4UniqueId\"].value\r\n )\r\n .then((response) => {\r\n if (response.status === 1) {\r\n this.msg = \"OTP sent Successfully\";\r\n this.router.navigate([\r\n \"/customerEnterOtp\",\r\n response.enc,\r\n response.email,\r\n response.mobile,\r\n this.customerLoginForm.controls[\"dob\"].value,\r\n this.customerLoginForm.controls[\"last4UniqueId\"].value,\r\n ]);\r\n this.policyCustomerLoginService.isCustomerLogin = false;\r\n this.policyCustomerLoginService.isCustomerOTP = true;\r\n this.policyCustomerLoginService.isCustomerOffer = false;\r\n } else {\r\n if (response.status === 2) {\r\n this.hasError = true;\r\n this.msg =\r\n \"Based on the details provided, you are not eligible for this promotion. Please check if you've entered your details correctly. Thank you\";\r\n } else if (response.status === 4) {\r\n this.IsDisabled = true;\r\n this.hasError = true;\r\n let lockInMinutes = \"30\";\r\n if (\r\n response.lockInMinutes !== undefined &&\r\n response.lockInMinutes !== null\r\n ) {\r\n lockInMinutes = response.lockInMinutes;\r\n }\r\n this.msg =\r\n \"Sorry, this link has been disabled for \" +\r\n lockInMinutes +\r\n \" minutes due to multiple failed verification attempts. Please try again later. \";\r\n } else {\r\n this.msg = \"Error, please check with administrator.\";\r\n }\r\n this.hasError = true;\r\n }\r\n });\r\n }\r\n };\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \"chubb\r\n
\r\n
\r\n
\r\n
\r\n

Verification

\r\n

\r\n To verify your identity, we need to send a One Time Password (OTP) to your\r\n email address / mobile number registered with Chubb\r\n

\r\n

Please enter your email address/mobile number

\r\n
\r\n \r\n \r\n \r\n \r\n Email address/Mobile number is required.\r\n \r\n
\r\n

\r\n Please enter your date of birth (DDMMYY Format, e.g: 241290)\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n Date of birth is required.\r\n \r\n
\r\n

\r\n Please enter the last 4 characters of your NRIC/Passport Number\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n NRIC/Passport Number is required.\r\n \r\n
\r\n
\r\n \r\n Request OTP\r\n \r\n
\r\n

{{ msg }}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ footerTitle }}

\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseComponent } from \"../../shared/base/base.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { AuthorizationService } from \"src/app/services/authentication/authorization.service\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport * as Enums from \"./../../../framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"app-user-role-selection\",\r\n templateUrl: \"./user-role-selection.component.html\",\r\n styleUrls: [\"./user-role-selection.component.scss\"],\r\n})\r\nexport class UserRoleSelectionComponent\r\n extends BaseComponent\r\n implements OnInit\r\n{\r\n currentUser: IUser | undefined;\r\n userTypeOptions: any;\r\n\r\n loginData = {\r\n userName: \"\",\r\n password: \"\",\r\n };\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private userProfileService: UserProfileService,\r\n private authorizationService: AuthorizationService,\r\n private identity: Identity\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n\r\n //when log-in, the sessionStorageService might not yet init-ed, hence needs to sub to a broadcast\r\n this.broadcastService.onAutheticated.subscribe((msg: any) => {\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser(); //when first init\r\n this.getUserTypeOptions();\r\n });\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n getUserTypeOptions() {\r\n if (this.currentUser) {\r\n this.userProfileService\r\n .GetUserRolesByEmail(this.currentUser.emailAddress)\r\n .subscribe((resp) => {\r\n this.userTypeOptions = resp.body;\r\n });\r\n }\r\n }\r\n\r\n OpenUserRoleSelected(defaultUserLogin: { UserLogin: any }) {\r\n if (defaultUserLogin) {\r\n this.userProfileService\r\n .SetDefaultUserRoles(defaultUserLogin.UserLogin)\r\n .subscribe((resp) => {\r\n this.loginData.userName = \"adb2c_roles_management\";\r\n this.loginData.password = defaultUserLogin.UserLogin; //can ignore this for adb2c\r\n this.proceedLogin();\r\n });\r\n }\r\n }\r\n\r\n proceedLogin() {\r\n this.authorizationService.login(this.loginData).subscribe(async (resp) => {\r\n this.identity.storeAuthData(resp);\r\n // populating the current user\r\n //has to wait until fully finish to get latest this.identity.currentUser()\r\n await this.identity.populateCurrentUser_Promise(true);\r\n this.redirectPage();\r\n });\r\n }\r\n\r\n redirectPage() {\r\n //check admin first in new angular, since some users could have multiple roles\r\n if (this.identity.currentUser().userType == Enums.UserType.Admin) {\r\n this.router.navigate([\"/userProfileList\"]);\r\n } else if (\r\n this.identityRolesService.hasProductReadWriteRoles ||\r\n this.identityRolesService.hasProductTransactRoles\r\n ) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n } else if (this.identityRolesService.isFinanceAccounting) {\r\n this.router.navigate([\"/openItem\"]);\r\n }\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n E-Placement | Role Selection\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Select your default user role\r\n
\r\n
\r\n

\r\n Please choose the default user role you will be logged into as\r\n everytime you log in.\r\n

\r\n

\r\n This selection is not permanent, you can change this selection anytime\r\n afterwards on the account navigation.\r\n

\r\n
\r\n\r\n
    \r\n
    \r\n
  • \r\n {{ option.OrganisationName }}\r\n
  • \r\n
    \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Chubb. Insured.\r\n

\r\n
\r\n \r\n\r\n \r\n \r\n Terms of Use\r\n \r\n \r\n\r\n \r\n \r\n Privacy Statement\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { BaseListingComponent } from \"../base-listing/base-listing.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport {\r\n GridDataResult,\r\n PageSizeItem,\r\n PageChangeEvent,\r\n SelectionEvent,\r\n CellClickEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { ClausesDeductiblesService } from \"src/app/services/clauses-deductibles.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { ConfigListingEntity } from \"./config-listing-entity\";\r\nimport { warningZoneArgs } from \"../../home/warning-zone/warning-zone.component\";\r\nimport { MfHkEndorsementListSearchCriteria } from \"../../sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/mf-hk-end-list-search-criteria\";\r\nimport { MfHkConfigEditCriteria } from \"src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria\";\r\n\r\n@Component({\r\n selector: \"app-base-configurables-list\",\r\n templateUrl: \"./base-configurables-list.component.html\",\r\n styleUrls: [\"./base-configurables-list.component.scss\"],\r\n})\r\nexport class BaseConfigurablesListComponent\r\n extends BaseListingComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n\r\n public isAdd: boolean = false;\r\n public isEdit: boolean = false;\r\n editModel: MfHkConfigEditCriteria = new MfHkConfigEditCriteria();\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n protected listing: ConfigListingEntity[] = [];\r\n protected totalListing: number = 0;\r\n submitted = false;\r\n\r\n currentUser: IUser | undefined;\r\n model = new MfHkEndorsementListSearchCriteria();\r\n public userProductList!: IProduct[];\r\n //protected masterPolicyList!: MasterPolicyEntity[];\r\n //public masterPolicyOptions!: Array<{ text: string; value: string }>;\r\n\r\n public checkableRows: number[] = [];\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public masterPolicyService: MasterPolicyService,\r\n public clausesDeductiblesService: ClausesDeductiblesService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.currentUser = this.currentIdentity.currentUser(); //init\r\n // this.fetchUserList();\r\n //this.fetchCmbOnlyMasterPolicyList();\r\n this.defaultSearchCriteria();\r\n // this.getUserOrganisation();\r\n this.refresh();\r\n }\r\n\r\n /** Default search criteria while page load */\r\n protected defaultSearchCriteria() {}\r\n\r\n public getDefaultDisplayText(dataItem: any): string {\r\n return dataItem.isDefault === \"True\" ? \"Default\" : \"NA\";\r\n }\r\n\r\n // protected fetchCmbOnlyMasterPolicyList = async () => {\r\n // this.masterPolicyOptions = new Array<{\r\n // text: string;\r\n // value: string;\r\n // }>();\r\n\r\n // this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n // (result: any) => {\r\n // this.masterPolicyList = result;\r\n\r\n // // update list\r\n // this.masterPolicyList.forEach((mp) => {\r\n // if (\r\n // mp.productId.toUpperCase() ===\r\n // Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n // ) {\r\n // const displayText =\r\n // mp.policyType +\r\n // \" - \" +\r\n // mp.description +\r\n // \" - \" +\r\n // mp.meridianMasterPolicyNumber;\r\n // this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n // }\r\n // });\r\n // },\r\n // (err: any) => {\r\n // console.log(err);\r\n // }\r\n // );\r\n // };\r\n\r\n public returnListingHandler(ret: string): void {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n //reload the grid\r\n this.submitted = true;\r\n this.refresh();\r\n }\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n protected clearSelection() {\r\n // Optionally, clear the selection when paging\r\n // this.checkableRows = [];\r\n // this.selectedRowIndexes = [];\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n const selectedData = selection?.selectedRows;\r\n if (selectedData != undefined && selectedData.length > 0) {\r\n var entity = selectedData[0].dataItem;\r\n }\r\n\r\n const deselectedData = selection?.deselectedRows;\r\n if (deselectedData != undefined && deselectedData.length > 0) {\r\n var entity = deselectedData[0].dataItem;\r\n //auto, from two-way binding of [(selectedKeys)]\r\n // this.selectedRowIndexes.forEach((item, index) => {\r\n // if (item === deselectedData[0].index)\r\n // this.selectedRowIndexes.splice(index, 1);\r\n // });\r\n }\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n //if click on \"Action\" column\r\n if (columnIndex === 3) {\r\n const configEntity = dataItem as ConfigListingEntity;\r\n this.editModel = new MfHkConfigEditCriteria();\r\n this.editModel.typeId = this.model.typeId; //use to differentiate in backend for sproc\r\n this.editModel.guid = configEntity.id;\r\n\r\n var myarray = configEntity.coverageTypeId\r\n .toString()\r\n .toUpperCase()\r\n .split(\",\");\r\n\r\n for (var i = 0; i < myarray.length; i++) {\r\n this.editModel.coverageTypes.push(myarray[i]); //case is important when UI selects it\r\n }\r\n\r\n this.editModel.default = this.stringBoolToString(configEntity.isDefault);\r\n this.editModel.code = configEntity.code;\r\n this.editModel.title = configEntity.title;\r\n this.editModel.editorValue = configEntity.description;\r\n\r\n this.isEdit = true;\r\n }\r\n }\r\n\r\n private stringBoolToString(boolToCompare: any) {\r\n if (\r\n boolToCompare == true ||\r\n String(boolToCompare).toLowerCase() === \"true\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"coverageTypes\", \"eq\", this.model.coverageTypes],\r\n [\"code\", \"eq\", this.model.code!],\r\n [\"title\", \"eq\", this.model.title],\r\n [\"typeId\", \"eq\", this.model.typeId],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n protected setFormData(): FormData {\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"code\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = this.modelToArray();\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n protected refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n\r\n const formData: FormData = this.setFormData();\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n //todo\r\n this.clausesDeductiblesService\r\n .searchClausesAndWarrantiesListing(querystring)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n protected loadItems(): void {\r\n this.listing.forEach((entity, index) => {});\r\n\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n\r\n // dates\r\n const filters: boolean =\r\n this.model.coverageTypes !== null || this.model.title !== null;\r\n\r\n isValid = filters; // || etc...\r\n\r\n return isValid;\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n //$('#warningZone').collapse('hide');\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n // $('#warningZone #message').text('Please select a date range.');\r\n // $('#warningZone').collapse('show');\r\n // httpNotifier.response_notifier$.next(new KeyValue('', e));\r\n }\r\n }\r\n\r\n getDataItemsFromGridWithSelectedIndexes(\r\n selectedIndexes: number[]\r\n ): ConfigListingEntity[] {\r\n var currentPageData = this.gridView.data as ConfigListingEntity[];\r\n var selectedDataItems: ConfigListingEntity[] = [];\r\n\r\n currentPageData.forEach((item, idx) => {\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n if (selectedIndexes.indexOf(allIdx) >= 0) {\r\n selectedDataItems.push(item);\r\n }\r\n });\r\n return selectedDataItems;\r\n }\r\n //#endregion\r\n}\r\n","

base-configurables-list works!

\r\n","import { Component } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\n\r\n@Component({\r\n selector: \"app-base-listing\",\r\n templateUrl: \"./base-listing.component.html\",\r\n styleUrls: [\"./base-listing.component.scss\"],\r\n})\r\nexport class BaseListingComponent extends BaseComponent {\r\n advancedSearchCaption = \"More Info\";\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n toggleCaption() {\r\n this.advancedSearchCaption =\r\n this.advancedSearchCaption === \"More Info\" ? \"Less Info\" : \"More Info\";\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { ProposalActivityService } from \"src/app/services/new-product/proposal-activity.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { BaseSubscriptionComponent } from \"../base-subscription/base-subscription.component\";\r\n\r\n@Component({\r\n selector: \"app-base-main\",\r\n templateUrl: \"./base-main.component.html\",\r\n styleUrls: [\"./base-main.component.scss\"],\r\n})\r\nexport class BaseMainComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n sub: any;\r\n\r\n /** Flag to determine if document is completely rendered */\r\n documentReady: boolean = false;\r\n productListing: any;\r\n productName!: string;\r\n category: string = \"\";\r\n submittedDate!: string;\r\n isDbsProduct: boolean = false;\r\n isCitiProduct: boolean = false;\r\n isHaseProduct: boolean = false;\r\n isNewBusiness: boolean = false;\r\n pphRecordCount: number = 0;\r\n productId?: string;\r\n\r\n constructor(\r\n public route: ActivatedRoute,\r\n public proposalActivityService: ProposalActivityService,\r\n public masterPolicyService: MasterPolicyService,\r\n public identityRolesService: IdentityRolesService,\r\n public masterDataService: MasterDataService,\r\n public cdRef: ChangeDetectorRef,\r\n public productService: ProductService\r\n ) {\r\n super();\r\n super.subscribePageLoadedNotifier(this.pageLoaded);\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalFailedNotifier(this.onProposalFailed);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sub = this.route.queryParams.subscribe((params) => {\r\n this.productId = params[\"pdid\"];\r\n //loadProposal() depends on this, hence must load before it in subscribe()\r\n this.instantiateProposalObject();\r\n\r\n // Instantiate DBS master data\r\n this.initProposalDateSubmitted(params).subscribe((date) => {\r\n this.loadProposal();\r\n });\r\n });\r\n }\r\n\r\n initProposalDateSubmitted(params: { [x: string]: any }): Observable {\r\n const proposalId =\r\n params[\"pid\"] === \"00000000-0000-0000-0000-000000000000\"\r\n ? null\r\n : params[\"pid\"];\r\n let sDate: any;\r\n if (Global.isDefined(proposalId)) {\r\n return this.masterPolicyService.getProposalDateSubmitted(proposalId).pipe(\r\n map(\r\n (date: any) => {\r\n sDate = date;\r\n this.submittedDate = sDate;\r\n return this.submittedDate;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n } else {\r\n sDate = new Date();\r\n this.submittedDate = sDate;\r\n return of(this.submittedDate);\r\n }\r\n }\r\n\r\n public $postLink = () => {\r\n // do nothing\r\n };\r\n\r\n ngOnDestroy() {\r\n this.sub?.unsubscribe();\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n //only show the control when it's not NB\r\n public showPremiumPeriodHistory() {\r\n return this.isCitiProduct && this.pphRecordCount > 0 && !this.isNewBusiness;\r\n }\r\n\r\n scrollToTop = () => {\r\n //$(\"html, body\").animate({ scrollTop: 0 }, 500);\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n /** Method to create a proposal instance */\r\n protected instantiateProposalObject() {}\r\n\r\n protected proposalLoaded = (event: KeyValue) => {};\r\n\r\n //https://stackoverflow.com/questions/34547127/angular2-equivalent-of-document-ready\r\n ngAfterViewInit() {\r\n //todo: check if this works\r\n this.pageLoaded();\r\n //https://stackoverflow.com/questions/53767289/angular-error-error-expressionchangedafterithasbeencheckederror-expression-ha\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n private pageLoaded = (/*event: KeyValue*/) => {\r\n //todo\r\n //$(document).ready(() => {\r\n setTimeout(() => {\r\n this.productListing =\r\n this.identityRolesService.productListing !== undefined\r\n ? this.identityRolesService.productListing\r\n : \"\";\r\n\r\n this.productListing.forEach((product: { pdid: string; pd: string }) => {\r\n if (product.pdid.toLowerCase() === this.productId!.toLowerCase()) {\r\n this.productName = product.pd;\r\n }\r\n });\r\n\r\n this.documentReady = true;\r\n }, 60);\r\n //});\r\n };\r\n\r\n protected loadProposal() {}\r\n\r\n protected onProposalFailed = (event: KeyValue) => {\r\n // const echos = event.value as Echos[];\r\n // this.resetMandatoryTabColor();\r\n // this.setMandatoryTabColor(echos);\r\n };\r\n\r\n protected setMandatoryTabColor = (echos: any) => {\r\n // if (common.isDefined(echos) && echos.length > 0) {\r\n // echos.forEach((echo, index) => {\r\n // if (echo.echos.length > 0) {\r\n // echo.echos.forEach(echoItem => {\r\n // switch (echoItem.info) {\r\n // case 0:\r\n // angular.element('li#master').addClass('k-state-mandatory');\r\n // break;\r\n // case 1:\r\n // angular.element('li#premiumSummary').addClass('k-state-mandatory');\r\n // break;\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n };\r\n\r\n protected resetMandatoryTabColor = () => {\r\n // // reset all the kendo tab for mandatory class\r\n // angular.element('li#master').removeClass('k-state-mandatory');\r\n // angular.element('li#premiumSummary').removeClass('k-state-mandatory');\r\n };\r\n\r\n protected proposalSaved = (event: KeyValue) => {};\r\n\r\n private doTransition(returnEntity: ProposalEntity, action: any): void {\r\n // // refresh the URL only\r\n // const productId: string = returnEntity.productId.toString().toLocaleUpperCase();\r\n // let productRuote = '';\r\n // // let url = window.location.origin + window.location.pathname + '#/proposal';\r\n // switch (productId) {\r\n // case Const.ProductID.PRODUCT_ID_DBS_MORTGAGEINTERESTPLUS:\r\n // productRuote = 'proposal.dbssgpte';\r\n // // url = url + '/MortgageeInterestPlusMIP/' + productId + '/' + returnEntity.proposalId + '/' + action;\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSPTE:\r\n // productRuote = 'proposal.dbssgpte';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSHDB:\r\n // productRuote = 'proposal.dbssghdb';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_DBS_MF_IBG:\r\n // productRuote = 'proposal.dbssgibgmf';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_DBS_MACH_IBG:\r\n // productRuote = 'proposal.dbssgibgmac';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_CITI_HOUSEOWNERPLUSHDB:\r\n // productRuote='proposal.citisghdb';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_CITI_MORTGAGEFIREINSURANCEPTE:\r\n // productRuote= 'proposal.citisgmfpte';\r\n // break;\r\n // case Const.ProductID.PRODUCT_ID_CITI_MORTGAGEFIREINSURANCECONDO:\r\n // productRuote = 'proposal.citisgmfcondo';\r\n // break;\r\n // default:\r\n // }\r\n // // history.pushState(null, '', url);\r\n // this.$state.transitionTo(productRuote, {\r\n // pdid: productId,\r\n // mpid: returnEntity.proposalId,\r\n // pid: returnEntity.proposalId,\r\n // action: '',\r\n // type: '1',\r\n // }, { reload: false });\r\n }\r\n}\r\n","

base-main works!

\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef,\r\n Inject,\r\n LOCALE_ID,\r\n HostListener,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { SortDescriptor, orderBy } from \"@progress/kendo-data-query\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport {\r\n OpenItemEntity,\r\n ManualPaymentEntity,\r\n RefundPaymentEntity,\r\n SearchCriteria,\r\n} from \"src/app/components/accounting/open-item/models/open-item-list.model\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { warningZoneArgs } from \"../../home/warning-zone/warning-zone.component\";\r\nimport { Day } from \"@progress/kendo-date-math\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\nimport { OpenItemListingEntity } from \"src/app/components/accounting/open-item/OpenItemListingEntity\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\n\r\n@Component({\r\n selector: \"app-base-open-item-list\",\r\n templateUrl: \"./base-open-item-list.component.html\",\r\n styleUrls: [\"./base-open-item-list.component.scss\"],\r\n})\r\nexport class BaseOpenItemListComponent extends BaseComponent implements OnInit {\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n\r\n @ViewChild(\"oiEffectiveDateTo\", { static: false })\r\n public oiEffectiveDateTo!: DatePickerComponent;\r\n\r\n public openItemEntryDate_min!: Date;\r\n public openItemEntryDate_max!: Date;\r\n\r\n @ViewChild(\"oiPolicyEffectiveDateTo\", { static: false })\r\n public oiPolicyEffectiveDateTo!: DatePickerComponent;\r\n\r\n public policyeffectiveDate_min!: Date;\r\n public policyeffectiveDate_max!: Date;\r\n\r\n @ViewChild(\"autoDebitPeriod_dateInput\", { static: false })\r\n public autoDebitPeriod_dateInput!: DatePickerComponent;\r\n\r\n @ViewChild(\"appendTo\", { read: ViewContainerRef, static: false })\r\n public appendTo!: ViewContainerRef;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n private listing: OpenItemListingEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n searchCriteria = new SearchCriteria();\r\n public statusList!: Array<{ text: string; value: number }>;\r\n protected payableStatusList!: Array;\r\n protected refundableStatusList!: Array;\r\n protected refundableReviewStatusList!: Array;\r\n protected refundOpenItemID: string = \"\";\r\n protected isCitiProduct: boolean = false;\r\n autoDebitPeriod: any;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n public userProductList!: any;\r\n public checkableRows: number[] = [];\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n public showDetails: boolean = false;\r\n public openItemId!: string;\r\n public redirectOpened: boolean = false;\r\n public doManualPay: boolean = false;\r\n public doRefundPay: boolean = false;\r\n public doBounceCheque: boolean = false;\r\n openItem!: OpenItemEntity | undefined;\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public disabledDates: Day[] = [\r\n Day.Saturday,\r\n Day.Sunday,\r\n Day.Tuesday,\r\n Day.Wednesday,\r\n Day.Thursday,\r\n Day.Friday,\r\n ];\r\n calenderValidation =\r\n \"k-button-icon k-icon k-i-calendar k-link k-button k-nav-fast k-button-md k-rounded-md k-button-flat k-button-flat-base k-calendar-title k-disabled\" +\r\n \"k-empty k-calendar-td ng-star-inserted k-calendar-header k-hstack k-flex k-content k-scrollable k-calendar-th ng-star-inserted k-vstack k-calendar-view k-calendar-monthview ng-star-inserted k-calendar-caption\";\r\n @HostListener(\"document:click\", [\"$event\"])\r\n clickout(event: any) {\r\n let el: string = event.target.className;\r\n if (this.calenderValidation.includes(el)) {\r\n return;\r\n } else {\r\n if (this.oiEffectiveDateTo?.isOpen) {\r\n this.oiEffectiveDateTo.toggle(false);\r\n }\r\n if (this.oiPolicyEffectiveDateTo?.isOpen) {\r\n this.oiPolicyEffectiveDateTo.toggle(false);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n @Inject(LOCALE_ID) public locale: string,\r\n public openItemListService: OpenItemListService,\r\n public identity: Identity,\r\n public excelTemplate: ExcelTemplateService,\r\n public cdkDialogService: CdkDialogService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n getCountry(): void {\r\n //todo\r\n // this.sub = this.route.queryParams.subscribe((params) => {\r\n // this.productId = params[\"pdid\"];\r\n\r\n // let country = this.productService.getCountryByProductId(this.productId!);\r\n // switch (country) {\r\n // case \"SG\":\r\n // this.isSgProduct = true;\r\n // this.isHkProduct = false;\r\n // break;\r\n // case \"HK\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n // break;\r\n // default:\r\n // }\r\n // });\r\n }\r\n\r\n //#region shared methods\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.getCountry();\r\n }\r\n\r\n protected initStatusLists(): void {\r\n // PendingAutoDebit = 1\r\n // PendingInvoiceToBank = 2\r\n // PendingToInvoiceToIndividual = 3\r\n // AutoDebitted = 5\r\n // InvoicedToBank = 7\r\n // InvoicedToIndividual = 8\r\n // PendingManualPayByCheque = 11 (Cheque only)\r\n // UnpaidChequeToBank = 14\r\n // UnpaidChequeToIndividual = 15\r\n this.payableStatusList = [2, 3, 7, 8, 11, 14, 15];\r\n\r\n // PendingRefundToBank = 4\r\n // PendingRefundToIndividual = 13\r\n this.refundableStatusList = [4, 13];\r\n this.refundableReviewStatusList = [21, 22];\r\n }\r\n protected readProductRadio() {\r\n this.isCitiProduct = this.searchCriteria.productRadio == \"citi\";\r\n }\r\n protected defaultSearchCriteria() {\r\n // segment dropdownlist options\r\n const segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n this.segmentList = segmentList;\r\n }\r\n\r\n protected fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identity\r\n .currentUser()\r\n .products?.filter(function (e) {\r\n let ucvalue = e.pdid.toString().toUpperCase();\r\n return (\r\n ucvalue == \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n ucvalue == \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n ucvalue == \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n });\r\n } else {\r\n this.userProductList = this.identity\r\n .currentUser()\r\n .products?.filter(function (e) {\r\n let ucvalue = e.pdid.toString().toUpperCase();\r\n return !(\r\n ucvalue == \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n ucvalue == \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n ucvalue == \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n });\r\n }\r\n }\r\n\r\n protected fetchStatusList() {\r\n // get statusList\r\n this.statusList = [];\r\n\r\n for (const key in openItemDisplayStatus) {\r\n if (openItemDisplayStatus.hasOwnProperty(key) && Number(key) < 23) {\r\n const value = openItemDisplayStatus[key];\r\n\r\n if (this.isCitiProduct) {\r\n if (\r\n this.searchCriteria.productRadio != null &&\r\n [1, 5, 6, 9, 10, 13].includes(Number(key))\r\n ) {\r\n this.statusList.push({ text: value, value: Number(key) });\r\n }\r\n } else this.statusList.push({ text: value, value: Number(key) });\r\n }\r\n }\r\n // sort statusList by asc\r\n this.statusList.sort((x, y) => {\r\n return x.text > y.text ? 1 : x.text < y.text ? -1 : 0;\r\n });\r\n }\r\n public on_quoteNumber_keyup(event: any): void {\r\n var k;\r\n k = event.data?.charCodeAt(); // k = event.keyCode; (Both can be used)\r\n if (\r\n !(\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 45 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n )\r\n ) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n public getTitle(): string {\r\n return this.searchCriteria.productRadio === \"dbs\"\r\n ? \"Total Premium\"\r\n : \"Net Premium\";\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n console.log(\"gridSelectionChanged\");\r\n const selectedData = selection?.selectedRows;\r\n if (selectedData != undefined && selectedData.length > 0) {\r\n var entity = selectedData[0].dataItem;\r\n }\r\n\r\n const deselectedData = selection?.deselectedRows;\r\n if (deselectedData != undefined && deselectedData.length > 0) {\r\n var entity = deselectedData[0].dataItem;\r\n //auto, from two-way binding of [(selectedKeys)]\r\n // this.selectedRowIndexes.forEach((item, index) => {\r\n // if (item === deselectedData[0].index)\r\n // this.selectedRowIndexes.splice(index, 1);\r\n // });\r\n }\r\n }\r\n\r\n public onChange_ProductRadio(): void {\r\n this.resetFormValues();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n this.fetchStatusList();\r\n\r\n if (this.isCitiProduct) {\r\n this.setCitiAutoDebitPeriod();\r\n } else {\r\n this.setDbsAutoDebitPeriod();\r\n }\r\n this.refresh();\r\n }\r\n protected resetFormValues(): void {\r\n this.form.controls[\"policyNo\"].reset();\r\n this.form.controls[\"invoiceNo\"]?.reset();\r\n this.form.controls[\"chequeNo\"].reset();\r\n this.form.controls[\"segments\"]?.reset();\r\n this.form.controls[\"productIds\"].reset();\r\n this.form.controls[\"statusIds\"].reset();\r\n this.form.controls[\"EffectiveDateFrom\"]?.reset();\r\n this.form.controls[\"EffectiveDateTo\"]?.reset();\r\n if (this.oiEffectiveDateTo.isOpen) {\r\n this.oiEffectiveDateTo.toggle(false);\r\n }\r\n }\r\n protected setCitiAutoDebitPeriod(): void {\r\n var d = new Date();\r\n var day = d.getDay(),\r\n diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\r\n\r\n var autoDebitDefaultWeek;\r\n autoDebitDefaultWeek = formatDate(\r\n new Date(d.setDate(diff)),\r\n \"dd/MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear =\r\n autoDebitDefaultWeek.split(\"/\")[2];\r\n this.searchCriteria.autoDebitPeriodMonth =\r\n autoDebitDefaultWeek.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodDate =\r\n autoDebitDefaultWeek.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = autoDebitDefaultWeek;\r\n\r\n this.autoDebitPeriod = new Date(\r\n parseInt(this.searchCriteria.autoDebitPeriodYear),\r\n parseInt(this.searchCriteria.autoDebitPeriodMonth) - 1,\r\n parseInt(this.searchCriteria.autoDebitPeriodDate)\r\n );\r\n }\r\n protected setDbsAutoDebitPeriod(): void {\r\n var autoDebitDefaultMonth;\r\n autoDebitDefaultMonth = formatDate(\r\n new Date(),\r\n \"MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear =\r\n autoDebitDefaultMonth.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodMonth =\r\n autoDebitDefaultMonth.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = autoDebitDefaultMonth;\r\n this.autoDebitPeriod = new Date(\r\n parseInt(this.searchCriteria.autoDebitPeriodYear),\r\n parseInt(this.searchCriteria.autoDebitPeriodMonth) - 1\r\n );\r\n //this.autoDebitPeriod = autoDebitDefaultMonth;\r\n this.searchCriteria.autoDebitPeriodDate = \"\";\r\n }\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n //this.checkDatesRange();\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n\r\n private checkDatesRange() {\r\n if (\r\n this.searchCriteria.effectiveDateFrom !== null &&\r\n this.searchCriteria.effectiveDateTo === null\r\n ) {\r\n this.searchCriteria.effectiveDateTo =\r\n this.searchCriteria.effectiveDateFrom;\r\n }\r\n if (\r\n this.searchCriteria.policyeffectiveDateFrom !== null &&\r\n this.searchCriteria.policyeffectiveDateTo === null\r\n ) {\r\n this.searchCriteria.policyeffectiveDateTo =\r\n this.searchCriteria.policyeffectiveDateFrom;\r\n }\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n this.reformatPeriod();\r\n\r\n // dates\r\n const dates: boolean =\r\n this.searchCriteria.effectiveDateFrom !== null ||\r\n this.searchCriteria.effectiveDateTo !== null ||\r\n this.searchCriteria.policyeffectiveDateFrom !== null ||\r\n this.searchCriteria.policyeffectiveDateFrom !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n reformatPeriod = () => {\r\n this.searchCriteria.autoDebitPeriod = \"\";\r\n if (!common.isUndefinedOrNull(this.autoDebitPeriod)) {\r\n if (this.isCitiProduct) {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"dd/MM/yyyy\",\r\n this.locale\r\n );\r\n this.searchCriteria.autoDebitPeriodYear = period.split(\"/\")[2];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodDate = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n } else {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear = !common.isUndefinedOrNull(\r\n period.split(\"/\")[2]\r\n )\r\n ? period.split(\"/\")[2]\r\n : period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n }\r\n } else {\r\n const validPeriod: boolean = this.autoDebitPeriod !== null;\r\n if (!validPeriod) {\r\n this.searchCriteria.autoDebitPeriodYear = \"\";\r\n this.searchCriteria.autoDebitPeriodMonth = \"\";\r\n this.searchCriteria.autoDebitPeriodDate = \"\";\r\n this.searchCriteria.autoDebitPeriod = \"\";\r\n }\r\n }\r\n };\r\n public export(): void {\r\n this.openItemListService\r\n .exportOpenItemListing(this.getQueryString())\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.excelTemplate.downloadDbsOpenItemPolicies(\r\n dbsColumns,\r\n \"Open Item Report\",\r\n \"Open Item Report\",\r\n result.body.d?.results\r\n );\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"desc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n protected refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n this.openItemListService\r\n .searchOpenItemListing(this.getQueryString())\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n protected getQueryString(): string {\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"desc\");\r\n\r\n let array = [\r\n [\r\n \"effectiveDateFrom\",\r\n \"gte\",\r\n this.searchCriteria.effectiveDateFrom\r\n ? this.covertDate(this.searchCriteria.effectiveDateFrom)\r\n : \"\",\r\n ],\r\n [\r\n \"effectiveDateTo\",\r\n \"lte\",\r\n this.searchCriteria.effectiveDateTo\r\n ? this.covertDate(this.searchCriteria.effectiveDateTo)\r\n : \"\",\r\n ],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"invoiceNo\", \"eq\", this.searchCriteria.invoiceNo],\r\n [\"segments\", \"eq\", this.searchCriteria.segments],\r\n [\"statusIds\", \"eq\", this.searchCriteria.statusIds],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n [\"chequeNo\", \"eq\", this.searchCriteria.chequeNo],\r\n [\r\n \"policyeffectiveDateFrom\",\r\n \"eq\",\r\n this.searchCriteria.policyeffectiveDateFrom\r\n ? this.covertDate(this.searchCriteria.policyeffectiveDateFrom)\r\n : \"\",\r\n ],\r\n [\r\n \"policyeffectiveDateTo\",\r\n \"eq\",\r\n this.searchCriteria.policyeffectiveDateTo\r\n ? this.covertDate(this.searchCriteria.policyeffectiveDateTo)\r\n : \"\",\r\n ],\r\n [\"autoDebitPeriodMonth\", \"eq\", this.searchCriteria.autoDebitPeriodMonth],\r\n [\"autoDebitPeriodYear\", \"eq\", this.searchCriteria.autoDebitPeriodYear],\r\n [\"autoDebitPeriodDate\", \"eq\", this.searchCriteria.autoDebitPeriodDate],\r\n [\"productRadio\", \"eq\", this.searchCriteria.productRadio],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n return querystring;\r\n }\r\n private loadItems(): void {\r\n this.listing.forEach((entity) => {\r\n entity.statusDisplayText = openItemDisplayStatus[entity.statusId];\r\n if (\r\n entity.statusId === OpenItemStatus.ManualPaid ||\r\n entity.statusId === OpenItemStatus.Refunded\r\n // && paymentType === ManualPaymentType.Cheque\r\n ) {\r\n if (!common.isStringNullOrEmpty(entity.chequeNumber)) {\r\n const chequeInfo: string = \" (C. No: \" + entity.chequeNumber + \")\";\r\n entity.statusDisplayText += chequeInfo;\r\n }\r\n }\r\n entity.actionName = this.getActionName(entity);\r\n if (entity.actionName)\r\n entity.action = this.getActionByName(entity.actionName);\r\n });\r\n\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n protected getActionName(entity: OpenItemListingEntity): string {\r\n let isPendingPayment: boolean =\r\n this.payableStatusList.indexOf(entity.statusId) !== -1;\r\n\r\n let isPendingRefund: boolean =\r\n this.refundableStatusList.indexOf(entity.statusId) !== -1;\r\n\r\n let isPendingRefundReview: boolean =\r\n this.refundableReviewStatusList.indexOf(entity.statusId) !== -1;\r\n // Manual Paid (6) & Payment by cheque (2)\r\n let isBounceableCheque: boolean =\r\n entity.statusId === 6 && entity.paymentTypeId === 2;\r\n\r\n if (isPendingPayment) return \"PAY\";\r\n else if (isPendingRefund) return \"REFUND\";\r\n else if (isPendingRefundReview) return \"REFUND IN REVIEW\";\r\n else if (isBounceableCheque) return \"BOUNCE CHEQUE\";\r\n else return \"\";\r\n }\r\n private getActionByName(actionName: string): string {\r\n let retValue: string;\r\n switch (actionName) {\r\n case \"PAY\":\r\n retValue = \"onPayClick\";\r\n break;\r\n case \"REFUND\":\r\n retValue = \"onRefundClick\";\r\n break;\r\n case \"REFUND IN REVIEW\":\r\n retValue = \"onRefundReviewClick\";\r\n break;\r\n case \"BOUNCE CHEQUE\":\r\n retValue = \"onBounceChequeClick\";\r\n break;\r\n default:\r\n retValue = \"\";\r\n }\r\n return retValue;\r\n }\r\n private clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.checkableRows = [];\r\n this.selectedRowIndexes = [];\r\n }\r\n public on_searchEffectiveDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.effectiveDateFrom === null) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.openItemEntryDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.openItemEntryDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.openItemEntryDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.openItemEntryDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.openItemEntryDate_min = value;\r\n this.openItemEntryDate_max = maxDate;\r\n\r\n // open datepicker\r\n this.oiEffectiveDateTo.toggle(true);\r\n }\r\n public on_searchPolicyEffectiveDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.policyeffectiveDateFrom === null) {\r\n this.searchCriteria.policyeffectiveDateTo = undefined;\r\n this.policyeffectiveDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.policyeffectiveDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.policyeffectiveDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.policyeffectiveDate_min = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.oiPolicyEffectiveDateTo.toggle();\r\n }\r\n\r\n protected on_AutoDebitMonthChange(val: any): void {}\r\n public on_AutoDebitWeekChange(val: any): void {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n // //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n // //todo: this will re-route to proposal page\r\n // this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n // queryParams: { id: dataItem.proposalId },\r\n // });\r\n this.openItemId = dataItem.openItemId;\r\n\r\n if (columnIndex === 0) {\r\n this.openItem = dataItem;\r\n switch (dataItem.actionName) {\r\n case \"PAY\":\r\n this.onPayClick();\r\n break;\r\n case \"REFUND\":\r\n this.onRefundClick(dataItem);\r\n break;\r\n case \"REFUND IN REVIEW\":\r\n this.onRefundReviewClick();\r\n //this.onRefundReviewClick();\r\n break;\r\n case \"BOUNCE CHEQUE\":\r\n this.onBounceChequeClick();\r\n break;\r\n default:\r\n return;\r\n }\r\n } else {\r\n this.redirectOpened = true;\r\n }\r\n }\r\n private onPayClick() {\r\n this.doManualPay = true;\r\n }\r\n private onRefundReviewClick() {\r\n this.doRefundPay = true;\r\n }\r\n private onBounceChequeClick(): void {\r\n this.doBounceCheque = true;\r\n }\r\n protected onRefundClick(datas: any): void {\r\n this.refundOpenItemID = datas.openItemId;\r\n if (datas.statusId == OpenItemStatus.PendingRefundToIndividual) {\r\n this.ConfirmationPopup(\r\n \"Are you sure you want to Change the status to Pending Refund to Individual in Review ?\",\r\n \"\"\r\n );\r\n }\r\n if (datas.statusId == OpenItemStatus.PendingRefundToBank) {\r\n this.ConfirmationPopup(\r\n \"Are you sure you want to Change the status to Pending Refund to Bank in Review ?\",\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n protected ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public returnToOpenItemListing(val: any) {\r\n this.redirectOpened = false;\r\n }\r\n public cancelPaymentHandler(): void {\r\n this.doManualPay = false;\r\n this.openItem = undefined;\r\n }\r\n public cancelRefundHandler(): void {\r\n this.doRefundPay = false;\r\n this.openItem = undefined;\r\n }\r\n public cancelBounceChequeHandler(): void {\r\n this.doBounceCheque = false;\r\n this.openItem = undefined;\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n const postData = { openItemId: this.refundOpenItemID };\r\n this.openItemListService.doRefundReview(postData).subscribe(\r\n (response: any) => {\r\n // refresh grid\r\n this.refresh();\r\n this.openStatusPopup(\"Status Updated Succesfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Status Updated Failed\");\r\n }\r\n );\r\n }\r\n }\r\n public makePaymentHandler(manualPaymentEntity: ManualPaymentEntity): void {\r\n this.doManualPay = false;\r\n this.openItemListService.doManualPay(manualPaymentEntity).subscribe(\r\n (response: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment made Succesfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment failed\");\r\n }\r\n );\r\n }\r\n\r\n public doRefundHandler(refundPaymentEntity: RefundPaymentEntity): void {\r\n this.doRefundPay = false;\r\n this.openItemListService.doRefund(refundPaymentEntity).subscribe(\r\n (response: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment refunded successfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment refunded failed\");\r\n }\r\n );\r\n }\r\n public bounceChequeHandler(manualPaymentEntity: ManualPaymentEntity): void {\r\n this.doBounceCheque = false;\r\n this.openItemListService.doBounceCheque(manualPaymentEntity).subscribe(\r\n (response: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Cheque bounced successfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Cheque bounced failed\");\r\n }\r\n );\r\n }\r\n private covertDate(date: Date): string {\r\n const answer = new Date(date);\r\n const year = answer.getFullYear();\r\n const month = answer.getMonth() + 1;\r\n const day = answer.getDate();\r\n return `${year}-${month}-${day}`;\r\n }\r\n protected openStatusPopup(msg: string) {\r\n const data = {\r\n message: msg,\r\n };\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n //#endregion\r\n}\r\n\r\nconst dbsColumns: string[] = [\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n \"Master Policy No\",\r\n \"Policy No\",\r\n \"Entry Date\",\r\n \"Total Premium\",\r\n \"GST\",\r\n \"Status\",\r\n \"Invoice No\",\r\n \"Saved By\",\r\n \"policy Holder Name\",\r\n \"Correspondence Address\",\r\n \"Inactive Address Changed\",\r\n \"Gross Premium\",\r\n \"BUPC\",\r\n \"Bank Reference\",\r\n \"Insured Name\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n \"Insured NRIC\",\r\n \"Additional Insured\",\r\n \"AD-Month\",\r\n \"Cancellation Adjustment\",\r\n];\r\nconst cityColumns: string[] = [\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n \"Master Policy No\",\r\n \"Policy No\",\r\n \"Entry Date\",\r\n \"Net Premium\",\r\n \"GST\",\r\n \"Premium To Be Collected From Customer\",\r\n \"Net Comm Offset with Discount\",\r\n \"Status\",\r\n \"Invoice No\",\r\n \"Saved By\",\r\n \"policy Holder Name\",\r\n \"Correspondence Address\",\r\n \"Inactive Address Changed\",\r\n \"Customer Type\",\r\n \"Collateral No\",\r\n \"Insured Name\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n \"Insured NRIC\",\r\n \"Additional Insured\",\r\n \"AD-Week\",\r\n \"Cancellation Adjustment\",\r\n];\r\n","\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\n\r\n@Component({\r\n selector: \"[app-base-proposal]\", //render Selector as an Attribute, to prevent nested\r\n templateUrl: \"./base-proposal.component.html\",\r\n styleUrls: [\"./base-proposal.component.scss\"],\r\n})\r\nexport class BaseProposalComponent implements OnInit {\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n sub: any;\r\n productId?: string;\r\n\r\n constructor(\r\n public route: ActivatedRoute,\r\n public productService: ProductService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.sub = this.route.queryParams.subscribe((params) => {\r\n this.productId = params[\"pdid\"];\r\n\r\n let country = this.productService.getCountryByProductId(this.productId!);\r\n switch (country) {\r\n case \"SG\":\r\n this.isSgProduct = true;\r\n this.isHkProduct = false;\r\n break;\r\n case \"HK\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n break;\r\n default:\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub?.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n","import { formatDate } from \"@angular/common\";\r\nimport { Component, OnInit, Inject, LOCALE_ID } from \"@angular/core\";\r\nimport {\r\n FileInfo,\r\n FileRestrictions,\r\n RemoveEvent,\r\n SelectEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { Day } from \"@progress/kendo-date-math\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { ReconcileListService } from \"src/app/services/reconcile-list.service\";\r\nimport { UploadExcel } from \"src/app/components/product/auto-loan-redemption/auto-loan-redemption.entity\";\r\nimport { dlgModelArgs } from \"src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { SearchCriteria } from \"src/app/components/accounting/reconcile/models/reconcile-list.model\";\r\nimport { ReconcilePoliciesDownloadEntity } from \"../../home/preset-report/preset-report.model\";\r\n\r\n@Component({\r\n selector: \"app-base-reconcile-list\",\r\n templateUrl: \"./base-reconcile-list.component.html\",\r\n styleUrls: [\"./base-reconcile-list.component.scss\"],\r\n})\r\nexport class BaseReconcileListComponent implements OnInit {\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) public locale: string,\r\n protected uploadService: UploadExcelService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected excelTemplate: ExcelTemplateService,\r\n protected reconcileService: ReconcileListService\r\n ) {}\r\n public disabledDates: Day[] = [\r\n Day.Saturday,\r\n Day.Sunday,\r\n Day.Tuesday,\r\n Day.Wednesday,\r\n Day.Thursday,\r\n Day.Friday,\r\n ];\r\n isCitiProduct: boolean = false;\r\n autoDebitPeriod: any;\r\n isInvoice: boolean = true;\r\n isPeriod: boolean = true;\r\n isPolicyNumber: boolean = true;\r\n isSearch: boolean = false;\r\n isInvalidSearch: boolean = false;\r\n searchCriteria = new SearchCriteria();\r\n\r\n //upload excel\r\n\r\n uploadExcel!: UploadExcel;\r\n excelFilesErrorMessage: string = \"\";\r\n hasError: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n // Error logs\r\n errorLogs!: { Title: string; Logs: string[] };\r\n\r\n public redirectOpened = false;\r\n redirectMessage: any;\r\n redirectData: any;\r\n sub: any;\r\n\r\n getCountry(): void {\r\n //todo\r\n // this.sub = this.route.queryParams.subscribe((params) => {\r\n // this.productId = params[\"pdid\"];\r\n\r\n // let country = this.productService.getCountryByProductId(this.productId!);\r\n // switch (country) {\r\n // case \"SG\":\r\n // this.isSgProduct = true;\r\n // this.isHkProduct = false;\r\n // break;\r\n // case \"HK\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n // break;\r\n // default:\r\n // }\r\n // });\r\n }\r\n\r\n //#region shared methods\r\n ngOnInit(): void {\r\n this.getCountry();\r\n\r\n this.uploadExcel = new UploadExcel();\r\n this.readProductRadio();\r\n this.sub = this.route.data.subscribe();\r\n\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n\r\n this.setDbsAutoDebitPeriod();\r\n }\r\n ngOnDestroy() {\r\n //this.sub?.unsubscribe();\r\n }\r\n\r\n onChange_ProductRadio(): void {\r\n this.isInvalidSearch = false;\r\n this.readProductRadio();\r\n\r\n if (this.isCitiProduct) {\r\n this.setCitiAutoDebitPeriod();\r\n } else {\r\n this.setDbsAutoDebitPeriod();\r\n this.resetInput();\r\n }\r\n }\r\n private setCitiAutoDebitPeriod(): void {\r\n var d = new Date();\r\n var day = d.getDay(),\r\n diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\r\n\r\n var autoDebitDefaultWeek;\r\n autoDebitDefaultWeek = formatDate(\r\n new Date(d.setDate(diff)),\r\n \"dd/MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear =\r\n autoDebitDefaultWeek.split(\"/\")[2];\r\n this.searchCriteria.autoDebitPeriodMonth =\r\n autoDebitDefaultWeek.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodDate =\r\n autoDebitDefaultWeek.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = autoDebitDefaultWeek;\r\n\r\n this.autoDebitPeriod = new Date(\r\n parseInt(this.searchCriteria.autoDebitPeriodYear),\r\n parseInt(this.searchCriteria.autoDebitPeriodMonth) - 1,\r\n parseInt(this.searchCriteria.autoDebitPeriodDate)\r\n );\r\n\r\n // this.autoDebitPeriod = autoDebitDefaultWeek;\r\n }\r\n private setDbsAutoDebitPeriod(): void {\r\n var autoDebitDefaultMonth;\r\n autoDebitDefaultMonth = formatDate(\r\n new Date(),\r\n \"MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear =\r\n autoDebitDefaultMonth.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodMonth =\r\n autoDebitDefaultMonth.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = autoDebitDefaultMonth;\r\n this.autoDebitPeriod = new Date(\r\n parseInt(this.searchCriteria.autoDebitPeriodYear),\r\n parseInt(this.searchCriteria.autoDebitPeriodMonth) - 1\r\n );\r\n //this.autoDebitPeriod = autoDebitDefaultMonth;\r\n this.searchCriteria.autoDebitPeriodDate = \"\";\r\n }\r\n private resetInput(): void {\r\n this.isInvoice = true;\r\n this.isPeriod = true;\r\n this.isPolicyNumber = true;\r\n this.searchCriteria.invoiceNumber = \"\";\r\n this.searchCriteria.policyNumber = \"\";\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.searchCriteria.productRadio === \"citi\";\r\n }\r\n getDisableInput(e: any): void {\r\n if (e === 1) {\r\n this.isPeriod = false;\r\n this.isInvoice = true;\r\n this.isPolicyNumber = true;\r\n this.autoDebitPeriod = null;\r\n this.searchCriteria.autoDebitPeriodMonth = \"\";\r\n this.searchCriteria.autoDebitPeriodYear = \"\";\r\n } else if (e === 2) {\r\n this.isInvoice = false;\r\n this.isPeriod = true;\r\n this.isPolicyNumber = true;\r\n this.searchCriteria.invoiceNumber = \"\";\r\n } else if (e === 3) {\r\n this.isPolicyNumber = false;\r\n this.isInvoice = true;\r\n this.isPeriod = true;\r\n this.searchCriteria.invoiceNumber = \"\";\r\n this.autoDebitPeriod = null;\r\n this.searchCriteria.autoDebitPeriodMonth = \"\";\r\n this.searchCriteria.autoDebitPeriodYear = \"\";\r\n }\r\n }\r\n public on_quoteNumber_keyup(event: any): any {\r\n let k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n if (\r\n !(\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k === 8 ||\r\n k === 45 ||\r\n k === 32 ||\r\n (k >= 48 && k <= 57)\r\n )\r\n ) {\r\n event.preventDefault();\r\n }\r\n }\r\n //search\r\n public search(): void {\r\n let isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n // $('#warningZone').collapse('hide');\r\n this.isInvalidSearch = false;\r\n this.isSearch = true;\r\n this.searchReconcile();\r\n } else {\r\n this.isInvalidSearch = true;\r\n // $('#warningZone').collapse('show');\r\n //httpNotifier.response_notifier$.next(new KeyValue('', e));\r\n }\r\n }\r\n //validate mandatory field\r\n protected validateMandatoryFields(): boolean {\r\n this.reformatPeriod();\r\n let isValid: boolean = false;\r\n\r\n const inoutField: boolean = this.isCitiProduct\r\n ? this.searchCriteria.autoDebitPeriod !== \"\"\r\n : this.searchCriteria.policyNumber !== \"\" ||\r\n this.searchCriteria.autoDebitPeriod !== \"\" ||\r\n this.searchCriteria.invoiceNumber.length > 0;\r\n\r\n isValid = inoutField; // || etc...\r\n\r\n return isValid;\r\n }\r\n private searchReconcile() {\r\n this.exportSearch();\r\n }\r\n protected exportSearch() {\r\n // const postData = {\r\n // autoDebitPeriodDate: this.searchCriteria.autoDebitPeriodDate,\r\n // autoDebitPeriodMonth: this.searchCriteria.autoDebitPeriodMonth,\r\n // autoDebitPeriodYear: this.searchCriteria.autoDebitPeriodYear,\r\n // policyNumber: this.searchCriteria.policyNo,\r\n // invoiceNumber: this.searchCriteria.invoiceNo,\r\n // productRadio: this.searchCriteria.productRadio\r\n // };\r\n\r\n //const reconcileDownloadExportManager = new ReconcileDownloadExportManager(this.$q);\r\n this.reconcileService\r\n .searchReconcilePolicies(this.searchCriteria)\r\n .then((response: ReconcilePoliciesDownloadEntity[]) => {\r\n if (response)\r\n this.excelTemplate.downloadReconcilePolicies(\r\n columns,\r\n \"Reconcile\",\r\n \"Reconcile Policies\",\r\n response\r\n );\r\n }),\r\n (error: any) => {};\r\n }\r\n reformatPeriod() {\r\n this.searchCriteria.autoDebitPeriod = \"\";\r\n\r\n if (!common.isUndefinedOrNull(this.autoDebitPeriod)) {\r\n if (this.isCitiProduct) {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"dd/MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear = period.split(\"/\")[2];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodDate = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n } else {\r\n const period = formatDate(\r\n this.autoDebitPeriod,\r\n \"MM/yyyy\",\r\n this.locale\r\n ).toString();\r\n this.searchCriteria.autoDebitPeriodYear = !common.isUndefinedOrNull(\r\n period.split(\"/\")[2]\r\n )\r\n ? period.split(\"/\")[2]\r\n : period.split(\"/\")[1];\r\n this.searchCriteria.autoDebitPeriodMonth = period.split(\"/\")[0];\r\n this.searchCriteria.autoDebitPeriod = this.autoDebitPeriod;\r\n }\r\n }\r\n }\r\n\r\n excelAndSizeRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".xls\", \".xlsx\"],\r\n maxFileSize: 5242880, // Check for each file size less than 5MB, 1024 * 1024 * 5\r\n };\r\n\r\n public resetFiles(): void {\r\n //todo: currently only allow single file upload\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n this.uploadExcel.files = {};\r\n }\r\n\r\n public removeEvent(e: RemoveEvent): void {\r\n this.resetFiles();\r\n }\r\n\r\n public select(e: SelectEvent): void {\r\n this.resetFiles();\r\n\r\n const that = this;\r\n\r\n this.hasError = false;\r\n\r\n let totalFileSize = this.getUploadedClaimFilesTotalSize(e.files);\r\n if (totalFileSize / 1024 / 1024 > 20) {\r\n this.hasError = true;\r\n this.excelFilesErrorMessage =\r\n \"Total file size allowed in a claim is 20MB.\";\r\n } else {\r\n const uploadExcels: File[] = new Array();\r\n e.files.forEach((file: FileInfo) => {\r\n //this already check extension & individual file size by kendo control itself\r\n if (!file.validationErrors && file.rawFile) {\r\n uploadExcels.push(file.rawFile);\r\n }\r\n });\r\n if (this.uploadExcel != undefined && this.uploadExcel != null) {\r\n this.uploadExcel.files = uploadExcels;\r\n }\r\n }\r\n }\r\n\r\n getUploadedClaimFilesTotalSize(files: FileInfo[]): number {\r\n let totalFileSize: number = 0;\r\n\r\n files.forEach((file: FileInfo) => {\r\n if (file.rawFile) {\r\n totalFileSize += file.rawFile.size;\r\n }\r\n });\r\n\r\n return totalFileSize;\r\n }\r\n\r\n add(): void {\r\n this.hasError = false;\r\n\r\n if (this.uploadExcel?.files?.length > 0) {\r\n this.addExcel();\r\n } else {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n }\r\n }\r\n\r\n getUploadedExcelFiles(uploadedExcel: UploadExcel): FormData {\r\n const formData: FormData = new FormData();\r\n for (let i = 0; i < uploadedExcel.files.length; i++) {\r\n formData.append(\"file\" + i.toString(), uploadedExcel.files[i]);\r\n }\r\n return formData;\r\n }\r\n\r\n addExcel() {\r\n this.isProcessing = true;\r\n\r\n const uploadedExcelFormData = this.getUploadedExcelFiles(this.uploadExcel);\r\n\r\n this.uploadService.uploadReconcile(uploadedExcelFormData).subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n //no longer result.data as in angularJs but result.body\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.body.Status === false) {\r\n tempData = {\r\n message: result.body.Message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n } else {\r\n tempData = {\r\n message: result.body.Message,\r\n status: false,\r\n };\r\n }\r\n\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n //this.uploadExcel.files = {};//maybe no need to clear, just like original\r\n\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n // this.dialog.modalLarge(\r\n // 'shared/partials/mdSuccessfullFileUpload/successfullFileUpload.html',\r\n // 'SuccessFullFileUpload', data\r\n // , this.confirmationModelForSuccessullExcelUpload, undefined, undefined, undefined, false, 'standardModal');\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n // Prompt fail\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.errorLogs.Title = \"Error\";\r\n\r\n const log: string =\r\n Global.isDefined(error?.data?.ExceptionMessage) &&\r\n error.data.ExceptionMessage !== \"\"\r\n ? error.data.ExceptionMessage\r\n : \"Failed to upload excel file. Please contact the system administrator.\";\r\n\r\n this.errorLogs.Logs.push(log);\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n public confirmationModelForSuccessullExcelUpload(args: dlgModelArgs) {\r\n this.redirectOpened = false;\r\n if (args.status === \"return\") {\r\n //todo\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n //this.$state.go('product.home', { reload: true });\r\n }\r\n }\r\n //#endregion\r\n}\r\nconst columns: string[] = [\r\n \"Serial Number\",\r\n \"Action\",\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate Number\",\r\n \"Total\",\r\n \"GST\",\r\n \"Status\",\r\n \"Invoice No\",\r\n \"Saved By\",\r\n \"Id(Do not change!)\",\r\n \"Status Id(Do not change!)\",\r\n];\r\n","\r\n\r\n","import { Component, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ProposalPackage } from \"src/app/models/new-product/base/proposal-package-model\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { pageLifeCycleNotifier } from \"src/app/models/new-product/notifier/page-life-cycle-notifier\";\r\nimport { proposalServiceNotifier } from \"src/app/models/new-product/notifier/proposal-service-notifier\";\r\nimport { questionNotifier } from \"src/app/models/new-product/notifier/question-notifier\";\r\n//import { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\n\r\n@Component({\r\n selector: \"app-base-subscription\",\r\n templateUrl: \"./base-subscription.component.html\",\r\n styleUrls: [\"./base-subscription.component.scss\"],\r\n})\r\nexport class BaseSubscriptionComponent {\r\n @ViewChild(\"baseNotifierAppendTo\", { read: ViewContainerRef, static: false })\r\n public baseNotifierAppendTo!: ViewContainerRef;\r\n\r\n // component tab index\r\n tabId!: string;\r\n // flag to indicate whether to render the component\r\n tabRequested: boolean = false;\r\n // flag to indicate whether to show the component\r\n tabShow: boolean = false;\r\n\r\n /** Tab on_load() event */\r\n protected tab_load_notifier_subscription!: Subscription;\r\n /** Page on_load() event */\r\n protected page_loaded_notifier_subscription!: Subscription;\r\n /** Proposal after_load() event */\r\n protected proposal_loaded_notifier_subscription!: Subscription;\r\n /** Proposal after_saved() event */\r\n protected proposal_saved_notifier_subscription!: Subscription;\r\n /** Proposal after_saved() event */\r\n protected proposal_failed_notifier_subscription!: Subscription;\r\n\r\n protected answer_changed_subscription!: Subscription;\r\n\r\n //#region migrate from old angularjs\r\n /** Subscribe Tab on_load() event */\r\n protected subscribeTabLoadRenderer() {\r\n this.tab_load_notifier_subscription =\r\n pageLifeCycleNotifier.tab_load_notifier$.subscribe(this.tabLoadRenderer);\r\n }\r\n\r\n /** Subscribe Page on_load() event */\r\n protected subscribePageLoadedNotifier(\r\n callback: (event: KeyValue) => void\r\n ) {\r\n this.page_loaded_notifier_subscription =\r\n pageLifeCycleNotifier.page_loaded_notifier$.subscribe(callback);\r\n }\r\n\r\n /** Subscribe Proposal after_load() event */\r\n protected subscribeProposalLoadedNotifier(\r\n callback: (event: KeyValue) => void\r\n ) {\r\n this.proposal_loaded_notifier_subscription =\r\n proposalServiceNotifier.loaded_notifier$.subscribe(callback);\r\n }\r\n\r\n /** Subscribe Proposal after_saved() event */\r\n protected subscribeProposalSavedNotifier(\r\n callback: (event: KeyValue) => void\r\n ) {\r\n this.proposal_saved_notifier_subscription =\r\n proposalServiceNotifier.saved_notifier$.subscribe(callback);\r\n }\r\n\r\n /** Subscribe Proposal after_saved() event */\r\n protected subscribeProposalFailedNotifier(\r\n callback: (event: KeyValue) => void\r\n ) {\r\n this.proposal_failed_notifier_subscription =\r\n proposalServiceNotifier.failed_notifier$.subscribe(callback);\r\n }\r\n\r\n /** Subscribe Proposal after_saved() event */\r\n protected subscribeAnswerChangedNotifier(\r\n callback: (event: KeyValue) => void\r\n ) {\r\n this.answer_changed_subscription =\r\n questionNotifier.answer_change_notifier$.subscribe(callback);\r\n }\r\n\r\n /** Method that needs to be invoke on $destroy */\r\n protected unsubscribeRxjs() {\r\n if (common.isDefined(this.tab_load_notifier_subscription)) {\r\n this.tab_load_notifier_subscription.unsubscribe();\r\n }\r\n\r\n if (common.isDefined(this.page_loaded_notifier_subscription)) {\r\n this.page_loaded_notifier_subscription.unsubscribe();\r\n }\r\n\r\n if (common.isDefined(this.proposal_saved_notifier_subscription)) {\r\n this.proposal_saved_notifier_subscription.unsubscribe();\r\n }\r\n\r\n if (common.isDefined(this.proposal_loaded_notifier_subscription)) {\r\n this.proposal_loaded_notifier_subscription.unsubscribe();\r\n }\r\n\r\n if (common.isDefined(this.proposal_failed_notifier_subscription)) {\r\n this.proposal_failed_notifier_subscription.unsubscribe();\r\n }\r\n\r\n if (common.isDefined(this.answer_changed_subscription)) {\r\n this.answer_changed_subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private tabLoadRenderer = (response: any) => {\r\n //let event = response as KeyValue;\r\n let event = response as KeyValue>;\r\n const tabIndex = event.key;\r\n if (tabIndex === this.tabId) {\r\n this.render();\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n };\r\n\r\n protected show() {\r\n this.tabShow = true;\r\n }\r\n\r\n protected hide() {\r\n this.tabShow = false;\r\n }\r\n\r\n protected render() {\r\n if (!this.tabRequested) {\r\n this.tabRequested = true;\r\n }\r\n }\r\n //#endregion\r\n}\r\n","

base-subscription works!

\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { ROUTE_PROPOSAL } from \"src/app/app.module\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { dlgModelArgs } from \"../../../shared/partials/md-successful-file-upload/md-successful-file-upload.component\";\r\nimport { SearchCriteria } from \"src/app/components/new-product/home/base/search-criteria\";\r\nimport { warningZoneArgs } from \"src/app/components/new-product/home/warning-zone/warning-zone.component\";\r\nimport { TodoPolicyListingEntity } from \"src/app/components/new-product/home/todo-list/TodoPolicyListingEntity\";\r\nimport * as Enum from \"./../../../../framework/enum.shared\";\r\nimport * as AppEnums from \"src/app/framework/app.enums\";\r\nimport * as Const from \"./../../../../framework/const.shared\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport {\r\n v6DlgInputArgs,\r\n MdConfirmationMessageV6Component,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v6/md-confirmation-message-v6.component\";\r\nimport { CdkDialogService } from \"./../../../../services/dialog/cdk-dialog.service\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport {\r\n MdConfirmationMessageV2Component,\r\n v2DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport * as HomeConstant from \"./../../../new-product/home/home-constant\";\r\nimport { BaseListingComponent } from \"../base-listing/base-listing.component\";\r\n\r\n@Component({\r\n selector: \"app-base-todo-list\",\r\n templateUrl: \"./base-todo-list.component.html\",\r\n styleUrls: [\"./base-todo-list.component.scss\"],\r\n})\r\nexport class BaseTodoListComponent\r\n extends BaseListingComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n\r\n @ViewChild(\"toDoStartDateTo\", { static: false })\r\n public toDoStartDateTo!: DatePickerComponent;\r\n\r\n public toDoStartDateTo_min!: Date;\r\n public toDoStartDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoExpiryDateTo\", { static: false })\r\n public toDoExpiryDateTo!: DatePickerComponent;\r\n\r\n public toDoExpiryDateTo_min!: Date;\r\n public toDoExpiryDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoEffectiveDateTo\", { static: false })\r\n public toDoEffectiveDateTo!: DatePickerComponent;\r\n\r\n public toDoEffectiveDateTo_min!: Date;\r\n public toDoEffectiveDateTo_max!: Date;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n protected listing: TodoPolicyListingEntity[] = [];\r\n protected totalListing: number = 0;\r\n submitted = false;\r\n\r\n currentUser: IUser | undefined;\r\n model = new SearchCriteria();\r\n public userProductList!: IProduct[];\r\n protected masterPolicyList!: MasterPolicyEntity[];\r\n public masterPolicyOptions!: Array<{ text: string; value: string }>;\r\n public proposalStatusOptions: Array<{ text: string; value: number }> = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Pending Checker\", value: 18 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Approved by Underwriter\", value: 1 },\r\n { text: \"Declined by Underwriter\", value: 4 },\r\n ];\r\n public userTeamOptions!: Array<{ text: string; value: number }>;\r\n public isCitiUser: boolean = false;\r\n public isDBSUser: boolean = false;\r\n public isChubbUser: boolean = false;\r\n public defaultUserListItem: { text: string; value: string } = {\r\n text: \"All\",\r\n value: \"\",\r\n };\r\n public defaultMasterPolicyOptionsItem: { text: string; value: string } = {\r\n text: \"Select master policy no...\",\r\n value: \"\",\r\n };\r\n\r\n public userList: Array<{ text: string; value: string }> = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n public checkableRows: number[] = [];\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n msg_maxWarning!: string;\r\n confirmationMsg!: string;\r\n public defaultReportListItem: { text: string; value: string } = {\r\n text: \"\",\r\n value: \"\",\r\n };\r\n public reportList: Array<{ text: string; value: string }> = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public masterPolicyService: MasterPolicyService,\r\n public masterDataService: MasterDataService,\r\n public uploadService: UploadExcelService,\r\n public cdkDialogService: CdkDialogService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n //#region migrate from old angularjs\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n // //when refresh\r\n // if (common.isUndefinedOrNull(this.currentUser)) {\r\n // this.identityRolesService.refreshCurrentUser();\r\n // } else {\r\n // this.fetchUserList();\r\n // this.fetchMasterPolicyList();\r\n // this.defaultSearchCriteria();\r\n // this.getUserOrganisation();\r\n // this.refresh();\r\n // }\r\n\r\n //should be no needed anymore since almost all inherits from BaseComponent with super.ngOnInit(),\r\n //causing multiple call to broadcastService.onAutheticated event\r\n //this.broadcastService.onAutheticated.subscribe((msg: any) => {\r\n this.currentUser = this.currentIdentity.currentUser(); //init\r\n this.fetchUserList();\r\n this.fetchMasterPolicyList();\r\n this.defaultSearchCriteria();\r\n this.getUserOrganisation();\r\n this.fetchReportList();\r\n //this.refresh();\r\n //});\r\n }\r\n\r\n private getUserOrganisation() {\r\n //Hide/Show the appropriate search name for Bank Reference No/Collateral Reference No\r\n switch (this.currentUser?.organisation?.description) {\r\n case Enum.UserOrganisation.DBS:\r\n this.isCitiUser = false;\r\n this.isChubbUser = false;\r\n this.isDBSUser = true;\r\n break;\r\n case Enum.UserOrganisation.Citi:\r\n this.isCitiUser = true;\r\n this.isChubbUser = false;\r\n this.isDBSUser = false;\r\n break;\r\n default:\r\n this.isCitiUser = false;\r\n this.isChubbUser = true;\r\n this.isDBSUser = false;\r\n break;\r\n }\r\n }\r\n\r\n public getBcrnByUserOrg(): string {\r\n var currentUserOrg = this.currentUser?.organisation;\r\n if (currentUserOrg?.description == Enum.UserOrganisation.DBS) {\r\n return \"Bank Reference No\";\r\n } else if (\r\n this.currentUser?.organisation?.description == Enum.UserOrganisation.Citi\r\n ) {\r\n return \"Collateral Reference No\";\r\n } else {\r\n return \"Bank Ref No/Coll Ref No\";\r\n }\r\n }\r\n\r\n /** Default search criteria while page load */\r\n protected defaultSearchCriteria() {\r\n let products = this.currentUser?.products;\r\n if (products != undefined) {\r\n this.userProductList = products;\r\n }\r\n\r\n // user team dropdownlist options\r\n const userTeamOptions = [\r\n { text: \"CBG-Customer Solutions\", value: 4 },\r\n { text: \"Loan Document\", value: 1 },\r\n { text: \"Loan Records\", value: 2 },\r\n { text: \"Loan Servicing\", value: 3 },\r\n { text: \"Maker & Checker\", value: 6 },\r\n { text: \"NA\", value: 5 },\r\n ];\r\n this.userTeamOptions = userTeamOptions;\r\n\r\n // effectiveDateFrom (14 days earlier from today)\r\n const effectiveDateFrom: Date = new Date(new Date().getFullYear(), 0, 1);\r\n //this.model.effectiveDateFrom = effectiveDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const effectiveDateTo: Date = new Date(\r\n effectiveDateFrom.getFullYear(),\r\n 11,\r\n 31\r\n );\r\n //this.model.effectiveDateTo = effectiveDateTo;\r\n\r\n if (\r\n this.identityRolesService.isChecker &&\r\n !this.identityRolesService.isMaker\r\n ) {\r\n this.model.proposalStatus.push(18);\r\n }\r\n }\r\n\r\n protected fetchUserList() {\r\n if (this.identityRolesService.isUnderwriter) {\r\n this.masterDataService\r\n .getUnderwriterMakerUserList()\r\n .subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n } else {\r\n this.masterDataService.getMakerUserList().subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n }\r\n }\r\n\r\n protected fetchMasterPolicyList = async () => {\r\n this.masterPolicyOptions = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n\r\n this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n (result: any) => {\r\n this.masterPolicyList = result;\r\n\r\n // update list\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber +\r\n \" (MSIG: \" +\r\n mp.policyNumber +\r\n \")\";\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n //#endregion\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n protected clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.checkableRows = [];\r\n this.selectedRowIndexes = [];\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n const selectedData = selection?.selectedRows;\r\n if (selectedData != undefined && selectedData.length > 0) {\r\n var entity = selectedData[0].dataItem;\r\n }\r\n\r\n const deselectedData = selection?.deselectedRows;\r\n if (deselectedData != undefined && deselectedData.length > 0) {\r\n var entity = deselectedData[0].dataItem;\r\n //auto, from two-way binding of [(selectedKeys)]\r\n // this.selectedRowIndexes.forEach((item, index) => {\r\n // if (item === deselectedData[0].index)\r\n // this.selectedRowIndexes.splice(index, 1);\r\n // });\r\n }\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n\r\n if (dataItem.sumInsured.split(\".\")[1] == 0) {\r\n\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n const productId = dataItem.productId;\r\n const proposalId = dataItem.proposalId;\r\n\r\n const route = AppEnums.productsRoute[productId + \"|1\"];\r\n const commandAction = AppEnums.proposalCommandAction[\"Open\"];\r\n if (route !== undefined) {\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: productId,\r\n pid: proposalId,\r\n action: commandAction,\r\n },\r\n });\r\n }\r\n }\r\n else {\r\n let v2InputData: v2DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: \"\",\r\n message: \"This quote cannot be processed further as the Sum insured has Decimal value \" + dataItem.sumInsured\r\n };\r\n const v2DialogRef = this.cdkDialogService.open(MdConfirmationMessageV2Component, { data: v2InputData });\r\n }\r\n }\r\n\r\n public approvedIBGForUW(dataItem: any, idx: number): boolean {\r\n const isOperationUnderwriter =\r\n this.identityRolesService.isOperationUnderwriter;\r\n\r\n const isIBGProduct =\r\n dataItem.productId.toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG ||\r\n dataItem.productId.toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG;\r\n\r\n const isReferredOrApproved =\r\n dataItem.proposalStatusId === Enum.ProposalStatus.Referred ||\r\n dataItem.proposalStatusId === Enum.ProposalStatus.Approved;\r\n\r\n if (\r\n (isIBGProduct &&\r\n isOperationUnderwriter &&\r\n dataItem.proposalStatusId === Enum.ProposalStatus.Approved) ||\r\n (isIBGProduct && !isOperationUnderwriter && isReferredOrApproved)\r\n ) {\r\n if (this.checkableRows.indexOf(idx) == -1) {\r\n this.checkableRows.push(idx);\r\n }\r\n return true; //\"\";\r\n } else {\r\n return false; //'';\r\n }\r\n }\r\n\r\n protected modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"startDateFrom\", \"gte\", this.model.startDateFrom],\r\n [\"startDateTo\", \"gte\", this.model.startDateTo],\r\n [\"expiryDateFrom\", \"gte\", this.model.expiryDateFrom],\r\n [\"expiryDateTo\", \"gte\", this.model.expiryDateTo],\r\n [\"effectiveDateFrom\", \"gte\", this.model.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.model.effectiveDateTo],\r\n [\"quoteNo\", \"eq\", this.model.quoteNo],\r\n [\"policyNo\", \"eq\", this.model.policyNo],\r\n [\"masterPolicyId\", \"eq\", this.model.masterPolicyId],\r\n [\"cin\", \"eq\", this.model.cin],\r\n [\"insuredName\", \"eq\", this.model.insuredName],\r\n [\"productId\", \"eq\", this.model.productId],\r\n [\"proposalStatus\", \"eq\", this.model.proposalStatus],\r\n [\"bankReferenceNo\", \"eq\", this.model.bankReferenceNo],\r\n [\"createdByUserId\", \"eq\", this.model.createdByUserId],\r\n [\"userTeam\", \"eq\", this.model.userTeam],\r\n [\"additionalInsuredName\", \"eq\", this.model.additionalInsuredName],\r\n [\"bcrn\", \"eq\", this.model.bcrn],\r\n [\"riskAddressPostalCode\", \"eq\", this.model.riskAddressPostalCode],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n protected checkFilter(): boolean {\r\n let array = this.modelToArray();\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i][2] != \"\" && array[i][2] != undefined) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n protected setFormData(): FormData {\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"createdDate\");\r\n formData.append(\"sort[0][dir]\", \"desc\");\r\n\r\n let array = this.modelToArray();\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n protected refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n\r\n const formData: FormData = this.setFormData();\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.masterPolicyService.searchTodoPolicyListing(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n protected loadItems(): void {\r\n this.listing.forEach((entity, index) => {\r\n entity.canApproveIBGForUW = this.approvedIBGForUW(entity, index);\r\n entity.checkboxChecked = false; //false by default\r\n\r\n // Proposal Status\r\n entity.proposalStatusDisplayText =\r\n HomeConstant.proposalStatus[parseInt(entity.proposalStatusId)];\r\n\r\n // Transaction Type\r\n entity.proposalTypeDisplayText =\r\n HomeConstant.transactionType[parseInt(entity.proposalTransTypeId)];\r\n\r\n // CIN\r\n if (common.isStringNullOrEmpty(entity.cin)) {\r\n entity.cin = \"-\";\r\n }\r\n\r\n // Policy No\r\n if (common.isStringNullOrEmpty(entity.policyNo)) {\r\n entity.policyNo = \"-\";\r\n }\r\n\r\n //MSIG Policy No\r\n entity.msIGPolicyNo =\r\n common.isStringNullOrEmpty(entity.msIGPolicyNo) ||\r\n entity.policyNo == entity.msIGPolicyNo\r\n ? \"-\"\r\n : entity.msIGPolicyNo;\r\n });\r\n\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n public on_searchStartDateFrom_change(value: Date): void {\r\n if (this.model.startDateFrom === null) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.startDateTo &&\r\n this.model.startDateFrom &&\r\n this.model.startDateTo < this.model.startDateFrom\r\n ) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoStartDateTo_min = value;\r\n this.toDoStartDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoStartDateTo.toggle();\r\n this.on_searchStartDateFrom_focus();\r\n }\r\n\r\n public on_searchStartDateFrom_focus(): void {\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchExpiryDateFrom_change(value: Date): void {\r\n if (this.model.expiryDateFrom === null) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n\r\n if (\r\n this.model.expiryDateTo &&\r\n this.model.expiryDateFrom &&\r\n this.model.expiryDateTo < this.model.expiryDateFrom\r\n ) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoExpiryDateTo_min = value;\r\n this.toDoExpiryDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoExpiryDateTo.toggle();\r\n this.on_searchExpiryDateFrom_focus();\r\n }\r\n\r\n public on_searchExpiryDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchEffectiveDateFrom_change(value: Date): void {\r\n if (this.model.effectiveDateFrom === null) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.effectiveDateTo &&\r\n this.model.effectiveDateFrom &&\r\n this.model.effectiveDateTo < this.model.effectiveDateFrom\r\n ) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.toDoEffectiveDateTo.toggle();\r\n this.on_searchEffectiveDateFrom_focus();\r\n }\r\n\r\n public on_searchEffectiveDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n\r\n // dates\r\n const dates: boolean =\r\n this.model.startDateFrom !== null ||\r\n this.model.startDateTo !== null ||\r\n this.model.expiryDateFrom !== null ||\r\n this.model.expiryDateTo !== null ||\r\n this.model.effectiveDateFrom !== null ||\r\n this.model.effectiveDateTo !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n\r\n private checkDatesRange() {\r\n if (this.model.startDateFrom !== null && this.model.startDateTo === null) {\r\n this.model.startDateTo = this.model.startDateFrom;\r\n }\r\n\r\n if (\r\n this.model.expiryDateFrom !== null &&\r\n this.model.expiryDateTo === null\r\n ) {\r\n this.model.expiryDateTo = this.model.expiryDateFrom;\r\n }\r\n\r\n if (\r\n this.model.effectiveDateFrom !== null &&\r\n this.model.effectiveDateTo === null\r\n ) {\r\n this.model.effectiveDateTo = this.model.effectiveDateFrom;\r\n }\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n this.checkDatesRange();\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n //$('#warningZone').collapse('hide');\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n // $('#warningZone #message').text('Please select a date range.');\r\n // $('#warningZone').collapse('show');\r\n // httpNotifier.response_notifier$.next(new KeyValue('', e));\r\n }\r\n }\r\n\r\n private Action(command: Enum.ProposalCommandAction) {\r\n if (this.selectedRowIndexes.length > 10) {\r\n switch (command) {\r\n case Enum.ProposalCommandAction.Submit:\r\n this.msg_maxWarning =\r\n \"Maximum of 10 policies are allowed to bind at a time, please select up to 10 policies before you proceed\";\r\n break;\r\n case Enum.ProposalCommandAction.Accept:\r\n this.msg_maxWarning =\r\n \"Maximum of 10 policies are allowed to bind at a time, please select up to 10 policies before you proceed\";\r\n break;\r\n case Enum.ProposalCommandAction.Decline:\r\n this.msg_maxWarning =\r\n \"Maximum of 10 policies are allowed to decline at a time, please select up to 10 policies before you proceed\";\r\n break;\r\n case Enum.ProposalCommandAction.Approve:\r\n this.msg_maxWarning =\r\n \"Maximum of 10 policies are allowed to approve at a time, please select up to 10 policies before you proceed\";\r\n break;\r\n }\r\n\r\n this.WarningPopup(this.msg_maxWarning, command);\r\n } else if (this.selectedRowIndexes.length > 0) {\r\n var sortedArray: number[] = this.selectedRowIndexes.sort(\r\n (n1, n2) => n1 - n2\r\n );\r\n var dataItems = this.getDataItemsFromGridWithSelectedIndexes(sortedArray);\r\n this.showPrintOptionDialog(dataItems, command);\r\n }\r\n }\r\n\r\n getDataItemsFromGridWithSelectedIndexes(\r\n selectedIndexes: number[]\r\n ): TodoPolicyListingEntity[] {\r\n var currentPageData = this.gridView.data as TodoPolicyListingEntity[];\r\n var selectedDataItems: TodoPolicyListingEntity[] = [];\r\n\r\n currentPageData.forEach((item, idx) => {\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n if (selectedIndexes.indexOf(allIdx) >= 0) {\r\n selectedDataItems.push(item);\r\n }\r\n });\r\n return selectedDataItems;\r\n }\r\n //#endregion\r\n\r\n //#region bulk actions\r\n WarningPopup(msg: string, command: Enum.ProposalCommandAction) {\r\n let v2InputData: v2DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: command,\r\n message: msg,\r\n };\r\n\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV2Component,\r\n {\r\n data: v2InputData,\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {});\r\n }\r\n\r\n ActionApprove(): void {\r\n this.Action(Enum.ProposalCommandAction.Approve);\r\n }\r\n ActionBind(): void {\r\n this.Action(Enum.ProposalCommandAction.Accept);\r\n }\r\n ActionDecline(): void {\r\n this.Action(Enum.ProposalCommandAction.Decline);\r\n }\r\n\r\n ActionSelect(): void {\r\n if (this.checkableRows.length > 10) {\r\n alert(\r\n \"Maximum of 10 policies are allowed to either approve/decline/bind at a time, please select up to 10 policies before you proceed\"\r\n );\r\n } else {\r\n this.checkableRows.forEach((idx) => {\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n if (this.selectedRowIndexes.indexOf(allIdx) == -1) {\r\n this.selectedRowIndexes.push(allIdx);\r\n\r\n this.gridView.data[allIdx].checkboxChecked = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n SetSelectedItem(dataItem: TodoPolicyListingEntity, idx: number) {\r\n //revert\r\n dataItem.checkboxChecked = !dataItem.checkboxChecked;\r\n\r\n //selectedIndexes is a running number for whole/all pages, while the currentPageData only for selected current page\r\n //thus need to onset\r\n let allIdx = idx + this.skip;\r\n //add\r\n if (dataItem.checkboxChecked) {\r\n if (this.selectedRowIndexes.indexOf(allIdx) == -1) {\r\n this.selectedRowIndexes.push(allIdx);\r\n }\r\n } else {\r\n //remove\r\n this.selectedRowIndexes.forEach((item, loopIndex) => {\r\n if (item === allIdx) {\r\n //item is the one that store the actual index; loopIndex is local index\r\n this.selectedRowIndexes.splice(loopIndex, 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n showPrintOptionDialog = (\r\n grdData: any,\r\n command: Enum.ProposalCommandAction\r\n ): void => {\r\n switch (command) {\r\n case Enum.ProposalCommandAction.Submit:\r\n grdData = grdData.filter(\r\n (item: { proposalStatusId: Enum.ProposalStatus }) =>\r\n item.proposalStatusId === Enum.ProposalStatus.Approved\r\n );\r\n this.confirmationMsg = \"Are you sure you wish to bind these Policies?\";\r\n break;\r\n case Enum.ProposalCommandAction.Accept:\r\n grdData = grdData.filter(\r\n (item: { proposalStatusId: Enum.ProposalStatus }) =>\r\n item.proposalStatusId === Enum.ProposalStatus.Approved\r\n );\r\n this.confirmationMsg = \"Are you sure you wish to bind these Policies?\";\r\n break;\r\n case Enum.ProposalCommandAction.Decline:\r\n grdData = grdData.filter(\r\n (item: { proposalStatusId: Enum.ProposalStatus }) =>\r\n item.proposalStatusId === Enum.ProposalStatus.Referred\r\n );\r\n this.confirmationMsg =\r\n \"Are you sure you wish to decline these submissions?\";\r\n break;\r\n case Enum.ProposalCommandAction.Approve:\r\n grdData = grdData.filter(\r\n (item: { proposalStatusId: Enum.ProposalStatus }) =>\r\n item.proposalStatusId === Enum.ProposalStatus.Referred\r\n );\r\n this.confirmationMsg =\r\n \"Referral transaction will be approved in bulk with this action, Do you wish to proceed?\";\r\n break;\r\n }\r\n if (grdData.length > 0) {\r\n let v6InputData: v6DlgInputArgs = {\r\n dialogWidth:\r\n command == Enum.ProposalCommandAction.Submit ||\r\n command == Enum.ProposalCommandAction.Accept\r\n ? \"lg\"\r\n : \"md\",\r\n command: command,\r\n gridData: grdData,\r\n };\r\n\r\n const v6DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV6Component,\r\n {\r\n data: v6InputData,\r\n }\r\n );\r\n\r\n v6DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationPrintOptionSelection(result);\r\n }\r\n });\r\n }\r\n };\r\n\r\n confirmationPrintOptionSelection(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: args.data,\r\n message: this.confirmationMsg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n }\r\n\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n if (args.data != null) {\r\n var result = await this.uploadService.doBulkAction(args.data);\r\n if (result.Status === true) {\r\n let tempData: any = null;\r\n tempData = result.ValidationMessage;\r\n var msg: string = \"\";\r\n switch (args.data[0].command) {\r\n case Enum.ProposalCommandAction.Submit:\r\n msg = \"Bind \" + tempData;\r\n break;\r\n case Enum.ProposalCommandAction.Accept:\r\n msg = \"Bind \" + tempData;\r\n break;\r\n case Enum.ProposalCommandAction.Decline:\r\n msg = \"Decline \" + tempData;\r\n break;\r\n case Enum.ProposalCommandAction.Approve:\r\n msg = \"Approve \" + tempData;\r\n break;\r\n }\r\n this.WarningPopup(msg, args.data[0].command);\r\n //reload when done\r\n this.refresh();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ButtonShow(e: any): boolean {\r\n if (this.identityRolesService.isUnderwriter) {\r\n if (e === \"All\" || e === Enum.ProposalCommandAction.Accept) {\r\n return true;\r\n }\r\n if (!this.identityRolesService.isOperationUnderwriter) {\r\n if (\r\n e === Enum.ProposalCommandAction.Approve ||\r\n e === Enum.ProposalCommandAction.Decline\r\n ) {\r\n return true;\r\n }\r\n }\r\n if (this.identityRolesService.isOperationUnderwriter) {\r\n if (e === Enum.ProposalCommandAction.Accept) {\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected fetchReportList() {\r\n if (this.identityRolesService.isUnderwriter) {\r\n this.masterDataService\r\n .getUnderwriterReportList()\r\n .subscribe((response) => {\r\n // update list\r\n var keyValueReportList = response;\r\n keyValueReportList.forEach((mp) => {\r\n if(this.defaultReportListItem.text == \"\"){\r\n this.defaultReportListItem = { \r\n text: mp.value, \r\n value: mp.key \r\n };\r\n }\r\n else\r\n this.reportList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n } \r\n }\r\n //#endregion\r\n}\r\n","

base-todo-list works!

\r\n","import {\r\n DocumentType,\r\n EndorsementType,\r\n ManualPaymentType,\r\n ProposalStatus,\r\n RefundPaymentType,\r\n TransType,\r\n} from \"./../../../../framework/enum.shared\";\r\n\r\nimport { OpenItemStatus } from \"./../../../../finance/finance-enums\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n\r\nclass ProposalCommon {\r\n translateProposalStatus(\r\n proposalStatus: ProposalStatus,\r\n transType: TransType\r\n ): string {\r\n switch (proposalStatus) {\r\n case ProposalStatus.None:\r\n return \"Draft\";\r\n case ProposalStatus.Approved:\r\n return \"Approved By Underwriter\";\r\n case ProposalStatus.Accepted:\r\n if (transType === TransType.CAN) {\r\n return \"Cancelled\";\r\n } else {\r\n return \"In Force\";\r\n }\r\n case ProposalStatus.Referred:\r\n return \"Referred To Underwriter\";\r\n case ProposalStatus.Declined:\r\n return \"Declined By Underwriter\";\r\n case ProposalStatus.Replaced:\r\n return \"Deleted\";\r\n case ProposalStatus.Incomplete:\r\n return \"Draft\";\r\n case ProposalStatus.QuickQuoteApprovedOnly:\r\n return \"Quick Quote Approved Only\";\r\n case ProposalStatus.ReferredToBroker:\r\n return \"Referred To Broker\";\r\n case ProposalStatus.Lapsed:\r\n return \"Lapsed\";\r\n case ProposalStatus.Endorsed:\r\n return \"Endorsed\";\r\n case ProposalStatus.Renewed:\r\n return \"Renewed\";\r\n case ProposalStatus.Cancelled:\r\n return \"Cancelled\";\r\n case ProposalStatus.Unsuccessful:\r\n return \"Unsuccessful\";\r\n case ProposalStatus.Submitted:\r\n return \"Submitted\";\r\n case ProposalStatus.PendingUnderwriter:\r\n return \"Pending Underwriter\";\r\n case ProposalStatus.PendingBroker:\r\n return \"Pending Broker\";\r\n case ProposalStatus.Complete:\r\n return \"Complete\";\r\n case ProposalStatus.PendingChecker:\r\n return \"Pending Checker\";\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n }\r\n translateDocumentType(docType: any): string {\r\n let type!: any;\r\n\r\n type = common.isObject(docType) ? parseInt(docType.key) : docType;\r\n switch (type) {\r\n case DocumentType.Undefined:\r\n return \"Undefined\";\r\n case DocumentType.DebitNote:\r\n return \"Debit Note\";\r\n case DocumentType.CreditNote:\r\n return \"Credit Note\";\r\n case DocumentType.CreditAdvice:\r\n return \"Credit Advice\";\r\n case DocumentType.DebitAdvice:\r\n return \"Debit Advice\";\r\n case DocumentType.TaxInvoice:\r\n return \"Tax Invoice\";\r\n case DocumentType.Quotation:\r\n return \"Quotation\";\r\n case DocumentType.PolicySchedule:\r\n return \"Policy Schedule\";\r\n case DocumentType.Endorsement:\r\n return \"Endorsement\";\r\n\r\n case DocumentType.Cancellation:\r\n return \"Cancellation\";\r\n case DocumentType.Renewal:\r\n return \"Renewal\";\r\n case DocumentType.RenewalNotice:\r\n return \"Renewal Notice\";\r\n case DocumentType.PolicyWording:\r\n return \"Policy Wording\";\r\n case DocumentType.CreditAdvice_AgentCommission:\r\n return \"Credit Advice Agent Commission\";\r\n case DocumentType.PaymentReceipt:\r\n return \"Payment Receipt\";\r\n case DocumentType.CoverNote_Draft:\r\n return \"Cover Note Draft\";\r\n case DocumentType.CoverNote:\r\n return \"Cover Note\";\r\n\r\n case DocumentType.CertificateOfCurrency:\r\n return \"Certificate Of Currency\";\r\n case DocumentType.PolicyScheduleAsAgreed:\r\n return \"Policy Schedule As Agreed\";\r\n case DocumentType.QuotationAsAgreed:\r\n return \"Quotation As Agreed\";\r\n case DocumentType.CancellationAsAgreed:\r\n return \"Cancellation As Agreed\";\r\n case DocumentType.CertificateOfCurrencyAsAgreed:\r\n return \"Certificate Of Currency As Agreed\";\r\n case DocumentType.ProposalForm:\r\n return \"Proposal Form\";\r\n case DocumentType.BinderLetter:\r\n return \"Binder Letter\";\r\n case DocumentType.Quote:\r\n return \"Quote\";\r\n\r\n case DocumentType.EndorsementAsAgreed:\r\n return \"Endorsement As Agreed\";\r\n case DocumentType.RenewalQuote:\r\n return \"Renewal Quote\";\r\n case DocumentType.QuickIndication:\r\n return \"Quick Indication\";\r\n case DocumentType.CancellationBinder:\r\n return \"Cancellation Binder\";\r\n case DocumentType.MultiQuote:\r\n return \"Multi Quote\";\r\n case DocumentType.RedemptionLetter:\r\n return \"Redemption Letter\";\r\n case DocumentType.ChangeInBuildingSumInsured:\r\n return \"Endorsement - Change In Building Sum Insured\";\r\n case DocumentType.ChangeInCorrespondanceAddress:\r\n return \"Endorsement - Change In Correspondence Address\";\r\n case DocumentType.ChangeOfAdditionalInsuredName:\r\n return \"Endorsement - Change In Additional Insured name\";\r\n case DocumentType.ChangeInPOI:\r\n return \"Endorsement - Change in Policy Period\";\r\n case DocumentType.ChangeOfClientInfo:\r\n return \"Endorsement - Change In Client Information\";\r\n case DocumentType.CancellationAdjustment:\r\n return \"Cancellation Adjustment\";\r\n case DocumentType.GstAdjustment:\r\n return \"Gst Adjustment\";\r\n case DocumentType.ChangeOfPlanType:\r\n return \"Endorsement - Change of Plan Type\";\r\n case DocumentType.RenewalMultiYear:\r\n return \"Renewal\";\r\n case DocumentType.LoanRedeemed:\r\n return \"Endorsement - Loan Redemption\";\r\n case DocumentType.Renewal_Non_MF: \r\n return \"Renewal_Non_MF\";\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n }\r\n translateEndorsementType(endType: EndorsementType): string {\r\n switch (endType) {\r\n case EndorsementType.GeneralEndorsement:\r\n return \"General Endorsement\";\r\n case EndorsementType.LoanRedemption:\r\n return \"Loan Redemption\";\r\n case EndorsementType.ChangeOfPOI:\r\n return \"Modify Policy Period\";\r\n case EndorsementType.ChangeOfCorrespondenceAddress:\r\n return \"Change of Correspondence Address\";\r\n case EndorsementType.ChangeOfSumInsured:\r\n return \"Modify Sum Insured\";\r\n case EndorsementType.ChangeOfAdditionalInsured:\r\n return \"Modify Additional Insured\";\r\n case EndorsementType.ChangeOfClientInfo:\r\n return \"Change Of Client Information\";\r\n case EndorsementType.GstAdjustment:\r\n return \"Gst Adjustment\";\r\n case EndorsementType.ChangeOfPlanType:\r\n return \"Change of Plan Type\";\r\n case EndorsementType.Undefined:\r\n return \" - \";\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n }\r\n\r\n translateTransType(transType: TransType, endType: EndorsementType): string {\r\n let transTypeText: string = \"\";\r\n switch (transType) {\r\n case TransType.NONE:\r\n transTypeText = \"None\";\r\n break;\r\n case TransType.NEW:\r\n transTypeText = \"New Business\";\r\n break;\r\n case TransType.END:\r\n transTypeText = \"Endorsement\";\r\n break;\r\n case TransType.CAN:\r\n transTypeText = \"Cancellation\";\r\n break;\r\n case TransType.REN:\r\n transTypeText = \"Renewal\";\r\n break;\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n if (transType === TransType.END) {\r\n if (endType !== null) {\r\n const endorsementText: string = this.translateEndorsementType(endType);\r\n if (endorsementText.length > 0) {\r\n return (transTypeText = transTypeText + \" - \" + endorsementText);\r\n }\r\n }\r\n }\r\n return transTypeText;\r\n }\r\n\r\n translateOpenItemStatus(openItemStatus: OpenItemStatus): string {\r\n let text: string = \"\";\r\n switch (openItemStatus) {\r\n case OpenItemStatus.Undefined:\r\n text = \"N/A\";\r\n break;\r\n case OpenItemStatus.PendingAutoDebit:\r\n text = \"Pending Auto Debit\";\r\n break;\r\n case OpenItemStatus.PendingInvoiceToBank:\r\n text = \"Pending Invoice To Bank\";\r\n break;\r\n case OpenItemStatus.PendingToInvoiceToIndividual:\r\n text = \"Pending Invoice To Individual\";\r\n break;\r\n case OpenItemStatus.PendingRefundToBank:\r\n text = \"Pending Refund To Bank\";\r\n break;\r\n case OpenItemStatus.PendingRefundToBankInReview:\r\n text = \"Pending Refund To Bank In Review\";\r\n break;\r\n case OpenItemStatus.AutoDebited:\r\n text = \"Auto Debited\";\r\n break;\r\n case OpenItemStatus.ManualPaid:\r\n text = \"Manual Paid\";\r\n break;\r\n case OpenItemStatus.InvoicedToBank:\r\n text = \"Invoiced To Bank\";\r\n break;\r\n case OpenItemStatus.InvoicedToIndividual:\r\n text = \"Invoiced To Individual\";\r\n break;\r\n case OpenItemStatus.Refunded:\r\n text = \"Refunded\";\r\n break;\r\n case OpenItemStatus.Reconciled:\r\n text = \"Reconciled\";\r\n break;\r\n case OpenItemStatus.PendingManualPayByCheque:\r\n text = \"Pending Manual Pay By Cheque\";\r\n break;\r\n case OpenItemStatus.ManualPaidNonAutoDebitFileSent:\r\n text = \"Manual Paid Non Auto Debit File Sent\";\r\n break;\r\n case OpenItemStatus.PendingRefundToIndividual:\r\n text = \"Pending Refund To Individual\";\r\n break;\r\n case OpenItemStatus.PendingRefundToIndividualInReview:\r\n text = \"Pending Refund To Individual In Review\";\r\n break;\r\n case OpenItemStatus.UnpaidChequeToBank:\r\n text = \"Unpaid Cheque To Bank\";\r\n break;\r\n case OpenItemStatus.UnpaidChequeToIndividual:\r\n text = \"Unpaid Cheque To Individual\";\r\n break;\r\n case OpenItemStatus.NoRefund:\r\n text = \"No Refund\";\r\n break;\r\n case OpenItemStatus.RefundedCheque:\r\n text = \"Refunded Cheque\";\r\n break;\r\n case OpenItemStatus.MeridianAutoOffset:\r\n text = \"Meridian Auto Offset\";\r\n break;\r\n case OpenItemStatus.ChequeAutoUpdated:\r\n text = \"Cheque Payment Auto Updated\";\r\n break;\r\n case OpenItemStatus.FreeInsuranceAutoUpdated:\r\n text = \"Free Insurance Auto Updated\";\r\n break;\r\n case OpenItemStatus.PendingPayment:\r\n text = \"Pending Payment\";\r\n break;\r\n case OpenItemStatus.SentForCollection:\r\n text = \"Sent For Collection\";\r\n break;\r\n case OpenItemStatus.PendingRefund:\r\n text = \"Pending Refund\";\r\n break;\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n return text;\r\n }\r\n\r\n translateManualPaymentType(manualPaymentType: ManualPaymentType): string {\r\n switch (manualPaymentType) {\r\n case ManualPaymentType.Cash:\r\n return \"Cash\";\r\n case ManualPaymentType.Cheque:\r\n return \"Cheque\";\r\n case ManualPaymentType.Undefined:\r\n return \" - \";\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n }\r\n\r\n translateRefundPaymentType(refundPaymentType: RefundPaymentType): string {\r\n switch (refundPaymentType) {\r\n case RefundPaymentType.Cheque:\r\n return \"Cheque\";\r\n case RefundPaymentType.OnlineTransfer:\r\n return \"Online Transfer\";\r\n case RefundPaymentType.Undefined:\r\n return \" - \";\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n }\r\n\r\n translateMonth(monthInteger: number): string {\r\n let text: string = \"\";\r\n switch (monthInteger) {\r\n case 1:\r\n text = \"January\";\r\n break;\r\n case 2:\r\n text = \"February\";\r\n break;\r\n case 3:\r\n text = \"March\";\r\n break;\r\n case 4:\r\n text = \"April\";\r\n break;\r\n case 5:\r\n text = \"May\";\r\n break;\r\n case 6:\r\n text = \"June\";\r\n break;\r\n case 7:\r\n text = \"July\";\r\n break;\r\n case 8:\r\n text = \"August\";\r\n break;\r\n case 9:\r\n text = \"September\";\r\n break;\r\n case 10:\r\n text = \"October\";\r\n break;\r\n case 11:\r\n text = \"November\";\r\n break;\r\n case 12:\r\n text = \"December\";\r\n break;\r\n default:\r\n throw Error(\"Not handled\");\r\n }\r\n return text;\r\n }\r\n}\r\n\r\nexport const proposalCommon = new ProposalCommon();\r\n","/** study materials\r\n\r\nhttps://stackoverflow.com/questions/3635754/sql-select-between-exact-number-of-rows\r\n\r\nselect * from\r\n (select Row_Number() over\r\n (order by userID) as RowIndex, * from users) as Sub\r\n Where Sub.RowIndex >= 235 and Sub.RowIndex <= 250\r\n */\r\n\r\nexport class SearchCriteria {\r\n constructor() {\r\n // Backend does not accept 'undefined'.\r\n // Hence initialize to empty string.\r\n this.quoteNo = \"\";\r\n this.policyNo = \"\";\r\n this.masterPolicyId = \"\";\r\n this.cin = \"\";\r\n this.insuredName = \"\";\r\n this.additionalInsuredName = \"\";\r\n this.bcrn = \"\";\r\n this.riskAddressPostalCode = \"\";\r\n this.productIds = new Array();\r\n this.productId = new Array();\r\n this.proposalStatus = new Array();\r\n this.bankReferenceNo = \"\";\r\n this.createdByUserId = 0;\r\n // this.startDateFrom = null;\r\n // this.startDateTo = null;\r\n // this.expiryDateFrom = null;\r\n // this.expiryDateTo = null;\r\n // this.effectiveDateFrom = null;\r\n // this.effectiveDateTo = null;\r\n // this.submissionDateFrom = null;\r\n // this.submissionDateTo = null;\r\n // this.approvalDateFrom = null;\r\n // this.approvalDateTo = null;\r\n this.segment = new Array();\r\n this.segmentDetails = \"\";\r\n // this.boundDateFrom = null;\r\n // this.boundDateTo = null;\r\n this.userTeam = new Array();\r\n this.transType = 0;\r\n this.month = 0;\r\n this.year = 0;\r\n this.policyStatus = \"\";\r\n this.postalCode = \"\";\r\n this.MSIGNo = \"\";\r\n this.channelTypeID = 0;\r\n this.dateSearchType = \"\";\r\n this.reportType = \"\";\r\n this.productRadio = \"\";\r\n this.transactionType = new Array();\r\n //this.ADWeek = null;\r\n }\r\n\r\n // Taking Rows 40 - 49\r\n // From = 4 * 10\r\n // To = ((4 + 1) * 10) - 1\r\n // Taking Rows 40 - 49\r\n // From = 4 * 10\r\n // To = ((4 + 1) * 10) - 1\r\n pageNo!: number; // 4\r\n // 4\r\n // 4\r\n pageSize!: number; // 10\r\n // 10\r\n // sortField = 'quoteNo'\r\n // sortField = 'quoteNo'\r\n sortField!: string;\r\n\r\n // dbo.Proposal.CustomerIdentificationNumber1 (NRIC, Business Registration No)\r\n // dbo.Proposal.CustomerIdentificationNumber2 (Passport No)\r\n\r\n quoteNo: string;\r\n policyNo: string;\r\n cin: string;\r\n insuredName: string;\r\n additionalInsuredName: string;\r\n bcrn: string;\r\n riskAddressPostalCode: string;\r\n masterPolicyId: string;\r\n productId: Array;\r\n productIds: Array;\r\n proposalStatus: Array;\r\n bankReferenceNo: string;\r\n createdByUserId: number;\r\n startDateFrom?: Date;\r\n startDateTo?: Date;\r\n expiryDateFrom?: Date;\r\n expiryDateTo?: Date;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n submissionDateFrom?: Date;\r\n submissionDateTo?: Date;\r\n approvalDateFrom?: Date;\r\n approvalDateTo?: Date;\r\n segment: Array;\r\n segmentDetails: string;\r\n boundDateFrom?: Date;\r\n boundDateTo?: Date;\r\n userTeam: Array;\r\n transType: number;\r\n month: number;\r\n year: number;\r\n policyStatus: string;\r\n postalCode: string;\r\n MSIGNo: string;\r\n channelTypeID: number;\r\n dateSearchType: string;\r\n reportType: string;\r\n productRadio: string;\r\n ADWeek?: Date;\r\n transactionType: Array;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n GridDataResult,\r\n PageSizeItem,\r\n PageChangeEvent,\r\n SelectionEvent,\r\n CellClickEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { ExportListEntity } from \"./ExportListEntity\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { ExcelService } from \"src/app/services/excel.service\";\r\nimport { SearchCriteria } from \"../base/search-criteria\";\r\nimport { warningZoneArgs } from \"../warning-zone/warning-zone.component\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enum from \"./../../../../framework/enum.shared\";\r\nimport { BaseListingComponent } from \"../../base/base-listing/base-listing.component\";\r\n\r\n@Component({\r\n selector: \"app-export-list\",\r\n templateUrl: \"./export-list.component.html\",\r\n styleUrls: [\"./export-list.component.scss\"],\r\n})\r\nexport class ExportListComponent\r\n extends BaseListingComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n\r\n @ViewChild(\"toDoStartDateTo\", { static: false })\r\n public toDoStartDateTo!: DatePickerComponent;\r\n\r\n public toDoStartDateTo_min!: Date;\r\n public toDoStartDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoExpiryDateTo\", { static: false })\r\n public toDoExpiryDateTo!: DatePickerComponent;\r\n\r\n public toDoExpiryDateTo_min!: Date;\r\n public toDoExpiryDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoEffectiveDateTo\", { static: false })\r\n public toDoEffectiveDateTo!: DatePickerComponent;\r\n\r\n public toDoEffectiveDateTo_min!: Date;\r\n public toDoEffectiveDateTo_max!: Date;\r\n\r\n @ViewChild(\"boundDateTo\", { static: false })\r\n public boundDateTo!: DatePickerComponent;\r\n\r\n public boundDateTo_min!: Date;\r\n public boundDateTo_max!: Date;\r\n\r\n @ViewChild(\"exportSubmmissionDateTo\", { static: false })\r\n public exportSubmmissionDateTo!: DatePickerComponent;\r\n\r\n public submmissionDateTo_min!: Date;\r\n public submmissionDateTo_max!: Date;\r\n\r\n @ViewChild(\"approvalDateTo\", { static: false })\r\n public approvalDateTo!: DatePickerComponent;\r\n\r\n public approvalDateTo_min!: Date;\r\n public approvalDateTo_max!: Date;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 100;\r\n public skip = 0;\r\n public take = 100;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n private listing: ExportListEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n currentUser: IUser | undefined;\r\n model = new SearchCriteria();\r\n public userProductList!: IProduct[];\r\n private masterPolicyList!: MasterPolicyEntity[];\r\n public masterPolicyOptions!: Array<{ text: string; value: string }>;\r\n public proposalStatusOptions!: Array<{ text: string; value: number }>;\r\n public userTeamOptions!: Array<{ text: string; value: number }>;\r\n public segmentOptions!: Array<{ text: string; value: string }>;\r\n public transTypeOptions!: Array<{ text: string; value: number }>;\r\n\r\n public isCitiUser: boolean = false;\r\n public isDBSUser: boolean = false;\r\n public isChubbUser: boolean = false;\r\n public defaultUserListItem: { text: string; value: string } = {\r\n text: \"All\",\r\n value: \"\",\r\n };\r\n public defaultMasterPolicyOptionsItem: { text: string; value: string } = {\r\n text: \"Select master policy no...\",\r\n value: \"\",\r\n };\r\n public defaultTransTypeItem: { text: string; value: string } = {\r\n text: \"All\",\r\n value: \"\",\r\n };\r\n\r\n public userList: Array<{ text: string; value: string }> = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n public checkableRows: number[] = [];\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private masterPolicyService: MasterPolicyService,\r\n private masterDataService: MasterDataService,\r\n private excelService: ExcelService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n //#region migrate from old angularjs\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser();\r\n\r\n this.fetchUserList();\r\n this.fetchMasterPolicyList();\r\n this.defaultSearchCriteria();\r\n //this.refresh();//original is not loaded by default\r\n }\r\n\r\n public getBcrnByUserOrg(): string {\r\n var currentUserOrg = this.currentUser?.organisation;\r\n if (currentUserOrg?.description == Enum.UserOrganisation.DBS) {\r\n return \"Bank Reference No\";\r\n } else if (currentUserOrg?.description == Enum.UserOrganisation.Citi) {\r\n return \"Collateral Reference No\";\r\n } else {\r\n return \"Bank Ref No/Coll Ref No\";\r\n }\r\n }\r\n\r\n /** Default search criteria while page load */\r\n private defaultSearchCriteria() {\r\n let products = this.currentUser?.products;\r\n if (products != undefined) {\r\n this.userProductList = products;\r\n }\r\n\r\n // Status dropdownlist options\r\n const proposalStatusOptions = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Pending Checker\", value: 18 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Approved by Underwriter\", value: 1 },\r\n { text: \"Declined by Underwriter\", value: 4 },\r\n ];\r\n this.proposalStatusOptions = proposalStatusOptions;\r\n\r\n // user team dropdownlist options\r\n const userTeamOptions = [\r\n { text: \"CBG-Customer Solutions\", value: 4 },\r\n { text: \"Loan Document\", value: 1 },\r\n { text: \"Loan Records\", value: 2 },\r\n { text: \"Loan Servicing\", value: 3 },\r\n { text: \"Maker & Checker\", value: 6 },\r\n { text: \"NA\", value: 5 },\r\n ];\r\n this.userTeamOptions = userTeamOptions;\r\n\r\n // Transaction\r\n const transTypeOptions = [\r\n { text: \" New Business\", value: 1 },\r\n { text: \"Endorsement\", value: 2 },\r\n { text: \" Cancellation\", value: 3 },\r\n { text: \" Renewal\", value: 4 },\r\n ];\r\n this.transTypeOptions = transTypeOptions;\r\n\r\n // Segment\r\n const segmentOptions = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n this.segmentOptions = segmentOptions;\r\n\r\n // effectiveDateFrom (14 days earlier from today)\r\n const effectiveDateFrom: Date = new Date();\r\n effectiveDateFrom.setDate(effectiveDateFrom.getDate() - 14);\r\n this.model.effectiveDateFrom = effectiveDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const effectiveDateTo: Date = new Date(effectiveDateFrom);\r\n effectiveDateTo.setMonth(effectiveDateTo.getMonth() + 6);\r\n this.model.effectiveDateTo = effectiveDateTo;\r\n\r\n if (\r\n this.identityRolesService.isChecker &&\r\n !this.identityRolesService.isMaker\r\n ) {\r\n this.model.proposalStatus.push(18);\r\n }\r\n }\r\n\r\n private fetchUserList = () => {\r\n if (this.identityRolesService.isUnderwriter) {\r\n this.masterDataService\r\n .getUnderwriterMakerUserList()\r\n .subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n } else {\r\n this.masterDataService.getMakerUserList().subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n }\r\n };\r\n\r\n private fetchMasterPolicyList = async () => {\r\n this.masterPolicyOptions = new Array<{ text: string; value: string }>();\r\n\r\n this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n (result: any) => {\r\n this.masterPolicyList = result;\r\n\r\n // update list\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber +\r\n \" (MSIG: \" +\r\n mp.policyNumber +\r\n \")\";\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n //#endregion\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n private clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.checkableRows = [];\r\n this.selectedRowIndexes = [];\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {}\r\n\r\n private refresh(exportExcel: boolean = false): void {\r\n if (!exportExcel) {\r\n this.clearSelection();\r\n this.loading = true;\r\n }\r\n\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n\r\n if (!exportExcel) {\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n }\r\n formData.append(\"sort[0][field]\", \"serialNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"startDateFrom\", \"gte\", this.model.startDateFrom],\r\n [\"startDateTo\", \"lte\", this.model.startDateTo],\r\n [\"expiryDateFrom\", \"gte\", this.model.expiryDateFrom],\r\n [\"expiryDateTo\", \"lte\", this.model.expiryDateTo],\r\n [\"effectiveDateFrom\", \"gte\", this.model.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.model.effectiveDateTo],\r\n\r\n [\"submissionDateFrom\", \"gte\", this.model.submissionDateFrom],\r\n [\"submissionDateTo\", \"lte\", this.model.submissionDateTo],\r\n [\"approvalDateFrom\", \"gte\", this.model.approvalDateFrom],\r\n [\"approvalDateTo\", \"lte\", this.model.approvalDateTo],\r\n\r\n [\"quoteNo\", \"eq\", this.model.quoteNo],\r\n [\"policyNo\", \"eq\", this.model.policyNo],\r\n [\"masterPolicyId\", \"eq\", this.model.masterPolicyId],\r\n [\"cin\", \"eq\", this.model.cin],\r\n [\"insuredName\", \"eq\", this.model.insuredName],\r\n [\"productId\", \"eq\", this.model.productId],\r\n [\"proposalStatus\", \"eq\", this.model.proposalStatus],\r\n\r\n [\"transType\", \"eq\", this.model.transType],\r\n\r\n [\"bankReferenceNo\", \"eq\", this.model.bankReferenceNo],\r\n [\"createdByUserId\", \"eq\", this.model.createdByUserId],\r\n\r\n [\"segment\", \"eq\", this.model.segment],\r\n [\"boundDateFrom\", \"gte\", this.model.boundDateFrom],\r\n [\"boundDateTo\", \"lte\", this.model.boundDateTo],\r\n\r\n [\"userTeam\", \"eq\", this.model.userTeam],\r\n // [\"additionalInsuredName\", \"eq\", this.model.additionalInsuredName],\r\n // [\"bcrn\", \"eq\", this.model.bcrn],\r\n // [\"riskAddressPostalCode\", \"eq\", this.model.riskAddressPostalCode],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.masterPolicyService\r\n .searchExportListing(querystring, exportExcel)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (exportExcel) {\r\n let listing = result.body.d?.results;\r\n for (let i = 0; i < listing.length; i++) {\r\n listing[i].status = this.getStatusDisplayText(listing[i]);\r\n }\r\n this.excelService.generateExportList(listing);\r\n } else {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n public on_searchStartDateFrom_change(value: Date): void {\r\n if (this.model.startDateFrom === null) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.startDateTo &&\r\n this.model.startDateFrom &&\r\n this.model.startDateTo < this.model.startDateFrom\r\n ) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoStartDateTo_min = value;\r\n this.toDoStartDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoStartDateTo.toggle();\r\n this.on_searchStartDateFrom_focus();\r\n }\r\n\r\n public on_searchStartDateFrom_focus(): void {\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n if (this.boundDateTo.isOpen) {\r\n this.boundDateTo.toggle();\r\n }\r\n if (this.exportSubmmissionDateTo.isOpen) {\r\n this.exportSubmmissionDateTo.toggle();\r\n }\r\n if (this.approvalDateTo.isOpen) {\r\n this.approvalDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchExpiryDateFrom_change(value: Date): void {\r\n if (this.model.expiryDateFrom === null) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n\r\n if (\r\n this.model.expiryDateTo &&\r\n this.model.expiryDateFrom &&\r\n this.model.expiryDateTo < this.model.expiryDateFrom\r\n ) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoExpiryDateTo_min = value;\r\n this.toDoExpiryDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoExpiryDateTo.toggle();\r\n this.on_searchExpiryDateFrom_focus();\r\n }\r\n\r\n public on_searchExpiryDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n if (this.boundDateTo.isOpen) {\r\n this.boundDateTo.toggle();\r\n }\r\n if (this.exportSubmmissionDateTo.isOpen) {\r\n this.exportSubmmissionDateTo.toggle();\r\n }\r\n if (this.approvalDateTo.isOpen) {\r\n this.approvalDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchEffectiveDateFrom_change(value: Date): void {\r\n if (this.model.effectiveDateFrom === null) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.effectiveDateTo &&\r\n this.model.effectiveDateFrom &&\r\n this.model.effectiveDateTo < this.model.effectiveDateFrom\r\n ) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.toDoEffectiveDateTo.toggle();\r\n this.on_searchEffectiveDateFrom_focus();\r\n }\r\n\r\n public on_searchEffectiveDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.boundDateTo.isOpen) {\r\n this.boundDateTo.toggle();\r\n }\r\n if (this.exportSubmmissionDateTo.isOpen) {\r\n this.exportSubmmissionDateTo.toggle();\r\n }\r\n if (this.approvalDateTo.isOpen) {\r\n this.approvalDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchBoundDateFrom_change(value: Date): void {\r\n if (this.model.boundDateFrom === null) {\r\n this.model.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.boundDateTo &&\r\n this.model.boundDateFrom &&\r\n this.model.boundDateTo < this.model.boundDateFrom\r\n ) {\r\n this.model.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.boundDateTo_min = value;\r\n this.boundDateTo_max = maxDate;\r\n // open datepicker\r\n this.boundDateTo.toggle();\r\n this.on_searchBoundDateFrom_focus();\r\n }\r\n\r\n public on_searchBoundDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n if (this.exportSubmmissionDateTo.isOpen) {\r\n this.exportSubmmissionDateTo.toggle();\r\n }\r\n if (this.approvalDateTo.isOpen) {\r\n this.approvalDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchSubmmissionDateFrom_change(value: Date): void {\r\n if (this.model.submissionDateFrom === null) {\r\n this.model.submissionDateTo = undefined;\r\n this.submmissionDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.submmissionDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.submissionDateTo &&\r\n this.model.submissionDateFrom &&\r\n this.model.submissionDateTo < this.model.submissionDateFrom\r\n ) {\r\n this.model.submissionDateTo = undefined;\r\n this.submmissionDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.submmissionDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.submmissionDateTo_min = value;\r\n this.submmissionDateTo_max = maxDate;\r\n // open datepicker\r\n this.exportSubmmissionDateTo.toggle();\r\n this.on_searchSubmmissionDateFrom_focus();\r\n }\r\n\r\n public on_searchSubmmissionDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n if (this.boundDateTo.isOpen) {\r\n this.boundDateTo.toggle();\r\n }\r\n if (this.approvalDateTo.isOpen) {\r\n this.approvalDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchApprovalDateFrom_change(value: Date): void {\r\n if (this.model.approvalDateFrom === null) {\r\n this.model.approvalDateTo = undefined;\r\n this.approvalDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.approvalDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.approvalDateTo &&\r\n this.model.approvalDateFrom &&\r\n this.model.approvalDateTo < this.model.approvalDateFrom\r\n ) {\r\n this.model.approvalDateTo = undefined;\r\n this.approvalDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.approvalDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.approvalDateTo_min = value;\r\n this.approvalDateTo_max = maxDate;\r\n // open datepicker\r\n this.approvalDateTo.toggle();\r\n this.on_searchApprovalDateFrom_focus();\r\n }\r\n\r\n public on_searchApprovalDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n if (this.boundDateTo.isOpen) {\r\n this.boundDateTo.toggle();\r\n }\r\n if (this.exportSubmmissionDateTo.isOpen) {\r\n this.exportSubmmissionDateTo.toggle();\r\n }\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n\r\n // dates\r\n const dates: boolean =\r\n this.model.startDateFrom !== null ||\r\n this.model.startDateTo !== null ||\r\n this.model.expiryDateFrom !== null ||\r\n this.model.expiryDateTo !== null ||\r\n this.model.effectiveDateFrom !== null ||\r\n this.model.effectiveDateTo !== null ||\r\n this.model.submissionDateFrom !== null ||\r\n this.model.submissionDateTo !== null ||\r\n this.model.approvalDateFrom !== null ||\r\n this.model.approvalDateTo !== null ||\r\n this.model.boundDateFrom !== null ||\r\n this.model.boundDateTo !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n\r\n private checkDatesRange() {\r\n if (this.model.startDateFrom !== null && this.model.startDateTo === null) {\r\n this.model.startDateTo = this.model.startDateFrom;\r\n }\r\n\r\n if (\r\n this.model.expiryDateFrom !== null &&\r\n this.model.expiryDateTo === null\r\n ) {\r\n this.model.expiryDateTo = this.model.expiryDateFrom;\r\n }\r\n\r\n if (\r\n this.model.effectiveDateFrom !== null &&\r\n this.model.effectiveDateTo === null\r\n ) {\r\n this.model.effectiveDateTo = this.model.effectiveDateFrom;\r\n }\r\n\r\n if (\r\n this.model.submissionDateFrom !== null &&\r\n this.model.submissionDateTo === null\r\n ) {\r\n this.model.submissionDateTo = this.model.submissionDateFrom;\r\n }\r\n\r\n if (\r\n this.model.approvalDateFrom !== null &&\r\n this.model.approvalDateTo === null\r\n ) {\r\n this.model.approvalDateTo = this.model.approvalDateFrom;\r\n }\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n this.checkDatesRange();\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n //$('#warningZone').collapse('hide');\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n // $('#warningZone #message').text('Please select a date range.');\r\n // $('#warningZone').collapse('show');\r\n // httpNotifier.response_notifier$.next(new KeyValue('', e));\r\n }\r\n }\r\n\r\n getStatusDisplayText(dataItem: any): string {\r\n switch (dataItem.status) {\r\n case 2:\r\n return \"Bound\";\r\n case 3:\r\n return \"Referred\";\r\n case 6:\r\n return \"Draft\";\r\n case 10:\r\n return \"Endorsed\";\r\n case 11:\r\n return \"Renewed\";\r\n case 12:\r\n return \"Cancelled\";\r\n case 18:\r\n return \"P. Checker\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n export(): void {\r\n //this.submitted = true;\r\n this.refresh(true);\r\n }\r\n //#endregion\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ advancedSearchCaption }}\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n \r\n Export\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export const proposalStatus: { [key: number]: string } = {\r\n 1: 'Approved',\r\n 2: 'Bound',\r\n 3: 'Referred',\r\n 6: 'Draft',\r\n 10: 'Endorsed',\r\n 11: 'Renewed',\r\n 12: 'Cancelled',\r\n 18: 'P. Checker',\r\n 4: 'Declined',\r\n 9: 'Lapsed', \r\n};\r\n\r\nexport const transactionType: { [key: number]: string } = {\r\n 1: 'NB',\r\n 2: 'EN',\r\n 3: 'CA',\r\n 4: 'RN'\r\n};\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { BaseComponent } from \"../../shared/base/base.component\";\r\nimport { warningZoneArgs } from \"./warning-zone/warning-zone.component\";\r\n\r\n@Component({\r\n selector: \"app-home\",\r\n templateUrl: \"./home.component.html\",\r\n styleUrls: [\"./home.component.scss\"],\r\n})\r\nexport class HomeComponent extends BaseComponent implements OnInit {\r\n public warningZoneOpened = false;\r\n public warningText: string = \"\";\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = true; //todo: bug when back from proposal page; temp set to HK\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n\r\n this.broadcastService.onRoleSet.subscribe((msg: any) => {\r\n this.setCountry();\r\n });\r\n }\r\n\r\n private setCountry() {\r\n if (this.identityRolesService.IsHASEUser) {\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n } else {\r\n this.isSgProduct = true;\r\n this.isHkProduct = false;\r\n }\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n public onTabSelect(e: SelectEvent) {}\r\n\r\n showWarningZoneEvent(args: warningZoneArgs) {\r\n if (args.showWarning) {\r\n this.warningZoneOpened = true;\r\n this.warningText = args.warningText;\r\n } else {\r\n this.warningZoneOpened = false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { proposalCommon } from \"../../../base/utils/proposal-common\";\r\nimport * as HomeConstant from \"./../../../../new-product/home/home-constant\";\r\nimport * as AppEnums from \"src/app/framework/app.enums\";\r\nimport { ROUTE_PROPOSAL } from \"src/app/app.module\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-policy-list-details\",\r\n templateUrl: \"./policy-list-details.component.html\",\r\n styleUrls: [\"./policy-list-details.component.scss\"],\r\n})\r\nexport class PolicyListDetailsComponent implements OnInit {\r\n ROW_HEADER_HEIGHT: number = 85;\r\n SINGLE_ROW_HEIGHT: number = 52; //bootstrap; default:45;\r\n public height = this.ROW_HEADER_HEIGHT;\r\n public pageSize = 5; //5 is just dummy initial\r\n public skip = 0;\r\n public take = 5;\r\n\r\n @Input()\r\n public transHistoriesJson!: string;\r\n\r\n public gridViewDetail!: GridDataResult; // Observable;\r\n\r\n constructor(public router: Router) {}\r\n\r\n ngOnInit(): void {\r\n this.on_DetailInit();\r\n }\r\n\r\n private on_DetailInit = () => {\r\n if (this.transHistoriesJson !== \"[]\") {\r\n var listing = JSON.parse(this.transHistoriesJson);\r\n\r\n if (listing != null) {\r\n //since parsing from json, nowhere to determine total and thus takes all, hence no paging\r\n this.pageSize = listing.length;\r\n\r\n this.height =\r\n this.ROW_HEADER_HEIGHT + this.SINGLE_ROW_HEIGHT * listing.length;\r\n this.gridViewDetail = {\r\n data: listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: listing.length,\r\n };\r\n }\r\n // $('
').appendTo(e.detailCell).kendoGrid({\r\n // dataSource: {\r\n // data: JSON.parse(transHistoriesJson),\r\n // requestEnd: this.on_ChildRequestEnd\r\n // },\r\n // columns: [\r\n // { field: 'effectiveDate', title: 'Previous Trans. Effective Date' },\r\n // { field: 'policyBoundDate', title: 'Previous Approved Date' },\r\n // { field: 'proposalTypeDisplayText', title: 'Previous Trans. Type' },\r\n // { field: 'endorsementTypeDisplayText', title: 'Previous Endorsement Type' },\r\n // { field: 'premium', title: 'Premium' },\r\n // ],\r\n // selectable: 'single, row',\r\n // scrollable: false,\r\n // change: this.on_ChildChange\r\n // });\r\n }\r\n };\r\n\r\n public pageChange(event: PageChangeEvent): void {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n const productId = dataItem.productId;\r\n const proposalId = dataItem.proposalId;\r\n\r\n const route = AppEnums.productsRoute[productId + \"|1\"];\r\n const commandAction = AppEnums.proposalCommandAction[\"Open\"];\r\n if (route !== undefined) {\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: productId,\r\n pid: proposalId,\r\n action: commandAction,\r\n },\r\n });\r\n }\r\n }\r\n\r\n public getProposalTypeDisplayText(dataItem: any): string {\r\n return HomeConstant.transactionType[dataItem.transTypeId];\r\n }\r\n\r\n public getEndorsementTypeDisplayText(dataItem: any): string {\r\n return proposalCommon.translateEndorsementType(dataItem.endorsementTypeId);\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { KeyValue } from \"@angular/common\";\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n GridDataResult,\r\n PageSizeItem,\r\n PageChangeEvent,\r\n SelectionEvent,\r\n CellClickEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { SearchCriteria } from \"../base/search-criteria\";\r\nimport { warningZoneArgs } from \"../warning-zone/warning-zone.component\";\r\nimport { OpenItemStatus } from \"./../../../../finance/finance-enums\";\r\nimport * as Enum from \"./../../../../framework/enum.shared\";\r\nimport * as AppEnums from \"src/app/framework/app.enums\";\r\nimport * as HomeConstant from \"./../home-constant\";\r\nimport { proposalCommon } from \"../../base/utils/proposal-common\";\r\nimport { PolicyListingEntity } from \"./PolicyListingEntity\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ROUTE_PROPOSAL } from \"src/app/app.module\";\r\nimport { BaseListingComponent } from \"../../base/base-listing/base-listing.component\";\r\n\r\n@Component({\r\n selector: \"app-policy-list\",\r\n templateUrl: \"./policy-list.component.html\",\r\n styleUrls: [\"./policy-list.component.scss\"],\r\n})\r\nexport class PolicyListComponent\r\n extends BaseListingComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n\r\n @ViewChild(\"toDoStartDateTo\", { static: false })\r\n public toDoStartDateTo!: DatePickerComponent;\r\n\r\n public toDoStartDateTo_min!: Date;\r\n public toDoStartDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoExpiryDateTo\", { static: false })\r\n public toDoExpiryDateTo!: DatePickerComponent;\r\n\r\n public toDoExpiryDateTo_min!: Date;\r\n public toDoExpiryDateTo_max!: Date;\r\n\r\n @ViewChild(\"toDoEffectiveDateTo\", { static: false })\r\n public toDoEffectiveDateTo!: DatePickerComponent;\r\n\r\n public toDoEffectiveDateTo_min!: Date;\r\n public toDoEffectiveDateTo_max!: Date;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n private listing: PolicyListingEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n currentUser: IUser | undefined;\r\n model = new SearchCriteria();\r\n\r\n public userProductList!: IProduct[];\r\n private masterPolicyList!: MasterPolicyEntity[];\r\n public masterPolicyOptions!: Array<{ text: string; value: string }>;\r\n public proposalStatusOptions!: Array<{ text: string; value: number }>;\r\n public userTeamOptions!: Array<{ text: string; value: number }>;\r\n public isCitiUser: boolean = false;\r\n public isDBSUser: boolean = false;\r\n public isChubbUser: boolean = false;\r\n public defaultUserListItem: KeyValue = {\r\n key: \"All\",\r\n value: \"\",\r\n };\r\n public defaultMasterPolicyOptionsItem: { text: string; value: string } = {\r\n text: \"Select master policy no...\",\r\n value: \"\",\r\n };\r\n public loading!: boolean;\r\n\r\n @Output() warningZoneEvent = new EventEmitter();\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public masterPolicyService: MasterPolicyService,\r\n public masterDataService: MasterDataService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser();\r\n this.fetchMasterPolicyList();\r\n this.defaultSearchCriteria();\r\n this.getUserOrganisation();\r\n this.refresh();\r\n }\r\n\r\n private getUserOrganisation() {\r\n //Hide/Show the appropriate search name for Bank Reference No/Collateral Reference No\r\n switch (this.currentUser?.organisation?.description) {\r\n case Enum.UserOrganisation.DBS:\r\n this.isCitiUser = false;\r\n this.isChubbUser = false;\r\n this.isDBSUser = true;\r\n break;\r\n case Enum.UserOrganisation.Citi:\r\n this.isCitiUser = true;\r\n this.isChubbUser = false;\r\n this.isDBSUser = false;\r\n break;\r\n default:\r\n this.isCitiUser = false;\r\n this.isChubbUser = true;\r\n this.isDBSUser = false;\r\n break;\r\n }\r\n }\r\n\r\n /** Default search criteria while page load */\r\n private defaultSearchCriteria() {\r\n let products = this.currentUser?.products;\r\n if (products != undefined) {\r\n this.userProductList = products;\r\n }\r\n\r\n // Status dropdownlist options\r\n const proposalStatusOptions = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Pending Checker\", value: 18 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Approved by Underwriter\", value: 1 },\r\n { text: \"Declined by Underwriter\", value: 4 },\r\n ];\r\n this.proposalStatusOptions = proposalStatusOptions;\r\n\r\n // user team dropdownlist options\r\n const userTeamOptions = [\r\n { text: \"CBG-Customer Solutions\", value: 4 },\r\n { text: \"Loan Document\", value: 1 },\r\n { text: \"Loan Records\", value: 2 },\r\n { text: \"Loan Servicing\", value: 3 },\r\n { text: \"Maker & Checker\", value: 6 },\r\n { text: \"NA\", value: 5 },\r\n ];\r\n this.userTeamOptions = userTeamOptions;\r\n\r\n // effectiveDateFrom (14 days earlier from today)\r\n const effectiveDateFrom: Date = new Date(new Date().getFullYear(), 0, 1);\r\n this.model.effectiveDateFrom = effectiveDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const effectiveDateTo: Date = new Date(\r\n effectiveDateFrom.getFullYear(),\r\n 11,\r\n 31\r\n );\r\n this.model.effectiveDateTo = effectiveDateTo;\r\n }\r\n\r\n private fetchMasterPolicyList = async () => {\r\n this.masterPolicyOptions = new Array<{ text: string; value: string }>();\r\n\r\n this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n (result: any) => {\r\n this.masterPolicyList = result;\r\n\r\n // update list\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber +\r\n \" (MSIG: \" +\r\n mp.policyNumber +\r\n \")\";\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // let selectedData = grid.data.data[selection.index];\r\n //const selectedData = selection?.selectedRows?[0]?.dataItem;\r\n const selectedData = selection?.selectedRows;\r\n if (selectedData != undefined && selectedData.length > 0) {\r\n var t = selectedData[0].dataItem;\r\n }\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n const productId = dataItem.productId;\r\n const proposalId = dataItem.proposalId;\r\n\r\n const route = AppEnums.productsRoute[productId + \"|1\"];\r\n const commandAction = AppEnums.proposalCommandAction[\"Open\"];\r\n if (route !== undefined) {\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: productId,\r\n pid: proposalId,\r\n action: commandAction,\r\n },\r\n });\r\n }\r\n }\r\n\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyInceptionDate\");\r\n formData.append(\"sort[0][dir]\", \"desc\");\r\n\r\n let array = [\r\n [\"startDateFrom\", \"gte\", this.model.startDateFrom],\r\n [\"startDateTo\", \"gte\", this.model.startDateTo],\r\n [\"expiryDateFrom\", \"gte\", this.model.expiryDateFrom],\r\n [\"expiryDateTo\", \"gte\", this.model.expiryDateTo],\r\n [\"effectiveDateFrom\", \"gte\", this.model.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.model.effectiveDateTo],\r\n [\"quoteNo\", \"eq\", this.model.quoteNo],\r\n [\"policyNo\", \"eq\", this.model.policyNo],\r\n [\"masterPolicyId\", \"eq\", this.model.masterPolicyId],\r\n [\"cin\", \"eq\", this.model.cin],\r\n [\"insuredName\", \"eq\", this.model.insuredName],\r\n [\"productId\", \"eq\", this.model.productId],\r\n [\"proposalStatus\", \"eq\", this.model.proposalStatus],\r\n [\"bankReferenceNo\", \"eq\", this.model.bankReferenceNo],\r\n [\"createdByUserId\", \"eq\", this.model.createdByUserId],\r\n [\"userTeam\", \"eq\", this.model.userTeam],\r\n [\"additionalInsuredName\", \"eq\", this.model.additionalInsuredName],\r\n [\"bcrn\", \"eq\", this.model.bcrn],\r\n [\"riskAddressPostalCode\", \"eq\", this.model.riskAddressPostalCode],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.masterPolicyService.searchPolicyListing(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n public on_searchStartDateFrom_change(value: Date): void {\r\n if (this.model.startDateFrom === null) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.startDateTo &&\r\n this.model.startDateFrom &&\r\n this.model.startDateTo < this.model.startDateFrom\r\n ) {\r\n this.model.startDateTo = undefined;\r\n this.toDoStartDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoStartDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoStartDateTo_min = value;\r\n this.toDoStartDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoStartDateTo.toggle();\r\n this.on_searchStartDateFrom_focus();\r\n }\r\n\r\n public on_searchStartDateFrom_focus(): void {\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchExpiryDateFrom_change(value: Date): void {\r\n if (this.model.expiryDateFrom === null) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n\r\n if (\r\n this.model.expiryDateTo &&\r\n this.model.expiryDateFrom &&\r\n this.model.expiryDateTo < this.model.expiryDateFrom\r\n ) {\r\n this.model.expiryDateTo = undefined;\r\n this.toDoExpiryDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoExpiryDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.toDoExpiryDateTo_min = value;\r\n this.toDoExpiryDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.toDoExpiryDateTo.toggle();\r\n this.on_searchExpiryDateFrom_focus();\r\n }\r\n\r\n public on_searchExpiryDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoEffectiveDateTo.isOpen) {\r\n this.toDoEffectiveDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchEffectiveDateFrom_change(value: Date): void {\r\n if (this.model.effectiveDateFrom === null) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.effectiveDateTo &&\r\n this.model.effectiveDateFrom &&\r\n this.model.effectiveDateTo < this.model.effectiveDateFrom\r\n ) {\r\n this.model.effectiveDateTo = undefined;\r\n this.toDoEffectiveDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoEffectiveDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.toDoEffectiveDateTo.toggle();\r\n this.on_searchEffectiveDateFrom_focus();\r\n }\r\n\r\n public on_searchEffectiveDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n }\r\n\r\n private validateMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n\r\n // dates\r\n const dates: boolean =\r\n this.model.startDateFrom !== null ||\r\n this.model.startDateTo !== null ||\r\n this.model.expiryDateFrom !== null ||\r\n this.model.expiryDateTo !== null ||\r\n this.model.effectiveDateFrom !== null ||\r\n this.model.effectiveDateTo !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n\r\n private checkDatesRange() {\r\n if (this.model.startDateFrom !== null && this.model.startDateTo === null) {\r\n this.model.startDateTo = this.model.startDateFrom;\r\n }\r\n\r\n if (\r\n this.model.expiryDateFrom !== null &&\r\n this.model.expiryDateTo === null\r\n ) {\r\n this.model.expiryDateTo = this.model.expiryDateFrom;\r\n }\r\n\r\n if (\r\n this.model.effectiveDateFrom !== null &&\r\n this.model.effectiveDateTo === null\r\n ) {\r\n this.model.effectiveDateTo = this.model.effectiveDateFrom;\r\n }\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n\r\n this.checkDatesRange();\r\n\r\n const isValid = this.validateMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n //$('#warningZone').collapse('hide');\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n // $('#warningZone #message').text('Please select a date range.');\r\n // $('#warningZone').collapse('show');\r\n // httpNotifier.response_notifier$.next(new KeyValue('', e));\r\n }\r\n }\r\n\r\n public getOpenItemStatusDisplayText(dataItem: any): string {\r\n const openItemStatusEnum: OpenItemStatus = dataItem.openItemStatusId;\r\n\r\n return openItemStatusEnum === OpenItemStatus.Undefined\r\n ? \"-\"\r\n : proposalCommon.translateOpenItemStatus(openItemStatusEnum);\r\n }\r\n\r\n public getCinDisplayText(dataItem: any): string {\r\n if (common.isStringNullOrEmpty(dataItem.cin)) {\r\n return \"-\";\r\n }\r\n return dataItem.cin;\r\n }\r\n\r\n public getMsigPolicyNoDisplayText(dataItem: any): string {\r\n return common.isStringNullOrEmpty(dataItem.MSIGPolicyNo) ||\r\n dataItem.policyNo == dataItem.MSIGPolicyNo\r\n ? \"-\"\r\n : dataItem.MSIGPolicyNo;\r\n }\r\n\r\n public getProposalTypeDisplayText(dataItem: any): string {\r\n return HomeConstant.transactionType[dataItem.proposalTransTypeId];\r\n }\r\n\r\n public hasTransactionHistories(dataItem: PolicyListingEntity): boolean {\r\n return dataItem.transactionHistories !== \"[]\";\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ advancedSearchCaption }}\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { DatePipe } from \"@angular/common\";\r\nimport { Component, \r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n Input,\r\n Output,\r\n EventEmitter} from \"@angular/core\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { AutoDebitExtractionSearchCriteria } from \"./auto-debit.model\";\r\n@Component({\r\n selector : 'app-auto-debit',\r\n templateUrl : './auto-debit.component.html'\r\n})\r\nexport class AutoDebitComponent implements OnInit,OnChanges{\r\n @Input() presetReportType!:number\r\n @Output() warningZoneEvent = new EventEmitter();\r\n searchCriteria = new AutoDebitExtractionSearchCriteria;\r\n constructor(\r\n private presetExportService : PresetExportService,\r\n private excelTemplateService : ExcelTemplateService\r\n ){}\r\n ngOnInit(): void {\r\n \r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.searchCriteria = new AutoDebitExtractionSearchCriteria;\r\n }\r\n public download():void{\r\n switch (this.presetReportType) { \r\n case 13: \r\n if(this.validateMonthFields()){\r\n this.handleWarnings(false);\r\n this.presetExportService.downloadDocument(this.searchCriteria.month.getMonth() + 1,this.searchCriteria.month.getFullYear());\r\n }\r\n else{\r\n this.handleWarnings(true);\r\n }\r\n break;\r\n case 14: \r\n if(this.validateMonthFields()){\r\n this.handleWarnings(false);\r\n this.downloadAutoDebitExtration();\r\n }\r\n else{\r\n this.handleWarnings(true);\r\n }\r\n break;\r\n case 15: \r\n if(this.validateMonthFields()){\r\n this.handleWarnings(false);\r\n this.downloadAutoUpdateExtration() \r\n }\r\n else{\r\n this.handleWarnings(true);\r\n }\r\n break;\r\n }\r\n \r\n }\r\n private validateMonthFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n let dates: boolean = this.searchCriteria.month !== undefined;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n private handleWarnings(isShowWarnings:boolean):void{\r\n if(isShowWarnings){\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n }\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n else{\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadAutoDebitExtration() {\r\n this.searchCriteria.segmentDetails = \"CBG,IBG,PB,TPC\";\r\n this.presetExportService.summaryInvoiceAutoDebit(\r\n this.searchCriteria.month.getMonth() + 1,\r\n this.searchCriteria.month.getFullYear(),\r\n this.searchCriteria.segmentDetails\r\n ).subscribe((response:any)=>{\r\n if(response && response.body && response.body.d.results){\r\n this.excelTemplateService.downloadautoDebitExtractionReport(\r\n autoDebitColumn,\r\n 'Summary Invoice Auto Debit',\r\n 'AD_'+ new DatePipe('en-US').transform(this.searchCriteria.month, 'MMMMyyyy'),\r\n response.body.d.results\r\n );\r\n }\r\n });\r\n }\r\n\r\n private downloadAutoUpdateExtration() {\r\n this.searchCriteria.segmentDetails = \"CBG,IBG\";\r\n this.presetExportService.autoUpdateDownload(\r\n this.searchCriteria.month.getMonth() + 1,\r\n this.searchCriteria.month.getFullYear(),\r\n this.searchCriteria.segmentDetails\r\n ).subscribe((response:any)=>{\r\n if(response && response.body && response.body.d.results){\r\n this.excelTemplateService.downloadautoUpdateExtractionReport(\r\n autoUpdateColumn,\r\n 'Auto Update Report',\r\n 'AU_'+ new DatePipe('en-US').transform(this.searchCriteria.month, 'MMMMyyyy'),\r\n response.body.d.results\r\n );\r\n }\r\n });\r\n }\r\n}\r\nconst autoDebitColumn:string[]=[\r\n 'SI No',\r\n 'Meridian Sequence No',\r\n 'Policy Certificate No',\r\n 'Master Policy No',\r\n 'Policy No',\r\n 'Entry Date',\r\n 'Gross Premium',\r\n 'GST',\r\n 'Total Premium',\r\n 'Open Item Status',\r\n 'Invoice No',\r\n 'Saved By',\r\n 'BU PC Code',\r\n 'Bank Ref',\r\n 'Insured Name',\r\n 'Effective Date',\r\n 'Expiry Date',\r\n 'Sum Insured',\r\n 'Risk Address',\r\n 'Insured NRIC',\r\n 'Transaction Type',\r\n 'Product',\r\n 'Contract Type',\r\n 'Policy Status',\r\n 'Transaction date', \r\n];\r\nconst autoUpdateColumn:string[]=[\r\n 'SI No',\r\n 'PolicyNumber',\r\n 'BatchId',\r\n 'Financial Institution Branch/BU PC Code',\r\n 'Bank Reference Number',\r\n 'MeridianMasterPolicyNumber',\r\n 'PolicyType',\r\n 'Main Insured Name',\r\n 'Risk Address',\r\n 'Policy Inception/Start Date',\r\n 'Expiry Date',\r\n 'Total Sum Insured',\r\n 'Gross Premium excl. GST',\r\n 'GST on Gross Premium',\r\n 'Total Premium',\r\n 'Transaction Code' \r\n];","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class AutoDebitExtractionSearchCriteria {\r\n\r\n // constructor() {\r\n // this.month = null;\r\n // this.segmentDetails = ''; \r\n // }\r\n\r\n month!: Date;\r\n segmentDetails!: string; \r\n}","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { BankTransSearchCriteria } from \"./bank-trans.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\n\r\n@Component({\r\n selector: \"app-bank-trans\",\r\n templateUrl: \"./bank-trans.component.html\",\r\n styleUrls: [\"./bank-trans.component.scss\"],\r\n})\r\nexport class BankTransComponent extends BaseComponent implements OnInit {\r\n @Output() warningZoneEvent = new EventEmitter();\r\n\r\n @ViewChild(\"reportDateTo\", { static: false })\r\n public reportDateTo!: DatePickerComponent;\r\n\r\n public transDate_min!: Date;\r\n public transDate_max!: Date;\r\n\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n public transactionTypeOption!: Array<{ text: string; value: number }>;\r\n public customerTypes!: Array<{ text: string; value: string }>;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public searchCriteria = new BankTransSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.productRadioControl = \"dbs\";\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.fetchUserList();\r\n } else {\r\n this.showReportType = true;\r\n this.fetchUserList();\r\n }\r\n this.readProductRadio();\r\n this.defaultSearchCriteria();\r\n }\r\n private defaultSearchCriteria() {\r\n // segment dropdownlist options\r\n const segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n this.segmentList = segmentList;\r\n const transactionOption = [\r\n { text: \"New Business\", value: 1 },\r\n { text: \"Endorsement\", value: 2 },\r\n { text: \"Cancellation\", value: 3 },\r\n { text: \"Renewal\", value: 4 },\r\n { text: \"Loan Redemption\", value: 5 },\r\n ];\r\n\r\n this.transactionTypeOption = transactionOption;\r\n const customerTypes = [\r\n { text: \"Citibusiness\", value: \"Citibusiness\" },\r\n { text: \"Commercial\", value: \"Commercial\" },\r\n { text: \"GCB\", value: \"GCB\" },\r\n { text: \"IPB\", value: \"IPB\" },\r\n { text: \"Staff\", value: \"Staff\" },\r\n { text: \"Bridging Loan\", value: \"Bridging Loan\" },\r\n ];\r\n this.customerTypes = customerTypes;\r\n this.defaultBankTransSearchCriteria();\r\n }\r\n private readProductRadio(): void {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n\r\n public onChange_ProductRadio(): void {\r\n this.isCitiProduct = this.productRadioControl === \"citi\" ? true : false;\r\n this.searchCriteria.segments = [];\r\n this.searchCriteria.productIds = [];\r\n this.searchCriteria.productRadio = this.productRadioControl;\r\n this.defaultBankTransSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n public on_transReportDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.effectiveDateFrom === null) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.transDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.transDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.transDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.transDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.transDate_min = value;\r\n this.transDate_max = maxDate;\r\n\r\n // open datepicker\r\n this.reportDateTo.toggle();\r\n this.on_searchOIFrom_focus();\r\n }\r\n private on_searchOIFrom_focus(): void {\r\n if (this.reportDateTo.isOpen) {\r\n this.reportDateTo.toggle();\r\n }\r\n if (this.reportDateTo.isOpen) {\r\n this.reportDateTo.toggle();\r\n }\r\n }\r\n private defaultBankTransSearchCriteria(): void {\r\n // dateFrom: 14 days before today\r\n const dateFrom: Date = new Date();\r\n dateFrom.setDate(dateFrom.getDate() - 14);\r\n this.searchCriteria.dateFrom = dateFrom;\r\n\r\n // dateTo: 6 months after dateFrom\r\n const dateTo: Date = new Date(dateFrom);\r\n dateTo.setMonth(dateTo.getMonth() + 6);\r\n this.searchCriteria.dateTo = dateTo;\r\n\r\n const dt = new Date(new Date().getFullYear(), 0, 1);\r\n const effectiveDateFrom = new Date(\r\n Date.UTC(\r\n dt.getFullYear(),\r\n dt.getMonth(),\r\n dt.getDate(),\r\n dt.getHours(),\r\n dt.getMinutes(),\r\n dt.getSeconds()\r\n )\r\n );\r\n this.searchCriteria.effectiveDateFrom = effectiveDateFrom;\r\n\r\n const effectiveDateTo: Date = new Date(effectiveDateFrom);\r\n effectiveDateTo.setFullYear(effectiveDateFrom.getFullYear() + 1);\r\n this.searchCriteria.effectiveDateTo = effectiveDateTo;\r\n }\r\n public on_DailyreportDateFrom_change(value: Date): void {}\r\n public download(): void {\r\n this.checkDatesRange();\r\n if (this.validateBankTransMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadBankTransReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private validateBankTransMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean =\r\n this.searchCriteria.dateFrom !== null ||\r\n this.searchCriteria.dateTo !== null;\r\n\r\n isValid = dates; // || etc...\r\n\r\n return isValid;\r\n }\r\n private checkDatesRange(): void {\r\n if (\r\n this.searchCriteria.dateFrom !== null &&\r\n this.searchCriteria.dateTo === null\r\n ) {\r\n this.searchCriteria.dateTo = this.searchCriteria.dateFrom;\r\n }\r\n }\r\n private getFileName(): string {\r\n let reportTitle = \"\";\r\n if (this.searchCriteria.dateFrom === this.searchCriteria.dateTo) {\r\n reportTitle += \" on \" + this.formatDate(this.searchCriteria.dateFrom);\r\n } else {\r\n reportTitle +=\r\n \" from \" +\r\n this.formatDate(this.searchCriteria.dateFrom) +\r\n \" to \" +\r\n this.formatDate(this.searchCriteria.dateTo);\r\n }\r\n return reportTitle;\r\n }\r\n private formatDate(date: Date): string {\r\n return (\r\n date.getDate().toString() +\r\n \"/\" +\r\n (date.getMonth() + 1).toString() +\r\n \"/\" +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n private downloadBankTransReport(): void {\r\n if (this.productRadioControl === \"dbs\") {\r\n this.presetExportService\r\n .bankTransaction(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.segments,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (response && response.body && response.body.d.results) {\r\n this.excelTemplateService.downloadBankTransDBSReport(\r\n bankTransDBSColumn,\r\n \"Bank Trans\",\r\n \"Bank Trans DBS\" + this.getFileName(),\r\n response.body.d.results\r\n );\r\n }\r\n });\r\n } else {\r\n this.presetExportService\r\n .bankTransactionCiti(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.productIds,\r\n this.searchCriteria.productRadio,\r\n this.searchCriteria.effectiveDateFrom,\r\n this.searchCriteria.effectiveDateTo,\r\n this.searchCriteria.transactionType,\r\n this.searchCriteria.customerType,\r\n this.searchCriteria.policyStatus\r\n )\r\n .subscribe((response: any) => {\r\n if (response && response.body && response.body.d.results) {\r\n this.excelTemplateService.downloadBankTransCITIReport(\r\n bankTransCITYColumn,\r\n \"Bank Trans\",\r\n \"Bank Trans Citi\" + this.getFileName(),\r\n response.body.d.results\r\n );\r\n }\r\n });\r\n }\r\n }\r\n}\r\nconst bankTransDBSColumn: string[] = [\r\n \"S/N\",\r\n \"Financial Institution Branch\",\r\n \"Master Policy No\",\r\n \"Agent No\",\r\n \"Agent Name\",\r\n \"Contract Type\",\r\n \"Contract No\",\r\n \"Reference No\",\r\n \"Original Inception Date\",\r\n \"Contract Commencement Date\",\r\n \"Expiry Date\",\r\n \"Client No\",\r\n \"Client Surname\",\r\n \"Client Given Name\",\r\n \"Client Identification No\",\r\n \"Client Address\",\r\n \"Risk No\",\r\n \"Location of Risk\",\r\n \"Total Sum Insured\",\r\n \"Gross Premium\" /*new*/,\r\n \"GST Amount\",\r\n \"Total Premium\" /*Gross Premium -> Total Premium*/,\r\n \"Commission Rate\" /*new*/,\r\n \"Commission excl. GST\" /*Commission Amount -> Commission excl. GST*/,\r\n \"GST on Commission\" /*new*/,\r\n \"Premium Net Off Comm\" /*new*/,\r\n \"GST on Premium Net Off Comm\" /*new*/,\r\n \"Discount Amount\",\r\n \"Net Premium\",\r\n \"Transaction Code\",\r\n \"Transaction Code Desc\",\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n \"Quote No\",\r\n \"MSIG Number\",\r\n \"Insured NRIC\",\r\n \"Entry Date\",\r\n \"Endorsement Effective Date\",\r\n \"Status\",\r\n \"Saved By\",\r\n \"Cheque Issuance Bank\",\r\n \"Cheque No\",\r\n \"Payment Mode\",\r\n \"Free Insurance\",\r\n \"No of Years Free\",\r\n \"Machinery Type\",\r\n \"Property Type\",\r\n \"Remarks\",\r\n \"Dwelling/Occupancy\",\r\n \"Maker's ID\",\r\n \"Makers Date/Time\",\r\n \"Checker's ID\",\r\n \"Checkers Date/Time\",\r\n];\r\nconst bankTransCITYColumn: string[] = [\r\n \"S/N\",\r\n \"Customer Type\",\r\n \"Master Policy Number\",\r\n \"Contract Type\",\r\n \"Premium Payment\",\r\n \"Policy Number\",\r\n \"Plan Type\",\r\n \"Collateral Number\",\r\n \"Client Number\",\r\n \"Client Surname\",\r\n \"Client Given Name\",\r\n \"Client Identification Number\",\r\n \"Client Address\",\r\n \"Mobile Number\",\r\n \"Email Address\",\r\n \"Additional Client Name\",\r\n \"Additional Client NRIC\",\r\n \"Preferred Delivery Mode\",\r\n \"Preferred Delivery Details\",\r\n \"FRV/OLV\",\r\n \"FRV/OLV Value\",\r\n \"Code\",\r\n \"Inception Date\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n \"Transaction Type\",\r\n \"Property Type\",\r\n \"Remarks\",\r\n \"Dwelling/Occupancy\",\r\n \"Policy Status\",\r\n \"Transaction Date\",\r\n \"Transacted By\",\r\n \"Payment History Status\",\r\n \"AD Week\",\r\n \"Open Audit Number\",\r\n \"Gross Premium\",\r\n \"Discount Offered By Citi\",\r\n \"Premium Discount By Citi\",\r\n \"Nett Premium Billed To Customer\",\r\n \"GST on Premium\",\r\n \"Premium To Be Collected From Customer\",\r\n \"Commission Rate\",\r\n \"Commission Amount\",\r\n \"Nett Comm Offset With Discount\",\r\n \"GST on Commission\",\r\n \"Commission Payable\",\r\n \"Amt Due to Chubb\",\r\n];\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class BankTransSearchCriteria {\r\n\r\n constructor() {\r\n // this.dateFrom = null;\r\n // this.dateTo = null;\r\n // this.effectiveDateFrom = null;\r\n // this.effectiveDateTo = null;\r\n this.segments = [];\r\n this.productIds = [];\r\n this.customerType = [];\r\n this.transactionType = [];\r\n this.policyStatus = [];\r\n this.productRadio = '';\r\n }\r\n productRadio: string;\r\n dateFrom!: Date;\r\n dateTo!: Date;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n segments: Array;\r\n productIds: Array;\r\n customerType: Array;\r\n transactionType: Array;\r\n policyStatus: Array;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n ViewChild,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { CbgDailyDownloadSearchCriteria } from \"./cbg-daily-download.model\";\r\n@Component({\r\n selector: \"app-cbg-daily-download\",\r\n templateUrl: \"./cbg-daily-download.component.html\",\r\n})\r\nexport class CbgDailyDownloadComponent extends BaseComponent implements OnInit {\r\n @ViewChild(\"dailyReportDateTo\", { static: false })\r\n public dailyReportDateTo!: DatePickerComponent;\r\n public dailyReportDate_min!: Date;\r\n public dailyReportDate_max!: Date;\r\n @Input() presetReportType!: number;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new CbgDailyDownloadSearchCriteria();\r\n public userTeamOptions!: Array<{ text: string; value: number }>;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n public isCitiProduct: boolean = false;\r\n public userProductList!: IProduct[];\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.fetchUserList();\r\n this.defaultCbgDailyDownloadSearchCriteria();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.searchCriteria = new CbgDailyDownloadSearchCriteria();\r\n this.defaultCbgDailyDownloadSearchCriteria();\r\n }\r\n private defaultCbgDailyDownloadSearchCriteria(): void {\r\n // today\r\n\r\n const dateFrom: Date = new Date();\r\n dateFrom.setDate(dateFrom.getDate() - 14);\r\n this.searchCriteria.dateFrom = dateFrom;\r\n\r\n // dateTo: 6 months after dateFrom\r\n const dateTo: Date = new Date(dateFrom);\r\n dateTo.setMonth(dateTo.getMonth() + 6);\r\n this.searchCriteria.dateTo = dateTo;\r\n //segments\r\n this.segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n // User Team\r\n this.userTeamOptions = [\r\n { text: \"CBG-Customer Solutions\", value: 4 },\r\n { text: \"Loan Document\", value: 1 },\r\n { text: \"Loan Records\", value: 2 },\r\n { text: \"Loan Servicing\", value: 3 },\r\n { text: \"Maker & Checker\", value: 6 },\r\n { text: \"NA\", value: 5 },\r\n ];\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n public on_dailyReportDateFrom_change(value: any): void {\r\n if (this.searchCriteria.dateFrom === null) {\r\n this.searchCriteria.dateTo = undefined;\r\n this.dailyReportDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.dailyReportDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.dateTo &&\r\n this.searchCriteria.dateFrom &&\r\n this.searchCriteria.dateTo < this.searchCriteria.dateFrom\r\n ) {\r\n this.searchCriteria.dateTo = undefined;\r\n this.dailyReportDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.dailyReportDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.dailyReportDate_min = value;\r\n this.dailyReportDate_max = maxDate;\r\n\r\n // open datepicker\r\n this.dailyReportDateTo.toggle();\r\n }\r\n private validateCbgDailyDlMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean = this.searchCriteria.dateFrom !== null;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n public download(): void {\r\n if (this.validateCbgDailyDlMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadCbgDailyDownloadReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private formatDate(date: Date | undefined, dateTo: Date | undefined): string {\r\n if (date && dateTo) {\r\n return (\r\n date.getDate().toString() +\r\n \"/\" +\r\n (date.getMonth() + 1).toString() +\r\n \"/\" +\r\n date.getFullYear().toString() +\r\n \" to \" +\r\n dateTo.getDate().toString() +\r\n \"/\" +\r\n (dateTo.getMonth() + 1).toString() +\r\n \"/\" +\r\n dateTo.getFullYear().toString()\r\n );\r\n } else return \"\";\r\n }\r\n private downloadCbgDailyDownloadReport(): void {\r\n let reportTitle = \"\";\r\n switch (this.presetReportType) {\r\n case 1:\r\n reportTitle = \"Daily NB Download\";\r\n this.presetExportService\r\n .newBusinessCBGDailyDownload(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.segments,\r\n this.searchCriteria.userTeams,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n this.excelTemplateService.downloadDailyCbgDownloadReport(\r\n dailyCbgDownloadReportColumn,\r\n \"CBG Daily Download\",\r\n reportTitle +\r\n \" from \" +\r\n this.formatDate(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo\r\n ),\r\n response.body.d.results\r\n );\r\n });\r\n break;\r\n case 2:\r\n reportTitle = \"Daily EN Download\";\r\n this.presetExportService\r\n .endorsementCBGDailyDownload(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.segments,\r\n this.searchCriteria.userTeams,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n this.excelTemplateService.downloadDailyCbgDownloadReport(\r\n dailyCbgDownloadReportColumn,\r\n \"CBG Daily Download\",\r\n reportTitle +\r\n \" from \" +\r\n this.formatDate(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo\r\n ),\r\n response.body.d.results\r\n );\r\n });\r\n break;\r\n case 3:\r\n reportTitle = \"Daily CA Download\";\r\n this.presetExportService\r\n .cancellationCBGDailyDownload(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.segments,\r\n this.searchCriteria.userTeams,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n this.excelTemplateService.downloadDailyCbgDownloadReport(\r\n dailyCbgDownloadReportColumn,\r\n \"CBG Daily Download\",\r\n reportTitle +\r\n \" from \" +\r\n this.formatDate(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo\r\n ),\r\n response.body.d.results\r\n );\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\nconst dailyCbgDownloadReportColumn: string[] = [\r\n \"S/N\",\r\n \"Financial Institution Branch\",\r\n \"Master Policy No\",\r\n \"Product Type\",\r\n \"Policy No\",\r\n \"Contract No\",\r\n \"Quote No\",\r\n \"Status\",\r\n \"Insured Name\",\r\n \"NRIC\",\r\n \"Situation\",\r\n \"City / Suburb\",\r\n \"Country\",\r\n \"Postal Code\",\r\n \"Sum Insured\",\r\n \"Gross Premium\",\r\n \"GST\",\r\n \"Total Premium\",\r\n \"Bank Reference\",\r\n \"Bound Date\",\r\n \"Effective Date\",\r\n \"Inception Date\",\r\n \"Expiry Date\",\r\n \"Maker's ID\",\r\n \"Date / Time\",\r\n \"Checker's ID\",\r\n \"Date / Time\",\r\n \"Status\",\r\n \"Remarks\",\r\n \"Refund Status\",\r\n \"Transaction Code Desc\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class CbgDailyDownloadSearchCriteria {\r\n constructor() {\r\n //this.dateFrom = null;\r\n //this.dateTo = null;\r\n this.segments = [];\r\n this.userTeams = [];\r\n this.productIds = [];\r\n }\r\n\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n segments: Array;\r\n userTeams: Array;\r\n productIds: Array;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { CitiMonthlyReportSearchCriteria } from \"./citi-monthly-report.model\";\r\nimport { proposalCommon } from \"./../../../base/utils/proposal-common\";\r\n\r\n@Component({\r\n selector: \"app-citi-monthly-report\",\r\n templateUrl: \"./citi-monthly-report.component.html\",\r\n})\r\nexport class CitiMonthlyReportComponent\r\n extends BaseComponent\r\n implements OnInit\r\n{\r\n @Output() warningZoneEvent = new EventEmitter();\r\n @ViewChild(\"reportCitiMonthlyDateTo\", { static: false })\r\n public reportCitiMonthlyDateTo!: DatePickerComponent;\r\n public reportCitiMonthlyDate_min!: Date;\r\n public reportCitiMonthlyDate_max!: Date;\r\n public searchCriteria = new CitiMonthlyReportSearchCriteria();\r\n public transactionTypeOption!: Array<{ text: string; value: number }>;\r\n public customerTypes!: Array<{ text: string; value: string }>;\r\n public userProductList!: IProduct[];\r\n public isCitiProduct: boolean = true;\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n\r\n override ngOnInit(): void {\r\n this.defaultCitiMonthlyReportSearchCriteria();\r\n this.fetchUserList();\r\n }\r\n private defaultCitiMonthlyReportSearchCriteria(): void {\r\n this.transactionTypeOption = [\r\n { text: \"New Business\", value: 1 },\r\n { text: \"Active\", value: 2 },\r\n { text: \"Cancellation\", value: 3 },\r\n ];\r\n this.customerTypes = [\r\n { text: \"Citibusiness\", value: \"Citibusiness\" },\r\n { text: \"Commercial\", value: \"Commercial\" },\r\n { text: \"GCB\", value: \"GCB\" },\r\n { text: \"IPB\", value: \"IPB\" },\r\n { text: \"Staff\", value: \"Staff\" },\r\n { text: \"Bridging Loan\", value: \"Bridging Loan\" },\r\n ];\r\n\r\n // dateFrom: 14 days before today\r\n const dateFrom: Date = new Date();\r\n dateFrom.setDate(dateFrom.getDate() - 14);\r\n this.searchCriteria.dateFrom = dateFrom;\r\n\r\n // dateTo: 6 months after dateFrom\r\n const dateTo: Date = new Date(dateFrom);\r\n dateTo.setMonth(dateTo.getMonth() + 6);\r\n this.searchCriteria.dateTo = dateTo;\r\n\r\n /*2022-08-18 dagoh0: APACDM-1660 - Default a transaction Type */\r\n this.searchCriteria.transactionType = 1;\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n public on_citiMonthlyReportDateFrom_change(val: any): void {\r\n if (this.searchCriteria.dateFrom === null) {\r\n this.searchCriteria.dateTo = undefined;\r\n this.reportCitiMonthlyDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.reportCitiMonthlyDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n\r\n if (\r\n this.searchCriteria.dateTo &&\r\n this.searchCriteria.dateFrom &&\r\n this.searchCriteria.dateTo < this.searchCriteria.dateFrom\r\n ) {\r\n this.searchCriteria.dateTo = undefined;\r\n this.reportCitiMonthlyDate_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.reportCitiMonthlyDate_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n\r\n // open datepicker\r\n this.reportCitiMonthlyDateTo.toggle();\r\n }\r\n private validateCitiMonthlyMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n\r\n /*2022-08-18 dagoh0: APACDM-1660 - change to validated selected filter */\r\n const filterSelected: boolean =\r\n this.searchCriteria.dateFrom !== null ||\r\n this.searchCriteria.dateTo !== null ||\r\n this.searchCriteria.transactionType !== null;\r\n\r\n isValid = filterSelected; // || etc...\r\n\r\n return isValid;\r\n }\r\n public download(): void {\r\n if (this.validateCitiMonthlyMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadCitiMonthlyReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range & Transaction Type.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private formatDate(date?: Date): string {\r\n if (date)\r\n return (\r\n proposalCommon.translateMonth(date.getMonth() + 1) +\r\n \"_\" +\r\n date.getFullYear().toString().substring(-2)\r\n );\r\n else return \"\";\r\n }\r\n private downloadCitiMonthlyReport() {\r\n this.presetExportService\r\n .monthlyReportCiti(\r\n this.searchCriteria.dateFrom,\r\n this.searchCriteria.dateTo,\r\n this.searchCriteria.productIds,\r\n this.searchCriteria.transactionType.toString(),\r\n this.searchCriteria.customerType,\r\n this.searchCriteria.policyStatus\r\n )\r\n .subscribe((response: any) => {\r\n if (response && response.body && response.body.d.results) {\r\n switch (this.searchCriteria.transactionType.toString()) {\r\n case \"1\":\r\n this.excelTemplateService.downloadCitiMonthlyNewBusinessReport(\r\n citiNewBusinessColumn,\r\n \"Bank Trans Citi\",\r\n \"citi\" +\r\n \" Monthly \" +\r\n \"New Business\" +\r\n \" - \" +\r\n this.formatDate(this.searchCriteria.dateFrom),\r\n response.body.d.results\r\n );\r\n break;\r\n case \"2\":\r\n this.excelTemplateService.downloadCitiMonthlyActiveReport(\r\n citiActiveColumn,\r\n \"Bank Trans Citi\",\r\n \"citi\" +\r\n \" Monthly \" +\r\n \"Active\" +\r\n \" - \" +\r\n this.formatDate(this.searchCriteria.dateFrom),\r\n response.body.d.results\r\n );\r\n break;\r\n case \"3\":\r\n this.excelTemplateService.downloadCitiMonthlyCancellationReport(\r\n citiCancellationColumn,\r\n \"Bank Trans Citi\",\r\n \"citi\" +\r\n \" Monthly \" +\r\n \"Cancellation\" +\r\n \" - \" +\r\n this.formatDate(this.searchCriteria.dateFrom),\r\n response.body.d.results\r\n );\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n}\r\nconst citiNewBusinessColumn: string[] = [\r\n \"Product Name\",\r\n \"Customer Type\",\r\n \"Client Name\",\r\n \"Policy Number\",\r\n\r\n \"Policy Effective Date\",\r\n \"Policy Expiry Date\",\r\n \"Policy Bound Date\",\r\n \"Collateral Number\",\r\n\r\n \"Master Policy Number\",\r\n \"Issued by\",\r\n \"Occupied as\",\r\n \"Fire Replacement Value\",\r\n \"Transaction Desciption\",\r\n \"Plan Type\",\r\n \"Premium Payment\",\r\n\r\n \"Risk insured Address building\",\r\n \"Risk insured Address lotunit\",\r\n \"Risk insured Address 1\",\r\n \"Risk insured Address 2\",\r\n \"Risk insured Address City\",\r\n \"Risk insured Address Country\",\r\n \"Risk insured Address PostalCode\",\r\n\r\n \"Base Premium\",\r\n \"GST\",\r\n \"Total Premium\",\r\n \"Sum Insured\",\r\n \"Discount\",\r\n];\r\nconst citiActiveColumn: string[] = [\r\n \"Product Name\",\r\n \"Customer Type\",\r\n \"Client Name\",\r\n \"Policy Number\",\r\n\r\n \"Policy Effective Date\",\r\n \"Policy Expiry Date\",\r\n \"Policy Bound Date\",\r\n \"Policy Status\",\r\n \"Collateral Number\",\r\n\r\n \"Risk insured Address building\",\r\n \"Risk insured Address lotunit\",\r\n \"Risk insured Address 1\",\r\n \"Risk insured Address 2\",\r\n \"Risk insured Address City\",\r\n \"Risk insured Address Country\",\r\n \"Risk insured Address PostalCode\",\r\n\r\n \"Base Premium\",\r\n \"GST\",\r\n \"Total Premium\",\r\n \"Sum Insured\",\r\n \"Discount\",\r\n];\r\nconst citiCancellationColumn: string[] = [\r\n \"Product Name\",\r\n \"Customer Type\",\r\n \"Client Name\",\r\n \"Policy Number\",\r\n\r\n \"Policy Effective Date\",\r\n \"Policy Expiry Date\",\r\n \"Policy Bound Date\",\r\n \"Cancellation Effective Date\",\r\n \"Collateral Number\",\r\n\r\n \"Master Policy Number\",\r\n \"Issued by\",\r\n \"Occupied as\",\r\n \"Fire Replacement Value\",\r\n \"Remark\",\r\n \"Transaction Desciption\",\r\n \"Plan Type\",\r\n \"Premium Payment\",\r\n\r\n \"Risk insured Address building\",\r\n \"Risk insured Address lotunit\",\r\n \"Risk insured Address 1\",\r\n \"Risk insured Address 2\",\r\n \"Risk insured Address City\",\r\n \"Risk insured Address Country\",\r\n \"Risk insured Address PostalCode\",\r\n\r\n \"Base Premium\",\r\n \"GST\",\r\n \"Total Premium\",\r\n \"Sum Insured\",\r\n \"Discount\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class CitiMonthlyReportSearchCriteria {\r\n constructor() {\r\n //this.dateFrom = null;\r\n //this.dateTo = null;\r\n this.segments = [];\r\n this.productIds = [];\r\n this.customerType = [];\r\n //this.transactionType = [];\r\n this.policyStatus = [];\r\n }\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n segments: Array;\r\n productIds: Array;\r\n customerType: Array;\r\n transactionType!: number;\r\n policyStatus: Array;\r\n}\r\n","import { Component, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { Day } from \"@progress/kendo-date-math\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { CitiWeeklyInvoiceSearchCriteria } from \"./citi-weekly-invoice.model\";\r\n\r\n@Component({\r\n selector: \"app-citi-weekly-invoice\",\r\n templateUrl: \"./citi-weekly-invoice.component.html\",\r\n})\r\nexport class CitiWeeklyInvoiceComponent implements OnInit {\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public transactionTypeOption!: Array<{ text: string; value: number }>;\r\n public disabledDates: Day[] = [\r\n Day.Saturday,\r\n Day.Sunday,\r\n Day.Tuesday,\r\n Day.Wednesday,\r\n Day.Thursday,\r\n Day.Friday,\r\n ];\r\n public searchCriteria = new CitiWeeklyInvoiceSearchCriteria();\r\n constructor(private presetExportService: PresetExportService) {}\r\n ngOnInit(): void {\r\n this.defaultSearchCriteria();\r\n }\r\n private defaultSearchCriteria(): void {\r\n // default to first option\r\n this.transactionTypeOption = [\r\n { text: \"New Business\", value: 1 },\r\n { text: \"Endorsement\", value: 2 },\r\n { text: \"Cancellation\", value: 3 },\r\n { text: \"Renewal\", value: 4 },\r\n { text: \"Loan Redemption\", value: 5 },\r\n ];\r\n }\r\n private validateCitiMonthlyMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n if (\r\n this.searchCriteria.transactionType !== null &&\r\n this.searchCriteria.transactionType !== 0 &&\r\n this.searchCriteria.ADWeek !== null\r\n ) {\r\n isValid = true;\r\n }\r\n return isValid;\r\n }\r\n\r\n public on_SummaryAutoDebitWeekChange(val: any): void {}\r\n public download(): void {\r\n if (this.validateCitiMonthlyMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadCitiWeeklyInvoiceReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select both AD Week & Transaction Type\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadCitiWeeklyInvoiceReport() {\r\n this.presetExportService.citiWeeklyInvoiceReport(\r\n this.searchCriteria.ADWeek,\r\n this.searchCriteria.transactionType\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class CitiWeeklyInvoiceSearchCriteria {\r\n constructor() {\r\n //this.ADWeek = null;\r\n this.transactionType = 0;\r\n }\r\n ADWeek!: Date;\r\n transactionType: number;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { PrintDocumentSearchCriteria } from \"./print-document-report.model\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport { PrintDocumentEntity } from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-print-document-report\",\r\n templateUrl: \"./print-document-report.component.html\",\r\n styleUrls: [\"./print-document-report.component.scss\"],\r\n})\r\nexport class PrintDocumentReportComponent\r\n extends BaseComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"boundDateTo\", { static: false })\r\n public boundDateTo!: DatePickerComponent;\r\n\r\n public boundDateTo_min!: Date;\r\n public boundDateTo_max!: Date;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new PrintDocumentSearchCriteria();\r\n public documentChannels!: Array<{ text: string; value: number }>;\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: PrintDocumentEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.documentChannels = [\r\n { text: \"All\", value: 0 },\r\n { text: \"DP link CBG\", value: 1 },\r\n { text: \"DP link IBG\", value: 2 },\r\n { text: \"DP link Reprint\", value: 3 },\r\n { text: \"Email\", value: 4 },\r\n { text: \"Both Email and Mail\", value: 5 },\r\n { text: \"No Print\", value: 6 },\r\n { text: \"Not Sent\", value: 7 },\r\n { text: \"SMS\", value: 8 },\r\n ];\r\n\r\n this.productRadioControl = \"dbs\";\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.readProductRadio();\r\n } else {\r\n this.showReportType = true;\r\n }\r\n this.fetchUserList();\r\n this.defaultPrintDocumentSearchCriteria();\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private defaultPrintDocumentSearchCriteria(): void {\r\n const boundDateFrom: Date = new Date();\r\n boundDateFrom.setDate(boundDateFrom.getDate() - 14);\r\n this.searchCriteria.boundDateFrom = boundDateFrom;\r\n\r\n // dateTo: 6 months after dateFrom\r\n const boundDateTo: Date = new Date(boundDateFrom);\r\n boundDateTo.setMonth(boundDateTo.getMonth() + 6);\r\n this.searchCriteria.boundDateTo = boundDateTo;\r\n\r\n //this.printDocumentGrid.dataSource.data([]);\r\n\r\n let isValidField: boolean = false;\r\n isValidField = this.validatePrintDocumentFields();\r\n if (isValidField) {\r\n this.refresh();\r\n }\r\n }\r\n private validatePrintDocumentFields(): boolean {\r\n let isValid: boolean = false;\r\n //// dates\r\n const dates: boolean = this.searchCriteria.boundDateFrom !== null;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n public onChange_ProductRadio(): void {\r\n this.searchCriteria = new PrintDocumentSearchCriteria();\r\n this.isCitiProduct = this.productRadioControl === \"citi\" ? true : false;\r\n this.searchCriteria.productRadio = this.productRadioControl;\r\n this.defaultPrintDocumentSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n }\r\n public on_boundDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.boundDateFrom === null) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.boundDateTo &&\r\n this.searchCriteria.boundDateFrom &&\r\n this.searchCriteria.boundDateTo < this.searchCriteria.boundDateFrom\r\n ) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.boundDateTo_min = value;\r\n this.boundDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.boundDateTo.toggle();\r\n }\r\n public download(): void {\r\n if (this.validatePrintDocumentFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadPrintDocumentReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"boundDateFrom\", \"eq\", this.searchCriteria.boundDateFrom],\r\n [\"boundDateTo\", \"eq\", this.searchCriteria.boundDateTo],\r\n [\"productRadio\", \"eq\", this.productRadioControl],\r\n [\"channelTypeID\", \"eq\", this.searchCriteria.channelTypeID],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"insuredName\", \"eq\", this.searchCriteria.insuredName],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService.printDocumentReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n public search(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validatePrintDocumentFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadPrintDocumentReport() {\r\n this.searchCriteria.productRadio = this.isCitiProduct ? \"citi\" : \"dbs\";\r\n this.presetExportService\r\n .printDocumentReport(\r\n this.searchCriteria.productRadio,\r\n this.searchCriteria.channelTypeID,\r\n this.searchCriteria.boundDateFrom,\r\n this.searchCriteria.boundDateTo,\r\n this.searchCriteria.policyNo,\r\n this.searchCriteria.insuredName,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadPrintDocumentReport(\r\n printReportColumn,\r\n \"Print Document Report\",\r\n \"Print Report \",\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n}\r\nconst printReportColumn: string[] = [\r\n \"Product\",\r\n \"Policy Number\",\r\n \"Document Type\",\r\n \"Transaction Bound Date\",\r\n \"Transacted By User Name\",\r\n \"Saved By Organisation\",\r\n \"Channel of doc\",\r\n \"Correspondence Address\",\r\n \"Print Type\",\r\n \"Date To DDS\",\r\n \"Email\",\r\n \"Mobile Number\",\r\n \"EP2 Delivery Status\",\r\n \"EP2 Reason of Failure\",\r\n \"Live/Offline Mode\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class PrintDocumentSearchCriteria {\r\n constructor() {\r\n this.productRadio = \"dbs\";\r\n this.channelTypeID = 0;\r\n // this.boundDateFrom = null;\r\n // this.boundDateTo = null;\r\n // this.policyNo = null;\r\n // this.insuredName = null;\r\n this.productIds = [];\r\n }\r\n productRadio: string;\r\n channelTypeID: number;\r\n boundDateFrom?: Date;\r\n boundDateTo?: Date;\r\n policyNo?: string;\r\n insuredName?: string;\r\n productIds: Array;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { DataPostPrintSearchCriteria } from \"./print-datapost.model\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport { DataPostPrintEntity } from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-print-datapost-report\",\r\n templateUrl: \"./print-datapost.component.html\",\r\n styleUrls: [\"./print-datapost.component.scss\"],\r\n})\r\nexport class PrintDatapostReportComponent\r\n extends BaseComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"boundDateTo\", { static: false })\r\n public boundDateTo!: DatePickerComponent;\r\n\r\n public boundDateTo_min!: Date;\r\n public boundDateTo_max!: Date;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new DataPostPrintSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: DataPostPrintEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.productRadioControl = \"dbs\";\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.readProductRadio();\r\n } else {\r\n this.showReportType = true;\r\n }\r\n this.fetchUserList();\r\n this.defaultDataPostPrintSearchCriteria();\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private defaultDataPostPrintSearchCriteria(): void {\r\n const boundDateFrom: Date = new Date();\r\n boundDateFrom.setDate(boundDateFrom.getDate() - 14);\r\n this.searchCriteria.boundDateFrom = boundDateFrom;\r\n\r\n // dateTo: 6 months after dateFrom\r\n const boundDateTo: Date = new Date(boundDateFrom);\r\n boundDateTo.setMonth(boundDateTo.getMonth() + 6);\r\n this.searchCriteria.boundDateTo = boundDateTo;\r\n\r\n //this.printDocumentGrid.dataSource.data([]);\r\n\r\n let isValidField: boolean = false;\r\n isValidField = this.validateDataPostPrintFields();\r\n if (isValidField) {\r\n this.refresh();\r\n }\r\n }\r\n private validateDataPostPrintFields(): boolean {\r\n let isValid: boolean = false;\r\n //// dates\r\n const dates: boolean = this.searchCriteria.boundDateFrom !== null;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n public onChange_ProductRadio(): void {\r\n this.searchCriteria = new DataPostPrintSearchCriteria();\r\n this.isCitiProduct = this.productRadioControl === \"citi\" ? true : false;\r\n this.searchCriteria.productRadio = this.productRadioControl;\r\n this.defaultDataPostPrintSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n }\r\n public on_boundDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.boundDateFrom === null) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.boundDateTo &&\r\n this.searchCriteria.boundDateFrom &&\r\n this.searchCriteria.boundDateTo < this.searchCriteria.boundDateFrom\r\n ) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.boundDateTo_min = value;\r\n this.boundDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.boundDateTo.toggle();\r\n }\r\n public download(): void {\r\n if (this.validateDataPostPrintFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadDataPostPrintReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"boundDateFrom\", \"eq\", this.searchCriteria.boundDateFrom],\r\n [\"boundDateTo\", \"eq\", this.searchCriteria.boundDateTo],\r\n [\"productRadio\", \"eq\", this.productRadioControl],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"insuredName\", \"eq\", this.searchCriteria.insuredName],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService.printDatapostReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n public search(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validateDataPostPrintFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadDataPostPrintReport() {\r\n this.searchCriteria.productRadio = this.isCitiProduct ? \"citi\" : \"dbs\";\r\n this.presetExportService\r\n .printDatapostReport(\r\n this.searchCriteria.productRadio,\r\n this.searchCriteria.boundDateFrom,\r\n this.searchCriteria.boundDateTo,\r\n this.searchCriteria.policyNo,\r\n this.searchCriteria.insuredName,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadDataPostPrintReport(\r\n printDatapostColumn,\r\n \"DataPost Document Print Report\",\r\n \"DataPost Document Print Report\",\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n}\r\nconst printDatapostColumn: string[] = [\r\n \"Type\",\r\n \"Name Of Folder\",\r\n \"Link\",\r\n \"No.Of Pages\",\r\n \"Combine PDF Name\",\r\n \"Product\",\r\n \"Policy Number\",\r\n \"Document Type\",\r\n \"Transaction Bound Date\",\r\n \"Transacted By User Name\",\r\n \"Saved By Organisation\",\r\n \"Channel Of Doc\",\r\n \"Correspondence Address\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class DataPostPrintSearchCriteria {\r\n constructor() {\r\n this.productRadio = \"dbs\";\r\n //this.boundDateFrom = null;\r\n //this.boundDateTo = null;\r\n //this.policyNo = null;\r\n //this.insuredName = null;\r\n //this.productIds = [];\r\n }\r\n productRadio: string;\r\n boundDateFrom?: Date;\r\n boundDateTo?: Date;\r\n policyNo!: string;\r\n insuredName!: string;\r\n productIds!: Array;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { LSTSearchCriteria } from \"./ibg-reinsurance-report.model\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport { LSTEntity } from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-lst-report\",\r\n templateUrl: \"./ibg-reinsurance-report.component.html\",\r\n styleUrls: [\"./ibg-reinsurance-report.component.scss\"],\r\n})\r\nexport class LstReportComponent extends BaseComponent implements OnInit {\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"boundDateTo\", { static: false })\r\n public boundDateTo!: DatePickerComponent;\r\n\r\n public boundDateTo_min!: Date;\r\n public boundDateTo_max!: Date;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new LSTSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: LSTEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n public transactionTypeOption!: Array<{ text: string; value: number }>;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.productRadioControl = \"dbs\";\r\n this.transactionTypeOption = [\r\n { text: \"New Business\", value: 1 },\r\n { text: \"Endorsement\", value: 2 },\r\n { text: \"Cancellation\", value: 3 },\r\n { text: \"Renewal\", value: 4 },\r\n ];\r\n\r\n this.fetchUserList();\r\n this.defaultLSTReportSearchCriteria();\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private defaultLSTReportSearchCriteria(): void {\r\n const dt = new Date(new Date().getFullYear(), 0, 1);\r\n const effectiveDateFrom = new Date(\r\n Date.UTC(\r\n dt.getFullYear(),\r\n dt.getMonth(),\r\n dt.getDate(),\r\n dt.getHours(),\r\n dt.getMinutes(),\r\n dt.getSeconds()\r\n )\r\n );\r\n\r\n this.searchCriteria.effectiveDateFrom = effectiveDateFrom;\r\n\r\n const effectiveDateTo: Date = new Date(effectiveDateFrom);\r\n effectiveDateTo.setFullYear(effectiveDateFrom.getFullYear() + 1);\r\n this.searchCriteria.effectiveDateTo = effectiveDateTo;\r\n let isValidField: boolean = false;\r\n isValidField = this.validateLSTMandatoryFields();\r\n if (isValidField) {\r\n this.refresh();\r\n }\r\n }\r\n private validateLSTInputFields(): boolean {\r\n const pattern1 = \"[0-9]\";\r\n const pattern2 = \"(?=.*[!@#$%^&*?])\";\r\n if (\r\n this.searchCriteria.insuredName !== null &&\r\n this.searchCriteria.insuredName !== \"\" &&\r\n (new RegExp(pattern1).test(this.searchCriteria.insuredName) ||\r\n new RegExp(pattern2).test(this.searchCriteria.insuredName))\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\r\n this.searchCriteria.policyNo !== null &&\r\n this.searchCriteria.policyNo !== \"\" &&\r\n new RegExp(pattern2).test(this.searchCriteria.policyNo)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n private validateLSTMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean =\r\n this.searchCriteria.effectiveDateFrom !== null &&\r\n this.searchCriteria.effectiveDateTo !== null;\r\n isValid = dates;\r\n return isValid;\r\n }\r\n\r\n public on_boundDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.boundDateFrom === null) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.boundDateTo &&\r\n this.searchCriteria.boundDateFrom &&\r\n this.searchCriteria.boundDateTo < this.searchCriteria.boundDateFrom\r\n ) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.boundDateTo_min = value;\r\n this.boundDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.boundDateTo.toggle();\r\n }\r\n public download(): void {\r\n if (this.validateLSTMandatoryFields()) {\r\n if (this.validateLSTInputFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadLSTReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please provide valid data to search.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"effectiveDateFrom\", \"eq\", this.searchCriteria.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"eq\", this.searchCriteria.effectiveDateTo],\r\n [\"boundDateFrom\", \"eq\", this.searchCriteria.boundDateFrom],\r\n [\"boundDateTo\", \"eq\", this.searchCriteria.boundDateTo],\r\n [\"startDateFrom\", \"eq\", this.searchCriteria.startDateFrom],\r\n [\"startDateTo\", \"eq\", this.searchCriteria.startDateTo],\r\n [\"expiryDateFrom\", \"eq\", this.searchCriteria.expiryDateFrom],\r\n [\"expiryDateTo\", \"eq\", this.searchCriteria.expiryDateTo],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"insuredName\", \"eq\", this.searchCriteria.insuredName],\r\n [\"transType\", \"eq\", this.searchCriteria.transType],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService.lstReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n public search(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validateLSTMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadLSTReport() {\r\n this.presetExportService\r\n .lstReport(\r\n this.searchCriteria.effectiveDateFrom,\r\n this.searchCriteria.effectiveDateTo,\r\n this.searchCriteria.boundDateFrom,\r\n this.searchCriteria.boundDateTo,\r\n this.searchCriteria.startDateFrom,\r\n this.searchCriteria.startDateTo,\r\n this.searchCriteria.expiryDateFrom,\r\n this.searchCriteria.expiryDateTo,\r\n this.searchCriteria.policyNo,\r\n this.searchCriteria.insuredName,\r\n this.searchCriteria.transType,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadlstReport(\r\n lstReportColumn,\r\n \"LST \",\r\n \"LST_Report_\" + this.formatDate(),\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n private formatDate(): string {\r\n const date = new Date();\r\n return (\r\n date.getDate().toString() +\r\n \"_\" +\r\n (date.getMonth() + 1).toString() +\r\n \"_\" +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n}\r\nconst lstReportColumn: string[] = [\r\n \"Policy No.\",\r\n \"Declaration Reference\",\r\n \"EPL Policy Number\",\r\n \"Currency\",\r\n \"Trans Code\",\r\n \"Endorsement No\",\r\n \"Gross TSI\",\r\n \"Gross Prem\",\r\n \"R/I - CO / Account\",\r\n \"Reference %\",\r\n \"Ceded Premium %\",\r\n \"Ceded Premium Amount\",\r\n \"LST Prem\",\r\n \"% ceded to Surplus\",\r\n \"Net TSI\",\r\n \"Net Premium\",\r\n \"Transaction Date\",\r\n \"Inception Date\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Occupation (NAICS)\",\r\n \"Occupation (SSIC)\",\r\n \"Occupancy\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class LSTSearchCriteria {\r\n constructor() {\r\n //this.effectiveDateFrom = null;\r\n //this.effectiveDateTo = null;\r\n //this.boundDateFrom = null;\r\n //this.boundDateTo = null;\r\n //this.startDateFrom = null;\r\n //this.startDateTo = null;\r\n //this.expiryDateFrom = null;\r\n //this.expiryDateTo = null;\r\n //this.policyNo = null;\r\n //this.insuredName = null;\r\n //this.transType = null;\r\n //this.productIds = null;\r\n }\r\n\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n boundDateFrom?: Date;\r\n boundDateTo?: Date;\r\n startDateFrom?: Date;\r\n startDateTo?: Date;\r\n expiryDateFrom?: Date;\r\n expiryDateTo?: Date;\r\n policyNo!: string;\r\n insuredName!: string;\r\n transType!: Array;\r\n productIds!: Array;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { IBGRenewalReportSearchCriteria } from \"./ibg-renewal-report.model\";\r\nimport { proposalCommon } from \"./../../../base/utils/proposal-common\";\r\n\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport { IBGRenewalEntity } from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-ibg-renewal-report\",\r\n templateUrl: \"./ibg-renewal-report.component.html\",\r\n styleUrls: [\"./ibg-renewal-report.component.scss\"],\r\n})\r\nexport class IBGRenewalReportComponent extends BaseComponent implements OnInit {\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"boundDateTo\", { static: false })\r\n public boundDateTo!: DatePickerComponent;\r\n\r\n public boundDateTo_min!: Date;\r\n public boundDateTo_max!: Date;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new IBGRenewalReportSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: IBGRenewalEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n public transactionTypeOption!: Array<{ text: string; value: number }>;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n public policyStatus!: Array<{ text: string; value: number }>;\r\n public proposalStatus!: Array<{ text: string; value: number }>;\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.productRadioControl = \"dbs\";\r\n //segments\r\n this.segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n //policy status\r\n this.policyStatus = [\r\n { text: \"In force\", value: 2 },\r\n { text: \"Renewed\", value: 11 },\r\n { text: \"Cancelled\", value: 12 },\r\n ];\r\n //proposalStatus\r\n this.proposalStatus = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Pending Checker\", value: 18 },\r\n { text: \"Bound\", value: 2 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Declined\", value: 4 },\r\n { text: \"Lapsed\", value: 9 },\r\n ];\r\n this.transactionTypeOption = [\r\n { text: \"New Business\", value: 1 },\r\n { text: \"Endorsement\", value: 2 },\r\n { text: \"Cancellation\", value: 3 },\r\n { text: \"Renewal\", value: 4 },\r\n ];\r\n\r\n this.fetchUserList();\r\n this.defaultIBGRenewalReportSearchCriteria();\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private defaultIBGRenewalReportSearchCriteria(): void {\r\n var dt = new Date(new Date().getFullYear(), 0, 1);\r\n var effectiveDateFrom = new Date(\r\n Date.UTC(\r\n dt.getFullYear(),\r\n dt.getMonth(),\r\n dt.getDate(),\r\n dt.getHours(),\r\n dt.getMinutes(),\r\n dt.getSeconds()\r\n )\r\n );\r\n this.searchCriteria.effectiveDateFrom = effectiveDateFrom;\r\n\r\n const effectiveDateTo: Date = new Date(effectiveDateFrom);\r\n effectiveDateTo.setFullYear(effectiveDateFrom.getFullYear() + 1);\r\n this.searchCriteria.effectiveDateTo = effectiveDateTo;\r\n let isValidField: boolean = false;\r\n isValidField = this.validateIBGRenewalMandatoryFields();\r\n if (isValidField) {\r\n this.refresh();\r\n }\r\n }\r\n private validateLSTInputFields(): boolean {\r\n const pattern1 = \"[0-9]\";\r\n const pattern2 = \"(?=.*[!@#$%^&*?])\";\r\n if (\r\n this.searchCriteria.insuredName !== null &&\r\n this.searchCriteria.insuredName !== \"\" &&\r\n (new RegExp(pattern1).test(this.searchCriteria.insuredName) ||\r\n new RegExp(pattern2).test(this.searchCriteria.insuredName))\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\r\n this.searchCriteria.policyNo !== null &&\r\n this.searchCriteria.policyNo !== \"\" &&\r\n new RegExp(pattern2).test(this.searchCriteria.policyNo)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n private validateIBGRenewalMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean =\r\n this.searchCriteria.effectiveDateFrom !== null &&\r\n this.searchCriteria.effectiveDateTo !== null;\r\n isValid = dates;\r\n return isValid;\r\n }\r\n\r\n public on_boundDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.boundDateFrom === null) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.boundDateTo &&\r\n this.searchCriteria.boundDateFrom &&\r\n this.searchCriteria.boundDateTo < this.searchCriteria.boundDateFrom\r\n ) {\r\n this.searchCriteria.boundDateTo = undefined;\r\n this.boundDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.boundDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 6);\r\n this.boundDateTo_min = value;\r\n this.boundDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.boundDateTo.toggle();\r\n }\r\n public download(): void {\r\n if (this.validateIBGRenewalMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadIBGRenewalReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyCertificateNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyCertificateNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"effectiveDateFrom\", \"eq\", this.searchCriteria.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"eq\", this.searchCriteria.effectiveDateTo],\r\n [\"boundDateFrom\", \"eq\", this.searchCriteria.boundDateFrom],\r\n [\"boundDateTo\", \"eq\", this.searchCriteria.boundDateTo],\r\n [\"startDateFrom\", \"eq\", this.searchCriteria.startDateFrom],\r\n [\"startDateTo\", \"eq\", this.searchCriteria.startDateTo],\r\n [\"expiryDateFrom\", \"eq\", this.searchCriteria.expiryDateFrom],\r\n [\"expiryDateTo\", \"eq\", this.searchCriteria.expiryDateTo],\r\n [\"policyNo\", \"eq\", this.searchCriteria.policyNo],\r\n [\"insuredName\", \"eq\", this.searchCriteria.insuredName],\r\n [\"transType\", \"eq\", this.searchCriteria.transType],\r\n [\"productId\", \"eq\", this.searchCriteria.productId],\r\n [\"cin\", \"eq\", this.searchCriteria.cin],\r\n [\"bankReferenceNo\", \"eq\", this.searchCriteria.bankReferenceNo],\r\n [\"segment\", \"eq\", this.searchCriteria.segment],\r\n [\"policyStatus\", \"eq\", this.searchCriteria.policyStatus],\r\n [\"proposalStatus\", \"eq\", this.searchCriteria.proposalStatus],\r\n [\"postalCode\", \"eq\", this.searchCriteria.postalCode],\r\n [\"MSIGNo\", \"eq\", this.searchCriteria.MSIGNo],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService.ibgRenewalReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n public search(): void {\r\n if (this.form.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validateIBGRenewalMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadIBGRenewalReport() {\r\n this.presetExportService\r\n .ibgRenewalReport(\r\n this.searchCriteria.policyNo,\r\n this.searchCriteria.cin,\r\n this.searchCriteria.insuredName,\r\n this.searchCriteria.startDateFrom,\r\n this.searchCriteria.startDateTo,\r\n this.searchCriteria.expiryDateFrom,\r\n this.searchCriteria.expiryDateTo,\r\n this.searchCriteria.boundDateFrom,\r\n this.searchCriteria.boundDateTo,\r\n this.searchCriteria.effectiveDateFrom,\r\n this.searchCriteria.effectiveDateTo,\r\n this.searchCriteria.bankReferenceNo,\r\n this.searchCriteria.segment,\r\n this.searchCriteria.transType,\r\n this.searchCriteria.policyStatus,\r\n this.searchCriteria.proposalStatus,\r\n this.searchCriteria.productId,\r\n this.searchCriteria.postalCode,\r\n this.searchCriteria.MSIGNo\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadIBGRenewalReport(\r\n ibgRenewalReportColumn,\r\n \"IBG-Renewal \",\r\n \"IBG-Renewal \" +\r\n this.formatDate(this.searchCriteria.effectiveDateFrom),\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n private formatDate(date?: Date): string {\r\n if (date)\r\n return (\r\n proposalCommon.translateMonth(date.getMonth() + 1) +\r\n \" \" +\r\n date.getFullYear().toString()\r\n );\r\n else return \"\";\r\n }\r\n public on_searchStartDateFrom_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.startDateFrom);\r\n // var startDateFrom = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.startDateFrom = startDateFrom;\r\n }\r\n public on_searchStartDateTo_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.startDateTo);\r\n // var startDateTo = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.startDateTo = startDateTo;\r\n }\r\n public on_searchExpiryDateFrom_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.expiryDateFrom);\r\n // var expiryDateFrom = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.expiryDateFrom = expiryDateFrom;\r\n }\r\n public on_searchExpiryDateTo_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.expiryDateTo);\r\n // var expiryDateTo = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.expiryDateTo = expiryDateTo;\r\n }\r\n public on_searchBoundStartDateFrom_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.boundDateFrom);\r\n // var boundDateFrom = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.boundDateFrom = boundDateFrom;\r\n }\r\n public on_searchBoundDateTo_change(value: Date): void {\r\n // var dt = new Date(this.searchCriteria.boundDateTo);\r\n // var boundDateTo = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds()));\r\n // this.searchCriteria.boundDateTo = boundDateTo;\r\n }\r\n}\r\nconst ibgRenewalReportColumn: string[] = [\r\n \"S/N\",\r\n \"Policy No\",\r\n \"MSIG Policy No\",\r\n \"RM Name \",\r\n \"BUPC Code\",\r\n \"Bank Reference No\",\r\n \"Borrower CIN\",\r\n \"Name of Insured\",\r\n \"Names other than Insured\",\r\n \"Correspondence Address\",\r\n \"Risk Address\",\r\n \"Policy Inception Date\",\r\n \"Policy Expiry Date\",\r\n \"No. of Years - Free Insurance\",\r\n \"Sum Insured\",\r\n \"Gross Premium (Excl. GST)\",\r\n \"GST\",\r\n \"Total Premium (Gross Premium + GST)\",\r\n \"Transaction Type\",\r\n \"Transaction Date\",\r\n \"Renewable Method\",\r\n \"Occupation\",\r\n \"Occupancy Rates\",\r\n \"Occupied As\",\r\n \"Nature of Business\",\r\n \"Usage of Premises\",\r\n \"Type of Property\",\r\n \"Type of Equipment\",\r\n \"Commission %\",\r\n \"Commission\",\r\n \"GST on Commission\",\r\n \"Premium Rate\",\r\n \"Open Item Status\",\r\n \"Remarks\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class IBGRenewalReportSearchCriteria {\r\n constructor() {\r\n // this.policyNo = null;\r\n // this.cin = null;\r\n // this.insuredName = null;\r\n // this.startDateFrom = null;\r\n // this.startDateTo = null;\r\n // this.expiryDateFrom = null;\r\n // this.expiryDateTo = null;\r\n // this.boundDateFrom = null;\r\n // this.effectiveDateFrom = null;\r\n // this.effectiveDateTo = null;\r\n // this.boundDateTo = null;\r\n // this.bankReferenceNo = null;\r\n this.segment = [];\r\n this.transType = [];\r\n this.policyStatus = [];\r\n this.proposalStatus = [];\r\n this.productId = [];\r\n // this.postalCode = null;\r\n // this.MSIGNo = null;\r\n }\r\n\r\n policyNo!: string;\r\n cin!: string;\r\n insuredName!: string;\r\n startDateFrom?: Date;\r\n startDateTo?: Date;\r\n expiryDateFrom?: Date;\r\n expiryDateTo?: Date;\r\n boundDateFrom?: Date;\r\n boundDateTo?: Date;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n bankReferenceNo!: string;\r\n segment: Array;\r\n transType: Array;\r\n policyStatus: Array;\r\n proposalStatus: Array;\r\n productId: Array;\r\n postalCode!: string;\r\n MSIGNo!: string;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { LoanRedemptionSearchCriteria } from \"./loan-redemption.model\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport {\r\n LoanRedemptionFailureEntity,\r\n LoanRedemptionSuccessEntity,\r\n} from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-loan-redemption-report\",\r\n templateUrl: \"./loan-redemption.component.html\",\r\n styleUrls: [\"./loan-redemption.component.scss\"],\r\n})\r\nexport class LoanRedemptionReportComponent\r\n extends BaseComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"fileUploadDateTo\", { static: false })\r\n public fileUploadDateTo!: DatePickerComponent;\r\n\r\n public fileUploadDateTo_min!: Date;\r\n public fileUploadDateTo_max!: Date;\r\n @Input() presetReportType!: number;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new LoanRedemptionSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listingSuccess: LoanRedemptionSuccessEntity[] = [];\r\n public listingFailure: LoanRedemptionFailureEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n isMSBRSearch = false;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.searchCriteria.reportType = this.presetReportType.toString();\r\n //segments\r\n this.segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n ];\r\n this.productRadioControl = \"dbs\";\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.readProductRadio();\r\n } else {\r\n this.showReportType = true;\r\n }\r\n this.fetchUserList();\r\n this.defaultLoanRedemptionSearchCriteria();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.searchCriteria = new LoanRedemptionSearchCriteria();\r\n this.defaultLoanRedemptionSearchCriteria();\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private defaultLoanRedemptionSearchCriteria(): void {\r\n const initialDate: Date = new Date();\r\n const endDate: Date = new Date();\r\n initialDate.setDate(initialDate.getDate() - 1);\r\n endDate.setDate(endDate.getDate());\r\n\r\n this.searchCriteria.effectiveDateFrom = initialDate;\r\n this.searchCriteria.effectiveDateTo = endDate;\r\n this.searchCriteria.segmentDetails = \"CBG\";\r\n this.searchCriteria.dateSearchType = \"MSBR\";\r\n this.searchCriteria.reportType = this.presetReportType.toString();\r\n this.searchCriteria.productRadio = this.productRadioControl;\r\n\r\n let isValidField: boolean = false;\r\n isValidField = this.validateLoanRedemptionFields();\r\n if (isValidField) {\r\n this.refresh();\r\n }\r\n }\r\n private validateLoanRedemptionFields(): boolean {\r\n let isValid: boolean = false;\r\n //// dates\r\n const dates: boolean =\r\n this.searchCriteria.effectiveDateFrom !== null &&\r\n this.searchCriteria.effectiveDateTo !== null;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n public onChange_ProductRadio(): void {\r\n this.searchCriteria = new LoanRedemptionSearchCriteria();\r\n this.isCitiProduct = this.productRadioControl === \"citi\" ? true : false;\r\n this.searchCriteria.productRadio = this.productRadioControl;\r\n this.defaultLoanRedemptionSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n }\r\n\r\n public download(): void {\r\n if (this.validateLoanRedemptionFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadLoanRedemptionReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n if (this.presetReportType === 17) {\r\n this.gridView = {\r\n data: orderBy(this.listingSuccess, this.sort),\r\n total: this.listingSuccess.length,\r\n };\r\n } else {\r\n this.gridView = {\r\n data: orderBy(this.listingFailure, this.sort),\r\n total: this.listingFailure.length,\r\n };\r\n }\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"productRadio\", \"eq\", this.searchCriteria.productRadio],\r\n [\"productIds\", \"eq\", this.searchCriteria.productIds],\r\n [\"segmentDetails\", \"eq\", this.searchCriteria.segmentDetails],\r\n [\"effectiveDateFrom\", \"eq\", this.searchCriteria.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"eq\", this.searchCriteria.effectiveDateTo],\r\n [\"dateSearchType\", \"eq\", this.searchCriteria.dateSearchType],\r\n [\"reportType\", \"eq\", this.searchCriteria.reportType],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService.loanRedemptionReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (this.presetReportType === 17)\r\n this.listingSuccess = result.body.d?.results;\r\n else this.listingFailure = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n if (this.presetReportType === 17) {\r\n this.gridView = {\r\n data: orderBy(this.listingSuccess, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n } else {\r\n this.gridView = {\r\n data: orderBy(this.listingFailure, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n }\r\n public search(): void {\r\n if (this.form?.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validateLoanRedemptionFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private downloadLoanRedemptionReport() {\r\n this.searchCriteria.productRadio = this.isCitiProduct ? \"citi\" : \"dbs\";\r\n this.searchCriteria.reportType = this.presetReportType.toString();\r\n if (this.presetReportType === 17) {\r\n this.presetExportService\r\n .loanRedemptionSuccess(\r\n this.searchCriteria.dateSearchType,\r\n this.searchCriteria.effectiveDateFrom,\r\n this.searchCriteria.effectiveDateTo,\r\n this.searchCriteria.segmentDetails,\r\n this.searchCriteria.reportType,\r\n this.searchCriteria.productIds,\r\n this.searchCriteria.productRadio\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n if (this.searchCriteria.segmentDetails === \"CBG\") {\r\n if (this.searchCriteria.productRadio === \"citi\") {\r\n this.excelTemplateService.downloadCitiLoanRedemptionSuccessReport(\r\n successCitiCbgColumn,\r\n \"Loan Redemption Success Report\",\r\n \"Loan Redemption Success Report Citibank\",\r\n response.body.d?.results\r\n );\r\n } else {\r\n this.excelTemplateService.downloadDbsCbgLoanRedemptionSuccessReport(\r\n successDbsCbgColumn,\r\n \"Loan Redemption Success Report\",\r\n \"Loan Redemption Success Report\" +\r\n \" - \" +\r\n this.searchCriteria.segmentDetails,\r\n response.body.d?.results\r\n );\r\n }\r\n } else {\r\n this.excelTemplateService.downloadDbsIbgLoanRedemptionSuccessReport(\r\n successIbgColumn,\r\n \"Loan Redemption Success Report\",\r\n \"Loan Redemption Success Report\" +\r\n \" - \" +\r\n this.searchCriteria.segmentDetails,\r\n response.body.d?.results\r\n );\r\n }\r\n }\r\n });\r\n } else if (this.presetReportType === 18) {\r\n this.presetExportService\r\n .loanRedemptionFailure(\r\n this.searchCriteria.dateSearchType,\r\n this.searchCriteria.effectiveDateFrom,\r\n this.searchCriteria.effectiveDateTo,\r\n this.searchCriteria.segmentDetails,\r\n this.searchCriteria.reportType,\r\n this.searchCriteria.productIds,\r\n this.searchCriteria.productRadio\r\n )\r\n .subscribe((response: any) => {\r\n if (this.searchCriteria.segmentDetails === \"CBG\") {\r\n if (this.searchCriteria.productRadio === \"citi\") {\r\n this.excelTemplateService.downloadCitiLoanRedemptionFailureReport(\r\n failureCitiCbgColumn,\r\n \"Loan Redemption Exception Report Citibank\",\r\n \"Loan Redemption Exception Report Citibank\",\r\n response.body.d?.results\r\n );\r\n } else {\r\n this.excelTemplateService.downloadDbsCbgLoanRedemptionFailureReport(\r\n failureDbsCbgColumn,\r\n \"Loan Redemption Exception Report\",\r\n \"Loan Redemption Exception Report\" +\r\n \" - \" +\r\n this.searchCriteria.segmentDetails,\r\n response.body.d?.results\r\n );\r\n }\r\n } else {\r\n this.excelTemplateService.downloadDbsIbgLoanRedemptionFailureReport(\r\n failureIbgColumn,\r\n \"Loan Redemption Exception Report\",\r\n \"Loan Redemption Exception Report\" +\r\n \" - \" +\r\n this.searchCriteria.segmentDetails,\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n }\r\n public on_segment_change(value: any): void {\r\n this.refresh();\r\n }\r\n public setRequiredProperties(e: any): void {\r\n if (e === 1) {\r\n this.isMSBRSearch = true;\r\n this.searchCriteria.dateSearchType = \"MSBR\";\r\n } else {\r\n this.isMSBRSearch = false;\r\n this.searchCriteria.dateSearchType = \"FileUpload\";\r\n }\r\n }\r\n public on_FileUploadDateFrom_change(value: Date): void {\r\n if (this.searchCriteria.effectiveDateFrom === null) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.fileUploadDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.fileUploadDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.searchCriteria.effectiveDateTo &&\r\n this.searchCriteria.effectiveDateFrom &&\r\n this.searchCriteria.effectiveDateTo <\r\n this.searchCriteria.effectiveDateFrom\r\n ) {\r\n this.searchCriteria.effectiveDateTo = undefined;\r\n this.fileUploadDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.fileUploadDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // set range 6 months\r\n const maxDate = new Date(value);\r\n maxDate.setMonth(maxDate.getMonth() + 1);\r\n this.fileUploadDateTo_min = value;\r\n this.fileUploadDateTo_max = maxDate;\r\n\r\n // open datepicker\r\n this.fileUploadDateTo.toggle();\r\n this.on_searchFrom_focus();\r\n }\r\n private on_searchFrom_focus(): void {\r\n if (this.fileUploadDateTo.isOpen) {\r\n this.fileUploadDateTo.toggle();\r\n }\r\n }\r\n}\r\nconst successCitiCbgColumn: string[] = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Risk Address\",\r\n \"Collateral No\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"Email Date Received\",\r\n];\r\nconst successDbsCbgColumn: string[] = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"MSBR Date Received\",\r\n];\r\nconst successIbgColumn: string[] = [\r\n \"SI No\",\r\n \"Bank Reference Number\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"MSBR Date Received\",\r\n];\r\nconst failureCitiCbgColumn: string[] = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Collateral No\",\r\n \"Borrower/Property owner\",\r\n \"Risk Address\",\r\n \"Effective Date\",\r\n \"Remarks\",\r\n \"Email Date Received\",\r\n];\r\nconst failureDbsCbgColumn: string[] = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Risk Address\",\r\n \"MITD Date\",\r\n \"Insurance Action\",\r\n \"Remarks\",\r\n \"MSBR Date Received\",\r\n];\r\nconst failureIbgColumn: string[] = [\r\n \"SI No\",\r\n \"Bank Reference Number\",\r\n \"Policy Number\",\r\n \"MITD Date\",\r\n \"Insurance Action\",\r\n \"Remarks\",\r\n \"MSBR Date Received\",\r\n];\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class LoanRedemptionSearchCriteria {\r\n constructor() {\r\n this.dateSearchType = \"\";\r\n //this.reportType = \"\";\r\n //this.effectiveDateFrom = null;\r\n //this.effectiveDateTo = null;\r\n this.segmentDetails = \"\";\r\n this.productIds = [];\r\n this.productRadio = \"\";\r\n }\r\n\r\n dateSearchType: string;\r\n reportType!: string;\r\n effectiveDateFrom?: Date;\r\n effectiveDateTo?: Date;\r\n segmentDetails: string;\r\n productIds: Array;\r\n productRadio: string;\r\n}\r\n","import { DatePipe } from \"@angular/common\";\r\nimport {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from \"@angular/core\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { ManualPaidAutoDebitSearchCriteria } from \"./manual-paid-auto-debit.model\";\r\nimport { proposalCommon } from \"./../../../base/utils/proposal-common\";\r\n\r\n@Component({\r\n selector: \"app-manual-paid-auto-debit\",\r\n templateUrl: \"./manual-paid-auto-debit.component.html\",\r\n})\r\nexport class ManualPaidAutoDebitComponent implements OnInit {\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new ManualPaidAutoDebitSearchCriteria();\r\n constructor(\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {}\r\n ngOnInit(): void {\r\n this.defaultManualPaidAutoDebitSearchCriteria();\r\n }\r\n\r\n public download(): void {\r\n if (this.validateManualPaidAutoDebitMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadManualPaidAutoDebitReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private defaultManualPaidAutoDebitSearchCriteria(): void {\r\n // today\r\n this.searchCriteria.month = new Date();\r\n }\r\n private validateManualPaidAutoDebitMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean = this.searchCriteria.month !== null;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n private formatDate(date: Date): string {\r\n return (\r\n proposalCommon.translateMonth(date.getMonth() + 1) +\r\n \" \" +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n private downloadManualPaidAutoDebitReport() {\r\n const month: number = this.searchCriteria.month.getMonth() + 1;\r\n const year: number = this.searchCriteria.month.getFullYear();\r\n this.presetExportService\r\n .manualPaidAutoDebit(month, year)\r\n .subscribe((response: any) => {\r\n this.excelTemplateService.downloadManualPaidAutoDebitReport(\r\n mpautoDebitColumn,\r\n \"Manual Paid Auto Debit\",\r\n \"Manual Paid Auto Debit in \" +\r\n this.formatDate(this.searchCriteria.month),\r\n response?.d?.results\r\n );\r\n });\r\n }\r\n}\r\nconst mpautoDebitColumn: string[] = [\r\n \"S/N\",\r\n \"Policy Number\",\r\n \"Policy Certificate Number\",\r\n \"Cheque Issuance Bank\",\r\n \"Cheque No\",\r\n \"Payer Name\",\r\n \"Total Premium\",\r\n \"GST\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n","export class ManualPaidAutoDebitSearchCriteria {\r\n constructor() {\r\n //this.month = null;\r\n }\r\n\r\n month!: Date;\r\n}\r\n","import { Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n ViewChild, \r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\n\r\n@Component({\r\n selector: \"app-preset-report\",\r\n templateUrl: \"./preset-report.component.html\",\r\n styleUrls: [\"./preset-report.component.scss\"],\r\n})\r\nexport class PresetReportComponent extends BaseComponent implements OnInit{\r\n@Output() warningZoneEvent = new EventEmitter();\r\npublic reportOptions!: Array<{ text: string, value: number }>;\r\npresetReportType!: number;\r\nconstructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n){\r\n super(router, broadcastService, identityRolesService);\r\n}\r\noverride ngOnInit():void{\r\n super.ngOnInit();\r\n this.initReportOptions();\r\n this.defaultSearchCriteria();\r\n\r\n}\r\nprivate initReportOptions() {\r\n\r\n // report dropdownlist options\r\n const reportOptions =\r\n [{ text: 'Daily NB Download', value: 1 }\r\n , { text: 'Daily EN Download', value: 2 }\r\n , { text: 'Daily CA Download', value: 3 }\r\n , { text: 'Bank Trans', value: 4 }\r\n , { text: 'Manual Paid Auto Debit', value: 5 }\r\n , { text: 'Renewal Draft Deletion', value: 6 }\r\n , { text: 'Renewal Summary Report', value: 7 }\r\n , { text: 'IBG Renewal Report', value: 8 }\r\n , { text: 'Summary of Invoice - Auto Debit', value: 9 }\r\n // , { text: 'Summary of Invoice - Free Insurance', value: 10 }\r\n , { text: 'Daily Transaction Document Print Report', value: 11 }\r\n , { text: 'Datapost Document Print Report', value: 12 }\r\n , { text: 'Auto Debit Text File', value: 13 }\r\n , { text: 'Auto Debit Extraction Report', value: 14 }\r\n , { text: 'Auto Update Extraction Report', value: 15 }\r\n , { text: 'IBG Reinsurance Report', value: 16 }\r\n , { text: 'Loan Redemption Report - Success', value: 17 }\r\n , { text: 'Loan Redemption Report - Failure', value: 18 }\r\n , { text: 'Citi Bank - Summary of weekly Invoice', value: 19 }\r\n , { text: 'Citi Bank - Monthly Report', value: 20 }\r\n ];\r\n\r\n /*2022-08-18 dagoh0: APACDM-1660 - Only allow Operation UnderWriter have the access */\r\n if (!this.identityRolesService.isOperationUnderwriter)\r\n {\r\n const indexOfObject = reportOptions.findIndex((object) => {\r\n return object.value === 20;\r\n });\r\n\r\n if (indexOfObject > -1) {\r\n reportOptions.splice(indexOfObject, 1);\r\n } \r\n }\r\n\r\n if(this.identityRolesService.isMaker == true || this.identityRolesService.isChecker == true)\r\n {\r\n const indexOfObject = reportOptions.findIndex((object) => {\r\n return object.value === 19;\r\n });\r\n\r\n if (indexOfObject > -1) {\r\n reportOptions.splice(indexOfObject, 1);\r\n } \r\n }\r\n\r\n // sort by text asc\r\n reportOptions.sort(function (x, y) {\r\n return x.text > y.text ? 1 :\r\n x.text < y.text ? -1 :\r\n 0;\r\n });\r\n\r\n this.reportOptions = reportOptions;\r\n\r\n // const documentChannels =\r\n // [{ text: 'All', value: 0 }\r\n // , { text: 'DP link CBG', value: 1 }\r\n // , { text: 'DP link IBG', value: 2 }\r\n // , { text: 'DP link Reprint', value: 3 }\r\n // , { text: 'Email', value: 4 }\r\n // , { text: 'Both Email and Mail', value: 5 }\r\n // , { text: 'No Print', value: 6 }\r\n // , { text: 'Not Sent', value: 7 }\r\n // , { text: 'SMS', value: 8 }]\r\n // ;\r\n\r\n // this.documentChannels = documentChannels;\r\n\r\n // const transactionOption =\r\n // [\r\n // { text: 'New Business', value: 1 }\r\n // , { text: 'Endorsement', value: 2 }\r\n // , { text: 'Cancellation', value: 3 }\r\n // , { text: 'Renewal', value: 4 }\r\n // , { text: 'Loan Redemption', value: 5 }\r\n // ];\r\n\r\n // this.transactionTypeOption = transactionOption;\r\n}\r\nprivate defaultSearchCriteria(): void {\r\n // default to first option\r\n this.presetReportType = this.reportOptions[0].value;\r\n //this.on_reportType_change();\r\n}\r\npublic on_reportType_change(val:any): void {\r\n switch (this.presetReportType) {\r\n case 1:\r\n case 2:\r\n case 3:\r\n // target = '#cbgDailyDownloadFields';\r\n // this.searchCriteria = new CbgDailyDownloadSearchCriteria();\r\n // this.defaultCbgDailyDownloadSearchCriteria();\r\n\r\n break;\r\n case 4:\r\n // target = '#bankTransFields';\r\n // this.searchCriteria = new BankTransSearchCriteria();\r\n // this.defaultBankTransSearchCriteria();\r\n // var isMaker = instanceFactory.getIdentity().role.isMaker;\r\n // var isChecker = instanceFactory.getIdentity().role.isChecker;\r\n // if(isMaker == true || isChecker == true)\r\n // {\r\n // this.productRadioControl = 'dbs';\r\n // this.onChange_ProductRadio();\r\n // }\r\n // else\r\n // {\r\n // this.showReportType = true;\r\n // }\r\n \r\n break;\r\n case 5:\r\n // target = '#manualPaidAutoDebitFields';\r\n // this.searchCriteria = new ManualPaidAutoDebitSearchCriteria();\r\n // this.defaultManualPaidAutoDebitSearchCriteria();\r\n break;\r\n case 6:\r\n // target = '#renewalDraftDeletionReportFields';\r\n // this.searchCriteria = new RenewalDraftDeletionSearchCriteria();\r\n // this.defaultRenewalDraftDeletionReportSearchCriteria();\r\n break;\r\n case 7:\r\n // target = '#renewalReportFields';\r\n // this.searchCriteria = new RenewalReportSearchCriteria();\r\n // this.defaultRenewalReportSearchCriteria();\r\n break;\r\n case 8:\r\n // target = '#IBGrenewalReportFields';\r\n // this.searchCriteria = new IBGRenewalReportSearchCriteria();\r\n // this.defaultIBGRenewalReportSearchCriteria();\r\n break;\r\n case 9:\r\n // target = '#summaryInvoiceAutoDebitFields';\r\n // this.searchCriteria = new SummaryInvoiceAutoDebitSearchCriteria();\r\n // this.defaultSummaryInvoiceAutoDebitSearchCriteria();\r\n break;\r\n case 10:\r\n // target = '#summaryInvoiceFreeInsuranceFields';\r\n // this.searchCriteria = new SummaryInvoiceFreeInsuranceSearchCriteria();\r\n // this.defaultSummaryInvoiceFreeInsuranceSearchCriteria();\r\n break;\r\n case 11:\r\n // target = '#documentPrintReportFields';\r\n // this.searchCriteria = new PrintDocumentSearchCriteria();\r\n // this.defaultPrintDocumentSearchCriteria();\r\n // var isMaker = instanceFactory.getIdentity().role.isMaker;\r\n // var isChecker = instanceFactory.getIdentity().role.isChecker;\r\n // if(isMaker == true || isChecker == true)\r\n // {\r\n // this.productRadioControl = 'dbs';\r\n // this.onChange_ProductRadio();\r\n // }\r\n // else\r\n // {\r\n // this.showReportType = true;\r\n // }\r\n break;\r\n case 12:\r\n // target = '#dataPostPrintReportFields';\r\n // this.searchCriteria = new DataPostPrintSearchCriteria();\r\n // this.defaultDataPostPrintSearchCriteria();\r\n // var isMaker = instanceFactory.getIdentity().role.isMaker;\r\n // var isChecker = instanceFactory.getIdentity().role.isChecker;\r\n // if(isMaker == true || isChecker == true)\r\n // {\r\n // this.productRadioControl = 'dbs';\r\n // this.onChange_ProductRadio();\r\n // }\r\n // else\r\n // {\r\n // this.showReportType = true;\r\n // }\r\n break;\r\n case 13:\r\n // target = '#autoDebitTextFileFields';\r\n // this.searchCriteria = new AutoDebitExtractionSearchCriteria();\r\n // this.defaultAutoDebitExtractionSearchCriteria();\r\n break;\r\n case 14:\r\n // target = '#autoDebitExtractionFields';\r\n // this.searchCriteria = new AutoDebitExtractionSearchCriteria();\r\n // this.defaultAutoDebitExtractionSearchCriteria();\r\n break;\r\n case 15:\r\n // target = '#autoUpdateExtractionFields';\r\n // this.searchCriteria = new AutoUpdateExtractionSearchCriteria();\r\n // this.defaultAutoUpdateExtractionSearchCriteria();\r\n break;\r\n case 16:\r\n // target = '#LSTReportFields';\r\n // this.searchCriteria = new LSTSearchCriteria();\r\n // this.defaultLSTReportSearchCriteria();\r\n break;\r\n case 17:\r\n case 18:\r\n // target = '#loanRedemptionReportFields';\r\n // this.searchCriteria = new LoanRedemptionSearchCriteria();\r\n // this.defaultLoanRedemptionSearchCriteria(this.presetReportType);\r\n // this.loadLoanRedemptionGrid();\r\n // var isMaker = instanceFactory.getIdentity().role.isMaker;\r\n // var isChecker = instanceFactory.getIdentity().role.isChecker;\r\n // if(isMaker == true || isChecker == true)\r\n // {\r\n // this.productRadioControl = 'dbs';\r\n // this.onChange_ProductRadio();\r\n // }\r\n // else\r\n // {\r\n // this.showReportType = true;\r\n // }\r\n break;\r\n case 19:\r\n // target = '#citiWeeklysummaryInvoice';\r\n // this.searchCriteria = new CitiWeeklyInvoiceSearchCriteria();\r\n // this.defaultCitiWeeklyInvoiceSearchCriteria();\r\n break;\r\n case 20:\r\n // target = '#citiMthlyReport';\r\n // this.searchCriteria = new CitiMonthlyReportSearchCriteria();\r\n // this.defaultCitiMonthlyReportSearchCriteria();\r\n // this.productRadioControl = 'citi';\r\n // this.onChange_ProductRadio();\r\n //this.isCitiProduct = true;\r\n //this.fetchUserList();\r\n break;\r\n }\r\n\r\n\r\n\r\n}\r\npublic passWarningZoneEvent(warningParamters:any):void{\r\n this.warningZoneEvent.emit(warningParamters);\r\n}\r\n}","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { BaseComponent } from \"src/app/components/shared/base/base.component\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { RenewalDraftDeletionSearchCriteria } from \"./renewal-report.model\";\r\nimport { proposalCommon } from \"./../../../base/utils/proposal-common\";\r\n\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport {\r\n RenewalDraftDeletionEntity,\r\n RenewalEntity,\r\n} from \"../preset-report.model\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\n@Component({\r\n selector: \"app-renewal-report\",\r\n templateUrl: \"./renewal-report.component.html\",\r\n styleUrls: [\"./renewal-report.component.scss\"],\r\n})\r\nexport class RenewalReportComponent extends BaseComponent implements OnInit {\r\n @ViewChild(\"heroForm\", { static: false })\r\n private form!: UntypedFormGroup;\r\n @ViewChild(\"fileUploadDateTo\", { static: false })\r\n public fileUploadDateTo!: DatePickerComponent;\r\n\r\n public fileUploadDateTo_min!: Date;\r\n public fileUploadDateTo_max!: Date;\r\n @Input() presetReportType!: number;\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new RenewalDraftDeletionSearchCriteria();\r\n public userProductList!: IProduct[];\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: RenewalDraftDeletionEntity[] = [];\r\n public renewalListing: RenewalEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n isMSBRSearch = false;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {\r\n super(router, broadcastService, identityRolesService);\r\n }\r\n override ngOnInit(): void {\r\n this.productRadioControl = \"dbs\";\r\n //segments\r\n this.segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB\", value: \"PB\" },\r\n { text: \"TPC\", value: \"TPC\" },\r\n ];\r\n this.productRadioControl = \"dbs\";\r\n this.fetchUserList();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.searchCriteria = new RenewalDraftDeletionSearchCriteria();\r\n if (this.gridView && this.gridView.data) {\r\n this.gridView.data = [];\r\n this.gridView.total = 0;\r\n }\r\n }\r\n private readProductRadio() {\r\n this.isCitiProduct = this.productRadioControl === \"citi\";\r\n }\r\n\r\n private fetchUserList() {\r\n // get user productsList\r\n if (this.isCitiProduct) {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.userProductList = this.identityRolesService.productListing.filter(\r\n (element: { pdid: string }) => {\r\n return !(\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n );\r\n }\r\n );\r\n }\r\n }\r\n private validateRenewalDraftDeletionReportMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean = this.searchCriteria.month !== undefined;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n\r\n public download(): void {\r\n if (this.validateRenewalDraftDeletionReportMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n if (this.presetReportType === 6) {\r\n this.downloadRenewalDraftDeletionReport();\r\n } else {\r\n this.downloadRenewalReport();\r\n }\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyCertificateNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n if (this.presetReportType === 6) {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n } else {\r\n this.gridView = {\r\n data: orderBy(this.renewalListing, this.sort),\r\n total: this.renewalListing.length,\r\n };\r\n }\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyCertificateNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"productId\", \"eq\", this.searchCriteria.productIds],\r\n [\"segment\", \"eq\", this.searchCriteria.segment],\r\n [\"month\", \"eq\", this.searchCriteria.month],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n if (this.presetReportType == 6) {\r\n this.presetExportService.renewalDraftReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n } else {\r\n this.presetExportService.renewalReportSearch(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.renewalListing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n\r\n private loadItems(): void {\r\n if (this.presetReportType === 6) {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n } else {\r\n this.gridView = {\r\n data: orderBy(this.renewalListing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n }\r\n public search(): void {\r\n if (this.form?.dirty) {\r\n //whenever the form is dirty, reset the skip to 0\r\n //paging event will not, and should not reach here\r\n this.skip = 0;\r\n }\r\n const isValid = this.validateRenewalDraftDeletionReportMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a date range.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private formatDate(date: Date): string {\r\n return (\r\n proposalCommon.translateMonth(date.getMonth() + 1) +\r\n \" \" +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n private downloadRenewalDraftDeletionReport(): void {\r\n const month: number = this.searchCriteria.month.getMonth() + 1;\r\n const year: number = this.searchCriteria.month.getFullYear();\r\n\r\n this.presetExportService\r\n .renewalDraftDeletionReport(\r\n month,\r\n year,\r\n this.searchCriteria.segment,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadRenewalDraftReport(\r\n renewalDraftColumn,\r\n \"Renewal Draft Deletion\",\r\n \"Renewal Draft Deletion in \" +\r\n this.formatDate(this.searchCriteria.month),\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n private downloadRenewalReport(): void {\r\n const month: number = this.searchCriteria.month.getMonth() + 1;\r\n const year: number = this.searchCriteria.month.getFullYear();\r\n this.presetExportService\r\n .renewalReport(\r\n month,\r\n year,\r\n this.searchCriteria.segment,\r\n this.searchCriteria.productIds\r\n )\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadRenewalReport(\r\n renewalColumn,\r\n \"Renewal\",\r\n \"Renewal\" + this.formatDate(this.searchCriteria.month),\r\n response.body.d?.results\r\n );\r\n }\r\n });\r\n }\r\n}\r\nconst renewalDraftColumn: string[] = [\r\n \"Policy Certificate No\",\r\n \"Master Policy No\",\r\n \"Policy No\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Gross Renewal Premium\",\r\n \"GST\",\r\n \"Total Renewal Premium\",\r\n \"Free/Paid Renewal\",\r\n \"Draft Creation Date\",\r\n \"Status\",\r\n \"Draft Deletion Date\",\r\n \"Transaction Type\",\r\n \"Insured Name\",\r\n \"Draft Sum Insured (Uploaded SI)\",\r\n \"EPL Sum Insured (Current EPL SI)\",\r\n \"Risk Address\",\r\n \"Bank Reference\",\r\n];\r\nconst renewalColumn: string[] = [\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n \"Master Policy No\",\r\n \"PolicyNo\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Gross Renewal Premium\",\r\n \"GST\",\r\n \"Total Renewal Premium\",\r\n \"Commission %\",\r\n \"Commission\",\r\n \"GST On Commission\",\r\n \"No Of Years - Free Insurance\",\r\n \"Free/Paid Renewal\",\r\n \"Renewal Bound Date\",\r\n \"Renewal Docs Generated Date\",\r\n \"AD File Month\",\r\n \"Status\",\r\n \"Saved By\",\r\n \"RM Name\",\r\n \"BUPC Code\",\r\n \"Bank Ref\",\r\n \"Insured Name\",\r\n \"Additional Insureds\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n \"Correspondence Address\",\r\n \"Insured NRIC\",\r\n \"Borrower CIN\",\r\n \"Occupation\",\r\n \"Occupation Rates\",\r\n \"Occupied As\",\r\n \"Nature Of Business\",\r\n \"Usage Of Premises\",\r\n \"Type Of Property\",\r\n \"Type Of Equipment\",\r\n];\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class RenewalDraftDeletionSearchCriteria {\r\n constructor() {\r\n //this.month = null;\r\n this.segment = [];\r\n this.productIds = [];\r\n }\r\n\r\n month!: Date;\r\n segment: Array;\r\n productIds: Array;\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from \"@angular/core\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { PresetExportService } from \"src/app/services/preset-export.service\";\r\nimport { SummaryInvoiceAutoDebitSearchCriteria } from \"./summary-invoice-auto-debit.model\";\r\nimport { SummaryInvoiceAutoDebitEntity } from \"../preset-report.model\";\r\nimport { proposalCommon } from \"../../../base/utils/proposal-common\";\r\n\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport { warningZoneArgs } from \"../../warning-zone/warning-zone.component\";\r\n@Component({\r\n selector: \"app-summary-invoice-auto-debit-report\",\r\n templateUrl: \"./summary-invoice-auto-debit.component.html\",\r\n styleUrls: [\"./summary-invoice-auto-debit.component.scss\"],\r\n})\r\nexport class SummaryInvoiceAutoDebitComponent implements OnInit {\r\n @Output() warningZoneEvent = new EventEmitter();\r\n public searchCriteria = new SummaryInvoiceAutoDebitSearchCriteria();\r\n public showReportType: boolean = false;\r\n public isCitiProduct: boolean = false;\r\n public productRadioControl!: string;\r\n public loading!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: SummaryInvoiceAutoDebitEntity[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n public segmentList!: Array<{ text: string; value: string }>;\r\n\r\n constructor(\r\n private presetExportService: PresetExportService,\r\n private excelTemplateService: ExcelTemplateService\r\n ) {}\r\n ngOnInit(): void {\r\n this.segmentList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"PB / TPC\", value: \"PB,TPC\" },\r\n ];\r\n this.defaultSummaryInvoiceAutoDebitSearchCriteria();\r\n }\r\n\r\n private defaultSummaryInvoiceAutoDebitSearchCriteria(): void {\r\n this.searchCriteria.segmentDetails = \"CBG\";\r\n //this.summaryInvoiceAutoDebitGrid.dataSource.data([]);\r\n }\r\n private validateSummaryInvoiceAutoDebitMandatoryFields(): boolean {\r\n let isValid: boolean = false;\r\n // dates\r\n const dates: boolean = this.searchCriteria.month !== undefined;\r\n isValid = dates; // || etc...\r\n return isValid;\r\n }\r\n\r\n public download(): void {\r\n if (this.validateSummaryInvoiceAutoDebitMandatoryFields()) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.downloadSummaryInvoiceAutoDebitReport();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n }\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"policyCertificateNo\",\r\n dir: \"asc\",\r\n },\r\n ];\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadData();\r\n }\r\n private loadData(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort),\r\n total: this.listing.length,\r\n };\r\n }\r\n private refresh(): void {\r\n this.loading = true;\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyCertificateNo\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let date = new Date(\r\n this.searchCriteria.month.getFullYear(),\r\n this.searchCriteria.month.getMonth(),\r\n new Date().getDate()\r\n );\r\n\r\n let array = [\r\n [\"segmentDetails\", \"eq\", this.searchCriteria.segmentDetails],\r\n [\"month\", \"eq\", date],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.presetExportService\r\n .summaryInvoiceAutoDebitSearch(querystring)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: orderBy(this.listing, this.sort), //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n public search(): void {\r\n const isValid = this.validateSummaryInvoiceAutoDebitMandatoryFields();\r\n\r\n if (isValid) {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: false,\r\n warningText: \"\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n this.submitted = true;\r\n this.refresh();\r\n } else {\r\n let warningParamters: warningZoneArgs = {\r\n showWarning: true,\r\n warningText: \"Please select a month.\",\r\n };\r\n this.warningZoneEvent.emit(warningParamters);\r\n }\r\n }\r\n private formatDate(date: Date): string {\r\n return (\r\n proposalCommon.translateMonth(date.getMonth() + 1) +\r\n \" \" +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n private downloadSummaryInvoiceAutoDebitReport() {\r\n const month: number = this.searchCriteria.month.getMonth() + 1;\r\n const year: number = this.searchCriteria.month.getFullYear();\r\n\r\n this.presetExportService\r\n .summaryInvoiceAutoDebit(month, year, this.searchCriteria.segmentDetails)\r\n .subscribe((response: any) => {\r\n if (\r\n response != undefined &&\r\n response.body != undefined &&\r\n response.body != null\r\n ) {\r\n this.excelTemplateService.downloadsummaryInvoiceAutoDebitReport(\r\n summaryInvoiceColumn,\r\n \"Summary Invoice Auto Debit\",\r\n \"SummaryInvoiceAutoDebit \" +\r\n this.formatDate(this.searchCriteria.month),\r\n response.body.d?.results,\r\n this.searchCriteria.segmentDetails\r\n );\r\n }\r\n });\r\n }\r\n}\r\nconst summaryInvoiceColumn: string[] = [\r\n \"SI No\",\r\n \"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n \"Master Policy No\",\r\n \"Policy No\",\r\n \"Entry Date\",\r\n \"Gross Premium\",\r\n \"GST\",\r\n \"Total Premium\",\r\n \"Open Item Status\",\r\n \"Invoice No\",\r\n \"Saved By\",\r\n \"BU PC Code\",\r\n \"Bank Ref\",\r\n \"Insured Name\",\r\n \"Effective Date\",\r\n \"Expiry Date\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n \"Insured NRIC\",\r\n \"Transaction Type\",\r\n \"Product\",\r\n \"Contract Type\",\r\n \"Policy Status\",\r\n \"Transaction date\",\r\n];\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","export class SummaryInvoiceAutoDebitSearchCriteria {\r\n constructor() {\r\n //this.month = null;\r\n this.segmentDetails = \"\";\r\n }\r\n\r\n month!: Date;\r\n segmentDetails: string;\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { CdkDialogService } from \"./../../../../services/dialog/cdk-dialog.service\";\r\nimport { BaseTodoListComponent } from \"../../base/base-todo-list/base-todo-list.component\";\r\n\r\n@Component({\r\n selector: \"app-todo-list\",\r\n templateUrl: \"./todo-list.component.html\",\r\n styleUrls: [\"./todo-list.component.scss\"],\r\n})\r\nexport class TodoListComponent extends BaseTodoListComponent implements OnInit {\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override masterDataService: MasterDataService,\r\n public override uploadService: UploadExcelService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n masterPolicyService,\r\n masterDataService,\r\n uploadService,\r\n cdkDialogService\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ advancedSearchCaption }}\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n\r\n\r\n
\r\n\r\n \r\n Select All\r\n\r\n\r\n Approve All\r\n\r\n\r\n Bind All Policies\r\n\r\n\r\n Decline All\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewChild } from \"@angular/core\";\r\n@Component({\r\n selector: \"app-warning-zone\",\r\n templateUrl: \"./warning-zone.component.html\",\r\n styleUrls: [\"./warning-zone.component.scss\"],\r\n})\r\nexport class WarningZoneComponent implements OnInit {\r\n @Input() public opened = false;\r\n\r\n @Input() public text: string = \"Please select a date range.\";\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n\r\nexport interface warningZoneArgs {\r\n showWarning: boolean;\r\n warningText: string;\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n {{ text }}\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport {\r\n ManualPaymentEntity,\r\n OpenItemEntity,\r\n} from \"src/app/components/accounting/open-item/models/open-item-list.model\";\r\nimport {\r\n v1DlgInputArgs,\r\n MdConfirmationMessageV1Component,\r\n dlgModelArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-do-manual-pay\",\r\n templateUrl: \"./mf-hk-do-manual-pay.component.html\",\r\n styleUrls: [\"./mf-hk-do-manual-pay.component.scss\"],\r\n})\r\nexport class MfHkDoManualPayComponent implements OnInit {\r\n public manualPayment = new ManualPaymentEntity();\r\n public openItemId!: string;\r\n public openItemEntity = new OpenItemEntity();\r\n public totalPremium: any;\r\n public active = false;\r\n //public payByChequeOnly: boolean = false;\r\n public isPaidByHase: boolean = false;\r\n public opened: boolean = false;\r\n //validation\r\n invalidRequiredField = false;\r\n invalidPayerName = false;\r\n invalidCIB = false;\r\n invalidCN = false;\r\n\r\n @Input() public set model(openItemEntity: any) {\r\n this.openItemEntity = openItemEntity;\r\n // toggle the Dialog visibility\r\n this.active = openItemEntity !== undefined;\r\n this.manualPayment.paymentType = 2;\r\n this.manualPayment.openItemId = openItemEntity.openItemId;\r\n //this.payByChequeOnly = this.openItemEntity?.statusId === 11;\r\n }\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() makePayment: EventEmitter = new EventEmitter();\r\n\r\n constructor(private cdkDialogService: CdkDialogService) {}\r\n\r\n ngOnInit(): void {}\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n public onChangePaymentType(val: any): void {\r\n this.manualPayment.chequeIssuanceBank = \"\";\r\n this.manualPayment.chequeNo = \"\";\r\n this.invalidCIB = false;\r\n this.invalidCN = false;\r\n if (val === 1) {\r\n this.isPaidByHase = true;\r\n } else {\r\n this.isPaidByHase = false;\r\n }\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n this.invalidRequiredField = false;\r\n // do form validation\r\n const isValid: boolean = this.validateMandatoryFields();\r\n if (isValid) {\r\n this.ConfirmationPopup(\"Are you sure you want to make this payment?\", \"\");\r\n } else {\r\n this.invalidRequiredField = true;\r\n e.preventDefault();\r\n }\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n this.makePayment.emit(this.manualPayment);\r\n }\r\n }\r\n private validateMandatoryFields(): boolean {\r\n let hasError: boolean = false;\r\n // validate mandatory fields\r\n if (common.isStringNullOrEmpty(this.manualPayment.payerName)) {\r\n hasError = true;\r\n this.invalidPayerName = true;\r\n } else {\r\n this.invalidPayerName = false;\r\n }\r\n\r\n return !hasError;\r\n }\r\n}\r\n","\r\n \r\n Manual Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Make Payment\r\n \r\n \r\n Return\r\n \r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport {\r\n RefundPaymentEntity,\r\n OpenItemEntity,\r\n} from \"src/app/components/accounting/open-item/models/open-item-list.model\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport {\r\n v1DlgInputArgs,\r\n MdConfirmationMessageV1Component,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { dlgModelArgs } from \"src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport { RefundPaymentType } from \"src/app/framework/enum.shared\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-do-refund\",\r\n templateUrl: \"./mf-hk-do-refund.component.html\",\r\n styleUrls: [\"./mf-hk-do-refund.component.scss\"],\r\n})\r\nexport class MfHkDoRefundComponent implements OnInit {\r\n public refundPayment = new RefundPaymentEntity();\r\n public openItemId!: string;\r\n public openItemEntity = new OpenItemEntity();\r\n public totalPremium: any;\r\n public active = false;\r\n public opened: boolean = false;\r\n\r\n refundType!: RefundPaymentType;\r\n refundTypeDisplayText!: string;\r\n\r\n @Input() public set model(openItemEntity: any) {\r\n this.refundPayment.openItemId = openItemEntity.openItemId;\r\n }\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() doRefund: EventEmitter = new EventEmitter();\r\n //validation\r\n invalidRequiredField = false;\r\n invalidPayerName = false;\r\n invalidCIB = false;\r\n invalidCN = false;\r\n invalidRemark = false;\r\n\r\n constructor(\r\n private cdkDialogService: CdkDialogService,\r\n private openItemListService: OpenItemListService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getOpenItemDetails();\r\n }\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n private getOpenItemDetails() {\r\n this.openItemListService\r\n .getOpenItem(this.refundPayment.openItemId)\r\n .subscribe((response: OpenItemEntity) => {\r\n const openItem: OpenItemEntity = response;\r\n this.active = openItem !== undefined;\r\n this.openItemEntity = openItem;\r\n // this.refundType =\r\n // openItem.statusId === OpenItemStatus.PendingRefundToBankInReview\r\n // ? RefundPaymentType.OnlineTransfer\r\n // : openItem.statusId ===\r\n // OpenItemStatus.PendingRefundToIndividualInReview\r\n // ? RefundPaymentType.Cheque\r\n // : RefundPaymentType.Undefined;\r\n //only OpenItemStatus.PendingRefundToBankInReview(22) maps to Refunded (9), in sproc UpdateOpenItem\r\n this.refundType = RefundPaymentType.OnlineTransfer;\r\n const refundTypeDisplayText: string =\r\n proposalCommon.translateRefundPaymentType(this.refundType);\r\n this.refundTypeDisplayText = refundTypeDisplayText;\r\n this.refundPayment.refundPaymentType = this.refundType;\r\n });\r\n }\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n this.invalidRequiredField = false;\r\n const isValid: boolean = this.validateMandatoryFields();\r\n if (isValid) {\r\n this.ConfirmationPopup(\r\n \"Are you sure you want to refund this payment?\",\r\n \"\"\r\n );\r\n } else {\r\n this.invalidRequiredField = true;\r\n e.preventDefault();\r\n }\r\n }\r\n private validateMandatoryFields(): boolean {\r\n let hasError: boolean = false;\r\n // validate mandatory fields\r\n if (common.isStringNullOrEmpty(this.refundPayment.payerName)) {\r\n hasError = true;\r\n this.invalidPayerName = true;\r\n } else {\r\n this.invalidPayerName = false;\r\n }\r\n\r\n return !hasError;\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n this.doRefund.emit(this.refundPayment);\r\n }\r\n }\r\n}\r\n","\r\n \r\n Refund Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Make Refund\r\n \r\n \r\n Cancel\r\n \r\n \r\n\r\n","import { Component, EventEmitter, OnInit, Output, Input } from \"@angular/core\";\r\nimport { GridDataResult } from \"@progress/kendo-angular-grid\";\r\nimport { OpenItemEntity } from \"src/app/components/accounting/open-item/models/open-item-list.model\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-open-item-details\",\r\n templateUrl: \"./mf-hk-open-item-details.component.html\",\r\n styleUrls: [\"./mf-hk-open-item-details.component.scss\"],\r\n})\r\nexport class MfHkOpenItemDetailsComponent implements OnInit {\r\n @Input() public opened = false;\r\n @Input() openItemId!: string;\r\n @Output() closeDialogEvent = new EventEmitter();\r\n private listing: OpenItemEntity[] = [];\r\n public displayPolicyCertificateNo!: string;\r\n public gridView!: GridDataResult;\r\n constructor(private openItemListService: OpenItemListService) {}\r\n ngOnInit(): void {\r\n this.getOpenItemHistory();\r\n }\r\n private getOpenItemHistory(): void {\r\n this.openItemListService.getOpenItemHistory(this.openItemId).subscribe(\r\n (result: OpenItemEntity[]) => {\r\n if (common.isDefined(result)) {\r\n this.displayPolicyCertificateNo = result[0].policyCertificateNumber;\r\n this.listing = result;\r\n this.loadItems();\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n public close(status: any): void {\r\n this.opened = false;\r\n this.closeDialogEvent.emit();\r\n }\r\n private loadItems(): void {\r\n this.listing.forEach((entity) => {\r\n entity.statusDisplayText = openItemDisplayStatus[entity.statusId];\r\n if (entity.autoDebitMonth !== 0) {\r\n entity.autoDebitMonthDisplayText = proposalCommon.translateMonth(\r\n entity.autoDebitMonth\r\n );\r\n }\r\n entity.chequeIssuanceBank = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeIssuanceBank\r\n )\r\n ? entity.manualPaymentChequeIssuanceBank\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeIssuanceBank)\r\n ? entity.refundPaymentChequeIssuanceBank\r\n : \"\";\r\n\r\n entity.chequeNumber = !common.isStringNullOrEmpty(\r\n entity.manualPaymentChequeNumber\r\n )\r\n ? entity.manualPaymentChequeNumber\r\n : !common.isStringNullOrEmpty(entity.refundPaymentChequeNumber)\r\n ? entity.refundPaymentChequeNumber\r\n : \"\";\r\n });\r\n\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.listing?.length,\r\n };\r\n }\r\n\r\n public getPaymentTypeDisplayText(dataItem: any): string {\r\n //DBSEP-7239, DBSEP-7185\r\n switch (dataItem.paymentTypeId) {\r\n case 1: {\r\n return \"Paid by HASE Bank\";\r\n }\r\n case 2: {\r\n return \"Paid by Customer\";\r\n }\r\n default: {\r\n return \"\";\r\n }\r\n }\r\n return \"\";\r\n }\r\n}\r\n","\r\n
\r\n

Open Item Details

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.dateCreated | date : \"short\" }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Return\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, LOCALE_ID, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { OpenItemListingEntity } from \"src/app/components/accounting/open-item/OpenItemListingEntity\";\r\nimport {\r\n ManualPaymentEntity,\r\n RefundPaymentEntity,\r\n} from \"src/app/components/accounting/open-item/models/open-item-list.model\";\r\nimport { BaseOpenItemListComponent } from \"src/app/components/new-product/base/base-open-item-list/base-open-item-list.component\";\r\nimport { dlgModelArgs } from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { openItemDisplayStatus } from \"src/app/finance/finance-constant\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { OpenItemListService } from \"src/app/services/open-item-list.service\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\n\r\n@Component({\r\n selector: \"mf-hk-open-item-list\",\r\n templateUrl: \"./mf-hk-open-item-list.component.html\",\r\n styleUrls: [\"./mf-hk-open-item-list.component.scss\"],\r\n})\r\nexport class MfHkOpenItemListComponent\r\n extends BaseOpenItemListComponent\r\n implements OnInit\r\n{\r\n isPaymentMonthSelected: boolean = false;\r\n selectedStatusIds: number[] = [];\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n @Inject(LOCALE_ID) public override locale: string,\r\n public override openItemListService: OpenItemListService,\r\n public override identity: Identity,\r\n public override excelTemplate: ExcelTemplateService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n locale,\r\n openItemListService,\r\n identity,\r\n excelTemplate,\r\n cdkDialogService\r\n );\r\n\r\n this.searchCriteria.productRadio = \"hase\"; //default to hase\r\n }\r\n\r\n // this.refresh() in ngOnInit() has to be called separately by component,\r\n // cannot place in BaseOpenItemListComponent, else call twice\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.defaultSearchCriteria();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n this.fetchStatusList();\r\n this.initStatusLists();\r\n this.setDbsAutoDebitPeriod();\r\n this.refresh();\r\n }\r\n\r\n public override onChange_ProductRadio(): void {\r\n this.resetFormValues();\r\n this.readProductRadio();\r\n this.fetchUserList();\r\n this.fetchStatusList();\r\n\r\n this.setDbsAutoDebitPeriod();\r\n this.refresh();\r\n }\r\n\r\n //DBSEP-7267\r\n protected override on_AutoDebitMonthChange(val: any): void {\r\n var timestamp = Date.parse(val);\r\n\r\n if (isNaN(timestamp) == false) {\r\n this.selectedStatusIds = [24]; //Filter the list by the Status \"Sent for Collection\"\r\n this.isPaymentMonthSelected = true;\r\n } else {\r\n this.selectedStatusIds = [];\r\n this.isPaymentMonthSelected = false;\r\n }\r\n }\r\n\r\n protected override getQueryString(): string {\r\n //convert number array to string array needed by query\r\n this.searchCriteria.statusIds = this.selectedStatusIds.map(String);\r\n return super.getQueryString();\r\n }\r\n\r\n protected override setDbsAutoDebitPeriod(): void {\r\n //do nothing, no need default to current month\r\n }\r\n\r\n protected override initStatusLists(): void {\r\n // PendingPayment = 23\r\n this.payableStatusList = [23];\r\n\r\n // PendingRefund = 25\r\n this.refundableStatusList = [25];\r\n this.refundableReviewStatusList = [];\r\n }\r\n\r\n protected override fetchUserList() {\r\n // get user productsList\r\n this.userProductList = this.identity\r\n .currentUser()\r\n .products?.filter(function (e) {\r\n let ucvalue = e.pdid.toString().toUpperCase();\r\n return (\r\n ucvalue == \"3840D5AA-7FB6-416A-9E3E-9D346562E648\" ||\r\n ucvalue == \"AAEA26B4-812F-4FA1-AC43-7177EA129917\"\r\n );\r\n });\r\n }\r\n\r\n protected override fetchStatusList() {\r\n // get statusList\r\n this.statusList = [];\r\n\r\n for (const key in openItemDisplayStatus) {\r\n if (openItemDisplayStatus.hasOwnProperty(key)) {\r\n const value = openItemDisplayStatus[key];\r\n\r\n if (\r\n this.searchCriteria.productRadio != null &&\r\n [6, 9, 10, 23, 24, 25].includes(Number(key))\r\n ) {\r\n this.statusList.push({ text: value, value: Number(key) });\r\n }\r\n }\r\n }\r\n // sort statusList by asc\r\n this.statusList.sort((x, y) => {\r\n return x.text > y.text ? 1 : x.text < y.text ? -1 : 0;\r\n });\r\n }\r\n\r\n public makeHasePaymentHandler(\r\n manualPaymentEntity: ManualPaymentEntity\r\n ): void {\r\n this.doManualPay = false;\r\n this.openItemListService.doHaseManualPay(manualPaymentEntity).subscribe(\r\n (response: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment made Succesfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment failed\");\r\n }\r\n );\r\n }\r\n\r\n protected override getActionName(entity: OpenItemListingEntity): string {\r\n let isPendingPayment: boolean =\r\n this.payableStatusList.indexOf(entity.statusId) !== -1;\r\n\r\n let isPendingRefund: boolean =\r\n this.refundableStatusList.indexOf(entity.statusId) !== -1;\r\n\r\n let isPendingRefundReview: boolean =\r\n this.refundableReviewStatusList.indexOf(entity.statusId) !== -1;\r\n // // Manual Paid (6) & Payment by cheque (2)\r\n // let isBounceableCheque: boolean =\r\n // entity.statusId === 6 && entity.paymentTypeId === 2;\r\n\r\n if (isPendingPayment) return \"PAY\";\r\n else if (isPendingRefund) return \"REFUND\";\r\n else if (isPendingRefundReview) return \"REFUND IN REVIEW\";\r\n //else if (isBounceableCheque) return \"BOUNCE CHEQUE\";//not needed in Hase\r\n else return \"\";\r\n }\r\n\r\n protected override onRefundClick(datas: any): void {\r\n this.refundOpenItemID = datas.openItemId;\r\n if (datas.statusId == OpenItemStatus.PendingRefund) {\r\n //when Hase's refund, directly to new 'refund in review' popup directly, no need confimation dlg\r\n this.doRefundPay = true;\r\n // this.ConfirmationPopup(\r\n // \"Are you sure you want to Change the status to Pending Refund?\",\r\n // \"\"\r\n // );\r\n }\r\n }\r\n\r\n public override doRefundHandler(\r\n refundPaymentEntity: RefundPaymentEntity\r\n ): void {\r\n this.doRefundPay = false;\r\n\r\n //this.openItemListService.doRefund(refundPaymentEntity).subscribe(\r\n this.openItemListService.doHaseRefund(refundPaymentEntity).subscribe(\r\n (response: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment refunded successfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Payment refunded failed\");\r\n }\r\n );\r\n }\r\n\r\n override async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n const postData = { openItemId: this.refundOpenItemID };\r\n this.openItemListService.doHaseRefund(postData).subscribe(\r\n (response: any) => {\r\n // refresh grid\r\n this.refresh();\r\n this.openStatusPopup(\"Status Updated Succesfully\");\r\n },\r\n (err: any) => {\r\n this.refresh();\r\n this.openStatusPopup(\"Status Updated Failed\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n public override export(): void {\r\n this.openItemListService\r\n .exportOpenItemListing(this.getQueryString())\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.excelTemplate.downloadHaseOpenItemPolicies(\r\n haseColumns,\r\n \"Open Item Report\",\r\n \"Open Item Report\",\r\n result.body.d?.results\r\n );\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n}\r\n\r\nconst haseColumns: string[] = [\r\n \"Product Type\", //\"Meridian Sequence No\",\r\n \"Policy Certificate No\",\r\n //\"Master Policy No\",\r\n \"Policy No\",\r\n \"Entry Date\",\r\n \"Total Premium\",\r\n \"Levy\",\r\n \"Status\",\r\n //\"Invoice No\",\r\n \"Saved By\",\r\n \"policy Holder Name\",\r\n \"Correspondence Address\",\r\n //\"Inactive Address Changed\",\r\n \"Gross Premium (Excl.Levy)\",\r\n //\"BUPC\",\r\n //\"Bank Reference\",\r\n \"Mortgagor Name\", //\"Insured Name\",\r\n \"Effective Date\",\r\n \"INS Expiry Date\",\r\n \"Sum Insured\",\r\n \"Risk Address\",\r\n //\"Insured NRIC\",\r\n //\"Additional Insured\",\r\n \"Payment Month\",\r\n //\"Cancellation Adjustment\",\r\n];\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n Export\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, LOCALE_ID, OnInit } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { cloneDeep } from \"lodash\";\r\nimport {\r\n ReconcilePoliciesDownloadEntity,\r\n SearchCriteria,\r\n} from \"src/app/components/accounting/reconcile/models/reconcile-list.model\";\r\nimport { BaseReconcileListComponent } from \"src/app/components/new-product/base/base-reconcile-list/base-reconcile-list.component\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { ReconcileListService } from \"src/app/services/reconcile-list.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-reconcile-list\",\r\n templateUrl: \"./mf-hk-reconcile-list.component.html\",\r\n styleUrls: [\"./mf-hk-reconcile-list.component.scss\"],\r\n})\r\nexport class MfHkReconcileListComponent\r\n extends BaseReconcileListComponent\r\n implements OnInit\r\n{\r\n constructor(\r\n @Inject(LOCALE_ID) public override locale: string,\r\n protected override uploadService: UploadExcelService,\r\n protected override router: Router,\r\n protected override route: ActivatedRoute,\r\n protected override excelTemplate: ExcelTemplateService,\r\n protected override reconcileService: ReconcileListService\r\n ) {\r\n super(\r\n locale,\r\n uploadService,\r\n router,\r\n route,\r\n excelTemplate,\r\n reconcileService\r\n );\r\n\r\n this.searchCriteria.productRadio = \"wpb\"; //default to hase\r\n }\r\n\r\n protected override validateMandatoryFields(): boolean {\r\n this.reformatPeriod();\r\n let isValid: boolean = false;\r\n\r\n const inoutField: boolean =\r\n this.searchCriteria.policyNumber !== \"\" ||\r\n this.searchCriteria.autoDebitPeriod !== \"\";\r\n\r\n isValid = inoutField; // || etc...\r\n\r\n return isValid;\r\n }\r\n\r\n findReconcileSelection(): boolean {\r\n var test = document.getElementsByName(\"reconcile\");\r\n var sizes = test.length;\r\n for (let i = 0; i < sizes; i++) {\r\n if ((test[i] as HTMLInputElement).checked == true) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected override exportSearch() {\r\n let dummySearchCriteria = new SearchCriteria();\r\n if (this.findReconcileSelection()) {\r\n dummySearchCriteria = cloneDeep(this.searchCriteria);\r\n } else {\r\n dummySearchCriteria = cloneDeep(this.searchCriteria);\r\n //default to all; this one maybe missed during angular upgrade\r\n dummySearchCriteria.autoDebitPeriodMonth = \"\";\r\n dummySearchCriteria.autoDebitPeriodYear = \"\";\r\n }\r\n\r\n this.reconcileService\r\n .searchReconcilePolicies(dummySearchCriteria) \r\n .then(\r\n (result: any) => {\r\n const base64String = result.fileBytes;\r\n const decodedByteArray = Uint8Array.from(atob(base64String), c => c.charCodeAt(0));\r\n this.uploadService.generateAnchorAndTriggerDownload(\r\n decodedByteArray,\r\n result.filename\r\n );\r\n },\r\n (error: any) => {\r\n let message: string = \"\";\r\n switch (error?.status) {\r\n case 401:\r\n message = \"Unauthorized document download\";\r\n break;\r\n default:\r\n message =\r\n \"Document download response with unexpected status: \" +\r\n error?.status?.toString();\r\n break;\r\n }\r\n }\r\n );\r\n }\r\n}\r\n\r\nconst haseColumns: string[] = [\r\n \"Serial Number\",\r\n \"Action\",\r\n //\"Meridian Sequence No\",\r\n \"Policy Certificate Number\",\r\n \"Total\",\r\n \"Levy\",\r\n \"Status\",\r\n //\"Invoice No\",\r\n \"Saved By\",\r\n \"Id(Do not change!)\",\r\n \"Status Id(Do not change!)\",\r\n \"Paid by\",\r\n \"Remarks\"\r\n];\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please enter at least ONE search info.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Search\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ excelFilesErrorMessage }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload Excel\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseConfigurablesListComponent } from \"src/app/components/new-product/base/base-configurables-list/base-configurables-list.component\";\r\nimport { MfHkConfigEditCriteria } from \"src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria\";\r\nimport { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"mf-hk-add-clauses-excl-list\",\r\n templateUrl: \"./add-clauses-excl-list.component.html\",\r\n styleUrls: [\"./add-clauses-excl-list.component.scss\"],\r\n})\r\nexport class AddClausesExclListComponent\r\n extends BaseConfigurablesListComponent\r\n implements OnInit\r\n{\r\n public coverageTypeOptions: Array<{ text: string; value: string }> = [\r\n { text: \"Fire\", value: \"84B90097-F4C7-4AAA-9B99-71FE8CD7355E\" },\r\n {\r\n text: \"Property All Risk\",\r\n value: \"4AE939D5-8FAF-4AF5-8B4F-8822ED23B817\",\r\n },\r\n ];\r\n\r\n override ngOnInit(): void {\r\n this.model.typeId = ConfigurableMode.AddClausesOrExcl; //do before super.ngOnInit() for loading list\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n addNewAdditionalClausesOrExclusions(val: any) {\r\n this.editModel = new MfHkConfigEditCriteria(); //reset\r\n\r\n this.isAdd = true;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport * as Enums from \"./../../../../../../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"src/app/framework/interface.product\";\r\nimport { Component } from \"@angular/core\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { ProposalAction } from \"./../../../../../../../models/new-product/base/proposal-action.model\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { ProposalAvailableActionHelperService } from \"src/app/services/new-product/base/utils/proposal-available-action-helper.service\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { Echo } from \"src/app/models/new-product/base/echo.model\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { buttonNotifier } from \"src/app/components/shared/notifier/button-notifier\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MdProductSelectionDialogComponent } from \"src/app/components/shared/partials/md-product-selection-dialog/md-product-selection-dialog.component\";\r\nimport { MfContactUsFormComponent } from \"src/app/components/shared/products/mf-contact-us-form/mf-contact-us-form.component\";\r\nimport { MessageForumComponent } from \"src/app/components/product/messageBoard/message-forum/message-forum.component\";\r\nimport { MdConfirmationMessageWithReasonComponent } from \"src/app/components/shared/partials/md-confirmation-message-with-reason/md-confirmation-message-with-reason.component\";\r\nimport { MdConfirmationMessageV2Component } from \"src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { MdConfirmationMessageV4Component } from \"src/app/components/shared/partials/md-confirmation-message-v4/md-confirmation-message-v4.component\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { httpNotifier } from \"src/app/interceptor/http-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\n@Component({\r\n selector: \"mf-hk-button-panel\",\r\n templateUrl: \"./mf-hk-button-panel.component.html\",\r\n styleUrls: [\"./mf-hk-button-panel.component.scss\"],\r\n})\r\nexport class MfHkButtonPanelComponent extends MfHkBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireHongKongProposal;\r\n actions!: ProposalAction;\r\n showMessageBoard: boolean = false;\r\n private _defaultGuid: GUID = new GUID(\"00000000-0000-0000-0000-000000000000\");\r\n isIncomplete: boolean = false;\r\n isReferred: boolean = false;\r\n isGeneralOrSIEndorsed: boolean = false;\r\n isWpbProduct: boolean = false;\r\n isCITIProduct: boolean = false;\r\n hideActionsCommandsByIBG: boolean = false;\r\n isLapsed: boolean = false;\r\n isRefUnderwriter: boolean = false;\r\n isWpbReferred: boolean = false; //added to check Wpb referred case\r\n showCorrespondencebtn: boolean = false;\r\n // added as a part of Renewal Assessments\r\n showRenewalAssessment: boolean = false;\r\n renewalAssessmentMessage: string = \"\";\r\n showRenewalFailure: boolean = false;\r\n hideAllEndorsementsForRenewedCMBWPB: boolean = false;\r\n hideActionsCommandsForCSCBGSG: boolean = false;\r\n hideActionsCommandsForDBSUsers: boolean = false;\r\n isTransactionExpired: boolean = false;\r\n isTransactionExpiredForRenewal: boolean = false;\r\n //2022-08-22 dagoh0: APACDM-363 - flag added for CBG product change of plan type\r\n isUpgradable: boolean = false;\r\n private msg_exitWarning: string =\r\n \"Are you sure you wish to return to the proposal listing screen? Your changes will not be saved.\";\r\n private msg_sendToCheckerWarning: string =\r\n \"Are you sure you wish to submit the proposal for the checker to review?\";\r\n private msg_approveWarning: string =\r\n \"Are you sure you want to approve this submission?\";\r\n private msg_IBG_approveWarning: string =\r\n \"Referral transaction will be approved with this action, Do you wish to proceed?\";\r\n private msg_declineWarning: string =\r\n \"Are you sure you wish to decline this submission?\";\r\n private msg_IBG_declineWarning: string =\r\n \"Referral transaction will be declined with this action, Do you wish to proceed?\";\r\n private msg_renewWarning: string =\r\n \"Are you sure you wish to renew this submission?\";\r\n private msg_redundantWarning: string =\r\n \"Please confirm if you wish to delete / abandon the current transaction. Click OK to proceed, else please click Cancel.\";\r\n private msg_returnToReviseWarning: string =\r\n \"Are you sure you wish to return this submission to maker for revise?\" +\r\n \" If yes, please provide reason.\";\r\n private msg_checkedWarning: string =\r\n \"Are you sure you wish to mark this submission as checked?\";\r\n private msg_ibgRefUnderwriterWarning: string =\r\n \"Transaction will be referred to UW for review and aprroval , Do you wish to proceed?\";\r\n private msg_bindPolicyWarning: string =\r\n \"Are you sure you wish to bind this Policy?\";\r\n private msg_referPolicyWarning: string =\r\n \"Are you sure you wish to refer this Policy?\";\r\n private msg_bindCBGPolicyWarning: string =\r\n \"Are you sure you wish to bind this Policy with Gross Premium or GST 0 value?\";\r\n private msg_endorseWarning: string =\r\n \"Are you sure you wish to Endorse this Policy?\";\r\n private msg_loanRedemptionWarning: string =\r\n \"Are you sure you wish to Fully Redeem this Policy?\";\r\n private msg_cancelWarning: string =\r\n \"Are you sure you wish to cancel this Policy?\";\r\n private msg_copyWarning: string =\r\n \"Are you sure you wish to Copy this Proposal?\";\r\n private msg_editWarning: string =\r\n \"Are you sure you wish to Edit this Policy?\";\r\n private msg_cancellationAdjustmentWarning: string =\r\n \"Are you sure you wish to perform Cancellation Adjustment?\";\r\n private msg_changeOfPOIWarning: string =\r\n \"Are you sure you wish to raise Change Of POI endorsement for this Policy?\";\r\n private msg_changeOfSIWarning: string =\r\n \"Are you sure you wish to raise Change Of Sum Insured endorsement for this Policy?\";\r\n private msg_changeOfCorrAddressWarning: string =\r\n \"Are you sure you wish to raise Change Of Correspondence Address for this Policy?\";\r\n private msg_changeOfClientInfo: string =\r\n \"Are you sure you wish to raise Change Of Client Information for this Policy?\";\r\n private msg_changeOfAdditionalInsuredWarning: string =\r\n \"Are you sure you wish to raise Change Of Additional Insured Details endorsement for this Policy?\";\r\n private clickedButtonId!: number;\r\n private msg_warningMessageForLST: string =\r\n \"Cannot Bind Policy.
Sum Insured is greater than the allowed limit.\";\r\n private msg_preferenceDelivery: string =\r\n \"Are you sure you wish to raise Change Of Preference Delivery for this Policy?\";\r\n //2022-08-24 dagoh0: APACDM-363 - Change of Plan Type Message\r\n private msg_changeOfPlanType: string =\r\n \"Are you sure you wish to change the policy's plan type?\";\r\n private msg_editapprovedquotation: string =\r\n \"Are you sure you wish to edit the quotation?\";\r\n productFactory!: AbstractProductFactory;\r\n\r\n protected bindPolicy: string = \"Bind Policy\";\r\n //HES-64- To Prevent multiple Button click issue\r\n public httpRequesting: boolean = false;\r\n private request_notifier_subscription: Subscription = new Subscription();\r\n private request_error_notifier_subscription: Subscription =\r\n new Subscription();\r\n private response_notifier_subscription: Subscription = new Subscription();\r\n private response_error_notifier_subscription: Subscription =\r\n new Subscription();\r\n private start_notifier_subscription: Subscription = new Subscription();\r\n private end_notifier_subscription: Subscription = new Subscription();\r\n\r\n constructor(\r\n private proposalService: MfHKProposalService,\r\n public identityRolesService: IdentityRolesService,\r\n private clientService: ClientService,\r\n private proposalAvailableActionHelper: ProposalAvailableActionHelperService,\r\n private router: Router,\r\n private cdkDialogService: CdkDialogService,\r\n public productService: ProductService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n override ngOnInit(): void {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n super.subscribePageLoadedNotifier((event) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.isWpbProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ? true\r\n : false;\r\n this.isCITIProduct = false;\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n // ? true\r\n // : false;\r\n /*message board check*/\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault\r\n ? false\r\n : true;\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isWpbReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.pageLoaded = true;\r\n this.showCorrespondencebtn = this.getcorrespondenceflag();\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n //There will be scenario that CBG product qs_master_planType might be null or empty\r\n this.isUpgradable = this.CanUpgrade();\r\n });\r\n //HES-64- To Prevent multiple Button click issue\r\n this.request_notifier_subscription =\r\n httpNotifier.request_notifier$.subscribe(this.onHttpRequestStart);\r\n this.request_error_notifier_subscription =\r\n httpNotifier.response_error_notifier$.subscribe(this.onHttpRequestEnd);\r\n this.response_notifier_subscription =\r\n httpNotifier.response_notifier$.subscribe(this.onHttpRequestEnd);\r\n this.response_error_notifier_subscription =\r\n httpNotifier.response_error_notifier$.subscribe(this.onHttpRequestEnd);\r\n }\r\n //HES-64- To Prevent multiple Button click issue\r\n public onHttpRequestStart = (e: KeyValue) => {\r\n this.httpRequesting = true;\r\n };\r\n\r\n public onHttpRequestEnd = (e: KeyValue) => {\r\n setTimeout(() => {\r\n this.httpRequesting = false;\r\n }, 50);\r\n };\r\n\r\n //#region abstract factory\r\n CanChecked() {\r\n return false;\r\n // return this.productFactory\r\n // .buttonPanel()\r\n // .CanChecked(this.identityRolesService, this.proposal);\r\n }\r\n\r\n CanBindPolicy() {\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanBindPolicy(this.identityRolesService, this.hideActionsCommandsByIBG);\r\n }\r\n\r\n CanEditQuotation() {\r\n const existingLogic =\r\n (this.identityRolesService.hasProductTransactRoles &&\r\n !this.hideActionsCommandsByIBG) ||\r\n (this.identityRolesService.IsCbsOps && this.hideActionsCommandsByIBG);\r\n\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanEditQuotation(\r\n this.actions.EditQuotation.visible,\r\n existingLogic,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n\r\n CanSave() {\r\n const existingLogic =\r\n (this.identityRolesService.hasProductTransactRoles &&\r\n !this.hideActionsCommandsByIBG) ||\r\n this.identityRolesService.IsCbsOps ||\r\n this.hideActionsCommandsForCSCBGSG;\r\n\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanSave(\r\n this.actions.save.visible,\r\n existingLogic,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n\r\n CanApprove() {\r\n let isIBGProduct = false; // this is migrated from existing; if removed might break CMB\r\n let isIBGReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n const existingLogic =\r\n isIBGProduct &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n this.proposal.isUnderwriter &&\r\n isIBGReferred;\r\n\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanApprove(\r\n this.actions.approve.visible,\r\n existingLogic,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n\r\n CanEdit() {\r\n const existingLogic =\r\n (this.proposal.proposalStatus != Enums.ProposalStatus.Renewed &&\r\n this.identityRolesService.hasProductTransactRoles &&\r\n !this.hideActionsCommandsByIBG) ||\r\n (this.identityRolesService.IsCbsOps && this.hideActionsCommandsByIBG);\r\n\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanEdit(\r\n this.actions.endorsement.visible,\r\n existingLogic,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n\r\n CanReferToUnderwriter() {\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanReferToUnderwriter(\r\n this.actions.submit.visible,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n\r\n CanSubmit() {\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanSubmit(\r\n this.actions.submit.visible,\r\n this.identityRolesService,\r\n this.proposal,\r\n this.proposalService\r\n );\r\n }\r\n //#endregion\r\n\r\n //#region migrate from old angularjs\r\n monthDiff(\r\n d1: { getFullYear: () => number; getMonth: () => number },\r\n d2: Date\r\n ) {\r\n var months;\r\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\r\n months -= d1.getMonth();\r\n months += d2.getMonth();\r\n return months;\r\n }\r\n\r\n getcorrespondenceflag = (): boolean => {\r\n const currentPOI = new Date(new Date().setHours(0, 0, 0, 0));\r\n var effectivedate =\r\n this.proposal!.qsMaster.qs_master_effectiveDate!.answer! != null\r\n ? this.proposal!.qsMaster.qs_master_effectiveDate!.answer!\r\n : currentPOI!;\r\n var currentDate = new Date();\r\n var month = this.monthDiff(effectivedate, currentDate);\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.proposal.openItems != undefined &&\r\n this.proposal.openItems.length > 0 &&\r\n month >= -6 &&\r\n month <= 6\r\n ) {\r\n if (\r\n this.proposal.openItems[0].Status == 4 ||\r\n this.proposal.openItems[0].Status == 13\r\n ) {\r\n if (\r\n this.proposal.transType == 3 &&\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Accepted &&\r\n this.proposal.pendingTransaction == null\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private answerChanged = (kv: KeyValue) => {\r\n const key = kv.key;\r\n const question = kv.value;\r\n switch (key) {\r\n case this.proposal!.qsMaster.qs_master_effectiveDate!.key:\r\n this.qs_master_effectiveDate_onChange();\r\n break;\r\n }\r\n };\r\n\r\n initialize() {\r\n this.actions = new ProposalAction();\r\n this.hideAllButton();\r\n }\r\n\r\n private qs_master_effectiveDate_onChange = (): void => {\r\n if (common.isDefined(this.proposal.proposalStatus)) {\r\n if (\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred) &&\r\n ((this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption) ||\r\n this.proposal.transType === Enums.TransType.CAN)\r\n ) {\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.hideAllButton();\r\n this.setButtonVisibility(actionsAllowed);\r\n }\r\n }\r\n };\r\n\r\n private hideAllButton() {\r\n this.actions.save.visible = false;\r\n this.actions.submit.visible = false;\r\n this.actions.sendToChecker.visible = false;\r\n this.actions.returnForRevise.visible = false;\r\n this.actions.recalculate.visible = false;\r\n this.actions.approve.visible = false;\r\n this.actions.accept.visible = false;\r\n this.actions.renew.visible = false;\r\n this.actions.decline.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n this.actions.unsuccessful.visible = false;\r\n this.actions.endorsement.visible = false;\r\n this.actions.cancel.visible = false;\r\n this.actions.createOrEdit.visible = false;\r\n this.actions.cancellationAdjustment.visible = false;\r\n this.actions.EditQuotation.visible = false;\r\n }\r\n\r\n private showBindPolicyButtonForBroker() {\r\n if (\r\n this.proposal.proposalId &&\r\n this.proposal.proposalId.toString() !==\r\n \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n if (this.proposal.transType === Enums.TransType.NEW) {\r\n return true;\r\n } else {\r\n var answer =\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer;\r\n if (\r\n answer != undefined &&\r\n answer != null &&\r\n answer !== \"\" &&\r\n (this.clickedButtonId == 2 || this.clickedButtonId == 6)\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private showBindPolicyButtonForBrokerRen() {\r\n if (this.clickedButtonId == 2) {\r\n if (this.proposal.transType === Enums.TransType.REN) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private showBindPolicyButtonForApproved() {\r\n var answer =\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer;\r\n if (\r\n answer != undefined &&\r\n answer != null &&\r\n answer !== \"\" &&\r\n (this.proposal.transType === Enums.TransType.END ||\r\n this.proposal.transType === Enums.TransType.CAN) &&\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Approved ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete)\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private setButtonVisibility(actionsAllowed: Enums.ProposalCommandAction[]) {\r\n const poiStartDate = new Date(\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const currentPOI = new Date(new Date().setHours(0, 0, 0, 0));\r\n\r\n const endorsementEffectiveDate = new Date(\r\n this.proposal!.qsMaster.qs_master_effectiveDate!.answer! != null\r\n ? this.proposal!.qsMaster.qs_master_effectiveDate!.readAnswerAsString()!\r\n : currentPOI.toString()!\r\n );\r\n let expectedMinimumLoanRedemptionDate = endorsementEffectiveDate;\r\n const minimumLoanRedemptionDate = new Date(\r\n currentPOI.setDate(currentPOI.getDate() - 14)\r\n );\r\n this.showCorrespondencebtn = this.getcorrespondenceflag();\r\n if (endorsementEffectiveDate < minimumLoanRedemptionDate) {\r\n expectedMinimumLoanRedemptionDate = minimumLoanRedemptionDate;\r\n }\r\n actionsAllowed.forEach((action) => {\r\n switch (action) {\r\n case Enums.ProposalCommandAction.Save:\r\n this.actions.save.visible = true;\r\n // if the proposal is Cancellation Adjustment\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.save.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n if (this.showBindPolicyButtonForBroker()) {\r\n this.actions.submit.visible = true;\r\n }\r\n if (this.showBindPolicyButtonForBrokerRen()) {\r\n this.actions.submit.visible = true;\r\n }\r\n if (this.showBindPolicyButtonForApproved()) {\r\n this.actions.submit.visible = true;\r\n }\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.submit.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n this.actions.sendToChecker.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.sendToChecker.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n this.actions.returnForRevise.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.returnForRevise.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Approve:\r\n if (this.proposal.transType === Enums.TransType.NEW) {\r\n this.actions.approve.visible = true;\r\n }\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.approve.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Accept:\r\n this.actions.accept.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.accept.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Renew:\r\n this.actions.renew.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Decline:\r\n this.actions.decline.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n this.actions.makeRedundant.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Unsuccessful:\r\n this.actions.unsuccessful.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Exit:\r\n this.actions.exit.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Endorse:\r\n this.actions.endorsement.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Cancel:\r\n this.actions.cancel.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Copy:\r\n this.actions.copy.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n this.actions.createOrEdit.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n this.actions.cancellationAdjustment.visible =\r\n this.proposal.isUnderwriter;\r\n break;\r\n case Enums.ProposalCommandAction.EditQuotation:\r\n this.actions.EditQuotation.visible = true;\r\n break;\r\n default:\r\n }\r\n });\r\n }\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n\r\n this.productFactory = this.productService.getHKProductFactory(\r\n this.proposal.productType\r\n );\r\n\r\n this.isWpbProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ? true\r\n : false;\r\n this.isCITIProduct = false;\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.hideAllButton();\r\n this.setButtonVisibility(actionsAllowed);\r\n\r\n //HE-28\r\n if (this.isWpbProduct && this.identityRolesService.isUnderwriter) {\r\n this.setSubmitButtonVisibilityForWpb();\r\n }\r\n\r\n if (this.identityRolesService.IsCSCBGSG && !this.isCITIProduct) {\r\n this.setBttnVisibilityForCSCBGSG();\r\n }\r\n this.pageLoaded = true;\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault ? false : true;\r\n this.hideActionsCommandsByIBG =\r\n (false && this.proposalService.proposal.isBroker) ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n this.checkEndorsementHistory();\r\n this.hideAllEndorsementsForRenewedCMBWPB =\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Renewed\r\n ? true\r\n : false;\r\n this.isLapsed =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n //CS CBG SG only limit to CBG and endorsementType = ChangeOfClientInfo\r\n this.hideActionsCommandsForCSCBGSG = this.identityRolesService.IsCSCBGSG\r\n ? true\r\n : false;\r\n //Hide change of POI from DBS users\r\n this.hideActionsCommandsForDBSUsers = this.identityRolesService.isBroker\r\n ? true\r\n : false;\r\n if (this.hideActionsCommandsForDBSUsers) {\r\n this.setBttnVisibilityForDBSUsers();\r\n }\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n this.isUpgradable = this.CanUpgrade();\r\n\r\n this.isTransactionExpired = this.CheckIfExpired();\r\n this.isTransactionExpiredForRenewal = this.CheckIfExpiredForRenewal();\r\n\r\n this.setBindPolicyWording();\r\n\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n };\r\n\r\n private setBindPolicyWording() {\r\n if (\r\n this.proposal.transType === Enums.TransType.END ||\r\n this.proposal.transType === Enums.TransType.CAN\r\n ) {\r\n this.bindPolicy = \"Confirm\";\r\n } else {\r\n this.bindPolicy = \"Bind Policy\";\r\n }\r\n }\r\n\r\n private CanUpgrade(): boolean {\r\n let isUpgradable = false;\r\n //follow DataMember in : ~\\Baseline\\Chubb.ePolicy.Framework\\Library\\Common\\Entities\\ePolicy\\Model\\AuxiliaryModel.cs\r\n //small letter 'a', not capital 'A'\r\n if (common.isDefined(this.proposal.auxiliary)) {\r\n isUpgradable = this.proposal.auxiliary[\"allowUpgrade\"];\r\n } else {\r\n console.log(\"this.proposal.auxiliary['allowUpgrade'] is not Defined\");\r\n }\r\n return isUpgradable;\r\n }\r\n\r\n public CheckIfExpired() {\r\n const expirydate = this.proposal.qsMaster.qs_master_poi_endDate?.answer;\r\n const currentDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n if (currentDate > expirydate) return true;\r\n else return false;\r\n }\r\n\r\n public CheckIfExpiredForRenewal() {\r\n if (\r\n (this.proposal.transType === Enums.TransType.NEW ||\r\n this.proposal.transType === Enums.TransType.END ||\r\n this.proposal.transType === Enums.TransType.REN) &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n !this.proposal.auxiliary[\"IsPreviousYearTerminated\"] &&\r\n this.proposal.auxiliary[\"allowRenewal\"]\r\n )\r\n return true;\r\n else return false;\r\n }\r\n\r\n private setCancellationAdjustmentReferralRule() {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = false;\r\n this.proposal.referralMessageRequires = true;\r\n this.proposal.auxiliary[\"DisplayCancellationAdjustment\"] = false;\r\n this.proposalService.businessRulesManager.validateOperationUnderwriterCancellationAdj(\r\n false\r\n );\r\n }\r\n private MakeRedundantRuleReferralRule() {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = false;\r\n this.proposal.referralMessageRequires = true;\r\n this.actions.save.visible = false;\r\n this.proposalService.businessRulesManager.validateOperationUnderwriterMakeRedundant();\r\n }\r\n\r\n //HE-28\r\n // isRefUnderwriter - Flag to identify whether this is referral case for operator Underwriter user or not.\r\n private setSubmitButtonVisibilityForWpb() {\r\n // if (this.identityRolesService.isOperationUnderwriter) {\r\n // if (\r\n // common.isDefined(this.proposalService.businessRulesManager.echos) &&\r\n // this.proposalService.businessRulesManager.echos.length > 0\r\n // ) {\r\n // this.isRefUnderwriter = true;\r\n // //this.actions.submit.visible = !this.isRefUnderwriter;\r\n // this.proposal.referralMessageRequires = true;\r\n // } else {\r\n // this.isRefUnderwriter = false;\r\n // //this.actions.submit.visible = !this.isRefUnderwriter;\r\n // }\r\n // }\r\n switch (this.proposal.proposalStatus) {\r\n case Enums.ProposalStatus.Accepted:\r\n case Enums.ProposalStatus.Declined:\r\n case Enums.ProposalStatus.Renewed:\r\n case Enums.ProposalStatus.Endorsed:\r\n //if (this.identityRolesService.isOperationUnderwriter) {\r\n //this.actions.submit.visible = false;\r\n this.isRefUnderwriter = false;\r\n this.proposal.referralMessageRequires = false;\r\n this.isWpbReferred = false;\r\n //}\r\n break;\r\n case Enums.ProposalStatus.Referred:\r\n this.isRefUnderwriter = false;\r\n this.isWpbReferred = true;\r\n //actions related, do at API or AbstractButtonPanel\r\n // this.actions.accept.visible = false;\r\n // this.actions.approve.visible = true;\r\n // this.actions.submit.visible = false;\r\n // this.actions.save.visible = false;\r\n break;\r\n case Enums.ProposalStatus.Cancelled:\r\n case Enums.ProposalStatus.Lapsed:\r\n this.isWpbReferred = false;\r\n //this.actions.submit.visible = false;\r\n break;\r\n case Enums.ProposalStatus.Approved:\r\n this.isRefUnderwriter = false;\r\n // this.actions.submit.visible = false;\r\n // if (\r\n // this.proposal.transType === Enums.TransType.REN &&\r\n // this.proposal.endorsementType === Enums.EndorsementType.MakeRedundant\r\n // ) {\r\n // this.actions.accept.visible = false;\r\n // } else {\r\n // this.actions.accept.visible = true;\r\n // }\r\n break;\r\n case Enums.ProposalStatus.Incomplete:\r\n this.isWpbReferred = false;\r\n break;\r\n }\r\n }\r\n\r\n //Only Show button if is incomplete and endorsementType = ChangeOfClientInfo\r\n private setBttnVisibilityForCSCBGSG() {\r\n if (\r\n this.identityRolesService.IsCSCBGSG &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n this.actions.submit.visible = true;\r\n this.actions.save.visible = true;\r\n this.actions.makeRedundant.visible = true;\r\n } else {\r\n this.actions.submit.visible = false;\r\n this.actions.save.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n }\r\n }\r\n\r\n private setBttnVisibilityForDBSUsers() {\r\n if (\r\n this.hideActionsCommandsForDBSUsers &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPOI\r\n ) {\r\n this.actions.submit.visible = false;\r\n this.actions.save.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n this.actions.sendToChecker.visible = false;\r\n }\r\n }\r\n\r\n private checkEndorsementHistory = () => {\r\n /** Check the endorsementHistoryModel if any General/ Change Of SI Endorsement has been performed for the proposal\r\n * If yes, Hide the change of POI button\r\n */\r\n // reset the flag\r\n this.isGeneralOrSIEndorsed = false;\r\n if (\r\n common.isDefined(this.proposal.refreshedProposalEntity.endorsementHistory)\r\n ) {\r\n const endorsementHistoryDetails =\r\n this.proposal!.refreshedProposalEntity.endorsementHistory!.filter(\r\n function (obj) {\r\n return (\r\n obj.endorsementType === \"GeneralEndorsement\" ||\r\n obj.endorsementType === \"ChangeOfSumInsured\"\r\n );\r\n }\r\n );\r\n if (endorsementHistoryDetails.length > 0) {\r\n this.isGeneralOrSIEndorsed = true;\r\n }\r\n }\r\n };\r\n\r\n private proposalSaved = (event: KeyValue) => {\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.isWpbProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ? true\r\n : false;\r\n this.isCITIProduct = false;\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n // ? true\r\n // : false;\r\n this.hideAllButton();\r\n this.setButtonVisibility(actionsAllowed);\r\n // CbsOps has access only to the ChangeOfClientInfo & ChangeOfCorrespondenceAddress\r\n if (this.identityRolesService.IsCbsOps) {\r\n const actionsAllowedforops =\r\n this.proposalAvailableActionHelper.getAvailableActionsforCbsOps(\r\n this.proposalService.proposalEntity\r\n );\r\n this.setButtonVisibility(actionsAllowedforops);\r\n }\r\n //CS CBG SG user has access only to ChangeOfClientInfo\r\n if (this.identityRolesService.IsCSCBGSG) {\r\n const actionsAllowedForCSCBGSG =\r\n this.proposalAvailableActionHelper.getAvailableActionforCSCBGSG(\r\n this.proposalService.proposalEntity\r\n );\r\n this.setButtonVisibility(actionsAllowedForCSCBGSG);\r\n }\r\n //HE-28\r\n if (this.isWpbProduct && this.identityRolesService.isUnderwriter) {\r\n this.setSubmitButtonVisibilityForWpb();\r\n }\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault ? false : true;\r\n this.hideActionsCommandsByIBG =\r\n (false && this.proposalService.proposal.isBroker) ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n this.checkEndorsementHistory();\r\n this.isLapsed =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n this.isUpgradable = this.CanUpgrade();\r\n this.isTransactionExpired = this.CheckIfExpired();\r\n this.isTransactionExpiredForRenewal = this.CheckIfExpiredForRenewal();\r\n this.setBindPolicyWording();\r\n };\r\n\r\n // /** adding Endorsement type optional parameter\r\n // * EndorsementType 1: General Endorsement\r\n // * EndorsementType 16: Loan Redemption\r\n // * EndorsementType 17: Change Of POI\r\n // */\r\n click(el: any) {\r\n let command = Number(el.getAttribute(\"data-command-id\"));\r\n let endorsementType = Number(el.getAttribute(\"data-endorsement-id\"));\r\n let additionalButtonType = Number(el.getAttribute(\"data-additional-id\")); //differentiate bind & refer-to-uw, & quote & approve\r\n // this.clickedButtonId = parseInt(event.key, 10);//todo: need to implement ButtonDefaultComponent for this\r\n this.clickedButtonId = command; //todo: temp\r\n // const command = event.value.c;\r\n //const endorsementType = event.value.t;\r\n switch (+command) {\r\n case Enums.ProposalCommandAction.Save:\r\n case Enums.ProposalCommandAction.Recalculate:\r\n this.proposalService.action(command, this.clickedButtonId);\r\n break;\r\n case Enums.ProposalCommandAction.Exit:\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Renew:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n case Enums.ProposalCommandAction.EditQuotation:\r\n this.actionsConfirmationModal(\r\n command,\r\n endorsementType,\r\n additionalButtonType\r\n );\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n\r\n getSubmitButNotReferMsg() {\r\n let msg: string = \"\";\r\n //DBSEP-2136\r\n if (this.proposal.transType) {\r\n if (this.proposal.transType === Enums.TransType.CAN) {\r\n msg = this.msg_cancelWarning;\r\n } else if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n msg = this.msg_bindPolicyWarning;\r\n } else {\r\n msg = this.msg_endorseWarning;\r\n }\r\n } else {\r\n msg = this.msg_endorseWarning;\r\n }\r\n\r\n return msg;\r\n }\r\n\r\n getMessage(\r\n command: Enums.ProposalCommandAction,\r\n endorsementType: any,\r\n additionalButtonType: any\r\n ): string {\r\n let msg: string = \"\";\r\n switch (+command) {\r\n case Enums.ProposalCommandAction.Exit:\r\n msg = this.msg_exitWarning;\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n msg = this.msg_sendToCheckerWarning;\r\n break;\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n msg = this.msg_returnToReviseWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n if (additionalButtonType === 2) {\r\n msg = this.msg_referPolicyWarning; //HE-170: as long as refer-button clicked, show this msg\r\n } else {\r\n msg = this.getSubmitButNotReferMsg();\r\n }\r\n\r\n break;\r\n case Enums.ProposalCommandAction.Approve:\r\n msg = this.isWpbProduct\r\n ? this.msg_IBG_approveWarning\r\n : this.msg_approveWarning;\r\n if (\r\n this.identityRolesService.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n this.isWpbProduct &&\r\n this.proposal.transType === Enums.TransType.REN &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ) {\r\n if (\r\n this.proposalService.proposal.endorsementType ===\r\n Enums.EndorsementType.MakeRedundant\r\n ) {\r\n command = Enums.ProposalCommandAction.MakeRedundant;\r\n }\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Renew:\r\n msg = this.msg_renewWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Decline:\r\n msg = this.isWpbProduct\r\n ? this.msg_IBG_declineWarning\r\n : this.msg_declineWarning;\r\n break;\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n msg = this.msg_redundantWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Accept:\r\n msg = this.msg_bindPolicyWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Endorse:\r\n if (endorsementType === Enums.EndorsementType.LoanRedemption) {\r\n msg = this.msg_loanRedemptionWarning;\r\n } else if (endorsementType === Enums.EndorsementType.ChangeOfPOI) {\r\n msg = this.msg_changeOfPOIWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfSumInsured\r\n ) {\r\n msg = this.msg_changeOfSIWarning;\r\n } else if (\r\n endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n msg = this.msg_changeOfCorrAddressWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfAdditionalInsured\r\n ) {\r\n msg = this.msg_changeOfAdditionalInsuredWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n msg = this.msg_changeOfClientInfo;\r\n //2022-08-24 dagoh0: APACDM-363 - Handle Change of Plan Type confirmation message\r\n } else if (endorsementType === Enums.EndorsementType.ChangeOfPlanType) {\r\n msg = this.msg_changeOfPlanType;\r\n } else {\r\n msg = this.msg_endorseWarning;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Cancel:\r\n msg = this.msg_cancelWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Copy:\r\n msg = this.msg_copyWarning;\r\n break;\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n msg = this.msg_editWarning;\r\n break;\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n msg = this.msg_cancellationAdjustmentWarning;\r\n break;\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n msg = this.msg_changeOfCorrAddressWarning;\r\n break;\r\n case Enums.ProposalCommandAction.EditQuotation:\r\n msg = this.msg_editapprovedquotation;\r\n break;\r\n default:\r\n }\r\n\r\n return msg;\r\n }\r\n\r\n actionsConfirmationModal = (\r\n command: Enums.ProposalCommandAction,\r\n endorsementType: any,\r\n additionalButtonType: any\r\n ): void => {\r\n let msg: string = this.getMessage(\r\n command,\r\n endorsementType,\r\n additionalButtonType\r\n );\r\n\r\n const data: InterfaceProduct.IDialogMessage = {\r\n message: msg,\r\n tabClicked: command,\r\n };\r\n if (common.isDefined(endorsementType)) {\r\n data.checkedStatus = endorsementType; // using checkedStatus to know the general and loan redemption endorsement type\r\n }\r\n if (\r\n command === Enums.ProposalCommandAction.ReturnForRevise ||\r\n command === Enums.ProposalCommandAction.Decline\r\n ) {\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageWithReasonComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n } else {\r\n if (\r\n command === Enums.ProposalCommandAction.Submit ||\r\n command === Enums.ProposalCommandAction.Accept ||\r\n command === Enums.ProposalCommandAction.Approve\r\n ) {\r\n data.productId = this.proposal.productId;\r\n\r\n this.proposal.addtionalEndorsementType = additionalButtonType; //differentiate quote & approve\r\n this.isWpbProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB;\r\n // CBG General Endorsement doesn't create Document, hence the print option poppup will not show for any role.\r\n\r\n //todo: http://bitbucket.apac.chubb.com/projects/DBSEP/repos/chubb-ep2-ui/commits/d4df8fb8c0d0d3e4ea4f6c4a191d8a0b7fcce1d3\r\n if (false /*this.isIBGProduct*/) {\r\n // if (\r\n // additionalButtonType !== 2 &&\r\n // this.proposal.transType == Enums.TransType.END &&\r\n // this.proposal.endorsementType ==\r\n // Enums.EndorsementType.GeneralEndorsement\r\n // ) {\r\n this.showMdConfirmationMessageV1(data);\r\n } else {\r\n var isValid = true;\r\n if (\r\n additionalButtonType === 2 &&\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ) {\r\n isValid = this.proposalService.ReferValidate(\r\n data.tabClicked,\r\n this.clickedButtonId\r\n );\r\n\r\n if (isValid) {\r\n this.doRefer(data.tabClicked, msg);\r\n }\r\n } else if (\r\n additionalButtonType === 4 &&\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ) {\r\n //if WPB+approve, also skip PrintOptionPopup\r\n this.showMdConfirmationMessageV1(data);\r\n } else {\r\n this.PrintOptionPopup(data);\r\n }\r\n }\r\n } else {\r\n this.showMdConfirmationMessageV1(data);\r\n }\r\n }\r\n };\r\n\r\n private showMdConfirmationMessageV1(data: InterfaceProduct.IDialogMessage) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: data.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n confirmationModalCloseForLST = (data: any): void => {\r\n if (data.status === \"yes\") {\r\n }\r\n };\r\n\r\n private PrintOptionPopup(data: InterfaceProduct.IDialogMessage) {\r\n if (this.identityRolesService.isChecker) {\r\n // 'REF' is prefix of all referral policy validation fail message key\r\n var referralPolicy =\r\n this.proposalService.businessRulesManager.echos.length > 0\r\n ? this.proposalService.businessRulesManager.echos[0].echos.filter(\r\n function (item) {\r\n return item.key!.indexOf(\"REF\") == 0;\r\n }\r\n )\r\n : new Array>();\r\n // when checker is checking non referral policy,\r\n // we need to set print type 1 (print to mail) autometically,\r\n // even though the print popup is not showing.\r\n // and need to set default Password Protected is true for CBG and false for IBG.\r\n if (referralPolicy.length == 0) {\r\n // Default Print Type is Send to Mail\r\n var option = [\r\n {\r\n label: \"Email\",\r\n value: \"2\",\r\n },\r\n {\r\n label: \"SMS\",\r\n value: \"5\",\r\n },\r\n {\r\n label: \"Mail\",\r\n value: \"1\",\r\n },\r\n ];\r\n data.selectedPrintType = option.filter(\r\n (x) =>\r\n x.value ==\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer\r\n )[0];\r\n if (data.selectedPrintType.value == 1) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n } else if (data.selectedPrintType.value == 2) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n } else if (data.selectedPrintType.value == 5) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n }\r\n // Checking IBG Product\r\n if (false /*this.isIBGProduct */) {\r\n data.isPasswordProtected = false;\r\n } else {\r\n data.isPasswordProtected = true;\r\n }\r\n }\r\n this.showMdConfirmationMessageV1(data);\r\n } else {\r\n if (this.proposal!.customerMappingId! > 0 && !this.isRefUnderwriter) {\r\n this.clientService\r\n .get(\r\n this.proposal.customerMappingId!,\r\n this.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n const clientData = response;\r\n if (clientData) {\r\n data.printCorrespondence = clientData.emailAddress;\r\n }\r\n this.showPrintOptionDialog(data);\r\n });\r\n } else {\r\n if (!this.isRefUnderwriter) {\r\n this.showPrintOptionDialog(data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n showPrintOptionDialog = (data: any): void => {\r\n data.preferredDeliveryMethod =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer;\r\n data.emailId =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n data.mobileNo =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n data.contactInfo =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n data.confimationMsg = this.isWpbProduct\r\n ? \"* Any value entered will not be updated into the Client Master database.\"\r\n : \"* Any value entered will not be updated into the Client Master database.\";\r\n\r\n const v4DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV4Component,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v4DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationPrintOptionSelection(result);\r\n }\r\n });\r\n };\r\n\r\n doRefer(command: any, msg: string) {\r\n this.proposalService.referAction(command, this.clickedButtonId, msg);\r\n }\r\n\r\n confirmationPrintOptionSelection = (result: any): void => {\r\n if (result.status === \"yes\") {\r\n let data = result.data;\r\n this.showMdConfirmationMessageV1(data);\r\n }\r\n };\r\n\r\n cbgManualUnderwritingMessage = (): any => {\r\n let message: any = this.msg_bindPolicyWarning;\r\n const isIBGProduct = false;\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ? true\r\n // : false;\r\n if (!isIBGProduct) {\r\n if (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\"\r\n ) {\r\n if (\r\n this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfSumInsured\r\n ) {\r\n const quote = this.proposal.refreshedProposalEntity.quotes;\r\n if (common.isDefined(quote) && quote && quote.length > 0) {\r\n if (common.isDefined(quote[0].premiumSummary)) {\r\n if (\r\n quote[0].premiumSummary.premium === 0 ||\r\n quote[0].premiumSummary.premiumTax === 0\r\n ) {\r\n message = this.msg_bindCBGPolicyWarning;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return message;\r\n };\r\n\r\n confirmationModalCloseForActions = (response: any): void => {\r\n if (response.status === \"yes\") {\r\n let data = response.data;\r\n switch (data.tabClicked) {\r\n case Enums.ProposalCommandAction.Exit:\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Renew:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n case Enums.ProposalCommandAction.EditQuotation:\r\n if (\r\n data.tabClicked == Enums.ProposalCommandAction.Submit ||\r\n data.tabClicked == Enums.ProposalCommandAction.Approve ||\r\n data.tabClicked == Enums.ProposalCommandAction.Accept\r\n ) {\r\n if (data.selectedPrintType != null) {\r\n this.proposalService.proposal.printType =\r\n data.selectedPrintType.value;\r\n this.proposalService.proposal.printCorrespondence =\r\n data.printCorrespondence;\r\n this.proposalService.proposal.isPasswordProtected =\r\n data.isPasswordProtected;\r\n this.proposalService.proposal.isReprint = false;\r\n this.proposalService.proposal.isSummary = false;\r\n this.proposalService.proposal.isManual = false;\r\n }\r\n }\r\n if (\r\n data.tabClicked === Enums.ProposalCommandAction.Renew &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Accepted\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.required =\r\n false;\r\n //Reset Clauses added flag for renewal cases\r\n this.proposal.qsMaster.qs_master_clausesflag!.answer = \"false\";\r\n } else {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.required =\r\n true;\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Copy) {\r\n this.proposal.qsMaster.qs_master_clausesflag!.answer = \"false\";\r\n }\r\n if (\r\n data.tabClicked === Enums.ProposalCommandAction.ReturnForRevise ||\r\n data.tabClicked === Enums.ProposalCommandAction.Decline\r\n ) {\r\n // assign the [return to revise reason] / [Decline reason] to aux actionReason property\r\n this.proposalService.proposal.auxiliary = {\r\n actionReason: data.message,\r\n };\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Endorse) {\r\n // set the endorsementType\r\n /** EndorsementType 1: General Endorsement\r\n * EndorsementType 16: Loan Redemption\r\n EndorsementType 17: Change Of POI\r\n EndorsementType 8: Change Of SI\r\n */\r\n // Handling only for Endorsement Reason Question because it will reset for every endorsement raised\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n \"\";\r\n switch (data.checkedStatus) {\r\n case Enums.EndorsementType.LoanRedemption:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.LoanRedemption;\r\n break;\r\n case Enums.EndorsementType.ChangeOfPOI:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfPOI;\r\n break;\r\n case Enums.EndorsementType.ChangeOfSumInsured:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfSumInsured;\r\n break;\r\n case Enums.EndorsementType.ChangeOfCorrespondenceAddress:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress;\r\n break;\r\n case Enums.EndorsementType.ChangeOfAdditionalInsured:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfAdditionalInsured;\r\n break;\r\n case Enums.EndorsementType.ChangeOfClientInfo:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfClientInfo;\r\n break;\r\n case Enums.EndorsementType.GstAdjustment:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.GstAdjustment;\r\n break;\r\n //2022-08-23 dagoh0: APACDM-363 - Assign Endorsement Type\r\n case Enums.EndorsementType.ChangeOfPlanType:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfPlanType;\r\n break;\r\n default:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.GeneralEndorsement;\r\n break;\r\n }\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Cancel) {\r\n // Handling only for Endorsement Reason Question because it will reset for cancellation raised\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n \"\";\r\n }\r\n if (\r\n data.tabClicked ===\r\n Enums.ProposalCommandAction.CancellationAdjustment\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.CancellationAdjustment;\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n false /*this.isIBGProduct*/\r\n ) {\r\n this.setCancellationAdjustmentReferralRule();\r\n }\r\n }\r\n if (\r\n data.tabClicked ===\r\n Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress;\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.MakeRedundant) {\r\n if (\r\n (this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfClientInfo)\r\n ) {\r\n this.clientService.clientDictionary = {};\r\n }\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n false /*this.isIBGProduct*/ &&\r\n this.proposal.transType === Enums.TransType.REN &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.MakeRedundant;\r\n // this.proposal.auxiliary['IsMakeRedundant']=\"true\";\r\n this.MakeRedundantRuleReferralRule();\r\n break;\r\n }\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Approve) {\r\n this.isWpbReferred = false;\r\n this.actions.submit.visible = false;\r\n }\r\n // notify button start event\r\n buttonNotifier.start_notifier$.next(\r\n new KeyValue(this.clickedButtonId.toString(), \"start\")\r\n );\r\n this.proposalService.action(data.tabClicked, this.clickedButtonId);\r\n break;\r\n default:\r\n // do nothing since all the command actions should be handled.\r\n break;\r\n }\r\n }\r\n };\r\n\r\n openMessageForum(event?: any, UnderwriterInternalComment?: any): void {\r\n const data = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n policyNumber: this.proposal.policyNumber,\r\n isUnderwriterInternalComment: UnderwriterInternalComment,\r\n productId: this.proposal.productId.toString(),\r\n printCorrespondence: \"\",\r\n preferredDeliveryMethod:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer,\r\n emailId:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer,\r\n mobileNo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer,\r\n contactInfo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!\r\n .answer,\r\n transType: this.proposal.transType,\r\n proposalStatus: this.proposal.proposalStatus,\r\n loanRedeemed: this.proposal.loanRedeemed,\r\n policyExpiryDate: this.proposal.qsMaster.qs_master_poi_endDate!.answer,\r\n proposalType: this.proposal.productType,\r\n pendingTransaction: this.proposal.pendingTransaction,\r\n isPreviousYearTerminated:\r\n this.proposal.auxiliary[\"IsPreviousYearTerminated\"],\r\n allowRenewal: this.proposal.auxiliary[\"allowRenewal\"],\r\n confimationMsg: this.isWpbReferred\r\n ? \"* Any value entered will not be updated into the Client Master database.\"\r\n : \"* Any value entered will not be updated into the Client Master database.\",\r\n };\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 5) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n }\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 2) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n }\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 1) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n }\r\n if (this.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposal.customerMappingId!,\r\n this.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n var clientData = response;\r\n if (clientData) {\r\n data.printCorrespondence = clientData.emailAddress;\r\n }\r\n this.showMessageForum(data);\r\n });\r\n } else {\r\n this.showMessageForum(data);\r\n }\r\n }\r\n\r\n showMessageForum = (data?: any): void => {\r\n const v1DialogRef = this.cdkDialogService.open(MessageForumComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n };\r\n\r\n openContactUs(event?: any, UnderwriterInternalComment?: any): void {\r\n const data = {\r\n proposalId: this.proposal.proposalId,\r\n isUnderwriterInternalComment: UnderwriterInternalComment,\r\n productId: this.proposal.productId,\r\n };\r\n const v1DialogRef = this.cdkDialogService.open(MfContactUsFormComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n openCreateNew(event?: any, UnderwriterInternalComment?: any): void {\r\n let productSelectionInputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: null,\r\n message: \"\",\r\n };\r\n\r\n const productSelectionDialogRef = this.cdkDialogService.open(\r\n MdProductSelectionDialogComponent,\r\n {\r\n data: productSelectionInputData,\r\n }\r\n );\r\n\r\n productSelectionDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n\r\n event.preventDefault(); //do not goes further\r\n }\r\n // delete() {\r\n // }\r\n // messageBoard() {\r\n // }\r\n // }\r\n //#endregion\r\n}\r\n","\r\n
\r\n \r\n \r\n  Save\r\n \r\n\r\n \r\n \r\n  Send To Checker\r\n \r\n\r\n \r\n \r\n  Return To Revise\r\n \r\n \r\n \r\n  Quote\r\n \r\n\r\n \r\n \r\n  Edit Quote\r\n \r\n\r\n \r\n \r\n \r\n  Refer to Underwriter\r\n \r\n\r\n \r\n \r\n  Checked\r\n  {{ bindPolicy }}\r\n \r\n\r\n \r\n \r\n  Renew\r\n \r\n\r\n \r\n \r\n  Decline\r\n \r\n \r\n \r\n \r\n  Approve\r\n \r\n\r\n \r\n \r\n  Cancellation Adjustment\r\n \r\n\r\n \r\n \r\n  Edit\r\n \r\n\r\n \r\n \r\n \r\n \r\n  Loan Redemption\r\n \r\n\r\n \r\n \r\n \r\n  Change of Plan Type\r\n \r\n\r\n \r\n \r\n \r\n  Edit POI\r\n \r\n\r\n \r\n \r\n \r\n  Edit Sum. Ins.\r\n \r\n\r\n \r\n \r\n  Edit Corr. Add\r\n \r\n\r\n \r\n \r\n  Edit Client. Info.\r\n \r\n\r\n \r\n \r\n \r\n  Edit Add. Ins.\r\n \r\n\r\n \r\n \r\n  Terminate\r\n \r\n\r\n \r\n \r\n  Edit\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport {\r\n SelectEvent,\r\n TabAlignment,\r\n TabStripComponent,\r\n} from \"@progress/kendo-angular-layout\";\r\n\r\n@Component({\r\n selector: \"app-configurables\",\r\n templateUrl: \"./configurables.component.html\",\r\n styleUrls: [\"./configurables.component.scss\"],\r\n})\r\nexport class ConfigurablesComponent implements OnInit {\r\n @ViewChild(\"tabstrip\") public tabstrip!: TabStripComponent;\r\n\r\n public alignment: TabAlignment = \"justify\";\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onTabSelect(e: SelectEvent) {}\r\n\r\n selectFirstTab(val: any): void {\r\n this.tabstrip.selectTab(0);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseConfigurablesListComponent } from \"src/app/components/new-product/base/base-configurables-list/base-configurables-list.component\";\r\nimport { MfHkConfigEditCriteria } from \"src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria\";\r\nimport { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"mf-hk-deductible-list\",\r\n templateUrl: \"./deductible-list.component.html\",\r\n styleUrls: [\"./deductible-list.component.scss\"],\r\n})\r\nexport class DeductibleListComponent\r\n extends BaseConfigurablesListComponent\r\n implements OnInit\r\n{\r\n public coverageTypeOptions: Array<{ text: string; value: string }> = [\r\n { text: \"Fire\", value: \"84B90097-F4C7-4AAA-9B99-71FE8CD7355E\" },\r\n {\r\n text: \"Property All Risk\",\r\n value: \"4AE939D5-8FAF-4AF5-8B4F-8822ED23B817\",\r\n },\r\n ];\r\n\r\n override ngOnInit(): void {\r\n this.model.typeId = ConfigurableMode.Deductibles; //do before super.ngOnInit() for loading list\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n addNewDeductible(val: any) {\r\n this.editModel = new MfHkConfigEditCriteria(); //reset\r\n\r\n this.isAdd = true;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { CellClickEvent } from \"@progress/kendo-angular-grid\";\r\nimport { BaseConfigurablesListComponent } from \"src/app/components/new-product/base/base-configurables-list/base-configurables-list.component\";\r\nimport { ConfigListingEntity } from \"src/app/components/new-product/base/base-configurables-list/config-listing-entity\";\r\nimport { ConfigurableFilterComponent } from \"src/app/components/shared/partials/configurable-filter/configurable-filter.component\";\r\nimport { MfHkConfigEditCriteria } from \"src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria\";\r\n\r\n@Component({\r\n selector: \"mf-hk-endorsement-list\",\r\n templateUrl: \"./endorsement-list.component.html\",\r\n styleUrls: [\"./endorsement-list.component.scss\"],\r\n})\r\nexport class EndorsementListComponent\r\n extends BaseConfigurablesListComponent\r\n implements OnInit\r\n{\r\n @ViewChild(\"childConfigurableFilter\", { static: false })\r\n childConfigurableFilter!: ConfigurableFilterComponent;\r\n\r\n public coverageTypeOptions: Array<{ text: string; value: string }> = [\r\n { text: \"Fire\", value: \"84B90097-F4C7-4AAA-9B99-71FE8CD7355E\" },\r\n {\r\n text: \"Property All Risk\",\r\n value: \"4AE939D5-8FAF-4AF5-8B4F-8822ED23B817\",\r\n },\r\n ];\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n addNewClausesAndWarranties(val: any) {\r\n this.editModel = new MfHkConfigEditCriteria(); //reset\r\n\r\n this.isAdd = true;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","/** study materials\r\n\r\nhttps://stackoverflow.com/questions/3635754/sql-select-between-exact-number-of-rows\r\n\r\nselect * from\r\n (select Row_Number() over\r\n (order by userID) as RowIndex, * from users) as Sub\r\n Where Sub.RowIndex >= 235 and Sub.RowIndex <= 250\r\n */\r\n\r\nimport { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\n\r\nexport class MfHkEndorsementListSearchCriteria {\r\n constructor() {\r\n this.coverageTypes = new Array();\r\n this.title = \"\";\r\n this.code = \"\";\r\n }\r\n\r\n coverageTypes: Array;\r\n code?: string;\r\n title?: string;\r\n typeId: ConfigurableMode = ConfigurableMode.Clauses;\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseConfigurablesListComponent } from \"src/app/components/new-product/base/base-configurables-list/base-configurables-list.component\";\r\nimport { MfHkConfigEditCriteria } from \"src/app/components/shared/partials/configurable-form-edit/mf-hk-config-edit-criteria\";\r\nimport { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"mf-hk-extra-peril-list\",\r\n templateUrl: \"./extra-peril-list.component.html\",\r\n styleUrls: [\"./extra-peril-list.component.scss\"],\r\n})\r\nexport class ExtraPerilListComponent\r\n extends BaseConfigurablesListComponent\r\n implements OnInit\r\n{\r\n public coverageTypeOptions: Array<{ text: string; value: string }> = [\r\n { text: \"Fire\", value: \"84B90097-F4C7-4AAA-9B99-71FE8CD7355E\" },\r\n ];\r\n\r\n override ngOnInit(): void {\r\n this.model.typeId = ConfigurableMode.ExtraPerils; //do before super.ngOnInit() for loading list\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n addNewExtraPeril(val: any) {\r\n this.editModel = new MfHkConfigEditCriteria(); //reset\r\n\r\n this.isAdd = true;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as FinanceConstant from \"src/app/finance/finance-constant\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { DocumentService } from \"src/app/services/document/document.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\n@Component({\r\n selector: \"mf-hk-header\",\r\n templateUrl: \"./mf-hk-header.component.html\",\r\n styleUrls: [\"./mf-hk-header.component.scss\"],\r\n})\r\nexport class MfHkHeaderComponent extends MfHkBaseComponent implements OnInit {\r\n @Input() proposal!: MortgageFireHongKongProposal; //temp using @Input()\r\n transTypeText!: string;\r\n proposalStatusText!: string;\r\n pid!: string;\r\n isDisplay: boolean = false;\r\n docTypeText!: string;\r\n displayChecker: boolean = false;\r\n displayMaker: boolean = false;\r\n displayOpenItem: boolean = false;\r\n displayOriginalPolicyNo: boolean = false;\r\n transOpenItemStatus!: string;\r\n\r\n public openItemId!: string;\r\n public openItemDetailsOpened: boolean = false;\r\n\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n private documentService: DocumentService\r\n ) {\r\n super();\r\n }\r\n\r\n hasQuoteNumber() {\r\n if (common.isDefined(this.proposal)) {\r\n return (\r\n this.proposal!.quoteNumber !== \"\" &&\r\n this.proposal!.quoteNumber !== undefined\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n override ngOnInit(): void {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n }\r\n\r\n initialize() {}\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n if (\r\n this.proposal.transType === Enum.TransType.END ||\r\n this.proposal.transType === Enum.TransType.CAN\r\n ) {\r\n this.isDisplay = true;\r\n }\r\n if (!common.isUndefinedOrNull(this.proposal.openItems)) {\r\n if (this.proposal.openItems.length > 0) {\r\n this.displayOpenItem = true;\r\n this.transOpenItemStatus =\r\n FinanceConstant.openItemDisplayStatus[\r\n this.proposal.openItems[0].Status\r\n ];\r\n }\r\n } else {\r\n this.displayOpenItem = false;\r\n }\r\n\r\n this.proposalStatusText = proposalCommon.translateProposalStatus(\r\n this.proposal.proposalStatus,\r\n this.proposal.transType!\r\n );\r\n\r\n if (this.checkExpiredPolicy()) {\r\n this.proposalStatusText = \"Expired\";\r\n }\r\n\r\n if (\r\n this.proposal.productId?.toString().toUpperCase() ==\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n ) {\r\n if (this.proposalStatusText.indexOf(\"Approved\") != -1) {\r\n this.proposalStatusText = \"Approved\";\r\n }\r\n }\r\n this.transTypeText = proposalCommon.translateTransType(\r\n this.proposal!.transType!,\r\n this.proposal.endorsementType!\r\n );\r\n this.pid = this.proposal.proposalId!.toId.toString();\r\n this.displayChecker =\r\n common.isDefined(this.proposal.checkerUserName) && false;\r\n this.displayMaker = common.isDefined(this.proposal.makerUserName) && false;\r\n if (this.proposal.documents.length > 0) {\r\n const newDocuments: Array> = [];\r\n this.proposal.documents.forEach((doc: Enum.DocumentType) => {\r\n const docText: string = proposalCommon.translateDocumentType(doc);\r\n newDocuments.push(new KeyValue(String(doc), docText));\r\n });\r\n this.proposal.documents = newDocuments;\r\n }\r\n\r\n /** The original Policy Number will be available only for migrated policies */\r\n const replacingPolicyNo =\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.readAnswerAsString();\r\n this.displayOriginalPolicyNo =\r\n common.isDefined(replacingPolicyNo) &&\r\n replacingPolicyNo !== \"\" &&\r\n replacingPolicyNo !== null\r\n ? true\r\n : false;\r\n };\r\n\r\n public downloadDocument = (docType: any, pid?: any): void => {\r\n const params = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n documentType: docType,\r\n };\r\n this.documentService.downloadProposalDocument(params);\r\n };\r\n\r\n public showDetails = (): void => {\r\n const postData = { openItemId: this.proposal.openItems[0].Id };\r\n this.openItemId = postData.openItemId;\r\n this.openItemDetailsOpened = true;\r\n };\r\n confirmationModalCloseForActions = (data: any): void => {\r\n this.openItemDetailsOpened = false;\r\n };\r\n\r\n public checkExpiredPolicy() {\r\n const expirydate = this.proposal.qsMaster.qs_master_poi_endDate?.answer;\r\n const currentDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n if (\r\n currentDate > expirydate &&\r\n this.proposal.proposalStatus == Enum.ProposalStatus.Accepted\r\n )\r\n return true;\r\n else return false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ proposal!.policyNumber }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ proposal!.quoteNumber }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

{{ proposal!.checkerUserName }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{ proposal!.makerUserName }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{\r\n proposal!.qsMaster.qs_master_replacePolicyNo!.answer\r\n }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{\r\n proposalStatusText\r\n }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n 0\r\n }\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ transTypeText }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{\r\n document.value\r\n }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n History Details\r\n
\r\n

{{ transOpenItemStatus }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { CdkDialogService } from \"../../../../../../../../services/dialog/cdk-dialog.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { BaseTodoListComponent } from \"../../../../../../base/base-todo-list/base-todo-list.component\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { MfHkSearchCriteria } from \"../mf-hk-todo-list/mf-hk-search-criteria\";\r\nimport { HaseTodoPolicyListingEntity } from \"../mf-hk-todo-list/HaseTodoPolicyListingEntity\";\r\nimport * as HomeConstant from \"src/app/components/new-product/home/home-constant\";\r\nimport { OpenItemStatus } from \"src/app/finance/finance-enums\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { PolicyListingEntity } from \"src/app/components/new-product/home/policy-list/PolicyListingEntity\";\r\nimport { BaseTodoPolicyListingEntity } from \"src/app/components/new-product/base/base-todo-list/BaseTodoPolicyListingEntity\";\r\nimport { GridComponent } from \"@progress/kendo-angular-grid\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-policy-list\",\r\n templateUrl: \"./mf-hk-policy-list.component.html\",\r\n styleUrls: [\"./mf-hk-policy-list.component.scss\"],\r\n})\r\n//most of the filters shares with BaseTodoListComponent, only nested grid different, hence inherited from BaseTodoListComponent\r\nexport class MfHkPolicyListComponent\r\n extends BaseTodoListComponent\r\n implements OnInit\r\n{\r\n override model = new MfHkSearchCriteria();\r\n override listing: HaseTodoPolicyListingEntity[] = [];\r\n override proposalStatusOptions: Array<{ text: string; value: number }> = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Accepted\", value: 2 },\r\n { text: \"Approved\", value: 1 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Declined\", value: 4 },\r\n ];\r\n\r\n migratedOptions: Array<{ text: string; value: string }> = [\r\n //{ text: \"All\", value: \"\" },\r\n { text: \"Migrated\", value: \"1\" },\r\n { text: \"Non-Migrated\", value: \"0\" },\r\n ];\r\n\r\n public defaultMigratedItem: { text: string; value: string } = {\r\n text: \"All\",\r\n value: \"\",\r\n };\r\n\r\n @ViewChild(GridComponent) grid!: GridComponent;\r\n\r\n @ViewChild(\"toDoInterfaceDateTo\", { static: false })\r\n public toDoInterfaceDateTo!: DatePickerComponent;\r\n\r\n public toDoInterfaceDateTo_min!: Date;\r\n public toDoInterfaceDateTo_max!: Date;\r\n public httpRequesting: boolean = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override masterDataService: MasterDataService,\r\n public override uploadService: UploadExcelService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n masterPolicyService,\r\n masterDataService,\r\n uploadService,\r\n cdkDialogService\r\n );\r\n }\r\n\r\n //DBSEP-7247: https://www.telerik.com/kendo-angular-ui/components/grid/master-detail/expanded-state/\r\n public expandedDetailKeys: number[] = [];\r\n\r\n public expandDetailsBy = (dataItem: BaseTodoPolicyListingEntity): string => {\r\n return dataItem.proposalId;\r\n };\r\n\r\n //#region\r\n protected override defaultSearchCriteria() {\r\n super.defaultSearchCriteria();\r\n\r\n // effectiveDateFrom (14 days earlier from today)\r\n const interfaceDateFrom: Date = new Date(new Date().getFullYear(), 0, 1);\r\n //this.model.interfaceDateFrom = interfaceDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const interfaceDateTo: Date = new Date(\r\n interfaceDateFrom.getFullYear(),\r\n 11,\r\n 31\r\n );\r\n // this.model.interfaceDateTo = interfaceDateTo;\r\n }\r\n\r\n protected override fetchUserList() {\r\n if (this.identityRolesService.isUnderwriter) {\r\n this.masterDataService\r\n .getHaseUnderwriterUserList()\r\n .subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n } else {\r\n this.masterDataService.getHaseUserList().subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n }\r\n }\r\n\r\n public on_searchInterfaceDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchInterfaceDateFrom_change(value: Date): void {\r\n if (this.model.interfaceDateFrom === null) {\r\n this.model.interfaceDateTo = undefined;\r\n this.toDoInterfaceDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoInterfaceDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.interfaceDateTo &&\r\n this.model.interfaceDateFrom &&\r\n this.model.interfaceDateTo < this.model.interfaceDateFrom\r\n ) {\r\n this.model.interfaceDateTo = undefined;\r\n this.toDoInterfaceDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoInterfaceDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.toDoInterfaceDateTo.toggle();\r\n this.on_searchInterfaceDateFrom_focus();\r\n }\r\n\r\n protected override modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"startDateFrom\", \"gte\", this.model.startDateFrom],\r\n [\"startDateTo\", \"gte\", this.model.startDateTo],\r\n [\"expiryDateFrom\", \"gte\", this.model.expiryDateFrom],\r\n [\"expiryDateTo\", \"gte\", this.model.expiryDateTo],\r\n [\"effectiveDateFrom\", \"gte\", this.model.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.model.effectiveDateTo],\r\n [\"quoteNo\", \"eq\", this.model.quoteNo],\r\n [\"policyNo\", \"eq\", this.model.policyNo],\r\n [\"masterPolicyId\", \"eq\", this.model.masterPolicyId],\r\n [\"cin\", \"eq\", this.model.cin],\r\n [\"insuredName\", \"eq\", this.model.insuredName],\r\n [\"productId\", \"eq\", this.model.productId],\r\n [\"proposalStatus\", \"eq\", this.model.proposalStatus],\r\n //[\"bankReferenceNo\", \"eq\", this.model.bankReferenceNo],\r\n [\"createdByUserId\", \"eq\", this.model.createdByUserId],\r\n //[\"userTeam\", \"eq\", this.model.userTeam],\r\n [\"additionalInsuredName\", \"eq\", this.model.additionalInsuredName],\r\n //[\"bcrn\", \"eq\", this.model.bcrn],\r\n //[\"riskAddressPostalCode\", \"eq\", this.model.riskAddressPostalCode],\r\n [\"insuredPropertyAddress\", \"eq\", this.model.insuredPropertyAddress],\r\n [\"interfaceDateFrom\", \"gte\", this.model.interfaceDateFrom],\r\n [\"interfaceDateTo\", \"lte\", this.model.interfaceDateTo],\r\n [\r\n \"mortgageLoanAccountNumber1\",\r\n \"eq\",\r\n this.model.mortgageLoanAccountNumber1,\r\n ],\r\n [\"migrated\", \"eq\", this.model.migrated],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n protected override checkFilter(): boolean {\r\n let array = this.modelToArray();\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i][2] != \"\" && array[i][2] != undefined) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\nprotected override refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n this.httpRequesting = true;\r\n const formData: FormData = this.setFormData();\r\n var result = this.checkFilter();\r\n if (result == true) {\r\n const data = {\r\n message: \"Please provide at least one search filter to proceed.\",\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.loading = false;\r\n this.httpRequesting = false;\r\n }\r\n });\r\n }\r\n else {\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.masterPolicyService.searchHasePolicyListing(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.expandedDetailKeys = []; //DBSEP-7247: has to be called every search to collapse the grid-detail\r\n this.httpRequesting = false;\r\n\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n this.httpRequesting = false;\r\n }\r\n );\r\n }\r\n}\r\n//#endregion\r\n\r\nprotected override setFormData(): FormData {\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"policyInceptionDate\"); //formData.append(\"sort[0][field]\", \"createdDate\");//diff with todo-list\r\n formData.append(\"sort[0][dir]\", \"desc\");\r\n\r\n let array = this.modelToArray();\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n}\r\n public getProposalTypeDisplayText(dataItem: any): string {\r\n return HomeConstant.transactionType[dataItem.proposalTransTypeId];\r\n }\r\n\r\n public hasTransactionHistories(dataItem: PolicyListingEntity): boolean {\r\n return dataItem.transactionHistories !== \"[]\";\r\n }\r\n\r\n public getOpenItemStatusDisplayText(dataItem: any): string {\r\n const openItemStatusEnum: OpenItemStatus = dataItem.openItemStatusId;\r\n\r\n return openItemStatusEnum === OpenItemStatus.Undefined\r\n ? \"-\"\r\n : proposalCommon.translateOpenItemStatus(openItemStatusEnum);\r\n }\r\n\r\n protected override fetchMasterPolicyList = async () => {\r\n this.masterPolicyOptions = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n\r\n this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n (result: any) => {\r\n this.masterPolicyList = result;\r\n\r\n // update list\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber;\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ advancedSearchCaption }}\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { CdkDialogService } from \"../../../../../../../../services/dialog/cdk-dialog.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { BaseTodoListComponent } from \"../../../../../../base/base-todo-list/base-todo-list.component\";\r\nimport { MfHkReport } from \"../mf-hk-todo-list/mf-hk-search-criteria\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { LOCALE_ID, Inject } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-report-list\",\r\n templateUrl: \"./mf-hk-report-list.component.html\",\r\n styleUrls: [\"./mf-hk-report-list.component.scss\"],\r\n})\r\n\r\nexport class MfHkReportComponent\r\n extends BaseTodoListComponent\r\n implements OnInit\r\n{\r\n public reportModel = new MfHkReport();\r\n public excelTemplate = new ExcelTemplateService();\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) public locale: string,\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override masterDataService: MasterDataService,\r\n public override uploadService: UploadExcelService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n masterPolicyService,\r\n masterDataService,\r\n uploadService,\r\n cdkDialogService\r\n );\r\n }\r\n\r\n public onExport(): void {\r\n this.reportModel = {\r\n reportId: this.reportModel.reportId == undefined && this.defaultReportListItem.value ? this.defaultReportListItem.value : this.reportModel.reportId,\r\n reportName: this.reportModel.reportName == undefined && this.defaultReportListItem.text ? this.defaultReportListItem.text : this.reportModel.reportName\r\n };\r\n this.masterPolicyService\r\n .exportReport(this.reportModel.reportId)\r\n .then(\r\n (result: any) => {\r\n const base64String = result.fileBytes;\r\n const decodedByteArray = Uint8Array.from(atob(base64String), c => c.charCodeAt(0));\r\n this.uploadService.generateAnchorAndTriggerDownload(\r\n decodedByteArray,\r\n result.filename\r\n );\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n
","import { SearchCriteria } from \"src/app/components/new-product/home/base/search-criteria\";\r\n/** study materials\r\n\r\nhttps://stackoverflow.com/questions/3635754/sql-select-between-exact-number-of-rows\r\n\r\nselect * from\r\n (select Row_Number() over\r\n (order by userID) as RowIndex, * from users) as Sub\r\n Where Sub.RowIndex >= 235 and Sub.RowIndex <= 250\r\n */\r\n\r\nexport class MfHkSearchCriteria extends SearchCriteria {\r\n constructor() {\r\n super();\r\n }\r\n\r\n interfaceDateFrom?: Date;\r\n interfaceDateTo?: Date;\r\n mortgageLoanAccountNumber1?: string;\r\n insuredPropertyAddress?: string;\r\n migrated?: string;\r\n}\r\n\r\nexport class MfHkReport{\r\n reportId!: string;\r\n reportName!: string;\r\n}","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { CdkDialogService } from \"../../../../../../../../services/dialog/cdk-dialog.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MasterPolicyService } from \"src/app/services/master-policy.service\";\r\nimport { BaseTodoListComponent } from \"../../../../../../base/base-todo-list/base-todo-list.component\";\r\nimport { MfHkSearchCriteria } from \"./mf-hk-search-criteria\";\r\nimport { HaseTodoPolicyListingEntity } from \"./HaseTodoPolicyListingEntity\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-todo-list\",\r\n templateUrl: \"./mf-hk-todo-list.component.html\",\r\n styleUrls: [\"./mf-hk-todo-list.component.scss\"],\r\n})\r\nexport class MfHkTodoListComponent\r\n extends BaseTodoListComponent\r\n implements OnInit\r\n{\r\n override model = new MfHkSearchCriteria();\r\n override listing: HaseTodoPolicyListingEntity[] = [];\r\n override proposalStatusOptions: Array<{ text: string; value: number }> = [\r\n { text: \"Draft\", value: 6 },\r\n { text: \"Accepted\", value: 2 },\r\n { text: \"Approved\", value: 1 },\r\n { text: \"Referred\", value: 3 },\r\n { text: \"Declined\", value: 4 },\r\n ];\r\n\r\n migratedOptions: Array<{ text: string; value: string }> = [\r\n //{ text: \"All\", value: \"\" },\r\n { text: \"Migrated\", value: \"1\" },\r\n { text: \"Non-Migrated\", value: \"0\" },\r\n ];\r\n\r\n public defaultMigratedItem: { text: string; value: string } = {\r\n text: \"All\",\r\n value: \"\",\r\n };\r\n\r\n @ViewChild(\"toDoInterfaceDateTo\", { static: false })\r\n public toDoInterfaceDateTo!: DatePickerComponent;\r\n\r\n public toDoInterfaceDateTo_min!: Date;\r\n public toDoInterfaceDateTo_max!: Date;\r\n public httpRequesting: boolean = false;\r\n\r\n constructor(\r\n public override router: Router,\r\n public override broadcastService: BroadcastService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override masterDataService: MasterDataService,\r\n public override uploadService: UploadExcelService,\r\n public override cdkDialogService: CdkDialogService\r\n ) {\r\n super(\r\n router,\r\n broadcastService,\r\n identityRolesService,\r\n masterPolicyService,\r\n masterDataService,\r\n uploadService,\r\n cdkDialogService\r\n );\r\n }\r\n\r\n //#region\r\n protected override defaultSearchCriteria() {\r\n super.defaultSearchCriteria();\r\n\r\n // effectiveDateFrom (14 days earlier from today)\r\n const interfaceDateFrom: Date = new Date(new Date().getFullYear(), 0, 1);\r\n //this.model.interfaceDateFrom = interfaceDateFrom;\r\n\r\n // effectiveDateFrom ( 6 months after effectiveDateFrom)\r\n const interfaceDateTo: Date = new Date(\r\n interfaceDateFrom.getFullYear(),\r\n 11,\r\n 31\r\n );\r\n //this.model.interfaceDateTo = interfaceDateTo;\r\n }\r\n\r\n protected override fetchUserList() {\r\n if (this.identityRolesService.isUnderwriter) {\r\n this.masterDataService\r\n .getHaseUnderwriterUserList()\r\n .subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n } else {\r\n this.masterDataService.getHaseUserList().subscribe((response) => {\r\n // update list\r\n var keyValueUserList = response;\r\n keyValueUserList.forEach((mp) => {\r\n this.userList.push({ text: mp.value, value: mp.key });\r\n });\r\n });\r\n }\r\n }\r\n\r\n public on_searchInterfaceDateFrom_focus(): void {\r\n if (this.toDoStartDateTo.isOpen) {\r\n this.toDoStartDateTo.toggle();\r\n }\r\n if (this.toDoExpiryDateTo.isOpen) {\r\n this.toDoExpiryDateTo.toggle();\r\n }\r\n }\r\n\r\n public on_searchInterfaceDateFrom_change(value: Date): void {\r\n if (this.model.interfaceDateFrom === null) {\r\n this.model.interfaceDateTo = undefined;\r\n this.toDoInterfaceDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoInterfaceDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n return;\r\n }\r\n if (\r\n this.model.interfaceDateTo &&\r\n this.model.interfaceDateFrom &&\r\n this.model.interfaceDateTo < this.model.interfaceDateFrom\r\n ) {\r\n this.model.interfaceDateTo = undefined;\r\n this.toDoInterfaceDateTo_min = new Date(1900, 1, 1, 0, 0, 0);\r\n this.toDoInterfaceDateTo_max = new Date(2099, 12, 31, 0, 0, 0);\r\n }\r\n // open datepicker\r\n this.toDoInterfaceDateTo.toggle();\r\n this.on_searchInterfaceDateFrom_focus();\r\n }\r\n\r\n protected override modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"startDateFrom\", \"gte\", this.model.startDateFrom],\r\n [\"startDateTo\", \"gte\", this.model.startDateTo],\r\n [\"expiryDateFrom\", \"gte\", this.model.expiryDateFrom],\r\n [\"expiryDateTo\", \"gte\", this.model.expiryDateTo],\r\n [\"effectiveDateFrom\", \"gte\", this.model.effectiveDateFrom],\r\n [\"effectiveDateTo\", \"lte\", this.model.effectiveDateTo],\r\n [\"quoteNo\", \"eq\", this.model.quoteNo],\r\n [\"policyNo\", \"eq\", this.model.policyNo],\r\n [\"masterPolicyId\", \"eq\", this.model.masterPolicyId],\r\n [\"cin\", \"eq\", this.model.cin],\r\n [\"insuredName\", \"eq\", this.model.insuredName],\r\n [\"productId\", \"eq\", this.model.productId],\r\n [\"proposalStatus\", \"eq\", this.model.proposalStatus],\r\n //[\"bankReferenceNo\", \"eq\", this.model.bankReferenceNo],\r\n [\"createdByUserId\", \"eq\", this.model.createdByUserId],\r\n //[\"userTeam\", \"eq\", this.model.userTeam],\r\n [\"additionalInsuredName\", \"eq\", this.model.additionalInsuredName],\r\n //[\"bcrn\", \"eq\", this.model.bcrn],\r\n //[\"riskAddressPostalCode\", \"eq\", this.model.riskAddressPostalCode],\r\n [\"insuredPropertyAddress\", \"eq\", this.model.insuredPropertyAddress],\r\n [\"interfaceDateFrom\", \"gte\", this.model.interfaceDateFrom],\r\n [\"interfaceDateTo\", \"lte\", this.model.interfaceDateTo],\r\n [\r\n \"mortgageLoanAccountNumber1\",\r\n \"eq\",\r\n this.model.mortgageLoanAccountNumber1,\r\n ],\r\n [\"migrated\", \"eq\", this.model.migrated],\r\n ];\r\n\r\n return array;\r\n }\r\n protected override refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n this.httpRequesting = true;\r\n const formData: FormData = this.setFormData();\r\n var result = this.checkFilter();\r\n if (result == true) {\r\n const data = {\r\n message: \"Please provide at least one search filter to proceed.\",\r\n };\r\n \r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.loading = false;\r\n this.httpRequesting = false;\r\n }\r\n });\r\n }\r\n else {\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.masterPolicyService.searchHaseTodoPolicyListing(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n this.httpRequesting = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n this.httpRequesting = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n protected override fetchMasterPolicyList = async () => {\r\n this.masterPolicyOptions = new Array<{\r\n text: string;\r\n value: string;\r\n }>();\r\n\r\n this.masterPolicyService.getList(this.currentUser!).subscribe(\r\n (result: any) => {\r\n this.masterPolicyList = result;\r\n\r\n // update list\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber;\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n };\r\n //#endregion\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ advancedSearchCaption }}\r\n \r\n \r\n \r\n \r\n Search\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { pageLifeCycleNotifier } from \"../../../../../../../../../app/models/new-product/notifier/page-life-cycle-notifier\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { MfHkBaseComponent } from \"../../mf-hk-base.component\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\n@Component({\r\n selector: \"mf-hk-field-validation-echo-panel\",\r\n templateUrl: \"./mf-hk-field-validation-echo-panel.component.html\",\r\n styleUrls: [\"./mf-hk-field-validation-echo-panel.component.scss\"],\r\n})\r\nexport class MfHkFieldValidationEchoPanelComponent extends MfHkBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireHongKongProposal;\r\n showFieldValidation: boolean = false;\r\n showValidationMessage: boolean = false;\r\n showFieldBlankValidation: boolean = false;\r\n constructor(\r\n public proposalService: MfHKProposalService, // private Enums: any\r\n private broadcastService: BroadcastService\r\n ) {\r\n super();\r\n\r\n this.broadcastService.onProposalFailedNotifier.subscribe((msg: any) => {\r\n //HE-173: somehow proposalServiceNotifier.failed_notifier$ is dead after save-with-client>Refer (maybe dispose? typecast error?),\r\n //hence use broadcastService.onFailedNotifier\r\n this.proposalLoaded_function(msg.kv.value);\r\n });\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n override ngOnInit(): void {\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n super.subscribeProposalFailedNotifier(this.proposalLoaded);\r\n }\r\n\r\n public proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.proposalLoaded_function(this.proposal);\r\n };\r\n\r\n public proposalLoaded_function(proposal: MortgageFireHongKongProposal) {\r\n this.proposal = proposal;\r\n this.pageLoaded = true;\r\n this.showFieldValidation = this.checkFieldValidation();\r\n\r\n this.showValidationMessage =\r\n this.proposal.validationMessage.length > 0 ? true : false;\r\n\r\n this.showFieldBlankValidation = this.proposalService.showFieldBlankValidationEchos.length > 0 ? true : false;\r\n }\r\n\r\n checkFieldValidation() {\r\n let flag: boolean = false;\r\n if (\r\n common.isDefined(this.proposalService.fieldValidationManager) &&\r\n common.isDefined(this.proposalService.fieldValidationManager.echos)\r\n ) {\r\n return this.proposalService.fieldValidationManager.echos.length > 0\r\n ? true\r\n : false;\r\n }\r\n return flag;\r\n }\r\n\r\n initialize() {}\r\n\r\n navigate(question: any) {\r\n pageLifeCycleNotifier.tab_request_notifier$.next(\r\n new KeyValue(question.tabId.toString(), question.key)\r\n );\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n

Please complete the following :

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ vs }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ es.title }}\r\n
\r\n
\r\n \r\n \r\n {{ e.message }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ e.message }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { BaseMainComponent } from \"src/app/components/new-product/base/base-main/base-main.component\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { ProposalActivityService } from \"src/app/services/new-product/proposal-activity.service\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Echos } from \"src/app/models/new-product/base/echos.model\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\n\r\n@Component({\r\n selector: \"mf-hk-main\",\r\n templateUrl: \"./mf-hk-main.component.html\",\r\n styleUrls: [\"./mf-hk-main.component.scss\"],\r\n})\r\nexport class MfHkMainComponent extends BaseMainComponent implements OnInit {\r\n proposal!: MortgageFireHongKongProposal;\r\n\r\n constructor(\r\n public override route: ActivatedRoute,\r\n public override proposalActivityService: ProposalActivityService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterDataService: MasterDataService,\r\n public override cdRef: ChangeDetectorRef,\r\n public override productService: ProductService,\r\n public proposalService: MfHKProposalService\r\n ) {\r\n super(\r\n route,\r\n proposalActivityService,\r\n masterPolicyService,\r\n identityRolesService,\r\n masterDataService,\r\n cdRef,\r\n productService\r\n );\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n componentHelper.notifyPageUnload(\"mf-hk-main.component\", this.proposal);\r\n }\r\n\r\n /** Method to create a proposal instance */\r\n override instantiateProposalObject() {\r\n const productId = new GUID(this.proposalActivityService.readProductId()!);\r\n const proposal = new MortgageFireHongKongProposal(\r\n productId,\r\n this.identityRolesService,\r\n this.masterDataService\r\n );\r\n this.proposal = proposal;\r\n this.proposalService.initialize(proposal);\r\n\r\n // let productBase = this.productService.getProductBase(\r\n // this.proposal.productType\r\n // );\r\n\r\n // switch (productBase) {\r\n // case EnumSG.ProductBase.Citi:\r\n // this.isCitiProduct = true;\r\n // break;\r\n // case EnumSG.ProductBase.HASE:\r\n // this.isHaseProduct = true;\r\n // break;\r\n // case EnumSG.ProductBase.DBS:\r\n // default: {\r\n // this.isDbsProduct = true;\r\n // break;\r\n // }\r\n // }\r\n this.isCitiProduct = false;\r\n this.isHaseProduct = true;\r\n this.isDbsProduct = false;\r\n }\r\n\r\n override proposalLoaded = (event: KeyValue) => {\r\n var updatedProposal = event.value as MortgageFireHongKongProposal;\r\n //20230202 GKH: update the proposal with newly updated\r\n this.proposal = updatedProposal;\r\n //do at $onInit event will not be the latest, thus do it here\r\n //search only will reach here\r\n this.getLastestProposalTransStatus(updatedProposal);\r\n };\r\n\r\n private getLastestProposalTransStatus(\r\n updatedProposal: MortgageFireHongKongProposal\r\n ) {\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n if (common.isDefined(premiumData) && premiumData.length > 0) {\r\n var pph = premiumData[0].premiumPeriodHistory;\r\n if (common.isDefined(pph) && pph.length > 0) {\r\n this.pphRecordCount = pph.length;\r\n }\r\n }\r\n this.isNewBusiness = updatedProposal.transType === Enum.TransType.NEW;\r\n }\r\n\r\n override loadProposal() {\r\n // get Master Policies\r\n this.masterPolicyService\r\n .getListByProduct(this.proposal.productId, this.submittedDate, true)\r\n .subscribe((masterPolicyList: MasterPolicyEntity[]) => {\r\n const options = new Array>();\r\n if (common.isDefined(masterPolicyList)) {\r\n masterPolicyList.forEach((mp) => {\r\n options.push(new KeyValue(mp.description, mp.id));\r\n });\r\n }\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = options;\r\n });\r\n\r\n // Populate all requires master data for listing type questions before assigning the answer\r\n this.masterDataService\r\n .getSgIbgOccupancyRateList()\r\n .subscribe((sgIgbOccupancyRateListResponse) => {\r\n this.proposal.qsMaster.qs_master_occupancyRate!.options =\r\n sgIgbOccupancyRateListResponse;\r\n this.masterDataService\r\n .getSGIOccupationList()\r\n .subscribe((sgiOccupationListResponse) => {\r\n this.proposal.qsMaster.qs_master_insuredIndustry!.options =\r\n sgiOccupationListResponse;\r\n this.masterDataService\r\n .getSGIBGMachineryTypeList()\r\n .subscribe((sgiMachineryListResponse) => {\r\n this.proposal.qsMaster.qs_machinery_equipment!.options =\r\n sgiMachineryListResponse;\r\n // if (\r\n // this.proposal.productType ===\r\n // EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ) {\r\n // this.category = \"BUPC\";\r\n // }\r\n this.masterDataService\r\n .getFinancialInstitutionBranches(this.category)\r\n .subscribe((codeResponse) => {\r\n const options = new Array>();\r\n codeResponse.forEach(\r\n (mp: { key: string; value: string }) => {\r\n options.push(new KeyValue(mp.key, mp.value));\r\n }\r\n );\r\n if (this.category === \"BUPC\") {\r\n this.proposal.qsMaster.qs_master_buPcCode!.options =\r\n options;\r\n } else {\r\n // if (\r\n // this.proposal.productType ===\r\n // EnumSG.MortgageFireSgProduct.IBGMF\r\n // ) {\r\n // this.proposal.qsMaster.qs_master_buPcCode!.options =\r\n // options;\r\n // } else\r\n {\r\n this.proposal.qsMaster.qs_master_financialBranch!.options =\r\n options;\r\n }\r\n }\r\n\r\n //this is to init kendo's notifier\r\n this.proposalService.setVCR(this.baseNotifierAppendTo);\r\n // actual load of proposal from back end\r\n this.proposalService.createOrEdit();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n override proposalSaved = (event: KeyValue) => {\r\n const echos = event.value as Echos[];\r\n this.resetMandatoryTabColor();\r\n this.setMandatoryTabColor(\r\n this.proposalService.fieldValidationManager.echos\r\n );\r\n var updatedProposal = event.value as MortgageFireHongKongProposal;\r\n //20230202 GKH: update the proposal with newly updated\r\n this.proposal = updatedProposal;\r\n //user could have created a NB and directly enter END status, thus without go thru proposalLoaded() event\r\n this.getLastestProposalTransStatus(updatedProposal);\r\n };\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ productName }}\r\n Loan Redeemed\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { Proposal } from \"../../../../../../../../models/new-product/base/proposal.model\";\r\nimport * as Enum from \"../../../../../../../../framework/enum.shared\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_PROPOSAL } from \"../../../../../../../../../app/app.module\";\r\nimport { MfHkBaseComponent } from \"../../mf-hk-base.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\n\r\nexport class TabModel {\r\n constructor(\r\n public index: number,\r\n public displayName: string,\r\n public visible: boolean\r\n ) {}\r\n}\r\n\r\n@Component({\r\n selector: \"mf-hk-pending-transaction-panel\",\r\n templateUrl: \"./mf-hk-pending-transaction-panel.component.html\",\r\n styleUrls: [\"./mf-hk-pending-transaction-panel.component.scss\"],\r\n})\r\nexport class MfHkPendingTransactionPanelComponent extends MfHkBaseComponent {\r\n proposal!: MortgageFireHongKongProposal;\r\n // private $state: angular.ui.IStateService;\r\n proposalPendingStatus: string = \"\";\r\n productId!: String;\r\n\r\n constructor(\r\n public proposalService: MfHKProposalService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n super();\r\n this.route.queryParams.subscribe((params) => {\r\n this.productId = params[\"pdid\"];\r\n });\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n override ngOnInit = () => {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n };\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n if (\r\n common.isDefined(this.proposal.pendingTransaction) &&\r\n this.proposal.pendingTransaction != null\r\n ) {\r\n switch (this.proposal.pendingTransaction.transType) {\r\n case Enum.TransType.END:\r\n this.proposalPendingStatus = \"Endorsement\";\r\n break;\r\n case Enum.TransType.CAN:\r\n this.proposalPendingStatus = \"Cancellation\";\r\n break;\r\n case Enum.TransType.REN:\r\n this.proposalPendingStatus = \"Renewal\";\r\n break;\r\n default:\r\n }\r\n }\r\n };\r\n\r\n initialize() {}\r\n\r\n viewPendingTransaction = () => {\r\n const proposalId = this.proposalService.proposal.pendingTransaction?.pid;\r\n let currentUrl = this.router.url;\r\n if (currentUrl.startsWith(\"/\" + ROUTE_PROPOSAL)) {\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() =>\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: this.productId,\r\n pid: proposalId,\r\n mpid: proposalId,\r\n action: 1,\r\n type: 1,\r\n },\r\n })\r\n );\r\n }else{\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: this.productId,\r\n pid: proposalId,\r\n mpid: proposalId,\r\n action: 1,\r\n type: 1,\r\n },\r\n });\r\n }\r\n }\r\n}","\r\n
\r\n A Pending {{ proposalPendingStatus }} Transaction was found for the\r\n policy\r\n {{ proposalService.proposal.policyNumber }}\r\n \r\n
\r\n \r\n\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { Proposal } from \"../../../../../../../../models/new-product/base/proposal.model\";\r\nimport * as Enums from \"../../../../../../../../framework/enum.shared\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { pageLifeCycleNotifier } from \"../../../../../../../../../app/models/new-product/notifier/page-life-cycle-notifier\";\r\nimport { MfHkBaseComponent } from \"../../mf-hk-base.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-referral-validation-echo-panel\",\r\n templateUrl: \"./mf-hk-referral-validation-echo-panel.component.html\",\r\n styleUrls: [\"./mf-hk-referral-validation-echo-panel.component.scss\"],\r\n})\r\nexport class MfHkReferralValidationEchoPanelComponent extends MfHkBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireHongKongProposal;\r\n isIncomplete: boolean = false;\r\n isReferred: boolean = false;\r\n isPendingChecker: boolean = false;\r\n showBusinessRulesManager: boolean = false;\r\n\r\n constructor(public proposalService: MfHKProposalService) {\r\n super();\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n override ngOnInit(): void {\r\n super.subscribeProposalLoadedNotifier((event) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.showBusinessRulesManager = this.checkBusinessRulesManager();\r\n this.pageLoaded = true;\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isPendingChecker =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.PendingChecker\r\n ? true\r\n : false;\r\n });\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n }\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.showBusinessRulesManager = this.checkBusinessRulesManager();\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isPendingChecker =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.PendingChecker\r\n ? true\r\n : false;\r\n };\r\n\r\n checkBusinessRulesManager() {\r\n let flag: boolean = false;\r\n if (\r\n common.isDefined(this.proposalService.businessRulesManager) &&\r\n common.isDefined(this.proposalService.businessRulesManager.echos)\r\n ) {\r\n return this.proposalService.businessRulesManager.echos.length > 0\r\n ? true\r\n : false;\r\n }\r\n return flag;\r\n }\r\n\r\n initialize() {}\r\n\r\n navigate(question: any) {\r\n pageLifeCycleNotifier.tab_request_notifier$.next(\r\n new KeyValue(question.tabId.toString(), question.key)\r\n );\r\n }\r\n}\r\n","\r\n
0\">\r\n \r\n
\r\n \r\n \r\n
\r\n

\r\n Submission is pending Chubb underwriting review due to the following\r\n reason(s):\r\n

\r\n

\r\n Submission will be referring to Chubb underwriting review due to the\r\n following reason(s):\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ es.title }}\r\n \r\n\r\n
    \r\n \r\n \r\n {{ e.message }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport * as InterfaceProduct from \"src/app/framework/interface.product\";\r\nimport { Component, Input, ViewChild } from \"@angular/core\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { Culture, dateFormatter } from \"src/app/shared/date-formatter\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { MfHkMessageService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-message.service\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { CoverageTypeService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-coverage.service\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\nimport { MortgageFireSGTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema\";\r\nimport { cloneDeep } from \"lodash\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { ClientViewComponent } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { MdPreferredDeliveryMethodComponent } from \"src/app/components/shared/partials/md-preferred-delivery-method/md-preferred-delivery-method.component\";\r\nimport { GooglePlaceDirective } from \"ngx-google-places-autocomplete\";\r\nimport { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\nimport {\r\n AddEvent,\r\n CancelEvent,\r\n EditEvent,\r\n GridComponent,\r\n GridDataResult,\r\n RemoveEvent,\r\n SaveEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport {\r\n OccupationSearchComponent,\r\n occupationSearchDlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-occupation/occupation-search/occupation-search.component\";\r\nimport { mortgageFireSingaporeSettings } from \"src/app/models/new-product/sme/mortgage-fire/singapore/const/mf-sg-const\";\r\nimport { Subject } from \"rxjs\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport {\r\n MdConfirmationMessageV5Component,\r\n v5DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v5/md-confirmation-message-v5.component\";\r\nimport { proposalServiceNotifier } from \"src/app/models/new-product/notifier/proposal-service-notifier\";\r\nimport { clientCreateDlgInputArgs } from \"src/app/components/shared/partials/mdClient/client-create/base/base-client-create/client-create-dlg-input-args\";\r\n\r\nimport { MfHkClientCreateComponent } from \"../../../md-client/mf-hk-client-create/mf-hk-client-create.component\";\r\nimport { FireInterestedParties } from \"../../../../../singapore/components/master/FireInterestedParties\";\r\nimport { MfSgEquipmentListingEntity } from \"../../../../../singapore/components/master/mf-sg-equipment-listing/MfSgEquipmentListingEntity\";\r\nimport { MfHkBaseComponent } from \"../../../mf-hk-base.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport {\r\n MfHkClientSearchComponent,\r\n mfHkClientSearchDlgInputArgs,\r\n} from \"../../../md-client/mf-hk-client-search/mf-hk-client-search.component\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport { MfHkAddressHelpFormComponent } from \"../../../mf-hk-address-help-form/mf-hk-address-help-form.component\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-master\",\r\n templateUrl: \"./mf-hk-master.component.html\",\r\n styleUrls: [\"./mf-hk-master.component.scss\"],\r\n})\r\nexport class MfHkMasterComponent extends MfHkBaseComponent {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public proposal!: MortgageFireHongKongProposal; //temp using @Input()\r\n\r\n @ViewChild(\"riskInformation_autocomplete\")\r\n riskInformation_autocomplete!: GooglePlaceDirective;\r\n @ViewChild(\"riskCarParkInformation_autocomplete\")\r\n riskCarParkInformation_autocomplete!: GooglePlaceDirective;\r\n @ViewChild(\"policyInformation_autocomplete\")\r\n policyInformation_autocomplete!: GooglePlaceDirective;\r\n\r\n proposalEntity!: ProposalEntity;\r\n public originalInceptionDate: string = \"\";\r\n clientDictionary!: ClientEntity;\r\n private masterPolicyList!: MasterPolicyEntity[];\r\n private masterPolicyOptions: Array<{ text: string; value: string }> = [];\r\n currency1HDBDisabled: boolean = true;\r\n currency1HDBValue!: number;\r\n productId!: string;\r\n contactInformation: string = \"\";\r\n contactInformationPreferredDelivery: string = \"\";\r\n ibgMFDisabled: boolean = true;\r\n ibgMACDisabled: boolean = true;\r\n ///Chirag: 28-12-2018 Free Insurance Change For CBG Prodcut\r\n isFreeInsApplicable: boolean = true;\r\n NumOfFreeYears: number = 0;\r\n isEndorsement!: boolean;\r\n isUnderwriter!: boolean;\r\n isCancel!: boolean;\r\n /// DBSEP - 2050 : Automation Of LST\r\n isAutoLst: boolean = true; /*Need To Set From Auxilary Flag */\r\n isLstApplicable!: boolean;\r\n isRenewal!: boolean;\r\n isIBGProduct!: boolean;\r\n isCMBProduct!: boolean;\r\n isWPBProduct!: boolean;\r\n isNewBusiness!: boolean;\r\n isGeneralEndorsement!: boolean;\r\n isChangeOfCorrespondenceAddressType!: boolean;\r\n isIncomplete!: boolean;\r\n isRenewalDraft: boolean = false;\r\n isReferred!: boolean;\r\n isChangeOfClientInfo!: boolean;\r\n isSameAsAddressTicked: boolean = false;\r\n isBuildingSIModified: boolean = false;\r\n\r\n //2022-08-23 dagoh0: APACDM-363 - Plan Type Question Visibility\r\n isPlanTypeExists: boolean = false;\r\n hasMSIGPolicy: boolean = false;\r\n editMSIGPolicy: boolean = false;\r\n houseHoldContentsAmount?: MasterPolicyEntity;\r\n enableOccupiedAs: boolean = true;\r\n // Equipment Data\r\n equipmentData!: any[];\r\n equipmentDataLength!: number;\r\n currentSelectedEquipmentGridOptions: any;\r\n wnd: any;\r\n window: any;\r\n detailsTemplate: any;\r\n onFirstRun: boolean = true;\r\n nationalityList!: any[];\r\n\r\n // Interested party\r\n claimData!: any[];\r\n claimDataLength!: number;\r\n currentSelectedInterestedGridOptions: any;\r\n\r\n // Additional Insured Details\r\n otherInsuredData!: any[];\r\n otherInsuredDataLength!: number;\r\n readOnlyAddressField!: any[];\r\n currentSelectedInsuredGridOptions: any;\r\n private msg_deleteWarning: string =\r\n \"Are you sure you wish to delete the item?\";\r\n private msg_masterPolicyChangeWarning: string =\r\n \"Please confirm if you wish to change the Master Policy Number.\" +\r\n \" All the data in the Equipment Listing will be lost. Click OK to proceed, else please click Cancel?\";\r\n countryList!: any[];\r\n labelText: string = \"Interested Parties\";\r\n defaultNOI: string = \"\";\r\n editableNOI: boolean = true;\r\n showFreeInsuranceNoYear: boolean = false;\r\n interestedPartyGridLength = 30;\r\n\r\n isEditable: boolean = false;\r\n isNewClient: boolean = true;\r\n refundDisplayText!: string;\r\n preferredDeliveryText!: string;\r\n isMasterStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n category!: string;\r\n masterPolicyNumber!: string;\r\n suppressNotification: boolean = false;\r\n displayManualUnderwriting: boolean = false;\r\n\r\n private msg_manualUnderwritting_warning: string =\r\n \"Are you sure you wish to perform manual underwritting? \" +\r\n \"Once checked, there is no option to uncheck. Click OK to proceed, else please click Cancel.\";\r\n protected msg_building: string =\r\n \"On the building including landlord’s fixtures and fitting (excluding drains and foundations)\";\r\n firstOnLoad: boolean = true;\r\n\r\n lstDetailsTemplate: any = [\r\n {\r\n rowID: 0,\r\n account: \"8TPQZA\",\r\n reference: \"XOL\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 1,\r\n account: \"8TPQUJ\",\r\n reference: \"80% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 2,\r\n account: \"8TPQUK\",\r\n reference: \"15% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 3,\r\n account: \"8TPPPV\",\r\n reference: \"5% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n ];\r\n lstDefaultValue: any;\r\n clearEquipmentListing: Subject = new Subject();\r\n equipmentDropdownOptions!: KeyValue[];\r\n @ViewChild(\"qs_risk_sameAsAddress_checkbox\", { static: false })\r\n public qs_risk_sameAsAddress_checkbox: any;\r\n\r\n @ViewChild(\"qs_master_manualUnderwritting\", { static: false })\r\n public qs_master_manualUnderwritting_checkbox: any;\r\n\r\n @ViewChild(\"qs_master_cancellation_masterpiece_checkbox\", { static: false })\r\n public qs_master_cancellation_masterpiece_checkbox: any;\r\n\r\n @ViewChild(\"qs_master_waiveMinimumPremium_checkbox\", { static: false })\r\n public qs_master_waiveMinimumPremium_checkbox: any;\r\n\r\n @ViewChild(\"lst_0_percent1\", { static: false })\r\n public lst_0_percent1: any;\r\n\r\n @ViewChild(\"lst_0_amount1\", { static: false })\r\n public lst_0_amount1: any;\r\n\r\n @ViewChild(\"lst_0_amount2\", { static: false })\r\n public lst_0_amount2: any;\r\n\r\n @ViewChild(\"lst_1_percent1\", { static: false })\r\n public lst_1_percent1: any;\r\n\r\n @ViewChild(\"lst_1_amount1\", { static: false })\r\n public lst_1_amount1: any;\r\n\r\n @ViewChild(\"lst_1_percent2\", { static: false })\r\n public lst_1_percent2: any;\r\n\r\n @ViewChild(\"lst_1_amount2\", { static: false })\r\n public lst_1_amount2: any;\r\n\r\n @ViewChild(\"lst_2_percent1\", { static: false })\r\n public lst_2_percent1: any;\r\n\r\n @ViewChild(\"lst_2_amount1\", { static: false })\r\n public lst_2_amount1: any;\r\n\r\n @ViewChild(\"lst_2_percent2\", { static: false })\r\n public lst_2_percent2: any;\r\n\r\n @ViewChild(\"lst_2_amount2\", { static: false })\r\n public lst_2_amount2: any;\r\n\r\n @ViewChild(\"lst_3_percent1\", { static: false })\r\n public lst_3_percent1: any;\r\n\r\n @ViewChild(\"lst_3_amount1\", { static: false })\r\n public lst_3_amount1: any;\r\n\r\n @ViewChild(\"lst_0_percent2\", { static: false })\r\n public lst_0_percent2: any;\r\n\r\n @ViewChild(\"lst_3_amount2\", { static: false })\r\n public lst_3_amount2: any;\r\n\r\n // @ViewChild(\"riskInformation_autocomplete\", { static: false })\r\n // public riskInformation_autocomplete: any;\r\n\r\n // @ViewChild(\"policyInformation_autocomplete\", { static: false })\r\n // public policyInformation_autocomplete: any;\r\n\r\n //https://github.com/skynet2/ngx-google-places-autocomplete/issues/91\r\n googlePlacesOptions = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [\"hk\"] },\r\n } as unknown as Options;\r\n\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"PartyID\",\r\n dir: \"desc\",\r\n },\r\n ];\r\n hideInterestedPartiesActionCol: boolean = false;\r\n addButtonVisiiblity: boolean = false;\r\n labelTextInterestedParty: string = \"Add New Interested party\";\r\n private editedRowIndex!: number | undefined;\r\n public gridFireInterestedParties!: GridDataResult;\r\n\r\n qs_master_effectiveDate_datePicker_minDate?: Date;\r\n qs_master_effectiveDate_datePicker_maxDate?: Date;\r\n\r\n qs_master_poi_startDate_datePicker_minDate?: Date;\r\n qs_master_poi_startDate_datePicker_maxDate?: Date;\r\n hkDistrictList!: KeyValue[];\r\n selectCoverageType!: string;\r\n fieldValidationManager!: MortgageFireHongKongFieldValidationManager;\r\n\r\n productFactory!: AbstractProductFactory;\r\n\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n private cdkDialogService: CdkDialogService,\r\n public proposalService: MfHKProposalService,\r\n private masterPolicyService: MasterPolicyService,\r\n private masterDataService: MasterDataService,\r\n private clientService: ClientService,\r\n private notifier: NotifierService,\r\n private mfHkMessageService: MfHkMessageService,\r\n public productService: ProductService,\r\n public coverageTypeService: CoverageTypeService\r\n ) {\r\n super();\r\n\r\n this.tabId = MortgageFireSGTabSchema.master.index.toString();\r\n // // this.googleSearchAutoCompletePolicyInformation =\r\n // // new GoogleAddressAutoCompleteManager('policyInformation_autocomplete', 'sg', this.updateAddressValues);\r\n // this.googleSearchAutoCompleteRiskInformation =\r\n // new GoogleAddressAutoCompleteManager('riskInformation_autocomplete', 'sg', this.updateAddressValues);\r\n\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n\r\n //reset\r\n this.gridFireInterestedParties = {\r\n data: [],\r\n total: 0,\r\n };\r\n // const scope = $scope;\r\n // $scope.$on('$destroy', () => {\r\n\r\n // $('#masterTab').empty();\r\n // scope.$destroy();\r\n // });\r\n }\r\n\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return (\r\n ques!.answer == 1 || ques!.answer === \"True\" || ques!.answer === true\r\n );\r\n }\r\n\r\n updateModelAnswer(ques: QuestionEntity) {\r\n if (ques!.answer === \"True\") {\r\n ques.answer = false;\r\n } else if (ques!.answer === \"False\") {\r\n ques.answer = true;\r\n } else {\r\n ques.answer = !ques.answer;\r\n }\r\n }\r\n\r\n canEditProposal() {\r\n if (common.isDefined(this.proposal!.refreshedProposalEntity)) {\r\n return (\r\n !this.proposal!.refreshedProposalEntity.proposalReadOnly &&\r\n !this.isEndorsement &&\r\n !this.isCancel\r\n );\r\n }\r\n return true;\r\n }\r\n\r\n showClientSearch() {\r\n return this.productFactory\r\n .master()\r\n .showClientSearch(this.identityRolesService, this.proposal);\r\n }\r\n\r\n //#region additional insured\r\n public addHandler(args: AddEvent): void {\r\n //formInstance.reset();\r\n // close the previously edited item\r\n //this.closeEditor(args.sender);\r\n // open a new item editor\r\n args.sender.addRow(new FireInterestedParties(\"\", this.defaultNOI));\r\n }\r\n\r\n public editHandler(args: EditEvent): void {\r\n // close the previously edited item\r\n this.closeEditor(args.sender);\r\n // edit the row\r\n args.sender.editRow(args.rowIndex);\r\n }\r\n\r\n public cancelHandler(args: CancelEvent): void {\r\n // call the helper method-\r\n this.closeEditor(args.sender, args.rowIndex);\r\n }\r\n\r\n private getPartyId(): number {\r\n let parties: any = this.gridFireInterestedParties!.data!.map((item) => {\r\n return item.PartyID;\r\n });\r\n return Math.max(...parties) + 1;\r\n }\r\n public saveHandler(args: SaveEvent): void {\r\n // update the data source\r\n if (args.isNew) {\r\n const oldData: any = args.sender.data;\r\n let PartyId = oldData.data.length > 0 ? this.getPartyId() : 1;\r\n let NRIC = args.dataItem.NRIC;\r\n let NatureOfInterest = args.dataItem.NatureOfInterest;\r\n let Name = args.dataItem.Name;\r\n const obj: any = {\r\n PartyID: PartyId,\r\n Name: Name,\r\n NatureOfInterest: NatureOfInterest,\r\n NRIC: NRIC,\r\n };\r\n oldData.data.push(obj);\r\n this.gridFireInterestedParties = {\r\n data: orderBy(oldData.data, this.sort),\r\n total: oldData.data.length,\r\n };\r\n }\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.answer = JSON.stringify(\r\n this.gridFireInterestedParties.data\r\n );\r\n // close the editor, that is, revert the row back into view mode\r\n args.sender.closeRow(args.rowIndex);\r\n }\r\n\r\n private confirmationRemoveAdditionalInsured(\r\n data: any,\r\n args: RemoveEvent\r\n ): void {\r\n // remove the current dataItem from the current data source\r\n if (data.status === \"yes\") {\r\n this.gridFireInterestedParties.data.splice(args.rowIndex, 1);\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.answer =\r\n JSON.stringify(this.gridFireInterestedParties.data);\r\n }\r\n }\r\n public removeHandler(args: RemoveEvent): void {\r\n const dataMsg = {\r\n message: this.msg_deleteWarning,\r\n };\r\n\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: {},\r\n message: dataMsg.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationRemoveAdditionalInsured(result, args);\r\n }\r\n });\r\n }\r\n //#endregion\r\n\r\n updateCarAddressValues = (\r\n place: { formatted_address: string; address_components: string | any[] },\r\n componentForm: { [x: string]: string | number },\r\n divId: string\r\n ): void => {\r\n this.resetCarAddressForm(false, divId);\r\n if (\r\n Global.isDefined(place.formatted_address) &&\r\n divId === \"riskCarParkInformation_autocomplete\"\r\n ) {\r\n let val1 = place.formatted_address\r\n .replace(\", Hong Kong\", \"\")\r\n .replace(\",\", \" \");\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_carParkAddress1!,\r\n val1,\r\n true\r\n );\r\n }\r\n\r\n if (Global.isDefined(place.address_components)) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < place.address_components.length; i++) {\r\n const addressType = place.address_components[i].types[0];\r\n //if (componentForm[addressType]) {\r\n //const val = place.address_components[i][componentForm[addressType]];\r\n if (divId === \"riskCarParkInformation_autocomplete\") {\r\n switch (addressType) {\r\n // case \"street_number\":\r\n // let val1 = place.address_components[i].long_name;\r\n // this.updateAddressAns(\r\n // this.proposal.qsMaster.qs_risk_carParkAddress1!,\r\n // val1,\r\n // true\r\n // );\r\n // break;\r\n // case \"route\":\r\n // let val2 = place.address_components[i].long_name;\r\n // this.updateAddressAns(\r\n // this.proposal.qsMaster.qs_risk_carParkAddress2!,\r\n // val2,\r\n // true\r\n // );\r\n // break;\r\n // case \"locality\":\r\n // let val3 = place.address_components[i].long_name;\r\n // this.updateAddressAns(\r\n // this.proposal.qsMaster.qs_risk_insuredCity!,\r\n // val3\r\n // );\r\n // break;\r\n // case \"postal_code\":\r\n // let val4 = place.address_components[i].long_name;\r\n // this.updateAddressAns(\r\n // this.proposal.qsMaster.qs_risk_insuredPostalCode!,\r\n // val4,\r\n // true\r\n // );\r\n // break;\r\n // case \"administrative_area_level_1\":\r\n // let val5 = place.address_components[i].short_name;\r\n // this.updateAddressAns(\r\n // this.proposal.qsMaster.qs_risk_carParkAddress3!,\r\n // val5,\r\n // true\r\n // );\r\n // break;\r\n case \"country\":\r\n //short_name is ISO code\r\n //long_name is 'Hong Kong', which is diff with Country table 'Hong Kong SAR'\r\n let val6 = place.address_components[i].short_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_carParkCountry!,\r\n val6\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n // clearing the search input\r\n //this.riskInformation_autocomplete.nativeElement.value = \"\";//todo\r\n }\r\n }\r\n this.checkIfAddressReadOnlyField();\r\n }\r\n //this.$scope.$apply();//todo\r\n };\r\n\r\n resetCarAddressForm = (fromResetButton: boolean, divId: string) => {\r\n if (divId === \"riskInformation_autocomplete\") {\r\n this.readOnlyAddressField = [\r\n \"qs_risk_insuredAddress1\",\r\n \"qs_risk_insuredAddress2\",\r\n \"qs_risk_insuredCity\",\r\n \"qs_risk_insuredPostalCode\",\r\n ];\r\n\r\n this.proposal.qsMaster.qs_risk_carParkAddress1!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_carParkAddress2!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_carParkAddress3!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_carParkAddress4!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_carParkCountry!.clearAnswer();\r\n\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredDistCode!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = false;\r\n\r\n this.proposal.qsMaster.qs_risk_carParkAddress1!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_carParkAddress2!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_carParkAddress3!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_carParkAddress4!.readOnly = false;\r\n //this.proposal.qsMaster.qs_risk_carParkCountry!.readOnly = false;\r\n if (fromResetButton) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.clearAnswer();\r\n // clearing the search input\r\n // this.riskInformation_autocomplete.nativeElement.value = \"\"; //todo\r\n }\r\n }\r\n };\r\n\r\n public qs_fire_occupied_onValueChange = (args: any) => {\r\n /*\r\n {k:\"1\" , v:\"R - Residential\"},\r\n {k:\"2\" , v:\"I - Industrial\"},\r\n {k:\"3\" , v:\"O - Office\"},\r\n {k:\"4\" , v:\"S - Retail Shop\"}, \r\n {k:\"5\" , v:\"T - Good Quality Village\"}, \r\n {k:\"6\" , v:\"U - Selected Village\"}, \r\n {k:\"7\" , v:\"V - Villa(HASE)\"},\r\n {k:\"8\" , v:\"H - House\"}\r\n\r\n Residential - 939917C3-3772-4B73-84BE-AE17C6D39A80/Mortgage Fire Residential\r\n INDUSTRIAL - EE4E271E-BD14-42E2-A02A-96A4C24C76DD/Mortgage Fire\r\n Office - EE4E271E-BD14-42E2-A02A-96A4C24C76DD\r\n Retail Shop - EE4E271E-BD14-42E2-A02A-96A4C24C76DD\r\n Good QUality village - 939917C3-3772-4B73-84BE-AE17C6D39A80\r\n selected village - 939917C3-3772-4B73-84BE-AE17C6D39A80\r\n villa(hase) - 939917C3-3772-4B73-84BE-AE17C6D39A80\r\n house - 939917C3-3772-4B73-84BE-AE17C6D39A80\r\n */\r\n if (this.isWPBProduct) {\r\n this.setWpb_masterPolicyNumber(args);\r\n this.set_risk_occupancy(args);\r\n } else {\r\n this.setCmb_masterPolicyNumber(args);\r\n this.set_risk_occupancy(args);\r\n }\r\n };\r\n\r\n private setWpb_masterPolicyNumber(args: any) {\r\n switch (args) {\r\n case \"1\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n \"939917C3-3772-4B73-84BE-AE17C6D39A80\".toLowerCase(); //Mortgage Fire Residential\r\n break;\r\n default:\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n \"EE4E271E-BD14-42E2-A02A-96A4C24C76DD\".toLowerCase(); //Mortgage Fire\r\n break;\r\n }\r\n }\r\n\r\n private setCmb_masterPolicyNumber(args: any) {\r\n switch (args) {\r\n case \"1\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n \"699E97F7-F392-4C48-BB8D-DD0A73A17E71\".toLowerCase(); //Mortgage Fire Residential\r\n break;\r\n default:\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n \"FF4E271E-BD14-42E2-A02A-96A4C24C76DD\".toLowerCase(); //Mortgage Fire\r\n break;\r\n }\r\n }\r\n\r\n private set_risk_occupancy(args: any) {\r\n switch (args) {\r\n case \"1\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Residential\";\r\n break;\r\n case \"2\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Industrial\";\r\n break;\r\n case \"3\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Office\";\r\n break;\r\n case \"4\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Retail Shop\";\r\n break;\r\n case \"5\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Good Quality Village\";\r\n break;\r\n case \"6\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Selected Village\";\r\n break;\r\n case \"7\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Villa(HASE)\";\r\n break;\r\n case \"8\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"House\";\r\n break;\r\n case \"9\":\r\n this.proposalService.proposal.qsMaster.qs_risk_occupancy!.answer =\r\n \"Commercial\";\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n //#region migrate from old angularjs\r\n private answerChanged = (kv: KeyValue) => {\r\n const key = kv.key;\r\n const question = kv.value;\r\n\r\n switch (key) {\r\n //// 12/10/2018 : Chirag Added Code For FreeInsurance Start/ End Date\r\n case this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.key:\r\n if (this.isIBGProduct) this.setFreeInsuranceDate();\r\n else if (!this.isIBGProduct && this.proposal.proposalStatus === 6)\r\n this.setFreeInsuranceDateForCBG();\r\n break;\r\n /// 12/10/2018 : Chirag Added Method For FreeInsurance Start/End Date\r\n case this.proposal.qsMaster.qs_master_poi_startDate!.key:\r\n this.qs_master_poi_startDate_onChange();\r\n this.setFreeInsurance_OnPOIDate_Endorsement();\r\n break;\r\n case this.proposal.qsMaster.qs_fire_occupied!.key:\r\n this.qs_fire_occupied_onChange(\r\n this.proposal.qsMaster.qs_fire_occupied!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_fire_replacement!.key:\r\n this.qs_fire_FSVSumInsured(\r\n this.proposal.qsMaster.qs_fire_replacement!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredAddress_building!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredAddress1!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress1!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredAddress2!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress2!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredPostalCode!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!,\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredCity!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredCity!,\r\n this.proposal.qsMaster.qs_risk_insuredCity!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_insuredState!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredState!,\r\n this.proposal.qsMaster.qs_risk_insuredState!\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_masterPolicyNumber!.key:\r\n if (!this.suppressNotification) {\r\n this.qs_master_masterPolicyNumber_onChange(\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.answer\r\n );\r\n }\r\n break;\r\n case this.proposal.qsMaster.qs_master_occupancyRate!.key:\r\n case this.proposal.qsMaster.qs_machinery_equipment!.key:\r\n // reset the aux if underwriter changes it\r\n // this.resetAuxiliaryModel();\r\n break;\r\n case this.proposal.qsMaster.qs_risk_sameAsAddress!.key:\r\n this.qs_risk_sameAsAddress_onChange(\r\n this.proposal.qsMaster.qs_risk_sameAsAddress!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_fire_building!.key:\r\n this.qs_master_qs_fire_building(\r\n this.proposal.qsMaster.qs_fire_building!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_effectiveDate!.key:\r\n this.qs_master_effectiveDates_onChange(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n break;\r\n\r\n case this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.key:\r\n this.qs_fire_freeInsuranceFirstYear_onChange(\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_lst!.key:\r\n this.qs_master_lst_onChange(\r\n this.proposal.qsMaster.qs_master_lst!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.key:\r\n this.qs_master_preferredDeliveryMethodChange(\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer\r\n );\r\n break;\r\n //2022-08-24 dagoh0: APACDM-363 - trigger action when plan type is changed\r\n case this.proposal.qsMaster.qs_master_planType!.key:\r\n this.qs_master_planType_onChange(\r\n this.proposal.qsMaster.qs_master_planType!.answer\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n override ngOnInit(): void {\r\n this.initialize();\r\n componentHelper.notifyPageLoaded(\"mf-hk-master.component\", this.proposal);\r\n\r\n this.masterDataService.getCountryList().subscribe((response: any[]) => {\r\n this.countryList = response;\r\n });\r\n this.masterDataService\r\n .getHkDistrictCodes()\r\n .subscribe((responseHkDistrictCodes: KeyValue[]) => {\r\n this.hkDistrictList = responseHkDistrictCodes;\r\n const options = new Array>();\r\n if (common.isDefined(responseHkDistrictCodes)) {\r\n responseHkDistrictCodes.forEach((mp) => {\r\n options.push(new KeyValue(mp.key, mp.value));\r\n });\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredDistCode!.options = options;\r\n });\r\n // fetchMasterPolicyList is being call to for the equipment type listing usage\r\n this.fetchMasterPolicyList();\r\n\r\n super.subscribeProposalLoadedNotifier(this.proposalSaved);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n }\r\n\r\n private getMasterPolicyDetails = (): MasterPolicyEntity => {\r\n const masterPolicyNumber =\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.readAnswerAsString();\r\n let found: boolean = false;\r\n let masterPolicy = {};\r\n this.masterPolicyList.every((mp) => {\r\n if (mp.id === masterPolicyNumber) {\r\n found = true;\r\n masterPolicy = mp;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return masterPolicy;\r\n };\r\n\r\n fetchMasterPolicyList = () => {\r\n this.masterPolicyService\r\n .getList(this.identityRolesService.getIdentity().currentUser())\r\n .subscribe((response) => {\r\n // update list\r\n this.masterPolicyList = response;\r\n\r\n this.masterPolicyOptions = new Array<{ text: string; value: string }>();\r\n\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber;\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n });\r\n };\r\n\r\n updateNativeElement(ele: any, value: boolean) {\r\n if (ele !== undefined) {\r\n ele.nativeElement.checked = value;\r\n }\r\n this.firstOnLoad = false;\r\n }\r\n\r\n hide_qs_master_refund_onAllNonFinEn() {\r\n if (\r\n this.proposal.transType === Enum.TransType.END &&\r\n //this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete && //DBSEP-6303\r\n (this.proposal.endorsementType === Enum.EndorsementType.LoanRedemption ||\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.GeneralEndorsement ||\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfClientInfo)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private setProduct() {\r\n this.isCMBProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSCMB\r\n ? true\r\n : false;\r\n this.isWPBProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ? true\r\n : false;\r\n\r\n if (!this.productFactory) {\r\n this.productFactory = this.productService.getHKProductFactory(\r\n this.proposal.productType\r\n );\r\n }\r\n }\r\n\r\n private proposalSaved = (event: KeyValue) => {\r\n if (!this.isIBGProduct) {\r\n this.getContactInformation();\r\n }\r\n if (\r\n this.isIBGProduct &&\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!\r\n .answer == null\r\n ) {\r\n this.updateContactInformation();\r\n }\r\n let checkCorrespondingAddressCbg =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.isAnswered() &&\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer.includes(\r\n \"|\"\r\n );\r\n if (checkCorrespondingAddressCbg) {\r\n this.correspondanceDeliveryAddress(null);\r\n }\r\n this.setProduct(); //has to be done before getDisplayManualUnderwriting()\r\n this.getDisplayManualUnderwriting();\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n\r\n this.productFactory = this.productService.getHKProductFactory(\r\n this.proposal.productType\r\n );\r\n // validate business rules after proposal is saved successfully\r\n this.proposalService.businessRulesManager.validate();\r\n\r\n this.qs_risk_sameAsAddress_onChange(\r\n this.proposal.qsMaster.qs_risk_sameAsAddress!.answer\r\n );\r\n if (\r\n common.isDefined(this.proposal.originalInceptionDate) &&\r\n this.proposal.originalInceptionDate !== null\r\n ) {\r\n this.originalInceptionDate = dateFormatter.format(\r\n new Date(this.proposal.originalInceptionDate),\r\n Culture.enSg\r\n );\r\n } else {\r\n this.originalInceptionDate = dateFormatter.format(\r\n new Date(this.proposal.qsMaster.qs_master_poi_startDate!.answer),\r\n Culture.enSg\r\n );\r\n this.proposal.originalInceptionDate =\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer;\r\n }\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isNewBusiness = this.proposal.transType === Enum.TransType.NEW;\r\n this.isEndorsement = this.proposal.transType === Enum.TransType.END;\r\n this.isRenewal = this.proposal.transType === Enum.TransType.REN;\r\n this.isUnderwriter = this.proposal.isUnderwriter;\r\n this.isCancel = this.proposal.transType === Enum.TransType.CAN;\r\n\r\n if (this.isCMBProduct) {\r\n //Assign the value to selectCoverageType so it can be use to do comparison during onChange\r\n this.selectCoverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.answer;\r\n this.msg_building =\r\n \"On the building including landlord’s fixtures and fitting (excluding drains and foundations)\";\r\n } else if (this.isWPBProduct) {\r\n this.msg_building = \"Building\";\r\n }\r\n\r\n this.isIBGProduct = false;\r\n this.isGeneralEndorsement =\r\n this.proposal.transType === Enum.TransType.END &&\r\n this.proposal.endorsementType === Enum.EndorsementType.GeneralEndorsement;\r\n // New question when copy should refer to default value\r\n const refreshQuestion = this.proposal.refreshedProposalEntity.questions;\r\n // tslint:disable-next-line:no-unused-expression\r\n\r\n this.isRenewalDraft =\r\n (this.isIncomplete && this.isRenewal) || this.isReferred;\r\n // Allow To Edit MSIG policy for IBG prodcut\r\n const replacingPolicyNo =\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.readAnswerAsString();\r\n this.hasMSIGPolicy =\r\n common.isDefined(replacingPolicyNo) && replacingPolicyNo!.trim() !== \"\";\r\n this.editMSIGPolicy =\r\n this.hasMSIGPolicy &&\r\n this.isIncomplete &&\r\n this.proposal.endorsementType === Enum.EndorsementType.GeneralEndorsement;\r\n if (this.hasMSIGPolicy) {\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.displayText =\r\n \"Original Policy Number\";\r\n } else {\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.displayText =\r\n \"Replacing Policy No\";\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\" ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n ) {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n true\r\n );\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.isDisabled = true;\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer = true;\r\n this.manualUnderwritting();\r\n } else {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n false\r\n );\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!!.isDisabled = false;\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.currency1HDBDisabled = true;\r\n break;\r\n }\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_cancellation_masterpiece!.answer ===\r\n \"True\" ||\r\n this.proposal.qsMaster.qs_master_cancellation_masterpiece!.answer === true\r\n ) {\r\n if (common.isDefined(this.qs_master_cancellation_masterpiece_checkbox)) {\r\n this.qs_master_cancellation_masterpiece_checkbox.nativeElement.checked =\r\n true;\r\n }\r\n this.proposal.qsMaster.qs_master_cancellation_masterpiece!.answer = true;\r\n } else {\r\n if (common.isDefined(this.qs_master_cancellation_masterpiece_checkbox)) {\r\n this.qs_master_cancellation_masterpiece_checkbox.nativeElement.checked =\r\n false;\r\n }\r\n this.proposal.qsMaster.qs_master_cancellation_masterpiece!.isDisabled =\r\n false;\r\n }\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.isChangeOfCorrespondenceAddressType =\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfCorrespondenceAddress &&\r\n (this.isIncomplete ||\r\n (this.isReferred &&\r\n this.proposalService.proposal.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n !this.identityRolesService.isClaimant &&\r\n !this.identityRolesService.isProductReadOnly));\r\n this.isChangeOfClientInfo =\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfClientInfo &&\r\n (this.isIncomplete ||\r\n (this.isReferred &&\r\n this.proposalService.proposal.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n !this.identityRolesService.isClaimant &&\r\n !this.identityRolesService.isProductReadOnly) ||\r\n (this.isIncomplete && this.identityRolesService.IsCSCBGSG));\r\n //2022-08-23 dagoh0: APACDM-363 - determine is this a change of plan type endorsement\r\n //and enabled the change of plan type\r\n this.isPlanTypeExists =\r\n this.proposal.qsMaster.qs_master_planType != null &&\r\n this.proposal.qsMaster.qs_master_planType.answer != null &&\r\n (this.identityRolesService.IsCbsOps ||\r\n this.identityRolesService.isUnderwriter ||\r\n this.identityRolesService.isOperationUnderwriter);\r\n break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // this.isChangeOfCorrespondenceAddressType =\r\n // ((this.isEndorsement &&\r\n // this.proposal.endorsementType ===\r\n // Enum.EndorsementType.GeneralEndorsement) ||\r\n // this.isNewBusiness) &&\r\n // ((this.isIncomplete && this.proposal.isUnderwriter) ||\r\n // (!(this.isReferred && this.proposal.isUnderwriter) &&\r\n // !this.identityRolesService.isClaimant &&\r\n // !this.identityRolesService.isProductReadOnly));\r\n // // Enable client endorsement of IBG product FOR CBG OPS users\r\n // if (\r\n // this.proposal.transType === Enum.TransType.END &&\r\n // this.proposal.endorsementType ===\r\n // Enum.EndorsementType.GeneralEndorsement &&\r\n // this.isEndorsement &&\r\n // this.isIncomplete &&\r\n // this.identityRolesService.IsCbsOps\r\n // ) {\r\n // this.isChangeOfCorrespondenceAddressType = true;\r\n // }\r\n // if (\r\n // this.proposal.transType === Enum.TransType.CAN &&\r\n // this.proposal.endorsementType ===\r\n // Enum.EndorsementType.ChangeOfCorrespondenceAddress &&\r\n // this.isIncomplete &&\r\n // this.identityRolesService.isOperationUnderwriter\r\n // ) {\r\n // this.isChangeOfCorrespondenceAddressType = true;\r\n // }\r\n // if (this.proposal.proposalStatus === Enum.ProposalStatus.Accepted) {\r\n // this.isChangeOfCorrespondenceAddressType = false;\r\n // }\r\n // break;\r\n default:\r\n // do nothing\r\n }\r\n if (!this.isIBGProduct) {\r\n this.labelText = \"Additional Insured\";\r\n if (this.proposal.qsMaster.qs_master_financialBranch!.isAnswered()) {\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer =\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer;\r\n } else {\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer =\r\n \"3cd1ab19-82af-41a5-9608-a1c2bcff2f70\";\r\n }\r\n this.proposal.qsMaster.qs_master_financialBranch!.displayText =\r\n \"Financial Institution Branch / BU PC Code\";\r\n this.defaultNOI = \"Additional Insured\";\r\n this.editableNOI = false;\r\n }\r\n\r\n if (this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer > 0) {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer =\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer;\r\n } else {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer = 0;\r\n }\r\n if (\r\n (this.proposal.proposalStatus === Enum.ProposalStatus.Referred || //HE-229\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete) &&\r\n (this.proposal.transType === Enum.TransType.NEW ||\r\n //HE-1058 add edit for Renewal\r\n this.proposal.transType === Enum.TransType.REN) &&\r\n this.proposal.customerMappingId! > 0 &&\r\n (this.identityRolesService.isMaker ||\r\n this.identityRolesService.isBroker || //DBSEP-7122\r\n this.identityRolesService.isUnderwriter)\r\n ) {\r\n this.isEditable = true;\r\n } else {\r\n this.isEditable = false;\r\n }\r\n if (this.isEndorsement || this.isCancel) {\r\n // set display text for refund\r\n this.qs_master_refundDisplayText(\r\n this.proposal.qsMaster.qs_master_refund!\r\n );\r\n }\r\n\r\n //no matter going to load-redeem, or already loan-redeemed, qs_otherinfo_MortgLoanAcctNum1 no longer requires\r\n if (\r\n this.isIncomplete &&\r\n this.proposal.endorsementType === Enum.EndorsementType.LoanRedemption\r\n ) {\r\n this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum1!.answer = \"\"; //DBSEP-5825\r\n this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum1!.required = false;\r\n }\r\n\r\n if (this.proposal.loanRedeemed) {\r\n this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum1!.required = false;\r\n }\r\n\r\n if (\r\n (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer ==\r\n null ||\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer ==\r\n \"\") &&\r\n this.proposal.proposalStatus == Enum.ProposalStatus.Incomplete\r\n )\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer = \"5\";\r\n this.qs_master_preferredDeliveryText(\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!\r\n );\r\n\r\n //todo: google auto completer search\r\n const component = this;\r\n // const timeout = Application.angular_$timeout();\r\n setTimeout(() => {\r\n // // initializing the google auto completer search\r\n // this.googleSearchAutoCompleteRiskInformation.InitializeAddressAutoCompleteElement();\r\n // Other Insured\r\n component.otherInsuredData =\r\n component.proposal.qsMaster.qs_master_additionalInsured!.answer === \"\"\r\n ? []\r\n : component.processTableDataOtherInsured(\r\n component.proposal.qsMaster.qs_master_additionalInsured!.answer\r\n );\r\n component.otherInsuredDataLength = component.otherInsuredData.length;\r\n // Interested Parties\r\n component.claimData =\r\n component.proposal.qsMaster.qs_fire_interestedParties!.answer === \"\"\r\n ? []\r\n : component.processTableDataInteresedParty(\r\n component.proposal.qsMaster.qs_fire_interestedParties!.answer\r\n );\r\n component.claimDataLength = component.claimData.length;\r\n // Equipment\r\n component.equipmentData =\r\n component.proposal.qsMaster.qs_machinery_equipment!.answer === \"\"\r\n ? []\r\n : component.processTableDataEquipment(\r\n component.proposal.qsMaster.qs_machinery_equipment!.answer\r\n );\r\n component.equipmentDataLength = component.equipmentData.length;\r\n // const dataSource = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.claimsData_OnRead,\r\n // update: component.claimData_OnUpdate,\r\n // destroy: component.claimData_OnDestroy,\r\n // create: component.claimsData_OnCreate,\r\n // // cache: false,\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== 'read' && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: 'PartyID',\r\n // fields: {\r\n // PartyID: { editable: false },\r\n // Name: { validation: { required: true } },\r\n // NatureOfInterest: {\r\n // type: 'text',\r\n // editable: component.editableNOI,\r\n // defaultValue: component.defaultNOI,\r\n // validation: {\r\n // required: true,\r\n // NatureOfInterestCheckLength: function (input) {\r\n // if (input.val() !== '' && input.attr('data-maxlength') > 10) {\r\n // input.attr('data-NatureOfInterestCheckLength-msg', 'Max Length Reached');\r\n // return false;\r\n // }\r\n // return true;\r\n // }\r\n // }\r\n // }\r\n // },\r\n // },\r\n // },\r\n // });\r\n // const dataSourceEquipment = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.equipmentData_OnRead,\r\n // update: component.equipmentData_OnUpdate,\r\n // destroy: component.equipmentData_OnDestroy,\r\n // create: component.equipmentData_OnCreate,\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== 'read' && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: 'rowID',\r\n // fields: {\r\n // rowID: { editable: false },\r\n // equipmentType: {\r\n // validation: { required: true },\r\n // defaultValue: {\r\n // key: '',\r\n // value: ''\r\n // }\r\n // },\r\n // typeOfFinancing: {\r\n // type: 'text',\r\n // },\r\n // equipmentDescription: {\r\n // type: 'text', validation: { required: true }\r\n // },\r\n // sumInsured: {\r\n // type: 'number',\r\n // defaultValue: 0,\r\n // validation: {\r\n // required: true,\r\n // sumInsuredCheckLength: function (input) {\r\n // if (input.attr('data-bind') === 'value:sumInsured') {\r\n // input.attr('data-sumInsuredCheckLength-msg', 'Sum Insured is required');\r\n // return (input.val() !== '');\r\n // }\r\n // return true;\r\n // }\r\n // }\r\n // }, additionalInfo: {\r\n // defaultValue: '',\r\n // type: 'text', validation: {\r\n // required: true,\r\n // textAreaLengthcheck: function (input) {\r\n // if (input.attr('data-bind') === 'value:additionalInfo') {\r\n // input.attr('data-textAreaLengthcheck-msg', 'Addtional Info is required');\r\n // return (input.val() !== '');\r\n // }\r\n // return true;\r\n // }\r\n // }\r\n // },\r\n // },\r\n // },\r\n // },\r\n // });\r\n // const dataSourceOtherInsured = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.otherInsuredData_OnRead,\r\n // update: component.otherInsuredData_OnUpdate,\r\n // destroy: component.otherInsuredData_OnDestroy,\r\n // create: component.otherInsuredData_OnCreate,\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== 'read' && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: 'otherInsuredID',\r\n // fields: {\r\n // otherInsuredID: { editable: false },\r\n // otherInsuredName: { validation: { required: true } },\r\n // cin: { validation: { required: true } },\r\n // otherBRNo: { validation: { required: true } },\r\n // },\r\n // },\r\n // },\r\n // });\r\n // // fixed the typescript declaration bugs\r\n // const qs_master_interestedParty_table_grid: any = angular.element('#qs_fire_interestedParties_table_grid');\r\n // const showAction: boolean = component.proposal.qsMaster.qs_fire_interestedParties.readOnly ? true : false;\r\n // let labelTextInterestedParty: string = 'Add New Interested party';\r\n // const hideInterestedPartiesActionCol: boolean = component.proposal.qsMaster.qs_fire_interestedParties.readOnly;\r\n if (!this.isIBGProduct) {\r\n this.labelTextInterestedParty = \"Add Additional Insured\";\r\n }\r\n // // Destroy the kendo Grid if defined and recreate everytime\r\n // if (common.isDefined(qs_master_interestedParty_table_grid.data('kendoGrid'))) {\r\n // const interestedPartyGrid = qs_master_interestedParty_table_grid.data('kendoGrid');\r\n // interestedPartyGrid.destroy();\r\n // angular.element('#qs_fire_interestedParties_table_grid').empty();\r\n // }\r\n // qs_master_interestedParty_table_grid.kendoGrid({\r\n // dataSource: dataSource,\r\n // pageable: true,\r\n // height: 280,\r\n // toolbar: [{\r\n // text: labelTextInterestedParty,\r\n // name: 'create'\r\n // }],\r\n // dataBound: () => {\r\n // const grid1 = angular.element('#qs_fire_interestedParties_table_grid').data('kendoGrid');\r\n // if (common.isDefined(grid1) && !this.proposal.qsMaster.qs_fire_interestedParties.readOnly) {\r\n // if (grid1.dataSource.data().length >= this.interestedPartyGridLength) {\r\n // angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n // } else {\r\n // angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').show();\r\n // }\r\n // } else {\r\n // angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n // }\r\n // angular.element('#qs_fire_interestedParties_table_grid .k-grid-myDelete span').addClass('k-icon k-delete');\r\n // },\r\n // columns: [\r\n // {\r\n // field: 'Name',\r\n // title: 'Name',\r\n // width: '350px',\r\n // },\r\n // {\r\n // field: 'NatureOfInterest',\r\n // title: 'Nature of Interest',\r\n // width: '250px',\r\n // },\r\n // {\r\n // hidden: hideInterestedPartiesActionCol,\r\n // field: 'command',\r\n // command: ['edit', {\r\n // name: 'myDelete',\r\n // text: 'Delete',\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedInterestedGridOptions = $(e.currentTarget).closest('tr');\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: 'qs_fire_interestedParties_table_grid'\r\n // };\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // 'shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html',\r\n // 'SharedConfirmationMessageV1Controller', data\r\n // , component.confirmationModalCloseForDeleteAction,\r\n // undefined, undefined, undefined, false, 'standardModal');\r\n // }\r\n // }],\r\n // title: 'Action',\r\n // width: '200px',\r\n // attributes: { 'class': 'textAlignCenter' },\r\n // headerAttributes: { 'style': 'text-align:center !important' },\r\n // }],\r\n // edit: component.onGridEditing,\r\n // editable: { mode: 'inline', confirmation: false },\r\n // });\r\n // component.wnd = $('#equipmentDetails')\r\n // .kendoWindow({\r\n // title: 'Equipment Details',\r\n // modal: true,\r\n // visible: false,\r\n // resizable: false,\r\n // width: 550\r\n // }).data('kendoWindow');\r\n // const equipTemplateHtml = $('#equipmentTemplate').html();\r\n // component.detailsTemplate = (Global.isDefined(equipTemplateHtml)) ? kendo.template(equipTemplateHtml) : '';\r\n // // if (hideInterestedPartiesActionCol) {\r\n // // $('#qs_fire_interestedParties_table_grid .k-header:contains(\"Action\")').hide();\r\n // // } else {\r\n // // $('#qs_fire_interestedParties_table_grid .k-header:contains(\"Action\")').show();\r\n // // }\r\n // const qs_master_equipment_table_grid: any = angular.element('#qs_machinery_equipment_table_grid');\r\n // const hideEquipmentActionCol: boolean = component.proposal.qsMaster.qs_machinery_equipment.readOnly;\r\n // if (common.isDefined(qs_master_equipment_table_grid.data('kendoGrid'))) {\r\n // const equipmentGrid = qs_master_equipment_table_grid.data('kendoGrid');\r\n // equipmentGrid.destroy();\r\n // angular.element('#qs_machinery_equipment_table_grid').empty();\r\n // angular.element('#qs_machinery_equipment_table_grid').off('click');\r\n // }\r\n // let toolbar: any = [{\r\n // text: 'Add New Equipment',\r\n // name: 'create',\r\n // }];\r\n // if (!component.isEndorsement) {\r\n // toolbar = component.proposal.qsMaster.qs_machinery_equipment.readOnly ? '' : toolbar;\r\n // } else {\r\n // if (this.proposal.refreshedProposalEntity.proposalReadOnly && component.proposal.qsMaster.qs_machinery_equipment.readOnly) {\r\n // toolbar = '';\r\n // }\r\n // }\r\n // const showEquipAction: boolean = component.proposal.qsMaster.qs_machinery_equipment.readOnly ? true : false;\r\n // timeout(() => {\r\n // if (showEquipAction) {\r\n // $('#qs_machinery_equipment_table_grid .k-grid-edit,#qs_machinery_equipment_table_grid .k-grid-myDelete').hide();\r\n // }\r\n // if (!this.isIBGProduct) {\r\n // /// 30/09/2019 : INC20585048 DBS EPL - FREE INSURANCE DISPLAY DISCREPANCIES and Occcupation Filter issue\r\n // this.filterOccupied(this.proposal.qsMaster.qs_master_masterPolicyNumber.answer);\r\n // }\r\n // }, 500);\r\n // qs_master_equipment_table_grid.kendoGrid({\r\n // dataSource: dataSourceEquipment,\r\n // pageable: true,\r\n // height: 280,\r\n // draggable: false,\r\n // toolbar: toolbar,\r\n // dataBound: () => {\r\n // const grid1 = angular.element('#qs_machinery_equipment_table_grid').data('kendoGrid');\r\n // if (common.isDefined(grid1) && this.proposal.qsMaster.qs_machinery_equipment.readOnly) {\r\n // angular.element('#qs_machinery_equipment_table_grid .k-grid-add').hide();\r\n // }\r\n // $('#qs_machinery_equipment_table_grid .k-grid-myDelete span').addClass('k-icon k-delete');\r\n // },\r\n // columns: [\r\n // {\r\n // field: 'equipmentType',\r\n // title: 'Type of Equipment',\r\n // width: '250px',\r\n // editor: component.equipmentTypeSectionDropdown,\r\n // template: '#=equipmentType.key#'\r\n // },\r\n // {\r\n // field: 'typeOfFinancing',\r\n // title: 'Serial Number',\r\n // width: '150px',\r\n // },\r\n // {\r\n // field: 'equipmentDescription',\r\n // title: 'Description',\r\n // width: '250px',\r\n // },\r\n // {\r\n // field: 'sumInsured',\r\n // title: 'Sum Insured',\r\n // width: '140px',\r\n // editor: component.equipmentSumInsuredEditor,\r\n // template: '$ #=sumInsured#'\r\n // },\r\n // {\r\n // field: 'additionalInfo',\r\n // title: 'Additional Info',\r\n // editor: component.equipmentAddtionalInfoTextArea,\r\n // template: '#=additionalInfo#',\r\n // width: '250px',\r\n // },\r\n // {\r\n // // hidden: hideEquipmentActionCol,\r\n // field: 'command',\r\n // command: [\r\n // 'edit',\r\n // {\r\n // name: 'myDelete',\r\n // text: 'Delete',\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedEquipmentGridOptions = $(e.currentTarget).closest('tr');\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: 'qs_machinery_equipment_table_grid'\r\n // };\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // 'shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html',\r\n // 'SharedConfirmationMessageV1Controller', data\r\n // , component.confirmationModalCloseForDeleteAction,\r\n // undefined, undefined, undefined, false, 'standardModal');\r\n // }\r\n // },\r\n // {\r\n // text: 'Addt. Info',\r\n // click: component.equipListShowDetails,\r\n // name: 'add-info'\r\n // }],\r\n // title: 'Action',\r\n // width: '300px',\r\n // attributes: { 'class': 'textAlignCenter' },\r\n // headerAttributes: { 'style': 'text-align:center !important' },\r\n // }],\r\n // edit: component.onGridEditing,\r\n // selectable: true,\r\n // editable: {\r\n // mode: 'popup',\r\n // confirmation: false,\r\n // draggable: false,\r\n // window: {\r\n // // title: \"My Custom Title\",\r\n // // animation: false,\r\n // width: '700px',\r\n // height: '500px',\r\n // }\r\n // },\r\n // });\r\n // angular.element('#qs_machinery_equipment_table_grid').on('click', '.k-grid-add', (e) => {\r\n // e.preventDefault();\r\n // if (!this.proposal.qsMaster.qs_master_masterPolicyNumber.isAnswered()) {\r\n // if (common.isDefined($('#qs_machinery_equipment_table_grid').data('kendoGrid'))) {\r\n // const equipmentGrid = angular.element('#qs_machinery_equipment_table_grid').data('kendoGrid');\r\n // equipmentGrid.removeRow($(e.currentTarget).closest('tr'));\r\n // }\r\n // const notification = {\r\n // message: 'Please choose a master Policy to add Equipment.'\r\n // };\r\n // this._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // 'shared/partials/mdInformationMessage/informationMessageController.html',\r\n // 'InformationMessageController', notification\r\n // , '', undefined, undefined, undefined, false, 'standardModal');\r\n // } else {\r\n // component.fetchEquipmentDropdownList();\r\n // }\r\n // });\r\n // angular.element('#qs_machinery_equipment_table_grid').on('click', '.k-grid-edit', (e) => {\r\n // timeout(() => {\r\n // component.setEquipmentDropdownList();\r\n // }, 10);\r\n // });\r\n // // if (hideEquipmentActionCol) {\r\n // // $('#qs_machinery_equipment_table_grid .k-header:contains(\"Action\")').hide();\r\n // // } else {\r\n // // $('#qs_machinery_equipment_table_grid .k-header:contains(\"Action\")').show();\r\n // // }\r\n // const qs_master_otherInsured_table_grid: any = angular.element('#qs_master_otherInsured_table_grid');\r\n // const hideOtherInsuredNameActionCol: boolean = component.proposal.qsMaster.qs_master_otherInsuredName.readOnly;\r\n // if (common.isDefined(qs_master_otherInsured_table_grid.data('kendoGrid'))) {\r\n // const otherInsuredGrid = qs_master_otherInsured_table_grid.data('kendoGrid');\r\n // otherInsuredGrid.destroy();\r\n // angular.element('#qs_master_otherInsured_table_grid').empty();\r\n // }\r\n // qs_master_otherInsured_table_grid.kendoGrid({\r\n // dataSource: dataSourceOtherInsured,\r\n // pageable: true,\r\n // height: 280,\r\n // toolbar: [{\r\n // text: 'Add Additional Insured',\r\n // name: 'create'\r\n // }],\r\n // dataBound: () => {\r\n // const grid1 = angular.element('#qs_master_otherInsured_table_grid').data('kendoGrid');\r\n // if (common.isDefined(grid1) && !this.proposal.qsMaster.qs_master_otherInsuredName.readOnly) {\r\n // if (grid1.dataSource.data().length >= this.interestedPartyGridLength) {\r\n // angular.element('#qs_master_otherInsured_table_grid .k-grid-add').hide();\r\n // } else {\r\n // angular.element('#qs_master_otherInsured_table_grid .k-grid-add').show();\r\n // }\r\n // } else {\r\n // angular.element('#qs_master_otherInsured_table_grid .k-grid-add').hide();\r\n // }\r\n // $('#qs_master_otherInsured_table_grid .k-grid-myDelete span').addClass('k-icon k-delete');\r\n // },\r\n // columns: [\r\n // {\r\n // field: 'otherInsuredName',\r\n // title: 'Insured Name',\r\n // width: '350px',\r\n // },\r\n // {\r\n // field: 'cin',\r\n // title: 'CIN',\r\n // width: '325px',\r\n // },\r\n // {\r\n // field: 'otherBRNo',\r\n // title: 'Business Registration Number',\r\n // width: '275px',\r\n // },\r\n // {\r\n // hidden: hideOtherInsuredNameActionCol,\r\n // field: 'command',\r\n // command: ['edit', {\r\n // name: 'myDelete',\r\n // text: 'Delete',\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedInsuredGridOptions = $(e.currentTarget).closest('tr');\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: 'qs_master_otherInsured_table_grid'\r\n // };\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // 'shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html',\r\n // 'SharedConfirmationMessageV1Controller', data\r\n // , component.confirmationModalCloseForDeleteAction,\r\n // undefined, undefined, undefined, false, 'standardModal');\r\n // }\r\n // }],\r\n // title: 'Action',\r\n // width: '200px',\r\n // attributes: { 'class': 'textAlignCenter' },\r\n // headerAttributes: { 'style': 'text-align:center !important' },\r\n // }],\r\n // edit: component.onGridEditing,\r\n // editable: { mode: 'inline', confirmation: false },\r\n // });\r\n /*2022-08-30 dagoh0: APACDM-363 - Consider Plan Type if answer is not null*/\r\n let annualExpiryDate = cloneDeep(\r\n component.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n let minInceptionDate = new Date();\r\n const planTypeYear =\r\n this.proposal.qsMaster.qs_master_planType != null &&\r\n this.proposal.qsMaster.qs_master_planType.answer != null\r\n ? +this.proposal.qsMaster.qs_master_planType.answer\r\n : 0;\r\n if (planTypeYear > 0) {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + planTypeYear);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n } else {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + 1);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n }\r\n minInceptionDate.setDate(minInceptionDate.getDate() - 180); //Backdating rule: Possible up to 180 days\r\n if (component.proposal.isBroker) {\r\n const timeDiff = Math.abs(\r\n new Date().getTime() -\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n this.qs_master_poi_startDate_datePicker_minDate = minInceptionDate;\r\n this.qs_master_poi_startDate_datePicker_maxDate = annualExpiryDate;\r\n } else {\r\n this.qs_master_poi_startDate_datePicker_minDate = new Date(1900, 1, 1);\r\n this.qs_master_poi_startDate_datePicker_maxDate = new Date(\r\n 2999,\r\n 12,\r\n 31\r\n );\r\n }\r\n component.proposal.qsMaster.qs_master_poi_endDate!.answer =\r\n annualExpiryDate;\r\n component.qs_master_effectiveDate_onChange();\r\n if (\r\n (component.isEndorsement &&\r\n component.proposal.endorsementType !==\r\n Enum.EndorsementType.ChangeOfPOI) ||\r\n component.isCancel\r\n ) {\r\n component.proposal.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n }\r\n\r\n if (this.isIBGProduct) {\r\n setTimeout(() => {\r\n // empty country value to search for all\r\n // this.googleSearchAutoCompletePolicyInformation =\r\n // new GoogleAddressAutoCompleteManager('policyInformation_autocomplete', '', this.updateAddressValues);\r\n // this.googleSearchAutoCompletePolicyInformation.InitializeAddressAutoCompleteElement();\r\n this.googlePlacesOptions = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [] }, //no country restriction\r\n } as unknown as Options;\r\n\r\n if (this.proposal.isBroker) {\r\n this.proposal.qsMaster.qs_master_insuredNo!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.readOnly =\r\n true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly =\r\n true;\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n this.proposal.transType === Enum.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.GeneralEndorsement &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n this.proposal.qsMaster.qs_master_insuredNo!.readOnly = false;\r\n }\r\n }\r\n this.qs_master_lst_onChange(\r\n this.proposal.qsMaster.qs_master_lst!.answer\r\n );\r\n }, 200);\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_waiveMinimumPremium!.answer === \"True\"\r\n ) {\r\n if (common.isDefined(this.qs_master_waiveMinimumPremium_checkbox)) {\r\n this.qs_master_waiveMinimumPremium_checkbox.nativeElement.checked =\r\n true;\r\n }\r\n }\r\n }, 200);\r\n\r\n this.bindGrid(this.proposal.qsMaster.qs_fire_interestedParties!);\r\n };\r\n\r\n private bindGrid(qs_fire_interestedParties: QuestionEntity) {\r\n let isIBGProduct = false;\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ? true\r\n // : false;\r\n if (!isIBGProduct) {\r\n this.labelTextInterestedParty = \"Add Additional Insured\";\r\n }\r\n\r\n this.hideInterestedPartiesActionCol =\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.readOnly!;\r\n\r\n if (qs_fire_interestedParties.answer) {\r\n const obj: FireInterestedParties[] = JSON.parse(\r\n qs_fire_interestedParties.answer\r\n );\r\n this.gridFireInterestedParties = {\r\n data: obj,\r\n total: obj.length,\r\n };\r\n }\r\n\r\n if (\r\n qs_fire_interestedParties.readOnly !== undefined &&\r\n !qs_fire_interestedParties.readOnly\r\n ) {\r\n if (\r\n this.gridFireInterestedParties?.total >= this.interestedPartyGridLength\r\n ) {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n this.addButtonVisiiblity = false;\r\n } else {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').show();\r\n this.addButtonVisiiblity = true;\r\n }\r\n } else {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n this.addButtonVisiiblity = false;\r\n }\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-myDelete span').addClass('k-icon k-delete');//todo\r\n }\r\n\r\n // private onGridEditing(arg) {\r\n // // setting max length fort each input inside kendo grid due to proposal Data Extractor\r\n // // Interested Parties\r\n // arg.container.find('input[name=\"NatureOfInterest\"]').attr('maxlength', '50');\r\n\r\n // arg.container.find('input[name=\"Name\"]').attr('maxlength', '80');\r\n\r\n // // Equipment Type\r\n // arg.container.find('input[name=\"equipmentDescription\"]').attr('maxlength', '50');\r\n // arg.container.find('input[name=\"typeOfFinancing\"]').attr('maxlength', '50');\r\n // arg.container.find('input[name=\"NatureOfInterest\"]').attr('maxlength', '50');\r\n // arg.container.find('input[name=\"sumInsured\"]').attr('maxlength', '10');\r\n\r\n // // styling\r\n // arg.container.find('span[aria-owns=\"equipmentDropdownList_listbox\"]').css('width', '350px');\r\n // arg.container.find('input[name=\"typeOfFinancing\"]').css('width', '350px');\r\n // arg.container.find('input[name=\"equipmentDescription\"]').css('width', '350px');\r\n\r\n // // Other Insured details\r\n // arg.container.find('input[name=\"otherInsuredName\"]').attr('maxlength', '50');\r\n // arg.container.find('input[name=\"cin\"]').attr('maxlength', '50');\r\n // arg.container.find('input[name=\"otherBRNo\"]').attr('maxlength', '50');\r\n // // for popup window\r\n // angular.element('.k-edit-form-container').attr('style', 'width:auto');\r\n // }\r\n\r\n public refreshEchoPanel = (args: any) => {\r\n proposalServiceNotifier.saved_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n };\r\n private closeEditor(\r\n grid: GridComponent,\r\n rowIndex = this.editedRowIndex\r\n ): void {\r\n // close the editor\r\n grid.closeRow(rowIndex);\r\n // revert the data item to original state\r\n }\r\n\r\n private qs_master_effectiveDates_onChange = (data: any) => {\r\n ///this.proposalService.businessRulesManager.validateCancellationBackdating();//HE-257, Scenario 2\r\n this.proposalService.businessRulesManager.validateLoanRedemptionBackdating();\r\n };\r\n\r\n private qs_master_effectiveDate_onChange = (): void => {\r\n /** Endorsement Restrictions for Effective Date\r\n * -------------------------------------------------------------------\r\n *\r\n * 1. General Endorsement\r\n * 2. Change Of Correspondence Address\r\n * 3. Change of Sum Insured\r\n * Uw and Broker :\r\n * -------------------------\r\n * Min : Previous Endorsement Effective Date\r\n * Max: Policy End date\r\n * -----------------------------------------\r\n * 4. Loan Redemption:\r\n * Min : Policy Start Date\r\n * Max: Policy End Date\r\n * --------------------------------------------\r\n * 5. Change Of POI\r\n * UW:\r\n * ----------\r\n * Min : No Restriction\r\n * Max : No Restriction\r\n * Broker:\r\n * ---------\r\n * Min : 1 month from Policy Start Date\r\n * Max : No Restriction\r\n * -----------------------------------------\r\n * 6. Change Of Sum Insured:\r\n * Min : Policy Start Date\r\n * Max: Policy End Date\r\n * --------------------------------------------\r\n */\r\n let minEffectiveDate =\r\n common.isDefined(this.proposal.minimumEffectiveDate) &&\r\n this.proposal.minimumEffectiveDate !== null\r\n ? new Date(this.proposal.minimumEffectiveDate)\r\n : new Date(this.proposal.qsMaster.qs_master_poi_startDate!.answer);\r\n if (\r\n this.proposal.minimumEffectiveDate < this.proposal.originalInceptionDate\r\n ) {\r\n minEffectiveDate = this.proposal.originalInceptionDate;\r\n }\r\n const policyStartDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const currentPOI = new Date(new Date().setHours(0, 0, 0, 0));\r\n const currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const timeDiff = Math.abs(\r\n policyStartDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n let minEffectiveDateLoanRedemption = policyStartDate;\r\n if (\r\n policyStartDate < currentDate &&\r\n diffDays > EnumHK.BackdatedRules.MaximumAllowedLoanRedemption\r\n ) {\r\n minEffectiveDateLoanRedemption = minEffectiveDate;\r\n }\r\n\r\n if (this.isEndorsement) {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(1900, 1, 1);\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(2999, 12, 31);\r\n\r\n switch (this.proposal.endorsementType) {\r\n case Enum.EndorsementType.GeneralEndorsement:\r\n {\r\n if (this.isIBGProduct) {\r\n this.qs_master_effectiveDate_datePicker_minDate =\r\n minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate =\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer;\r\n } else {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfCorrespondenceAddress:\r\n case Enum.EndorsementType.ChangeOfClientInfo:\r\n case Enum.EndorsementType.ChangeOfAdditionalInsured:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n case Enum.EndorsementType.LoanRedemption:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate =\r\n minEffectiveDateLoanRedemption;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfPOI:\r\n if (this.proposal.isUnderwriter) {\r\n {\r\n this.qs_master_poi_startDate_datePicker_minDate = new Date(\r\n 1900,\r\n 1,\r\n 1\r\n );\r\n this.qs_master_poi_startDate_datePicker_maxDate = new Date(\r\n 2999,\r\n 12,\r\n 31\r\n );\r\n }\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfSumInsured:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate = minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n } else if (this.isCancel) {\r\n switch (this.proposal.productType) {\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // let MIPEffectiveDate = minEffectiveDate;\r\n // if (this.proposal.loanRedeemed) {\r\n // if (minEffectiveDate < minEffectiveDateLoanRedemption) {\r\n // MIPEffectiveDate = minEffectiveDateLoanRedemption;\r\n // }\r\n // }\r\n // this.qs_master_effectiveDate_datePicker_minDate = MIPEffectiveDate;\r\n // this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n // this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n // );\r\n // break;\r\n default:\r\n this.qs_master_effectiveDate_datePicker_minDate = minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n break;\r\n }\r\n }\r\n };\r\n\r\n public qs_fire_coverageValueType_OnChange = (args: any): void => {\r\n if (\r\n this.selectCoverageType !==\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.answer\r\n ) {\r\n this.proposal.qsMaster.qs_fire_building!.answer = 0;\r\n //clear this will set answer to undefined, but with minValue to 0\r\n this.proposal.qsMaster.qs_fire_replacement!.clearAnswer();\r\n\r\n this.selectCoverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.answer;\r\n }\r\n\r\n this.coverageTypeService.updateValue(\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.answer\r\n );\r\n };\r\n\r\n private initialize() {\r\n this.clientService.clientDictionary = {};\r\n this.nationalityList = new Array();\r\n this.proposal = this.proposalService.proposal;\r\n // if (\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ) {\r\n // this.isIBGProduct = true;\r\n // } else\r\n {\r\n this.defaultNOI = \"Additional Insured\";\r\n this.editableNOI = false;\r\n }\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n if (\r\n common.isDefined(this.proposal.originalInceptionDate) &&\r\n this.proposal.originalInceptionDate !== null\r\n ) {\r\n this.originalInceptionDate = dateFormatter.format(\r\n this.proposal.originalInceptionDate,\r\n Culture.enSg\r\n );\r\n } else {\r\n this.originalInceptionDate = dateFormatter.format(\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.answer,\r\n Culture.enSg\r\n );\r\n this.proposal.originalInceptionDate =\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.answer;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\"\r\n ) {\r\n this.manualUnderwritting();\r\n }\r\n super.subscribeTabLoadRenderer();\r\n\r\n this.fireRiskDetailsOccupiedAsValue();\r\n this.qs_fire_replacement_questionUpdate();\r\n\r\n this.setProduct(); //has to be done before getDisplayManualUnderwriting()\r\n this.getDisplayManualUnderwriting();\r\n }\r\n\r\n private getDisplayManualUnderwriting = () => {\r\n this.displayManualUnderwriting = this.productFactory\r\n .master()\r\n .showManualUnderwriting(this.identityRolesService, this.proposal);\r\n };\r\n\r\n // private resetAuxiliaryModel = () => {\r\n // // reset the aux if underwriter changes it\r\n // if (this.isUnderwriter && this.isIBGProduct) {\r\n // const data = {\r\n // message: 'Premium Details will be refreshed after saved.'\r\n // };\r\n\r\n // this._dialog = Dialog.DialogModal.Instance.modalLarge(\r\n // 'shared/partials/mdInformationMessage/informationMessageController.html',\r\n // 'InformationMessageController', data\r\n // , '', undefined, undefined, undefined, false, 'standardModal');\r\n\r\n // this.proposal.auxiliary = {};\r\n // }\r\n // }\r\n\r\n public qs_master_insuredIndustry_onChange = () => {\r\n let postData: occupationSearchDlgInputArgs = {\r\n isEditable: this.isEditable,\r\n occupationList: this.proposal.qsMaster.qs_master_insuredIndustry!.options, //temp pass to inside ClientSearchComponent\r\n };\r\n\r\n const occupationSearchDialogRef = this.cdkDialogService.open(\r\n OccupationSearchComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n\r\n occupationSearchDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForOccupation(result);\r\n }\r\n });\r\n };\r\n\r\n private occupationModalClose = (data: KeyValue): void => {\r\n if (common.isDefined(data)) {\r\n this.proposal.qsMaster.qs_master_insuredIndustry!.answer = data.key;\r\n this.proposal.qsMaster.qs_master_insuredIndustry_desc!.answer =\r\n data.value;\r\n }\r\n };\r\n\r\n fetchEquipmentOptions = (): KeyValue[] => {\r\n const selectedMasterPolicyDetails = this.getMasterPolicyDetails();\r\n this.equipmentDropdownOptions =\r\n this.proposalService.proposal.qsMaster.qs_machinery_equipment!.options.filter(\r\n (obj: any) => {\r\n switch (selectedMasterPolicyDetails.policyType) {\r\n case \"ARC\":\r\n return (\r\n obj.value ===\r\n mortgageFireSingaporeSettings.ARC_MedicalMachineryType ||\r\n obj.value ===\r\n mortgageFireSingaporeSettings.ARC_OfficeMachineryType ||\r\n obj.value ===\r\n mortgageFireSingaporeSettings.ARC_ConstructionMachineryType ||\r\n obj.value ===\r\n mortgageFireSingaporeSettings.ARC_IndustrialMachineryType\r\n );\r\n case \"MAR\":\r\n return (\r\n obj.value ===\r\n mortgageFireSingaporeSettings.MAR_ConstructionMachineryType ||\r\n obj.value ===\r\n mortgageFireSingaporeSettings.MAR_CranesMachineryType ||\r\n obj.value ===\r\n mortgageFireSingaporeSettings.MAR_IndustrialMachineryType\r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n );\r\n return this.equipmentDropdownOptions;\r\n };\r\n\r\n verifyStateCountry(answer: string) {\r\n const elementPos = this.countryExcludeState\r\n .map(function (x: any) {\r\n return x;\r\n })\r\n .indexOf(answer);\r\n if (elementPos > -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n processTableDataInteresedParty(answer: string) {\r\n let jsonParsed: any = [];\r\n if (common.isDefined(answer)) {\r\n jsonParsed = JSON.parse(answer);\r\n /*add id for table's use*/\r\n jsonParsed.forEach((item: { PartyID: any }, index: any) => {\r\n item.PartyID = index;\r\n });\r\n }\r\n return jsonParsed;\r\n }\r\n\r\n processTableDataOtherInsured(answer: string) {\r\n let jsonParsed: any = [];\r\n if (common.isDefined(answer)) {\r\n jsonParsed = JSON.parse(answer);\r\n /*add id for table's use*/\r\n jsonParsed.forEach((item: { otherInsuredID: any }, index: any) => {\r\n item.otherInsuredID = index;\r\n });\r\n }\r\n return jsonParsed;\r\n }\r\n\r\n processTableDataEquipment(answer: string) {\r\n let jsonParsed: any = [];\r\n if (common.isDefined(answer)) {\r\n jsonParsed = JSON.parse(answer);\r\n /*add id for table's use*/\r\n jsonParsed.forEach(\r\n (item: { rowID: any; additionalInfo: string }, index: any) => {\r\n item.rowID = index;\r\n // addtional info is added later, so need to check on the value to prevent showing undefined\r\n if (!Global.isDefined(item.additionalInfo)) {\r\n item.additionalInfo = \"\";\r\n }\r\n }\r\n );\r\n }\r\n return jsonParsed;\r\n }\r\n\r\n // onDataBound = () => {\r\n // const gridTable: any = $('#qs_master_claimedBefore_table_grid').data('kendoGrid');\r\n\r\n // }\r\n\r\n // claimsData_OnRead = (options): void => {\r\n // options.success(this.claimData);\r\n // }\r\n\r\n // claimsData_OnCreate = (options): void => {\r\n // if (options.data && options.data.models) {\r\n\r\n // this.claimDataLength = this.claimDataLength + 1;\r\n // /*adding the id using the initial length*/\r\n // options.data.models[0].PartyID = this.claimDataLength;\r\n // this.claimData.push(options.data.models[0]);\r\n // options.success(options.data.models[0]);\r\n // /*TODO - need to bind to the qas*/\r\n // this.proposal.qsMaster.qs_fire_interestedParties.answer = JSON.stringify(this.claimData);\r\n // }\r\n // }\r\n\r\n // claimData_OnDestroy = (options): void => {\r\n // if (options.data && options.data.models) {\r\n // for (let i = 0; i < this.claimData.length; i++) {\r\n // const updatedData: any = options.data.models[0];\r\n // if (this.claimData[i].PartyID === updatedData.PartyID) {\r\n // this.claimData.splice(i, 1);\r\n // break;\r\n // }\r\n // }\r\n // /*set the answer to empty if length < 1*/\r\n // this.proposal.qsMaster.qs_fire_interestedParties.answer = (this.claimData.length > 0) ? JSON.stringify(this.claimData) : '';\r\n // options.success(this.claimData);\r\n // }\r\n // }\r\n\r\n // claimData_OnUpdate = (options): void => {\r\n // if (options.data && options.data.models) {\r\n // for (let i = 0; i < this.claimData.length; i++) {\r\n // const updatedData: any = options.data.models[0];\r\n // if (this.claimData[i].PartyID === updatedData.PartyID) {\r\n // this.claimData[i].Name = updatedData.Name;\r\n // this.claimData[i].NatureOfInterest = updatedData.NatureOfInterest;\r\n // }\r\n // }\r\n // options.success(options.data.models[0]);\r\n // this.proposal.qsMaster.qs_fire_interestedParties.answer = JSON.stringify(this.claimData);\r\n // }\r\n // }\r\n\r\n equipmentData_OnCreate = (\r\n equipmentListingEntity: MfSgEquipmentListingEntity[]\r\n ): void => {\r\n if (common.isDefined(equipmentListingEntity)) {\r\n this.proposalService.proposal.qsMaster.qs_machinery_equipment!.answer =\r\n JSON.stringify(equipmentListingEntity);\r\n }\r\n };\r\n\r\n equipmentData_OnDestroy = (\r\n equipmentListingEntity: MfSgEquipmentListingEntity[]\r\n ): void => {\r\n if (common.isDefined(equipmentListingEntity)) {\r\n this.proposalService.proposal.qsMaster.qs_machinery_equipment!.answer =\r\n JSON.stringify(equipmentListingEntity);\r\n }\r\n };\r\n\r\n equipmentData_OnUpdate = (\r\n equipmentListingEntity: MfSgEquipmentListingEntity[]\r\n ): void => {\r\n if (common.isDefined(equipmentListingEntity)) {\r\n this.proposalService.proposal.qsMaster.qs_machinery_equipment!.answer =\r\n JSON.stringify(equipmentListingEntity);\r\n }\r\n };\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeRxjs();\r\n }\r\n\r\n clientCreate() {\r\n const postData: clientCreateDlgInputArgs = {\r\n isNewClient: true,\r\n proposal: this.proposal,\r\n };\r\n const clientCreateDialogRef = this.cdkDialogService.open(\r\n MfHkClientCreateComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n clientCreateDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n updatePreferredDelivery = () => {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n const postData = {\r\n isNewClient: true,\r\n clientCode:\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer,\r\n };\r\n const preferredDeliveryMethodDialogRef = this.cdkDialogService.open(\r\n MdPreferredDeliveryMethodComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n\r\n preferredDeliveryMethodDialogRef\r\n .afterClosed()\r\n .subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForDeliveryMehodActions(result);\r\n }\r\n });\r\n }\r\n };\r\n\r\n clientSearch = () => {\r\n let postData: mfHkClientSearchDlgInputArgs = {\r\n isEditable: this.isEditable,\r\n proposal: this.proposal, //temp pass to inside ClientSearchComponent\r\n };\r\n const clientSearchDialogRef = this.cdkDialogService.open(\r\n MfHkClientSearchComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n clientSearchDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n };\r\n\r\n viewClientDetails = () => {\r\n const postData = {\r\n isEditable: this.isEditable,\r\n clientCode:\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(ClientViewComponent, {\r\n data: postData,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.UpdateClientInfo(result);\r\n }\r\n });\r\n };\r\n\r\n correspondanceDeliveryAddress(data: any) {\r\n let contactInfo = \"\";\r\n if (\r\n this.proposal.proposalStatus == Enum.ProposalStatus.Incomplete &&\r\n data != null\r\n ) {\r\n if (data[\"address\"][0][\"countryISO2\"] === \"SG\") {\r\n contactInfo =\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine1\"]) + \"|\";\r\n if (this.getAddressDefined(data[\"address\"][0][\"addressLine2\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine2\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"unitNo\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"unitNo\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"buildingName\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"buildingName\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"countryISO2\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.addressCountryIfUnknown(data[\"address\"][0][\"countryISO2\"]) +\r\n \" |\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"postCode\"])) {\r\n contactInfo =\r\n contactInfo + this.getAddressFormat(data[\"address\"][0][\"postCode\"]);\r\n }\r\n } else {\r\n contactInfo = this.getAddressFormat(data[\"address\"][0][\"unitNo\"]) + \"|\";\r\n if (this.getAddressDefined(data[\"address\"][0][\"buildingName\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"buildingName\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"addressLine1\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine1\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"addressLine2\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine2\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"addressLine3\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine3\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"addressLine4\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"addressLine4\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"postCode\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"postCode\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"city\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"city\"]) +\r\n \"|\";\r\n }\r\n if (this.getAddressDefined(data[\"address\"][0][\"stateName\"])) {\r\n contactInfo =\r\n contactInfo +\r\n this.getAddressFormat(data[\"address\"][0][\"stateName\"]) +\r\n \"|\";\r\n }\r\n //DBSEP-7143\r\n // if (this.getAddressDefined(data[\"address\"][0][\"countryISO2\"])) {\r\n // contactInfo =\r\n // contactInfo +\r\n // this.addressCountryIfUnknown(data[\"address\"][0][\"countryISO2\"]) +\r\n // \"|\";\r\n // }\r\n }\r\n } else {\r\n contactInfo =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!\r\n .answer;\r\n }\r\n var dataAddress = contactInfo.split(\"|\");\r\n var address = \"\";\r\n if (contactInfo.includes(\"|\")) {\r\n for (let x in dataAddress) {\r\n if (dataAddress[x] != \" \" || dataAddress[x] != \"\") {\r\n address = address + \" \" + dataAddress[x];\r\n }\r\n }\r\n } else {\r\n address = contactInfo;\r\n }\r\n\r\n this.contactInformationPreferredDelivery = address;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer =\r\n contactInfo;\r\n }\r\n\r\n confirmationModalCloseForDeliveryMehodActions = (response: any) => {\r\n if (response.status === \"yes\") {\r\n let data = response.data;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer =\r\n data.mobileNumber;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer =\r\n data.emailAddress;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer =\r\n data.preferredDeliveryMethod;\r\n this.correspondanceDeliveryAddress(data);\r\n }\r\n };\r\n\r\n confirmationModalCloseForOccupation = (response: any): void => {\r\n if (response.status === \"yes\" && common.isDefined(response.data)) {\r\n this.proposal.qsMaster.qs_master_insuredIndustry!.answer =\r\n response.data.key;\r\n this.proposal.qsMaster.qs_master_insuredIndustry_desc!.answer =\r\n response.data.value;\r\n }\r\n };\r\n\r\n confirmationModalCloseForActions = (response: any): void => {\r\n if (response.status === \"yes\") {\r\n let data = response.data;\r\n if (this.isChangeOfClientInfo && !data.isNewClient) {\r\n this.confirmationModalCloseForChangeOfClientInfoController(data);\r\n this.confirmationModalCloseForChangeOfCorrespondenceAddress(data);\r\n } else {\r\n let clientId = data.clientId;\r\n let clientAddressId = data.clientAddressID;\r\n let clientCode = data.clientCode;\r\n\r\n //if current level not found, dive another level, maybe diff api\r\n if (\r\n !common.isDefined(clientId) &&\r\n common.isDefined(data.clientData) &&\r\n common.isDefined(data.clientAddressData)\r\n ) {\r\n clientId = (data.clientData as ClientEntity).clientId;\r\n clientAddressId = (data.clientAddressData as ClientAddressEntity)\r\n .clientAddressID;\r\n clientCode = data.clientCode;\r\n }\r\n if (common.isDefined(clientId)) {\r\n // map to customer mapping id\r\n this.proposalService.proposal.customerMappingId = clientId;\r\n this.proposalService.proposal.customerMappingAddressID =\r\n clientAddressId;\r\n // this.ClientService.search();\r\n\r\n this.clientService.get(clientId, clientCode).subscribe((response) => {\r\n if (!this.isChangeOfClientInfo) this.isEditable = true;\r\n // if (response[\"clientType\"] === 1) {\r\n // this.proposal.qsMaster.qs_master_insuredName!.answer =\r\n // response[\"lastName\"] + \" \" + response[\"firstName\"];\r\n // this.proposal.qsMaster.qs_master_clientName!.answer =\r\n // response[\"lastName\"] + \"-\" + response[\"firstName\"];\r\n // } else\r\n {\r\n this.proposal.qsMaster.qs_master_insuredName!.answer =\r\n response[\"clientName\"];\r\n this.proposal.qsMaster.qs_master_clientName!.answer =\r\n response[\"clientName\"];\r\n }\r\n\r\n this.proposal.qsMaster.qs_master_insuredNo!.answer =\r\n response[\"clientCode\"];\r\n this.proposal.qsMaster.qs_master_insuredNoDocType!.answer =\r\n response[\"docType\"];\r\n this.proposal.qsMaster.qs_master_mobileNumber!.answer =\r\n response[\"mobileNumber\"];\r\n this.proposal.qsMaster.qs_master_emailID!.answer =\r\n response[\"emailAddress\"];\r\n // update the values to the master level\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer =\r\n response[\"address\"][0][\"buildingName\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer =\r\n response[\"address\"][0][\"unitNo\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer =\r\n response[\"address\"][0][\"addressLine1\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer =\r\n response[\"address\"][0][\"addressLine2\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress3!.answer =\r\n response[\"address\"][0][\"addressLine3\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress4!.answer =\r\n response[\"address\"][0][\"addressLine4\"];\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer =\r\n response[\"address\"][0][\"postCode\"];\r\n this.proposal.qsMaster.qs_master_insuredCity!.answer =\r\n response[\"address\"][0][\"city\"];\r\n this.proposal.qsMaster.qs_master_insuredState!.answer =\r\n response[\"address\"][0][\"stateName\"];\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer =\r\n response[\"address\"][0][\"countryISO2\"];\r\n\r\n let contactInfo = \"\";\r\n if (response[\"address\"][0][\"countryISO2\"] === \"SG\") {\r\n contactInfo =\r\n response[\"address\"][0][\"addressLine1\"] +\r\n \" \" +\r\n this.getAddressFormat(response[\"address\"][0][\"addressLine2\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"unitNo\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"buildingName\"]) +\r\n this.addressCountryIfUnknown(\r\n response[\"address\"][0][\"countryISO2\"]\r\n ) +\r\n \" \" +\r\n this.getAddressFormat(response[\"address\"][0][\"postCode\"]);\r\n } else {\r\n contactInfo =\r\n this.getAddressFormat(response[\"address\"][0][\"unitNo\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"buildingName\"]) +\r\n response[\"address\"][0][\"addressLine1\"] +\r\n \" \" +\r\n this.getAddressFormat(response[\"address\"][0][\"addressLine2\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"postCode\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"city\"]) +\r\n this.getAddressFormat(response[\"address\"][0][\"stateName\"]); //+\r\n //DBSEP-7143\r\n // this.addressCountryIfUnknown(\r\n // response[\"address\"][0][\"countryISO2\"]\r\n // );\r\n }\r\n this.contactInformation = contactInfo;\r\n\r\n this.setPreferredDeliveryMethod(response);\r\n });\r\n }\r\n\r\n this.copyInsuredAddress(clientId, clientCode);\r\n }\r\n } else {\r\n if (common.isDefined(this.clientDictionary)) {\r\n this.mapClientdata(\r\n this.clientDictionary,\r\n this.clientService.clientDictionary[\r\n this.proposalService.proposal.customerMappingId!\r\n ]\r\n );\r\n }\r\n }\r\n };\r\n\r\n setPreferredDeliveryMethod(response: any) {\r\n if (\r\n this.proposal.proposalStatus == Enum.ProposalStatus.Incomplete &&\r\n (this.proposal.transType === Enum.TransType.NEW ||\r\n this.proposal.transType === Enum.TransType.REN)\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer =\r\n response[\"mobileNumber\"];\r\n\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer =\r\n response[\"emailAddress\"];\r\n this.correspondanceDeliveryAddress(response);\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer == \"0\"\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer =\r\n \"\";\r\n }\r\n\r\n //DBSEP-7006\r\n // if (\r\n // this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.isAnswered()\r\n // ) {\r\n // this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer =\r\n // \"5\";\r\n // } else if (\r\n // this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.isAnswered()\r\n // ) {\r\n // this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer =\r\n // \"2\";\r\n // } else {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer = \"1\";\r\n // }\r\n }\r\n }\r\n\r\n qs_fire_replacement_questionUpdate = (): void => {\r\n switch (this.proposal.productType) {\r\n //case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.proposal.qsMaster.qs_fire_replacement!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_replacement!.required = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n qs_master_masterPolicyNumber_dropDownListUpdate = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n //case EnumSG.MortgageFireSgProduct.HDB:\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = [\r\n {\r\n key: \"Premium Paid by Bank (2 Years Free) - DHO (26241776)\",\r\n value: \"26241776\",\r\n },\r\n {\r\n key: \"Premium Paid by Bank (5 Years Free) - DHO (26465408)\",\r\n value: \"26465408\",\r\n },\r\n {\r\n key: \"Premium Paid by Bank (10 Years Free) - DHO (26415044)\",\r\n value: \"2641504\",\r\n },\r\n { key: \"Customer - Auto Debit - DFW (26412347)\", value: \"26412347\" },\r\n {\r\n key: \"Premium Paid by Bank (1st Year Free) - DDM (26737306)\",\r\n value: \"26737306\",\r\n },\r\n { key: \"Customer - Auto Debit - DDM (26858221)\", value: \"26858221\" },\r\n ];\r\n break;\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n // this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = [\r\n // {\r\n // key: \"Premium Paid by Bank (1st Year Free) - DFW (26737301)\",\r\n // value: \"26737301\",\r\n // },\r\n // { key: \"Customer - Auto Debit - DFW (26858210)\", value: \"26858210\" },\r\n // {\r\n // key: \"Premium Paid by Bank (1st Year Free) - DFW (27387828)\",\r\n // value: \"27387828\",\r\n // },\r\n // { key: \"Customer - Auto Debit - DFW (27395036)\", value: \"27395036\" },\r\n // ];\r\n // break;\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = [\r\n // { key: \"Premium Paid by Bank - FHO (06004951)\", value: \"06004951\" },\r\n // {\r\n // key: \"Premium Paid by Bank (2 years free) - FHO (26475515)\",\r\n // value: \"26475515\",\r\n // },\r\n // {\r\n // key: \"Premium Paid by Bank (3 years free) - FHO (26475550)\",\r\n // value: \"26475550\",\r\n // },\r\n // {\r\n // key: \"Premium Paid by Bank (1st Year Free) - DHW (26737312)\",\r\n // value: \"26737312\",\r\n // },\r\n // { key: \"Premium Paid by Bank - FDM (06005204)\", value: \"06005204\" },\r\n // {\r\n // key: \"Premium Paid by Bank (Cheque Payment) - FDM (06616126)\",\r\n // value: \"06616126\",\r\n // },\r\n // {\r\n // key: \"Customer - Auto Debit - FDM (Staff) (26665692)\",\r\n // value: \"26665692\",\r\n // },\r\n // ];\r\n // break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = [\r\n // { key: \"Premium Paid by Bank - FHO (06004951)\", value: \"06004951\" },\r\n // {\r\n // key: \"Premium Paid by Bank (2 years free) - FHO (26475515)\",\r\n // value: \"26475515\",\r\n // },\r\n // {\r\n // key: \"Premium Paid by Bank (3 years free) - FHO (26475550)\",\r\n // value: \"26475550\",\r\n // },\r\n // {\r\n // key: \"Premium Paid by Bank (1st Year Free) - DHW (26737312)\",\r\n // value: \"26737312\",\r\n // },\r\n // { key: \"Premium Paid by Bank - FDM (06005204)\", value: \"06005204\" },\r\n // {\r\n // key: \"Premium Paid by Bank (Cheque Payment) - FDM (06616126)\",\r\n // value: \"06616126\",\r\n // },\r\n // {\r\n // key: \"Customer - Auto Debit - FDM (Staff) (26665692)\",\r\n // value: \"26665692\",\r\n // },\r\n // ];\r\n // break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n qs_master_poi_startDate_onChange = (): void => {\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.setFreeInsuranceDate();\r\n const annualExpiryDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n const minInceptionDate = new Date();\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + 1);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n minInceptionDate.setDate(minInceptionDate.getDate() - 30);\r\n if (this.proposal.isBroker) {\r\n const timeDiff = Math.abs(\r\n new Date().getTime() -\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n this.qs_master_poi_startDate_datePicker_minDate = minInceptionDate;\r\n this.qs_master_poi_startDate_datePicker_maxDate = annualExpiryDate;\r\n } else {\r\n this.qs_master_poi_startDate_datePicker_minDate = new Date(1900, 1, 1);\r\n this.qs_master_poi_startDate_datePicker_maxDate = new Date(2999, 12, 31);\r\n }\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer = annualExpiryDate;\r\n // Update the effective Date whenever start date is modified\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer =\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer;\r\n this.qs_master_effectiveDate_onChange();\r\n switch (this.proposal.proposalStatus) {\r\n case Enum.ProposalStatus.Incomplete:\r\n //DBSEP-2136\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.isIBGProduct\r\n ) {\r\n // if (\r\n // this.proposal.productType == EnumSG.MortgageFireSgProduct.IBGMF ||\r\n // this.proposal.productType == EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ) {\r\n // this.proposalService.businessRulesManager.validatePOIBackDated();\r\n // }\r\n }\r\n break;\r\n case Enum.ProposalStatus.PendingChecker:\r\n if (!this.proposal.isUnderwriter) {\r\n this.proposalService.businessRulesManager.validatePOIBackDated();\r\n }\r\n break;\r\n case Enum.ProposalStatus.Referred:\r\n this.proposalService.businessRulesManager.validatePOIBackDated();\r\n break;\r\n }\r\n };\r\n\r\n fireRiskDetailsOccupiedAsValue = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n //case EnumSG.MortgageFireSgProduct.HDB:\r\n this.currency1HDBDisabled = false;\r\n break;\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n // this.proposal.qsMaster.qs_fire_mcst!.isVisible = true;\r\n // break;\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // // this.proposal.qsMaster.qs_fire_occupied.answer = '53';\r\n // // this.proposal.qsMaster.qs_fire_occupied.options.splice(1, 5);\r\n // // this.readOnlyQSFireOccupied();\r\n // break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n readOnlyQSFireOccupied = (): void => {\r\n this.proposal.qsMaster.qs_fire_occupied!.readOnly = true;\r\n // this.proposal.qsMaster.qs_fire_occupied.answer = this.proposal.qsMaster.qs_fire_occupied.options[0].key; // Default to Dwelling\r\n };\r\n\r\n // private qs_fire_sumInsured_ibg() {\r\n // this.proposalService.businessRulesManager.validateIBGSI();\r\n // }\r\n\r\n qs_fire_occupied_onChange = (data: any): void => {\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n //do nothing for now\r\n break;\r\n default:\r\n }\r\n };\r\n\r\n qs_fire_FSVSumInsured = (data: any): void => {\r\n //no needed anymore\r\n // switch (this.proposal.productType) {\r\n // case EnumHK.MortgageFireHKProduct.HSCMB:\r\n // case EnumHK.MortgageFireHKProduct.HSWPB:\r\n // //case EnumSG.MortgageFireSgProduct.HDB:\r\n // if (\r\n // this.proposal.qsMaster.qs_master_manualUnderwritting!.answer ===\r\n // \"True\" ||\r\n // this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n // ) {\r\n // this.proposal.qsMaster.qs_fire_building!.answer =\r\n // this.proposal.qsMaster.qs_fire_building!.answer;\r\n // } else {\r\n // this.proposal.qsMaster.qs_fire_building!.answer =\r\n // this.proposal.qsMaster.qs_fire_replacement!.answer;\r\n // }\r\n // break;\r\n // default: // this.currency1HDBValue = (data * 1.2);\r\n // this.proposal.qsMaster.qs_fire_building!.answer = data;\r\n // break;\r\n // }\r\n // switch (this.proposal.productType) {\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // this.qs_fire_sumInsured_ibg();\r\n // break;\r\n // default:\r\n // }\r\n };\r\n\r\n /// 12/10/2018 : Chirag Added Method For FreeInsurance Start/End Date\r\n setFreeInsuranceDate = (): void => {\r\n if (!this.isIBGProduct) {\r\n this.NumOfFreeYears = 0;\r\n let dtOriginaInceptionDate = \"\";\r\n\r\n if (\r\n this.proposal.transType === Enum.TransType.NEW &&\r\n common.isDefined(this.houseHoldContentsAmount)\r\n ) {\r\n /// 08/10/2019 :INC20585048 CTS team added code block For FreeInsurance Start/End Date & Remaining Free Year Issue\r\n if (\r\n Number(\r\n cloneDeep(\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer\r\n )\r\n ) > 0 &&\r\n this.proposal.proposalStatus !== 6\r\n ) {\r\n this.NumOfFreeYears = Number(\r\n cloneDeep(\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer\r\n )\r\n );\r\n } else {\r\n this.NumOfFreeYears = Number(\r\n this.houseHoldContentsAmount?.noOfFreeInsuranceYear\r\n );\r\n }\r\n } else if (\r\n Number(\r\n cloneDeep(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer)\r\n ) > 0\r\n ) {\r\n this.NumOfFreeYears = Number(\r\n cloneDeep(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer)\r\n );\r\n }\r\n\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.isVisible =\r\n this.NumOfFreeYears > 0 ? true : false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible =\r\n this.NumOfFreeYears > 0 ? true : false;\r\n\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer =\r\n this.NumOfFreeYears;\r\n\r\n const FreeInsDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.answer = new Date(\r\n FreeInsDate\r\n );\r\n const FreeInsExpiryDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.answer\r\n );\r\n\r\n FreeInsExpiryDate.setYear(\r\n FreeInsExpiryDate.getFullYear() + this.NumOfFreeYears\r\n );\r\n FreeInsExpiryDate.setDate(FreeInsExpiryDate.getDate() - 1);\r\n this.proposal.qsMaster.qs_master_FreeIns_endDate!.answer =\r\n FreeInsExpiryDate;\r\n\r\n dtOriginaInceptionDate = this.proposal.originalInceptionDate;\r\n const OriginalDate = new Date(dtOriginaInceptionDate);\r\n\r\n if (\r\n Number(\r\n cloneDeep(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer)\r\n ) == 0 &&\r\n common.isDefined(this.houseHoldContentsAmount) &&\r\n Number(this.houseHoldContentsAmount?.noOfFreeInsuranceYear) > 0 &&\r\n Number(OriginalDate.getFullYear()) != Number(FreeInsDate.getFullYear())\r\n ) {\r\n this.isFreeInsApplicable = false;\r\n }\r\n } else {\r\n let FreeYears = 0;\r\n let dtOriginaInceptionDate = \"\";\r\n\r\n FreeYears = Number(\r\n cloneDeep(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer)\r\n );\r\n\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.isVisible =\r\n FreeYears > 0 ? true : false;\r\n dtOriginaInceptionDate =\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer;\r\n\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.answer = new Date(\r\n dtOriginaInceptionDate\r\n );\r\n const FreeInsExpiryDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.answer\r\n );\r\n\r\n FreeInsExpiryDate.setYear(FreeInsExpiryDate.getFullYear() + FreeYears);\r\n FreeInsExpiryDate.setDate(FreeInsExpiryDate.getDate() - 1);\r\n this.proposal.qsMaster.qs_master_FreeIns_endDate!.answer =\r\n FreeInsExpiryDate;\r\n }\r\n };\r\n\r\n setFreeInsuranceDateForCBG = (): void => {\r\n this.NumOfFreeYears = 0;\r\n this.NumOfFreeYears = Number(\r\n cloneDeep(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer)\r\n );\r\n if (this.NumOfFreeYears > 0) {\r\n const FreeInsExpiryDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.answer\r\n );\r\n FreeInsExpiryDate.setYear(\r\n FreeInsExpiryDate.getFullYear() + this.NumOfFreeYears\r\n );\r\n FreeInsExpiryDate.setDate(FreeInsExpiryDate.getDate() - 1);\r\n this.proposal.qsMaster.qs_master_FreeIns_endDate!.answer =\r\n FreeInsExpiryDate;\r\n } else {\r\n this.proposal.qsMaster.qs_master_FreeIns_startDate!.isVisible =\r\n this.NumOfFreeYears > 0 ? true : false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible =\r\n this.NumOfFreeYears > 0 ? true : false;\r\n }\r\n };\r\n\r\n /// 15/11/2018 : Chirag Method For FreeInsurance Start/End Date\r\n setFreeInsurance_OnPOIDate_Endorsement = (): void => {\r\n ///Chirag: 28-12-2018 Free Insurance Change For CBG Prodcut\r\n if (this.isEndorsement && this.proposal.transType !== Enum.TransType.REN) {\r\n this.setFreeInsuranceDate();\r\n }\r\n };\r\n\r\n // /// 30/09/2019 : INC20585048 DBS EPL - FREE INSURANCE DISPLAY DISCREPANCIES and Occcupation Filter issue\r\n // filterOccupied = (data: any): void => {\r\n // const dropdownFireOccupied = $('#qs_fire_occupied_dropdown').data('kendoDropDownList');\r\n // if (common.isDefined(data) && data != null) {\r\n // this.houseHoldContentsAmount = this.masterPolicyService.get(data.trim().replace(' ', ''));\r\n\r\n // if (Global.isDefined(this.houseHoldContentsAmount) && this.houseHoldContentsAmount.policyType === 'DHO') {\r\n // if (Global.isDefined(dropdownFireOccupied)) {\r\n // dropdownFireOccupied.dataSource.filter([{\r\n // field: 'value',\r\n // operator: 'neq',\r\n // value: 7\r\n // },\r\n // {\r\n // field: 'value',\r\n // operator: 'neq',\r\n // value: 8\r\n // }\r\n\r\n // ]);\r\n // if (dropdownFireOccupied.value() === '7' || dropdownFireOccupied.value() === '8') {\r\n // dropdownFireOccupied.text('');\r\n // dropdownFireOccupied.value('');\r\n // this.proposal.qsMaster.qs_fire_occupied.clearAnswer();\r\n // }\r\n // }\r\n // } else {\r\n // if (Global.isDefined(dropdownFireOccupied)) {\r\n // dropdownFireOccupied.dataSource.filter({});\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n qs_master_masterPolicyNumber_onChange = (data: any): void => {\r\n if (common.isDefined(data) && data != null) {\r\n this.houseHoldContentsAmount =\r\n this.masterPolicyService.getbyMasterPolicyId(\r\n data.trim().replace(\" \", \"\")\r\n );\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n // case EnumSG.MortgageFireSgProduct.HDB:\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.setFreeInsuranceDate();\r\n if (\r\n common.isDefined(this.houseHoldContentsAmount) &&\r\n this.houseHoldContentsAmount != null\r\n ) {\r\n this.proposal.qsMaster.qs_fire_householdContents!.answer =\r\n this.houseHoldContentsAmount.homeContentSumInsuredAmount.toString();\r\n } else {\r\n this.proposal.qsMaster.qs_fire_householdContents!.answer = \"0\";\r\n }\r\n break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // if (\r\n // common.isDefined(this.houseHoldContentsAmount) &&\r\n // this.houseHoldContentsAmount != null\r\n // ) {\r\n // this.proposal.qsMaster.qs_master_miRate!.answer = this\r\n // .houseHoldContentsAmount.isMI\r\n // ? \"1\"\r\n // : \"2\";\r\n // }\r\n // break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n // if (!this.suppressNotification) {\r\n // const equipmentData: any =\r\n // common.isDefined(\r\n // this.proposalService.proposal.qsMaster.qs_machinery_equipment!\r\n // .answer\r\n // ) &&\r\n // this.proposalService.proposal.qsMaster.qs_machinery_equipment!\r\n // .answer !== \"\"\r\n // ? JSON.parse(\r\n // this.proposalService.proposal.qsMaster\r\n // .qs_machinery_equipment!.answer\r\n // )\r\n // : undefined;\r\n // this.fetchEquipmentOptions();\r\n // if (\r\n // !this.firstOnLoad &&\r\n // common.isDefined(equipmentData) &&\r\n // equipmentData.length > 0\r\n // ) {\r\n // const confirmationData = {\r\n // message: this.msg_masterPolicyChangeWarning,\r\n // };\r\n // let v1InputData: v1DlgInputArgs = {\r\n // opened: true,\r\n // dialogWidth: 600,\r\n // data: {},\r\n // message: this.msg_masterPolicyChangeWarning,\r\n // };\r\n\r\n // const v1DialogRef = this.cdkDialogService.open(\r\n // MdConfirmationMessageV1Component,\r\n // {\r\n // data: v1InputData,\r\n // }\r\n // );\r\n\r\n // v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // // Subscription runs after the dialog closes\r\n // if (result) {\r\n // this.confirmationModalCloseForMasterPolicyNumberChange(\r\n // result\r\n // );\r\n // }\r\n // });\r\n // } else {\r\n // this.masterPolicyNumber =\r\n // this.proposal.qsMaster.qs_master_masterPolicyNumber!.answer;\r\n // }\r\n // }\r\n // break;\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n if (\r\n common.isDefined(this.houseHoldContentsAmount) &&\r\n this.houseHoldContentsAmount != null\r\n ) {\r\n // set required if not the cheque payment = 2\r\n if (\r\n Global.isDefined(this.proposal.qsMaster.qs_master_bankReferNumber)\r\n ) {\r\n this.proposal.qsMaster.qs_master_bankReferNumber!.required =\r\n this.houseHoldContentsAmount.paymentType !== 2;\r\n }\r\n }\r\n //todo\r\n // // check if policy type =dho will hide the option 7 for occupied as dropdown\r\n // const dropdownFireOccupied = $('#qs_fire_occupied_dropdown').data('kendoDropDownList');\r\n // if (Global.isDefined(this.houseHoldContentsAmount) && this.houseHoldContentsAmount.policyType === 'DHO') {\r\n // if (Global.isDefined(dropdownFireOccupied)) {\r\n // dropdownFireOccupied!.dataSource.filter([{\r\n // field: 'value',\r\n // operator: 'neq',\r\n // value: 7\r\n // },\r\n // {\r\n // field: 'value',\r\n // operator: 'neq',\r\n // value: 8\r\n // }\r\n // ]);\r\n // if (dropdownFireOccupied.value() === '7' || dropdownFireOccupied.value() === '8') {\r\n // dropdownFireOccupied.text('');\r\n // dropdownFireOccupied.value('');\r\n // this.proposal.qsMaster.qs_fire_occupied.clearAnswer();\r\n // }\r\n // }\r\n // } else {\r\n // if (Global.isDefined(dropdownFireOccupied)) {\r\n // dropdownFireOccupied.dataSource.filter({});\r\n // }\r\n // }\r\n }\r\n };\r\n\r\n confirmationModalCloseForMasterPolicyNumberChange = (data: any): void => {\r\n if (data.status === \"yes\") {\r\n this.suppressNotification = true;\r\n /**As per CR - 000308,\r\n clear the coverages in premium summary for every change in master policy if isPremiumOverridden property is true\r\n */\r\n // if (\r\n // this.proposalService.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ) {\r\n // this.proposal.refreshedProposalEntity.quotes![0].coverages = [];\r\n // }\r\n this.proposalService.proposal.qsMaster.qs_machinery_equipment!.clearAnswer();\r\n this.clearEquipmentListing.next(true);\r\n this.suppressNotification = false;\r\n this.masterPolicyNumber =\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer;\r\n this.fetchEquipmentOptions();\r\n } else {\r\n // set the flag to true to prevent calling the notifier upon change of the answer\r\n this.suppressNotification = true;\r\n this.proposalService.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n this.masterPolicyNumber;\r\n // reset the flag back to false to call the notifier for the next change event\r\n this.suppressNotification = false;\r\n }\r\n };\r\n\r\n qs_risk_sameAsAddress_onChange = (data: any): void => {\r\n if (\r\n common.isDefined(data) &&\r\n data !== null &&\r\n !this.proposal.refreshedProposalEntity.proposalReadOnly &&\r\n this.proposal.transType === Enum.TransType.NEW\r\n ) {\r\n const answer = data === \"1\" || data === true ? true : false;\r\n this.isSameAsAddressTicked = answer;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.readOnly = answer;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = answer;\r\n } else {\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = true;\r\n }\r\n };\r\n\r\n public qs_master_manualUnderwritting_onChange = (data: any): void => {\r\n // if (common.isDefined(data) && data !== null && data !== 'False' && this.isIncomplete) {\r\n if (data === true) {\r\n const dataMsg = {\r\n message: this.msg_manualUnderwritting_warning,\r\n };\r\n\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: {},\r\n message: dataMsg.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForManualUnderwritting(result);\r\n }\r\n });\r\n } else {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n false\r\n );\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer = \"False\";\r\n }\r\n };\r\n\r\n private confirmationModalCloseForManualUnderwritting = (data: any): void => {\r\n if (data.status === \"yes\") {\r\n //HE-2348: Perform save and recalculate premium when manual underwriting is checked\r\n this.proposalService.doAction(Enum.ProposalCommandAction.Save);\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] = true;\r\n this.manualUnderwritting();\r\n this.proposalService.businessRulesManager.validateManualUnderwritting();\r\n this.mfHkMessageService.sendMessage(\"true\");\r\n } else {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n false\r\n );\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer = \"False\";\r\n }\r\n };\r\n\r\n manualUnderwritting = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n // case EnumSG.MortgageFireSgProduct.HDB:\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n this.currency1HDBDisabled = true;\r\n break;\r\n }\r\n };\r\n\r\n updateAddressValues = (\r\n place: { address_components: string | any[] },\r\n componentForm: { [x: string]: string | number },\r\n divId: string\r\n ): void => {\r\n this.resetAddressForm(false, divId);\r\n if (Global.isDefined(place.address_components)) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < place.address_components.length; i++) {\r\n const addressType = place.address_components[i].types[0];\r\n //if (componentForm[addressType]) {\r\n //const val = place.address_components[i][componentForm[addressType]];\r\n if (divId === \"riskInformation_autocomplete\") {\r\n switch (addressType) {\r\n case \"street_number\":\r\n let val1 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredAddress3!,\r\n val1,\r\n true\r\n );\r\n break;\r\n case \"route\":\r\n let val2 = place.address_components[i].long_name;\r\n //https://jira.apac.chubb.com/browse/DBSEP-6795\r\n this.appendAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredAddress3!,\r\n val2,\r\n true\r\n );\r\n break;\r\n case \"locality\":\r\n let val3 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredCity!,\r\n val3\r\n );\r\n break;\r\n case \"postal_code\":\r\n let val4 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!,\r\n val4,\r\n true\r\n );\r\n break;\r\n case \"administrative_area_level_1\":\r\n let val5 = place.address_components[i].short_name;\r\n this.updateDropdownAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredDistCode!,\r\n val5,\r\n true\r\n );\r\n break;\r\n case \"country\":\r\n //short_name is ISO code\r\n //long_name is 'Hong Kong', which is diff with Country table 'Hong Kong SAR'\r\n let val6 = place.address_components[i].short_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_risk_insuredCountry!,\r\n val6\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n // clearing the search input\r\n //this.riskInformation_autocomplete.nativeElement.value = \"\";//todo\r\n } else if (divId === \"policyInformation_autocomplete\") {\r\n switch (addressType) {\r\n case \"street_number\":\r\n let val7 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredAddress1!,\r\n val7,\r\n true\r\n );\r\n break;\r\n case \"route\":\r\n let val8 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredAddress2!,\r\n val8,\r\n true\r\n );\r\n break;\r\n case \"locality\":\r\n let val9 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredCity!,\r\n val9,\r\n true\r\n );\r\n break;\r\n case \"postal_code\":\r\n let val10 = place.address_components[i].long_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!,\r\n val10,\r\n true\r\n );\r\n break;\r\n case \"administrative_area_level_1\":\r\n let val11 = place.address_components[i].short_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredState!,\r\n val11,\r\n true\r\n );\r\n break;\r\n case \"country\":\r\n let val12 = place.address_components[i].short_name;\r\n this.updateAddressAns(\r\n this.proposal.qsMaster.qs_master_insuredCountry!,\r\n val12,\r\n true\r\n );\r\n this.isMasterStateVisible = this.verifyStateCountry(val12);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this.isIBGProduct) {\r\n this.updateContactInformation();\r\n }\r\n\r\n // clearing the search input\r\n // this.policyInformation_autocomplete.nativeElement.value = \"\";\r\n }\r\n //}\r\n }\r\n\r\n if (divId === \"policyInformation_autocomplete\") {\r\n this.copyInsuredAddress(\"\", \"\");\r\n }\r\n this.checkIfAddressReadOnlyField();\r\n }\r\n //this.$scope.$apply();//todo\r\n };\r\n\r\n resetAddressForm = (fromResetButton: boolean, divId: string) => {\r\n if (divId === \"riskInformation_autocomplete\") {\r\n this.readOnlyAddressField = [\r\n \"qs_risk_insuredAddress1\",\r\n \"qs_risk_insuredAddress2\",\r\n \"qs_risk_insuredCity\",\r\n \"qs_risk_insuredPostalCode\",\r\n ];\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredAddress3!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredDistCode!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredCity!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredState!.clearAnswer();\r\n\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly = false;\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = true;\r\n\r\n if (fromResetButton) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.clearAnswer();\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.clearAnswer();\r\n // clearing the search input\r\n // this.riskInformation_autocomplete.nativeElement.value = \"\"; //todo\r\n }\r\n } else if (divId === \"policyInformation_autocomplete\") {\r\n this.readOnlyAddressField = [\r\n \"qs_master_insuredAddress1\",\r\n \"qs_master_insuredAddress2\",\r\n \"qs_master_insuredCity\",\r\n \"qs_master_insuredPostalCode\",\r\n \"qs_master_insuredState\",\r\n ];\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.clearAnswer();\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.clearAnswer();\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.clearAnswer();\r\n this.proposal.qsMaster.qs_master_insuredCity!.clearAnswer();\r\n this.proposal.qsMaster.qs_master_insuredState!.clearAnswer();\r\n\r\n if (this.isIBGProduct) {\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.required = true;\r\n }\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.readOnly = true;\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.readOnly = true;\r\n\r\n this.copyInsuredAddress(\"\", \"\");\r\n\r\n if (fromResetButton) {\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.clearAnswer();\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.clearAnswer();\r\n // clearing the search input\r\n // this.policyInformation_autocomplete.nativeElement.value = \"\"; //todo\r\n }\r\n }\r\n };\r\n\r\n checkIfAddressReadOnlyField = () => {\r\n const toCopy: boolean =\r\n this.qs_risk_sameAsAddress_checkbox?.nativeElement.checked;\r\n for (let i = 0; i < this.readOnlyAddressField.length; i++) {\r\n const inputFieldId = this.readOnlyAddressField[i];\r\n switch (inputFieldId) {\r\n case \"qs_master_insuredAddress1\":\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.readOnly = false;\r\n if (toCopy) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly = false;\r\n }\r\n break;\r\n case \"qs_master_insuredAddress2\":\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.readOnly = false;\r\n if (toCopy) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly = false;\r\n }\r\n break;\r\n case \"qs_master_insuredCity\":\r\n this.proposal.qsMaster.qs_master_insuredCity!.readOnly = false;\r\n if (toCopy) {\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = false;\r\n }\r\n break;\r\n case \"qs_master_insuredPostalCode\":\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.readOnly = false;\r\n if (toCopy) {\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly = false;\r\n }\r\n break;\r\n case \"qs_master_insuredState\":\r\n this.proposal.qsMaster.qs_master_insuredState!.readOnly = false;\r\n if (toCopy) {\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = false;\r\n }\r\n break;\r\n case \"qs_risk_insuredAddress1\":\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly = false;\r\n break;\r\n case \"qs_risk_insuredAddress2\":\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly = false;\r\n break;\r\n case \"qs_risk_insuredCity\":\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = false;\r\n break;\r\n case \"qs_risk_insuredPostalCode\":\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly = false;\r\n break;\r\n case \"qs_risk_insuredState\":\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n\r\n /** editable flag - open for risk address */\r\n updateAddressAns = (\r\n model: QuestionEntity,\r\n val: any,\r\n isEditableAddress?: boolean\r\n ) => {\r\n if (val !== \"\") {\r\n model.answer = val;\r\n model.readOnly = isEditableAddress ? false : true;\r\n const index = this.readOnlyAddressField.indexOf(model.key);\r\n if (index !== -1) {\r\n this.readOnlyAddressField.splice(index, 1);\r\n }\r\n } else {\r\n model.readOnly = false;\r\n }\r\n };\r\n\r\n appendAddressAns = (\r\n model: QuestionEntity,\r\n val: any,\r\n isEditableAddress?: boolean\r\n ) => {\r\n if (val !== \"\") {\r\n model.answer += \" \" + val;\r\n model.readOnly = isEditableAddress ? false : true;\r\n const index = this.readOnlyAddressField.indexOf(model.key);\r\n if (index !== -1) {\r\n this.readOnlyAddressField.splice(index, 1);\r\n }\r\n } else {\r\n model.readOnly = false;\r\n }\r\n };\r\n\r\n updateDropdownAddressAns(\r\n model: QuestionEntity,\r\n val: any,\r\n isEditableAddress?: boolean\r\n ) {\r\n if (val !== \"\") {\r\n let districtCode = this.hkDistrictList.filter((x) => x.key == val);\r\n if (districtCode && districtCode.length > 0) {\r\n model.answer = districtCode[0].value;\r\n model.readOnly = isEditableAddress ? false : true;\r\n const index = this.readOnlyAddressField.indexOf(model.key);\r\n if (index !== -1) {\r\n this.readOnlyAddressField.splice(index, 1);\r\n }\r\n } else {\r\n //not found frm array list\r\n }\r\n } else {\r\n model.readOnly = false;\r\n }\r\n }\r\n\r\n copyMasterAddress_onChange = (\r\n inputKey: QuestionEntity,\r\n copyToKey: QuestionEntity\r\n ): void => {\r\n // Copy address from client information to risk only for IBG product\r\n /** Ignore copying address during endorsement for IBG */\r\n if (\r\n this.isIBGProduct &&\r\n !this.isGeneralEndorsement &&\r\n common.isDefined(this.qs_risk_sameAsAddress_checkbox)\r\n ) {\r\n const toCopy: boolean =\r\n this.qs_risk_sameAsAddress_checkbox.nativeElement.checked;\r\n if (toCopy) {\r\n copyToKey.answer = inputKey.answer;\r\n }\r\n }\r\n if (this.isIBGProduct) {\r\n this.updateContactInformation();\r\n }\r\n };\r\n\r\n clearClientCreateInformation = () => {\r\n this.proposal.qsClientCreate.qs_master_clientSalutation.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientSurname.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientGivenName.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientNRICPassportNo.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientDOB.clearAnswer();\r\n\r\n this.proposal.qsClientCreate.qs_master_clientOccupation.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientCategory.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientRace.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientNationality.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_clientGender.clearAnswer();\r\n\r\n this.proposal.qsClientCreate.qs_master_clientMaritalStatus.clearAnswer();\r\n\r\n this.proposal.qsClientCreate.qs_master_insuredAddress1.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredAddress2.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredAddress3.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredAddress4.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredPostalCode.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredCity.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredState.clearAnswer();\r\n this.proposal.qsClientCreate.qs_master_insuredCountry.clearAnswer();\r\n };\r\n\r\n copyInsuredAddress = (clientID?: string, clientNo?: string) => {\r\n const toCopy: boolean =\r\n this.qs_risk_sameAsAddress_checkbox.nativeElement.checked;\r\n // IBG product copy address from the master insured details\r\n if (this.isIBGProduct) {\r\n if (\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer.toLowerCase() ===\r\n \"sg\"\r\n ) {\r\n /** Ignore copying address during endorsement for IBG */\r\n if (toCopy && !this.isGeneralEndorsement) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.answer =\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.answer =\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer;\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.answer =\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer;\r\n if (this.proposal.qsMaster.qs_risk_insuredAddress1!.isAnswered()) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly = true;\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.answer =\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer;\r\n if (this.proposal.qsMaster.qs_risk_insuredAddress2!.isAnswered()) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly = true;\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.answer =\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer;\r\n if (this.proposal.qsMaster.qs_risk_insuredPostalCode!.isAnswered()) {\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly = true;\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredCity!.answer =\r\n this.proposal.qsMaster.qs_master_insuredCity!.answer;\r\n if (this.proposal.qsMaster.qs_risk_insuredCity!.isAnswered()) {\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = true;\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredState!.answer =\r\n this.proposal.qsMaster.qs_master_insuredState!.answer;\r\n if (this.proposal.qsMaster.qs_risk_insuredState!.isAnswered()) {\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = true;\r\n }\r\n this.proposal.qsMaster.qs_risk_insuredCountry!.answer =\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer;\r\n }\r\n } else {\r\n if (toCopy) {\r\n this.qs_risk_sameAsAddress_checkbox.nativeElement.checked = false;\r\n this.proposal.qsMaster.qs_risk_sameAsAddress!.answer = false;\r\n this.isSameAsAddressTicked = false;\r\n\r\n const data = {\r\n message: \"Only Singapore address can be accepted for Risk.\",\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n // if there's customer mapping id\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n // copy to the policy panel\r\n if (toCopy && this.proposal.transType === Enum.TransType.NEW) {\r\n this.clientService\r\n .get(this.proposalService.proposal.customerMappingId!, clientNo)\r\n .subscribe(\r\n (response) => {\r\n if (\r\n response[\"address\"][0][\"countryISO2\"].toLowerCase() === \"sg\"\r\n ) {\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.answer =\r\n response[\"address\"][0][\"buildingName\"];\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.answer =\r\n response[\"address\"][0][\"unitNo\"];\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.answer =\r\n response[\"address\"][0][\"addressLine1\"];\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!.readOnly =\r\n true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.answer =\r\n response[\"address\"][0][\"addressLine2\"];\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!.readOnly =\r\n true;\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.answer =\r\n response[\"address\"][0][\"postCode\"];\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!.readOnly =\r\n true;\r\n this.proposal.qsMaster.qs_risk_insuredCity!.answer =\r\n response[\"address\"][0][\"city\"];\r\n this.proposal.qsMaster.qs_risk_insuredCity!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredState!.answer =\r\n response[\"address\"][0][\"stateName\"];\r\n this.proposal.qsMaster.qs_risk_insuredState!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredCountry!.answer =\r\n response[\"address\"][0][\"countryISO2\"];\r\n } else {\r\n if (toCopy) {\r\n this.qs_risk_sameAsAddress_checkbox.nativeElement.checked =\r\n false;\r\n this.proposal.qsMaster.qs_risk_sameAsAddress!.answer =\r\n false;\r\n this.isSameAsAddressTicked = false;\r\n const data = {\r\n message:\r\n \"Only Singapore address can be accepted for Risk.\",\r\n };\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n }\r\n },\r\n (rejection) => {\r\n this.notifier.error(\r\n \"Address is failing to retrieve.\",\r\n this.baseNotifierAppendTo\r\n );\r\n }\r\n );\r\n }\r\n }\r\n }\r\n };\r\n\r\n getContactInformation = () => {\r\n if (\r\n this.proposal.transType === (Enum.TransType.NEW || Enum.TransType.REN)\r\n ) {\r\n // if there's customer mapping id\r\n if (this.proposalService.proposal!.customerMappingId! > 0) {\r\n if (\r\n this.proposal!.proposalId!.toString() !==\r\n \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal!.qsMaster.qs_master_insuredNo!\r\n .answer\r\n )\r\n ?.subscribe(\r\n (response: any) => {\r\n const clientInfo = response;\r\n\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer =\r\n clientInfo[\"address\"][0][\"buildingName\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer =\r\n clientInfo[\"address\"][0][\"unitNo\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer =\r\n clientInfo[\"address\"][0][\"addressLine1\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer =\r\n clientInfo[\"address\"][0][\"addressLine2\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress3!.answer =\r\n clientInfo[\"address\"][0][\"addressLine3\"];\r\n this.proposal.qsMaster.qs_master_insuredAddress4!.answer =\r\n clientInfo[\"address\"][0][\"addressLine4\"];\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer =\r\n clientInfo[\"address\"][0][\"postCode\"];\r\n this.proposal.qsMaster.qs_master_insuredCity!.answer =\r\n clientInfo[\"address\"][0][\"city\"];\r\n this.proposal.qsMaster.qs_master_insuredState!.answer =\r\n clientInfo[\"address\"][0][\"stateName\"];\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer =\r\n clientInfo[\"address\"][0][\"countryISO2\"];\r\n },\r\n (rejection: any) => {\r\n this.notifier.error(\r\n \"Contact Information is failing to retrieve.\",\r\n this.baseNotifierAppendTo\r\n );\r\n }\r\n );\r\n }\r\n }\r\n }\r\n };\r\n\r\n updateContactInformation = () => {\r\n let contactInfo = \"\";\r\n if (this.proposal.qsMaster.qs_master_insuredCountry!.answer === \"SG\") {\r\n contactInfo =\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer +\r\n \" \" +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress3!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress4!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer\r\n ) +\r\n this.addressCountryIfUnknown(\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer\r\n ) +\r\n \" \" +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer\r\n );\r\n } else {\r\n contactInfo =\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress3!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredAddress4!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredCity!.answer\r\n ) +\r\n this.getAddressFormat(\r\n this.proposal.qsMaster.qs_master_insuredState!.answer\r\n ) +\r\n this.addressCountryIfUnknown(\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer\r\n );\r\n }\r\n\r\n this.contactInformation = contactInfo;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer =\r\n contactInfo;\r\n };\r\n\r\n getAddressFormat = (input: any) => {\r\n if (!common.isUndefinedOrNull(input)) {\r\n return input + \" \";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n getAddressDefined = (input: any) => {\r\n if (!common.isUndefinedOrNull(input)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n addressCountryIfUnknown = (inputId: string) => {\r\n let displayText: string = \"Unknown\";\r\n if (inputId.length > 0) {\r\n this.countryList.forEach((i) => {\r\n if (i.value === inputId) {\r\n displayText = i.key;\r\n }\r\n });\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n showChangeOfCorrespondenceAddressModal = (command: number) => {\r\n const data: InterfaceProduct.IDialogMessage = {\r\n message: \"Change of Correspondence Address\",\r\n tabClicked: command,\r\n };\r\n //disabled in old ui\r\n // this._dialog = this.dialog.modalLarge(\r\n // 'shared/partials/mdChangeOfCorrespondenceAddress/changeOfCorrespondenceAddress.html',\r\n // 'ChangeOfCorrespondenceAddressController', data\r\n // , this.confirmationModalCloseForChangeOfCorrespondenceAddress, undefined, undefined, undefined, false, 'standardModal');\r\n };\r\n\r\n GotoUpdateClientInfo() {\r\n this.FindExistingPoliciesForClient(null);\r\n }\r\n\r\n UpdateClientInfo = (response: any) => {\r\n // DBSEP-2063: add this block to popup the confirmation box with list of policy and with button of update and new client\r\n // Update button of confirmation box will allow to update the client and newclient button will open new popup of new client screen\r\n if (response.status == \"yes\") {\r\n this.updateClientData();\r\n let command = response.data;\r\n //if (!this.isChecker && !this.isMaker)\r\n {\r\n this.FindExistingPoliciesForClient(command);\r\n }\r\n // else {\r\n // this.GoToClientPage(false);\r\n // }\r\n }\r\n };\r\n\r\n mapClientdata(sourcedata: ClientEntity, destinationdata: ClientEntity) {\r\n if (Array.isArray(sourcedata.address)) {\r\n //need deep-copy, which copy-by-value, not copy-by-reference\r\n destinationdata.address = JSON.parse(JSON.stringify(sourcedata.address));\r\n } else {\r\n destinationdata.address = sourcedata.address;\r\n }\r\n\r\n destinationdata.clientId = sourcedata.clientId;\r\n destinationdata.clientCode = sourcedata.clientCode;\r\n destinationdata.clientType = sourcedata.clientType;\r\n destinationdata.nric = sourcedata.nric;\r\n destinationdata.passportNo = sourcedata.passportNo;\r\n destinationdata.businessRegistrationNumber =\r\n sourcedata.businessRegistrationNumber;\r\n destinationdata.dbsClientReferenceNumber =\r\n sourcedata.dbsClientReferenceNumber;\r\n destinationdata.incorporatedDate = sourcedata.incorporatedDate;\r\n destinationdata.personInCharge = sourcedata.personInCharge;\r\n destinationdata.firstName = sourcedata.firstName;\r\n destinationdata.lastName = sourcedata.lastName;\r\n destinationdata.clientName = sourcedata.clientName;\r\n destinationdata.salutation = sourcedata.salutation;\r\n destinationdata.gender = sourcedata.gender;\r\n destinationdata.birthDate = sourcedata.birthDate;\r\n destinationdata.occupation = sourcedata.occupation;\r\n destinationdata.nationality = sourcedata.nationality;\r\n destinationdata.race = sourcedata.race;\r\n destinationdata.maritalStatus = sourcedata.maritalStatus;\r\n destinationdata.phoneNoHome = sourcedata.phoneNoHome;\r\n destinationdata.phoneNoOffice = sourcedata.phoneNoOffice;\r\n destinationdata.mobileNumber = sourcedata.mobileNumber;\r\n destinationdata.pagerNo = sourcedata.pagerNo;\r\n destinationdata.faxNumber = sourcedata.faxNumber;\r\n destinationdata.emailAddress = sourcedata.emailAddress;\r\n destinationdata.docType = sourcedata.docType;\r\n destinationdata.cinNo = sourcedata.cinNo;\r\n }\r\n\r\n updateClientData() {\r\n if (this.proposalService.proposal.customerMappingId != null) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response) => {\r\n if (\r\n common.isDefined(\r\n this.clientService.clientDictionary[\r\n this.proposalService.proposal.customerMappingId!\r\n ]\r\n )\r\n ) {\r\n this.clientDictionary = new ClientEntity();\r\n this.mapClientdata(\r\n this.clientService.clientDictionary[\r\n this.proposalService.proposal.customerMappingId!\r\n ],\r\n this.clientDictionary\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n // DBSEP-2063: It will check the confirmation from user and redirect to client edit or create page.\r\n PolicyconfirmationModalCloseForActions = (response: any): void => {\r\n if (response.status === \"yes\") {\r\n let data = response.data;\r\n if (this.proposalService.proposal.customerMappingId != null) {\r\n this.updateClientData();\r\n this.GoToClientPage(false);\r\n }\r\n } else {\r\n this.GoToClientPage(true);\r\n }\r\n };\r\n\r\n // DBSEP-2063: It will check the mapping of policy with clientId. If policy exists then a new popup will be open otherwise\r\n //it will directally go to client update page.\r\n FindExistingPoliciesForClient = (command: any) => {\r\n this.clientService\r\n .FindExistingPoliciesForClient(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe(\r\n (response: any) => {\r\n let data: InterfaceProduct.IDialogMessage = {\r\n message: response?.body?.message,\r\n tabClicked: command,\r\n };\r\n if (response?.body?.message == \"\") {\r\n this.GoToClientPage(false);\r\n } else {\r\n this.showMdConfirmationMessageV5(data);\r\n }\r\n },\r\n (rejection: any) => {\r\n this.notifier.error(\"Failed to save.\", this.baseNotifierAppendTo);\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n );\r\n };\r\n\r\n private showMdConfirmationMessageV5(data: InterfaceProduct.IDialogMessage) {\r\n let v1InputData: v5DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: data.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV5Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result.status == \"yes\") {\r\n this.PolicyconfirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n // DBSEP-2063: It will transfer on client create or client edit page as per the flag.\r\n GoToClientPage(data: any) {\r\n const postData: clientCreateDlgInputArgs = {\r\n isNewClient: data,\r\n proposal: this.proposal,\r\n };\r\n const clientCreateDialogRef = this.cdkDialogService.open(\r\n MfHkClientCreateComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n clientCreateDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n confirmationModalCloseForChangeOfClientInfoController = (data: any): void => {\r\n if (Global.isDefined(data.clientData)) {\r\n this.proposalService.proposal.qsMaster.qs_master_mobileNumber!.answer =\r\n data.clientData.mobileNumber;\r\n this.proposalService.proposal.qsMaster.qs_master_emailID!.answer =\r\n data.clientData.emailAddress;\r\n\r\n this.proposalService.proposal.qsMaster.qs_master_salutation!.answer =\r\n data.clientData.salutation;\r\n // if (data.clientData.clientType === 1) {\r\n // this.proposalService.proposal.qsMaster.qs_master_insuredName!.answer =\r\n // data.clientData.lastName + \" \" + data.clientData.firstName;\r\n // this.proposal.qsMaster.qs_master_clientName!.answer =\r\n // data.clientData.lastName + \"-\" + data.clientData.firstName;\r\n // } else\r\n {\r\n this.proposalService.proposal.qsMaster.qs_master_insuredName!.answer =\r\n data.clientData.clientName;\r\n this.proposal.qsMaster.qs_master_clientName!.answer =\r\n data.clientData.clientName;\r\n }\r\n\r\n this.proposalService.proposal.qsMaster.qs_master_passport!.answer =\r\n data.clientData.passportNo;\r\n this.proposalService.proposal.qsMaster.qs_master_nric!.answer =\r\n data.clientData.nric;\r\n this.proposalService.proposal.qsMaster.qs_master_occupation!.answer =\r\n data.clientData.occupation;\r\n this.proposalService.proposal.qsMaster.qs_master_birthDate!.answer =\r\n data.clientData.birthDate;\r\n this.proposalService.proposal.qsMaster.qs_master_race!.answer =\r\n data.clientData.race;\r\n this.proposalService.proposal.qsMaster.qs_master_nationality!.answer =\r\n data.clientData.nationality;\r\n this.proposalService.proposal.qsMaster.qs_master_gender!.answer =\r\n data.clientData.gender;\r\n this.proposalService.proposal.qsMaster.qs_master_maritalStatus!.answer =\r\n data.clientData.maritalStatus;\r\n this.proposalService.proposal.qsMaster.qs_master_phoneNoHome!.answer =\r\n data.clientData.phoneNoHome;\r\n this.proposalService.proposal.qsMaster.qs_master_phoneNoOffice!.answer =\r\n data.clientData.phoneNoOffice;\r\n this.proposalService.proposal.qsMaster.qs_master_faxNumber!.answer =\r\n data.clientData.faxNumber;\r\n this.proposalService.proposal.qsMaster.qs_master_cin!.answer =\r\n data.clientData.cinNo;\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNoDocType!.answer =\r\n data.clientData.docType;\r\n }\r\n };\r\n\r\n confirmationModalCloseForChangeOfCorrespondenceAddress = (\r\n data: any\r\n ): void => {\r\n if (Global.isDefined(data.clientAddressData)) {\r\n this.proposal.qsMaster.qs_master_insuredAddress1!.answer =\r\n data.clientAddressData.addressLine1;\r\n this.proposal.qsMaster.qs_master_insuredAddress2!.answer =\r\n data.clientAddressData.addressLine2;\r\n this.proposal.qsMaster.qs_master_insuredAddress3!.answer =\r\n data.clientAddressData.addressLine3;\r\n this.proposal.qsMaster.qs_master_insuredAddress4!.answer =\r\n data.clientAddressData.addressLine4;\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!.answer =\r\n data.clientAddressData.buildingName;\r\n this.proposal.qsMaster.qs_master_insuredCity!.answer =\r\n data.clientAddressData.city;\r\n this.proposal.qsMaster.qs_master_insuredState!.answer =\r\n data.clientAddressData.stateName;\r\n this.proposal.qsMaster.qs_master_insuredCountry!.answer =\r\n data.clientAddressData.countryISO2;\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!.answer =\r\n data.clientAddressData.unitNo;\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!.answer =\r\n data.clientAddressData.postCode;\r\n }\r\n };\r\n\r\n openAddressHelp(event: { preventDefault: () => void }): void {\r\n event.preventDefault();\r\n const data = {\r\n // 'proposalModel': this.proposal.proposalModel,\r\n showGeoCode: false, // determine to hide/show geocode\r\n };\r\n\r\n const clientSearchDialogRef = this.cdkDialogService.open(\r\n MfHkAddressHelpFormComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n clientSearchDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n qs_master_qs_fire_building = (data: any): void => {\r\n switch (this.proposal.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n // case EnumSG.MortgageFireSgProduct.HDB:\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n if (this.proposal.qsMaster.qs_fire_building!.isAnswered()) {\r\n var firebuilding = this.proposal.qsMaster.qs_fire_building!.answer;\r\n var firereplacement =\r\n this.proposal.qsMaster.qs_fire_replacement!.answer;\r\n if (firebuilding.indexOf(\"$\") > -1) {\r\n this.proposal.qsMaster.qs_fire_building!.answer =\r\n firebuilding.substring(1);\r\n }\r\n\r\n if (firereplacement.indexOf(\"$\") > -1) {\r\n this.proposal.qsMaster.qs_fire_replacement!.answer =\r\n firereplacement.substring(1);\r\n }\r\n const index = Math.round(\r\n this.proposal.qsMaster.qs_fire_replacement!.answer\r\n );\r\n const answer = Math.round(\r\n this.proposal.qsMaster.qs_fire_building!.readAnswerAsNumeric()!\r\n );\r\n if (answer === index) {\r\n this.isBuildingSIModified = false;\r\n } else {\r\n this.isBuildingSIModified = true;\r\n }\r\n }\r\n break;\r\n default:\r\n // do nothing\r\n }\r\n };\r\n\r\n qs_master_lst_onChange = (data: any): void => {\r\n if (data === \"1\") {\r\n // yes\r\n if (\r\n !Global.isDefined(\r\n this.proposal.qsMaster.qs_master_lstDetails!.answer\r\n ) ||\r\n this.proposal.qsMaster\r\n .qs_master_lstDetails!.answer.toString()\r\n .trim() === \"\"\r\n ) {\r\n this.lstDefaultValue = cloneDeep(this.lstDetailsTemplate);\r\n this.proposal.qsMaster.qs_master_lstDetails!.answer = cloneDeep(\r\n this.lstDetailsTemplate\r\n );\r\n } else {\r\n if (\r\n typeof this.proposal.qsMaster.qs_master_lstDetails!.answer ===\r\n \"string\"\r\n ) {\r\n this.lstDefaultValue = cloneDeep(\r\n JSON.parse(this.proposal.qsMaster.qs_master_lstDetails!.answer)\r\n );\r\n } else {\r\n // skip the parsing\r\n this.lstDefaultValue = cloneDeep(\r\n this.proposal.qsMaster.qs_master_lstDetails!.answer\r\n );\r\n }\r\n }\r\n /// DBSEP - 2050 : Automation Of LST\r\n if (this.isCancel && this.isIncomplete && !this.isAutoLst) {\r\n this.proposal.qsMaster.qs_master_lstDetails!.readOnly = false;\r\n }\r\n } else if (data === \"2\") {\r\n // no\r\n this.proposal.qsMaster.qs_master_lstDetails!.clearAnswer();\r\n this.lstDefaultValue = \"\";\r\n }\r\n };\r\n\r\n qs_master_preferredDeliveryMethodChange = (data: any): void => {\r\n this.proposalService.fieldValidationManager.setEmailMobileRequires(\r\n data,\r\n this.isIBGProduct\r\n );\r\n this.qs_master_preferredDeliveryText(\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!\r\n );\r\n };\r\n\r\n qs_fire_freeInsuranceFirstYear_onChange = (data: any): void => {\r\n this.proposalService.fieldValidationManager.setNoOfFreeInsuranceYearsRequires();\r\n };\r\n\r\n toShowQuestion(question: any) {\r\n let flag: boolean = false;\r\n if (this.proposal.proposalStatus != Enum.ProposalStatus.Incomplete) {\r\n switch (question) {\r\n case \"qs_master_preferredDeliveryMethod_Email\":\r\n flag =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!\r\n .answer != undefined\r\n ? true\r\n : false;\r\n flag =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.readOnly =\r\n true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_MobileNo\":\r\n flag =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer != undefined\r\n ? true\r\n : false;\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.readOnly =\r\n true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod\":\r\n flag =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer !=\r\n undefined &&\r\n !this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.readOnly\r\n ? false\r\n : true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_CorrAddress\":\r\n flag =\r\n this.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod_CorrAddress!.answer !=\r\n undefined\r\n ? false\r\n : true;\r\n break;\r\n }\r\n }\r\n if (this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete) {\r\n switch (question) {\r\n case \"qs_master_preferredDeliveryMethod_Email\":\r\n flag = true;\r\n if (this.isGeneralEndorsement)\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.readOnly =\r\n false;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_MobileNo\":\r\n flag = true;\r\n if (this.isGeneralEndorsement)\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.readOnly =\r\n false;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod\":\r\n if (\r\n this.isCancel ||\r\n (this.isEndorsement &&\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.LoanRedemption)\r\n ) {\r\n flag = true;\r\n }\r\n }\r\n }\r\n return flag;\r\n }\r\n\r\n qs_master_refundDisplayText = (question: QuestionEntity) => {\r\n switch (question.answer) {\r\n case \"1\":\r\n this.refundDisplayText = \"Default\";\r\n break;\r\n\r\n case \"2\":\r\n this.refundDisplayText = \"Bank\";\r\n break;\r\n case \"3\":\r\n this.refundDisplayText = \"Policy Holder\";\r\n break;\r\n case \"4\":\r\n this.refundDisplayText = \"No Refund\";\r\n break;\r\n default:\r\n this.refundDisplayText = \"Default\";\r\n break;\r\n }\r\n };\r\n\r\n qs_master_preferredDeliveryText = (question: QuestionEntity) => {\r\n switch (question.answer) {\r\n case \"2\":\r\n this.preferredDeliveryText = \"Email\";\r\n break;\r\n\r\n case \"5\":\r\n this.preferredDeliveryText = \"SMS\";\r\n break;\r\n case \"1\":\r\n this.preferredDeliveryText = \"No Mobile/Email or Opt Out\";\r\n break;\r\n\r\n default:\r\n this.preferredDeliveryText = \"\";\r\n break;\r\n }\r\n };\r\n\r\n updateLSTDetails = (\r\n evt?: any,\r\n rowNumber?: string,\r\n param?: any,\r\n id?: string,\r\n decimals?: number\r\n ) => {\r\n // update the value to correct decimals\r\n if (rowNumber && Global.isDefined(rowNumber) && Global.isDefined(param)) {\r\n let val: any = \"\";\r\n let convertDecimals: string = \"\";\r\n let currentVal: number;\r\n if (\r\n navigator.userAgent.search(\"Firefox\") <= -1 &&\r\n evt !== undefined &&\r\n evt &&\r\n evt.currentTarget\r\n ) {\r\n let ct = evt.currentTarget as HTMLInputElement;\r\n currentVal = parseFloat(ct.value);\r\n convertDecimals = currentVal.toFixed(decimals);\r\n } else {\r\n currentVal = parseFloat(this.getNumericTextboxValue(id));\r\n convertDecimals = currentVal.toFixed(decimals);\r\n }\r\n val = param.includes(\"amount\")\r\n ? convertDecimals\r\n : parseFloat(convertDecimals) >= 0\r\n ? convertDecimals\r\n : 0;\r\n this.lstDefaultValue[rowNumber][param] = val;\r\n }\r\n this.proposal.qsMaster.qs_master_lstDetails!.answer = JSON.stringify(\r\n this.lstDefaultValue\r\n );\r\n };\r\n\r\n getNumericTextboxValue(id: any) {\r\n switch (id) {\r\n case \"lst_0_percent1\":\r\n if (common.isDefined(this.lst_0_percent1)) {\r\n return this.lst_0_percent1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_0_amount1\":\r\n if (common.isDefined(this.lst_0_amount1)) {\r\n return this.lst_0_amount1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_0_percent2\":\r\n if (common.isDefined(this.lst_0_amount2)) {\r\n return this.lst_0_amount2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_1_percent1\":\r\n if (common.isDefined(this.lst_1_percent1)) {\r\n return this.lst_1_percent1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_1_amount1\":\r\n if (common.isDefined(this.lst_1_amount1)) {\r\n return this.lst_1_amount1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_1_amount1\":\r\n if (common.isDefined(this.lst_1_amount1)) {\r\n return this.lst_1_amount1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_1_percent2\":\r\n if (common.isDefined(this.lst_1_percent2)) {\r\n return this.lst_1_percent2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_1_amount2\":\r\n if (common.isDefined(this.lst_1_amount2)) {\r\n return this.lst_1_amount2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_2_percent1\":\r\n if (common.isDefined(this.lst_2_percent1)) {\r\n return this.lst_2_percent1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_2_amount1\":\r\n if (common.isDefined(this.lst_2_amount1)) {\r\n return this.lst_2_amount1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_2_percent2\":\r\n if (common.isDefined(this.lst_2_percent2)) {\r\n return this.lst_2_percent2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_2_amount2\":\r\n if (common.isDefined(this.lst_2_amount2)) {\r\n return this.lst_2_amount2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_3_percent1\":\r\n if (common.isDefined(this.lst_3_percent1)) {\r\n return this.lst_3_percent1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_3_amount1\":\r\n if (common.isDefined(this.lst_3_amount1)) {\r\n return this.lst_3_amount1.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_0_percent2\":\r\n if (common.isDefined(this.lst_0_percent2)) {\r\n return this.lst_0_percent2.nativeElement.value;\r\n }\r\n break;\r\n case \"lst_3_amount2\":\r\n if (common.isDefined(this.lst_3_amount2)) {\r\n return this.lst_3_amount2.nativeElement.value;\r\n }\r\n break;\r\n default:\r\n return \"0\";\r\n }\r\n }\r\n\r\n //2022-08-24 dagoh0: APACDM-363 - set expiry date based on selected plan type\r\n qs_master_planType_onChange = (data: any): void => {\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer = this.setExpiryDate();\r\n };\r\n\r\n private setExpiryDate = () => {\r\n let annualExpiryDate = cloneDeep(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n const planType =\r\n this.proposal.qsMaster.qs_master_planType != null &&\r\n this.proposal.qsMaster.qs_master_planType.answer != null\r\n ? +this.proposal.qsMaster.qs_master_planType!.answer\r\n : 0;\r\n\r\n if (planType > 0) {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + planType);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n } else {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + 1);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n }\r\n return annualExpiryDate;\r\n };\r\n //#endregion\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Endorsement\r\n \r\n \r\n Cancellation\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n
\r\n \r\n No\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {{\r\n proposal!.qsMaster\r\n .qs_master_cancellation_maximumAdjustmentAmount!\r\n .answer | ausCurrency\r\n }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Search\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Create New Client\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n View Details\r\n \r\n Update Client\r\n \r\n
\r\n \r\n {{ proposal!.qsMaster.qs_master_insuredName!.answer }}\r\n

\r\n\r\n Unknown\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Contact Info./Preferred Delivery Method:\r\n {{ preferredDeliveryText }}\r\n Update\r\n
\r\n
\r\n
\r\n Telephone Number\r\n
\r\n
\r\n Email Address\r\n
\r\n
\r\n Correspondence Address\r\n\r\n Update\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\r\n proposal!.qsMaster\r\n .qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer\r\n }}\r\n

\r\n
\r\n
\r\n \r\n {{\r\n proposal!.qsMaster\r\n .qs_master_preferredDeliveryMethod_Email!\r\n .answer\r\n }}\r\n

\r\n
\r\n
\r\n \r\n {{ contactInformationPreferredDelivery }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n {{ isNew ? \"Add\" : \"Update\" }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Help\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Help\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Yes\r\n
\r\n \r\n No\r\n
\r\n
\r\n \r\n \r\n \r\n Yes\r\n \r\n \r\n No\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Yes\r\n
\r\n \r\n No\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n No\r\n Item Coverage Description\r\n \r\n Sum Insured\r\n \r\n \r\n \r\n \r\n \r\n 1\r\n \r\n {{ msg_building }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, Inject, ViewChild } from \"@angular/core\";\r\nimport { BaseClientCreateComponent } from \"src/app/components/shared/partials/mdClient/client-create/base/base-client-create/base-client-create.component\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\nimport { clientCreateDlgInputArgs } from \"src/app/components/shared/partials/mdClient/client-create/base/base-client-create/client-create-dlg-input-args\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MfHkAddressHelpFormComponent } from \"../../mf-hk-address-help-form/mf-hk-address-help-form.component\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-client-create\",\r\n templateUrl: \"./mf-hk-client-create.component.html\",\r\n styleUrls: [\"./mf-hk-client-create.component.scss\"],\r\n})\r\nexport class MfHkClientCreateComponent extends BaseClientCreateComponent {\r\n @ViewChild(\"insuredAddress3\", { static: false })\r\n public insuredAddress3: any;\r\n\r\n @ViewChild(\"insuredAddress4\", { static: false })\r\n public insuredAddress4: any;\r\n\r\n @ViewChild(\"clientDistrictCode\", { static: false })\r\n public clientDistrictCode: any;\r\n\r\n addAddress3RO: boolean = true;\r\n addAddress4RO: boolean = true;\r\n // addBuildingNameRO: boolean = true;\r\n // addUnitNoRO: boolean = true;\r\n // addHkDistrictCodeRO: boolean = true;\r\n\r\n isOthers: boolean = false;\r\n public defaultItem: { text: string; value: string } = {\r\n text: \"Select item...\",\r\n value: \"\",\r\n };\r\n\r\n hkDistrictList!: any[];\r\n\r\n constructor(\r\n public override clientService: ClientService,\r\n public override masterDataService: MasterDataService,\r\n public override cdkDialogService: CdkDialogService,\r\n @Inject(DIALOG_DATA) public override inputData: clientCreateDlgInputArgs,\r\n public override dialogRef: DialogRef,\r\n public override notifier: NotifierService,\r\n public override productService: ProductService,\r\n public proposalService: MfHKProposalService\r\n ) {\r\n super(\r\n clientService,\r\n masterDataService,\r\n cdkDialogService,\r\n inputData,\r\n dialogRef,\r\n notifier,\r\n productService\r\n );\r\n\r\n if (this.inputData) {\r\n this.proposal = this.inputData.proposal as MortgageFireHongKongProposal; //temp pass from outside\r\n this.isCreate = this.inputData.isNewClient;\r\n this.labelText = \"Create\";\r\n this.h3LabelText = \"Client - Create\";\r\n if (!this.isCreate) {\r\n this.labelText = \"Update\";\r\n this.isCreate = false;\r\n this.h3LabelText = \"Change of Client Info\";\r\n }\r\n }\r\n }\r\n\r\n override async ngOnInit(): Promise {\r\n if (!this.isCreate || this.isChangeOfClientInfo()) {\r\n //has to wait until fully finish to get latest this.clientData\r\n var response = await this.getClient_Promise();\r\n this.updateClientData(response);\r\n }\r\n this.dialogOkNotifierSubscription =\r\n dialogActionNotifier.ok_notifier$.subscribe((event) => {\r\n this.createClient();\r\n });\r\n\r\n this.initialize();\r\n // this.checkIsNewClient();\r\n }\r\n\r\n protected isChangeOfClientInfo() {\r\n //when 'Endorsement - Change Of Client Information', clientData is also needed\r\n let getClient = false;\r\n if (this.proposal) {\r\n let isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n let isChangeOfClientInfo =\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfClientInfo;\r\n getClient = isIncomplete && isChangeOfClientInfo;\r\n }\r\n return getClient;\r\n }\r\n\r\n private updateClientData(response: any) {\r\n if (response) {\r\n this.clientData = response;\r\n this.setDate(this.clientData.birthDate);\r\n // check for docType, assign to empty if is 0\r\n if (common.isDefined(this.clientData.docType)) {\r\n this.clientData.docType =\r\n parseInt(this.clientData.docType) === 0\r\n ? \"\"\r\n : this.clientData.docType.toString();\r\n }\r\n\r\n this.proposalService.proposal.customerMappingAddressID = Number(\r\n response.address[0].clientAddressID\r\n );\r\n this.address = response.address[0];\r\n this.setClientType(this.clientData.clientType);\r\n\r\n this.getIsStateVisible(this.address.countryISO2);\r\n }\r\n }\r\n\r\n public getClient_Promise() {\r\n return this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService!.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .toPromise();\r\n }\r\n\r\n override initialize() {\r\n this.postBackData = [];\r\n this.proposal = this.proposalService.proposal;\r\n this.nationalityList = new Array();\r\n this.countryList = new Array();\r\n super.subscribeTabLoadRenderer();\r\n super.subscribeTabLoadRenderer();\r\n if (this.isCreate) this.initializeQuestionSchema();\r\n // $(document).ready(() => {\r\n this.componentsInitialize();\r\n // });\r\n\r\n this.initProductFactory();\r\n\r\n this.masterDataService\r\n .getHkDistrictCodes()\r\n .subscribe((responseHkDistrictCodes: any[]) => {\r\n this.hkDistrictList = responseHkDistrictCodes;\r\n });\r\n }\r\n\r\n //better put in after ngAfterViewInit(), not in initialize()\r\n // https://github.com/skynet2/ngx-google-places-autocomplete/issues/91\r\n ngAfterViewInit() {\r\n //maybe after async ngOnInit(), the ngAfterViewInit() is called before initialize()\r\n //hence the productFactory is not yet init\r\n this.initProductFactory();\r\n\r\n this.clientInformation_autocomplete.options.componentRestrictions =\r\n this.googlePlacesOptions.componentRestrictions; //init by country here\r\n }\r\n\r\n private initProductFactory() {\r\n if (!this.productFactory) {\r\n this.productFactory = this.productService.getHKProductFactory(\r\n (this.proposal as MortgageFireHongKongProposal).productType\r\n );\r\n }\r\n\r\n this.googlePlacesOptions = this.productFactory\r\n .googlePlaces()\r\n .getGooglePlacesOptions(); //init by country here\r\n }\r\n\r\n override setClientType(clientType: EnumSG.ClientType) {\r\n switch (clientType) {\r\n case EnumSG.ClientType.Person:\r\n {\r\n this.isPersonal = true;\r\n this.isOrganization = false;\r\n this.isOthers = false;\r\n }\r\n break;\r\n case EnumSG.ClientType.Others:\r\n {\r\n this.isPersonal = false;\r\n this.isOrganization = false;\r\n this.isOthers = true;\r\n }\r\n break;\r\n default:\r\n {\r\n this.isPersonal = false;\r\n this.isOrganization = true;\r\n this.isOthers = false;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n override selectClientType = (e: any): void => {\r\n this.emptyFieldValidation = \"\";\r\n this.showErrorMessage = false;\r\n if (this.isCreate) {\r\n this.clientData.cinNo = \"\";\r\n }\r\n\r\n this.errorMsgInHtml = \"\";\r\n this.clientData.clientType = Number(e.currentTarget.value);\r\n\r\n this.setClientType(this.clientData.clientType);\r\n\r\n if (e.currentTarget.value === \"1\") {\r\n // this.isOrganization = false;\r\n // this.isPersonal = true;\r\n this.clientData.businessRegistrationNumber = \"\";\r\n this.clientData.businessRegistrationNumber2 = \"\";\r\n this.clientData.clientName = \"\";\r\n this.clientData.personInCharge = \"\";\r\n } else if (e.currentTarget.value === \"2\") {\r\n // this.isOrganization = true;\r\n // this.isPersonal = false;\r\n this.clientData.salutation = \"\";\r\n this.clientData.firstName = \"\";\r\n this.clientData.lastName = \"\";\r\n this.clientData.birthDate = \"\";\r\n this.clientData.gender = \"\";\r\n this.clientData.maritalStatus = \"\";\r\n this.clientData.nric = \"\";\r\n this.clientData.passportNo = \"\";\r\n this.clientData.occupation = \"\";\r\n this.clientData.race = \"\";\r\n } else if (e.currentTarget.value === \"3\") {\r\n //others\r\n this.clientData.businessRegistrationNumber = \"\";\r\n this.clientData.businessRegistrationNumber2 = \"\";\r\n this.clientData.dbsClientReferenceNumber = \"\";\r\n this.clientData.clientName = \"\";\r\n this.clientData.personInCharge = \"\";\r\n }\r\n this.clientData.docType = \"\"; //for all docType\r\n\r\n this.componentsInitialize();\r\n };\r\n\r\n override updateAddressValues = (\r\n place: { address_components: string | any[] },\r\n componentForm: { [x: string]: string | number },\r\n divId: string\r\n ): void => {\r\n this.resetClientAddressForm();\r\n if (Global.isDefined(place.address_components)) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < place.address_components.length; i++) {\r\n const addressType = place.address_components[i].types[0];\r\n //if (componentForm[addressType]) {\r\n //const val = place.address_components[i][componentForm[addressType]];\r\n switch (addressType) {\r\n case \"street_number\":\r\n let val1 = place.address_components[i].long_name;\r\n this.address.addressLine3 = val1;\r\n this.validateReadOnlyAddress(val1, \"addAddress1RO\");\r\n break;\r\n case \"route\":\r\n let val2 = place.address_components[i].long_name;\r\n this.address.addressLine3 += \" \" + val2;\r\n this.validateReadOnlyAddress(val2, \"addAddress2RO\");\r\n break;\r\n case \"locality\":\r\n let val3 = place.address_components[i].long_name;\r\n this.address.city = val3;\r\n this.validateReadOnlyAddress(val3, \"addCityRO\");\r\n break;\r\n case \"postal_code\":\r\n let val4 = place.address_components[i].long_name;\r\n this.address.postCode = val4;\r\n this.validateReadOnlyAddress(val4, \"addPostcodeRO\");\r\n break;\r\n case \"administrative_area_level_1\":\r\n //map to district code\r\n let val5 = place.address_components[i].short_name;\r\n let found = this.hkDistrictList.find((i) => i.key === val5);\r\n if (found) {\r\n this.address.hkDistrictCode = found.value;\r\n }\r\n this.validateReadOnlyAddress(val5, \"addHkDistrictCodeRO\");\r\n break;\r\n case \"country\":\r\n let val6 = place.address_components[i].short_name;\r\n this.address.countryISO2 = val6.trim();\r\n this.validateReadOnlyAddress(val6, \"addCountryRO\");\r\n this.getIsStateVisible(val6);\r\n break;\r\n default:\r\n break;\r\n }\r\n // clearing the search input\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n //}\r\n this.inputReadOnlyAddress();\r\n }\r\n }\r\n //this.this.$apply();//todo\r\n };\r\n\r\n override validateReadOnlyAddress = (value: any, inputId: any) => {\r\n if (value !== \"\") {\r\n const index = this.readOnlyFields.indexOf(inputId);\r\n switch (inputId) {\r\n case \"addAddress1RO\":\r\n this.addAddress1RO = false;\r\n break;\r\n case \"addAddress2RO\":\r\n this.addAddress1RO = false; //bundle\r\n this.addAddress2RO = false;\r\n this.addAddress3RO = false; //bundle\r\n this.addAddress4RO = false; //bundle\r\n break;\r\n case \"addAddress3RO\":\r\n this.addAddress3RO = false;\r\n break;\r\n case \"addAddress4RO\":\r\n this.addAddress4RO = false;\r\n break;\r\n // case \"addHkDistrictCodeRO\":\r\n // this.addHkDistrictCodeRO = false;\r\n // break;\r\n case \"addCityRO\":\r\n this.addCityRO = false;\r\n break;\r\n case \"addPostcodeRO\":\r\n this.addPostcodeRO = false;\r\n break;\r\n case \"addStateRO\":\r\n this.addStateRO = false;\r\n break;\r\n case \"addCountryRO\":\r\n this.addCountryRO = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (index !== -1) {\r\n this.readOnlyFields.splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n override setCinText() {\r\n this.CINText = \"CIN\";\r\n }\r\n\r\n atLeastOneCarParkAddressIsFilled(address: ClientAddressEntity) {\r\n let clientAddressMandatory: any[] = [];\r\n let contactMandatory: any[] = [\r\n {\r\n id: \"insuredCountry\",\r\n label: \"Country\",\r\n qid: this.address.countryISO2,\r\n },\r\n // {\r\n // id: \"brokerMobileNo\",\r\n // label: \"Mobile Number\",\r\n // qid: this.clientData.mobileNumber,\r\n // },\r\n ];\r\n let allContactMandatoryField: any[];\r\n\r\n if (\r\n common.isStringNullOrEmpty(address.addressLine1) &&\r\n common.isStringNullOrEmpty(address.addressLine2) &&\r\n common.isStringNullOrEmpty(address.addressLine3) &&\r\n common.isStringNullOrEmpty(address.addressLine4)\r\n ) {\r\n clientAddressMandatory = [\r\n {\r\n id: \"insuredAddress1\",\r\n label: \"Address Line 1\",\r\n qid: this.address.addressLine1,\r\n },\r\n // {\r\n // id: \"insuredAddress2\",\r\n // label: \"Address Line 2\",\r\n // qid: this.address.addressLine2,\r\n // },\r\n // {\r\n // id: \"insuredAddress3\",\r\n // label: \"Address Line 3\",\r\n // qid: this.address.addressLine3,\r\n // },\r\n // {\r\n // id: \"insuredAddress4\",\r\n // label: \"Address Line 4\",\r\n // qid: this.address.addressLine4,\r\n // },\r\n ];\r\n }\r\n\r\n allContactMandatoryField = contactMandatory.concat(clientAddressMandatory);\r\n\r\n return allContactMandatoryField;\r\n }\r\n\r\n protected override resetClientAddressForm() {\r\n this.readOnlyFields = [\r\n \"addAddress1RO\",\r\n \"addAddress2RO\",\r\n \"addAddress3RO\",\r\n \"addAddress4RO\",\r\n \"addCityRO\",\r\n \"addPostcodeRO\",\r\n \"addStateRO\",\r\n ];\r\n this.address.buildingName = \"\";\r\n this.address.unitNo = \"\";\r\n this.address.addressLine1 = \"\";\r\n this.address.addressLine2 = \"\";\r\n this.address.addressLine3 = \"\";\r\n this.address.addressLine4 = \"\";\r\n this.address.city = \"\";\r\n this.address.postCode = \"\";\r\n this.address.stateName = \"\";\r\n\r\n this.updateNativeElement(this.insuredAddress_lotunit, \"\");\r\n this.updateNativeElement(this.insuredAddress_building, \"\");\r\n this.updateNativeElement(this.insuredAddress1, \"\");\r\n this.updateNativeElement(this.insuredAddress2, \"\");\r\n this.updateNativeElement(this.insuredAddress3, \"\");\r\n this.updateNativeElement(this.insuredAddress4, \"\");\r\n this.updateNativeElement(this.insuredCity, \"\");\r\n this.updateNativeElement(this.insuredPostalCode, \"\");\r\n this.updateNativeElement(this.insuredState, \"\");\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n }\r\n\r\n protected override phoneValidation = (inputId: any): void => {\r\n let inputValue = \"\";\r\n\r\n switch (inputId) {\r\n case \"brokerPhoneNo\": {\r\n inputValue = this.clientData.phoneNoHome.trim();\r\n break;\r\n }\r\n case \"brokerOfficeNo\": {\r\n inputValue = this.clientData.phoneNoOffice.trim();\r\n break;\r\n }\r\n default: {\r\n inputValue = this.clientData.mobileNumber.trim();\r\n break;\r\n }\r\n }\r\n\r\n let errorText: string = \"\";\r\n\r\n var phoneno = /^\\+?[0-9]+$/;\r\n if (inputValue.length > 0) {\r\n if (!inputValue.match(phoneno)) {\r\n errorText = this.getPhoneValidationText(inputId);\r\n this.showErrorMessage = true;\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid ' +\r\n errorText +\r\n \"
\";\r\n // angular.element('.modal-body').animate({ scrollTop: 0 }, 200);\r\n } else {\r\n this.showErrorMessage = false;\r\n this.errorMsgInHtml = \"\";\r\n // angular\r\n // .element(\"#\" + inputId)\r\n // .closest(\".form-group\")\r\n // .removeClass(\"has-error\");\r\n }\r\n }\r\n };\r\n\r\n protected override openAddressHelp(event: {\r\n preventDefault: () => void;\r\n }): void {\r\n event.preventDefault();\r\n const data = {\r\n // 'proposalModel': this.proposal.proposalModel,\r\n showGeoCode: false, // determine to hide/show geocode\r\n };\r\n\r\n const clientCreateDialogRef = this.cdkDialogService.open(\r\n MfHkAddressHelpFormComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n clientCreateDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n override createClient = () => {\r\n this.showErrorMessage = false;\r\n //auto assigned, since user could have enter address without googlePlaceApi\r\n this.address.countryISO2 = \"HK\";\r\n //const deferred = this.$q.defer();\r\n\r\n if (this.customerTypeCheck()) {\r\n let personalMandatory: any[];\r\n let orgMandatory: any[];\r\n let otherMandatory: any[];\r\n let contactMandatory: any[];\r\n let allMandatoryField: any[];\r\n\r\n personalMandatory = [\r\n {\r\n id: \"clientDocType\",\r\n label: \"Mortgagor ID Type\",\r\n qid: this.clientData.docType === \"0\" ? \"\" : this.clientData.docType,\r\n },\r\n {\r\n id: \"clientName\",\r\n label: \"Mortgagor Name\",\r\n qid: this.clientData.clientName,\r\n },\r\n ];\r\n\r\n if (this.clientData.docType === \"I\") {\r\n personalMandatory.push({\r\n id: \"clientNRICNo\",\r\n label: \"Mortgagor ID (NRIC)\",\r\n qid: this.clientData.nric,\r\n });\r\n } else if (this.clientData.docType === \"P\") {\r\n personalMandatory.push({\r\n id: \"clientPassportNo\",\r\n label: \"Mortgagor ID (Passport Number)\",\r\n qid: this.clientData.passportNo,\r\n });\r\n } else if (this.clientData.docType === \"X\") {\r\n personalMandatory.push({\r\n id: \"clientDBClientReferenceNumber\",\r\n label: \"Mortgagor ID (DB Client Reference Number)\",\r\n qid: this.clientData.dbsClientReferenceNumber,\r\n });\r\n }\r\n\r\n contactMandatory = this.atLeastOneCarParkAddressIsFilled(this.address);\r\n\r\n if (\r\n this.clientData.clientType === EnumSG.ClientType.Person ||\r\n this.clientData.clientType === EnumSG.ClientType.Others\r\n ) {\r\n allMandatoryField = personalMandatory.concat(contactMandatory);\r\n } else if (this.clientData.docType === \"B\") {\r\n orgMandatory = [\r\n {\r\n id: \"clientBRNo\",\r\n label: \"Business Registration Number\",\r\n qid: this.clientData.businessRegistrationNumber,\r\n },\r\n ];\r\n allMandatoryField = orgMandatory.concat(contactMandatory);\r\n } //if (this.clientData.docType === \"C\")\r\n else {\r\n orgMandatory = [\r\n {\r\n id: \"clientBRNo2\",\r\n label: \"Business Registration Number2\",\r\n qid: this.clientData.businessRegistrationNumber2,\r\n },\r\n ];\r\n allMandatoryField = orgMandatory.concat(contactMandatory);\r\n }\r\n\r\n this.postBackData = [Array];\r\n let errorMessageIndicator: number = 0;\r\n const htmlErrorMessage: string =\r\n '
' +\r\n \" @i.label@ is required.
\";\r\n\r\n const clientAddressData: ClientAddressEntity = new ClientAddressEntity();\r\n\r\n clientAddressData.clientAddressID = this.isCreate\r\n ? \"\"\r\n : String(this.proposalService.proposal.customerMappingAddressID);\r\n clientAddressData.clientID = this.isCreate\r\n ? \"\"\r\n : String(this.proposalService.proposal.customerMappingId);\r\n clientAddressData.buildingName = this.address.buildingName;\r\n clientAddressData.unitNo = this.address.unitNo;\r\n clientAddressData.addressLine1 = this.address.addressLine1;\r\n\r\n clientAddressData.addressLine2 = this.address.addressLine2;\r\n clientAddressData.addressLine3 = this.address.addressLine3;\r\n clientAddressData.addressLine4 = this.address.addressLine4;\r\n clientAddressData.city = this.address.city;\r\n clientAddressData.postCode = this.address.postCode;\r\n clientAddressData.stateName = this.address.stateName;\r\n clientAddressData.hkDistrictCode = this.address.hkDistrictCode;\r\n clientAddressData.countryISO2 = \"HK\"; //this.address.countryISO2;\r\n clientAddressData.contact1 = \"\";\r\n clientAddressData.contact2 = \"\";\r\n\r\n const clientData: ClientEntity = new ClientEntity();\r\n clientData.address = [];\r\n\r\n clientData.clientId = this.isCreate\r\n ? 0\r\n : this.proposalService.proposal.customerMappingId!;\r\n clientData.clientCode = this.isCreate ? \"0\" : this.clientData.clientCode;\r\n clientData.clientType = this.clientData.clientType;\r\n clientData.nric = this.clientData.nric;\r\n clientData.passportNo = this.clientData.passportNo;\r\n\r\n clientData.businessRegistrationNumber =\r\n this.clientData.docType === \"B\"\r\n ? this.clientData.businessRegistrationNumber\r\n : \"\";\r\n clientData.businessRegistrationNumber2 =\r\n this.clientData.docType === \"C\"\r\n ? this.clientData.businessRegistrationNumber2\r\n : \"\";\r\n clientData.dbsClientReferenceNumber =\r\n this.clientData.dbsClientReferenceNumber;\r\n clientData.incorporatedDate = this.clientData.incorporatedDate;\r\n // clientData.businessName = this.clientData.businessName;\r\n clientData.personInCharge = this.clientData.personInCharge;\r\n clientData.firstName = this.clientData.firstName;\r\n clientData.lastName = this.clientData.lastName;\r\n clientData.clientName = this.clientData.clientName;\r\n clientData.salutation = this.clientData.salutation;\r\n clientData.docType = this.clientData.docType;\r\n\r\n clientData.gender = this.clientData.gender;\r\n clientData.birthDate = this.clientData.birthDate;\r\n if (this.clientData.clientType === EnumSG.ClientType.Person) {\r\n if (\r\n common.isDefined(this.clientData.birthDate) &&\r\n this.clientData.birthDate !== \"\"\r\n ) {\r\n const answer = new Date(this.clientData.birthDate);\r\n const year = answer.getFullYear();\r\n const month = answer.getMonth() + 1;\r\n const day = answer.getDate();\r\n clientData.birthDate = `${year}-${month}-${day} 12:00:00 AM`;\r\n }\r\n }\r\n\r\n clientData.occupation = this.clientData.occupation;\r\n clientData.race = this.clientData.race;\r\n clientData.maritalStatus = this.clientData.maritalStatus;\r\n\r\n clientData.phoneNoHome = this.clientData.phoneNoHome;\r\n clientData.phoneNoOffice = this.clientData.phoneNoOffice;\r\n clientData.mobileNumber = this.clientData.mobileNumber;\r\n clientData.pagerNo = this.clientData.pagerNo;\r\n clientData.faxNumber = this.clientData.faxNumber;\r\n clientData.cinNo = this.clientData.cinNo;\r\n clientData.emailAddress = this.clientData.emailAddress;\r\n /*\r\n * exec GetMasterNationalityList -- client's nationality\r\n * exec GetMasterCountryList -- ClientAddress's countryISO\r\n */\r\n clientData.nationality = \"\";\r\n clientData.address.push(clientAddressData);\r\n clientData.productBase = EnumSG.ProductBase.HASE;\r\n // clientData.productBase = this.productService.getProductBase(\r\n // (this.proposal as MortgageFireHongKongProposal).productType\r\n // );\r\n\r\n this.showErrorMessage = true;\r\n if (allMandatoryField.length > 0) {\r\n this.errorMsgInHtml = \"\";\r\n this.emptyFieldValidation = \"\";\r\n\r\n for (const i of allMandatoryField) {\r\n if (common.isUndefinedOrNull(i.qid) || i.qid.length === 0) {\r\n this.errorMsgInHtml += htmlErrorMessage.replace(\r\n \"@i.label@\",\r\n i.label\r\n );\r\n this.emptyFieldValidation += \" \" + i.label;\r\n errorMessageIndicator++;\r\n } else {\r\n this.emptyFieldValidation.replace(i.label, \"\");\r\n }\r\n }\r\n }\r\n if (errorMessageIndicator === 0) {\r\n this.showErrorMessage = false;\r\n this.isProcessing = true;\r\n\r\n let clientActionData: any;\r\n\r\n if (\r\n this.proposalService.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfClientInfo &&\r\n this.proposalService.proposal.transType === Enums.TransType.END &&\r\n !this.isCreate\r\n ) {\r\n clientActionData = {\r\n clientModel: clientData,\r\n action: \"validate\",\r\n };\r\n } else {\r\n clientActionData = {\r\n clientModel: clientData,\r\n action: \"save\",\r\n };\r\n }\r\n\r\n this.ClientSave(clientActionData);\r\n } else {\r\n //angular.element(\".modal-body\").animate({ scrollTop: 0 }, 200);\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n } else {\r\n this.showErrorMessage = true;\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml;\r\n '
Please select the client type to proceed.
';\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n //return deferred.promise;\r\n };\r\n}\r\n","\r\n
\r\n
\r\n
\r\n Please Wait \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n Please complete the following :\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Personal Information

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Contact Information

\r\n
\r\n
\r\n
\r\n \r\n 🛈 If you update these Contact Information, it won’t be\r\n updated to the policy. Please update policy data by using the\r\n Update feature.\r\n
\r\n
\r\n \r\n \r\n Help\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { ApiService } from \"src/app/services/dal/api.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MortgageFireSGTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { httpNotifier } from \"src/app/interceptor/http-notifier\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { BaseSubscriptionComponent } from \"src/app/components/new-product/base/base-subscription/base-subscription.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { clientViewDlgModelArgs } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-client-search\",\r\n templateUrl: \"./mf-hk-client-search.component.html\",\r\n styleUrls: [\"./mf-hk-client-search.component.scss\"],\r\n})\r\nexport class MfHkClientSearchComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n isEditable = false;\r\n isDisabled = false;\r\n\r\n proposal!: MortgageFireHongKongProposal;\r\n\r\n currentUserType!: Enum.UserType;\r\n isUnderwriter!: boolean;\r\n isMarketer!: boolean;\r\n isChecker: boolean = false;\r\n isMaker: boolean = false;\r\n\r\n showErrorMessage!: boolean;\r\n clientId: any;\r\n clientName: string = \"\";\r\n custDocType: string = \"\";\r\n clientAddress: string = \"\";\r\n clientCode: string = \"\";\r\n clientMortgagorId: string = \"\";\r\n clientMobileNumber: string = \"\";\r\n clientEmailAddress: string = \"\";\r\n searchData!: any[];\r\n countryList!: any[];\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n private listing: any[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n outputData!: any;\r\n public gridHeight = 100;\r\n public docTypeList: Array<{ text: string; value: string }> = [\r\n { text: \"Hk Id Card\", value: \"I\" },\r\n { text: \"Passport\", value: \"P\" },\r\n { text: \"Business Registration Document\", value: \"B\" },\r\n { text: \"CI\", value: \"C\" },\r\n { text: \"Others\", value: \"X\" },\r\n ];\r\n\r\n constructor(\r\n //private proposalService: MortgageFireSingaporeProposal,\r\n private api: ApiService,\r\n private clientService: ClientService,\r\n private masterDataService: MasterDataService,\r\n public identityRolesService: IdentityRolesService,\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: mfHkClientSearchDlgInputArgs\r\n ) {\r\n super();\r\n // this.$state = Application.angular_$state();\r\n // this.timeOut = Application.angular_$timeout();\r\n this.tabId = MortgageFireSGTabSchema.premiumSummary.index.toString();\r\n\r\n if (this.inputData) {\r\n this.proposal = this.inputData.proposal as MortgageFireHongKongProposal; //temp pass from outside\r\n this.isEditable = this.inputData.isEditable;\r\n }\r\n }\r\n\r\n //#region old ui code\r\n ngOnInit(): void {\r\n // /*check is underwriter*/\r\n //this.currentUserType = this.identityRolesService.getIdentity().currentUser().userType;\r\n\r\n /*check is underwriter*/\r\n this.isUnderwriter = this.identityRolesService.isUnderwriter;\r\n /*check is marketer*/\r\n this.isMarketer = this.identityRolesService.isMarketer;\r\n /*check is checker*/\r\n this.isChecker = this.identityRolesService.isChecker;\r\n /*check is maker*/\r\n this.isMaker = this.identityRolesService.isMaker;\r\n\r\n this.initialize();\r\n\r\n //todo\r\n // $(document).ready(() => {\r\n // // Trigger search on 'Enter' key pressed\r\n // $('#clientName_textBox, #custIdentificationNo_textBox, #clientAddress_textBox, #clientCode_textBox, #nric_textBox, #passport_textBox,#clientMobile_textBox,#clientEmail_textBox').keypress((event) => {\r\n\r\n // // 'Enter'\r\n // if (event.keyCode === 13) {\r\n // this.search(event);\r\n // }\r\n // });\r\n // });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAllRxjs();\r\n }\r\n\r\n search = (e: any) => {\r\n // TODO: validations\r\n if (\r\n (Global.isUndefined(this.clientName) || this.clientName === \"\") &&\r\n (Global.isUndefined(this.custDocType) || this.custDocType === \"\") &&\r\n (Global.isUndefined(this.clientAddress) || this.clientAddress === \"\") &&\r\n (Global.isUndefined(this.clientCode) || this.clientCode === \"\") &&\r\n (Global.isUndefined(this.clientMortgagorId) ||\r\n this.clientMortgagorId === \"\") &&\r\n (Global.isUndefined(this.clientMobileNumber) ||\r\n this.clientMobileNumber === \"\") &&\r\n (Global.isUndefined(this.clientEmailAddress) ||\r\n this.clientEmailAddress === \"\")\r\n ) {\r\n this.showErrorMessage = true;\r\n httpNotifier.response_notifier$.next(new KeyValue(\"\", e));\r\n\r\n //reset grid\r\n this.listing = [];\r\n this.totalListing = 0;\r\n } else {\r\n this.showErrorMessage = false;\r\n // refresh grid\r\n this.masterDataService.getCountryList().subscribe((responseCountry) => {\r\n this.countryList = responseCountry;\r\n\r\n this.refresh();\r\n });\r\n }\r\n };\r\n\r\n private initialize() {\r\n //this.proposal = this.proposalService.proposal;//temp pass from outside\r\n super.subscribeTabLoadRenderer();\r\n }\r\n\r\n public getCurrentProductBase = (): EnumSG.ProductBase => {\r\n return EnumSG.ProductBase.HASE;\r\n // this.proposal = this.proposalService.proposal;//temp pass from outside\r\n // return this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n // ? EnumSG.ProductBase.Citi\r\n // : EnumSG.ProductBase.DBS;\r\n };\r\n\r\n //todo\r\n // private on_RequestStart(e: kendo.data.DataSourceRequestStartEvent) {\r\n // httpNotifier.request_notifier$.next(new KeyValue('', e));\r\n // }\r\n\r\n // private grid_dataBound = (e: kendo.ui.GridDataBoundEvent) => {\r\n\r\n // const dataItems = e.sender.dataSource.view();\r\n\r\n // // k-hierarchy-cell CSS stylings\r\n // const gridRowsToProcess = e.sender.tbody.find('tr');\r\n\r\n // for (let i = 0; i < dataItems.length; i++) {\r\n // const $gridRowsToProcess = $(gridRowsToProcess[i]);\r\n\r\n // this.proposal = this.proposalService.proposal;\r\n // const productType = (this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB || this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE\r\n // || this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO)\r\n // ? EnumSG.ProductBase.Citi : EnumSG.ProductBase.DBS;\r\n\r\n // if (((dataItems[i].get('productBase')).toUpperCase()) === productType.toUpperCase()) {\r\n // // hover cell - blue background & cursor pointer\r\n // $gridRowsToProcess.addClass('hoverPowderBlue cursorPointer');\r\n // } else {\r\n // // white background & cursor default\r\n // $gridRowsToProcess.addClass('ACElightgrey cursorDefault');\r\n // }\r\n // }\r\n // }\r\n\r\n private on_RequestEnd = (e: any) => {\r\n if (e !== undefined) {\r\n e.forEach(\r\n (c: {\r\n address: any[];\r\n addressDisplayText: string;\r\n clientType: any;\r\n badgeClass: string;\r\n clientTypeDisplayText: string;\r\n }) => {\r\n const clientAddress = c.address[0];\r\n\r\n // kendo grid schema model field: addressDisplayText\r\n if (clientAddress.countryISO2 === \"SG\") {\r\n c.addressDisplayText = this.getAddressDisplayText(clientAddress);\r\n } else {\r\n c.addressDisplayText =\r\n this.getNonSGAddressDisplayText(clientAddress);\r\n }\r\n\r\n let badgeClass = \"\";\r\n let clientTypeDisplayText = \"\";\r\n switch (c.clientType) {\r\n case 1:\r\n // Individual\r\n clientTypeDisplayText = \"Ind.\";\r\n badgeClass = \"primary\";\r\n break;\r\n case 2:\r\n // Organization\r\n clientTypeDisplayText = \"Org.\";\r\n badgeClass = \"success\";\r\n break;\r\n case 3:\r\n // Organization\r\n clientTypeDisplayText = \"Other\";\r\n badgeClass = \"success\";\r\n break;\r\n }\r\n\r\n c.badgeClass = badgeClass;\r\n c.clientTypeDisplayText = clientTypeDisplayText;\r\n }\r\n );\r\n }\r\n\r\n httpNotifier.response_notifier$.next(new KeyValue(\"\", e));\r\n };\r\n\r\n // private on_Change = (e: kendo.ui.GridChangeEvent) => {\r\n // // Selected row\r\n // this.clientService.clientDictionary = {};\r\n // const selectedRow = this.clientSearchGrid.select();\r\n // const dataItem: any = this.clientSearchGrid.dataItem(selectedRow);\r\n\r\n // if ((dataItem.productBase).toUpperCase() === this.getCurrentProductBase().toUpperCase()) {\r\n // // Parameters\r\n // this.clientId = dataItem.clientId;\r\n // this.clientCode = dataItem.clientCode;\r\n // this.PolicyConfirmationModalCloseForActions({ confirmation: true });\r\n // } else {\r\n // selectedRow.removeClass('k-state-selected');\r\n // selectedRow.addClass('ACElightgrey cursorDefault');\r\n // }\r\n // }\r\n\r\n // DBSEP-2063: It will check the confirmation from user and redirect to client edit or create page.\r\n\r\n PolicyConfirmationModalCloseForActions = (data: any): void => {\r\n if (data.confirmation) {\r\n // Return data to master component\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-search-close\",\r\n value: {\r\n status: \"success\",\r\n clientId: this.clientId,\r\n clientCode: this.clientCode,\r\n },\r\n });\r\n }\r\n };\r\n\r\n getDisplayTextIfUnknown = (inputId: string) => {\r\n let displayText: string = \"Unknown\";\r\n let array: any = [];\r\n if (inputId.length > 0) {\r\n if (common.isDefined(this.countryList)) {\r\n array = this.countryList;\r\n }\r\n\r\n if (array.length > 0) {\r\n const elementPos = array\r\n .map(function (x: { value: any }) {\r\n return x.value;\r\n })\r\n .indexOf(inputId);\r\n const objectFound = array[elementPos];\r\n displayText = objectFound.key;\r\n }\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n private getAddressDisplayText(addressEntity: any): string {\r\n let addressDisplayText = \"\";\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine1)) {\r\n addressDisplayText += addressEntity.addressLine1;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.addressLine2;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.unitNo)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.unitNo;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.buildingName)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.buildingName;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.city)) {\r\n if (addressEntity.countryISO2 !== \"SG\") {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.city;\r\n }\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.state)) {\r\n if (\r\n addressEntity.countryISO2 !== \"SG\" ||\r\n addressEntity.countryISO2 !== \"HK\"\r\n ) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.state;\r\n }\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.countryISO2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n\r\n addressDisplayText += this.getDisplayTextIfUnknown(\r\n addressEntity.countryISO2\r\n );\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.postCode)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.postCode;\r\n }\r\n return addressDisplayText;\r\n }\r\n private getNonSGAddressDisplayText(addressEntity: any): string {\r\n let addressDisplayText = \"\";\r\n if (!common.isStringNullOrEmpty(addressEntity.unitNo)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.unitNo;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.buildingName)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.buildingName;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine1)) {\r\n addressDisplayText += addressEntity.addressLine1;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.addressLine2;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.postCode)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.postCode;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.city)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.city;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.state)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.state;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.countryISO2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n\r\n addressDisplayText += this.getDisplayTextIfUnknown(\r\n addressEntity.countryISO2\r\n );\r\n }\r\n\r\n return addressDisplayText;\r\n }\r\n private getSearchFilters() {\r\n return [\r\n { field: \"clientName\", operator: \"eq\", value: this.clientName },\r\n {\r\n field: \"customerDocumentType\",\r\n operator: \"eq\",\r\n value: this.custDocType,\r\n },\r\n { field: \"address\", operator: \"eq\", value: this.clientAddress },\r\n { field: \"clientCode\", operator: \"eq\", value: this.clientCode },\r\n { field: \"mortgagorId\", operator: \"eq\", value: this.clientMortgagorId },\r\n { field: \"mobileNumber\", operator: \"eq\", value: this.clientMobileNumber },\r\n { field: \"emailAddress\", operator: \"eq\", value: this.clientEmailAddress },\r\n ];\r\n }\r\n\r\n unsubscribeAllRxjs() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: this.outputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n //#endregion\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n private clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.selectedRowIndexes = [];\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n const di = dataItem;\r\n //const proposalId = dataItem.proposalId;\r\n this.outputData = di;\r\n this.close(\"yes\");\r\n }\r\n\r\n private refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"clientName\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"clientName\", \"eq\", this.clientName],\r\n [\"custDocType\", \"eq\", this.custDocType],\r\n [\"clientAddress\", \"eq\", this.clientAddress],\r\n [\"clientCode\", \"eq\", this.clientCode],\r\n [\"clientMortgagorId\", \"eq\", this.clientMortgagorId],\r\n [\"clientMobileNumber\", \"eq\", this.clientMobileNumber],\r\n [\"clientEmailAddress\", \"eq\", this.clientEmailAddress],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.clientService.search(querystring).subscribe((result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n let e = result.body.d?.results;\r\n this.on_RequestEnd(e);\r\n this.listing = e;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n\r\n if (this.totalListing > 0) {\r\n this.gridHeight = 400;\r\n } else {\r\n this.gridHeight = 100;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n //#endregion\r\n}\r\n\r\nexport interface mfHkClientSearchDlgInputArgs {\r\n isEditable: boolean;\r\n proposal: MortgageFireHongKongProposal;\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Please enter any of the search criteria\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Culture } from \"src/app/shared/date-formatter\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { MfHkBaseComponent } from \"../../mf-hk-base.component\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\n\r\n@Component({\r\n selector: \"mf-hk-client-view\",\r\n templateUrl: \"./mf-hk-client-view.component.html\",\r\n styleUrls: [\"./mf-hk-client-view.component.scss\"],\r\n})\r\nexport class MfHkClientViewComponent\r\n extends MfHkBaseComponent\r\n implements OnInit\r\n{\r\n id!: string;\r\n clientViewData: any;\r\n address!: ClientAddressEntity;\r\n noAnswerDefaultText: string = \"Unknown\";\r\n countryList!: any[];\r\n nationalityList!: any[];\r\n contactInformation: string = \"\";\r\n isStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n clientSalutationDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Capt\",\r\n 2: \"Dr.\",\r\n 3: \"Madam\",\r\n 4: \"Miss\",\r\n 5: \"Mr\",\r\n 6: \"Mrs\",\r\n 7: \"Ms\",\r\n 8: \"Prof\",\r\n 9: \"Sir\",\r\n 10: \"Tan Sir\",\r\n 13: \"Others\",\r\n };\r\n\r\n clientRaceDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Chinese\",\r\n 2: \"Indian\",\r\n 3: \"Malay\",\r\n 4: \"Others\",\r\n };\r\n\r\n clientGenderDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Male\",\r\n 2: \"Female\",\r\n };\r\n\r\n clientMaritalStatusDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Single\",\r\n 2: \"Married\",\r\n 3: \"Widowed\",\r\n 4: \"Divorced\",\r\n 5: \"Separated\",\r\n };\r\n\r\n clientDocumentTypePrefixDictionary: { [key: string]: string } = {\r\n I: \"Hk Id Card\",\r\n P: \"Passport\",\r\n B: \"Business Registration Document\",\r\n C: \"CI\",\r\n X: \"Others\",\r\n };\r\n\r\n private dialogOkNotifierSubscription!: Subscription;\r\n isEditable: boolean = false;\r\n isProcessing = false;\r\n\r\n constructor(\r\n private proposalService: MfHKProposalService,\r\n private clientService: ClientService,\r\n private masterDataService: MasterDataService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n override ngOnInit(): void {\r\n if (\r\n this.proposalService.proposal.proposalStatus ===\r\n Enum.ProposalStatus.Incomplete &&\r\n this.proposalService.proposal.transType === Enum.TransType.NEW\r\n ) {\r\n this.isEditable = true;\r\n }\r\n\r\n super.subscribeTabLoadRenderer();\r\n this.initialize();\r\n this.dialogOkNotifierSubscription =\r\n dialogActionNotifier.ok_notifier$.subscribe((event) => {});\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeRxjs();\r\n this.dialogOkNotifierSubscription.unsubscribe();\r\n }\r\n\r\n verifyStateCountry(answer: string) {\r\n const elementPos = this.countryExcludeState\r\n .map(function (x: any) {\r\n return x;\r\n })\r\n .indexOf(answer);\r\n if (elementPos > -1) {\r\n this.isStateVisible = false;\r\n } else {\r\n this.isStateVisible = true;\r\n }\r\n }\r\n\r\n getAddressFormat = (input: any) => {\r\n if (!common.isUndefinedOrNull(input)) {\r\n return input + \" \";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n getDisplayTextIfUnknown = (inputId: string, question: any) => {\r\n let displayText: string = \"Unknown\";\r\n let array: any = [];\r\n if (inputId.length > 0) {\r\n if (question === \"country\") {\r\n if (common.isDefined(this.countryList)) {\r\n array = this.countryList;\r\n }\r\n } else {\r\n if (common.isDefined(this.nationalityList)) {\r\n array = this.nationalityList;\r\n }\r\n }\r\n if (array.length > 0) {\r\n const elementPos = array\r\n .map(function (x: { value: any }) {\r\n return x.value;\r\n })\r\n .indexOf(inputId);\r\n const objectFound = array[elementPos];\r\n displayText = objectFound.key;\r\n }\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n getDateFormat = (date: any, culture: Culture) => {\r\n const mm = date.substring(5, 7);\r\n const dd = date.substring(8, 10);\r\n const yyyy = date.substring(0, 4);\r\n\r\n switch (culture) {\r\n case Culture.enSg:\r\n return dd + \"/\" + mm + \"/\" + yyyy;\r\n\r\n default:\r\n throw Error(\"date culture unhandled\");\r\n }\r\n };\r\n\r\n private initialize() {\r\n this.masterDataService\r\n .getCountryList()\r\n .subscribe((responseCountry: any[]) => {\r\n this.countryList = responseCountry;\r\n this.masterDataService\r\n .getAllNationalityList()\r\n .subscribe((responseNationality: any[]) => {\r\n this.nationalityList = responseNationality;\r\n this.proposalLoaded();\r\n });\r\n });\r\n }\r\n\r\n //https://stackoverflow.com/questions/34547127/angular2-equivalent-of-document-ready\r\n ngAfterViewInit() {\r\n //todo: check if this works\r\n this.proposalLoaded();\r\n //https://stackoverflow.com/questions/53767289/angular-error-error-expressionchangedafterithasbeencheckederror-expression-ha\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n private proposalLoaded = () => {\r\n //todo\r\n // $(document).ready(() => {\r\n setTimeout(() => {\r\n this.getClientDetailsLoaded();\r\n }, 60);\r\n // });\r\n };\r\n\r\n private getClientDetailsLoaded = () => {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: any) => {\r\n this.mapApiToUi(response);\r\n });\r\n };\r\n\r\n mapApiToUi(response: any) {\r\n this.clientViewData = response;\r\n //if (response.clientType === 1) {\r\n this.clientViewData.salutationText =\r\n this.clientSalutationDictionary[response.salutation];\r\n //dob changes begin\r\n let editDate: any;\r\n if (!common.isUndefinedOrNull(this.clientViewData.birthDate)) {\r\n if (this.clientViewData.birthDate.indexOf(\"T\") > 0) {\r\n editDate = new Date(\r\n this.clientViewData.birthDate.replace(/-/g, \"/\").replace(/T.+/, \"\")\r\n );\r\n } else {\r\n editDate = new Date(\r\n this.formatDate(this.clientViewData.birthDate)\r\n .replace(/-/g, \"/\")\r\n .replace(/T.+/, \"\")\r\n );\r\n }\r\n\r\n const year = editDate.getFullYear();\r\n const month = editDate.getMonth() + 1;\r\n const day = editDate.getDate();\r\n var dateofbirth = `${day}/${month}/${year}`;\r\n this.clientViewData.birthDateFormat = dateofbirth;\r\n } else {\r\n this.clientViewData.birthDateFormat = \"\";\r\n }\r\n //dob changes end\r\n //this.clientViewData.birthDateFormat = Global.isUndefined(this.clientViewData.birthDate) ?\r\n // '' : this.getDateFormat(this.clientViewData.birthDate, Culture.enSg);\r\n this.clientViewData.genderText =\r\n this.clientGenderDictionary[response.gender];\r\n this.clientViewData.maritalStatusText =\r\n this.clientMaritalStatusDictionary[response.maritalStatus];\r\n this.clientViewData.raceText = this.clientRaceDictionary[response.race];\r\n if (response.nationality) {\r\n this.clientViewData.nationalityText = this.getDisplayTextIfUnknown(\r\n [response.nationality][0],\r\n \"nationality\"\r\n );\r\n }\r\n\r\n //this.clientViewData.documentType = response.docType;\r\n this.clientViewData.docType = response.docType; //documentType is for docx word document?\r\n this.clientViewData.documentTypeText =\r\n this.clientDocumentTypePrefixDictionary[response.docType];\r\n //}\r\n\r\n if (response.docType === \"B\") {\r\n this.clientViewData.businessRegistrationNumber =\r\n response.businessRegistrationNumber;\r\n } else if (response.docType == \"C\") {\r\n this.clientViewData.businessRegistrationNumber =\r\n response.businessRegistrationNumber2;\r\n }\r\n this.clientViewData.DBClientReferenceNumber =\r\n response.dbsClientReferenceNumber;\r\n\r\n this.clientViewData.countryISO2Text = this.getDisplayTextIfUnknown(\r\n [response.address[0].countryISO2][0],\r\n \"country\"\r\n );\r\n this.verifyStateCountry([response.address[0].countryISO2][0]);\r\n }\r\n\r\n formatDate = (date: string) => {\r\n const dateSplit = date.split(\"/\");\r\n const newDate = dateSplit[1] + \"/\" + dateSplit[0] + \"/\" + dateSplit[2];\r\n return newDate.replace(/-/g, \"/\").replace(/T.+/, \"\");\r\n };\r\n}\r\n","
\r\n
\r\n Please Wait \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Personal Information

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.clientName }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n {{ clientViewData?.documentTypeText }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

{{ clientViewData?.nric }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.passportNo }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.businessRegistrationNumber }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n {{ clientViewData?.DBClientReferenceNumber }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Contact Information

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine1 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine2 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine3 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine4 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.mobileNumber }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.emailAddress }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.phoneNoHome }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.phoneNoOffice }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.faxNumber }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-address-help-form\",\r\n templateUrl: \"./mf-hk-address-help-form.component.html\",\r\n styleUrls: [\"./mf-hk-address-help-form.component.scss\"],\r\n})\r\nexport class MfHkAddressHelpFormComponent implements OnInit {\r\n showGeoCode = true;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any\r\n ) {\r\n if (this.inputData) {\r\n this.showGeoCode = this.inputData.showGeoCode;\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public close(status: any) {\r\n this.dialogRef?.close(null);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Street Address Search

\r\n
    \r\n
  • \r\n This address search capability is powered by Google. It is\r\n restricted to addresses in Hong Kong only and as cataloged\r\n by Google.\r\n
  • \r\n
  • Please only input street address.
  • \r\n
  • Do not input building name, suite/lot/unit number
  • \r\n
  • Example
  • \r\n
  • \r\n
      \r\n
    • \r\n 123 Queen's Road West\r\n \r\n \r\n
    • \r\n
    • \r\n Central Plaza 18 Harbour Road Wan Chai\r\n \r\n \r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n

Suite/Lot/Unit Number, Building Name

\r\n
    \r\n
  • \r\n Please input the suite/lot/unit number and building name\r\n in the respective named field.\r\n
  • \r\n
\r\n
\r\n

\r\n Street Number, Street Name, Postcode, Suburb, State, Country\r\n

\r\n

\r\n Address No 1, Address No 2, Postcode, City, State, Country\r\n

\r\n
    \r\n
  • \r\n These fields are automatically populated after you have\r\n selected an address from the Street Address Search.\r\n
  • \r\n
  • \r\n In the unlikely event that the address search did not\r\n return any value, the field will become editable and you\r\n can manually input the correct value.\r\n
  • \r\n
\r\n
\r\n
\r\n

Geocode

\r\n
    \r\n
  • \r\n This is automatically populated after you have selected\r\n an address from the Street Address Search.\r\n
  • \r\n
  • \r\n If the address provided does not have a valid geocode,\r\n the submission will be referred.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseSubscriptionComponent } from \"src/app/components/new-product/base/base-subscription/base-subscription.component\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-base\",\r\n templateUrl: \"./mf-hk-base.component.html\",\r\n styleUrls: [\"./mf-hk-base.component.scss\"],\r\n})\r\nexport class MfHkBaseComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","

mf-hk-base works!

\r\n","import * as Enum from \"src/app/framework/enum.shared\";\r\nimport { Component, Input, OnInit, AfterViewInit } from \"@angular/core\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { GridDataResult } from \"@progress/kendo-angular-grid\";\r\nimport { AllListingEntity } from \"src/app/components/new-product/base/base-configurables-list/config-listing-entity\";\r\nimport { ClausesDeductiblesService } from \"src/app/services/clauses-deductibles.service\";\r\nimport { MortgageFireHKTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-tab-schema\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHkEndorsementListSearchCriteria } from \"../endorsement/endorsement-list/mf-hk-end-list-search-criteria\";\r\nimport { CoverageTypeService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-coverage.service\";\r\nimport { MfHkTabchangeService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-tabchange.service\";\r\nimport { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\nimport { ClausesandDeductibles } from \"src/app/models/new-product/base/Clauses-Deductibles.model\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-mf-hk-clauses-and-deductibles\",\r\n templateUrl: \"./mf-hk-clauses-and-deductibles.component.html\",\r\n styleUrls: [\"./mf-hk-clauses-and-deductibles.component.scss\"],\r\n})\r\nexport class MfHkClausesAndDeductiblesComponent\r\n extends MfHkBaseComponent\r\n implements OnInit\r\n{\r\n @Input() proposal!: MortgageFireHongKongProposal;\r\n model = new MfHkEndorsementListSearchCriteria();\r\n\r\n resultDeductible: ClausesandDeductibles[] = [];\r\n nonDefaultDeductibles: ClausesandDeductibles[] = [];\r\n\r\n resultExtraPerils: ClausesandDeductibles[] = [];\r\n nonDefaultExtraPerils: ClausesandDeductibles[] = [];\r\n\r\n resultClauses: ClausesandDeductibles[] = [];\r\n nonDefaultClauses: ClausesandDeductibles[] = [];\r\n\r\n resultAdditionalClauses: ClausesandDeductibles[] = [];\r\n nonDefaultAdditionalClauses: ClausesandDeductibles[] = [];\r\n\r\n masterListData: ClausesandDeductibles[] = [];\r\n\r\n appendDeductibles: number = 1;\r\n appendExtraPerils: number = 1;\r\n appendClauses: number = 1;\r\n appendAdditionalClauses: number = 1;\r\n\r\n isIncomplete!: boolean;\r\n isNewBusiness!: boolean;\r\n isEndorsement!: boolean;\r\n isCancellation!: boolean;\r\n isUnderwriter!: boolean;\r\n\r\n proposalEntity!: ProposalEntity;\r\n coverageType: string = \"\";\r\n subscription?: Subscription;\r\n tabSubscription?: Subscription;\r\n\r\n protected listing: AllListingEntity[] = [];\r\n protected totalListing: number = 0;\r\n public gridView!: GridDataResult;\r\n public loading!: boolean;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n\r\n constructor(\r\n public proposalService: MfHKProposalService,\r\n public clausesDeductiblesService: ClausesDeductiblesService,\r\n public coverageTypeService: CoverageTypeService,\r\n private mfHkTabchangeService: MfHkTabchangeService\r\n ) {\r\n super();\r\n\r\n this.tabId = MortgageFireHKTabSchema.clausesAndDeductibles.index.toString();\r\n\r\n this.subscription = this.coverageTypeService.value$.subscribe((option) => {\r\n if (option) {\r\n this.coverageType = option;\r\n this.refreshData();\r\n }\r\n });\r\n\r\n this.tabSubscription = this.mfHkTabchangeService.emit$.subscribe(\r\n (number) => {\r\n if (number == 2) {\r\n this.resetOnlyDropdown();\r\n if (\r\n this.checkDropDown() &&\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n this.fetchDropdown();\r\n }\r\n if (\r\n this.checkDropDown() &&\r\n common.isDefined(\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n ) &&\r\n !common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n this.fetchDropdown();\r\n }\r\n }\r\n }\r\n );\r\n\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n }\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.isAnswered();\r\n\r\n //If this policy or draft is existing then load default C&D Automatiocally\r\n this.checkExistingPolicy();\r\n\r\n //This function inserts default data for each C&D item\r\n this.insertDefaultItemsForRenewal();\r\n };\r\n\r\n private proposalSaved = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n this.saveDeductibles();\r\n this.isAnswered();\r\n this.checkExistingPolicy();\r\n //This function inserts default data for each C&D item\r\n this.insertDefaultItemsForRenewal();\r\n this.sortBasedOnCode();\r\n this.resetOnlyDropdown();\r\n if (\r\n this.checkDropDown() &&\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n this.loadOnlyDropdown();\r\n }\r\n };\r\n\r\n override ngOnInit(): void {\r\n this.model.typeId = ConfigurableMode.Deductibles;\r\n\r\n this.initialize();\r\n componentHelper.notifyPageLoaded(\r\n \"mf-hk-clauses-deductibles.component\",\r\n this.proposal\r\n );\r\n }\r\n\r\n private initialize() {\r\n this.proposal = this.proposalService.proposal;\r\n\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isNewBusiness = this.proposal.transType === Enum.TransType.NEW;\r\n this.isEndorsement = this.proposal.transType === Enum.TransType.END;\r\n\r\n super.subscribeTabLoadRenderer();\r\n }\r\n\r\n protected isreadonly() {\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n\r\n this.isUnderwriter = this.proposal.isUnderwriter;\r\n\r\n const allowEdit = this.isIncomplete && this.isUnderwriter;\r\n\r\n this.isEndorsement =\r\n this.proposal.transType === Enum.TransType.END ? true : false;\r\n\r\n this.isCancellation =\r\n this.proposal.transType === Enum.TransType.CAN ? true : false;\r\n\r\n if (this.isEndorsement) {\r\n let acceptedEndorsementFlag =\r\n (this.proposal.endorsementType ===\r\n Enum.EndorsementType.GeneralEndorsement ||\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfSumInsured\r\n ? true\r\n : false) && allowEdit;\r\n\r\n return acceptedEndorsementFlag;\r\n }\r\n if (this.isCancellation) {\r\n return false;\r\n } else {\r\n return allowEdit;\r\n }\r\n }\r\n\r\n protected showExtraPerils() {\r\n var flag = false;\r\n\r\n if (\r\n common.isDefined(\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n ) &&\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer == \"1\"\r\n ) {\r\n return (flag = true);\r\n }\r\n if (\r\n !common.isDefined(\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n )\r\n ) {\r\n return (flag = true);\r\n } else return (flag = false);\r\n }\r\n\r\n protected isAnswered() {\r\n if (common.isDefined(this.proposal.clausesDeductibles)) {\r\n this.resultDeductible = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType === 1\r\n );\r\n this.resultExtraPerils = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType === 2\r\n );\r\n this.resultClauses = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType === 3\r\n );\r\n this.resultAdditionalClauses = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType === 4\r\n );\r\n }\r\n return true;\r\n }\r\n\r\n public refreshData(): void {\r\n this.proposal = this.proposalService.proposal;\r\n if (\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.clausesDeductibles.length > 0\r\n ) {\r\n this.reset();\r\n this.loadAtRefresh();\r\n } else if (\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n this.proposal.transType === Enum.TransType.END &&\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.clausesDeductibles.length > 0\r\n ) {\r\n this.resetOnlyDropdown();\r\n this.loadOnlyDropdown();\r\n } else {\r\n this.load();\r\n }\r\n }\r\n\r\n protected modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"coverageTypes\", \"eq\", this.model.coverageTypes],\r\n [\"title\", \"eq\", this.model.title],\r\n [\"typeId\", \"eq\", this.model.typeId],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n public load() {\r\n const formData: FormData = this.setFormData();\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService.getAllHaseList(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n if (\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n this.proposal.transType === Enum.TransType.END &&\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.proposal.clausesDeductibles.length > 0\r\n ) {\r\n this.loadOnlyDropdown();\r\n }\r\n if (\r\n common.isDefined(this.proposal.clausesDeductibles) &&\r\n this.checkDropDown() &&\r\n this.proposal.clausesDeductibles.length > 0\r\n ) {\r\n this.loadOnlyDropdown();\r\n }\r\n if (\r\n !common.isDefined(this.proposal.clausesDeductibles) ||\r\n this.proposal.clausesDeductibles.length == 0\r\n ) {\r\n this.loadItems();\r\n }\r\n this.saveDeductibles();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n public loadOnlyDropdown(): void {\r\n this.listing.forEach((entity, index) => {});\r\n\r\n this.listing.forEach((item) => {\r\n const list: ClausesandDeductibles = {\r\n ClauseDeductibleType: item.clausesAndDeductiblesType.toNumber(),\r\n ClausesDeductiblesID: item.id.toString(),\r\n ClausesDeductiblesCode: item.coverageCode,\r\n Title: item.title,\r\n AdditionalText: item.additionalText,\r\n Description: item.description,\r\n };\r\n if (\r\n item.coverageType ==\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n ) {\r\n this.masterListData?.push(list);\r\n if (\r\n item.clausesAndDeductiblesType == \"1\" &&\r\n !this.isItemInMasterList(list, this.resultDeductible)\r\n ) {\r\n this.nonDefaultDeductibles?.push(list);\r\n }\r\n if (\r\n item.clausesAndDeductiblesType == \"2\" &&\r\n !this.isItemInMasterList(list, this.resultExtraPerils)\r\n )\r\n this.nonDefaultExtraPerils?.push(list);\r\n if (\r\n item.clausesAndDeductiblesType == \"3\" &&\r\n !this.isItemInMasterList(list, this.resultClauses)\r\n )\r\n this.nonDefaultClauses?.push(list);\r\n if (\r\n item.clausesAndDeductiblesType == \"4\" &&\r\n !this.isItemInMasterList(list, this.resultAdditionalClauses)\r\n )\r\n this.nonDefaultAdditionalClauses?.push(list);\r\n }\r\n });\r\n }\r\n\r\n public loadItems(): void {\r\n this.listing.forEach((entity, index) => {});\r\n\r\n this.listing.forEach((item) => {\r\n const list: ClausesandDeductibles = {\r\n ClauseDeductibleType: item.clausesAndDeductiblesType.toNumber(),\r\n ClausesDeductiblesID: item.id.toString(),\r\n ClausesDeductiblesCode: item.coverageCode,\r\n Title: item.title,\r\n AdditionalText: item.additionalText,\r\n Description: item.description,\r\n };\r\n if (this.coverageType == item.coverageType) {\r\n this.masterListData.push(list);\r\n if (\r\n item.isDefault === \"True\" &&\r\n item.clausesAndDeductiblesType == \"1\" &&\r\n this.appendDeductibles == 1\r\n ) {\r\n this.resultDeductible?.push(list);\r\n }\r\n if (\r\n item.isDefault === \"False\" &&\r\n item.clausesAndDeductiblesType == \"1\"\r\n ) {\r\n this.nonDefaultDeductibles?.push(list);\r\n }\r\n\r\n if (\r\n item.isDefault === \"True\" &&\r\n item.clausesAndDeductiblesType == \"2\" &&\r\n this.coverageType == \"1\" &&\r\n this.appendExtraPerils == 1\r\n )\r\n this.resultExtraPerils?.push(list);\r\n if (\r\n item.isDefault === \"False\" &&\r\n item.clausesAndDeductiblesType == \"2\" &&\r\n this.coverageType == \"1\"\r\n )\r\n this.nonDefaultExtraPerils?.push(list);\r\n\r\n if (\r\n item.isDefault === \"True\" &&\r\n item.clausesAndDeductiblesType == \"3\" &&\r\n this.appendClauses == 1\r\n )\r\n this.resultClauses?.push(list);\r\n if (item.isDefault === \"False\" && item.clausesAndDeductiblesType == \"3\")\r\n this.nonDefaultClauses?.push(list);\r\n\r\n if (\r\n item.isDefault === \"True\" &&\r\n item.clausesAndDeductiblesType == \"4\" &&\r\n this.appendAdditionalClauses == 1\r\n )\r\n this.resultAdditionalClauses?.push(list);\r\n if (item.isDefault === \"False\" && item.clausesAndDeductiblesType == \"4\")\r\n this.nonDefaultAdditionalClauses?.push(list);\r\n }\r\n });\r\n }\r\n\r\n public loadAtRefresh() {\r\n const formData: FormData = this.setFormData();\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService.getAllHaseList(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n\r\n this.loadItems();\r\n this.saveDeductibles();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n public fetchDropdown() {\r\n const formData: FormData = this.setFormData();\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService.getAllHaseList(querystring).subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.listing = result.body.d?.results;\r\n this.totalListing = result.body.d?.__count;\r\n\r\n this.loadOnlyDropdown();\r\n this.saveDeductibles();\r\n this.loading = false;\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n checkExistingPolicy() {\r\n if (\r\n //Check if the last submitted date is before clauses and deductibles release date\r\n //Add default C&D to only historical policies\r\n this.proposal.lastSubmittedDate <=\r\n environment.ClausesAndDeductiblesReleaseDate &&\r\n (!common.isDefined(this.proposal.clausesDeductibles) ||\r\n this.proposal.clausesDeductibles.length == 0) &&\r\n common.isDefined(\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n ) &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n //Check if Clauses and deductibles added, if added don't fill default else load default\r\n //Applicable to RN and EN cases if the previous historical transaction has Empty C&D\r\n (!common.isDefined(\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer\r\n ) ||\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer != \"true\")\r\n ) {\r\n this.coverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer;\r\n this.load();\r\n this.proposal.qsMaster.qs_master_clausesflag!.answer = \"true\";\r\n }\r\n\r\n //Add default C&D when copy function\r\n if (\r\n this.proposal.copyProcessFor == Enum.copyProcessFor.NormalCopy &&\r\n (!common.isDefined(this.proposal.clausesDeductibles) ||\r\n this.proposal.clausesDeductibles.length == 0) &&\r\n common.isDefined(\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer\r\n ) &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n (!common.isDefined(\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer\r\n ) ||\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer != \"true\")\r\n ) {\r\n this.coverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer;\r\n this.load();\r\n this.proposal.qsMaster.qs_master_clausesflag!.answer = \"true\";\r\n }\r\n }\r\n\r\n protected setFormData(): FormData {\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"code\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = this.modelToArray();\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n public isItemInMasterList(\r\n item: ClausesandDeductibles,\r\n masterList: ClausesandDeductibles[]\r\n ) {\r\n return masterList.some(\r\n (masterItem) =>\r\n masterItem.ClausesDeductiblesID === item.ClausesDeductiblesID\r\n );\r\n }\r\n\r\n public updateList(data: {\r\n item: ClausesandDeductibles;\r\n type: number;\r\n action: string;\r\n }): void {\r\n if (data.action == \"add\") {\r\n if (data.type == 1) this.resultDeductible.push(data.item);\r\n else if (data.type == 2) this.resultExtraPerils.push(data.item);\r\n else if (data.type == 3) this.resultClauses.push(data.item);\r\n else if (data.type == 4) this.resultAdditionalClauses.push(data.item);\r\n } else {\r\n if (data.type == 1)\r\n this.resultDeductible = this.resultDeductible.filter(\r\n (item) => item.ClausesDeductiblesID !== data.item.ClausesDeductiblesID\r\n );\r\n else if (data.type == 2)\r\n this.resultExtraPerils = this.resultExtraPerils.filter(\r\n (item) => item.ClausesDeductiblesID !== data.item.ClausesDeductiblesID\r\n );\r\n else if (data.type == 3)\r\n this.resultClauses = this.resultClauses.filter(\r\n (item) => item.ClausesDeductiblesID !== data.item.ClausesDeductiblesID\r\n );\r\n else if (data.type == 4)\r\n this.resultAdditionalClauses = this.resultAdditionalClauses.filter(\r\n (item) => item.ClausesDeductiblesID !== data.item.ClausesDeductiblesID\r\n );\r\n }\r\n\r\n this.saveDeductibles();\r\n }\r\n\r\n public insertDefaultItemsForRenewal() {\r\n if (\r\n (this.proposal.transType === Enum.TransType.REN ||\r\n //HE-1811: Adding items to a single empty C&D when copy function\r\n (this.proposal.copyProcessFor === Enum.copyProcessFor.NormalCopy &&\r\n (!common.isDefined(\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer\r\n ) ||\r\n this.proposal.qsMaster.qs_master_clausesflag?.answer != \"true\"))) &&\r\n this.proposal.clausesDeductibles.length != 0\r\n ) {\r\n this.coverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType?.answer;\r\n\r\n this.appendDeductibles = 0;\r\n this.appendExtraPerils = 0;\r\n this.appendClauses = 0;\r\n this.appendAdditionalClauses = 0;\r\n\r\n this.resultDeductible = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType == 1\r\n );\r\n if (this.resultDeductible.length == 0) this.appendDeductibles = 1;\r\n\r\n if (this.coverageType == \"1\") {\r\n this.resultExtraPerils = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType == 2\r\n );\r\n if (this.resultExtraPerils.length == 0) this.appendExtraPerils = 1;\r\n }\r\n\r\n this.resultClauses = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType == 3\r\n );\r\n if (this.resultClauses.length == 0) this.appendClauses = 1;\r\n\r\n this.resultAdditionalClauses = this.proposal.clausesDeductibles.filter(\r\n (item) => item.ClauseDeductibleType == 4\r\n );\r\n if (this.resultAdditionalClauses.length == 0)\r\n this.appendAdditionalClauses = 1;\r\n\r\n this.loadAtRefresh();\r\n }\r\n }\r\n\r\n public saveDeductibles() {\r\n if (this.proposal.productType === EnumHK.MortgageFireHKProduct.HSCMB)\r\n this.proposal.clausesDeductibles = [\r\n ...this.resultDeductible,\r\n ...this.resultClauses,\r\n ...this.resultExtraPerils,\r\n ...this.resultAdditionalClauses,\r\n ];\r\n }\r\n public sortBasedOnCode() {\r\n if (common.isDefined(this.proposal.clausesDeductibles)) {\r\n this.resultDeductible = this.proposal.clausesDeductibles\r\n .filter((item) => item.ClauseDeductibleType === 1)\r\n .sort((a, b) =>\r\n a.ClausesDeductiblesCode!.localeCompare(b.ClausesDeductiblesCode!)\r\n );\r\n this.resultExtraPerils = this.proposal.clausesDeductibles\r\n .filter((item) => item.ClauseDeductibleType === 2)\r\n .sort((a, b) =>\r\n a.ClausesDeductiblesCode!.localeCompare(b.ClausesDeductiblesCode!)\r\n );\r\n this.resultClauses = this.proposal.clausesDeductibles\r\n .filter((item) => item.ClauseDeductibleType === 3)\r\n .sort((a, b) =>\r\n a.ClausesDeductiblesCode!.localeCompare(b.ClausesDeductiblesCode!)\r\n );\r\n this.resultAdditionalClauses = this.proposal.clausesDeductibles\r\n .filter((item) => item.ClauseDeductibleType === 4)\r\n .sort((a, b) =>\r\n a.ClausesDeductiblesCode!.localeCompare(b.ClausesDeductiblesCode!)\r\n );\r\n this.saveDeductibles();\r\n }\r\n }\r\n\r\n public checkDropDown() {\r\n if (\r\n this.nonDefaultDeductibles.length == 0 &&\r\n this.nonDefaultExtraPerils.length == 0 &&\r\n this.nonDefaultClauses.length == 0 &&\r\n this.nonDefaultAdditionalClauses.length == 0\r\n )\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n protected resetOnlyDropdown() {\r\n this.nonDefaultDeductibles = [];\r\n this.nonDefaultClauses = [];\r\n this.nonDefaultExtraPerils = [];\r\n this.nonDefaultAdditionalClauses = [];\r\n }\r\n\r\n protected reset() {\r\n this.resultDeductible = [];\r\n this.nonDefaultDeductibles = [];\r\n this.resultClauses = [];\r\n this.nonDefaultClauses = [];\r\n this.resultExtraPerils = [];\r\n this.nonDefaultExtraPerils = [];\r\n this.resultAdditionalClauses = [];\r\n this.nonDefaultAdditionalClauses = [];\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription?.unsubscribe();\r\n this.coverageTypeService.clearSelectedValue();\r\n\r\n this.tabSubscription?.unsubscribe();\r\n this.mfHkTabchangeService.clearMessages();\r\n\r\n super.unsubscribeRxjs();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { cloneDeep } from \"lodash\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport {\r\n ClientEntity,\r\n PreferredDeliveryEntity,\r\n} from \"src/app/models/customer/base/client-entity.model\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\nimport { GooglePlaceDirective } from \"ngx-google-places-autocomplete\";\r\nimport { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHkAddressHelpFormComponent } from \"../mf-hk-address-help-form/mf-hk-address-help-form.component\";\r\n\r\n@Component({\r\n selector: \"mf-hk-preferred-delivery\",\r\n templateUrl: \"./mf-hk-preferred-delivery.component.html\",\r\n styleUrls: [\"./mf-hk-preferred-delivery.component.scss\"],\r\n})\r\nexport class MfHkPreferredDeliveryComponent\r\n extends MfHkBaseComponent\r\n implements OnInit\r\n{\r\n preferredDeliveryMethod: any;\r\n proposal!: MortgageFireHongKongProposal;\r\n //googleSearchAutoCompleteClientInformation: GoogleAddressAutoCompleteManager;\r\n ibgDisabled: boolean = true;\r\n isProcessing: boolean = false;\r\n //timeout = Application.angular_$timeout();\r\n showCorrespondencebtn: boolean = false;\r\n clientData!: PreferredDeliveryEntity;\r\n address!: ClientAddressEntity;\r\n showErrorMessage: boolean = false;\r\n isChangeOfCorrespondenceAddressType: boolean = false;\r\n hasMobileNoError: boolean = false;\r\n hasEmailError: boolean = false;\r\n emailPattern: string = \"\";\r\n readOnlyFields: any[] = [];\r\n addAddress1RO: boolean = true;\r\n addAddress2RO: boolean = true;\r\n addAddress3RO: boolean = true;\r\n addAddress4RO: boolean = true;\r\n addCityRO: boolean = true;\r\n addCountryRO: boolean = true;\r\n addPostcodeRO: boolean = true;\r\n addStateRO: boolean = true;\r\n nationalityList: any[] = [];\r\n countryList: any[] = [];\r\n firstRun: boolean = true;\r\n\r\n isStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n\r\n errorMsgInHtml!: SafeHtml;\r\n\r\n @ViewChild(\"insuredAddress_lotunit\", { static: false })\r\n public insuredAddress_lotunit: any;\r\n\r\n @ViewChild(\"insuredAddress_building\", { static: false })\r\n public insuredAddress_building: any;\r\n\r\n @ViewChild(\"insuredAddress1\", { static: false })\r\n public insuredAddress1: any;\r\n\r\n @ViewChild(\"insuredAddress2\", { static: false })\r\n public insuredAddress2: any;\r\n\r\n @ViewChild(\"insuredAddress3\", { static: false })\r\n public insuredAddress3: any;\r\n\r\n @ViewChild(\"insuredAddress4\", { static: false })\r\n public insuredAddress4: any;\r\n\r\n @ViewChild(\"insuredCity\", { static: false })\r\n public insuredCity: any;\r\n\r\n @ViewChild(\"insuredPostalCode\", { static: false })\r\n public insuredPostalCode: any;\r\n\r\n @ViewChild(\"insuredState\", { static: false })\r\n public insuredState: any;\r\n\r\n @ViewChild(\"clientInformation_autocomplete\")\r\n clientInformation_autocomplete!: GooglePlaceDirective;\r\n\r\n @ViewChild(\"modal_body\")\r\n modal_body!: ElementRef;\r\n\r\n options = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [] }, //no country restriction\r\n } as unknown as Options;\r\n\r\n constructor(\r\n public proposalService: MfHKProposalService,\r\n private clientService: ClientService,\r\n private masterDataService: MasterDataService,\r\n private cdkDialogService: CdkDialogService,\r\n private sanitizer: DomSanitizer,\r\n private notifier: NotifierService\r\n ) {\r\n super();\r\n // this.$state = Application.angular_$state();\r\n // // empty country value to search for all\r\n // this.googleSearchAutoCompleteClientInformation =\r\n // new GoogleAddressAutoCompleteManager('clientInformation_autocomplete', '', this.updateAddressValues);\r\n }\r\n\r\n private dialogOkNotifierSubscription: Subscription = new Subscription();\r\n\r\n override ngOnInit(): void {\r\n this.initialize(); //2023-02-10: init var first\r\n\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n ?.subscribe((response: any) => {\r\n this.preferredDeliveryMethod = cloneDeep(\r\n this.proposalService.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod!.answer\r\n );\r\n let mobile = cloneDeep(\r\n this.proposalService.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod_MobileNo!.answer\r\n );\r\n this.clientData.mobileNumber = mobile;\r\n let email = cloneDeep(\r\n this.proposalService.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod_Email!.answer\r\n );\r\n this.clientData.emailAddress = email;\r\n if (\r\n this.proposalService.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.isAnswered()\r\n ) {\r\n var addressList =\r\n this.proposalService.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer.split(\r\n \"|\"\r\n );\r\n if (addressList.length < 2) {\r\n this.address = cloneDeep(response.address[0]);\r\n } else {\r\n if (addressList[9].includes(\"Hong Kong SAR\")) {\r\n // this.address.addressLine1 = addressList[0];\r\n // this.address.addressLine2 = addressList[1];\r\n // this.address.unitNo = addressList[2];\r\n // this.address.buildingName = addressList[3];\r\n // this.address.city = \"Singapore\";\r\n // this.address.countryISO2 = addressList[4].trim();\r\n // this.address.postCode = addressList[5];\r\n this.address.unitNo = addressList[0];\r\n this.address.buildingName = addressList[1];\r\n this.address.addressLine1 = addressList[2];\r\n this.address.addressLine2 = addressList[3];\r\n this.address.addressLine3 = addressList[4];\r\n this.address.addressLine4 = addressList[5];\r\n this.address.countryISO2 = \"HK\";\r\n } else {\r\n this.address.unitNo = addressList[0];\r\n this.address.buildingName = addressList[1];\r\n this.address.addressLine1 = addressList[2];\r\n this.address.addressLine2 = addressList[3];\r\n this.address.addressLine3 = addressList[4];\r\n this.address.addressLine4 = addressList[5];\r\n //all offset 2 with the addition of addressLine3/4\r\n this.address.postCode = addressList[4 + 2];\r\n this.address.city = addressList[5 + 2];\r\n this.address.stateName = addressList[6 + 2];\r\n this.address.countryISO2 = addressList[7 + 2].trim();\r\n }\r\n }\r\n } else {\r\n this.address = cloneDeep(response.address[0]);\r\n }\r\n });\r\n }\r\n\r\n this.dialogOkNotifierSubscription =\r\n dialogActionNotifier.ok_notifier$.subscribe((event: any) => {\r\n this.updateDeliveryMethod();\r\n });\r\n\r\n //this.initialize();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.unsubscribeRxjs();\r\n this.dialogOkNotifierSubscription.unsubscribe();\r\n }\r\n\r\n private initialize() {\r\n this.proposal = this.proposalService.proposal;\r\n this.nationalityList = new Array();\r\n this.countryList = new Array();\r\n super.subscribeTabLoadRenderer();\r\n super.subscribeTabLoadRenderer();\r\n\r\n this.initializeQuestionSchema();\r\n //todo\r\n //$(document).ready(() => {\r\n this.componentsInitialize();\r\n //});\r\n this.setcorrespondenceflag();\r\n }\r\n\r\n setcorrespondenceflag = (): void => {\r\n this.isChangeOfCorrespondenceAddressType =\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfCorrespondenceAddress;\r\n };\r\n\r\n updateClientEmail() {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n this.clientData.emailAddress = response[\"emailAddress\"];\r\n });\r\n }\r\n }\r\n\r\n updateClientMobile() {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n this.clientData.mobileNumber = cloneDeep(response[\"mobileNumber\"]);\r\n });\r\n }\r\n }\r\n\r\n updateClientAddress() {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n this.address = cloneDeep(response.address[0]);\r\n });\r\n }\r\n }\r\n\r\n updateAll() {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n this.clientData.emailAddress = cloneDeep(response[\"emailAddress\"]);\r\n this.clientData.mobileNumber = cloneDeep(response[\"mobileNumber\"]);\r\n this.address = cloneDeep(response.address[0]);\r\n });\r\n }\r\n }\r\n\r\n emailValidation = (inputId: string): void => {\r\n const re = /\\S+@\\S+\\.\\S+/;\r\n if (!re.test(this.clientData.emailAddress)) {\r\n this.showErrorMessage = true;\r\n this.clientData.emailAddress = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid email address {\r\n let displayText: string = \"Unknown\";\r\n if (inputId != undefined) {\r\n if (inputId.length > 0) {\r\n this.countryList.forEach((i) => {\r\n if (i.value === inputId.trim()) {\r\n displayText = i.key;\r\n }\r\n });\r\n }\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n addressDataIfUnknown = (inputId: any): string => {\r\n if (inputId != undefined) {\r\n if (inputId.length > 0) {\r\n return inputId;\r\n }\r\n if (Number(inputId)) {\r\n return inputId;\r\n }\r\n }\r\n return \"Unknown\";\r\n };\r\n\r\n phoneValidation = (inputId: string): void => {\r\n let errorText: string = \"\";\r\n const inputValue = this.clientData.mobileNumber.trim();\r\n var phoneno = /^\\+?[0-9]+$/;\r\n\r\n if (!inputValue.match(phoneno)) {\r\n errorText = this.getPhoneValidationText(inputId);\r\n this.showErrorMessage = true;\r\n this.hasMobileNoError = true;\r\n this.errorMsgInHtml =\r\n '
Please enter a valid ' +\r\n errorText +\r\n \"
\";\r\n\r\n this.modal_body.nativeElement.scrollIntoView({ behavior: \"smooth\" });\r\n } else {\r\n // this.checkIfPhoneEntered();\r\n this.showErrorMessage = false;\r\n this.hasMobileNoError = false;\r\n this.errorMsgInHtml = \"\";\r\n // angular.element('#' + inputId).closest('.form-group').removeClass('has-error');//todo\r\n }\r\n };\r\n\r\n getPhoneValidationText = (inputId: any): string => {\r\n let errorText: string = \"\";\r\n switch (inputId) {\r\n case \"brokerMobileNo\":\r\n errorText = \"Mobile Number\";\r\n this.clientData.mobileNumber = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n return errorText;\r\n };\r\n\r\n initializeQuestionSchema = () => {\r\n this.clientData = new PreferredDeliveryEntity();\r\n this.clientData.address = [];\r\n this.address = new ClientAddressEntity();\r\n this.clientData.address.push(this.address);\r\n };\r\n\r\n componentsInitialize = () => {\r\n setTimeout(() => {\r\n this.masterDataService.getCountryList().subscribe((response) => {\r\n this.countryList = response;\r\n if (\r\n response.filter((x) => x.key == this.address.countryISO2.trim())\r\n .length > 0\r\n )\r\n this.address.countryISO2 = response\r\n .filter((x) => x.key == this.address.countryISO2)[0]\r\n .value.trim();\r\n });\r\n //todo\r\n // initializing the google auto completer search\r\n //this.googleSearchAutoCompleteClientInformation.InitializeAddressAutoCompleteElement();\r\n }, 500);\r\n };\r\n\r\n updateAddressValues = (\r\n place: { address_components: string | any[] },\r\n componentForm: { [x: string]: string | number },\r\n divId: any\r\n ) => {\r\n this.resetClientAddressForm();\r\n if (Global.isDefined(place.address_components)) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < place.address_components.length; i++) {\r\n const addressType = place.address_components[i].types[0];\r\n //if (componentForm[addressType]) {\r\n //const val = place.address_components[i][componentForm[addressType]];\r\n switch (addressType) {\r\n case \"street_number\":\r\n let val1 = place.address_components[i].long_name;\r\n this.address.addressLine3 = val1;\r\n this.validateReadOnlyAddress(val1, \"addAddress1RO\");\r\n break;\r\n case \"route\":\r\n let val2 = place.address_components[i].long_name;\r\n this.address.addressLine3 += \" \" + val2;\r\n this.validateReadOnlyAddress(val2, \"addAddress2RO\");\r\n break;\r\n case \"locality\":\r\n let val3 = place.address_components[i].long_name;\r\n this.address.city = val3;\r\n this.validateReadOnlyAddress(val3, \"addCityRO\");\r\n break;\r\n case \"postal_code\":\r\n let val4 = place.address_components[i].long_name;\r\n this.address.postCode = val4;\r\n this.validateReadOnlyAddress(val4, \"addPostcodeRO\");\r\n break;\r\n case \"administrative_area_level_1\":\r\n let val5 = place.address_components[i].short_name;\r\n this.address.stateName = val5;\r\n this.validateReadOnlyAddress(val5, \"addStateRO\");\r\n break;\r\n case \"country\":\r\n let val6 = place.address_components[i].short_name;\r\n this.address.countryISO2 = val6.trim();\r\n this.validateReadOnlyAddress(val6, \"addCountryRO\");\r\n this.getIsStateVisible(val6);\r\n break;\r\n default:\r\n break;\r\n }\r\n //}\r\n }\r\n\r\n this.addAddress3RO = false;\r\n this.addAddress4RO = false;\r\n // clearing the search input\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n this.inputReadOnlyAddress();\r\n }\r\n\r\n //this.$scope.$apply();//todo\r\n };\r\n\r\n getIsStateVisible = (value: any) => {\r\n const elementPos = this.countryExcludeState\r\n .map(function (x: any) {\r\n return x;\r\n })\r\n .indexOf(value);\r\n if (elementPos > -1) {\r\n this.isStateVisible = false;\r\n } else {\r\n this.isStateVisible = true;\r\n }\r\n };\r\n\r\n validateReadOnlyAddress = (value: string, inputId: any) => {\r\n if (value !== \"\") {\r\n const index = this.readOnlyFields.indexOf(inputId);\r\n switch (inputId) {\r\n case \"addAddress1RO\":\r\n this.addAddress1RO = false;\r\n break;\r\n case \"addAddress2RO\":\r\n this.addAddress2RO = false;\r\n break;\r\n case \"addCityRO\":\r\n this.addCityRO = false;\r\n break;\r\n case \"addPostcodeRO\":\r\n this.addPostcodeRO = false;\r\n break;\r\n case \"addStateRO\":\r\n this.addStateRO = false;\r\n break;\r\n case \"addCountryRO\":\r\n this.addCountryRO = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (index !== -1) {\r\n this.readOnlyFields.splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n inputReadOnlyAddress = () => {\r\n for (let i = 0; i < this.readOnlyFields.length; i++) {\r\n const inputFieldId = this.readOnlyFields[i];\r\n switch (inputFieldId) {\r\n case \"addAddress1RO\":\r\n this.addAddress1RO = false;\r\n break;\r\n case \"addAddress2RO\":\r\n this.addAddress2RO = false;\r\n break;\r\n case \"addCityRO\":\r\n this.addCityRO = false;\r\n break;\r\n case \"addStateRO\":\r\n this.addStateRO = false;\r\n break;\r\n case \"addPostcodeRO\":\r\n this.addPostcodeRO = false;\r\n break;\r\n case \"addCountryRO\":\r\n this.addCountryRO = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n\r\n resetClientAddressForm = () => {\r\n this.readOnlyFields = [\r\n \"addAddress1RO\",\r\n \"addAddress2RO\",\r\n \"addCityRO\",\r\n \"addPostcodeRO\",\r\n \"addStateRO\",\r\n ];\r\n this.address.buildingName = \"\";\r\n this.address.unitNo = \"\";\r\n this.address.addressLine1 = \"\";\r\n this.address.addressLine2 = \"\";\r\n this.address.addressLine3 = \"\";\r\n this.address.addressLine4 = \"\";\r\n this.address.city = \"\";\r\n this.address.postCode = \"\";\r\n this.address.stateName = \"\";\r\n\r\n this.updateNativeElement(this.insuredAddress_lotunit, \"\");\r\n this.updateNativeElement(this.insuredAddress_building, \"\");\r\n this.updateNativeElement(this.insuredAddress1, \"\");\r\n this.updateNativeElement(this.insuredAddress2, \"\");\r\n this.updateNativeElement(this.insuredAddress3, \"\");\r\n this.updateNativeElement(this.insuredAddress4, \"\");\r\n this.updateNativeElement(this.insuredCity, \"\");\r\n this.updateNativeElement(this.insuredPostalCode, \"\");\r\n this.updateNativeElement(this.insuredState, \"\");\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n };\r\n\r\n updateNativeElement(ele: any, value: string) {\r\n if (ele !== undefined) {\r\n ele.nativeElement.value = value;\r\n }\r\n }\r\n\r\n noAdressIsFilled() {\r\n //HE-693: has to trim\r\n if (\r\n common.isDefined(this.address.addressLine1) &&\r\n this.address.addressLine1.trim() === \"\" &&\r\n common.isDefined(this.address.addressLine2) &&\r\n this.address.addressLine2.trim() === \"\" &&\r\n common.isDefined(this.address.addressLine3) &&\r\n this.address.addressLine3.trim() === \"\" &&\r\n common.isDefined(this.address.addressLine4) &&\r\n this.address.addressLine4.trim() === \"\"\r\n ) {\r\n return true;\r\n } else if (\r\n common.isUndefinedOrNull(this.address.addressLine1) &&\r\n common.isUndefinedOrNull(this.address.addressLine2) &&\r\n common.isUndefinedOrNull(this.address.addressLine3) &&\r\n common.isUndefinedOrNull(this.address.addressLine4)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n updateDeliveryMethod = () => {\r\n this.showErrorMessage = false;\r\n //todo\r\n // const deferred = this.$q.defer();\r\n let allMandatoryField: any[] = [];\r\n\r\n if (this.preferredDeliveryMethod === \"5\") {\r\n allMandatoryField = [\r\n {\r\n id: \"brokerMobileNo\",\r\n label: \"Mobile Number\",\r\n qid: this.clientData.mobileNumber,\r\n },\r\n ];\r\n }\r\n if (this.preferredDeliveryMethod === \"2\") {\r\n allMandatoryField = [\r\n {\r\n id: \"brokerEmail\",\r\n label: \"Email\",\r\n qid: this.clientData.emailAddress,\r\n },\r\n ];\r\n }\r\n if (this.preferredDeliveryMethod === \"1\" && this.noAdressIsFilled()) {\r\n allMandatoryField = [\r\n {\r\n id: \"insuredAddress1\",\r\n label: \"Address Line 1\",\r\n qid: this.address.addressLine1,\r\n },\r\n // {\r\n // id: \"clientCountry\",\r\n // label: \"Country\",\r\n // qid: this.address.countryISO2.trim(),\r\n // },\r\n ];\r\n }\r\n\r\n let errorMessageIndicator: number = 0;\r\n const htmlErrorMessage: string =\r\n '
' +\r\n \" @i.label@ is required.
\";\r\n\r\n const clientAddressData: ClientAddressEntity = new ClientAddressEntity();\r\n clientAddressData.buildingName = this.address.buildingName;\r\n clientAddressData.unitNo = this.address.unitNo;\r\n clientAddressData.addressLine1 = this.address.addressLine1;\r\n clientAddressData.addressLine2 = this.address.addressLine2;\r\n clientAddressData.addressLine3 = this.address.addressLine3;\r\n clientAddressData.addressLine4 = this.address.addressLine4;\r\n clientAddressData.city = this.address.city;\r\n clientAddressData.postCode = this.address.postCode;\r\n clientAddressData.stateName = this.address.stateName;\r\n\r\n clientAddressData.countryISO2 = this.address.countryISO2?.trim();\r\n clientAddressData.contact1 = \"\";\r\n clientAddressData.contact2 = \"\";\r\n\r\n const clientData: PreferredDeliveryEntity = new PreferredDeliveryEntity();\r\n clientData.address = [];\r\n clientData.mobileNumber = this.clientData.mobileNumber;\r\n clientData.emailAddress = this.clientData.emailAddress;\r\n clientData.address.push(clientAddressData);\r\n\r\n if (allMandatoryField.length > 0) {\r\n this.errorMsgInHtml = \"\";\r\n // angular.element('#createNewClient').removeClass('has-error');//todo\r\n for (const i of allMandatoryField) {\r\n //HE-693: has to trim\r\n if (common.isUndefinedOrNull(i.qid) || i.qid.trim().length === 0) {\r\n this.errorMsgInHtml = htmlErrorMessage.replace(\"@i.label@\", i.label);\r\n //todo\r\n // angular.element('#' + i.id).closest('.form-group').addClass('has-error');\r\n errorMessageIndicator++;\r\n this.showErrorMessage = true;\r\n } else {\r\n //todo\r\n //angular.element('#' + i.id).closest('.form-group').removeClass('has-error');\r\n }\r\n }\r\n }\r\n if (clientData.mobileNumber.length == 0) {\r\n this.hasMobileNoError = false;\r\n }\r\n if (clientData.emailAddress.length == 0) {\r\n this.hasEmailError = false;\r\n }\r\n if (\r\n errorMessageIndicator < 1 &&\r\n clientData.mobileNumber != null &&\r\n clientData.mobileNumber != \"\"\r\n ) {\r\n this.phoneValidation(\"brokerMobileNo\");\r\n }\r\n if (\r\n errorMessageIndicator < 1 &&\r\n clientData.emailAddress != null &&\r\n clientData.emailAddress != \"\"\r\n ) {\r\n this.emailValidation(\"brokerEmail\");\r\n }\r\n if (this.preferredDeliveryMethod != \"2\" && this.hasEmailError) {\r\n this.hasEmailError = false;\r\n clientData.emailAddress = \"\";\r\n }\r\n if (this.preferredDeliveryMethod != \"5\" && this.hasMobileNoError) {\r\n this.hasMobileNoError = false;\r\n clientData.mobileNumber = \"\";\r\n }\r\n if (this.preferredDeliveryMethod != \"1\") {\r\n if (\r\n clientAddressData.addressLine1 == null ||\r\n clientAddressData.addressLine1 == \"\" ||\r\n clientAddressData.addressLine1 == \" \"\r\n ) {\r\n if (this.proposalService.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n var address = cloneDeep(response.address[0]);\r\n clientAddressData.buildingName = address.buildingName;\r\n clientAddressData.unitNo = address.unitNo;\r\n clientAddressData.addressLine1 = address.addressLine1;\r\n clientAddressData.addressLine2 = address.addressLine2;\r\n clientAddressData.addressLine3 = address.addressLine3;\r\n clientAddressData.addressLine4 = address.addressLine4;\r\n clientAddressData.city = address.city;\r\n clientAddressData.postCode = address.postCode;\r\n clientAddressData.stateName = address.stateName;\r\n\r\n clientAddressData.countryISO2 = address.countryISO2.trim();\r\n clientAddressData.contact1 = \"\";\r\n clientAddressData.contact2 = \"\";\r\n clientData.address.push(clientAddressData);\r\n });\r\n }\r\n }\r\n }\r\n if (\r\n errorMessageIndicator === 0 &&\r\n !this.hasEmailError &&\r\n !this.hasMobileNoError\r\n ) {\r\n this.showErrorMessage = false;\r\n this.isProcessing = true;\r\n\r\n let responseClientData: PreferredDeliveryEntity;\r\n this.notifier.info(\r\n \"Preferred Delivery is updated.\",\r\n this.baseNotifierAppendTo\r\n );\r\n this.isProcessing = false;\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"preferred-delivery-close\",\r\n value: {\r\n status: \"success\",\r\n data: clientData,\r\n preferredDeliveryMethod: this.preferredDeliveryMethod,\r\n },\r\n });\r\n } else {\r\n this.modal_body.nativeElement.scrollIntoView({ behavior: \"smooth\" });\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"preferred-delivery-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n\r\n // return deferred.promise;\r\n };\r\n\r\n // showClientValidationMessage = (errorType: number) => {\r\n // angular.element('#errorMessage').empty();\r\n // angular.element('#createNewClient').removeClass('has-error');\r\n\r\n // switch (errorType) {\r\n // case EnumSG.ClientErrorType.MandatoryError:\r\n // angular.element('#errorMessage').append('
Please enter all Mandatory fields.
');\r\n // break;\r\n // case EnumSG.ClientErrorType.EmailAddressError:\r\n // angular.element('#errorMessage').append('
Please enter a valid email address
');\r\n // break;\r\n // case EnumSG.ClientErrorType.PhoneNumberError:\r\n // angular.element('#errorMessage').append('
Phone Number is invalid.
');\r\n // break;\r\n // default: break;\r\n // }\r\n\r\n // this.componentsInitialize();\r\n\r\n // }\r\n\r\n openAddressHelp(event: { preventDefault: () => void }): void {\r\n event.preventDefault();\r\n const data = {\r\n // 'proposalModel': this.proposal.proposalModel,\r\n showGeoCode: false, // determine to hide/show geocode\r\n };\r\n\r\n const clientSearchDialogRef = this.cdkDialogService.open(\r\n MfHkAddressHelpFormComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n clientSearchDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n // keyDown = function (evt) {\r\n // /* to disbale the input for date input*/\r\n // evt.preventDefault();\r\n // };\r\n\r\n formatDateToString = (date: any) => {\r\n // const dateSplit = date.split('-');\r\n // const newDate = dateSplit[1] + '-' + dateSplit[0] + '-' + dateSplit[2];\r\n const newDate = date;\r\n // 01, 02, 03, ... 29, 30, 31\r\n const dd =\r\n (new Date(newDate).getDate() < 10 ? \"0\" : \"\") +\r\n new Date(newDate).getDate();\r\n // 01, 02, 03, ... 10, 11, 12\r\n const MM =\r\n (new Date(newDate).getMonth() + 1 < 10 ? \"0\" : \"\") +\r\n (new Date(newDate).getMonth() + 1);\r\n // 1970, 1971, ... 2015, 2016, ...\r\n const yyyy = new Date(newDate).getFullYear();\r\n\r\n // create the format you want\r\n return MM + \"/\" + dd + \"/\" + yyyy;\r\n };\r\n}\r\n","
\r\n
\r\n Please Wait \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

\r\n Please complete all MANDATORY fields :\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Refresh All\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Refresh\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Refresh\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n No Mobile/Email or Opt Out\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Help\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Refresh\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport * as Enum from \"./../../../../../../../framework/enum.shared\";\r\nimport * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { Culture, dateFormatter } from \"src/app/shared/date-formatter\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { proposalServiceNotifier } from \"src/app/models/new-product/notifier/proposal-service-notifier\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHKTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-tab-schema\";\r\nimport { MfHkMessageService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-message.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n@Component({\r\n selector: \"mf-hk-premium-summary\",\r\n templateUrl: \"./mf-hk-premium-summary.component.html\",\r\n styleUrls: [\"./mf-hk-premium-summary.component.scss\"],\r\n})\r\nexport class MfHkPremiumSummaryComponent\r\n extends MfHkBaseComponent\r\n implements OnInit\r\n{\r\n @Input() proposal!: MortgageFireHongKongProposal; //temp using @Input()\r\n\r\n quote!: Array;\r\n coverages!: Array;\r\n premiumDetails: any;\r\n premiumSummary: any;\r\n fireGrossPremium!: number;\r\n fireGST!: number;\r\n fireServiceLevy!: number;\r\n fireTotalCharge!: number;\r\n poiText!: string;\r\n //isCBGProduct!: boolean;\r\n isHaseProduct!: boolean;\r\n containEquipment!: boolean;\r\n isAccepted!: boolean;\r\n isCancellation!: boolean;\r\n underwriterReadOnly: boolean = false;\r\n isCMBProduct!: boolean;\r\n isWPBProduct!: boolean;\r\n isPremiumOverridingAllowed!: boolean;\r\n minPremium!: number;\r\n maxPremium!: number;\r\n minPremiumTax!: number;\r\n maxPremiumTax!: number;\r\n isIncomplete: boolean = false;\r\n isEndorse: boolean = false;\r\n isReferred!: boolean;\r\n isUnderwriter: boolean = false;\r\n isBroker: boolean = false;\r\n private msg_overridePremium_warning: string =\r\n \"Are you sure you wish to Unlock? \" +\r\n \"Once unlocked, user is responsible to manually calculate all open fields. \" +\r\n \"There is no option to relock. Click OK to proceed, else please click Cancel.\";\r\n resetIconIE: any;\r\n hasUpdated!: boolean;\r\n public editedDiv: any = [];\r\n subscription: Subscription;\r\n hideDiscountCode: boolean = true;\r\n\r\n constructor(\r\n public proposalService: MfHKProposalService,\r\n public identityRolesService: IdentityRolesService,\r\n private cdkDialogService: CdkDialogService,\r\n private mfHkMessageService: MfHkMessageService,\r\n public productService: ProductService\r\n ) {\r\n super();\r\n\r\n this.tabId = MortgageFireHKTabSchema.premiumSummary.index.toString();\r\n super.subscribeProposalLoadedNotifier(this.proposalSaved);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n\r\n this.isUnderwriter = this.identityRolesService.isUnderwriter;\r\n this.isBroker = this.identityRolesService.isBroker;\r\n\r\n // subscribe to home component messages\r\n this.subscription = this.mfHkMessageService\r\n .getMessage()\r\n .subscribe((message) => {\r\n if (message) {\r\n this.resetCommission(message);\r\n }\r\n });\r\n }\r\n\r\n override ngOnInit(): void {\r\n this.initialize();\r\n componentHelper.notifyPageLoaded(\r\n \"mf-sg-premium-summary.component\",\r\n this.proposal\r\n );\r\n }\r\n\r\n /*\r\n Checked (Yes)\tWhen Gross Premium can be edited, the commission and rate should not be edited\r\n not checked(No)\tPremium Rate and Commission amount Can be edited and Gross premium cannot be edited\r\n */\r\n resetCommission(v: boolean) {\r\n const productFactory = this.productService.getHKProductFactory(\r\n this.proposal.productType\r\n );\r\n\r\n const can_toggle_manualUw = productFactory\r\n .premiumSummary()\r\n .Can_toggle_manualUw(\r\n this.identityRolesService,\r\n this.proposal!,\r\n this.proposalService\r\n );\r\n\r\n //edit mode only can update readOnly\r\n if (can_toggle_manualUw) {\r\n this.toggle_manualUw();\r\n }\r\n\r\n //reset if ManualUW changes\r\n /* has to use the autoCorrect option to enforce the min-max range; (especially if not lost focus)\r\n but this will cause the kendo-numerictextbox default to empty since it's not on min-max range,\r\n hence use final validation rule at: src\\app\\models\\new-product\\sme\\mortgage-fire\\hong-kong\\base\\mf-hk-field-validation.manager.ts\r\n https://github.com/telerik/kendo-angular/issues/1910\r\n */\r\n this.minPremium = this.getMinPremium();\r\n this.maxPremium = this.getMaxPremium();\r\n }\r\n\r\n toggle_manualUw() {\r\n const manual_uw = this.compareQuestionAnswer(\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!\r\n );\r\n\r\n if (manual_uw) {\r\n // this.proposal!.qsPremiumSummary.qs_master_brokerCommission.readOnly =\r\n // true;\r\n this.proposal!.qsPremiumSummary.qs_master_brokerCommission.required =\r\n false;\r\n this.proposal!.qsPremiumSummary.qs_master_techRate.readOnly = true;\r\n this.proposal!.qsPremiumSummary.qs_master_techRate.required = false;\r\n //user could have choose non-manual-uw, save, then change to manual-uw; hence need to reset answer\r\n this.proposal!.qsPremiumSummary.qs_master_techRate.clearAnswer();\r\n } else {\r\n // this.proposal!.qsPremiumSummary.qs_master_brokerCommission.readOnly =\r\n // false;\r\n this.proposal!.qsPremiumSummary.qs_master_brokerCommission.required =\r\n false;\r\n if (\r\n this.proposal.transType === Enum.TransType.END || //HE-256\r\n this.proposal.transType === Enum.TransType.CAN\r\n ) {\r\n this.proposal!.qsPremiumSummary.qs_master_techRate.readOnly = true;\r\n } else {\r\n this.proposal!.qsPremiumSummary.qs_master_techRate.readOnly = false;\r\n }\r\n\r\n //this.proposal!.qsPremiumSummary.qs_master_techRate.required = false;\r\n }\r\n }\r\n\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return (\r\n ques!.answer == 1 || ques!.answer === \"True\" || ques!.answer === true\r\n );\r\n }\r\n\r\n canAnswerQuestion(ques: QuestionEntity) {\r\n return (\r\n this.compareQuestionAnswer(ques) &&\r\n this.identityRolesService.IsHASEUser &&\r\n (this.isCMBProduct || (this.isWPBProduct && this.isUnderwriter)) //HE-28\r\n );\r\n }\r\n\r\n canEditPremium(ques: QuestionEntity) {\r\n return (\r\n this.canAnswerQuestion(ques) &&\r\n this.proposalService.isFinancialEndorsementOrNbOrCan()\r\n );\r\n }\r\n \r\n private answerChanged = (kv: KeyValue) => {\r\n const key = kv.key;\r\n const question = kv.value;\r\n switch (key) {\r\n case this.proposal.qsPremiumSummary.qs_master_manualReferral.key:\r\n this.qs_master_manualReferToUw_onChange();\r\n break;\r\n case this.proposal.qsMaster.qs_machinery_equipment!.key:\r\n this.proposalSaved(new KeyValue(\"\", this.proposal));\r\n break;\r\n case this.proposal.qsPremiumSummary.qs_master_brokerCommission?.key:\r\n case this.proposal.qsMaster.qs_master_manualUnderwritting?.key:\r\n case this.proposal.qsMaster.qs_otherinfo_InsuranceCompany?.key:\r\n this.proposal.checkDiscountEligibility(key);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n \r\n private proposalSaved = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireHongKongProposal;\r\n // reset the underwrite read only flag\r\n\r\n this.underwriterReadOnly = false;\r\n this.isAccepted =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Accepted\r\n ? true\r\n : false;\r\n this.isCancellation =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Cancelled\r\n ? true\r\n : false;\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n\r\n if (this.isAccepted || this.isCancellation) {\r\n this.underwriterReadOnly = true;\r\n }\r\n\r\n /** DBS CR\r\n * To set the Gross Premium and Premium Rate fields under ‘Premium Summary’\r\n * page of IBG products in ePlacement to be editable for the non-standard cases to be manually keyed in ePlacement.\r\n */\r\n this.isPremiumOverridingAllowed =\r\n this.identityRolesService.IsHASEUser &&\r\n !this.proposal.refreshedProposalEntity.proposalReadOnly &&\r\n this.proposal.endorsementType != 20;\r\n\r\n this.mfHkMessageService.sendMessage(\"true\"); //reset Commission editability\r\n\r\n this.quote = this.proposal.refreshedProposalEntity.quotes!;\r\n\r\n if (Global.isDefined(this.quote) && this.quote.length > 0) {\r\n // CBG only contains fire risk\r\n this.coverages = this.quote[0].coverages;\r\n if (this.coverages.length > 0) {\r\n this.containEquipment = this.checkEquipmentCoverage();\r\n this.premiumDetails = this.coverages[0].premiumDetails;\r\n this.premiumSummary = this.quote[0].premiumSummary;\r\n this.proposal.qsPremiumSummary.qs_master_commission.answer =\r\n this.premiumSummary.commission;\r\n this.proposal.qsPremiumSummary.qs_master_commissionGst.answer =\r\n this.premiumSummary.commissionTax; // commission on gst\r\n this.fireGrossPremium = this.premiumSummary.premium;\r\n this.fireGST = this.premiumSummary.premiumTax;\r\n this.fireTotalCharge = this.premiumSummary.totalPremium;\r\n this.fireServiceLevy = this.premiumSummary.fireServiceLevy;\r\n }\r\n }\r\n\r\n this.getPOIText();\r\n\r\n this.minPremium = this.getMinPremium();\r\n this.maxPremium = this.getMaxPremium();\r\n\r\n switch (this.proposal.transType) {\r\n case Enum.TransType.END:\r\n this.isEndorse = true;\r\n break;\r\n default:\r\n }\r\n };\r\n\r\n getMinPremium() {\r\n const productFactory = this.productService.getHKProductFactory(\r\n this.proposal.productType\r\n );\r\n\r\n return productFactory.premiumSummary().getMinPremium(this.proposal);\r\n }\r\n\r\n getMaxPremium() {\r\n if (\r\n //this.isCMBProduct && //HE-28\r\n this.isManualUW()\r\n ) {\r\n return MortgageFireHongKongFieldValidationManager.maxPremium;\r\n } else {\r\n return 100000000;\r\n }\r\n }\r\n\r\n\r\n getIndex = (index: number) => {\r\n return index < 1 ? 0 : index;\r\n };\r\n\r\n private checkEquipmentCoverage = () => {\r\n let isEquipmentCov: boolean = false;\r\n this.coverages.forEach((cov) => {\r\n if (\r\n cov.coverageProductMappingId !== \"f2e78506-3774-4c7d-92d7-c628d50c31e9\"\r\n ) {\r\n isEquipmentCov = true;\r\n }\r\n });\r\n\r\n return isEquipmentCov;\r\n };\r\n\r\n //HE-354: self-autoCorrect, not using built-in autoCorrect\r\n public autoCorrect(data: any): void {\r\n if (data < this.minPremium) {\r\n data = this.minPremium;\r\n }\r\n\r\n if (data > this.maxPremium) {\r\n data = this.maxPremium;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n updatingHasePremium(data: any, field: any) {\r\n data = Global.isDefined(data) ? data : 0;\r\n\r\n if (Global.isDefined(data)) {\r\n if (Global.isDefined(this.quote) && this.quote.length > 0) {\r\n if (Global.isDefined(this.quote[0])) {\r\n if (Global.isDefined(this.quote[0].premiumSummary)) {\r\n if (field === \"fireGrossPremium\") {\r\n this.premiumSummary.premium = this.autoCorrect(data);\r\n\r\n this.fireGrossPremium = this.totalToDIsplay(\r\n data,\r\n \"fireGrossPremium\",\r\n this.maxPremium,\r\n this.minPremium\r\n );\r\n }\r\n // if (field === \"fireGST\") {\r\n // this.premiumSummary.premiumTax = data;\r\n // this.fireGST = this.totalToDIsplay(\r\n // data,\r\n // \"fireGST\",\r\n // this.maxPremiumTax,\r\n // this.minPremiumTax\r\n // );\r\n // }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private totalToDIsplay = (\r\n data: any,\r\n field: any,\r\n maxAmount: any,\r\n minAmount: any\r\n ): number => {\r\n data = Global.isDefined(data) ? data : 0;\r\n let amount: any = 0;\r\n if (Global.isDefined(data)) {\r\n if (data > minAmount) {\r\n if (data > maxAmount) {\r\n amount = maxAmount;\r\n } else {\r\n amount = data;\r\n }\r\n } else {\r\n amount = minAmount;\r\n }\r\n }\r\n return amount;\r\n };\r\n\r\n private qs_master_manualReferToUw_onChange() {\r\n this.proposalService.fieldValidationManager.setManualReferralReasonRequires();\r\n this.proposalService.businessRulesManager.validateManualReferral();\r\n\r\n // Clear manual refer reason details if select 'No'\r\n if (\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral.readAnswerAsNumeric() ===\r\n Enum.TrueFalseQuestionAnswer.No\r\n ) {\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.clearAnswer();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription?.unsubscribe();\r\n\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n private initialize() {\r\n this.proposal = this.proposalService.proposal;\r\n super.subscribeTabLoadRenderer();\r\n this.premiumDetailsCommissionValue();\r\n\r\n this.isWPBProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSWPB\r\n ? true\r\n : false;\r\n this.isCMBProduct =\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSCMB\r\n ? true\r\n : false;\r\n\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n\r\n this.hideDiscountCode = \r\n this.isWPBProduct === true\r\n ? false \r\n : true;\r\n }\r\n\r\n premiumDetailsCommissionValue = (): void => {\r\n if (this.proposal) {\r\n switch (this.proposal.productType) {\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n // this.proposal.qsPremiumSummary.qs_master_brokerCommission.answer = 25;\r\n // break;\r\n default:\r\n this.proposal.qsPremiumSummary.qs_master_brokerCommission.answer = 36.4;\r\n //DBSEP-6364: if not manualUW, show as it is, which is 'unknown'\r\n if (this.isManualUW()) {\r\n this.proposal.qsPremiumSummary.qs_master_techRate.answer = 0;\r\n }\r\n }\r\n }\r\n };\r\n\r\n isManualUW() {\r\n return (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\" ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n );\r\n }\r\n\r\n getPOIText = () => {\r\n const poiStartDate = this.dateFormatting(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n const poiEndDate = this.dateFormatting(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n\r\n const poiText = \"Period From \" + poiStartDate + \" To \" + poiEndDate;\r\n\r\n this.poiText = poiText;\r\n };\r\n\r\n dateFormatting = (value: Date) => {\r\n return dateFormatter.format(value, Culture.enSg);\r\n };\r\n\r\n public allowPremiumToEdit = (): void => {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: \"\",\r\n message: this.msg_overridePremium_warning,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForPremiumOveride(result);\r\n }\r\n });\r\n };\r\n\r\n private confirmationModalCloseForPremiumOveride = (result: any): void => {\r\n if (result.status == \"yes\") {\r\n this.proposalService.proposal.auxiliary[\"isPremiumManualOverridden\"] =\r\n true;\r\n this.isEndorse = true;\r\n if (this.identityRolesService.isOperationUnderwriter) {\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer = true;\r\n setTimeout(() => {\r\n proposalServiceNotifier.saved_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n }, 1000);\r\n }\r\n }\r\n };\r\n\r\n updatingPremiumDetails = (\r\n coverageId: string,\r\n val: string,\r\n sectionType: any\r\n ): void => {\r\n const premiumData = this.proposal.refreshedProposalEntity.quotes!;\r\n const value: number = val ? parseFloat(val) : 0;\r\n\r\n if (premiumData.length > 0 && Global.isDefined(value)) {\r\n premiumData[0].premiumSummary.rate = 0;\r\n premiumData[0].premiumSummary.sumInsured = 0;\r\n premiumData[0].premiumSummary.premium = 0;\r\n premiumData[0].premiumSummary.premiumTax = 0;\r\n premiumData[0].premiumSummary.totalPremium = 0;\r\n premiumData[0].coverages?.forEach((coverage) => {\r\n premiumData[0].premiumSummary.rate =\r\n premiumData[0].premiumSummary.rate! + coverage!.premiumDetails!.rate!;\r\n premiumData[0].premiumSummary.sumInsured =\r\n premiumData[0]!.premiumSummary.sumInsured! +\r\n coverage.premiumDetails!.sumInsured!;\r\n premiumData[0].premiumSummary.premium =\r\n premiumData[0].premiumSummary.premium +\r\n coverage.premiumDetails!.premium!;\r\n premiumData[0].premiumSummary.premiumTax =\r\n premiumData[0].premiumSummary.premiumTax! +\r\n coverage.premiumDetails!.premiumTax!;\r\n premiumData[0].premiumSummary.totalPremium =\r\n premiumData[0].premiumSummary.totalPremium +\r\n coverage.premiumDetails!.totalPremium;\r\n\r\n if (coverage.coverageProductMappingId === coverageId) {\r\n let id: string = sectionType + \"_\" + coverageId;\r\n switch (sectionType) {\r\n case \"rate\":\r\n this.editedDiv[id] = true;\r\n coverage.premiumDetails!.rate = parseFloat(value.toFixed(4));\r\n break;\r\n case \"sumInsured\":\r\n this.editedDiv[id] = true;\r\n coverage.premiumDetails!.sumInsured = parseFloat(\r\n value.toFixed(2)\r\n );\r\n break;\r\n case \"premium\":\r\n this.editedDiv[id] = true;\r\n coverage.premiumDetails!.premium = parseFloat(value.toFixed(2));\r\n coverage.premiumDetails!.premiumOverridden = parseFloat(\r\n value.toFixed(2)\r\n );\r\n break;\r\n case \"premiumTax\":\r\n this.editedDiv[id] = true;\r\n coverage.premiumDetails!.premiumTax = parseFloat(\r\n value.toFixed(2)\r\n );\r\n break;\r\n case \"totalPremium\":\r\n this.editedDiv[id] = true;\r\n coverage.premiumDetails!.totalPremium = parseFloat(\r\n value.toFixed(2)\r\n );\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n public resetPremiumDetails = (coverageId: string, sectionType: any): void => {\r\n const premiumData = this.proposal.refreshedProposalEntity.quotes!;\r\n if (premiumData.length > 0) {\r\n premiumData[0].premiumSummary.rate = 0;\r\n premiumData[0].premiumSummary.sumInsured = 0;\r\n premiumData[0].premiumSummary.premium = 0;\r\n premiumData[0].premiumSummary.premiumTax = 0;\r\n premiumData[0].coverages?.forEach((coverage) => {\r\n premiumData[0].premiumSummary.sumInsured =\r\n premiumData[0].premiumSummary.sumInsured! +\r\n coverage.premiumDetails!.sumInsured!;\r\n premiumData[0].premiumSummary.premium =\r\n premiumData[0].premiumSummary.premium +\r\n coverage.premiumDetails!.premium;\r\n premiumData[0].premiumSummary.premiumTax =\r\n premiumData[0].premiumSummary.premiumTax! +\r\n coverage.premiumDetails!.premiumTax!;\r\n premiumData[0].premiumSummary.rate =\r\n premiumData[0].premiumSummary.totalPremium +\r\n coverage.premiumDetails!.totalPremium;\r\n\r\n if (coverage.coverageProductMappingId === coverageId) {\r\n let id: string = sectionType + \"_\" + coverageId;\r\n switch (sectionType) {\r\n case \"rate\":\r\n premiumData[0].premiumSummary.rate =\r\n premiumData[0].premiumSummary.rate -\r\n coverage.premiumDetails!.rate!;\r\n if (coverage.premiumDetails!.rate !== 0) {\r\n this.editedDiv[id] = true;\r\n }\r\n coverage.premiumDetails!.rate = 0;\r\n break;\r\n case \"sumInsured\":\r\n premiumData[0].premiumSummary.sumInsured =\r\n premiumData[0].premiumSummary.sumInsured -\r\n coverage.premiumDetails!.sumInsured!;\r\n if (coverage.premiumDetails!.sumInsured !== 0) {\r\n this.editedDiv[id] = true;\r\n }\r\n coverage.premiumDetails!.sumInsured = 0;\r\n break;\r\n case \"premium\":\r\n premiumData[0].premiumSummary.premium =\r\n premiumData[0].premiumSummary.premium -\r\n coverage.premiumDetails!.premium;\r\n if (coverage.premiumDetails!.premium !== 0) {\r\n this.editedDiv[id] = true;\r\n }\r\n coverage.premiumDetails!.premium = 0;\r\n break;\r\n case \"premiumTax\":\r\n premiumData[0].premiumSummary.premiumTax =\r\n premiumData[0].premiumSummary.premiumTax -\r\n coverage.premiumDetails!.premiumTax!;\r\n if (coverage.premiumDetails!.premiumTax !== 0) {\r\n this.editedDiv[id] = true;\r\n }\r\n coverage.premiumDetails!.premiumTax = 0;\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Coverage\r\n \r\n Gross Premium\r\n Premium Levy\r\n Total Charge\r\n \r\n 0)\">\r\n \r\n
\r\n
\r\n No data found.\r\n
\r\n
\r\n \r\n \r\n \r\n 0\">\r\n \r\n Property Fire\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Property Fire\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n all amounts in HKD unless otherwise specified.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { pageLifeCycleNotifier } from \"src/app/models/new-product/notifier/page-life-cycle-notifier\";\r\nimport { MortgageFireHKTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/schemas/mf-hk-tab-schema\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHkBaseComponent } from \"../mf-hk-base.component\";\r\nimport { MfHkTabchangeService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-tabchange.service\";\r\nimport * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\n\r\nexport class TabModel {\r\n constructor(\r\n public index: number,\r\n public displayName: string,\r\n public visible: boolean\r\n ) {}\r\n}\r\n\r\n@Component({\r\n selector: \"mf-hk-tabs\",\r\n templateUrl: \"./mf-hk-tabs.component.html\",\r\n styleUrls: [\"./mf-hk-tabs.component.scss\"],\r\n})\r\nexport class MfHkTabsComponent extends MfHkBaseComponent {\r\n constructor(private mfHkTabchangeService: MfHkTabchangeService) {\r\n super();\r\n }\r\n pageLoaded: boolean = false;\r\n\r\n master!: TabModel;\r\n locations!: TabModel;\r\n businessInterruption!: TabModel;\r\n premiumSummary!: TabModel;\r\n clausesAndDeductibles!: TabModel;\r\n money!: TabModel;\r\n // tabStrip: kendo.ui.TabStrip;\r\n tab_request_notifier_subscriptions!: Subscription;\r\n\r\n @Input() proposal!: MortgageFireHongKongProposal; //temp using @Input()\r\n\r\n override ngOnInit(): void {\r\n this.initialize();\r\n\r\n this.tab_request_notifier_subscriptions =\r\n pageLifeCycleNotifier.tab_request_notifier$.subscribe(\r\n this.tabRequestNotifier\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAllRxjs();\r\n }\r\n\r\n private initialize() {\r\n this.pageLoaded = true;\r\n super.subscribePageLoadedNotifier(this.pageLoadedNotifier);\r\n super.subscribeProposalLoadedNotifier(this.pageLoadedNotifier);\r\n\r\n this.master = new TabModel(\r\n MortgageFireHKTabSchema.master.index,\r\n MortgageFireHKTabSchema.master.displayText,\r\n true\r\n );\r\n\r\n this.locations = new TabModel(\r\n MortgageFireHKTabSchema.locations.index,\r\n MortgageFireHKTabSchema.locations.displayText,\r\n true\r\n );\r\n\r\n this.premiumSummary = new TabModel(\r\n MortgageFireHKTabSchema.premiumSummary.index,\r\n MortgageFireHKTabSchema.premiumSummary.displayText,\r\n true\r\n );\r\n\r\n this.businessInterruption = new TabModel(\r\n MortgageFireHKTabSchema.businessInterruption.index,\r\n MortgageFireHKTabSchema.businessInterruption.displayText,\r\n true\r\n );\r\n\r\n this.money = new TabModel(\r\n MortgageFireHKTabSchema.money.index,\r\n MortgageFireHKTabSchema.money.displayText,\r\n true\r\n );\r\n\r\n this.clausesAndDeductibles = new TabModel(\r\n MortgageFireHKTabSchema.clausesAndDeductibles.index,\r\n MortgageFireHKTabSchema.clausesAndDeductibles.displayText,\r\n this.proposal.productType === EnumHK.MortgageFireHKProduct.HSCMB\r\n ? true\r\n : false\r\n );\r\n }\r\n\r\n private tabRequestNotifier = (event: KeyValue) => {\r\n const tabId = parseInt(event.key, 10);\r\n this.select(tabId);\r\n const element: any = document.getElementById(event.value);\r\n const offset = element.getBoundingClientRect().top - 100;\r\n window.scrollTo({ top: offset, left: 0, behavior: \"smooth\" });\r\n };\r\n\r\n /** Method to be invoke upon page loaded successfully */\r\n private pageLoadedNotifier = (response: any) => {\r\n let event = response as KeyValue;\r\n this.proposal = event.value;\r\n this.pageLoaded = true;\r\n //this.tabStrip = $('#tabstrip').kendoTabStrip().data('kendoTabStrip');//todo: check if needed\r\n this.autoSelect();\r\n };\r\n\r\n unsubscribeAllRxjs() {\r\n super.unsubscribeRxjs();\r\n this.tab_request_notifier_subscriptions?.unsubscribe();\r\n }\r\n\r\n autoSelect() {\r\n switch (this.proposal.transType) {\r\n default: //this.onTabSelect(this.master.index);\r\n // default to master tab\r\n this.click(this.master.index);\r\n break;\r\n }\r\n }\r\n\r\n public onTabSelect(e: SelectEvent) {\r\n //this.tabStrip.select(tabIndex);//todo: check if needed\r\n this.click(e.index);\r\n this.mfHkTabchangeService.emitNumber(e.index);\r\n }\r\n\r\n click(tabIndex: number) {\r\n pageLifeCycleNotifier.tab_load_notifier$.next(\r\n new KeyValue(\r\n tabIndex.toString(),\r\n this.proposal\r\n )\r\n );\r\n }\r\n\r\n select(tabIndex: number) {\r\n // this.tabStrip.selectTab(tabIndex);\r\n this.click(tabIndex);\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n","import * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as Enums from \"./../../../../../../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"src/app/framework/interface.product\";\r\nimport { Component } from \"@angular/core\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { MfSgBaseComponent } from \"../mf-sg-base.component\";\r\nimport { ProposalAction } from \"./../../../../../../../models/new-product/base/proposal-action.model\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { ProposalAvailableActionHelperService } from \"src/app/services/new-product/base/utils/proposal-available-action-helper.service\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { Echo } from \"src/app/models/new-product/base/echo.model\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { buttonNotifier } from \"src/app/components/shared/notifier/button-notifier\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MdProductSelectionDialogComponent } from \"src/app/components/shared/partials/md-product-selection-dialog/md-product-selection-dialog.component\";\r\nimport { MfContactUsFormComponent } from \"src/app/components/shared/products/mf-contact-us-form/mf-contact-us-form.component\";\r\nimport { MessageForumComponent } from \"src/app/components/product/messageBoard/message-forum/message-forum.component\";\r\nimport { MdConfirmationMessageWithReasonComponent } from \"src/app/components/shared/partials/md-confirmation-message-with-reason/md-confirmation-message-with-reason.component\";\r\nimport { MdConfirmationMessageV2Component } from \"src/app/components/shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { MdConfirmationMessageV4Component } from \"src/app/components/shared/partials/md-confirmation-message-v4/md-confirmation-message-v4.component\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\n\r\n@Component({\r\n selector: \"mf-sg-button-panel\",\r\n templateUrl: \"./mf-sg-button-panel.component.html\",\r\n styleUrls: [\"./mf-sg-button-panel.component.scss\"],\r\n})\r\nexport class MfSgButtonPanelComponent extends MfSgBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireSingaporeProposal;\r\n actions!: ProposalAction;\r\n showMessageBoard: boolean = false;\r\n private _defaultGuid: GUID = new GUID(\"00000000-0000-0000-0000-000000000000\");\r\n isIncomplete: boolean = false;\r\n isReferred: boolean = false;\r\n isGeneralOrSIEndorsed: boolean = false;\r\n isIBGProduct: boolean = false;\r\n isCITIProduct: boolean = false;\r\n hideActionsCommandsByIBG: boolean = false;\r\n isLapsed: boolean = false;\r\n isRefUnderwriter: boolean = false;\r\n isIBGReferred: boolean = false; //added to check ibg referred case\r\n showCorrespondencebtn: boolean = false;\r\n // added as a part of Renewal Assessments\r\n showRenewalAssessment: boolean = false;\r\n renewalAssessmentMessage: string = \"\";\r\n showRenewalFailure: boolean = false;\r\n hideActionsCommandsForCSCBGSG: boolean = false;\r\n hideActionsCommandsForDBSUsers: boolean = false;\r\n //2022-08-22 dagoh0: APACDM-363 - flag added for CBG product change of plan type\r\n isUpgradable: boolean = false;\r\n private msg_exitWarning: string =\r\n \"Are you sure you wish to return to the proposal listing screen? Your changes will not be saved.\";\r\n private msg_sendToCheckerWarning: string =\r\n \"Are you sure you wish to submit the proposal for the checker to review?\";\r\n private msg_approveWarning: string =\r\n \"Are you sure you want to approve this submission?\";\r\n private msg_IBG_approveWarning: string =\r\n \"Referral transaction will be approved with this action, Do you wish to proceed?\";\r\n private msg_declineWarning: string =\r\n \"Are you sure you wish to decline this submission?\";\r\n private msg_IBG_declineWarning: string =\r\n \"Referral transaction will be declined with this action, Do you wish to proceed?\";\r\n private msg_renewWarning: string =\r\n \"Are you sure you wish to renew this submission?\";\r\n private msg_redundantWarning: string =\r\n \"Please confirm if you wish to delete / abandon the current transaction. Click OK to proceed, else please click Cancel.\";\r\n private msg_returnToReviseWarning: string =\r\n \"Are you sure you wish to return this submission to maker for revise?\" +\r\n \" If yes, please provide reason.\";\r\n private msg_checkedWarning: string =\r\n \"Are you sure you wish to mark this submission as checked?\";\r\n private msg_ibgRefUnderwriterWarning: string =\r\n \"Transaction will be referred to UW for review and aprroval , Do you wish to proceed?\";\r\n private msg_bindPolicyWarning: string =\r\n \"Are you sure you wish to bind this Policy?\";\r\n private msg_bindCBGPolicyWarning: string =\r\n \"Are you sure you wish to bind this Policy with Gross Premium or GST 0 value?\";\r\n private msg_endorseWarning: string =\r\n \"Are you sure you wish to Endorse this Policy?\";\r\n private msg_loanRedemptionWarning: string =\r\n \"Are you sure you wish to Fully Redeem this Policy?\";\r\n private msg_cancelWarning: string =\r\n \"Are you sure you wish to Terminate this Policy?\";\r\n private msg_copyWarning: string =\r\n \"Are you sure you wish to Copy this Proposal?\";\r\n private msg_editWarning: string =\r\n \"Are you sure you wish to Edit this Policy?\";\r\n private msg_cancellationAdjustmentWarning: string =\r\n \"Are you sure you wish to perform Cancellation Adjustment?\";\r\n private msg_changeOfPOIWarning: string =\r\n \"Are you sure you wish to raise Change Of POI endorsement for this Policy?\";\r\n private msg_changeOfSIWarning: string =\r\n \"Are you sure you wish to raise Change Of Sum Insured endorsement for this Policy?\";\r\n private msg_changeOfCorrAddressWarning: string =\r\n \"Are you sure you wish to raise Change Of Correspondence Address for this Policy?\";\r\n private msg_changeOfClientInfo: string =\r\n \"Are you sure you wish to raise Change Of Client Information for this Policy?\";\r\n private msg_changeOfAdditionalInsuredWarning: string =\r\n \"Are you sure you wish to raise Change Of Additional Insured Details endorsement for this Policy?\";\r\n private clickedButtonId!: number;\r\n private msg_warningMessageForLST: string =\r\n \"Cannot Bind Policy.
Sum Insured is greater than the allowed limit.\";\r\n private msg_preferenceDelivery: string =\r\n \"Are you sure you wish to raise Change Of Preference Delivery for this Policy?\";\r\n //2022-08-24 dagoh0: APACDM-363 - Change of Plan Type Message\r\n private msg_changeOfPlanType: string =\r\n \"Are you sure you wish to change the policy's plan type?\";\r\n\r\n productFactory!: AbstractProductFactory;\r\n\r\n constructor(\r\n private proposalService: MfSgProposalService,\r\n public identityRolesService: IdentityRolesService,\r\n private clientService: ClientService,\r\n private proposalAvailableActionHelper: ProposalAvailableActionHelperService,\r\n private router: Router,\r\n private cdkDialogService: CdkDialogService,\r\n public productService: ProductService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n super.subscribePageLoadedNotifier((event) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n this.isCITIProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n /*message board check*/\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault\r\n ? false\r\n : true;\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isIBGReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.pageLoaded = true;\r\n this.showCorrespondencebtn = this.getcorrespondenceflag();\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n //There will be scenario that CBG product qs_master_planType might be null or empty\r\n this.isUpgradable = this.CanUpgrade();\r\n });\r\n }\r\n\r\n CanChecked() {\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanChecked(this.identityRolesService, this.proposal);\r\n }\r\n\r\n CanBindPolicy() {\r\n return this.productFactory\r\n .buttonPanel()\r\n .CanBindPolicy(this.identityRolesService, this.hideActionsCommandsByIBG);\r\n }\r\n\r\n //#region migrate from old angularjs\r\n monthDiff(\r\n d1: { getFullYear: () => number; getMonth: () => number },\r\n d2: Date\r\n ) {\r\n var months;\r\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\r\n months -= d1.getMonth();\r\n months += d2.getMonth();\r\n return months;\r\n }\r\n\r\n getcorrespondenceflag = (): boolean => {\r\n var effectivedate = this.proposal!.qsMaster.qs_master_effectiveDate!.answer;\r\n var currentDate = new Date();\r\n var month = this.monthDiff(effectivedate, currentDate);\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.proposal.openItems != undefined &&\r\n this.proposal.openItems.length > 0 &&\r\n month >= -6 &&\r\n month <= 6\r\n ) {\r\n if (\r\n this.proposal.openItems[0].Status == 4 ||\r\n this.proposal.openItems[0].Status == 13\r\n ) {\r\n if (\r\n this.proposal.transType == 3 &&\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Accepted &&\r\n this.proposal.pendingTransaction == null\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private answerChanged = (kv: KeyValue) => {\r\n const key = kv.key;\r\n const question = kv.value;\r\n switch (key) {\r\n case this.proposal!.qsMaster.qs_master_effectiveDate!.key:\r\n this.qs_master_effectiveDate_onChange();\r\n break;\r\n }\r\n //DBSEP-2136\r\n if (this.isIBGProduct && this.identityRolesService.isOperationUnderwriter)\r\n this.SetIBGReferredToUnderwriterReferRule(key);\r\n };\r\n\r\n initialize() {\r\n this.actions = new ProposalAction();\r\n this.hideAllButton();\r\n }\r\n\r\n private qs_master_effectiveDate_onChange = (): void => {\r\n if (common.isDefined(this.proposal.proposalStatus)) {\r\n if (\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred) &&\r\n ((this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption) ||\r\n this.proposal.transType === Enums.TransType.CAN)\r\n ) {\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.hideAllButton();\r\n if (!this.isCITIProduct) {\r\n this.setButtonVisibility(actionsAllowed);\r\n } else {\r\n this.setCitiButtonVisibility(actionsAllowed);\r\n }\r\n }\r\n }\r\n };\r\n\r\n SetIBGReferredToUnderwriterButtonVisibility = (): void => {\r\n if (this.proposalService.businessRulesManager.echos.length > 0) {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = !this.isRefUnderwriter;\r\n this.proposal.referralMessageRequires = true;\r\n } else {\r\n this.isRefUnderwriter = false;\r\n if (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete)\r\n this.actions.submit.visible = !this.isRefUnderwriter;\r\n }\r\n };\r\n\r\n SetIBGReferredToUnderwriterReferRule = (key: string): void => {\r\n //this.isRefUnderwriter = false;\r\n switch (key) {\r\n case this.proposal!.qsMaster.qs_master_poi_startDate!.key:\r\n this.proposalService.businessRulesManager.validatePOIBackDated();\r\n this.SetIBGReferredToUnderwriterButtonVisibility();\r\n this.proposal.referralMessageRequires = true;\r\n break;\r\n case this.proposal!.qsMaster.qs_master_effectiveDate!.key:\r\n this.proposalService.businessRulesManager.validateCancellationBackdating();\r\n this.SetIBGReferredToUnderwriterButtonVisibility();\r\n this.proposal.referralMessageRequires = true;\r\n break;\r\n case this.proposal.qsMaster.qs_master_manualUnderwritting!.key:\r\n this.proposalService.businessRulesManager.validateManualUnderwritting();\r\n this.SetIBGReferredToUnderwriterButtonVisibility();\r\n this.proposal.referralMessageRequires = true;\r\n break;\r\n case this.proposal.qsMaster.qs_fire_replacement!.key:\r\n this.proposalService.businessRulesManager.validateIBGSI();\r\n this.SetIBGReferredToUnderwriterButtonVisibility();\r\n this.proposal.referralMessageRequires = true;\r\n break;\r\n case this.proposal.qsMaster.qs_machinery_equipment!.key:\r\n this.proposalService.businessRulesManager.validateIBGMACSI();\r\n setTimeout(() => {\r\n this.SetIBGReferredToUnderwriterButtonVisibility();\r\n this.proposal.referralMessageRequires = true;\r\n }, 200);\r\n break;\r\n }\r\n };\r\n\r\n private hideAllButton() {\r\n this.actions.save.visible = false;\r\n this.actions.submit.visible = false;\r\n this.actions.sendToChecker.visible = false;\r\n this.actions.returnForRevise.visible = false;\r\n this.actions.recalculate.visible = false;\r\n this.actions.approve.visible = false;\r\n this.actions.accept.visible = false;\r\n this.actions.renew.visible = false;\r\n this.actions.decline.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n this.actions.unsuccessful.visible = false;\r\n this.actions.endorsement.visible = false;\r\n this.actions.cancel.visible = false;\r\n this.actions.createOrEdit.visible = false;\r\n this.actions.cancellationAdjustment.visible = false;\r\n }\r\n\r\n private setCitiButtonVisibility(\r\n actionsAllowed: Enums.ProposalCommandAction[]\r\n ) {\r\n actionsAllowed.forEach((action) => {\r\n switch (action) {\r\n case Enums.ProposalCommandAction.Save:\r\n this.actions.save.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n this.actions.submit.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Endorse:\r\n this.actions.endorsement.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n this.actions.makeRedundant.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Cancel:\r\n this.actions.cancel.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Renew:\r\n this.actions.renew.visible = true;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private setButtonVisibility(actionsAllowed: Enums.ProposalCommandAction[]) {\r\n const poiStartDate = new Date(\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const endorsementEffectiveDate = new Date(\r\n this.proposal!.qsMaster.qs_master_effectiveDate!.readAnswerAsString()!\r\n );\r\n const currentPOI = new Date(new Date().setHours(0, 0, 0, 0));\r\n let expectedMinimumLoanRedemptionDate = endorsementEffectiveDate;\r\n const minimumLoanRedemptionDate = new Date(\r\n currentPOI.setDate(currentPOI.getDate() - 14)\r\n );\r\n this.showCorrespondencebtn = this.getcorrespondenceflag();\r\n if (endorsementEffectiveDate < minimumLoanRedemptionDate) {\r\n expectedMinimumLoanRedemptionDate = minimumLoanRedemptionDate;\r\n }\r\n actionsAllowed.forEach((action) => {\r\n switch (action) {\r\n case Enums.ProposalCommandAction.Save:\r\n this.actions.save.visible = true;\r\n // if the proposal is Cancellation Adjustment\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.save.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n this.actions.submit.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.submit.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n this.actions.sendToChecker.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.sendToChecker.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n this.actions.returnForRevise.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.returnForRevise.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Approve:\r\n this.actions.approve.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.approve.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Accept:\r\n this.actions.accept.visible = true;\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.actions.accept.visible = this.proposal.isUnderwriter;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Renew:\r\n this.actions.renew.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Decline:\r\n this.actions.decline.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n this.actions.makeRedundant.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Unsuccessful:\r\n this.actions.unsuccessful.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Exit:\r\n this.actions.exit.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Endorse:\r\n this.actions.endorsement.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Cancel:\r\n this.actions.cancel.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.Copy:\r\n this.actions.copy.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n this.actions.createOrEdit.visible = true;\r\n break;\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n this.actions.cancellationAdjustment.visible =\r\n this.proposal.isUnderwriter;\r\n break;\r\n default:\r\n }\r\n });\r\n }\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n\r\n this.productFactory = this.productService.getProductFactory(\r\n this.proposal.productType\r\n );\r\n\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n this.isCITIProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.hideAllButton();\r\n if (!this.isCITIProduct) {\r\n this.setButtonVisibility(actionsAllowed);\r\n } else {\r\n this.setCitiButtonVisibility(actionsAllowed);\r\n }\r\n //DBSEP-2136\r\n if (this.isIBGProduct && this.identityRolesService.isUnderwriter) {\r\n this.setSubmitButtonVisibilityForIBG();\r\n }\r\n if (\r\n !this.isIBGProduct &&\r\n this.identityRolesService.IsCSCBGSG &&\r\n !this.isCITIProduct\r\n ) {\r\n this.setBttnVisibilityForCSCBGSG();\r\n }\r\n this.pageLoaded = true;\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault ? false : true;\r\n this.hideActionsCommandsByIBG =\r\n (this.isIBGProduct && this.proposalService.proposal.isBroker) ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n this.checkEndorsementHistory();\r\n this.isLapsed =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n //CS CBG SG only limit to CBG and endorsementType = ChangeOfClientInfo\r\n this.hideActionsCommandsForCSCBGSG =\r\n this.identityRolesService.IsCSCBGSG && !this.isIBGProduct ? true : false;\r\n //Hide change of POI from DBS users\r\n this.hideActionsCommandsForDBSUsers =\r\n this.identityRolesService.isBroker && !this.isIBGProduct ? true : false;\r\n if (this.hideActionsCommandsForDBSUsers) {\r\n this.setBttnVisibilityForDBSUsers();\r\n }\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n this.isUpgradable = this.CanUpgrade();\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n };\r\n\r\n private CanUpgrade(): boolean {\r\n let isUpgradable = false;\r\n //follow DataMember in : ~\\Baseline\\Chubb.ePolicy.Framework\\Library\\Common\\Entities\\ePolicy\\Model\\AuxiliaryModel.cs\r\n //small letter 'a', not capital 'A'\r\n if (common.isDefined(this.proposal.auxiliary)) {\r\n isUpgradable = this.proposal.auxiliary[\"allowUpgrade\"];\r\n } else {\r\n console.log(\"this.proposal.auxiliary['allowUpgrade'] is not Defined\");\r\n }\r\n return isUpgradable;\r\n }\r\n\r\n private setCancellationAdjustmentReferralRule() {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = false;\r\n this.proposal.referralMessageRequires = true;\r\n this.proposal.auxiliary[\"DisplayCancellationAdjustment\"] = false;\r\n this.proposalService.businessRulesManager.validateOperationUnderwriterCancellationAdj(\r\n false\r\n );\r\n }\r\n private MakeRedundantRuleReferralRule() {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = false;\r\n this.proposal.referralMessageRequires = true;\r\n this.actions.save.visible = false;\r\n this.proposalService.businessRulesManager.validateOperationUnderwriterMakeRedundant();\r\n }\r\n\r\n // DBSEP-2136\r\n // isRefUnderwriter - Flag to identify whether this is referral case for operator Underwriter user or not.\r\n private setSubmitButtonVisibilityForIBG() {\r\n if (this.identityRolesService.isOperationUnderwriter) {\r\n if (\r\n common.isDefined(this.proposalService.businessRulesManager.echos) &&\r\n this.proposalService.businessRulesManager.echos.length > 0\r\n ) {\r\n this.isRefUnderwriter = true;\r\n this.actions.submit.visible = !this.isRefUnderwriter;\r\n this.proposal.referralMessageRequires = true;\r\n } else {\r\n this.isRefUnderwriter = false;\r\n this.actions.submit.visible = !this.isRefUnderwriter;\r\n }\r\n }\r\n switch (this.proposal.proposalStatus) {\r\n case Enums.ProposalStatus.Accepted:\r\n case Enums.ProposalStatus.Declined:\r\n case Enums.ProposalStatus.Renewed:\r\n case Enums.ProposalStatus.Endorsed:\r\n if (this.identityRolesService.isOperationUnderwriter) {\r\n this.actions.submit.visible = false;\r\n this.isRefUnderwriter = false;\r\n this.proposal.referralMessageRequires = false;\r\n this.isIBGReferred = false;\r\n }\r\n break;\r\n case Enums.ProposalStatus.Referred:\r\n this.isRefUnderwriter = false;\r\n this.isIBGReferred = true;\r\n this.actions.accept.visible = false;\r\n this.actions.approve.visible = true;\r\n this.actions.submit.visible = false;\r\n this.actions.save.visible = false;\r\n break;\r\n case Enums.ProposalStatus.Cancelled:\r\n case Enums.ProposalStatus.Lapsed:\r\n this.isIBGReferred = false;\r\n this.actions.submit.visible = false;\r\n break;\r\n case Enums.ProposalStatus.Approved:\r\n this.isRefUnderwriter = false;\r\n this.actions.submit.visible = false;\r\n if (\r\n this.proposal.transType === Enums.TransType.REN &&\r\n this.proposal.endorsementType === Enums.EndorsementType.MakeRedundant\r\n ) {\r\n this.actions.accept.visible = false;\r\n } else {\r\n this.actions.accept.visible = true;\r\n }\r\n break;\r\n case Enums.ProposalStatus.Incomplete:\r\n this.isIBGReferred = false;\r\n break;\r\n }\r\n }\r\n\r\n //Only Show button if is incomplete and endorsementType = ChangeOfClientInfo\r\n private setBttnVisibilityForCSCBGSG() {\r\n if (\r\n this.identityRolesService.IsCSCBGSG &&\r\n !this.isIBGProduct &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n this.actions.submit.visible = true;\r\n this.actions.save.visible = true;\r\n this.actions.makeRedundant.visible = true;\r\n } else {\r\n this.actions.submit.visible = false;\r\n this.actions.save.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n }\r\n }\r\n\r\n private setBttnVisibilityForDBSUsers() {\r\n if (\r\n this.hideActionsCommandsForDBSUsers &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPOI\r\n ) {\r\n this.actions.submit.visible = false;\r\n this.actions.save.visible = false;\r\n this.actions.makeRedundant.visible = false;\r\n this.actions.sendToChecker.visible = false;\r\n }\r\n }\r\n\r\n private checkEndorsementHistory = () => {\r\n /** Check the endorsementHistoryModel if any General/ Change Of SI Endorsement has been performed for the proposal\r\n * If yes, Hide the change of POI button\r\n */\r\n // reset the flag\r\n this.isGeneralOrSIEndorsed = false;\r\n if (\r\n common.isDefined(this.proposal.refreshedProposalEntity.endorsementHistory)\r\n ) {\r\n const endorsementHistoryDetails =\r\n this.proposal!.refreshedProposalEntity.endorsementHistory!.filter(\r\n function (obj) {\r\n return (\r\n obj.endorsementType === \"GeneralEndorsement\" ||\r\n obj.endorsementType === \"ChangeOfSumInsured\"\r\n );\r\n }\r\n );\r\n if (endorsementHistoryDetails.length > 0) {\r\n this.isGeneralOrSIEndorsed = true;\r\n }\r\n }\r\n };\r\n\r\n private proposalSaved = (event: KeyValue) => {\r\n const actionsAllowed =\r\n this.proposalAvailableActionHelper.getAvailableActions(\r\n this.proposalService.proposalEntity\r\n );\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n this.isCITIProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n this.hideAllButton();\r\n if (!this.isCITIProduct) {\r\n this.setButtonVisibility(actionsAllowed);\r\n } else {\r\n this.setCitiButtonVisibility(actionsAllowed);\r\n }\r\n // CbsOps has access only to the ChangeOfClientInfo & ChangeOfCorrespondenceAddress\r\n if (this.identityRolesService.IsCbsOps) {\r\n const actionsAllowedforops =\r\n this.proposalAvailableActionHelper.getAvailableActionsforCbsOps(\r\n this.proposalService.proposalEntity\r\n );\r\n if (!this.isCITIProduct) {\r\n this.setButtonVisibility(actionsAllowedforops);\r\n } else {\r\n this.setCitiButtonVisibility(actionsAllowedforops);\r\n }\r\n }\r\n //CS CBG SG user has access only to ChangeOfClientInfo\r\n if (this.identityRolesService.IsCSCBGSG) {\r\n const actionsAllowedForCSCBGSG =\r\n this.proposalAvailableActionHelper.getAvailableActionforCSCBGSG(\r\n this.proposalService.proposalEntity\r\n );\r\n if (!this.isCITIProduct) {\r\n this.setButtonVisibility(actionsAllowedForCSCBGSG);\r\n } else {\r\n this.setCitiButtonVisibility(actionsAllowedForCSCBGSG);\r\n }\r\n }\r\n //DBSEP-2136\r\n if (this.isIBGProduct && this.identityRolesService.isUnderwriter) {\r\n this.proposalService.businessRulesManager.validate();\r\n this.setSubmitButtonVisibilityForIBG();\r\n }\r\n this.showMessageBoard = this.proposal!.proposalId!.isDefault ? false : true;\r\n this.hideActionsCommandsByIBG =\r\n (this.isIBGProduct && this.proposalService.proposal.isBroker) ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n this.checkEndorsementHistory();\r\n this.isLapsed =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Lapsed\r\n ? true\r\n : false;\r\n //2022-08-22 dagoh0: APACDM-363 - determine to show upgrade or downgrade plan type button for CBG product only\r\n this.isUpgradable = this.CanUpgrade();\r\n };\r\n\r\n // /** adding Endorsement type optional parameter\r\n // * EndorsementType 1: General Endorsement\r\n // * EndorsementType 16: Loan Redemption\r\n // * EndorsementType 17: Change Of POI\r\n // */\r\n click(el: any) {\r\n let command = Number(el.getAttribute(\"data-command-id\"));\r\n let endorsementType = Number(el.getAttribute(\"data-endorsement-id\"));\r\n // this.clickedButtonId = parseInt(event.key, 10);//todo: need to implement ButtonDefaultComponent for this\r\n this.clickedButtonId = command; //todo: temp\r\n // const command = event.value.c;\r\n //const endorsementType = event.value.t;\r\n switch (+command) {\r\n case Enums.ProposalCommandAction.Save:\r\n case Enums.ProposalCommandAction.Recalculate:\r\n this.proposalService.action(command, this.clickedButtonId);\r\n break;\r\n case Enums.ProposalCommandAction.Exit:\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Renew:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n this.actionsConfirmationModal(command, endorsementType);\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n actionsConfirmationModal = (\r\n command: Enums.ProposalCommandAction,\r\n endorsementType: any\r\n ): void => {\r\n let msg: string = \"\";\r\n switch (+command) {\r\n case Enums.ProposalCommandAction.Exit:\r\n msg = this.msg_exitWarning;\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n msg = this.msg_sendToCheckerWarning;\r\n break;\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n msg = this.msg_returnToReviseWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n //DBSEP-2136\r\n if (this.isRefUnderwriter) {\r\n msg = this.msg_ibgRefUnderwriterWarning;\r\n break;\r\n }\r\n if (this.identityRolesService.isUnderwriter) {\r\n msg = this.cbgManualUnderwritingMessage();\r\n // msg = this.msg_bindPolicyWarning;\r\n } else if (\r\n this.identityRolesService.IsCbsOps ||\r\n this.identityRolesService.IsCSCBGSG\r\n ) {\r\n msg = this.msg_bindPolicyWarning;\r\n } else {\r\n msg = this.msg_checkedWarning;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Approve:\r\n msg = this.isIBGProduct\r\n ? this.msg_IBG_approveWarning\r\n : this.msg_approveWarning;\r\n if (\r\n this.identityRolesService.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n this.isIBGProduct &&\r\n this.proposal.transType === Enums.TransType.REN &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ) {\r\n if (\r\n this.proposalService.proposal.endorsementType ===\r\n Enums.EndorsementType.MakeRedundant\r\n ) {\r\n command = Enums.ProposalCommandAction.MakeRedundant;\r\n }\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Renew:\r\n msg = this.msg_renewWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Decline:\r\n msg = this.isIBGProduct\r\n ? this.msg_IBG_declineWarning\r\n : this.msg_declineWarning;\r\n break;\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n msg = this.msg_redundantWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Accept:\r\n msg = this.msg_bindPolicyWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Endorse:\r\n if (endorsementType === Enums.EndorsementType.LoanRedemption) {\r\n msg = this.msg_loanRedemptionWarning;\r\n } else if (endorsementType === Enums.EndorsementType.ChangeOfPOI) {\r\n msg = this.msg_changeOfPOIWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfSumInsured\r\n ) {\r\n msg = this.msg_changeOfSIWarning;\r\n } else if (\r\n endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n msg = this.msg_changeOfCorrAddressWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfAdditionalInsured\r\n ) {\r\n msg = this.msg_changeOfAdditionalInsuredWarning;\r\n } else if (\r\n endorsementType === Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n msg = this.msg_changeOfClientInfo;\r\n //2022-08-24 dagoh0: APACDM-363 - Handle Change of Plan Type confirmation message\r\n } else if (endorsementType === Enums.EndorsementType.ChangeOfPlanType) {\r\n msg = this.msg_changeOfPlanType;\r\n } else {\r\n msg = this.msg_endorseWarning;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Cancel:\r\n msg = this.msg_cancelWarning;\r\n break;\r\n case Enums.ProposalCommandAction.Copy:\r\n msg = this.msg_copyWarning;\r\n break;\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n msg = this.msg_editWarning;\r\n break;\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n msg = this.msg_cancellationAdjustmentWarning;\r\n break;\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n msg = this.msg_changeOfCorrAddressWarning;\r\n break;\r\n default:\r\n }\r\n\r\n const data: InterfaceProduct.IDialogMessage = {\r\n message: msg,\r\n tabClicked: command,\r\n };\r\n if (common.isDefined(endorsementType)) {\r\n data.checkedStatus = endorsementType; // using checkedStatus to know the general and loan redemption endorsement type\r\n }\r\n if (\r\n command === Enums.ProposalCommandAction.ReturnForRevise ||\r\n command === Enums.ProposalCommandAction.Decline\r\n ) {\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageWithReasonComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n } else {\r\n if (\r\n command === Enums.ProposalCommandAction.Submit ||\r\n command === Enums.ProposalCommandAction.Accept\r\n ) {\r\n data.productId = this.proposal.productId;\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC;\r\n // CBG General Endorsement doesn't create Document, hence the print option poppup will not show for any role.\r\n if (\r\n !this.isIBGProduct &&\r\n this.proposal.transType == Enums.TransType.END &&\r\n this.proposal.endorsementType ==\r\n Enums.EndorsementType.GeneralEndorsement\r\n ) {\r\n this.showMdConfirmationMessageV1(data);\r\n } else {\r\n var isValid = true;\r\n if (this.isIBGProduct) {\r\n var isAutoLst =\r\n this.proposalService.proposal.auxiliary[\"IsAutoLst\"];\r\n if (isAutoLst) {\r\n let sumInsured = 0.0;\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF\r\n ) {\r\n sumInsured =\r\n this.proposal!.qsMaster.qs_fire_replacement!.answer;\r\n } else if (\r\n this.proposal.productType ===\r\n EnumSG.MortgageFireSgProduct.IBGMAC\r\n ) {\r\n const sumInsuredArray =\r\n this.proposal!.qsMaster.qs_machinery_equipment!.answer;\r\n if (sumInsuredArray !== \"\") {\r\n const equipmentArray: any = new Array(\r\n JSON.parse(sumInsuredArray)\r\n );\r\n sumInsured = equipmentArray[0]\r\n .map(\r\n (equipment: { sumInsured: any }) => equipment.sumInsured\r\n )\r\n .reduce((prev: any, next: any) => prev + next);\r\n } else {\r\n sumInsured = 0;\r\n }\r\n }\r\n if (sumInsured > environment.lstMaxLimit) {\r\n isValid = false;\r\n const lstData: v1DlgInputArgs = {\r\n message: this.msg_warningMessageForLST,\r\n opened: true,\r\n dialogWidth: 600,\r\n data: \"\",\r\n };\r\n\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV2Component,\r\n {\r\n data: lstData,\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForLST(result);\r\n }\r\n });\r\n return;\r\n }\r\n }\r\n //DBSEP-2136\r\n if (\r\n command === Enums.ProposalCommandAction.Submit &&\r\n this.isRefUnderwriter &&\r\n this.proposalService.IBGValidate(\r\n data.tabClicked,\r\n this.clickedButtonId\r\n )\r\n ) {\r\n this.doRefer(data.tabClicked, msg);\r\n }\r\n }\r\n if (isValid) {\r\n this.PrintOptionPopup(data);\r\n }\r\n }\r\n } else {\r\n this.showMdConfirmationMessageV1(data);\r\n }\r\n }\r\n };\r\n\r\n private showMdConfirmationMessageV1(data: InterfaceProduct.IDialogMessage) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: data.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n confirmationModalCloseForLST = (data: any): void => {\r\n if (data.status === \"yes\") {\r\n }\r\n };\r\n\r\n private PrintOptionPopup(data: InterfaceProduct.IDialogMessage) {\r\n if (this.identityRolesService.isChecker) {\r\n // 'REF' is prefix of all referral policy validation fail message key\r\n var referralPolicy =\r\n this.proposalService.businessRulesManager.echos.length > 0\r\n ? this.proposalService.businessRulesManager.echos[0].echos.filter(\r\n function (item) {\r\n return item.key!.indexOf(\"REF\") == 0;\r\n }\r\n )\r\n : new Array>();\r\n // when checker is checking non referral policy,\r\n // we need to set print type 1 (print to mail) autometically,\r\n // even though the print popup is not showing.\r\n // and need to set default Password Protected is true for CBG and false for IBG.\r\n if (referralPolicy.length == 0) {\r\n // Default Print Type is Send to Mail\r\n var option = [\r\n {\r\n label: \"Email\",\r\n value: \"2\",\r\n },\r\n {\r\n label: \"SMS\",\r\n value: \"5\",\r\n },\r\n {\r\n label: \"Mail\",\r\n value: \"1\",\r\n },\r\n ];\r\n data.selectedPrintType = option.filter(\r\n (x) =>\r\n x.value ==\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer\r\n )[0];\r\n if (data.selectedPrintType.value == 1) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n } else if (data.selectedPrintType.value == 2) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n } else if (data.selectedPrintType.value == 5) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n }\r\n // Checking IBG Product\r\n if (this.isIBGProduct) {\r\n data.isPasswordProtected = false;\r\n } else {\r\n data.isPasswordProtected = true;\r\n }\r\n }\r\n this.showMdConfirmationMessageV1(data);\r\n } else {\r\n if (this.proposal!.customerMappingId! > 0 && !this.isRefUnderwriter) {\r\n this.clientService\r\n .get(\r\n this.proposal.customerMappingId!,\r\n this.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n const clientData = response;\r\n if (clientData) {\r\n data.printCorrespondence = clientData.emailAddress;\r\n }\r\n this.showPrintOptionDialog(data);\r\n });\r\n } else {\r\n if (!this.isRefUnderwriter) {\r\n this.showPrintOptionDialog(data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n showPrintOptionDialog = (data: any): void => {\r\n data.preferredDeliveryMethod =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer;\r\n data.emailId =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n data.mobileNo =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n data.contactInfo =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n data.confimationMsg = this.isIBGProduct\r\n ? \"* Any value entered will not be updated into the Client Master database.\"\r\n : \"* Any value entered will not be updated into the Client Master database.\";\r\n\r\n const v4DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV4Component,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v4DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationPrintOptionSelection(result);\r\n }\r\n });\r\n };\r\n\r\n doRefer(command: any, msg: string) {\r\n this.proposalService.referAction(command, this.clickedButtonId, msg);\r\n }\r\n\r\n confirmationPrintOptionSelection = (result: any): void => {\r\n if (result.status === \"yes\") {\r\n let data = result.data;\r\n this.showMdConfirmationMessageV1(data);\r\n }\r\n };\r\n\r\n cbgManualUnderwritingMessage = (): any => {\r\n let message: any = this.msg_bindPolicyWarning;\r\n const isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n if (!isIBGProduct) {\r\n if (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\"\r\n ) {\r\n if (\r\n this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfSumInsured\r\n ) {\r\n const quote = this.proposal.refreshedProposalEntity.quotes;\r\n if (common.isDefined(quote) && quote && quote.length > 0) {\r\n if (common.isDefined(quote[0].premiumSummary)) {\r\n if (\r\n quote[0].premiumSummary.premium === 0 ||\r\n quote[0].premiumSummary.premiumTax === 0\r\n ) {\r\n message = this.msg_bindCBGPolicyWarning;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return message;\r\n };\r\n\r\n confirmationModalCloseForActions = (response: any): void => {\r\n if (response.status === \"yes\") {\r\n let data = response.data;\r\n switch (data.tabClicked) {\r\n case Enums.ProposalCommandAction.Exit:\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Renew:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n if (\r\n data.tabClicked == Enums.ProposalCommandAction.Submit ||\r\n data.tabClicked == Enums.ProposalCommandAction.Accept\r\n ) {\r\n if (data.selectedPrintType != null) {\r\n this.proposalService.proposal.printType =\r\n data.selectedPrintType.value;\r\n this.proposalService.proposal.printCorrespondence =\r\n data.printCorrespondence;\r\n this.proposalService.proposal.isPasswordProtected =\r\n data.isPasswordProtected;\r\n this.proposalService.proposal.isReprint = false;\r\n this.proposalService.proposal.isSummary = false;\r\n this.proposalService.proposal.isManual = false;\r\n }\r\n }\r\n if (\r\n data.tabClicked === Enums.ProposalCommandAction.Renew &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Accepted\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.required =\r\n false;\r\n } else {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.required =\r\n true;\r\n }\r\n if (\r\n data.tabClicked === Enums.ProposalCommandAction.ReturnForRevise ||\r\n data.tabClicked === Enums.ProposalCommandAction.Decline\r\n ) {\r\n // assign the [return to revise reason] / [Decline reason] to aux actionReason property\r\n this.proposalService.proposal.auxiliary = {\r\n actionReason: data.message,\r\n };\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Endorse) {\r\n // set the endorsementType\r\n /** EndorsementType 1: General Endorsement\r\n * EndorsementType 16: Loan Redemption\r\n EndorsementType 17: Change Of POI\r\n EndorsementType 8: Change Of SI\r\n */\r\n // Handling only for Endorsement Reason Question because it will reset for every endorsement raised\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n \"\";\r\n switch (data.checkedStatus) {\r\n case Enums.EndorsementType.LoanRedemption:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.LoanRedemption;\r\n break;\r\n case Enums.EndorsementType.ChangeOfPOI:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfPOI;\r\n break;\r\n case Enums.EndorsementType.ChangeOfSumInsured:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfSumInsured;\r\n break;\r\n case Enums.EndorsementType.ChangeOfCorrespondenceAddress:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress;\r\n break;\r\n case Enums.EndorsementType.ChangeOfAdditionalInsured:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfAdditionalInsured;\r\n break;\r\n case Enums.EndorsementType.ChangeOfClientInfo:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfClientInfo;\r\n break;\r\n case Enums.EndorsementType.GstAdjustment:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.GstAdjustment;\r\n break;\r\n //2022-08-23 dagoh0: APACDM-363 - Assign Endorsement Type\r\n case Enums.EndorsementType.ChangeOfPlanType:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfPlanType;\r\n break;\r\n default:\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.GeneralEndorsement;\r\n break;\r\n }\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Cancel) {\r\n // Handling only for Endorsement Reason Question because it will reset for cancellation raised\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n \"\";\r\n }\r\n if (\r\n data.tabClicked ===\r\n Enums.ProposalCommandAction.CancellationAdjustment\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.CancellationAdjustment;\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.isIBGProduct\r\n ) {\r\n this.setCancellationAdjustmentReferralRule();\r\n }\r\n }\r\n if (\r\n data.tabClicked ===\r\n Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress;\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.MakeRedundant) {\r\n if (\r\n (this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.ChangeOfClientInfo)\r\n ) {\r\n this.clientService.clientDictionary = {};\r\n }\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.isIBGProduct &&\r\n this.proposal.transType === Enums.TransType.REN &&\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.proposalService.proposal.endorsementType =\r\n Enums.EndorsementType.MakeRedundant;\r\n // this.proposal.auxiliary['IsMakeRedundant']=\"true\";\r\n this.MakeRedundantRuleReferralRule();\r\n break;\r\n }\r\n }\r\n if (data.tabClicked === Enums.ProposalCommandAction.Approve) {\r\n this.isIBGReferred = false;\r\n this.actions.submit.visible = false;\r\n }\r\n // notify button start event\r\n buttonNotifier.start_notifier$.next(\r\n new KeyValue(this.clickedButtonId.toString(), \"start\")\r\n );\r\n this.proposalService.action(data.tabClicked, this.clickedButtonId);\r\n break;\r\n default:\r\n // do nothing since all the command actions should be handled.\r\n break;\r\n }\r\n }\r\n };\r\n\r\n openMessageForum(event?: any, UnderwriterInternalComment?: any): void {\r\n const data = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n policyNumber: this.proposal.policyNumber,\r\n isUnderwriterInternalComment: UnderwriterInternalComment,\r\n productId: this.proposal.productId.toString(),\r\n printCorrespondence: \"\",\r\n preferredDeliveryMethod:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer,\r\n emailId:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer,\r\n mobileNo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer,\r\n contactInfo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!\r\n .answer,\r\n transType: this.proposal.transType,\r\n proposalStatus: this.proposal.proposalStatus,\r\n loanRedeemed: this.proposal.loanRedeemed,\r\n policyExpiryDate: this.proposal.qsMaster.qs_master_poi_endDate!.answer,\r\n proposalType: this.proposal.productType,\r\n pendingTransaction: this.proposal.pendingTransaction,\r\n isPreviousYearTerminated:\r\n this.proposal.auxiliary[\"IsPreviousYearTerminated\"],\r\n allowRenewal: this.proposal.auxiliary[\"allowRenewal\"],\r\n confimationMsg: this.isIBGReferred\r\n ? \"* Any value entered will not be updated into the Client Master database.\"\r\n : \"* Any value entered will not be updated into the Client Master database.\",\r\n };\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 5) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!.answer;\r\n }\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 2) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!.answer;\r\n }\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer == 1) {\r\n data.printCorrespondence =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer;\r\n }\r\n if (this.proposal.customerMappingId! > 0) {\r\n this.clientService\r\n .get(\r\n this.proposal.customerMappingId!,\r\n this.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n var clientData = response;\r\n if (clientData) {\r\n data.printCorrespondence = clientData.emailAddress;\r\n }\r\n this.showMessageForum(data);\r\n });\r\n } else {\r\n this.showMessageForum(data);\r\n }\r\n }\r\n\r\n showMessageForum = (data?: any): void => {\r\n const v1DialogRef = this.cdkDialogService.open(MessageForumComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n };\r\n\r\n openContactUs(event?: any, UnderwriterInternalComment?: any): void {\r\n const data = {\r\n proposalId: this.proposal.proposalId,\r\n isUnderwriterInternalComment: UnderwriterInternalComment,\r\n productId: this.proposal.productId,\r\n };\r\n const v1DialogRef = this.cdkDialogService.open(MfContactUsFormComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n openCreateNew(event?: any, UnderwriterInternalComment?: any): void {\r\n let productSelectionInputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: null,\r\n message: \"\",\r\n };\r\n\r\n const productSelectionDialogRef = this.cdkDialogService.open(\r\n MdProductSelectionDialogComponent,\r\n {\r\n data: productSelectionInputData,\r\n }\r\n );\r\n\r\n productSelectionDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n\r\n event.preventDefault(); //do not goes further\r\n }\r\n // delete() {\r\n // }\r\n // messageBoard() {\r\n // }\r\n // }\r\n //#endregion\r\n}\r\n","\r\n
\r\n \r\n \r\n  Save\r\n \r\n\r\n \r\n \r\n  Send To Checker\r\n \r\n\r\n \r\n \r\n  Return To Revise\r\n \r\n\r\n \r\n \r\n  Checked\r\n  Bind Policy\r\n \r\n\r\n \r\n \r\n  Bind Policy\r\n \r\n \r\n \r\n \r\n  Refer to Underwriter\r\n \r\n\r\n \r\n \r\n  Renew\r\n \r\n\r\n \r\n \r\n  Decline\r\n \r\n \r\n \r\n \r\n  Approve\r\n \r\n\r\n \r\n \r\n  Cancellation Adjustment\r\n \r\n\r\n \r\n \r\n  Edit\r\n \r\n\r\n \r\n \r\n \r\n \r\n  Loan Redemption\r\n \r\n\r\n \r\n \r\n \r\n  Change of Plan Type\r\n \r\n\r\n \r\n \r\n \r\n  Edit POI\r\n \r\n\r\n \r\n \r\n \r\n  Edit Sum. Ins.\r\n \r\n\r\n \r\n \r\n  Edit Corr. Add\r\n \r\n\r\n \r\n \r\n  Edit Client. Info.\r\n \r\n\r\n \r\n \r\n  Edit Add. Ins.\r\n \r\n\r\n \r\n \r\n  Terminate\r\n \r\n\r\n \r\n \r\n  Edit\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { MfSgBaseComponent } from \"../../mf-sg-base.component\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Culture } from \"src/app/shared/date-formatter\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\n\r\n@Component({\r\n selector: \"mf-sg-client-view\",\r\n templateUrl: \"./mf-sg-client-view.component.html\",\r\n styleUrls: [\"./mf-sg-client-view.component.scss\"],\r\n})\r\nexport class MfSgClientViewComponent\r\n extends MfSgBaseComponent\r\n implements OnInit\r\n{\r\n id!: string;\r\n clientViewData: any;\r\n address!: ClientAddressEntity;\r\n noAnswerDefaultText: string = \"Unknown\";\r\n countryList!: any[];\r\n nationalityList!: any[];\r\n contactInformation: string = \"\";\r\n isStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n clientSalutationDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Capt\",\r\n 2: \"Dr.\",\r\n 3: \"Madam\",\r\n 4: \"Miss\",\r\n 5: \"Mr\",\r\n 6: \"Mrs\",\r\n 7: \"Ms\",\r\n 8: \"Prof\",\r\n 9: \"Sir\",\r\n 10: \"Tan Sir\",\r\n 13: \"Others\",\r\n };\r\n\r\n clientRaceDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Chinese\",\r\n 2: \"Indian\",\r\n 3: \"Malay\",\r\n 4: \"Others\",\r\n };\r\n\r\n clientGenderDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Male\",\r\n 2: \"Female\",\r\n };\r\n\r\n clientMaritalStatusDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Single\",\r\n 2: \"Married\",\r\n 3: \"Widowed\",\r\n 4: \"Divorced\",\r\n 5: \"Separated\",\r\n };\r\n\r\n clientDocumentTypePrefixDictionary: { [key: number]: string } = {\r\n 0: \"Unknown\",\r\n 1: \"Singapore NRIC\",\r\n 2: \"Singapore PR\",\r\n 3: \"Malaysia IC\",\r\n 4: \"Foreign Passport\",\r\n };\r\n\r\n private dialogOkNotifierSubscription!: Subscription;\r\n isEditable: boolean = false;\r\n isProcessing = false;\r\n\r\n constructor(\r\n private proposalService: MfSgProposalService,\r\n private clientService: ClientService,\r\n private masterDataService: MasterDataService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (\r\n this.proposalService.proposal.proposalStatus ===\r\n Enum.ProposalStatus.Incomplete &&\r\n this.proposalService.proposal.transType === Enum.TransType.NEW\r\n ) {\r\n this.isEditable = true;\r\n }\r\n\r\n super.subscribeTabLoadRenderer();\r\n this.initialize();\r\n this.dialogOkNotifierSubscription =\r\n dialogActionNotifier.ok_notifier$.subscribe((event) => {});\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeRxjs();\r\n this.dialogOkNotifierSubscription.unsubscribe();\r\n }\r\n\r\n verifyStateCountry(answer: string) {\r\n const elementPos = this.countryExcludeState\r\n .map(function (x: any) {\r\n return x;\r\n })\r\n .indexOf(answer);\r\n if (elementPos > -1) {\r\n this.isStateVisible = false;\r\n } else {\r\n this.isStateVisible = true;\r\n }\r\n }\r\n\r\n //think no use\r\n // confirmationModalCloseForActions = (data: any): void => {\r\n // if (data.confirmation) {\r\n // // map to customer mapping id\r\n // this.proposalService.proposal.customerMappingId = data.clientId;\r\n // this.proposalService.proposal.customerMappingAddressID = data.clientAddressId;\r\n // // this.ClientService.search();\r\n // if (common.isDefined(data.clientId)) {\r\n // this.clientService.get(data.clientId, data.clientCode).then((response) => {\r\n // if (response['clientType'] === 1) {\r\n // this.proposalService.proposal.qsMaster.qs_master_insuredName.answer =\r\n // response['lastName'] + ' ' + response['firstName'];\r\n // } else {\r\n // this.proposalService.proposal.qsMaster.qs_master_insuredName.answer = response['clientName'];\r\n // }\r\n\r\n // this.proposalService.proposal.qsMaster.qs_master_insuredNo.answer = response['clientCode'];\r\n // this.proposalService.proposal.qsMaster.qs_master_mobileNumber.answer = response['mobileNumber'];\r\n // this.proposalService.proposal.qsMaster.qs_master_emailID.answer = response['emailAddress'];\r\n // let contactInfo = '';\r\n // if (response['address'][0]['countryISO2'] === 'SG') {\r\n // contactInfo = response['address'][0]['addressLine1'] + ' ' +\r\n // this.getAddressFormat(response['address'][0]['addressLine2']) +\r\n // this.getAddressFormat(response['address'][0]['unitNo']) +\r\n // this.getAddressFormat(response['address'][0]['buildingName']) +\r\n // this.getDisplayTextIfUnknown(response['address'][0]['countryISO2'], 'country') + ' ' +\r\n // this.getAddressFormat(response['address'][0]['postCode']);\r\n // } else {\r\n // contactInfo =\r\n // this.getAddressFormat(response['address'][0]['unitNo']) +\r\n // this.getAddressFormat(response['address'][0]['buildingName']) +\r\n // this.getAddressFormat(response['address'][0]['addressLine1']) +\r\n // this.getAddressFormat(response['address'][0]['addressLine2']) +\r\n // this.getAddressFormat(response['address'][0]['postCode']) +\r\n // this.getAddressFormat(response['address'][0]['city']) +\r\n // this.getAddressFormat(response['address'][0]['stateName']) +\r\n // this.getDisplayTextIfUnknown(response['address'][0]['countryISO2'], 'country');\r\n\r\n // }\r\n\r\n // this.contactInformation = contactInfo;\r\n // angular.element('#clientContactInfo p').text('');\r\n // angular.element('#clientContactInfo p').text(contactInfo);\r\n\r\n // });\r\n // }\r\n // }\r\n // }\r\n\r\n getAddressFormat = (input: any) => {\r\n if (!common.isUndefinedOrNull(input)) {\r\n return input + \" \";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n //think no use\r\n // getCityState = (answer: string) => {\r\n\r\n // if (answer['countryISO2'] === 'SG') {\r\n // return ' ';\r\n // } else {\r\n // if (answer['countryISO2'] === 'HK') {\r\n // return ' ' + answer['city'] + ' ';\r\n // } else {\r\n // return ' ' + answer['city'] + ' ' + answer['stateName'] + ' ';\r\n // }\r\n // }\r\n\r\n // }\r\n\r\n getDisplayTextIfUnknown = (inputId: string, question: any) => {\r\n let displayText: string = \"Unknown\";\r\n let array: any = [];\r\n if (inputId.length > 0) {\r\n if (question === \"country\") {\r\n if (common.isDefined(this.countryList)) {\r\n array = this.countryList;\r\n }\r\n } else {\r\n if (common.isDefined(this.nationalityList)) {\r\n array = this.nationalityList;\r\n }\r\n }\r\n if (array.length > 0) {\r\n const elementPos = array\r\n .map(function (x: { value: any }) {\r\n return x.value;\r\n })\r\n .indexOf(inputId);\r\n const objectFound = array[elementPos];\r\n displayText = objectFound.key;\r\n }\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n getDateFormat = (date: any, culture: Culture) => {\r\n const mm = date.substring(5, 7);\r\n const dd = date.substring(8, 10);\r\n const yyyy = date.substring(0, 4);\r\n\r\n switch (culture) {\r\n case Culture.enSg:\r\n return dd + \"/\" + mm + \"/\" + yyyy;\r\n\r\n default:\r\n throw Error(\"date culture unhandled\");\r\n }\r\n };\r\n\r\n private initialize() {\r\n this.masterDataService\r\n .getCountryList()\r\n .subscribe((responseCountry: any[]) => {\r\n this.countryList = responseCountry;\r\n this.masterDataService\r\n .getAllNationalityList()\r\n .subscribe((responseNationality: any[]) => {\r\n this.nationalityList = responseNationality;\r\n this.proposalLoaded();\r\n });\r\n });\r\n }\r\n\r\n //https://stackoverflow.com/questions/34547127/angular2-equivalent-of-document-ready\r\n ngAfterViewInit() {\r\n //todo: check if this works\r\n this.proposalLoaded();\r\n //https://stackoverflow.com/questions/53767289/angular-error-error-expressionchangedafterithasbeencheckederror-expression-ha\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n private proposalLoaded = () => {\r\n //todo\r\n // $(document).ready(() => {\r\n setTimeout(() => {\r\n this.getClientDetailsLoaded();\r\n }, 60);\r\n // });\r\n };\r\n\r\n private getClientDetailsLoaded = () => {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: any) => {\r\n this.clientViewData = response;\r\n if (response.clientType === 1) {\r\n this.clientViewData.salutationText =\r\n this.clientSalutationDictionary[response.salutation];\r\n //dob changes begin\r\n let editDate: any;\r\n if (!common.isUndefinedOrNull(this.clientViewData.birthDate)) {\r\n if (this.clientViewData.birthDate.indexOf(\"T\") > 0) {\r\n editDate = new Date(\r\n this.clientViewData.birthDate\r\n .replace(/-/g, \"/\")\r\n .replace(/T.+/, \"\")\r\n );\r\n } else {\r\n editDate = new Date(\r\n this.formatDate(this.clientViewData.birthDate)\r\n .replace(/-/g, \"/\")\r\n .replace(/T.+/, \"\")\r\n );\r\n }\r\n\r\n const year = editDate.getFullYear();\r\n const month = editDate.getMonth() + 1;\r\n const day = editDate.getDate();\r\n var dateofbirth = `${day}/${month}/${year}`;\r\n this.clientViewData.birthDateFormat = dateofbirth;\r\n } else {\r\n this.clientViewData.birthDateFormat = \"\";\r\n }\r\n //dob changes end\r\n //this.clientViewData.birthDateFormat = Global.isUndefined(this.clientViewData.birthDate) ?\r\n // '' : this.getDateFormat(this.clientViewData.birthDate, Culture.enSg);\r\n this.clientViewData.genderText =\r\n this.clientGenderDictionary[response.gender];\r\n this.clientViewData.maritalStatusText =\r\n this.clientMaritalStatusDictionary[response.maritalStatus];\r\n this.clientViewData.raceText =\r\n this.clientRaceDictionary[response.race];\r\n this.clientViewData.nationalityText = this.getDisplayTextIfUnknown(\r\n [response.nationality][0],\r\n \"nationality\"\r\n );\r\n this.clientViewData.documentTypeText =\r\n this.clientDocumentTypePrefixDictionary[response.docType];\r\n }\r\n this.clientViewData.countryISO2Text = this.getDisplayTextIfUnknown(\r\n [response.address[0].countryISO2][0],\r\n \"country\"\r\n );\r\n this.verifyStateCountry([response.address[0].countryISO2][0]);\r\n });\r\n };\r\n\r\n formatDate = (date: string) => {\r\n const dateSplit = date.split(\"/\");\r\n const newDate = dateSplit[1] + \"/\" + dateSplit[0] + \"/\" + dateSplit[2];\r\n return newDate.replace(/-/g, \"/\").replace(/T.+/, \"\");\r\n };\r\n}\r\n","
\r\n
\r\n Please Wait \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Personal Information

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.salutationText }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.lastName }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

\r\n {{ clientViewData?.firstName }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.birthDateFormat }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.documentTypeText }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{ clientViewData?.nric }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.passportNo }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.cinNo }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.raceText }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

\r\n {{ clientViewData?.nationalityText }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.genderText }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.maritalStatusText }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.occupation }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Organization Information

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.clientName }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.businessRegistrationNumber }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.personInCharge }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.cinNo }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Contact Information

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].unitNo }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].buildingName }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine1 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

\r\n {{ clientViewData?.address[0].addressLine2 }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].postCode }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].city }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.address[0].stateName }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.countryISO2Text }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.mobileNumber }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.emailAddress }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.phoneNoHome }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.phoneNoOffice }}\r\n

\r\n {{ noAnswerDefaultText }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ clientViewData?.faxNumber }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as FinanceConstant from \"src/app/finance/finance-constant\";\r\nimport { MfSgBaseComponent } from \"../mf-sg-base.component\";\r\nimport { proposalCommon } from \"src/app/components/new-product/base/utils/proposal-common\";\r\nimport { DocumentService } from \"src/app/services/document/document.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { OpenItemDetailsComponent } from \"src/app/components/accounting/open-item/view-details/open-item-details.component\";\r\n\r\n@Component({\r\n selector: \"mf-sg-header\",\r\n templateUrl: \"./mf-sg-header.component.html\",\r\n styleUrls: [\"./mf-sg-header.component.scss\"],\r\n})\r\nexport class MfSgHeaderComponentComponent\r\n extends MfSgBaseComponent\r\n implements OnInit\r\n{\r\n @Input() proposal!: MortgageFireSingaporeProposal; //temp using @Input()\r\n transTypeText!: string;\r\n proposalStatusText!: string;\r\n pid!: string;\r\n isDisplay: boolean = false;\r\n docTypeText!: string;\r\n displayChecker: boolean = false;\r\n displayMaker: boolean = false;\r\n displayOpenItem: boolean = false;\r\n displayOriginalPolicyNo: boolean = false;\r\n transOpenItemStatus!: string;\r\n\r\n public openItemId!: string;\r\n public openItemDetailsOpened: boolean = false;\r\n\r\n constructor(\r\n private proposalService: MfSgProposalService,\r\n public identityRolesService: IdentityRolesService,\r\n private documentService: DocumentService,\r\n private cdkDialogService: CdkDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n hasQuoteNumber() {\r\n if (common.isDefined(this.proposal)) {\r\n return (\r\n this.proposal!.quoteNumber !== \"\" &&\r\n this.proposal!.quoteNumber !== undefined\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n }\r\n\r\n initialize() {}\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n if (\r\n this.proposal.transType === Enum.TransType.END ||\r\n this.proposal.transType === Enum.TransType.CAN\r\n ) {\r\n this.isDisplay = true;\r\n }\r\n if (!common.isUndefinedOrNull(this.proposal.openItems)) {\r\n if (this.proposal.openItems.length > 0) {\r\n this.displayOpenItem = true;\r\n this.transOpenItemStatus =\r\n FinanceConstant.openItemDisplayStatus[\r\n this.proposal.openItems[0].Status\r\n ];\r\n }\r\n } else {\r\n this.displayOpenItem = false;\r\n }\r\n\r\n this.proposalStatusText = proposalCommon.translateProposalStatus(\r\n this.proposal.proposalStatus,\r\n this.proposal.transType!\r\n );\r\n this.transTypeText = proposalCommon.translateTransType(\r\n this.proposal!.transType!,\r\n this.proposal.endorsementType!\r\n );\r\n this.pid = this.proposal.proposalId!.toId.toString();\r\n this.displayChecker =\r\n common.isDefined(this.proposal.checkerUserName) &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTHDB &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFPTE &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n this.displayMaker =\r\n common.isDefined(this.proposal.makerUserName) &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTHDB &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFPTE &&\r\n this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n if (this.proposal.documents.length > 0) {\r\n const newDocuments: Array> = [];\r\n this.proposal.documents.forEach((doc: Enum.DocumentType) => {\r\n const docText: string = proposalCommon.translateDocumentType(doc);\r\n newDocuments.push(new KeyValue(String(doc), docText));\r\n });\r\n this.proposal.documents = newDocuments;\r\n }\r\n\r\n /** The original Policy Number will be available only for migrated policies */\r\n const replacingPolicyNo =\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.readAnswerAsString();\r\n this.displayOriginalPolicyNo =\r\n common.isDefined(replacingPolicyNo) &&\r\n replacingPolicyNo !== \"\" &&\r\n replacingPolicyNo !== null\r\n ? true\r\n : false;\r\n };\r\n\r\n public downloadDocument = (docType: any, pid?: any): void => {\r\n const params = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n documentType: docType,\r\n };\r\n this.documentService.downloadProposalDocument(params);\r\n };\r\n\r\n public showDetails = (): void => {\r\n const postData = { openItemId: this.proposal.openItems[0].Id };\r\n\r\n // fix cdk init issue\r\n // const openItemDetailsDialogRef = this.cdkDialogService.open(\r\n // OpenItemDetailsComponent,\r\n // {\r\n // data: postData,\r\n // }\r\n // );\r\n\r\n // openItemDetailsDialogRef.afterClosed().subscribe((result: any) => {\r\n // // Subscription runs after the dialog closes\r\n // if (result) {\r\n // this.confirmationModalCloseForActions(result);\r\n // }\r\n // });\r\n this.openItemId = postData.openItemId;\r\n this.openItemDetailsOpened = true;\r\n };\r\n confirmationModalCloseForActions = (data: any): void => {\r\n this.openItemDetailsOpened = false;\r\n };\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ proposal!.policyNumber }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ proposal!.quoteNumber }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n

{{ proposal!.checkerUserName }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{ proposal!.makerUserName }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{\r\n proposal!.qsMaster.qs_master_replacePolicyNo!.answer\r\n }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{\r\n proposalStatusText\r\n }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n 0\r\n }\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{ transTypeText }}\r\n

\r\n Unknown\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{\r\n document.value\r\n }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n History Details\r\n
\r\n

{{ transOpenItemStatus }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { MortgageFireSingaporeProposal } from \"../../../../../../../../../app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { MfSgBaseComponent } from \"../../mf-sg-base.component\";\r\nimport { MfSgProposalService } from \"../../../../../../../../../app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { pageLifeCycleNotifier } from \"../../../../../../../../../app/models/new-product/notifier/page-life-cycle-notifier\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\n@Component({\r\n selector: \"mf-sg-echo-field-validation-panel\",\r\n templateUrl: \"./mf-sg-echo-field-validation-panel.component.html\",\r\n styleUrls: [\"./mf-sg-echo-field-validation-panel.component.scss\"],\r\n})\r\nexport class MfSgEchoFieldValidationPanelComponent extends MfSgBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireSingaporeProposal;\r\n showFieldValidation: boolean = false;\r\n showValidationMessage: boolean = false;\r\n constructor(\r\n public proposalService: MfSgProposalService // private Enums: any\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n ngOnInit(): void {\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n super.subscribeProposalFailedNotifier(this.proposalLoaded);\r\n }\r\n\r\n public proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n this.pageLoaded = true;\r\n this.showFieldValidation = this.checkFieldValidation();\r\n\r\n this.showValidationMessage =\r\n this.proposal.validationMessage.length > 0 ? true : false;\r\n };\r\n\r\n checkFieldValidation() {\r\n let flag: boolean = false;\r\n if (\r\n common.isDefined(this.proposalService.fieldValidationManager) &&\r\n common.isDefined(this.proposalService.fieldValidationManager.echos)\r\n ) {\r\n return this.proposalService.fieldValidationManager.echos.length > 0\r\n ? true\r\n : false;\r\n }\r\n return flag;\r\n }\r\n\r\n initialize() {}\r\n\r\n navigate(question: any) {\r\n pageLifeCycleNotifier.tab_request_notifier$.next(\r\n new KeyValue(question.tabId.toString(), question.key)\r\n );\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n

Please complete the following :

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ vs }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ es.title }}\r\n
\r\n
\r\n \r\n \r\n {{ e.message }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { ProposalActivityService } from \"src/app/services/new-product/proposal-activity.service\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { BaseMainComponent } from \"src/app/components/new-product/base/base-main/base-main.component\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Echos } from \"src/app/models/new-product/base/echos.model\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"app-mf-sg-main\",\r\n templateUrl: \"./mf-sg-main.component.html\",\r\n styleUrls: [\"./mf-sg-main.component.scss\"],\r\n})\r\nexport class MfSgMainComponent extends BaseMainComponent implements OnInit {\r\n proposal!: MortgageFireSingaporeProposal;\r\n\r\n constructor(\r\n public override route: ActivatedRoute,\r\n public override proposalActivityService: ProposalActivityService,\r\n public override masterPolicyService: MasterPolicyService,\r\n public override identityRolesService: IdentityRolesService,\r\n public override masterDataService: MasterDataService,\r\n public override cdRef: ChangeDetectorRef,\r\n public override productService: ProductService,\r\n public proposalService: MfSgProposalService\r\n ) {\r\n super(\r\n route,\r\n proposalActivityService,\r\n masterPolicyService,\r\n identityRolesService,\r\n masterDataService,\r\n cdRef,\r\n productService\r\n );\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n componentHelper.notifyPageUnload(\"mf-sg-main.component\", this.proposal);\r\n }\r\n\r\n /** Method to create a proposal instance */\r\n override instantiateProposalObject() {\r\n const productId = new GUID(this.proposalActivityService.readProductId()!);\r\n const proposal = new MortgageFireSingaporeProposal(\r\n productId,\r\n this.identityRolesService,\r\n this.masterDataService\r\n );\r\n this.proposal = proposal;\r\n this.proposalService.initialize(proposal);\r\n\r\n let productBase = this.productService.getProductBase(\r\n this.proposal.productType\r\n );\r\n\r\n switch (productBase) {\r\n case EnumSG.ProductBase.Citi:\r\n this.isCitiProduct = true;\r\n break;\r\n case EnumSG.ProductBase.HASE:\r\n this.isHaseProduct = true;\r\n break;\r\n case EnumSG.ProductBase.DBS:\r\n default: {\r\n this.isDbsProduct = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n override proposalLoaded = (event: KeyValue) => {\r\n var updatedProposal = event.value as MortgageFireSingaporeProposal;\r\n //20230202 GKH: update the proposal with newly updated\r\n this.proposal = updatedProposal;\r\n //do at $onInit event will not be the latest, thus do it here\r\n //search only will reach here\r\n this.getLastestProposalTransStatus(updatedProposal);\r\n };\r\n\r\n private getLastestProposalTransStatus(\r\n updatedProposal: MortgageFireSingaporeProposal\r\n ) {\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n if (common.isDefined(premiumData) && premiumData.length > 0) {\r\n var pph = premiumData[0].premiumPeriodHistory;\r\n if (common.isDefined(pph) && pph.length > 0) {\r\n this.pphRecordCount = pph.length;\r\n }\r\n }\r\n this.isNewBusiness = updatedProposal.transType === Enum.TransType.NEW;\r\n }\r\n\r\n override loadProposal() {\r\n // get Master Policies\r\n this.masterPolicyService\r\n .getListByProduct(this.proposal.productId, this.submittedDate)\r\n .subscribe((masterPolicyList: MasterPolicyEntity[]) => {\r\n const options = new Array>();\r\n if (common.isDefined(masterPolicyList)) {\r\n masterPolicyList.forEach((mp) => {\r\n options.push(new KeyValue(mp.description, mp.id));\r\n });\r\n }\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.options = options;\r\n });\r\n\r\n // Populate all requires master data for listing type questions before assigning the answer\r\n this.masterDataService\r\n .getSgIbgOccupancyRateList()\r\n .subscribe((sgIgbOccupancyRateListResponse) => {\r\n this.proposal.qsMaster.qs_master_occupancyRate!.options =\r\n sgIgbOccupancyRateListResponse;\r\n this.masterDataService\r\n .getSGIOccupationList()\r\n .subscribe((sgiOccupationListResponse) => {\r\n this.proposal.qsMaster.qs_master_insuredIndustry!.options =\r\n sgiOccupationListResponse;\r\n this.masterDataService\r\n .getSGIBGMachineryTypeList()\r\n .subscribe((sgiMachineryListResponse) => {\r\n this.proposal.qsMaster.qs_machinery_equipment!.options =\r\n sgiMachineryListResponse;\r\n if (\r\n this.proposal.productType ===\r\n EnumSG.MortgageFireSgProduct.IBGMAC\r\n ) {\r\n this.category = \"BUPC\";\r\n }\r\n this.masterDataService\r\n .getFinancialInstitutionBranches(this.category)\r\n .subscribe((codeResponse) => {\r\n const options = new Array>();\r\n codeResponse.forEach(\r\n (mp: { key: string; value: string }) => {\r\n options.push(new KeyValue(mp.key, mp.value));\r\n }\r\n );\r\n if (this.category === \"BUPC\") {\r\n this.proposal.qsMaster.qs_master_buPcCode!.options =\r\n options;\r\n } else {\r\n if (\r\n this.proposal.productType ===\r\n EnumSG.MortgageFireSgProduct.IBGMF\r\n ) {\r\n this.proposal.qsMaster.qs_master_buPcCode!.options =\r\n options;\r\n } else {\r\n this.proposal.qsMaster.qs_master_financialBranch!.options =\r\n options;\r\n }\r\n }\r\n\r\n //this is to init kendo's notifier\r\n this.proposalService.setVCR(this.baseNotifierAppendTo);\r\n // actual load of proposal from back end\r\n this.proposalService.createOrEdit();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n override proposalSaved = (event: KeyValue) => {\r\n const echos = event.value as Echos[];\r\n this.resetMandatoryTabColor();\r\n this.setMandatoryTabColor(\r\n this.proposalService.fieldValidationManager.echos\r\n );\r\n var updatedProposal = event.value as MortgageFireSingaporeProposal;\r\n //20230202 GKH: update the proposal with newly updated\r\n this.proposal = updatedProposal;\r\n //user could have created a NB and directly enter END status, thus without go thru proposalLoaded() event\r\n this.getLastestProposalTransStatus(updatedProposal);\r\n };\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ productName }}\r\n Loan Redeemed\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","// import * as Enums from './../../../../../../framework/enum.shared';\r\n\r\nimport { Component, Input } from \"@angular/core\";\r\nimport { Proposal } from \"../../../../../../../../models/new-product/base/proposal.model\";\r\nimport * as Enum from \"../../../../../../../../framework/enum.shared\";\r\nimport { MortgageFireSingaporeProposal } from \"../../../../../../../../../app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { MfSgBaseComponent } from \"../../mf-sg-base.component\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { MfSgProposalService } from \"../../../../../../../../../app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_PROPOSAL } from \"../../../../../../../../../app/app.module\";\r\n\r\nexport class TabModel {\r\n constructor(\r\n public index: number,\r\n public displayName: string,\r\n public visible: boolean\r\n ) {}\r\n}\r\n\r\n@Component({\r\n selector: \"mf-sg-pending-transaction-panel\",\r\n templateUrl: \"./mf-sg-pending-transaction-panel.component.html\",\r\n styleUrls: [\"./mf-sg-pending-transaction-panel.component.scss\"],\r\n})\r\nexport class MfSgPendingTransactionPanelComponent extends MfSgBaseComponent {\r\n proposal!: MortgageFireSingaporeProposal;\r\n // private $state: angular.ui.IStateService;\r\n proposalPendingStatus: string = \"\";\r\n productId!: String;\r\n\r\n constructor(\r\n public proposalService: MfSgProposalService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n super();\r\n this.route.queryParams.subscribe((params) => {\r\n this.productId = params[\"pdid\"];\r\n });\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n ngOnInit = () => {\r\n this.initialize();\r\n super.subscribeProposalLoadedNotifier(this.proposalLoaded);\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n };\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n if (\r\n common.isDefined(this.proposal.pendingTransaction) &&\r\n this.proposal.pendingTransaction != null\r\n ) {\r\n switch (this.proposal.pendingTransaction.transType) {\r\n case Enum.TransType.END:\r\n this.proposalPendingStatus = \"Endorsement\";\r\n break;\r\n case Enum.TransType.CAN:\r\n this.proposalPendingStatus = \"Cancellation\";\r\n break;\r\n case Enum.TransType.REN:\r\n this.proposalPendingStatus = \"Renewal\";\r\n break;\r\n default:\r\n }\r\n }\r\n };\r\n\r\n initialize() {}\r\n\r\n viewPendingTransaction = () => {\r\n const proposalId = this.proposalService.proposal.pendingTransaction?.pid;\r\n\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: this.productId,\r\n pid: proposalId,\r\n mpid: proposalId,\r\n action: 1,\r\n type: 1,\r\n },\r\n });\r\n };\r\n}\r\n","\r\n
\r\n A Pending {{ proposalPendingStatus }} Transaction was found for the\r\n policy\r\n {{ proposalService.proposal.policyNumber }}\r\n \r\n
\r\n
\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { Proposal } from \"../../../../../../../../models/new-product/base/proposal.model\";\r\nimport * as Enums from \"../../../../../../../../framework/enum.shared\";\r\nimport { MortgageFireSingaporeProposal } from \"../../../../../../../../../app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { KeyValue } from \"../../../../../../../../framework/domain-entity/key-value\";\r\nimport { MfSgBaseComponent } from \"../../mf-sg-base.component\";\r\nimport { common } from \"../../../../../../../../../app/framework/utils/common\";\r\nimport { MfSgProposalService } from \"../../../../../../../../../app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { pageLifeCycleNotifier } from \"../../../../../../../../../app/models/new-product/notifier/page-life-cycle-notifier\";\r\n\r\n@Component({\r\n selector: \"mf-sg-referral-validation-echo-panel\",\r\n templateUrl: \"./mf-sg-echo-referral-validation-panel.component.html\",\r\n styleUrls: [\"./mf-sg-echo-referral-validation-panel.component.scss\"],\r\n})\r\nexport class MfSgEchoReferralValidationPanelComponent extends MfSgBaseComponent {\r\n pageLoaded: boolean = false;\r\n proposal!: MortgageFireSingaporeProposal;\r\n isIncomplete: boolean = false;\r\n isReferred: boolean = false;\r\n isPendingChecker: boolean = false;\r\n showBusinessRulesManager: boolean = false;\r\n\r\n constructor(public proposalService: MfSgProposalService) {\r\n super();\r\n }\r\n\r\n ngOnDestroy = () => {\r\n super.unsubscribeRxjs();\r\n };\r\n\r\n ngOnInit(): void {\r\n super.subscribeProposalLoadedNotifier((event) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n this.showBusinessRulesManager = this.checkBusinessRulesManager();\r\n this.pageLoaded = true;\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isPendingChecker =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.PendingChecker\r\n ? true\r\n : false;\r\n });\r\n super.subscribeProposalSavedNotifier(this.proposalLoaded);\r\n }\r\n\r\n private proposalLoaded = (event: KeyValue) => {\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n this.showBusinessRulesManager = this.checkBusinessRulesManager();\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isPendingChecker =\r\n this.proposal.proposalStatus === Enums.ProposalStatus.PendingChecker\r\n ? true\r\n : false;\r\n };\r\n\r\n checkBusinessRulesManager() {\r\n let flag: boolean = false;\r\n if (\r\n common.isDefined(this.proposalService.businessRulesManager) &&\r\n common.isDefined(this.proposalService.businessRulesManager.echos)\r\n ) {\r\n return this.proposalService.businessRulesManager.echos.length > 0\r\n ? true\r\n : false;\r\n }\r\n return flag;\r\n }\r\n\r\n initialize() {}\r\n\r\n navigate(question: any) {\r\n pageLifeCycleNotifier.tab_request_notifier$.next(\r\n new KeyValue(question.tabId.toString(), question.key)\r\n );\r\n }\r\n}\r\n","\r\n
0\">\r\n \r\n
\r\n
\r\n

\r\n Submission is pending Chubb underwriting review due to the following\r\n reason(s):\r\n

\r\n \r\n Submission will be referring to Chubb underwriting review due to the\r\n following reason(s):\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ es.title }}\r\n \r\n\r\n
    \r\n \r\n \r\n {{ e.message }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export class FireInterestedParties {\r\n constructor(\r\n public name?: string,\r\n public natureOfInterest?: string,\r\n public nric?: string\r\n ) {\r\n this.Name = name;\r\n this.NatureOfInterest = natureOfInterest;\r\n this.NRIC = nric;\r\n }\r\n\r\n PartyID!: number;\r\n Name?: string;\r\n NatureOfInterest?: string;\r\n NRIC?: string;\r\n}\r\n","import * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { MortgageFireSGTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema\";\r\nimport { Component, Input, ViewChild } from \"@angular/core\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { componentHelper } from \"src/app/models/new-product/utils/component.helper\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport {\r\n MasterPolicyEntity,\r\n MasterPolicyService,\r\n} from \"src/app/services/master-policy.service\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { MfSgBaseComponent } from \"../../mf-sg-base.component\";\r\nimport { Culture, dateFormatter } from \"src/app/shared/date-formatter\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { ClientViewComponent } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport {\r\n ClientSearchComponent,\r\n clientSearchDlgInputArgs,\r\n} from \"src/app/components/shared/partials/mdClient/client-search/client-search.component\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { cloneDeep } from \"lodash\";\r\nimport { AddressHelpFormComponent } from \"src/app/components/shared/products/address-help-form/address-help-form.component\";\r\nimport * as InterfaceProduct from \"src/app/framework/interface.product\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\nimport { MdPreferredDeliveryMethodComponent } from \"src/app/components/shared/partials/md-preferred-delivery-method/md-preferred-delivery-method.component\";\r\nimport { GooglePlaceDirective } from \"ngx-google-places-autocomplete\";\r\nimport { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\nimport { ClientCreateComponent } from \"src/app/components/shared/partials/mdClient/client-create/client-create.component\";\r\nimport { clientCreateDlgInputArgs } from \"src/app/components/shared/partials/mdClient/client-create/base/base-client-create/client-create-dlg-input-args\";\r\nimport { FireInterestedParties } from \"../FireInterestedParties\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport {\r\n GridComponent,\r\n AddEvent,\r\n GridDataResult,\r\n RemoveEvent,\r\n SaveEvent,\r\n CancelEvent,\r\n EditEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { orderBy, SortDescriptor } from \"@progress/kendo-data-query\";\r\nimport {\r\n OccupationSearchComponent,\r\n occupationSearchDlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-occupation/occupation-search/occupation-search.component\";\r\nimport {\r\n MdConfirmationMessageV5Component,\r\n v5DlgInputArgs,\r\n} from \"src/app/components/shared/partials/md-confirmation-message-v5/md-confirmation-message-v5.component\";\r\n@Component({\r\n selector: \"ct-sg-master\",\r\n templateUrl: \"./ct-sg-master.component.html\",\r\n styleUrls: [\"./ct-sg-master.component.scss\"],\r\n})\r\nexport class CtSgMasterComponent extends MfSgBaseComponent {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public proposal!: MortgageFireSingaporeProposal;\r\n originalInceptionDate: string = \"\";\r\n masterPolicyList!: MasterPolicyEntity[];\r\n masterPolicyOptions!: Array<{ text: string; value: string }>;\r\n currency1HDBDisabled: boolean = true;\r\n hideDiscountCode: boolean = true;\r\n currency1HDBValue!: number;\r\n productId!: string;\r\n contactInformation: string = \"\";\r\n contactInformationPreferredDelivery: string = \"\";\r\n ibgMFDisabled: boolean = true;\r\n ibgMACDisabled: boolean = true;\r\n ///Chirag: 28-12-2018 Free Insurance Change For CBG Prodcut\r\n isFreeInsApplicable: boolean = true;\r\n NumOfFreeYears: number = 0;\r\n isEndorsement!: boolean;\r\n isUnderwriter!: boolean;\r\n isCancel!: boolean;\r\n /// DBSEP - 2050 : Automation Of LST\r\n isAutoLst: boolean = true; /*Need To Set From Auxilary Flag */\r\n isLstApplicable!: boolean;\r\n isRenewal!: boolean;\r\n isIBGProduct!: boolean;\r\n isCitiProduct!: boolean;\r\n isNewBusiness!: boolean;\r\n isGeneralEndorsement!: boolean;\r\n isChangeOfCorrespondenceAddressType!: boolean;\r\n isIncomplete!: boolean;\r\n isRenewalDraft: boolean = false;\r\n isReferred!: boolean;\r\n isChangeOfClientInfo!: boolean;\r\n isSameAsAddressTicked: boolean = false;\r\n isBuildingSIModified: boolean = false;\r\n hasMSIGPolicy: boolean = false;\r\n editMSIGPolicy: boolean = false;\r\n houseHoldContentsAmount!: MasterPolicyEntity;\r\n enableOccupiedAs: boolean = true;\r\n // Equipment Data\r\n equipmentData!: any[];\r\n equipmentDataLength!: number;\r\n currentSelectedEquipmentGridOptions: any;\r\n wnd: any;\r\n window: any;\r\n detailsTemplate: any;\r\n onFirstRun: boolean = true;\r\n nationalityList!: any[];\r\n\r\n // Interested party\r\n claimData!: any[];\r\n claimDataLength!: number;\r\n currentSelectedInterestedGridOptions: any;\r\n\r\n // Additional Insured Details\r\n otherInsuredData!: any[];\r\n otherInsuredDataLength!: number;\r\n readOnlyAddressField!: any[];\r\n currentSelectedInsuredGridOptions: any;\r\n msg_deleteWarning: string = \"Are you sure you wish to delete the item?\";\r\n msg_masterPolicyChangeWarning: string =\r\n \"Please confirm if you wish to change the Master Policy Number.\" +\r\n \" All the data in the Equipment Listing will be lost. Click OK to proceed, else please click Cancel?\";\r\n countryList!: any[];\r\n labelText: string = \"Additional Insured\";\r\n defaultNOI: string = \"\";\r\n editableNOI: boolean = true;\r\n showFreeInsuranceNoYear: boolean = false;\r\n interestedPartyGridLength = 30;\r\n\r\n isEditable: boolean = false;\r\n isNewClient: boolean = true;\r\n refundDisplayText!: string;\r\n preferredDeliveryText!: string;\r\n isMasterStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n category!: string;\r\n masterPolicyNumber: string = \"\";\r\n suppressNotification: boolean = false;\r\n isChecker: boolean = false;\r\n isMaker: boolean = false;\r\n displayManualUnderwriting: boolean = false;\r\n msg_manualUnderwritting_warning: string =\r\n \"Are you sure you wish to perform manual underwritting? \" +\r\n \"Once checked, there is no option to uncheck. Click OK to proceed, else please click Cancel.\";\r\n firstOnLoad: boolean = true;\r\n selectCoverageType!: string;\r\n isCustomDiscount: boolean = false;\r\n clientDictionary!: ClientEntity;\r\n lstDetailsTemplate: any = [\r\n {\r\n rowID: 0,\r\n account: \"8TPQZA\",\r\n reference: \"XOL\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 1,\r\n account: \"8TPQUJ\",\r\n reference: \"80% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 2,\r\n account: \"8TPQUK\",\r\n reference: \"15% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n {\r\n rowID: 3,\r\n account: \"8TPPPV\",\r\n reference: \"5% of LST\",\r\n percent1: 0,\r\n amount1: 0,\r\n percent2: 0,\r\n amount2: 0,\r\n },\r\n ];\r\n lstDefaultValue: any;\r\n @ViewChild(\"qs_risk_sameAsAddress_checkbox\", { static: false })\r\n public qs_risk_sameAsAddress_checkbox: any;\r\n\r\n @ViewChild(\"qs_master_manualUnderwritting\", { static: false })\r\n public qs_master_manualUnderwritting_checkbox: any;\r\n\r\n @ViewChild(\"riskInformation_autocomplete\")\r\n riskInformation_autocomplete!: GooglePlaceDirective;\r\n\r\n @ViewChild(\"policyInformation_autocomplete\", { static: false })\r\n public policyInformation_autocomplete!: GooglePlaceDirective;\r\n\r\n @ViewChild(\"qs_master_waiveMinimumPremium_checkbox\", { static: false })\r\n public qs_master_waiveMinimumPremium_checkbox: any;\r\n\r\n //https://github.com/skynet2/ngx-google-places-autocomplete/issues/91\r\n options = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [\"sg\"] },\r\n } as unknown as Options;\r\n public sort: SortDescriptor[] = [\r\n {\r\n field: \"PartyID\",\r\n dir: \"desc\",\r\n },\r\n ];\r\n hideInterestedPartiesActionCol: boolean = false;\r\n addButtonVisiiblity: boolean = false;\r\n labelTextInterestedParty: string = \"Add Additional Insured\";\r\n private editedRowIndex!: number | undefined;\r\n private editedProduct!: FireInterestedParties | undefined;\r\n\r\n public gridFireInterestedParties!: GridDataResult;\r\n public objFireInterestedParties!: FireInterestedParties[];\r\n\r\n qs_master_effectiveDate_datePicker_minDate?: Date;\r\n qs_master_effectiveDate_datePicker_maxDate?: Date;\r\n\r\n qs_master_poi_startDate_datePicker_minDate?: Date;\r\n qs_master_poi_startDate_datePicker_maxDate?: Date;\r\n constructor(\r\n public identityRolesService: IdentityRolesService, // private dialogActionNotifierService: DialogActionNotifierService,\r\n // private $scope: any, // private Enums: any, // private dialog: Dialog.IDialog,\r\n public proposalService: MfSgProposalService, // private $q: ng.IQService, // private api: Api,\r\n private masterPolicyService: MasterPolicyService,\r\n private masterDataService: MasterDataService, // private clientService: ClientService, // private _identity: Identity, private $timeout: ng.ITimeoutService\r\n private cdkDialogService: CdkDialogService,\r\n private clientService: ClientService,\r\n private notifier: NotifierService\r\n ) {\r\n super();\r\n\r\n this.isChecker = identityRolesService.isChecker ? true : false;\r\n this.isMaker = identityRolesService.isMaker ? true : false;\r\n this.tabId = MortgageFireSGTabSchema.master.index.toString();\r\n // // this.googleSearchAutoCompletePolicyInformation =\r\n // // new GoogleAddressAutoCompleteManager('policyInformation_autocomplete', 'sg', this.updateAddressValues);\r\n // this.googleSearchAutoCompleteRiskInformation =\r\n // new GoogleAddressAutoCompleteManager('riskInformation_autocomplete', 'sg', this.updateAddressValues);\r\n\r\n super.subscribeAnswerChangedNotifier(this.answerChanged);\r\n //reset\r\n this.gridFireInterestedParties = {\r\n data: [],\r\n total: 0,\r\n };\r\n // const scope = $scope;\r\n // $scope.$on('$destroy', () => {\r\n\r\n // $('#masterTab').empty();\r\n // scope.$destroy();\r\n // });\r\n }\r\n ngOnInit(): void {\r\n this.initialize();\r\n componentHelper.notifyPageLoaded(\"ct-sg-master.component\", this.proposal);\r\n\r\n this.masterDataService.getCountryList().subscribe((response: any[]) => {\r\n this.countryList = response;\r\n });\r\n // fetchMasterPolicyList is being call to for the equipment type listing usage\r\n this.fetchMasterPolicyList();\r\n\r\n super.subscribeProposalLoadedNotifier(this.proposalSaved);\r\n super.subscribeProposalSavedNotifier(this.proposalSaved);\r\n this.firstOnLoad = false;\r\n }\r\n ngOnDestroy() {\r\n this.unsubscribeRxjs();\r\n }\r\n private initialize() {\r\n this.nationalityList = new Array();\r\n this.proposal = this.proposalService.proposal;\r\n\r\n this.defaultNOI = \"Additional Insured\";\r\n this.editableNOI = false;\r\n\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n if (\r\n common.isDefined(this.proposal.originalInceptionDate) &&\r\n this.proposal.originalInceptionDate !== null\r\n ) {\r\n this.originalInceptionDate = dateFormatter.format(\r\n this.proposal.originalInceptionDate,\r\n Culture.enSg\r\n );\r\n } else {\r\n this.originalInceptionDate = dateFormatter.format(\r\n this.proposal?.qsMaster?.qs_master_poi_startDate?.answer,\r\n Culture.enSg\r\n );\r\n this.proposal.originalInceptionDate =\r\n this.proposal?.qsMaster?.qs_master_poi_startDate?.answer;\r\n }\r\n if (\r\n this.proposal.qsMaster?.qs_master_manualUnderwritting?.answer === \"True\"\r\n ) {\r\n // angular.element('#qs_master_manualUnderwritting_checkbox').prop('checked', true);\r\n this.manualUnderwritting();\r\n }\r\n super.subscribeTabLoadRenderer();\r\n\r\n this.fireRiskDetailsOccupiedAsValue();\r\n this.qs_fire_replacement_questionUpdate();\r\n\r\n this.getDisplayManualUnderwriting();\r\n\r\n //disable fire replacement value\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ) {\r\n if (this.proposal.qsMaster.qs_fire_replacement) {\r\n this.proposal.qsMaster.qs_fire_replacement.required = false;\r\n this.proposal.qsMaster.qs_fire_replacement.isDisabled = true;\r\n }\r\n }\r\n }\r\n manualUnderwritting = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n if (this.proposal.qsMaster.qs_fire_replacement)\r\n this.proposal.qsMaster.qs_fire_replacement.isDisabled = false;\r\n break;\r\n }\r\n this.currency1HDBDisabled = true;\r\n this.hideDiscountCode = true;\r\n if (this.proposal.qsMaster.qs_master_discountCode)\r\n this.proposal.qsMaster.qs_master_discountCode!.answer = \"0\";\r\n if (this.proposal.qsMaster.qs_master_customDiscountCode)\r\n this.proposal.qsMaster.qs_master_customDiscountCode!.answer = \"0\";\r\n };\r\n\r\n fireRiskDetailsOccupiedAsValue = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.currency1HDBDisabled = false;\r\n this.hideDiscountCode = false;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n this.currency1HDBDisabled = true;\r\n this.hideDiscountCode = false;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.currency1HDBDisabled = true;\r\n this.hideDiscountCode = false;\r\n if (this.proposal.qsMaster.qs_fire_mcst)\r\n this.proposal.qsMaster.qs_fire_mcst.isVisible = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n qs_fire_replacement_questionUpdate = (): void => {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.proposal.qsMaster.qs_fire_replacement!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_replacement!.required = false;\r\n this.proposal.qsMaster.qs_fire_outstandingLoanValue!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_outstandingLoanValue!.required = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n toShowQuestion(question: any) {\r\n let flag: boolean = false;\r\n if (this.proposal.proposalStatus != Enum.ProposalStatus.Incomplete) {\r\n switch (question) {\r\n case \"qs_master_preferredDeliveryMethod_Email\":\r\n flag =\r\n this.proposal?.qsMaster.qs_master_preferredDeliveryMethod_Email\r\n ?.answer != undefined\r\n ? true\r\n : false;\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email)\r\n flag =\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.readOnly =\r\n true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_MobileNo\":\r\n flag =\r\n this.proposal?.qsMaster.qs_master_preferredDeliveryMethod_MobileNo\r\n ?.answer != undefined\r\n ? true\r\n : false;\r\n if (\r\n this.proposal?.qsMaster.qs_master_preferredDeliveryMethod_MobileNo\r\n ?.readOnly\r\n )\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.readOnly =\r\n true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod\":\r\n flag =\r\n this.proposal?.qsMaster.qs_master_preferredDeliveryMethod?.answer !=\r\n undefined &&\r\n !this.proposal.qsMaster.qs_master_preferredDeliveryMethod.readOnly\r\n ? false\r\n : true;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_CorrAddress\":\r\n flag =\r\n this.proposal?.qsMaster\r\n .qs_master_preferredDeliveryMethod_CorrAddress?.answer !=\r\n undefined\r\n ? false\r\n : true;\r\n break;\r\n }\r\n }\r\n if (this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete) {\r\n switch (question) {\r\n case \"qs_master_preferredDeliveryMethod_Email\":\r\n flag = true;\r\n if (this.isGeneralEndorsement)\r\n if (this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email)\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.readOnly =\r\n false;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod_MobileNo\":\r\n flag = true;\r\n if (this.isGeneralEndorsement)\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo\r\n )\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.readOnly =\r\n false;\r\n break;\r\n case \"qs_master_preferredDeliveryMethod\":\r\n if (\r\n this.isCancel ||\r\n (this.isEndorsement &&\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.LoanRedemption)\r\n ) {\r\n flag = true;\r\n }\r\n }\r\n }\r\n return flag;\r\n }\r\n private getDisplayManualUnderwriting = () => {\r\n if (\r\n this.identityRolesService.isMaker ||\r\n this.identityRolesService.isUnderwriter\r\n ) {\r\n this.displayManualUnderwriting = true;\r\n } else {\r\n this.displayManualUnderwriting = false;\r\n }\r\n };\r\n fetchMasterPolicyList = () => {\r\n this.masterPolicyService\r\n .getList(this.identityRolesService.getIdentity().currentUser())\r\n .subscribe((response) => {\r\n // update list\r\n this.masterPolicyList = response;\r\n\r\n this.masterPolicyOptions = new Array<{ text: string; value: string }>();\r\n\r\n this.masterPolicyList.forEach((mp) => {\r\n const displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber +\r\n \" (MSIG: \" +\r\n mp.policyNumber +\r\n \")\";\r\n this.masterPolicyOptions.push({ text: displayText, value: mp.id });\r\n });\r\n });\r\n };\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return (\r\n ques!.answer == 1 || ques!.answer === \"True\" || ques!.answer === true\r\n );\r\n }\r\n updateModelAnswer(ques: QuestionEntity) {\r\n if (ques!.answer === \"True\") {\r\n ques.answer = false;\r\n } else if (ques!.answer === \"False\") {\r\n ques.answer = true;\r\n } else {\r\n ques.answer = !ques.answer;\r\n }\r\n }\r\n private answerChanged = (kv: KeyValue) => {\r\n const key = kv!.key;\r\n const question = kv.value;\r\n\r\n switch (key) {\r\n //// 12/10/2018 : Chirag Added Code For FreeInsurance Start/ End Date\r\n case this.proposal!.qsMaster.qs_fire_freeInsuranceNoYear!.key:\r\n if (this.isIBGProduct) this.setFreeInsuranceDate();\r\n else if (!this.isIBGProduct && this.proposal.proposalStatus === 6)\r\n this.setFreeInsuranceDateForCBG();\r\n break;\r\n /// 12/10/2018 : Chirag Added Method For FreeInsurance Start/End Date\r\n case this.proposal!.qsMaster.qs_master_poi_startDate!.key:\r\n this.qs_master_poi_startDate_onChange();\r\n this.setFreeInsurance_OnPOIDate_Endorsement();\r\n break;\r\n case this.proposal!.qsMaster.qs_fire_occupied!.key:\r\n this.qs_fire_occupied_onChange(\r\n this.proposal!.qsMaster.qs_fire_occupied!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_fire_replacement!.key:\r\n this.qs_fire_FSVSumInsured(\r\n this.proposal!.qsMaster.qs_fire_replacement!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredAddress_building!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress_building!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredAddress_lotunit!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress_lotunit!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredAddress1!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress1!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress1!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredAddress2!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredAddress2!,\r\n this.proposal.qsMaster.qs_risk_insuredAddress2!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredPostalCode!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredPostalCode!,\r\n this.proposal.qsMaster.qs_risk_insuredPostalCode!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredCity!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredCity!,\r\n this.proposal.qsMaster.qs_risk_insuredCity!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_insuredState!.key:\r\n this.copyMasterAddress_onChange(\r\n this.proposal.qsMaster.qs_master_insuredState!,\r\n this.proposal.qsMaster.qs_risk_insuredState!\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_masterPolicyNumber!.key:\r\n break;\r\n case this.proposal!.qsMaster.qs_master_occupancyRate!.key:\r\n case this.proposal!.qsMaster.qs_machinery_equipment!.key:\r\n // reset the aux if underwriter changes it\r\n // this.resetAuxiliaryModel();\r\n break;\r\n case this.proposal!.qsMaster.qs_risk_sameAsAddress!.key:\r\n this.qs_risk_sameAsAddress_onChange(\r\n this.proposal!.qsMaster.qs_risk_sameAsAddress!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_fire_building!.key:\r\n this.qs_master_qs_fire_building(\r\n this.proposal!.qsMaster.qs_fire_building!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_effectiveDate!.key:\r\n this.qs_master_effectiveDates_onChange(\r\n this.proposal!.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n break;\r\n\r\n case this.proposal!.qsMaster.qs_fire_freeInsuranceFirstYear!.key:\r\n this.qs_fire_freeInsuranceFirstYear_onChange(\r\n this.proposal!.qsMaster.qs_fire_freeInsuranceFirstYear!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_lst!.key:\r\n this.qs_master_lst_onChange(\r\n this.proposal!.qsMaster.qs_master_lst!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_preferredDeliveryMethod!.key:\r\n this.qs_master_preferredDeliveryMethodChange(\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer\r\n );\r\n break;\r\n case this.proposal!.qsMaster.qs_master_planType!.key:\r\n this.qs_master_planType_onChange(\r\n this.proposal.qsMaster.qs_master_planType!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_premiumPayment!.key:\r\n this.qs_master_premiumPayment_OnChange(\r\n this.proposal.qsMaster.qs_master_premiumPayment!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_customerType!.key:\r\n this.qs_master_customerType_OnChange(\r\n this.proposal.qsMaster.qs_master_customerType!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_discountCode!.key:\r\n this.qs_master_discountCode_OnChange(\r\n this.proposal.qsMaster.qs_master_discountCode!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_fire_outstandingLoanValue!.key:\r\n this.qs_fire_outstandingLoanValue_OnChange(\r\n this.proposal.qsMaster.qs_fire_outstandingLoanValue!.answer\r\n );\r\n break;\r\n case this.proposal.qsMaster.qs_master_customDiscountCode!.key:\r\n this.qs_master_customDiscountCode_OnChange(\r\n this.proposal.qsMaster.qs_master_customDiscountCode!.answer\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n private getMasterPolicyDetails = (): MasterPolicyEntity => {\r\n const masterPolicyNumber =\r\n this.proposal!.qsMaster.qs_master_masterPolicyNumber!.readAnswerAsString();\r\n let found: boolean = false;\r\n let masterPolicy = {};\r\n this.masterPolicyList.every((mp) => {\r\n if (mp.id === masterPolicyNumber) {\r\n found = true;\r\n masterPolicy = mp;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return masterPolicy;\r\n };\r\n\r\n private setExpiryDateForCiti = () => {\r\n let annualExpiryDate = cloneDeep(\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n const planType = this.proposal!.qsMaster.qs_master_planType!.answer - 1;\r\n if (planType >= 0) {\r\n if (annualExpiryDate.getMonth() >= 9) {\r\n annualExpiryDate = new Date(\r\n annualExpiryDate.getFullYear() + (planType + 1),\r\n 11,\r\n 31\r\n );\r\n } else {\r\n annualExpiryDate = new Date(\r\n annualExpiryDate.getFullYear() + planType,\r\n 11,\r\n 31\r\n );\r\n }\r\n } else {\r\n annualExpiryDate = new Date(\r\n annualExpiryDate.getFullYear() + 1,\r\n annualExpiryDate.getMonth(),\r\n annualExpiryDate.getDate() - 1\r\n );\r\n }\r\n return annualExpiryDate;\r\n };\r\n updateNativeElement(ele: any, value: boolean) {\r\n if (ele !== undefined) {\r\n ele.nativeElement.checked = value;\r\n }\r\n }\r\n private proposalSaved = (event: KeyValue) => {\r\n if (!this.isIBGProduct) {\r\n this.getContactInformation();\r\n }\r\n if (\r\n this.isIBGProduct &&\r\n this.proposal!.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!\r\n .answer == null\r\n ) {\r\n this.updateContactInformation();\r\n }\r\n let checkCorrespondingAddressCbg =\r\n this.proposal!.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.isAnswered() &&\r\n this.proposal!.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress!.answer.includes(\r\n \"|\"\r\n );\r\n\r\n if (checkCorrespondingAddressCbg) {\r\n this.correspondanceDeliveryAddress(null);\r\n }\r\n\r\n this.getDisplayManualUnderwriting();\r\n this.proposal = event.value as MortgageFireSingaporeProposal;\r\n // validate business rules after proposal is saved successfully\r\n this.proposalService.businessRulesManager.validate();\r\n this.qs_risk_sameAsAddress_onChange(\r\n this.proposal!.qsMaster.qs_risk_sameAsAddress!.answer\r\n );\r\n\r\n if (\r\n common.isDefined(this.proposal.originalInceptionDate) &&\r\n this.proposal.originalInceptionDate !== null\r\n ) {\r\n this.originalInceptionDate = dateFormatter.format(\r\n new Date(this.proposal.originalInceptionDate),\r\n Culture.enSg\r\n );\r\n } else {\r\n this.originalInceptionDate = dateFormatter.format(\r\n new Date(this.proposal!.qsMaster.qs_master_poi_startDate!.answer),\r\n Culture.enSg\r\n );\r\n this.proposal.originalInceptionDate =\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.answer;\r\n }\r\n\r\n this.isIncomplete =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ? true\r\n : false;\r\n this.isReferred =\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Referred\r\n ? true\r\n : false;\r\n this.isNewBusiness = this.proposal.transType === Enum.TransType.NEW;\r\n this.isEndorsement = this.proposal.transType === Enum.TransType.END;\r\n this.isRenewal = this.proposal.transType === Enum.TransType.REN;\r\n this.isUnderwriter = this.proposal.isUnderwriter;\r\n this.isCancel = this.proposal.transType === Enum.TransType.CAN;\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n\r\n this.isCitiProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? true\r\n : false;\r\n this.isGeneralEndorsement =\r\n this.proposal.transType === Enum.TransType.END &&\r\n this.proposal.endorsementType === Enum.EndorsementType.GeneralEndorsement;\r\n // console.log('ee' + this.proposal.qsMaster.qs_master_manualUnderwritting!.answer)\r\n // New question when copy should refer to default value\r\n const refreshQuestion = this.proposal.refreshedProposalEntity.questions;\r\n // tslint:disable-next-line:no-unused-expression\r\n\r\n // Raja - Disable Inception Date picker in Renewal screen\r\n if (this.isRenewal) {\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n }\r\n\r\n this.isRenewalDraft =\r\n (this.isIncomplete && this.isRenewal) || this.isReferred;\r\n\r\n // Allow To Edit MSIG policy for IBG prodcut\r\n const replacingPolicyNo =\r\n this.proposal!.qsMaster.qs_master_replacePolicyNo!.readAnswerAsString();\r\n this.hasMSIGPolicy =\r\n common.isDefined(replacingPolicyNo) && replacingPolicyNo!.trim() !== \"\";\r\n this.editMSIGPolicy =\r\n this.hasMSIGPolicy &&\r\n this.isIncomplete &&\r\n this.proposal.endorsementType === Enum.EndorsementType.GeneralEndorsement;\r\n if (this.hasMSIGPolicy) {\r\n this.proposal!.qsMaster.qs_master_replacePolicyNo!.displayText =\r\n \"Original Policy Number\";\r\n } else {\r\n this.proposal!.qsMaster.qs_master_replacePolicyNo!.displayText =\r\n \"Replacing Policy No\";\r\n }\r\n\r\n if (\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!.answer ===\r\n \"True\" ||\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n ) {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n true\r\n );\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!.isDisabled = true;\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!.answer = true;\r\n this.manualUnderwritting();\r\n } else {\r\n this.updateNativeElement(\r\n this.qs_master_manualUnderwritting_checkbox,\r\n false\r\n );\r\n this.proposal!.qsMaster.qs_master_manualUnderwritting!.isDisabled = false;\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.currency1HDBDisabled = false;\r\n this.hideDiscountCode = false;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.currency1HDBDisabled = true;\r\n this.hideDiscountCode = false;\r\n break;\r\n }\r\n }\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.isChangeOfCorrespondenceAddressType =\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfCorrespondenceAddress &&\r\n (this.isIncomplete ||\r\n (this.isReferred &&\r\n this.proposalService.proposal.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n !this.identityRolesService.isClaimant &&\r\n !this.identityRolesService.isProductReadOnly));\r\n\r\n this.isChangeOfClientInfo =\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.ChangeOfClientInfo &&\r\n (this.isIncomplete ||\r\n (this.isReferred &&\r\n this.proposalService.proposal.isUnderwriter &&\r\n !this.identityRolesService.isOperationUnderwriter &&\r\n !this.identityRolesService.isClaimant &&\r\n !this.identityRolesService.isProductReadOnly) ||\r\n this.identityRolesService.IsCSCBGSG);\r\n\r\n break;\r\n default:\r\n // do nothing\r\n }\r\n\r\n if (this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer > 0) {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer =\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer;\r\n } else {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer = 0;\r\n }\r\n\r\n if (\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete &&\r\n this.proposal.transType === Enum.TransType.NEW &&\r\n this.proposal!.customerMappingId! > 0 &&\r\n (this.identityRolesService.isMaker ||\r\n this.identityRolesService.isUnderwriter)\r\n ) {\r\n this.isEditable = true;\r\n } else {\r\n this.isEditable = false;\r\n }\r\n if (this.isEndorsement || this.isCancel) {\r\n // set display text for refund\r\n this.qs_master_refundDisplayText(\r\n this.proposal.qsMaster.qs_master_refund!\r\n );\r\n }\r\n if (\r\n (this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer ==\r\n null ||\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer ==\r\n \"\") &&\r\n this.proposal.proposalStatus == Enum.ProposalStatus.Incomplete\r\n )\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer = \"2\";\r\n this.qs_master_preferredDeliveryText(\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!\r\n );\r\n\r\n this.assignDefaultValueForHouseholdContentsCiti();\r\n\r\n //Assign defaulted value for Plan Type\r\n if (this.proposal.qsMaster.qs_master_planType!.answer == null) {\r\n this.proposal.qsMaster.qs_master_planType!.answer =\r\n this.proposal.qsMaster.qs_master_planType!.defaultAnswer;\r\n }\r\n\r\n //Assign defaulted value for customer Type\r\n if (this.proposal.qsMaster.qs_master_customerType!.answer == null) {\r\n this.proposal.qsMaster.qs_master_customerType!.answer =\r\n this.proposal.qsMaster.qs_master_customerType!.defaultAnswer;\r\n }\r\n\r\n if (this.proposal.qsMaster.qs_master_premiumPayment!.answer == null) {\r\n //Assign Defaulted Value for Payment Mode\r\n this.proposal.qsMaster.qs_master_premiumPayment!.answer =\r\n this.proposal.qsMaster.qs_master_premiumPayment!.defaultAnswer;\r\n }\r\n\r\n //Assign first item as selection if the list is only have 1 item\r\n if (\r\n Object!.keys(this.proposal.qsMaster.qs_master_masterPolicyNumber!.options)\r\n .length === 1 &&\r\n !this.proposal.qsMaster.qs_master_masterPolicyNumber!.isAnswered()\r\n ) {\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.answer =\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.options[0].value.toString();\r\n }\r\n\r\n //For Citi Private/Condo only\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ) {\r\n this.proposal.qsMaster.qs_fire_replacement!.displayText = \"\";\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.required = true;\r\n if (this.isEndorsement && this.isIncomplete) {\r\n // need to be editable in sum-insured, but not in edit\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.readOnly = false;\r\n this.proposal.qsMaster.qs_fire_replacement!.required = false; //auto-calculate/populate by cell in the table\r\n }\r\n\r\n this.proposal.qsMaster.qs_fire_building!.answer =\r\n this.proposal.qsMaster.qs_fire_building!.answer;\r\n this.proposal.qsMaster.qs_fire_replacement!.answer =\r\n this.proposal.qsMaster.qs_fire_replacement!.answer;\r\n\r\n if (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer ===\r\n \"True\" ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n ) {\r\n this.proposal.qsMaster.qs_fire_replacement!.isDisabled = false;\r\n } else {\r\n this.proposal.qsMaster.qs_fire_replacement!.isDisabled = true;\r\n }\r\n }\r\n\r\n //Assign the value to selectCoverageType so it can be use to do comparison during onChange\r\n this.selectCoverageType =\r\n this.proposal.qsMaster.qs_fire_coverageValueType!.answer;\r\n\r\n const component = this;\r\n //todo\r\n // const timeout = Application.angular_$timeout();\r\n setTimeout(() => {\r\n // // initializing the google auto completer search\r\n // this.googleSearchAutoCompleteRiskInformation.InitializeAddressAutoCompleteElement();\r\n // Other Insured\r\n component.otherInsuredData =\r\n component.proposal.qsMaster.qs_master_additionalInsured!.answer === \"\"\r\n ? []\r\n : component.processTableDataOtherInsured(\r\n component.proposal.qsMaster.qs_master_additionalInsured!.answer\r\n );\r\n component.otherInsuredDataLength = component.otherInsuredData.length;\r\n // Interested Parties\r\n component.claimData =\r\n component.proposal.qsMaster.qs_fire_interestedParties!.answer === \"\"\r\n ? []\r\n : component.processTableDataInteresedParty(\r\n component.proposal.qsMaster.qs_fire_interestedParties!.answer\r\n );\r\n component.claimDataLength = component.claimData.length;\r\n // Equipment\r\n component.equipmentData =\r\n component.proposal.qsMaster.qs_machinery_equipment!.answer === \"\"\r\n ? []\r\n : component.processTableDataEquipment(\r\n component.proposal.qsMaster.qs_machinery_equipment!.answer\r\n );\r\n component.equipmentDataLength = component.equipmentData.length;\r\n\r\n // const dataSource = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.claimsData_OnRead,\r\n // update: component.claimData_OnUpdate,\r\n // destroy: component.claimData_OnDestroy,\r\n // create: component.claimsData_OnCreate,\r\n // // cache: false,\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== \"read\" && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: \"PartyID\",\r\n // fields: {\r\n // PartyID: { editable: false },\r\n // Name: { validation: { required: true } },\r\n // NatureOfInterest: {\r\n // type: \"text\",\r\n // editable: component.editableNOI,\r\n // defaultValue: component.defaultNOI,\r\n // validation: {\r\n // required: true,\r\n // NatureOfInterestCheckLength: function (input) {\r\n // if (\r\n // input.val() !== \"\" &&\r\n // input.attr(\"data-maxlength\") > 10\r\n // ) {\r\n // input.attr(\r\n // \"data-NatureOfInterestCheckLength-msg\",\r\n // \"Max Length Reached\"\r\n // );\r\n // return false;\r\n // }\r\n // return true;\r\n // },\r\n // },\r\n // },\r\n // },\r\n // },\r\n // },\r\n // });\r\n\r\n // const dataSourceEquipment = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.equipmentData_OnRead,\r\n // update: component.equipmentData_OnUpdate,\r\n // destroy: component.equipmentData_OnDestroy,\r\n // create: component.equipmentData_OnCreate,\r\n\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== \"read\" && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: \"rowID\",\r\n // fields: {\r\n // rowID: { editable: false },\r\n // equipmentType: {\r\n // validation: { required: true },\r\n // defaultValue: {\r\n // key: \"\",\r\n // value: \"\",\r\n // },\r\n // },\r\n // typeOfFinancing: {\r\n // type: \"text\",\r\n // },\r\n // equipmentDescription: {\r\n // type: \"text\",\r\n // validation: { required: true },\r\n // },\r\n\r\n // sumInsured: {\r\n // type: \"number\",\r\n // defaultValue: 0,\r\n // validation: {\r\n // required: true,\r\n // sumInsuredCheckLength: function (input) {\r\n // if (input.attr(\"data-bind\") === \"value:sumInsured\") {\r\n // input.attr(\r\n // \"data-sumInsuredCheckLength-msg\",\r\n // \"Sum Insured is required\"\r\n // );\r\n // return input.val() !== \"\";\r\n // }\r\n // return true;\r\n // },\r\n // },\r\n // },\r\n // additionalInfo: {\r\n // defaultValue: \"\",\r\n // type: \"text\",\r\n // validation: {\r\n // required: true,\r\n // textAreaLengthcheck: function (input) {\r\n // if (input.attr(\"data-bind\") === \"value:additionalInfo\") {\r\n // input.attr(\r\n // \"data-textAreaLengthcheck-msg\",\r\n // \"Addtional Info is required\"\r\n // );\r\n // return input.val() !== \"\";\r\n // }\r\n // return true;\r\n // },\r\n // },\r\n // },\r\n // },\r\n // },\r\n // },\r\n // });\r\n\r\n // const dataSourceOtherInsured = new kendo.data.DataSource({\r\n // transport: {\r\n // read: component.otherInsuredData_OnRead,\r\n // update: component.otherInsuredData_OnUpdate,\r\n // destroy: component.otherInsuredData_OnDestroy,\r\n // create: component.otherInsuredData_OnCreate,\r\n\r\n // parameterMap: (options, operation) => {\r\n // if (operation !== \"read\" && options.models) {\r\n // return { models: kendo.stringify(options.models) };\r\n // }\r\n // },\r\n // },\r\n // batch: true,\r\n // pageSize: 5,\r\n // schema: {\r\n // model: {\r\n // id: \"otherInsuredID\",\r\n // fields: {\r\n // otherInsuredID: { editable: false },\r\n // otherInsuredName: { validation: { required: true } },\r\n // cin: { validation: { required: true } },\r\n // otherBRNo: { validation: { required: true } },\r\n // },\r\n // },\r\n // },\r\n // });\r\n\r\n // // fixed the typescript declaration bugs\r\n // const qs_master_interestedParty_table_grid: any = angular.element(\r\n // \"#qs_ct_additional_insured_table_grid\"\r\n // );\r\n // const showAction: boolean = component.proposal.qsMaster\r\n // .qs_fire_interestedParties.readOnly\r\n // ? true\r\n // : false;\r\n\r\n // const hideInterestedPartiesActionCol: boolean =\r\n // component.proposal.qsMaster.qs_fire_interestedParties.readOnly;\r\n // let labelTextInterestedParty = \"Add Additional Insured\";\r\n // // Destroy the kendo Grid if defined and recreate everytime\r\n // if (\r\n // common.isDefined(qs_master_interestedParty_table_grid.data(\"kendoGrid\"))\r\n // ) {\r\n // const interestedPartyGrid =\r\n // qs_master_interestedParty_table_grid.data(\"kendoGrid\");\r\n // interestedPartyGrid.destroy();\r\n // angular.element(\"#qs_ct_additional_insured_table_grid\").empty();\r\n // }\r\n\r\n // qs_master_interestedParty_table_grid.kendoGrid({\r\n // dataSource: dataSource,\r\n // pageable: true,\r\n // height: 280,\r\n // toolbar: [\r\n // {\r\n // text: labelTextInterestedParty,\r\n // name: \"create\",\r\n // },\r\n // ],\r\n // dataBound: () => {\r\n // const grid1 = angular\r\n // .element(\"#qs_ct_additional_insured_table_grid\")\r\n // .data(\"kendoGrid\");\r\n // if (\r\n // common.isDefined(grid1) &&\r\n // !this.proposal.qsMaster.qs_fire_interestedParties.readOnly\r\n // ) {\r\n // if (\r\n // grid1.dataSource.data().length >= this.interestedPartyGridLength\r\n // ) {\r\n // angular\r\n // .element(\"#qs_ct_additional_insured_table_grid .k-grid-add\")\r\n // .hide();\r\n // } else {\r\n // angular\r\n // .element(\"#qs_ct_additional_insured_table_grid .k-grid-add\")\r\n // .show();\r\n // }\r\n // } else {\r\n // angular\r\n // .element(\"#qs_ct_additional_insured_table_grid .k-grid-add\")\r\n // .hide();\r\n // }\r\n // angular\r\n // .element(\r\n // \"#qs_ct_additional_insured_table_grid .k-grid-myDelete span\"\r\n // )\r\n // .addClass(\"k-icon k-delete\");\r\n // },\r\n // columns: [\r\n // {\r\n // field: \"Name\",\r\n // title: \"Name\",\r\n // width: \"350px\",\r\n // },\r\n // {\r\n // field: \"NatureOfInterest\",\r\n // title: \"Nature of Interest\",\r\n // width: \"250px\",\r\n // },\r\n // {\r\n // field: \"NRIC\",\r\n // title: \"NRIC\",\r\n // width: \"250px\",\r\n // },\r\n // {\r\n // hidden: hideInterestedPartiesActionCol,\r\n // field: \"command\",\r\n // command: [\r\n // \"edit\",\r\n // {\r\n // name: \"myDelete\",\r\n // text: \"Delete\",\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedInterestedGridOptions = $(\r\n // e.currentTarget\r\n // ).closest(\"tr\");\r\n\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: \"qs_ct_additional_insured_table_grid\",\r\n // };\r\n\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // \"shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html\",\r\n // \"SharedConfirmationMessageV1Controller\",\r\n // data,\r\n // component.confirmationModalCloseForDeleteAction,\r\n // undefined,\r\n // undefined,\r\n // undefined,\r\n // false,\r\n // \"standardModal\"\r\n // );\r\n // },\r\n // },\r\n // ],\r\n // title: \"Action\",\r\n // width: \"200px\",\r\n // attributes: { class: \"textAlignCenter\" },\r\n // headerAttributes: { style: \"text-align:center !important\" },\r\n // },\r\n // ],\r\n // edit: component.onGridEditing,\r\n // editable: { mode: \"inline\", confirmation: false },\r\n // });\r\n\r\n // component.wnd = $(\"#equipmentDetails\")\r\n // .kendoWindow({\r\n // title: \"Equipment Details\",\r\n // modal: true,\r\n // visible: false,\r\n // resizable: false,\r\n // width: 550,\r\n // })\r\n // .data(\"kendoWindow\");\r\n\r\n // const equipTemplateHtml = $(\"#equipmentTemplate\").html();\r\n // component.detailsTemplate = Global.isDefined(equipTemplateHtml)\r\n // ? kendo.template(equipTemplateHtml)\r\n // : \"\";\r\n\r\n // const qs_master_equipment_table_grid: any = angular.element(\r\n // \"#qs_machinery_equipment_table_grid\"\r\n // );\r\n // const hideEquipmentActionCol: boolean =\r\n // component.proposal.qsMaster.qs_machinery_equipment.readOnly;\r\n\r\n // if (common.isDefined(qs_master_equipment_table_grid.data(\"kendoGrid\"))) {\r\n // const equipmentGrid = qs_master_equipment_table_grid.data(\"kendoGrid\");\r\n // equipmentGrid.destroy();\r\n // angular.element(\"#qs_machinery_equipment_table_grid\").empty();\r\n // angular.element(\"#qs_machinery_equipment_table_grid\").off(\"click\");\r\n // }\r\n\r\n // let toolbar: any = [\r\n // {\r\n // text: \"Add New Equipment\",\r\n // name: \"create\",\r\n // },\r\n // ];\r\n\r\n // if (!component.isEndorsement) {\r\n // toolbar = component.proposal.qsMaster.qs_machinery_equipment.readOnly\r\n // ? \"\"\r\n // : toolbar;\r\n // } else {\r\n // if (\r\n // this.proposal.refreshedProposalEntity.proposalReadOnly &&\r\n // component.proposal.qsMaster.qs_machinery_equipment.readOnly\r\n // ) {\r\n // toolbar = \"\";\r\n // }\r\n // }\r\n\r\n // const showEquipAction: boolean = component.proposal.qsMaster\r\n // .qs_machinery_equipment.readOnly\r\n // ? true\r\n // : false;\r\n // timeout(() => {\r\n // if (showEquipAction) {\r\n // $(\r\n // \"#qs_machinery_equipment_table_grid .k-grid-edit,#qs_machinery_equipment_table_grid .k-grid-myDelete\"\r\n // ).hide();\r\n // }\r\n // if (!this.isIBGProduct) {\r\n // /// 30/09/2019 : INC20585048 DBS EPL - FREE INSURANCE DISPLAY DISCREPANCIES and Occcupation Filter issue\r\n // this.filterOccupied(\r\n // this.proposal.qsMaster.qs_master_masterPolicyNumber!.answer\r\n // );\r\n // }\r\n // }, 500);\r\n\r\n // qs_master_equipment_table_grid.kendoGrid({\r\n // dataSource: dataSourceEquipment,\r\n // pageable: true,\r\n // height: 280,\r\n // draggable: false,\r\n // toolbar: toolbar,\r\n // dataBound: () => {\r\n // const grid1 = angular\r\n // .element(\"#qs_machinery_equipment_table_grid\")\r\n // .data(\"kendoGrid\");\r\n // if (\r\n // common.isDefined(grid1) &&\r\n // this.proposal.qsMaster.qs_machinery_equipment.readOnly\r\n // ) {\r\n // angular\r\n // .element(\"#qs_machinery_equipment_table_grid .k-grid-add\")\r\n // .hide();\r\n // }\r\n // $(\r\n // \"#qs_machinery_equipment_table_grid .k-grid-myDelete span\"\r\n // ).addClass(\"k-icon k-delete\");\r\n // },\r\n // columns: [\r\n // {\r\n // field: \"equipmentType\",\r\n // title: \"Type of Equipment\",\r\n // width: \"250px\",\r\n // editor: component.equipmentTypeSectionDropdown,\r\n // template: \"#=equipmentType!.key#\",\r\n // },\r\n // {\r\n // field: \"typeOfFinancing\",\r\n // title: \"Serial Number\",\r\n // width: \"150px\",\r\n // },\r\n // {\r\n // field: \"equipmentDescription\",\r\n // title: \"Description\",\r\n // width: \"250px\",\r\n // },\r\n\r\n // {\r\n // field: \"sumInsured\",\r\n // title: \"Sum Insured\",\r\n // width: \"140px\",\r\n // editor: component.equipmentSumInsuredEditor,\r\n // template: \"$ #=sumInsured#\",\r\n // },\r\n // {\r\n // field: \"additionalInfo\",\r\n // title: \"Additional Info\",\r\n // editor: component.equipmentAddtionalInfoTextArea,\r\n // template: \"#=additionalInfo#\",\r\n // width: \"250px\",\r\n // },\r\n // {\r\n // // hidden: hideEquipmentActionCol,\r\n // field: \"command\",\r\n // command: [\r\n // \"edit\",\r\n // {\r\n // name: \"myDelete\",\r\n // text: \"Delete\",\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedEquipmentGridOptions = $(\r\n // e.currentTarget\r\n // ).closest(\"tr\");\r\n\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: \"qs_machinery_equipment_table_grid\",\r\n // };\r\n\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // \"shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html\",\r\n // \"SharedConfirmationMessageV1Controller\",\r\n // data,\r\n // component.confirmationModalCloseForDeleteAction,\r\n // undefined,\r\n // undefined,\r\n // undefined,\r\n // false,\r\n // \"standardModal\"\r\n // );\r\n // },\r\n // },\r\n // {\r\n // text: \"Addt. Info\",\r\n // click: component.equipListShowDetails,\r\n // name: \"add-info\",\r\n // },\r\n // ],\r\n // title: \"Action\",\r\n // width: \"300px\",\r\n // attributes: { class: \"textAlignCenter\" },\r\n // headerAttributes: { style: \"text-align:center !important\" },\r\n // },\r\n // ],\r\n // edit: component.onGridEditing,\r\n // selectable: true,\r\n // editable: {\r\n // mode: \"popup\",\r\n // confirmation: false,\r\n // draggable: false,\r\n // window: {\r\n // // title: \"My Custom Title\",\r\n // // animation: false,\r\n // width: \"700px\",\r\n // height: \"500px\",\r\n // },\r\n // },\r\n // });\r\n\r\n // angular\r\n // .element(\"#qs_machinery_equipment_table_grid\")\r\n // .on(\"click\", \".k-grid-add\", (e) => {\r\n // e.preventDefault();\r\n // if (\r\n // !this.proposal.qsMaster.qs_master_masterPolicyNumber.isAnswered()\r\n // ) {\r\n // if (\r\n // common.isDefined(\r\n // $(\"#qs_machinery_equipment_table_grid\").data(\"kendoGrid\")\r\n // )\r\n // ) {\r\n // const equipmentGrid = angular\r\n // .element(\"#qs_machinery_equipment_table_grid\")\r\n // .data(\"kendoGrid\");\r\n // equipmentGrid.removeRow($(e.currentTarget).closest(\"tr\"));\r\n // }\r\n // const notification = {\r\n // message: \"Please choose a master Policy to add Equipment.\",\r\n // };\r\n // this._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // \"shared/partials/mdInformationMessage/informationMessageController.html\",\r\n // \"InformationMessageController\",\r\n // notification,\r\n // \"\",\r\n // undefined,\r\n // undefined,\r\n // undefined,\r\n // false,\r\n // \"standardModal\"\r\n // );\r\n // } else {\r\n // component.fetchEquipmentDropdownList();\r\n // }\r\n // });\r\n\r\n // angular\r\n // .element(\"#qs_machinery_equipment_table_grid\")\r\n // .on(\"click\", \".k-grid-edit\", (e) => {\r\n // timeout(() => {\r\n // component.setEquipmentDropdownList();\r\n // }, 10);\r\n // });\r\n\r\n // const qs_master_otherInsured_table_grid: any = angular.element(\r\n // \"#qs_master_otherInsured_table_grid\"\r\n // );\r\n // const hideOtherInsuredNameActionCol: boolean =\r\n // component.proposal.qsMaster.qs_master_otherInsuredName.readOnly;\r\n\r\n // if (\r\n // common.isDefined(qs_master_otherInsured_table_grid.data(\"kendoGrid\"))\r\n // ) {\r\n // const otherInsuredGrid =\r\n // qs_master_otherInsured_table_grid.data(\"kendoGrid\");\r\n // otherInsuredGrid.destroy();\r\n // angular.element(\"#qs_master_otherInsured_table_grid\").empty();\r\n // }\r\n\r\n // qs_master_otherInsured_table_grid.kendoGrid({\r\n // dataSource: dataSourceOtherInsured,\r\n // pageable: true,\r\n // height: 280,\r\n // toolbar: [\r\n // {\r\n // text: \"Add Additional Insured\",\r\n // name: \"create\",\r\n // },\r\n // ],\r\n // dataBound: () => {\r\n // const grid1 = angular\r\n // .element(\"#qs_master_otherInsured_table_grid\")\r\n // .data(\"kendoGrid\");\r\n // if (\r\n // common.isDefined(grid1) &&\r\n // !this.proposal.qsMaster.qs_master_otherInsuredName.readOnly\r\n // ) {\r\n // if (\r\n // grid1.dataSource.data().length >= this.interestedPartyGridLength\r\n // ) {\r\n // angular\r\n // .element(\"#qs_master_otherInsured_table_grid .k-grid-add\")\r\n // .hide();\r\n // } else {\r\n // angular\r\n // .element(\"#qs_master_otherInsured_table_grid .k-grid-add\")\r\n // .show();\r\n // }\r\n // } else {\r\n // angular\r\n // .element(\"#qs_master_otherInsured_table_grid .k-grid-add\")\r\n // .hide();\r\n // }\r\n // $(\r\n // \"#qs_master_otherInsured_table_grid .k-grid-myDelete span\"\r\n // ).addClass(\"k-icon k-delete\");\r\n // },\r\n // columns: [\r\n // {\r\n // field: \"otherInsuredName\",\r\n // title: \"Insured Name\",\r\n // width: \"350px\",\r\n // },\r\n // {\r\n // field: \"cin\",\r\n // title: \"CIN\",\r\n // width: \"325px\",\r\n // },\r\n // {\r\n // field: \"otherBRNo\",\r\n // title: \"Business Registration Number\",\r\n // width: \"275px\",\r\n // },\r\n // {\r\n // hidden: hideOtherInsuredNameActionCol,\r\n // field: \"command\",\r\n // command: [\r\n // \"edit\",\r\n // {\r\n // name: \"myDelete\",\r\n // text: \"Delete\",\r\n // click: function (e) {\r\n // e.preventDefault();\r\n // // assign the selected row\r\n // component.currentSelectedInsuredGridOptions = $(\r\n // e.currentTarget\r\n // ).closest(\"tr\");\r\n\r\n // const data = {\r\n // message: component.msg_deleteWarning,\r\n // tableName: \"qs_master_otherInsured_table_grid\",\r\n // };\r\n\r\n // component._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // \"shared/partials/mdConfirmationMessageV1/sharedConfirmationMessageV1.html\",\r\n // \"SharedConfirmationMessageV1Controller\",\r\n // data,\r\n // component.confirmationModalCloseForDeleteAction,\r\n // undefined,\r\n // undefined,\r\n // undefined,\r\n // false,\r\n // \"standardModal\"\r\n // );\r\n // },\r\n // },\r\n // ],\r\n // title: \"Action\",\r\n // width: \"200px\",\r\n // attributes: { class: \"textAlignCenter\" },\r\n // headerAttributes: { style: \"text-align:center !important\" },\r\n // },\r\n // ],\r\n // edit: component.onGridEditing,\r\n // editable: { mode: \"inline\", confirmation: false },\r\n // });\r\n\r\n let annualExpiryDate = cloneDeep(\r\n component.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n let minInceptionDate = new Date();\r\n const planTypeYear =\r\n this.proposal.qsMaster.qs_master_planType != null &&\r\n this.proposal.qsMaster.qs_master_planType.answer != null\r\n ? +this.proposal.qsMaster.qs_master_planType.answer\r\n : 0;\r\n if (planTypeYear > 0) {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + planTypeYear);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n } else {\r\n annualExpiryDate.setYear(annualExpiryDate.getFullYear() + 1);\r\n annualExpiryDate.setDate(annualExpiryDate.getDate() - 1);\r\n }\r\n minInceptionDate.setDate(minInceptionDate.getDate() - 30);\r\n if (component.proposal.isBroker) {\r\n const timeDiff = Math.abs(\r\n new Date().getTime() -\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n this.qs_master_poi_startDate_datePicker_minDate = minInceptionDate;\r\n this.qs_master_poi_startDate_datePicker_maxDate = annualExpiryDate;\r\n } else {\r\n this.qs_master_poi_startDate_datePicker_minDate = new Date(1900, 1, 1);\r\n this.qs_master_poi_startDate_datePicker_maxDate = new Date(\r\n 2999,\r\n 12,\r\n 31\r\n );\r\n }\r\n if (\r\n component.proposal.proposalStatus != Enum.ProposalStatus.Accepted &&\r\n this.proposal.qsMaster.qs_master_planType!.answer == null\r\n ) {\r\n component.proposal.qsMaster.qs_master_poi_endDate!.answer =\r\n annualExpiryDate;\r\n }\r\n component.qs_master_effectiveDate_onChange();\r\n if (\r\n (component.isEndorsement &&\r\n component.proposal.endorsementType !==\r\n Enum.EndorsementType.ChangeOfPOI) ||\r\n component.isCancel\r\n ) {\r\n component.proposal.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n }\r\n\r\n if (this.isIBGProduct) {\r\n setTimeout(() => {\r\n // // empty country value to search for all\r\n // this.googleSearchAutoCompletePolicyInformation =\r\n // new GoogleAddressAutoCompleteManager(\r\n // \"policyInformation_autocomplete\",\r\n // \"\",\r\n // this.updateAddressValues\r\n // );\r\n this.options = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [] }, //no country restriction\r\n } as unknown as Options;\r\n // this.googleSearchAutoCompletePolicyInformation.InitializeAddressAutoCompleteElement();\r\n if (this.proposal.isBroker) {\r\n this.proposal.qsMaster.qs_master_insuredNo!.readOnly = true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_building!.readOnly =\r\n true;\r\n this.proposal.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly =\r\n true;\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n this.proposal.transType === Enum.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enum.EndorsementType.GeneralEndorsement &&\r\n this.proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n this.proposal.qsMaster.qs_master_insuredNo!.readOnly = false;\r\n }\r\n }\r\n this.qs_master_lst_onChange(\r\n this.proposal.qsMaster.qs_master_lst!.answer\r\n );\r\n }, 200);\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_waiveMinimumPremium!.answer === \"True\"\r\n ) {\r\n if (common.isDefined(this.qs_master_waiveMinimumPremium_checkbox)) {\r\n this.qs_master_waiveMinimumPremium_checkbox.nativeElement.checked =\r\n true;\r\n }\r\n }\r\n }, 200);\r\n this.bindGrid(this.proposal.qsMaster.qs_fire_interestedParties!);\r\n };\r\n private bindGrid(qs_fire_interestedParties: QuestionEntity) {\r\n let isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n if (!isIBGProduct) {\r\n this.labelTextInterestedParty = \"Add Additional Insured\";\r\n }\r\n\r\n this.hideInterestedPartiesActionCol =\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.readOnly!;\r\n\r\n if (qs_fire_interestedParties.answer) {\r\n const obj: FireInterestedParties[] = JSON.parse(\r\n qs_fire_interestedParties.answer\r\n );\r\n this.gridFireInterestedParties = {\r\n data: obj,\r\n total: obj.length,\r\n };\r\n }\r\n\r\n if (\r\n qs_fire_interestedParties.readOnly !== undefined &&\r\n !qs_fire_interestedParties.readOnly\r\n ) {\r\n if (\r\n this.gridFireInterestedParties?.total >= this.interestedPartyGridLength\r\n ) {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n this.addButtonVisiiblity = false;\r\n } else {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').show();\r\n this.addButtonVisiiblity = true;\r\n }\r\n } else {\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-add').hide();\r\n this.addButtonVisiiblity = false;\r\n }\r\n //angular.element('#qs_fire_interestedParties_table_grid .k-grid-myDelete span').addClass('k-icon k-delete');//todo\r\n }\r\n public addHandler(args: AddEvent): void {\r\n args.sender.addRow(new FireInterestedParties(\"\", this.defaultNOI, \"\"));\r\n }\r\n public editHandler(args: EditEvent): void {\r\n // close the previously edited item\r\n this.closeEditor(args.sender);\r\n // edit the row\r\n args.sender.editRow(args.rowIndex);\r\n }\r\n\r\n public cancelHandler(args: CancelEvent): void {\r\n // call the helper method-\r\n this.closeEditor(args.sender, args.rowIndex);\r\n }\r\n private getPartyId(): number {\r\n let parties: any = this.gridFireInterestedParties!.data!.map((item) => {\r\n return item.PartyID;\r\n });\r\n return Math.max(...parties) + 1;\r\n }\r\n public saveHandler(args: SaveEvent): void {\r\n // update the data source\r\n if (args.isNew) {\r\n const oldData: any = args.sender.data;\r\n let PartyId = oldData.data.length > 0 ? this.getPartyId() : 1;\r\n let NRIC = args.dataItem.NRIC;\r\n let NatureOfInterest = args.dataItem.NatureOfInterest;\r\n let Name = args.dataItem.Name;\r\n const obj: any = {\r\n PartyID: PartyId,\r\n Name: Name,\r\n NatureOfInterest: NatureOfInterest,\r\n NRIC: NRIC,\r\n };\r\n oldData.data.push(obj);\r\n this.gridFireInterestedParties = {\r\n data: orderBy(oldData.data, this.sort),\r\n total: oldData.data.length,\r\n };\r\n }\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.answer = JSON.stringify(\r\n this.gridFireInterestedParties.data\r\n );\r\n // close the editor, that is, revert the row back into view mode\r\n args.sender.closeRow(args.rowIndex);\r\n }\r\n\r\n private confirmationRemoveAdditionalInsured(\r\n data: any,\r\n args: RemoveEvent\r\n ): void {\r\n // remove the current dataItem from the current data source\r\n if (data.status === \"yes\") {\r\n this.gridFireInterestedParties.data.splice(args.rowIndex, 1);\r\n this.proposal!.qsMaster.qs_fire_interestedParties!.answer =\r\n JSON.stringify(this.gridFireInterestedParties.data);\r\n }\r\n }\r\n public removeHandler(args: RemoveEvent): void {\r\n const dataMsg = {\r\n message: this.msg_deleteWarning,\r\n };\r\n\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: {},\r\n message: dataMsg.message,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationRemoveAdditionalInsured(result, args);\r\n }\r\n });\r\n }\r\n\r\n private closeEditor(\r\n grid: GridComponent,\r\n rowIndex = this.editedRowIndex\r\n ): void {\r\n // close the editor\r\n grid.closeRow(rowIndex);\r\n // revert the data item to original state\r\n }\r\n\r\n private qs_master_effectiveDates_onChange = (data: any) => {\r\n this.proposalService.businessRulesManager.validateCancellationBackdating();\r\n this.proposalService.businessRulesManager.validateLoanRedemptionBackdating();\r\n };\r\n\r\n private qs_master_effectiveDate_onChange = (): void => {\r\n /** Endorsement Restrictions for Effective Date\r\n * -------------------------------------------------------------------\r\n *\r\n * 1. General Endorsement\r\n * 2. Change Of Correspondence Address\r\n * 3. Change of Sum Insured\r\n * Uw and Broker :\r\n * -------------------------\r\n * Min : Previous Endorsement Effective Date\r\n * Max: Policy End date\r\n * -----------------------------------------\r\n * 4. Loan Redemption:\r\n * Min : Policy Start Date\r\n * Max: Policy End Date\r\n * --------------------------------------------\r\n * 5. Change Of POI\r\n * UW:\r\n * ----------\r\n * Min : No Restriction\r\n * Max : No Restriction\r\n * Broker:\r\n * ---------\r\n * Min : 1 month from Policy Start Date\r\n * Max : No Restriction\r\n * -----------------------------------------\r\n * 6. Change Of Sum Insured:\r\n * Min : Policy Start Date\r\n * Max: Policy End Date\r\n * --------------------------------------------\r\n */\r\n let minEffectiveDate =\r\n common.isDefined(this.proposal.minimumEffectiveDate) &&\r\n this.proposal.minimumEffectiveDate !== null\r\n ? new Date(this.proposal.minimumEffectiveDate)\r\n : new Date(this.proposal.qsMaster.qs_master_poi_startDate!.answer);\r\n if (\r\n this.proposal.minimumEffectiveDate < this.proposal.originalInceptionDate\r\n ) {\r\n minEffectiveDate = this.proposal.originalInceptionDate;\r\n }\r\n const policyStartDate = new Date(\r\n this.proposal!.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const currentPOI = new Date(new Date().setHours(0, 0, 0, 0));\r\n const currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const timeDiff = Math.abs(\r\n policyStartDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n let minEffectiveDateLoanRedemption = policyStartDate;\r\n if (\r\n policyStartDate < currentDate &&\r\n diffDays > EnumSG.BackdatedRules.MaximumAllowedLoanRedemption\r\n ) {\r\n // minEffectiveDateLoanRedemption = new Date(currentPOI.setDate(currentPOI.getDate() - 14));\r\n minEffectiveDateLoanRedemption = minEffectiveDate;\r\n }\r\n if (this.isEndorsement) {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(1900, 1, 1);\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(2999, 12, 31);\r\n\r\n switch (this.proposal.endorsementType) {\r\n case Enum.EndorsementType.GeneralEndorsement:\r\n {\r\n if (this.isIBGProduct) {\r\n this.qs_master_effectiveDate_datePicker_minDate =\r\n minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate =\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer;\r\n } else {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfCorrespondenceAddress:\r\n case Enum.EndorsementType.ChangeOfClientInfo:\r\n case Enum.EndorsementType.ChangeOfAdditionalInsured:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n case Enum.EndorsementType.LoanRedemption:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate =\r\n minEffectiveDateLoanRedemption;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfPOI:\r\n if (this.proposal.isUnderwriter) {\r\n {\r\n this.qs_master_poi_startDate_datePicker_minDate = new Date(\r\n 1900,\r\n 1,\r\n 1\r\n );\r\n this.qs_master_poi_startDate_datePicker_maxDate = new Date(\r\n 2999,\r\n 12,\r\n 31\r\n );\r\n }\r\n }\r\n break;\r\n case Enum.EndorsementType.ChangeOfSumInsured:\r\n {\r\n this.qs_master_effectiveDate_datePicker_minDate = minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n } else if (this.isCancel) {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n let MIPEffectiveDate = minEffectiveDate;\r\n if (this.proposal.loanRedeemed) {\r\n if (minEffectiveDate < minEffectiveDateLoanRedemption) {\r\n MIPEffectiveDate = minEffectiveDateLoanRedemption;\r\n }\r\n }\r\n this.qs_master_effectiveDate_datePicker_minDate = MIPEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n break;\r\n default:\r\n this.qs_master_effectiveDate_datePicker_minDate = minEffectiveDate;\r\n this.qs_master_effectiveDate_datePicker_maxDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_endDate!.answer\r\n );\r\n break;\r\n }\r\n }\r\n };\r\n\r\n // private confirmationModalCloseForDeleteAction = (data: any): void => {\r\n // if (data.confirmation) {\r\n // let options = \"\";\r\n // switch (data.tableName) {\r\n // case \"qs_machinery_equipment_table_grid\":\r\n // options = this.currentSelectedEquipmentGridOptions;\r\n // $(\"#qs_machinery_equipment_table_grid\")\r\n // .data(\"kendoGrid\")\r\n // .removeRow(options);\r\n // break;\r\n // case \"qs_ct_additional_insured_table_grid\":\r\n // options = this.currentSelectedInterestedGridOptions;\r\n // $(\"#qs_ct_additional_insured_table_grid\")\r\n // .data(\"kendoGrid\")\r\n // .removeRow(options);\r\n // break;\r\n // case \"qs_master_otherInsured_table_grid\":\r\n // options = this.currentSelectedInsuredGridOptions;\r\n // $(\"#qs_master_otherInsured_table_grid\")\r\n // .data(\"kendoGrid\")\r\n // .removeRow(options);\r\n // break;\r\n // default:\r\n // break;\r\n // }\r\n // } else {\r\n // return;\r\n // }\r\n // };\r\n\r\n public $postLink = () => {};\r\n\r\n // private resetAuxiliaryModel = () => {\r\n // // reset the aux if underwriter changes it\r\n // if (this.isUnderwriter && this.isIBGProduct) {\r\n // const data = {\r\n // message: \"Premium Details will be refreshed after saved.\",\r\n // };\r\n\r\n // this._dialog = Dialog.DialogModal.Instance.modalLarge(\r\n // \"shared/partials/mdInformationMessage/informationMessageController.html\",\r\n // \"InformationMessageController\",\r\n // data,\r\n // \"\",\r\n // undefined,\r\n // undefined,\r\n // undefined,\r\n // false,\r\n // \"standardModal\"\r\n // );\r\n\r\n // this.proposal.auxiliary = {};\r\n // }\r\n // };\r\n\r\n public qs_master_insuredIndustry_onChange = () => {\r\n let postData: occupationSearchDlgInputArgs = {\r\n isEditable: this.isEditable,\r\n occupationList: this.proposal.qsMaster.qs_master_insuredIndustry!.options, //temp pass to inside ClientSearchComponent\r\n };\r\n\r\n const occupationSearchDialogRef = this.cdkDialogService.open(\r\n OccupationSearchComponent,\r\n {\r\n data: postData,\r\n }\r\n );\r\n\r\n occupationSearchDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForOccupation(result);\r\n }\r\n });\r\n };\r\n\r\n private occupationModalClose = (data: KeyValue): void => {\r\n if (common.isDefined(data)) {\r\n this.proposal.qsMaster.qs_master_insuredIndustry!.answer = data!.key;\r\n this.proposal.qsMaster.qs_master_insuredIndustry_desc!.answer =\r\n data.value;\r\n }\r\n };\r\n\r\n // private equipmentAddtionalInfoTextArea(container, options) {\r\n // $(\r\n // '\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, SimpleChange } from \"@angular/core\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\nimport { clientViewDlgModelArgs } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport {\r\n MessageBoard,\r\n MessageBoardModel,\r\n} from \"../message-forum/MessageBoardModel\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { ProposalEntity } from \"../message-forum/message-forum.component\";\r\nimport { MessageBoardService } from \"src/app/services/message-board.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { MdValidationMessageComponent } from \"../../sme/masterPolicy/md-validation-message/md-validation-message.component\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { FileUploadService } from \"src/app/services/file-upload.service\";\r\nimport {\r\n FileInfo,\r\n RemoveEvent,\r\n SuccessEvent,\r\n UploadEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\n@Component({\r\n selector: \"app-message-board\",\r\n templateUrl: \"./message-board.component.html\",\r\n styleUrls: [\"./message-board.component.scss\"],\r\n})\r\nexport class MessageBoardComponent implements OnInit {\r\n model: MessageBoardModel = new MessageBoardModel();\r\n data!: any;\r\n\r\n ownerid: any;\r\n description = \"Message Board File\";\r\n fileType = Enum.fileType.MessageBoard;\r\n documentids = [];\r\n //DBSEP-3226 - INC21420894 - remove SMS and Email option and include no action required as per the business requirement\r\n options: KeyValue[] = [\r\n {\r\n key: \"Mail\",\r\n value: \"1\",\r\n },\r\n {\r\n key: \"No Action Required\",\r\n value: \"4\",\r\n },\r\n ];\r\n selectedPrintType: any;\r\n isInvalidEmailAddress = false;\r\n showPrintOption = false;\r\n\r\n hasFormError = false;\r\n formErrors = \"\";\r\n showNotify = true;\r\n validationMessage = \"\";\r\n public myFiles: Array = [];\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any,\r\n public identityRolesService: IdentityRolesService,\r\n private messageBoardService: MessageBoardService,\r\n private cdkDialogService: CdkDialogService,\r\n private fileUploadService: FileUploadService\r\n ) {\r\n if (this.inputData) {\r\n this.model.messageBoard.push(new MessageBoard());\r\n this.model.messageBoard[0].notifyUser = true;\r\n this.model.messageBoard[0].notifyOwnerOnly = true;\r\n this.model.messageBoard[0].isUnderwriterInternalComment = false;\r\n this.model.proposalId = this.inputData.proposalId;\r\n this.model.productId = this.inputData.productId;\r\n this.ownerid = this.inputData.proposalId;\r\n\r\n if (this.inputData.productId == \"f64a7d46-18f4-421a-931e-43b7fc198cd4\") {\r\n this.showNotify = false;\r\n }\r\n this.data = {\r\n proposalId: this.inputData.proposalId,\r\n };\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.model.printCorrespondence = this.inputData.printCorrespondence;\r\n\r\n this.model.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.inputData.preferredDeliveryMethod;\r\n })[0];\r\n\r\n if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"2\"\r\n ) {\r\n this.model.printCorrespondence = this.inputData.emailId;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"5\"\r\n ) {\r\n this.model.printCorrespondence = this.inputData.mobileNo;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"1\"\r\n ) {\r\n this.model.printCorrespondence = this.inputData.contactInfo;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"4\"\r\n ) {\r\n this.model.printCorrespondence = \"\";\r\n }\r\n if (this.model.selectedPrintType == null) {\r\n this.model.selectedPrintType = this.options[1];\r\n }\r\n\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.selectedPrintType = this.model.selectedPrintType.value;\r\n\r\n this.model.isPasswordProtected = true;\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.showPrintOption = false;\r\n }\r\n\r\n setTimeout(function () {\r\n //todo\r\n //angular.element('#selectReprintTypeBoard').kendoDropDownList();\r\n }, 100);\r\n }\r\n\r\n public complete(): void {\r\n //console.log(`complete event`);\r\n }\r\n\r\n public error(e: ErrorEvent): void {\r\n //console.log(`error event: ${e.filename}`);\r\n }\r\n\r\n public remove(e: RemoveEvent): void {\r\n //console.log(`remove event: ${e.files[0].name}`);\r\n e.preventDefault(); //do our own way\r\n this.myFiles = [];\r\n }\r\n\r\n public success(e: SuccessEvent): void {\r\n //console.log(`success event ${e.files[0].name}`);\r\n }\r\n\r\n public upload(e: UploadEvent): void {\r\n //console.log(`upload event ${e.files[0].name}`);\r\n e.preventDefault(); //do our own way\r\n\r\n if (e.files.length > 0) {\r\n //from old ui: shared\\uiControls\\inputs\\drFileUpload\\FileUploadController.js\r\n const formData: FormData = new FormData();\r\n formData.append(\"description\", this.description);\r\n formData.append(\"ownerid\", this.ownerid);\r\n formData.append(\"type\", this.fileType.toString());\r\n for (var i = 0; i < e.files.length; i++) {\r\n formData.append(\"file\" + i, e.files[i].rawFile!);\r\n }\r\n\r\n this.fileUploadService.save(formData).subscribe((result: any) => {\r\n if (result && result.body) {\r\n if (result.body.StatusMessage == \"success\") {\r\n this.validationMessage = \"Upload successful\";\r\n this.myFiles = [];\r\n this.documentids = result.body.docIdList;\r\n if (result.body.docIdList.length > 0) {\r\n this.showHidePrintOption();\r\n }\r\n } else {\r\n this.validationMessage = \"Upload failed\";\r\n this.documentids = [];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: { [propName: string]: SimpleChange }) {\r\n //ngOnChanges won't be called for updates on the array\r\n if (\r\n changes[\"documentids\"] &&\r\n changes[\"documentids\"].previousValue !=\r\n changes[\"documentids\"].currentValue\r\n ) {\r\n // documentids prop changed\r\n if (changes[\"documentids\"].currentValue.length > 0) {\r\n this.showHidePrintOption();\r\n }\r\n }\r\n }\r\n\r\n showHidePrintOption() {\r\n this.showPrintOption = true;\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.showPrintOption = false;\r\n }\r\n }\r\n\r\n validateEmail(email: string) {\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n var valid = false;\r\n if (email !== \"\" && reg.test(email)) {\r\n this.isInvalidEmailAddress = false;\r\n valid = true;\r\n this.hasFormError = false;\r\n this.formErrors = \"\";\r\n this.model.printCorrespondence = email;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n this.hasFormError = true;\r\n this.formErrors = \"Invalid Email Address!\";\r\n //todo\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateMobile(mobile: string) {\r\n var reg = /^\\+?[0-9]+$/;\r\n var valid = false;\r\n if (\r\n mobile.length == 8 &&\r\n mobile !== \"\" &&\r\n reg.test(mobile) &&\r\n (mobile.toString()[0] == \"9\" || mobile.toString()[0] == \"8\")\r\n ) {\r\n this.isInvalidEmailAddress = false;\r\n valid = true;\r\n this.model.printCorrespondence = mobile;\r\n this.hasFormError = false;\r\n this.formErrors = \"\";\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n this.hasFormError = true;\r\n this.formErrors = \"Invalid Mobile Number!\";\r\n //todo\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateInput() {\r\n if (+this.model.selectedPrintType.value == 2)\r\n return this.validateEmail(this.data.emailId);\r\n else if (+this.model.selectedPrintType.value == 5)\r\n return this.validateMobile(this.data.mobileNo);\r\n else return true;\r\n }\r\n\r\n optionChange(event: any) {\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.model.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.selectedPrintType;\r\n })[0];\r\n\r\n this.hasFormError = false;\r\n this.formErrors = \"\";\r\n if (+this.model.selectedPrintType.value == 2) {\r\n this.validateEmail(this.data.emailId);\r\n this.model.printCorrespondence = this.data.emailId;\r\n } else if (+this.model.selectedPrintType.value == 5) {\r\n this.validateMobile(this.data.mobileNo);\r\n this.model.printCorrespondence = this.data.mobileNo;\r\n } else if (+this.model.selectedPrintType.value == 1) {\r\n this.model.printCorrespondence = this.data.contactInfo;\r\n }\r\n }\r\n\r\n submit() {\r\n this.model.messageBoard[0].proposalId = this.data.proposalId;\r\n\r\n var serverModel = cloneDeep(this.model.messageBoard[0]); //UiManager.buildServerModel(this.model.messageBoard);\r\n serverModel.fileIds = this.documentids;\r\n if (Global.isUndefined(this.model.messageBoard[0].messageTitle))\r\n this.model.messageBoard[0].messageTitle = \"\";\r\n if (Global.isUndefined(this.model.messageBoard[0].messageContent))\r\n this.model.messageBoard[0].messageContent = \"\";\r\n\r\n if (serverModel.fileIds.length > 0) {\r\n const printType =\r\n +this.model.selectedPrintType.value == 4\r\n ? \"No Print\"\r\n : this.model.selectedPrintType.key;\r\n serverModel.messageContent += \"\\n\" + \"Print Type: \" + printType;\r\n }\r\n\r\n if (\r\n (this.model.messageBoard[0].messageTitle != \"\" &&\r\n this.model.messageBoard[0].messageContent != \"\" &&\r\n this.model.messageBoard[0].folderTypeId == null &&\r\n this.validateInput()) ||\r\n (this.model.messageBoard[0].messageTitle != \"\" &&\r\n this.model.messageBoard[0].messageContent != \"\" &&\r\n this.model.messageBoard[0].folderTypeId != null &&\r\n this.model.messageBoard[0].documentTypeId != null &&\r\n this.validateInput())\r\n ) {\r\n this.messageBoardService.saveMessage(serverModel).subscribe(\r\n (model) => {\r\n var messageId = model.body.data;\r\n if (serverModel.fileIds.length > 0) {\r\n this.reprint(messageId);\r\n }\r\n this.getMessage(this.data.proposalId);\r\n },\r\n (result) => {\r\n this.hasFormError = true;\r\n this.formErrors = result.statusText;\r\n }\r\n );\r\n } else {\r\n var validateData = [];\r\n var validationMessage = \" \";\r\n if (\r\n this.model.messageBoard[0].messageTitle == \"\" &&\r\n this.model.messageBoard[0].messageContent == \"\"\r\n )\r\n validationMessage = \"Please enter Title and Content\";\r\n else if (this.model.messageBoard[0].messageTitle == \"\")\r\n validationMessage = \"Please enter Title\";\r\n else if (this.model.messageBoard[0].messageContent == \"\")\r\n validationMessage = \"Please enter Content\";\r\n else if (\r\n +this.model.selectedPrintType.value == 2 &&\r\n !this.validateEmail(this.data.emailId)\r\n )\r\n validationMessage = \"Please enter valid Email\";\r\n else if (\r\n +this.model.selectedPrintType.value == 5 &&\r\n !this.validateMobile(this.data.mobileNo)\r\n )\r\n validationMessage = \"Please enter valid MobileNo\";\r\n\r\n validateData.push({\r\n text: validationMessage,\r\n });\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdValidationMessageComponent,\r\n {\r\n data: validateData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n }\r\n\r\n reprint(messageId: any) {\r\n var proposalEntity: ProposalEntity = new ProposalEntity();\r\n proposalEntity.proposalId = this.model.messageBoard[0].proposalId;\r\n proposalEntity.messageId = messageId;\r\n proposalEntity.printType = this.model.selectedPrintType.value;\r\n proposalEntity.printCorrespondence = this.model.printCorrespondence;\r\n proposalEntity.isReprint = false;\r\n proposalEntity.isSummary = false;\r\n proposalEntity.isManual = true;\r\n proposalEntity.isPasswordProtected = this.model.isPasswordProtected;\r\n\r\n this.messageBoardService.savePrintOptions(proposalEntity).subscribe(\r\n (model) => {\r\n var messageId = model.data;\r\n this.getMessage(this.data.proposalId);\r\n },\r\n (result) => {\r\n this.hasFormError = true;\r\n this.formErrors = result.statusText;\r\n }\r\n );\r\n }\r\n\r\n //While closing get the message history\r\n getMessage(proposalId: any) {\r\n this.messageBoardService\r\n .getMessage(proposalId)\r\n .subscribe((response: any) => {\r\n if (response) {\r\n setTimeout(() => {\r\n if (response.data != null && response.data.length > 0) {\r\n this.model.messageBoard = response.data;\r\n this.close(\"yes\", this.model.messageBoard);\r\n } else {\r\n this.close(\"yes\", this.model.messageBoard);\r\n }\r\n }, 100);\r\n }\r\n });\r\n }\r\n\r\n public close(status: any, messageBoard: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: messageBoard,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n public getMessageAndClose(status: any) {\r\n if (status !== \"yes\") {\r\n this.getMessage(this.data.proposalId);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
{{ validationMessage }}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n {{ formErrors }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n","import { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\n\r\nexport class MessageBoardModel {\r\n // constructor(public name: string, public natureOfInterest: string) {\r\n // this.Name = name;\r\n // this.NatureOfInterest = natureOfInterest;\r\n // }\r\n\r\n proposalId: any;\r\n isUnderwriterInternalComment: any;\r\n productId: any;\r\n printCorrespondence: any;\r\n createdByUserId: any;\r\n\r\n selectedPrintType!: KeyValue;\r\n isPasswordProtected: any;\r\n messageBoard: MessageBoard[] = [];\r\n selectedUnderwriter: any;\r\n statusText: any;\r\n}\r\n\r\nexport class MessageBoard {\r\n PolicySummaryVersion: any;\r\n fileIds: any;\r\n files: any;\r\n folderTypeId: any;\r\n isUnderwriterInternalComment: any;\r\n logDateTime: any;\r\n messageContent: any;\r\n messageTitle: any;\r\n name: any;\r\n notifyOwnerOnly: any;\r\n notifyUser: any;\r\n proposalId: any;\r\n rowIndex: any;\r\n selected: any;\r\n underWriterUserId: any;\r\n userType: any;\r\n documentTypeId: any;\r\n productId: any;\r\n sendEmail?: boolean;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\nimport { dlgModelArgs } from \"src/app/components/shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { clientViewDlgModelArgs } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MessageBoardService } from \"src/app/services/message-board.service\";\r\nimport { MdValidationMessageComponent } from \"../../sme/masterPolicy/md-validation-message/md-validation-message.component\";\r\nimport { ClientTimelineComponent } from \"../client-timeline/client-timeline.component\";\r\nimport { MessageBoardComponent } from \"../message-board/message-board.component\";\r\nimport { UnderwriterInternalCommentComponent } from \"../underwriter-internal-comment/underwriter-internal-comment.component\";\r\nimport { MessageBoardModel } from \"./MessageBoardModel\";\r\n\r\n@Component({\r\n selector: \"app-message-forum\",\r\n templateUrl: \"./message-forum.component.html\",\r\n styleUrls: [\"./message-forum.component.scss\"],\r\n})\r\nexport class MessageForumComponent implements OnInit {\r\n model: MessageBoardModel = new MessageBoardModel();\r\n data!: any;\r\n showSummaryDocumentButton = false;\r\n showReprintFunction = false;\r\n showCustomerTimeline = false;\r\n count = 0;\r\n response = \"\";\r\n isProcessing = false;\r\n hasFormError = false;\r\n formErrors = \"\";\r\n\r\n options: KeyValue[] = [\r\n //DBSEP-7006: will added back later\r\n // {\r\n // key: \"Email\",\r\n // value: \"2\",\r\n // },\r\n // {\r\n // key: \"SMS\",\r\n // value: \"5\",\r\n // },\r\n {\r\n key: \"Mail\",\r\n value: \"1\",\r\n },\r\n ];\r\n selectedPrintType: any;\r\n isInvalidEmailAddress = false;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any,\r\n public identityRolesService: IdentityRolesService,\r\n private messageBoardService: MessageBoardService,\r\n private cdkDialogService: CdkDialogService\r\n ) {\r\n if (this.inputData) {\r\n this.data = {\r\n proposalId: this.inputData.proposalId,\r\n isUnderwriterInternalComment:\r\n this.inputData.isUnderwriterInternalComment,\r\n productId: this.inputData.productId,\r\n printCorrespondence: this.inputData.printCorrespondence,\r\n policyNumber: this.inputData.policyNumber,\r\n transType: this.inputData.transType,\r\n proposalStatus: this.inputData.proposalStatus,\r\n loanRedeemed: this.inputData.loanRedeemed,\r\n preferredDeliveryMethod: this.inputData.preferredDeliveryMethod,\r\n emailId: this.inputData.emailId,\r\n mobileNo: this.inputData.mobileNo,\r\n contactInfo: this.inputData.contactInfo,\r\n policyExpiryDate: this.inputData.policyExpiryDate,\r\n proposalType: this.inputData.proposalType,\r\n pendingTransaction: this.inputData.pendingTransaction,\r\n isPreviousYearTerminated: this.inputData.isPreviousYearTerminated,\r\n allowRenewal: this.inputData.allowRenewal,\r\n confimationMsg: this.inputData.confimationMsg,\r\n };\r\n\r\n // this.model = MessageBoardModelFactory.buildMessageBoard();\r\n this.model.proposalId = this.data.proposalId;\r\n this.model.isUnderwriterInternalComment =\r\n this.data.isUnderwriterInternalComment;\r\n this.model.productId = this.data.productId;\r\n this.model.printCorrespondence = this.data.printCorrespondence;\r\n this.model.createdByUserId = this.identityRolesService\r\n .getIdentity()\r\n .currentUser().id; //$parent.currentUser.id;\r\n }\r\n }\r\n\r\n hasMbRecords() {\r\n if (common.isDefined(this.model.messageBoard)) {\r\n return this.model.messageBoard.length > 0;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.data.isUnderwriterInternalComment) {\r\n this.getInternalUnderwriterComment();\r\n } else {\r\n this.getMessageHistory();\r\n }\r\n this.isProcessing = false;\r\n\r\n this.model.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.data.preferredDeliveryMethod;\r\n })[0];\r\n\r\n if (this.model.selectedPrintType == null) {\r\n this.model.selectedPrintType = this.options[1];\r\n }\r\n\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.selectedPrintType = this.model.selectedPrintType.value;\r\n\r\n this.model.isPasswordProtected = true;\r\n this.showSummaryDocumentButton = false;\r\n this.showReprintFunction = false;\r\n this.showCustomerTimeline = false;\r\n if (\r\n (this.data.transType == 1 || this.data.transType == 4) &&\r\n this.data.proposalStatus == 6\r\n ) {\r\n this.showSummaryDocumentButton = false;\r\n this.showReprintFunction = false;\r\n } else if (\r\n this.data.policyNumber ||\r\n (this.model.productId == \"AAEA26B4-812F-4FA1-AC43-7177EA129917\" &&\r\n this.data.proposalStatus == 1)\r\n ) {\r\n this.showSummaryDocumentButton = true;\r\n this.showReprintFunction = true;\r\n }\r\n if (\r\n (this.model.productId == \"06CB09D3-6FE0-4695-92A8-A61DFB627C61\" ||\r\n this.model.productId == \"8533FA05-F190-4A29-9613-3DB7F693DD32\") &&\r\n this.data.loanRedeemed\r\n ) {\r\n this.showSummaryDocumentButton = false;\r\n }\r\n if (this.data.transType == 3 && this.data.proposalStatus != 6) {\r\n this.showSummaryDocumentButton = false;\r\n }\r\n if (\r\n this.identityRolesService.isChecker ||\r\n this.identityRolesService.isMaker\r\n ) {\r\n this.showReprintFunction = false;\r\n }\r\n var currentDateTime = new Date();\r\n const _MS_PER_DAY = 1000 * 60 * 60 * 24;\r\n var updateMultiyearChoiceFlag = 0;\r\n var utcDate1 = Date.UTC(\r\n currentDateTime.getFullYear(),\r\n currentDateTime.getMonth(),\r\n currentDateTime.getDate()\r\n );\r\n var utcDate2 = Date.UTC(\r\n this.data.policyExpiryDate.getFullYear(),\r\n this.data.policyExpiryDate.getMonth(),\r\n this.data.policyExpiryDate.getDate()\r\n );\r\n var visibilityDate = new Date(\r\n Date.UTC(\r\n this.data.policyExpiryDate.getFullYear(),\r\n this.data.policyExpiryDate.getMonth(),\r\n this.data.policyExpiryDate.getDate() - 60\r\n )\r\n );\r\n visibilityDate.setDate(1); //Take first date of that month\r\n var diff = (utcDate2 - utcDate1) / _MS_PER_DAY;\r\n var mthDiff = this.monthDiff(\r\n new Date(currentDateTime.getFullYear(), currentDateTime.getMonth()),\r\n new Date(\r\n this.data.policyExpiryDate.getFullYear(),\r\n this.data.policyExpiryDate.getMonth()\r\n )\r\n );\r\n if (diff > 0) {\r\n if (\r\n currentDateTime >= visibilityDate &&\r\n currentDateTime <= this.data.policyExpiryDate &&\r\n //Update Multiyear choice visibility:\r\n //sometimes currentDateTime is 1st Dec 2022, but data.policyExpiryDate is 28th feb 2023, which is more than 60days\r\n //hence compare by month, not exact 60days\r\n mthDiff <= 2\r\n )\r\n updateMultiyearChoiceFlag = 1;\r\n } else {\r\n if (this.data.allowRenewal == true) updateMultiyearChoiceFlag = 1;\r\n }\r\n if (\r\n this.model.productId == \"2396885E-49F6-43F6-A314-47D727AB888F\" ||\r\n this.model.productId == \"6FAF6BEE-F5FC-4DC2-9F75-37FE2D61611D\" ||\r\n this.model.productId == \"565E9075-9F73-45C0-BA5C-A78AC05BA837\"\r\n ) {\r\n if (this.data.transType === 4 && this.data.proposalStatus === 6)\r\n this.showCustomerTimeline = true;\r\n else if (\r\n (this.data.transType === 1 ||\r\n this.data.transType === 2 ||\r\n this.data.transType === 4) &&\r\n this.data.proposalStatus === 2 &&\r\n this.data.pendingTransaction == null &&\r\n this.data.isPreviousYearTerminated != true &&\r\n updateMultiyearChoiceFlag === 1\r\n )\r\n this.showCustomerTimeline = true;\r\n }\r\n //angular.element('#selectReprintType').kendoDropDownList();//todo\r\n }\r\n\r\n //do not take days into comparison\r\n //console.log(monthDiff(new Date(2023, 01, 31), new Date(2023, 02, 01)))\r\n //console.log(monthDiff(new Date(2023, 01), new Date(2023, 02)))\r\n monthDiff = function (dateFrom: Date, dateTo: Date) {\r\n return (\r\n dateTo.getMonth() -\r\n dateFrom.getMonth() +\r\n 12 * (dateTo.getFullYear() - dateFrom.getFullYear())\r\n );\r\n };\r\n\r\n getMessageHistory() {\r\n this.messageBoardService\r\n .getMessage(this.data.proposalId)\r\n .subscribe((responseModel: any) => {\r\n setTimeout(() => {\r\n if (responseModel.data != null && responseModel.data.length > 0) {\r\n this.count = responseModel.data.length;\r\n var index = responseModel.data.length;\r\n responseModel.data.forEach(function (message: {\r\n selected: boolean;\r\n rowIndex: number;\r\n files: any[];\r\n PolicySummaryVersion: string;\r\n }) {\r\n message.selected = false;\r\n message.rowIndex = index--;\r\n let policyver = false;\r\n\r\n //message.files.forEach(\r\n //(data: { fileName: string; description: string }) => {\r\n // if (\r\n // data.fileName === \"Renewal.pdf\" ||\r\n // data.fileName === \"PolicySchedule.pdf\" ||\r\n // data.fileName === \"PolicySchedule_R.pdf\" ||\r\n // data.fileName === \"Renewal_R.pdf\" ||\r\n // data.description === \"Policy summary\" ||\r\n // data.fileName === \"RenewalMultiYear.pdf\"\r\n // ) {\r\n // policyver = true;\r\n // }\r\n // }\r\n //);\r\n\r\n for (let i = 0; i < message.files.length; i++) {\r\n if (\r\n message.files[i].fileName === \"Renewal.pdf\" ||\r\n message.files[i].fileName === \"PolicySchedule.pdf\" ||\r\n message.files[i].fileName === \"PolicySchedule_R.pdf\" ||\r\n message.files[i].fileName === \"Renewal_R.pdf\" ||\r\n message.files[i].description === \"Policy summary\" ||\r\n message.files[i].fileName === \"RenewalMultiYear.pdf\"\r\n ) {\r\n policyver = true;\r\n }\r\n }\r\n\r\n if (policyver === true) {\r\n message.PolicySummaryVersion =\r\n message.PolicySummaryVersion != \"\"\r\n ? \"Policy Summary Version: \" + message.PolicySummaryVersion\r\n : \"\";\r\n } else {\r\n message.PolicySummaryVersion = \"\";\r\n }\r\n });\r\n this.model.messageBoard = responseModel.data;\r\n }\r\n }, 100);\r\n });\r\n }\r\n\r\n getInternalUnderwriterComment() {\r\n this.messageBoardService\r\n .getInternalUnderwriterComment(this.data.proposalId)\r\n .subscribe((responseModel: any) => {\r\n setTimeout(() => {\r\n if (responseModel.data != null && responseModel.data.length > 0) {\r\n this.count = responseModel.data.length;\r\n this.model.messageBoard = responseModel.data;\r\n }\r\n }, 100);\r\n });\r\n }\r\n\r\n getFile(fileId: any) {\r\n /**kisiva - Check for browser compatiablity is done here\r\n * because product id is available here. This change is required\r\n * to allow bizpack product to ignore browser compatiablity check.\r\n * Especially for WINBEAT, where lower version browser is able to\r\n * honor BLOB.\r\n */\r\n var userAgent = window.navigator.userAgent;\r\n var msie = userAgent.indexOf(\"MSIE \");\r\n\r\n var productId = this.model.productId;\r\n if (\r\n productId !== undefined &&\r\n productId.toLocaleUpperCase() === \"F6C1BCB1-D045-4DB3-B947-0E50FE0D49EB\"\r\n ) {\r\n this.messageBoardService.getFile({\r\n documentId: fileId,\r\n proposalId: this.data.proposalId,\r\n });\r\n } else {\r\n if (msie > 0) {\r\n alert(\"Current browser does not support file download.\");\r\n } else {\r\n this.messageBoardService.getFile({\r\n documentId: fileId,\r\n proposalId: this.data.proposalId,\r\n });\r\n }\r\n }\r\n }\r\n\r\n openClientTimeline() {\r\n var data = {\r\n proposalId: this.model.proposalId,\r\n isUnderwriterInternalComment: this.model.isUnderwriterInternalComment,\r\n productId: this.model.productId,\r\n policyNumber: this.data.policyNumber,\r\n createdByUserId: this.model.createdByUserId,\r\n emailId: this.data.emailId,\r\n contactInfo: this.data.contactInfo,\r\n mobileNo: this.data.mobileNo,\r\n preferredDeliveryMethod: this.model.selectedPrintType.value,\r\n };\r\n const v1DialogRef = this.cdkDialogService.open(ClientTimelineComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.onAfterSavingMessageBoard(result);\r\n }\r\n });\r\n }\r\n\r\n openMessageBoard(event: { preventDefault: () => void }) {\r\n event.preventDefault();\r\n\r\n var data = {\r\n proposalId: this.model.proposalId,\r\n isUnderwriterInternalComment: this.model.isUnderwriterInternalComment,\r\n productId: this.model.productId,\r\n emailId: this.data.emailId,\r\n contactInfo: this.data.contactInfo,\r\n mobileNo: this.data.mobileNo,\r\n preferredDeliveryMethod: this.model.selectedPrintType.value,\r\n };\r\n\r\n if (data.isUnderwriterInternalComment) {\r\n const v1DialogRef = this.cdkDialogService.open(\r\n UnderwriterInternalCommentComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.onAfterSavingMessageBoard(result);\r\n }\r\n });\r\n } else {\r\n const v1DialogRef = this.cdkDialogService.open(MessageBoardComponent, {\r\n data: data,\r\n });\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.onAfterSavingMessageBoard(result);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onAfterSavingMessageBoard(args: dlgModelArgs) {\r\n this.model.messageBoard = args.data;\r\n //todo\r\n // // Bug fix for displaying modal window\r\n // $(\"body\").append('
');\r\n // $('html').css('overflow', 'hidden');\r\n }\r\n\r\n openDocumentsBoard = function (event: { preventDefault: () => void }) {\r\n event.preventDefault();\r\n // var documentModel = {\r\n // proposalId: data.proposalId,\r\n // isUnderwriterInternalComment: data.isUnderwriterInternalComment,\r\n // productId: data.productId,\r\n // };\r\n\r\n // documentModel.messageBoard = [];\r\n\r\n // this.model.messageBoard.forEach(function (message) {\r\n // if (message.files[0].fileName.length > 0) {\r\n // documentModel.messageBoard.push(message);\r\n // }\r\n // });\r\n\r\n // Dialog.modalLarge(\r\n // 'products/messageBoard/directives/drReprintBoard/drReprintBoard.html',\r\n // 'ReprintBoardController',\r\n // documentModel,\r\n // onAfterSavingMessageBoard, undefined, undefined, undefined, false, 'standardModal');\r\n };\r\n\r\n reprint() {\r\n if (\r\n +this.model.selectedPrintType.value == 2 &&\r\n !this.validateEmail(this.data.emailId)\r\n ) {\r\n this.response = \"Invalid Email Address!\";\r\n return;\r\n }\r\n if (\r\n +this.model.selectedPrintType.value == 5 &&\r\n !this.validateMobile(this.data.mobileNo)\r\n ) {\r\n this.response = \"Invalid Mobile Number!\";\r\n return;\r\n }\r\n if (\r\n +this.model.selectedPrintType.value == 1 &&\r\n !this.validateAddress(this.data.contactInfo)\r\n ) {\r\n this.response = \"Invalid Mail Address!\";\r\n return;\r\n }\r\n\r\n var proposalEntity: ProposalEntity = new ProposalEntity();\r\n proposalEntity.proposalId = this.model.proposalId;\r\n proposalEntity.printType = this.model.selectedPrintType.value;\r\n proposalEntity.printCorrespondence = this.model.printCorrespondence;\r\n proposalEntity.isReprint = true;\r\n proposalEntity.isSummary = false;\r\n proposalEntity.isManual = false;\r\n proposalEntity.isPasswordProtected = this.model.isPasswordProtected;\r\n proposalEntity.fileModels = [];\r\n if (this.model.messageBoard.length != undefined) {\r\n this.model.messageBoard.forEach((message: any) => {\r\n if (message.selected) {\r\n message.files.forEach((file: { fileId: any }) => {\r\n proposalEntity.fileModels.push({\r\n fileId: file.fileId,\r\n description: \"Post: \" + message.rowIndex,\r\n });\r\n if (message.rowIndex == undefined) {\r\n this.close(\"no\");\r\n this.showMessage(\r\n \"Sorry, something went wrong. Please try again.\"\r\n );\r\n return;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n if (proposalEntity.fileModels.length == 0) {\r\n this.showMessage(\"Please select Message for Reprint\");\r\n return;\r\n }\r\n this.messageBoardService.savePrintOptions(proposalEntity).subscribe(\r\n (model: any) => {\r\n if (this.data.isUnderwriterInternalComment) {\r\n this.getInternalUnderwriterComment();\r\n } else {\r\n this.getMessageHistory();\r\n }\r\n },\r\n (result: { statusText: any }) => {\r\n this.hasFormError = true;\r\n this.formErrors = result.statusText;\r\n }\r\n );\r\n }\r\n\r\n validateAddress(address: any) {\r\n var valid = false;\r\n if (address !== \"\" && address !== null) {\r\n this.isInvalidEmailAddress = false;\r\n this.model.printCorrespondence = address;\r\n valid = true;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n //todo\r\n //angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n //setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateEmail(email: any) {\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n var valid = false;\r\n if (email !== \"\" && reg.test(email)) {\r\n this.isInvalidEmailAddress = false;\r\n this.model.printCorrespondence = email;\r\n valid = true;\r\n this.response = \"\";\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n this.response = \"Invalid Email Address!\";\r\n //todo\r\n //angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n //setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateMobile(mobile: any) {\r\n var reg = /^\\+?[0-9]+$/;\r\n var valid = false;\r\n if (\r\n mobile.length == 8 &&\r\n mobile !== \"\" &&\r\n reg.test(mobile) &&\r\n (mobile.toString()[0] == \"9\" || mobile.toString()[0] == \"8\")\r\n ) {\r\n this.isInvalidEmailAddress = false;\r\n valid = true;\r\n this.response = \"\";\r\n this.model.printCorrespondence = mobile;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n this.response = \"Invalid Mobile Number!\";\r\n //todo\r\n //angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n //setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n optionChange(event: any) {\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.model.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.selectedPrintType;\r\n })[0];\r\n\r\n this.response = \"\";\r\n if (+this.model.selectedPrintType.value == 2) {\r\n this.validateEmail(this.data.emailId);\r\n }\r\n if (+this.model.selectedPrintType.value == 5) {\r\n this.validateMobile(this.data.mobileNo);\r\n }\r\n }\r\n\r\n showMessage(message: any) {\r\n var validateDate = { validationMessages: message, title: \"Alert\" };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdValidationMessageComponent,\r\n {\r\n data: validateDate,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n printSummary() {\r\n if (\r\n +this.model.selectedPrintType.value == 2 &&\r\n !this.validateEmail(this.data.emailId)\r\n ) {\r\n return;\r\n }\r\n if (\r\n +this.model.selectedPrintType.value == 5 &&\r\n !this.validateMobile(this.data.mobileNo)\r\n ) {\r\n return;\r\n }\r\n if (\r\n +this.model.selectedPrintType.value == 1 &&\r\n !this.validateAddress(this.data.contactInfo)\r\n ) {\r\n this.response = \"Invalid Mail Address!\";\r\n return;\r\n }\r\n var proposalEntity: ProposalEntity = new ProposalEntity();\r\n proposalEntity.proposalId = this.model.proposalId;\r\n proposalEntity.printType = this.model.selectedPrintType.value;\r\n proposalEntity.printCorrespondence = this.model.printCorrespondence;\r\n proposalEntity.isReprint = false;\r\n proposalEntity.isSummary = true;\r\n proposalEntity.isManual = false;\r\n proposalEntity.isPasswordProtected = this.model.isPasswordProtected;\r\n\r\n this.messageBoardService.savePrintOptions(proposalEntity).subscribe(\r\n (model: any) => {\r\n if (this.data.isUnderwriterInternalComment) {\r\n this.getInternalUnderwriterComment();\r\n } else {\r\n this.getMessageHistory();\r\n }\r\n },\r\n (result: { statusText: any }) => {\r\n this.hasFormError = true;\r\n this.formErrors = result.statusText;\r\n }\r\n );\r\n }\r\n\r\n getMessage = function (proposalId: any) {\r\n // MessageBoard.getMessage(proposalId)\r\n // .then(function (model) {\r\n // $timeout(function () {\r\n // if (model.data != null && model.data.length > 0) {\r\n // model.data.forEach(function (element) {\r\n // element.PolicySummaryVersion=element.PolicySummaryVersion!=\"\"?\"Policy Summary Version: \"+element.PolicySummaryVersion:\"\";\r\n // });\r\n // this.model.messageBoard = model.data;\r\n // $modalInstance.close(this.model.messageBoard);\r\n // } else {\r\n // $modalInstance.close(this.model.messageBoard);\r\n // }\r\n // }, 100);\r\n // });\r\n };\r\n\r\n public close(status: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: this.inputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\n\r\nexport class ProposalEntity {\r\n proposalId: any;\r\n messageId: any;\r\n printType: any;\r\n printCorrespondence: any;\r\n isReprint: any;\r\n isSummary: any;\r\n isManual: any;\r\n isPasswordProtected: any;\r\n fileModels: SimpleFileEntity[] = [];\r\n}\r\n\r\nexport class SimpleFileEntity {\r\n fileId!: string;\r\n description!: string;\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ response }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n No record found. Please proceed to add a new record.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Post\r\n \r\n \r\n \r\n 0 &&\r\n message.files[0].fileName.length > 0\r\n \"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\nimport { clientViewDlgModelArgs } from \"src/app/components/shared/partials/mdClient/client-view/client-view.component\";\r\nimport {\r\n MessageBoard,\r\n MessageBoardModel,\r\n} from \"../message-forum/MessageBoardModel\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MessageBoardService } from \"src/app/services/message-board.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { FileUploadService } from \"src/app/services/file-upload.service\";\r\n\r\n@Component({\r\n selector: \"app-underwriter-internal-comment\",\r\n templateUrl: \"./underwriter-internal-comment.component.html\",\r\n styleUrls: [\"./underwriter-internal-comment.component.scss\"],\r\n})\r\nexport class UnderwriterInternalCommentComponent implements OnInit {\r\n model: MessageBoardModel = new MessageBoardModel();\r\n errorMessage = \"\";\r\n\r\n underWriterList = [];\r\n\r\n ownerid: any;\r\n description = \"Underwriter Internal Comment File\";\r\n fileType = Enum.fileType.MessageBoard;\r\n\r\n documentids = [];\r\n folderTypes = [];\r\n\r\n module = \"\";\r\n data!: any;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any,\r\n public identityRolesService: IdentityRolesService,\r\n private messageBoardService: MessageBoardService,\r\n private cdkDialogService: CdkDialogService,\r\n private fileUploadService: FileUploadService\r\n ) {\r\n if (this.inputData) {\r\n this.ownerid = this.inputData.proposalId;\r\n\r\n this.model.messageBoard.push(new MessageBoard());\r\n this.model.messageBoard[0].messageTitle = \"\";\r\n this.model.messageBoard[0].messageContent = \"\";\r\n this.model.messageBoard[0].productId = this.inputData.productId;\r\n this.model.messageBoard[0].proposalId = this.inputData.proposalId;\r\n this.model.messageBoard[0].sendEmail = false;\r\n this.model.selectedUnderwriter = null;\r\n this.model.messageBoard[0].fileIds = this.inputData.documentids;\r\n this.model.statusText = \"\";\r\n this.model.messageBoard[0].folderTypeId = \"\";\r\n\r\n this.data = {\r\n proposalId: inputData.proposalId,\r\n fileIds: inputData.documentids,\r\n };\r\n\r\n //this api no longer exists, hence render whole module useless\r\n // this.messageBoardService.getMessageBoardCategory((resp) => {\r\n // console.log(resp);\r\n // //this.folderTypes = resp;\r\n // });\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n addMessageSendEmail() {\r\n // /*Caution: Changing this value to false will cause messages that are supposed\r\n // to be viewed by Underwriters only, will be exposed to everyone.\r\n // */\r\n // data.isUnderwriterInternalComment = true;\r\n // data.fileIds = $scope.documentids;\r\n // if($scope.model.messageBoard.messageTitle === ''\r\n // || $scope.model.messageBoard.messageContent === ''\r\n // || $scope.model.selectedUnderwriter === null)\r\n // validateMandatoryFields();\r\n // else\r\n // {\r\n // var serverModel = UiManager.buildServerModel($scope.model.messageBoard);\r\n // serverModel.fileIds = $scope.documentids;\r\n // serverModel.isUnderwriterInternalComment = data.isUnderwriterInternalComment;\r\n // serverModel.underWriterUserId = $scope.model.selectedUnderwriter.value;\r\n // MessageBoard.saveEmail(serverModel)\r\n // .then(function (model) {\r\n // getMessage(data.proposalId);\r\n // },\r\n // function (result) {\r\n // $scope.errorMessage = result.statusText;\r\n // }\r\n // );\r\n // }\r\n }\r\n\r\n submit() {\r\n // var serverModel = UiManager.buildServerModel($scope.model.messageBoard);\r\n // serverModel.fileIds = $scope.model.messageBoard.fileIds;\r\n // serverModel.isUnderwriterInternalComment = true;\r\n // if (angular.isUndefined($scope.model.messageBoard.messageTitle))\r\n // $scope.model.messageBoard.messageTitle = \"\";\r\n // if (angular.isUndefined($scope.model.messageBoard.messageContent))\r\n // $scope.model.messageBoard.messageContent = \"\";\r\n // if ($scope.model.messageBoard.messageTitle != \"\" && $scope.model.messageBoard.messageContent != \"\") {\r\n // MessageBoard.saveMessage(serverModel)\r\n // .then(function (model) {\r\n // var messageId = model.data;\r\n // getMessage(data.proposalId);\r\n // },\r\n // function (result) {\r\n // $scope.hasFormError = true;\r\n // $scope.formErrors = result.statusText;\r\n // }\r\n // );\r\n // }\r\n // else {\r\n // validateMandatoryFields();\r\n // }\r\n }\r\n\r\n chckBoxOnChange() {\r\n // $scope.underWriterList = [];\r\n // $scope.model.messageBoard.selectedUnderwriter = [];\r\n // if($scope.model.messageBoard.sendEmail)\r\n // {\r\n // var postBackData = {\r\n // ProductID : $scope.model.messageBoard.productId\r\n // };\r\n // getUnderwriterList(postBackData).then(\r\n // function(response){\r\n // var list = [];\r\n // list.push({text: \"All underwriter\" ,value: -1 });\r\n // angular.forEach(response.data,function(data){\r\n // list.push({text : data.UserLogin, value : data.UserId})\r\n // });\r\n // $scope.underWriterList = list;\r\n // });\r\n // }\r\n }\r\n\r\n getMessage(proposalId: any) {\r\n this.messageBoardService\r\n .getInternalUnderwriterComment(proposalId)\r\n .subscribe((response: any) => {\r\n if (response) {\r\n setTimeout(() => {\r\n if (response.data != null && response.data.length > 0) {\r\n this.model.messageBoard = response.data;\r\n this.close(\"yes\", this.model.messageBoard);\r\n } else {\r\n this.close(\"yes\", this.model.messageBoard);\r\n }\r\n }, 100);\r\n }\r\n });\r\n }\r\n\r\n validateMandatoryFields = function () {\r\n // var validateData = [];\r\n // var validationMessage = ' ';\r\n // if ($scope.model.messageBoard.messageTitle == \"\" && $scope.model.messageBoard.messageContent == \"\")\r\n // validationMessage = 'Please enter Title and Content';\r\n // else if ($scope.model.messageBoard.messageTitle == \"\")\r\n // validationMessage = 'Please enter Title';\r\n // else if ($scope.model.messageBoard.messageContent == \"\")\r\n // validationMessage = 'Please enter Content';\r\n // if($scope.model.messageBoard.sendEmail\r\n // && $scope.model.selectedUnderwriter === null )\r\n // {\r\n // if(validationMessage === ' ')\r\n // validationMessage = 'Please select an underwriter';\r\n // else\r\n // validationMessage += ' and select an underwriter';\r\n // }\r\n // validateData.push({text: validationMessage});\r\n // Dialog.modalLarge(\r\n // 'products/sme/masterPolicy/partial/mdValidationMesage/validateMessage.html',\r\n // 'ValidateMessageController',\r\n // validateData)\r\n };\r\n\r\n getUnderwriterList(postBackData: any) {\r\n // var deferred = $q.defer();\r\n // var uri = 'api/proposal/getUnderwriterList';\r\n // Api.get(uri, {}, postBackData)\r\n // .then(function (response) {\r\n // deferred.resolve(response);\r\n // }, function (rejection) {\r\n // deferred.reject(rejection);\r\n // });\r\n // return deferred.promise;\r\n }\r\n\r\n public close(status: any, messageBoard: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: messageBoard,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n public getMessageAndClose(status: any) {\r\n if (status !== \"yes\") {\r\n this.getMessage(this.model.messageBoard[0].proposalId);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Add Message\r\n \r\n \r\n Add Message and Send Email\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FileInfo,\r\n FileRestrictions,\r\n RemoveEvent,\r\n SelectEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { dlgModelArgs } from \"../../shared/partials/md-successful-file-upload/md-successful-file-upload.component\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { UploadExcel } from \"../auto-loan-redemption/auto-loan-redemption.entity\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-multi-year-auto-debit-upload\",\r\n templateUrl: \"./multi-year-auto-debit-upload.component.html\",\r\n styleUrls: [\"./multi-year-auto-debit-upload.component.scss\"],\r\n})\r\nexport class MultiYearAutoDebitUploadComponent implements OnInit {\r\n uploadExcel!: UploadExcel;\r\n excelFilesErrorMessage: string = \"\";\r\n hasError: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n // Error logs\r\n errorLogs!: { Title: string; Logs: string[] };\r\n\r\n public redirectOpened = false;\r\n redirectMessage: any;\r\n redirectData: any;\r\n sub: any;\r\n\r\n constructor(\r\n private uploadService: UploadExcelService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.uploadExcel = new UploadExcel();\r\n\r\n this.sub = this.route.data.subscribe(\r\n (v) => (this.uploadExcel.segmentDetails = v[\"type\"]) //read from route param, as in app.route.js\r\n );\r\n\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub?.unsubscribe();\r\n }\r\n\r\n excelAndSizeRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".xls\", \".xlsx\"],\r\n maxFileSize: 5242880, // Check for each file size less than 5MB, 1024 * 1024 * 5\r\n };\r\n\r\n public resetFiles(): void {\r\n //todo: currently only allow single file upload\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n this.uploadExcel.files = {};\r\n }\r\n\r\n public removeEvent(e: RemoveEvent): void {\r\n this.resetFiles();\r\n }\r\n\r\n public select(e: SelectEvent): void {\r\n this.resetFiles();\r\n\r\n this.hasError = false;\r\n\r\n let totalFileSize = this.getUploadedClaimFilesTotalSize(e.files);\r\n if (totalFileSize / 1024 / 1024 > 20) {\r\n this.hasError = true;\r\n this.excelFilesErrorMessage =\r\n \"Total file size allowed in a claim is 20MB.\";\r\n } else {\r\n const uploadExcels: File[] = new Array();\r\n e.files.forEach((file: FileInfo) => {\r\n //this already check extension & individual file size by kendo control itself\r\n if (!file.validationErrors && file.rawFile) {\r\n uploadExcels.push(file.rawFile);\r\n }\r\n });\r\n if (this.uploadExcel != undefined && this.uploadExcel != null) {\r\n this.uploadExcel.files = uploadExcels;\r\n }\r\n }\r\n }\r\n\r\n getUploadedClaimFilesTotalSize(files: FileInfo[]): number {\r\n let totalFileSize: number = 0;\r\n\r\n files.forEach((file: FileInfo) => {\r\n if (file.rawFile) {\r\n totalFileSize += file.rawFile.size;\r\n }\r\n });\r\n\r\n return totalFileSize;\r\n }\r\n\r\n add(): void {\r\n this.hasError = false;\r\n\r\n if (this.uploadExcel?.files?.length > 0) {\r\n this.addExcel();\r\n } else {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n }\r\n }\r\n\r\n getUploadedExcelFiles(uploadedExcel: UploadExcel): FormData {\r\n const formData: FormData = new FormData();\r\n for (let i = 0; i < uploadedExcel.files.length; i++) {\r\n formData.append(\"file\" + i.toString(), uploadedExcel.files[i]);\r\n }\r\n return formData;\r\n }\r\n\r\n addExcel() {\r\n this.isProcessing = true;\r\n\r\n const uploadedExcelFormData = this.getUploadedExcelFiles(this.uploadExcel);\r\n uploadedExcelFormData.append(\r\n \"selectedSection\",\r\n JSON.parse(JSON.stringify(this.uploadExcel.segmentDetails))\r\n );\r\n this.uploadService\r\n .uploadMultiYearAutoDebit(uploadedExcelFormData)\r\n .subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n //no longer result.data as in angularJs but result.body\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.status === 200) {\r\n tempData = {\r\n message: \"Upload successful.\",\r\n status: true,\r\n };\r\n this.multiyearAutoDebitSummaryReport(\"Annual\");\r\n this.multiyearAutoDebitSummaryReport(\"Multiyear\");\r\n } else {\r\n let message: string = \"\";\r\n switch (result.status) {\r\n case 401:\r\n message = \"Unauthorized document download\";\r\n break;\r\n default:\r\n message =\r\n \"Document download response with unexpected status: \" +\r\n result.status.toString();\r\n break;\r\n }\r\n\r\n tempData = {\r\n message: message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n }\r\n\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n //this.uploadExcel.files = {};//maybe no need to clear, just like original\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n let tempData: any = {\r\n message:\r\n \"Failed to upload excel file. Please contact the system administrator.\",\r\n validationMessage: undefined,\r\n status: false,\r\n };\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n async multiyearAutoDebitSummaryReport(reportType: string) {\r\n var url = \"api/product/home/MultiyearAutoDebit/generateADSummaryReport\";\r\n let tempData: any = null;\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n });\r\n const params = {\r\n reportType: reportType,\r\n };\r\n\r\n return this.httpClient\r\n .get(environment.serviceBase + url, {\r\n headers: headers,\r\n params: params,\r\n responseType: \"arraybuffer\",\r\n observe: \"response\",\r\n })\r\n .subscribe(\r\n (result: any) => {\r\n const fileName: string = result.headers.get(\"x-filename\");\r\n this.uploadService.generateAnchorAndTriggerDownload(\r\n result.body,\r\n fileName\r\n );\r\n },\r\n (error: any) => {\r\n let message: string = \"\";\r\n switch (error.status) {\r\n case 401:\r\n message = \"Unauthorized document download\";\r\n break;\r\n default:\r\n message =\r\n \"Document download response with unexpected status: \" +\r\n error.status.toString();\r\n break;\r\n }\r\n tempData = {\r\n message: message,\r\n validationMessage: undefined,\r\n status: false,\r\n };\r\n this.redirectOpened = true;\r\n this.redirectData = tempData;\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n public confirmationModelForSuccessullExcelUpload(args: dlgModelArgs) {\r\n this.redirectOpened = false;\r\n if (args.status === \"return\") {\r\n //todo\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n //this.$state.go('product.home', { reload: true });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n 0\" [expanded]=\"false\">\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ excelFilesErrorMessage }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Upload Excel\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { DatePickerComponent } from \"@progress/kendo-angular-dateinputs\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport {\r\n FileInfo,\r\n FileRestrictions,\r\n RemoveEvent,\r\n SelectEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { ExcelTemplateService } from \"src/app/services/excel-template.service\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { PolicyWordingSetupService } from \"src/app/services/policy-wording-setup.service\";\r\nimport { UploadExcelService } from \"src/app/services/upload-excel.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport {\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport {\r\n MdConfirmationMessageV2Component,\r\n v2DlgInputArgs,\r\n} from \"../../shared/partials/md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\nimport { dlgModelArgs } from \"../../shared/partials/md-confirmation-message-v6/md-confirmation-message-v6.component\";\r\nimport { PolicyTypeEntity, PolicyWordingEntity } from \"./policy-wording.entity\";\r\n@Component({\r\n selector: \"app-policy-wording-setup\",\r\n templateUrl: \"./policy-wording-setup.component.html\",\r\n styleUrls: [\"./policy-wording-setup.component.scss\"],\r\n})\r\nexport class PolicyWordigSetupComponent implements OnInit {\r\n constructor(\r\n private policyWordingSetUpService: PolicyWordingSetupService,\r\n private uploadService: UploadExcelService,\r\n private notifier: NotifierService,\r\n private excelTemplate: ExcelTemplateService,\r\n private cdkDialogService: CdkDialogService\r\n ) {}\r\n\r\n @ViewChild(\"appendTo\", { read: ViewContainerRef, static: false })\r\n public appendTo!: ViewContainerRef;\r\n\r\n @ViewChild(\"policyForm\", { static: false })\r\n private policyForm!: UntypedFormGroup;\r\n\r\n @ViewChild(\"effectiveDate\", { static: false })\r\n public effectiveDate!: DatePickerComponent;\r\n\r\n public minEffectiveDate!: Date;\r\n public maxEffectiveDate = new Date(2999, 12, 31);\r\n _minTransactionDate: Date = new Date(\"2017-01-01T00:00:00\");\r\n public productTypeList!: Array<{ text: string; value: string }>;\r\n public documentVersion!: Array<{ text: string; value: string }>;\r\n policyWording = new PolicyWordingEntity();\r\n lstPolicyWording: PolicyWordingEntity[] = [];\r\n policyType!: PolicyTypeEntity[];\r\n documentTitleList!: PolicyWordingEntity[];\r\n isUpdate: boolean = false;\r\n documentName: any;\r\n documentChange: boolean = false;\r\n\r\n //effective date validation\r\n dateValidationMsg: string = \"\";\r\n //document title validation\r\n docTitleValidationMsg: string = \"\";\r\n //upload excel\r\n\r\n uploadPdf!: any;\r\n excelFilesErrorMessage: string = \"\";\r\n hasError: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n //pagination\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public totalListing: number = 0;\r\n\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n // Error logs\r\n errorLogs!: { Title: string; Logs: Array };\r\n\r\n ngOnInit(): void {\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n this.productTypeList = [\r\n { text: \"CBG\", value: \"CBG\" },\r\n { text: \"IBG\", value: \"IBG\" },\r\n { text: \"HDB\", value: \"HDB\" },\r\n { text: \"PTE\", value: \"PTE\" },\r\n { text: \"CDO\", value: \"CDO\" },\r\n ];\r\n this.documentVersion = [\r\n { text: \"New\", value: \"New\" },\r\n { text: \"Existing\", value: \"Existing\" },\r\n ];\r\n this.fetchPolicyTypeList();\r\n this.getDocumentTitleList();\r\n }\r\n excelAndSizeRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".pdf\"],\r\n maxFileSize: 5242880, // Check for each file size less than 5MB, 1024 * 1024 * 5\r\n };\r\n public resetFiles(): void {\r\n //todo: currently only allow single file upload\r\n // Clear uploaded file once, the file is successfuly uploaded.\r\n this.uploadPdf = {};\r\n }\r\n\r\n public removeEvent(e: RemoveEvent): void {\r\n this.resetFiles();\r\n }\r\n\r\n public select(e: SelectEvent): void {\r\n this.resetFiles();\r\n this.hasError = false;\r\n\r\n let totalFileSize = this.getUploadedClaimFilesTotalSize(e.files);\r\n if (totalFileSize / 1024 / 1024 > 5) {\r\n this.hasError = true;\r\n this.excelFilesErrorMessage = \"Total file size allowed in a claim is 5.\";\r\n } else {\r\n const uploadPdf: File[] = new Array();\r\n e.files.forEach((file: FileInfo) => {\r\n //this already check extension & individual file size by kendo control itself\r\n if (!file.validationErrors && file.rawFile) {\r\n uploadPdf.push(file.rawFile);\r\n }\r\n });\r\n if (this.uploadPdf != undefined && this.uploadPdf != null) {\r\n this.excelFilesErrorMessage = \"\";\r\n this.uploadPdf = uploadPdf;\r\n this.policyWording.files = this.uploadPdf;\r\n }\r\n }\r\n }\r\n getUploadedClaimFilesTotalSize(files: FileInfo[]): number {\r\n let totalFileSize: number = 0;\r\n\r\n files.forEach((file: FileInfo) => {\r\n if (file.rawFile) {\r\n totalFileSize += file.rawFile.size;\r\n }\r\n });\r\n\r\n return totalFileSize;\r\n }\r\n private fetchPolicyTypeList() {\r\n this.policyWordingSetUpService\r\n .getPolicyTypeList()\r\n .subscribe((response: PolicyTypeEntity[]) => {\r\n if (this.policyWording.productType == undefined) {\r\n this.policyType = response;\r\n } else {\r\n this.policyType = response.filter(\r\n (x) => x.productType == this.policyWording.productType\r\n );\r\n }\r\n });\r\n }\r\n private getDocumentTitleList() {\r\n this.policyWordingSetUpService\r\n .getDocumentTitleList()\r\n .subscribe((response: PolicyWordingEntity[]) => {\r\n this.documentTitleList = response;\r\n });\r\n }\r\n public onTitleChange(e: any): void {\r\n if (this.isUpdate) {\r\n this.policyWording.documentTitle = this.documentTitleList.filter(\r\n (x) =>\r\n x.policyWordingDocumentSetupId ==\r\n this.policyWording.policyWordingDocumentSetupId\r\n )[0].documentTitle;\r\n let titleList = this.documentName.split(\"/policyWording/\");\r\n this.documentName =\r\n titleList[0] + \"/policyWording/\" + this.policyWording.documentTitle;\r\n }\r\n }\r\n public downloadDocument(policyWording: PolicyWordingEntity): void {\r\n this.policyWordingSetUpService.downloadDocument(\r\n policyWording.documentTitle\r\n );\r\n }\r\n\r\n public onSubmit(): void {}\r\n add(): void {\r\n let hasError = false;\r\n this.errorLogs.Logs = [];\r\n this.dateValidationMsg = \"\";\r\n this.docTitleValidationMsg = \"\";\r\n this.excelFilesErrorMessage = \"\";\r\n if (this.policyWording.productType == null) {\r\n this.errorLogs.Logs.push(\"Please select a product type.\");\r\n hasError = true;\r\n } else if (this.policyWording.policyType == null) {\r\n this.errorLogs.Logs.push(\"Please policy type.\");\r\n hasError = true;\r\n } else if (this.policyWording.startEffectiveDate == null) {\r\n this.errorLogs.Logs.push(\"Please enter start effective date.\");\r\n hasError = true;\r\n } else if (\r\n !this.isUpdate &&\r\n new Date(this.policyWording.startEffectiveDate) <=\r\n new Date(this.minEffectiveDate)\r\n ) {\r\n this.errorLogs.Logs.push(\r\n \"StartEffective Date should be greater to latest StartEffective Date of existing policy setup.\"\r\n );\r\n hasError = true;\r\n } else if (\r\n this.isUpdate &&\r\n new Date(this.policyWording.startEffectiveDate) <=\r\n new Date(this.minEffectiveDate)\r\n ) {\r\n this.errorLogs.Logs.push(\r\n \"StartEffective Date should be greater than latest StartEffective Date of existing policy setup.\"\r\n );\r\n hasError = true;\r\n } else if (this.policyWording.documentVersion == null) {\r\n this.errorLogs.Logs.push(\"Please select document version.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentVersion == \"New\" &&\r\n (this.policyWording.documentTitle == null ||\r\n this.policyWording.documentTitle == \"\")\r\n ) {\r\n this.errorLogs.Logs.push(\"Please enter document title.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentTitle != null &&\r\n this.policyWording.documentTitle.indexOf(\" \") >= 0\r\n ) {\r\n this.errorLogs.Logs.push(\"Space not allowed in document title.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentVersion == \"New\" &&\r\n (this.policyWording.documentTitle == null ||\r\n this.policyWording.documentTitle == \"\")\r\n ) {\r\n this.errorLogs.Logs.push(\"Please enter document title.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentTitle != null &&\r\n this.policyWording.documentTitle.indexOf(\" \") >= 0\r\n ) {\r\n this.errorLogs.Logs.push(\"Space not allowed in document title.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentVersion != \"New\" &&\r\n this.policyWording.policyWordingDocumentSetupId == null\r\n ) {\r\n this.errorLogs.Logs.push(\"Please enter document title.\");\r\n hasError = true;\r\n } else if (\r\n this.policyWording.documentVersion == \"New\" &&\r\n this.policyWording.files == null\r\n ) {\r\n this.excelFilesErrorMessage = \"File needs to be uploaded.\";\r\n this.hasError = true;\r\n } else if (\r\n this.policyWording.documentVersion == \"New\" &&\r\n this.policyWording.files.length == 0\r\n ) {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n } else if (\r\n this.isUpdate &&\r\n this.documentChange &&\r\n this.policyWording.files == null\r\n ) {\r\n this.excelFilesErrorMessage = \"One File needs to be uploaded.\";\r\n this.hasError = true;\r\n } else if (\r\n this.isUpdate &&\r\n this.documentChange &&\r\n this.policyWording.files.length == 0\r\n ) {\r\n this.excelFilesErrorMessage = \"At least one file needs to be uploaded.\";\r\n this.hasError = true;\r\n } else {\r\n this.addpdf();\r\n }\r\n }\r\n private addpdf(): void {\r\n this.isProcessing = true;\r\n if (this.policyWording.documentVersion != \"New\") {\r\n this.policyWording.documentTitle = this.documentTitleList.filter(\r\n (x) =>\r\n x.policyWordingDocumentSetupId ==\r\n this.policyWording.policyWordingDocumentSetupId\r\n )[0].documentTitle;\r\n }\r\n // Populate uploadedExcel model into Form Data for HTTP POST\r\n let uplodedExcelFormData = this.populateFormData(this.policyWording);\r\n this.uploadService.uploadPolicyWording(uplodedExcelFormData).subscribe(\r\n (result: any) => {\r\n let tempData: any = null;\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n if (result.body.Status === false) {\r\n if (result.body.ValidationMessage == \"Title already Exists\") {\r\n this.isProcessing = false;\r\n this.ConfirmationErrorPopup(\r\n result.body.ValidationMessage +\r\n \"! Please use the correct document title.\",\r\n \"\"\r\n );\r\n return;\r\n } else {\r\n tempData = {\r\n message: result.body.Message,\r\n validationMessage: result.body.ValidationMessage,\r\n status: false,\r\n };\r\n }\r\n } else {\r\n tempData = {\r\n message: result.body.Message,\r\n status: true,\r\n };\r\n }\r\n //this.clearValues();\r\n this.getDocumentTitleList();\r\n this.GetPolicyWordingSetUpList();\r\n this.notifier.success(tempData.message, this.appendTo);\r\n if (this.isUpdate) {\r\n this.cancel();\r\n }\r\n this.isProcessing = false;\r\n }\r\n },\r\n (error: any) => {\r\n this.notifier.error(\r\n \"Failed to upload pdf file. Please contact the system administrator.\",\r\n this.appendTo\r\n );\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n private populateFormData(policyWording: PolicyWordingEntity): FormData {\r\n const formData: FormData = new FormData();\r\n for (let i = 0; i < policyWording.files?.length; i++) {\r\n formData.append(\"file\" + i.toString(), policyWording.files[i]);\r\n }\r\n formData.append(\"id\", policyWording.id);\r\n formData.append(\"productType\", policyWording.productType);\r\n formData.append(\"policyType\", policyWording.policyType.toString());\r\n formData.append(\"documentTitle\", policyWording.documentTitle);\r\n formData.append(\"documentVersion\", policyWording.documentVersion);\r\n formData.append(\r\n \"policyWordingDocumentSetupId\",\r\n policyWording.policyWordingDocumentSetupId\r\n );\r\n formData.append(\r\n \"startEffectiveDate\",\r\n new Date(policyWording.startEffectiveDate).toUTCString()\r\n );\r\n\r\n return formData;\r\n }\r\n public cancel = () => {\r\n this.isUpdate = false;\r\n this.policyForm.reset();\r\n this.isProcessing = false;\r\n };\r\n public updatePolicyHandler(policyWording: PolicyWordingEntity): void {\r\n //todo: return as promise or observable\r\n this.ConfirmationPopup(\r\n \"Are you sure you want to update the policy setup?\",\r\n policyWording\r\n );\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n ConfirmationErrorPopup(msg: string, data: any) {\r\n let v2InputData: v2DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV2Component,\r\n {\r\n data: v2InputData,\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {});\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n // //https://www.telerik.com/kendo-angular-ui/components/grid/api/CellClickEvent/\r\n // console.log(\"cell clicked\");\r\n // //todo: this will re-route to proposal page\r\n // this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n // queryParams: { id: dataItem.proposalId },\r\n // });\r\n if (columnIndex === 7) this.downloadDocument(dataItem);\r\n }\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.loadItems();\r\n }\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n this.errorLogs.Logs = [];\r\n if (args.status === \"yes\") {\r\n this.documentChange = false;\r\n this.policyWording.files = this.uploadPdf;\r\n //const myCopiedArray = Object.assign([], args.data);\r\n this.policyWording.policyType = [];\r\n this.policyWording.productType = args.data.productType;\r\n this.policyWording.policyType[0] = args.data.policyType;\r\n this.policyWording.documentTitle = args.data.documentTitle;\r\n this.policyWording.startEffectiveDate = new Date(\r\n args.data.startEffectiveDate\r\n );\r\n this.policyWording.policyWordingDocumentSetupId =\r\n args.data.policyWordingDocumentSetupId;\r\n this.documentName = args.data.documentName;\r\n this.policyWording.documentVersion = \"Existing\";\r\n if (this.lstPolicyWording.length > 1) {\r\n this.minEffectiveDate = new Date(\r\n this.lstPolicyWording[1].startEffectiveDate\r\n );\r\n }\r\n this.isUpdate = true;\r\n }\r\n }\r\n async confirmationErrorModalCloseForActions(args: dlgModelArgs) {}\r\n\r\n public onPolicyTypeChange(val: any): void {\r\n this.minEffectiveDate = new Date(1900, 1, 1);\r\n\r\n if (this.policyWording.productType?.length == 1) {\r\n this.policyWording.productType = this.policyType.filter(\r\n (x) => x.policyType == this.policyWording.productType\r\n )[0].productType;\r\n }\r\n this.GetPolicyWordingSetUpList();\r\n }\r\n public GetPolicyWordingSetUpList(): void {\r\n let policyType: string = \"\";\r\n this.lstPolicyWording = [];\r\n if (\r\n !this.isUpdate &&\r\n Array.isArray(this.policyWording.policyType) &&\r\n this.policyWording.policyType.length > 1\r\n ) {\r\n for (let i = 0; i < this.policyWording.policyType.length; i++) {\r\n this.callGetPolicyWordingSetUpListdList(\r\n this.policyWording.policyType[i]\r\n );\r\n }\r\n } else {\r\n if (Array.isArray(this.policyWording.policyType)) {\r\n policyType = this.policyWording.policyType[0];\r\n } else {\r\n policyType = this.policyWording.policyType;\r\n }\r\n\r\n this.callGetPolicyWordingSetUpListdList(policyType);\r\n }\r\n }\r\n callGetPolicyWordingSetUpListdList(policyType: any) {\r\n if (policyType != undefined) {\r\n this.policyWordingSetUpService\r\n .getPolicyWordingSetUpList(policyType, this.policyWording.productType)\r\n .subscribe(\r\n (result: PolicyWordingEntity[]) => {\r\n if (result.length > 0) {\r\n result.forEach((oItem) => {\r\n this.lstPolicyWording.push(oItem);\r\n if (this.minEffectiveDate == null) {\r\n this.minEffectiveDate = new Date(oItem.startEffectiveDate);\r\n } else {\r\n if (\r\n new Date(this.minEffectiveDate) <\r\n new Date(oItem.startEffectiveDate)\r\n ) {\r\n this.minEffectiveDate = new Date(oItem.startEffectiveDate);\r\n }\r\n }\r\n });\r\n this.totalListing = this.lstPolicyWording.length;\r\n this.loadItems();\r\n } else {\r\n // this.lstPolicyWording = [];\r\n this.minEffectiveDate = new Date(this._minTransactionDate);\r\n }\r\n },\r\n (error) => {\r\n this.AddGroupErrorMessageBySplitting(error);\r\n }\r\n );\r\n }\r\n this.totalListing = this.lstPolicyWording.length;\r\n this.loadItems();\r\n }\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.lstPolicyWording.slice(this.skip, this.skip + this.pageSize), //static paging\r\n //data: this.listing, //.slice(this.skip, this.skip + this.pageSize),//dynamic paging\r\n total: this.totalListing,\r\n };\r\n }\r\n private AddGroupErrorMessageBySplitting(errorMessage: string) {\r\n this.errorLogs.Logs = [];\r\n var errorMessages = errorMessage.split(\";\").reverse();\r\n errorMessages.forEach((errormessage) => {\r\n this.errorLogs.Logs?.push(errormessage);\r\n });\r\n this.ConfirmationErrorPopup(errorMessages.toString(), \"\");\r\n }\r\n public onProductTypeChange(e: any): void {\r\n this.fetchPolicyTypeList();\r\n this.lstPolicyWording = [];\r\n }\r\n public downloadPolicies = (policyWording: PolicyWordingEntity): void => {\r\n this.policyWordingSetUpService\r\n .getPolicyListOfWordingSetUp(policyWording.id)\r\n .subscribe(\r\n (result: PolicyWordingEntity[]) => {\r\n this.excelTemplate.downloadPolicies(\r\n columns,\r\n policyWording.documentTitle,\r\n \"PolicyList\",\r\n result\r\n );\r\n },\r\n (error) => {\r\n this.AddGroupErrorMessageBySplitting(error);\r\n }\r\n );\r\n };\r\n}\r\nconst columns: string[] = [\r\n \"Policy Certificate No\",\r\n \"Product Type\",\r\n \"Policy Type\",\r\n \"Policy No\",\r\n \"Effective Date\",\r\n \"PolicyBound Date\",\r\n \"Expiry Date\",\r\n];\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n 0\"\r\n name=\"error_panel\"\r\n [expanded]=\"true\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ documentName }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ excelFilesErrorMessage }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n \r\n Update\r\n \r\n\r\n \r\n Cancel\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.startEffectiveDate | date : \"MM/dd/yyyy\" }}\r\n \r\n \r\n \r\n \r\n {{ dataItem.endEffectiveDate | date : \"MM/dd/yyyy\" }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.updatedDate | date : \"MM/dd/yyyy\" }}\r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.documentName }}\r\n \r\n \r\n \r\n \r\n \r\n Update\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","\r\nexport class PolicyTypeEntity {\r\n productType!: string;\r\n policyType!: string;\r\n}\r\nexport class PolicyWordingEntity {\r\n id: any;\r\n productType!: any;\r\n policyType!: Array;\r\n policyTypeDesc!: string ;\r\n documentVersion!: string;\r\n documentTitle!: any;\r\n policyWordingDocumentSetupId!: any ;\r\n startEffectiveDate!: Date ;\r\n endEffectiveDate!: Date ;\r\n documentPath!: any ;\r\n documentName!: any ;\r\n updatedBy!: any;\r\n updatedDate!: Date ;\r\n files!: any;\r\n constructor() {\r\n this.id = null;\r\n this.productType = null;\r\n //this.policyType = null;\r\n //this.documentVersion = null;\r\n this.documentTitle = null;\r\n this.policyWordingDocumentSetupId = null;\r\n // this.startEffectiveDate = null;\r\n // this.endEffectiveDate = null;\r\n this.documentPath = null;\r\n this.documentName = null;\r\n // this.updatedBy = null;\r\n // this.updatedDate = null;\r\n // this.files = null;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export class RmScreenListingEntity {\r\n id!: string;\r\n rMName!: string;\r\n teamName!: string;\r\n pcCode!: string;\r\n officeNumber!: string;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { Validators, UntypedFormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { RmScreenListingEntity } from \"../RmScreenListingEntity\";\r\n\r\n@Component({\r\n selector: \"app-rm-grid-edit-form\",\r\n templateUrl: \"./rm-grid-edit-form.component.html\",\r\n styleUrls: [\"./rm-grid-edit-form.component.scss\"],\r\n})\r\nexport class RmGridEditFormComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public active = false;\r\n public editForm: UntypedFormGroup = new UntypedFormGroup({\r\n id: new UntypedFormControl(\"\"), //new FormControl(\"\", Validators.required),//id is empty when new\r\n rMName: new UntypedFormControl(\"\", Validators.required),\r\n teamName: new UntypedFormControl(\"\", Validators.required),\r\n pcCode: new UntypedFormControl(\"\", [Validators.required, Validators.maxLength(4)]),\r\n officeNumber: new UntypedFormControl(\"\"),\r\n });\r\n\r\n @Input() public isNew = false;\r\n\r\n @Input() public set model(rmScreenEntity: RmScreenListingEntity | undefined) {\r\n this.editForm.reset(rmScreenEntity);\r\n\r\n // toggle the Dialog visibility\r\n this.active = rmScreenEntity !== undefined;\r\n }\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n}\r\n","\r\n \r\n {{ isNew ? \"Add\" : \"Edit\" }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n RM Name is required.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Team Name is required.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n PC Code is required.\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Update\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport {\r\n AddEvent,\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n RemoveEvent,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\r\nimport { State } from \"@progress/kendo-data-query\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { RmScreenService } from \"src/app/services/rm-screen.service\";\r\nimport {\r\n dlgModelArgs,\r\n MdConfirmationMessageV1Component,\r\n v1DlgInputArgs,\r\n} from \"../../shared/partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport { RmScreenListingEntity } from \"./RmScreenListingEntity\";\r\n\r\n@Component({\r\n selector: \"app-rm-screen\",\r\n templateUrl: \"./rm-screen.component.html\",\r\n styleUrls: [\"./rm-screen.component.scss\"],\r\n})\r\nexport class RmScreenComponent implements OnInit {\r\n isUnderwriter: boolean = false;\r\n isOperationUnderwriter: boolean = false;\r\n hideActions: boolean = true;\r\n\r\n public editRmDataItem!: RmScreenListingEntity | undefined;\r\n public isNewRm!: boolean;\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n public listing: RmScreenListingEntity[] = []; //public, to be accessed by [kendoGridBinding]\r\n private totalListing: number = 0;\r\n\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n @ViewChild(\"appendTo\", { read: ViewContainerRef, static: false })\r\n public appendTo!: ViewContainerRef;\r\n\r\n constructor(\r\n private masterDataService: MasterDataService,\r\n private rmScreenService: RmScreenService,\r\n private notifier: NotifierService,\r\n private identityRolesService: IdentityRolesService,\r\n private cdkDialogService: CdkDialogService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const component = this;\r\n this.isUnderwriter = this.identityRolesService.isUnderwriter;\r\n this.isOperationUnderwriter =\r\n this.identityRolesService.isOperationUnderwriter;\r\n\r\n if (this.isUnderwriter && !this.isOperationUnderwriter) {\r\n this.hideActions = false;\r\n }\r\n\r\n this.getRmdetails();\r\n }\r\n\r\n getRmdetails() {\r\n this.rmScreenService.getRmdetails().then((result) => {\r\n if (result) {\r\n this.listing = result;\r\n this.totalListing = this.listing.length;\r\n this.loadItems();\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.listing.slice(this.skip, this.skip + this.pageSize), //static paging\r\n //data: this.listing, //.slice(this.skip, this.skip + this.pageSize),//dynamic paging\r\n total: this.totalListing,\r\n };\r\n }\r\n\r\n public onTabSelect(e: SelectEvent) {}\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {\r\n // console.log(\"gridSelectionChanged\");\r\n const selectedData = selection?.selectedRows;\r\n if (selectedData != undefined && selectedData.length > 0) {\r\n var entity = selectedData[0].dataItem;\r\n }\r\n\r\n const deselectedData = selection?.deselectedRows;\r\n if (deselectedData != undefined && deselectedData.length > 0) {\r\n var entity = deselectedData[0].dataItem;\r\n //auto, from two-way binding of [(selectedKeys)]\r\n // this.selectedRowIndexes.forEach((item, index) => {\r\n // if (item === deselectedData[0].index)\r\n // this.selectedRowIndexes.splice(index, 1);\r\n // });\r\n }\r\n }\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {}\r\n\r\n private refresh(): void {\r\n this.loadItems(); //no need to call api\r\n }\r\n\r\n public onRmStateChange(state: State): void {\r\n // this.gridState = state;\r\n // this.editService.read();\r\n }\r\n\r\n public addRmHandler(): void {\r\n this.editRmDataItem = new RmScreenListingEntity();\r\n this.isNewRm = true;\r\n }\r\n\r\n public editRmHandler(args: AddEvent): void {\r\n this.editRmDataItem = args.dataItem;\r\n this.isNewRm = false;\r\n }\r\n\r\n public cancelRmHandler(): void {\r\n this.editRmDataItem = undefined;\r\n }\r\n\r\n //both new & edit\r\n public saveRmHandler(rmScreenEntity: RmScreenListingEntity): void {\r\n this.rmScreenService\r\n .save(new Array(rmScreenEntity), this.isNewRm)\r\n .subscribe(\r\n (result: any) => {\r\n if (result != undefined && result.body != undefined) {\r\n if (result.body.IsSuccess) {\r\n for (let i = 0; i < this.listing.length; i++) {\r\n const updatedData: any = rmScreenEntity;\r\n if (this.listing[i].id === updatedData.id) {\r\n if (result.Id != \"\") {\r\n this.listing[i].id = result.Id;\r\n }\r\n this.listing[i].officeNumber = updatedData.officeNumber;\r\n this.listing[i].pcCode = updatedData.pcCode;\r\n this.listing[i].rMName = updatedData.rMName;\r\n this.listing[i].teamName = updatedData.teamName;\r\n rmScreenEntity = this.listing[i];\r\n }\r\n }\r\n //options.success(options.data.models[0]);\r\n this.masterDataService.clearFinancialInstitutionBranches();\r\n if (this.isNewRm) {\r\n this.notifier.success(\"Data Added Succesfully\", this.appendTo);\r\n } else {\r\n this.notifier.success(\r\n \"Data Updated Succesfully\",\r\n this.appendTo\r\n );\r\n }\r\n //this.hideDialogLoading();\r\n this.getRmdetails(); //reload live data\r\n } else {\r\n this.notifier.error(\"Error Occurred!\", this.appendTo);\r\n //this.hideDialogLoading();\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n\r\n this.editRmDataItem = undefined;\r\n }\r\n\r\n public removeRmHandler(args: RemoveEvent): void {\r\n this.ConfirmationPopup(\r\n \"Are you sure you wish to delete the item?\",\r\n args.dataItem\r\n );\r\n }\r\n\r\n ConfirmationPopup(msg: string, data: any) {\r\n let v1InputData: v1DlgInputArgs = {\r\n opened: true,\r\n dialogWidth: 600,\r\n data: data,\r\n message: msg,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageV1Component,\r\n {\r\n data: v1InputData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n }\r\n\r\n async confirmationModalCloseForActions(args: dlgModelArgs) {\r\n if (args.status === \"yes\") {\r\n if (args.data != null) {\r\n this.rmScreenService.deleteRM(args.data.id).subscribe(\r\n (result: any) => {\r\n if (result != undefined) {\r\n if (result.IsSuccess) {\r\n //options.success(options.data.models[0]);\r\n this.masterDataService.clearFinancialInstitutionBranches();\r\n this.notifier.success(\r\n \"Data Deleted Succesfully\",\r\n this.appendTo\r\n );\r\n //this.hideDialogLoading();\r\n this.getRmdetails(); //reload live data\r\n } else {\r\n this.notifier.error(\"Error Occurred!\", this.appendTo);\r\n //this.hideDialogLoading();\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"src/app/components/shared/partials/dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"app-md-validation-message\",\r\n templateUrl: \"./md-validation-message.component.html\",\r\n styleUrls: [\"./md-validation-message.component.scss\"],\r\n})\r\nexport class MdValidationMessageComponent implements OnInit {\r\n message: SimpleMessageEntity[] = [];\r\n title = \"\";\r\n showAddLocationForm: boolean = false;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any\r\n ) {\r\n if (this.inputData) {\r\n if (Array.isArray(inputData)) {\r\n this.message = inputData;\r\n this.title = \"Please check the field(s) below\";\r\n } else {\r\n this.message = [{ text: inputData.validationMessages }];\r\n this.title = inputData.title;\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n addLocation() {\r\n this.showAddLocationForm = true;\r\n }\r\n\r\n cancelAddLocationForm() {\r\n this.showAddLocationForm = false;\r\n }\r\n\r\n public close(status: any) {\r\n this.dialogRef?.close(null);\r\n }\r\n}\r\n\r\nexport class SimpleMessageEntity {\r\n text!: string;\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n","import { forEach } from \"lodash\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n Route,\r\n UrlTree,\r\n UrlSegment,\r\n} from \"@angular/router\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { ROUTE_LOGIN } from \"src/app/app.module\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport {\r\n ROUTE_HOME,\r\n ROUTE_USER_ROLE_SELECTION,\r\n} from \"src/app/app-routing.module\";\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private identityRolesService: IdentityRolesService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n // Get property name on security object to check\r\n let claimName: string = next.data[\"claimName\"];\r\n\r\n if (\r\n this.identityRolesService.getIdentity() != null &&\r\n this.identityRolesService.isLoggedIn() != null\r\n ) {\r\n //check from roles\r\n const url: string = state.url;\r\n //any roles can goes to ROUTE_USER_ROLE_SELECTION, as long as autheticated\r\n if (url === \"/\" + ROUTE_USER_ROLE_SELECTION) {\r\n return true;\r\n }\r\n return this.checkUserRole(next, url);\r\n // return true;\r\n } else {\r\n this.router.navigate(\r\n [\"/\" + ROUTE_LOGIN] //, {\r\n // queryParams: { returnUrl: state.url },\r\n //}\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n // canActivateChild(\r\n // next: ActivatedRouteSnapshot,\r\n // state: RouterStateSnapshot\r\n // ):\r\n // | Observable\r\n // | Promise\r\n // | boolean\r\n // | UrlTree {\r\n // return this.canActivate(next, state);\r\n // }\r\n // canDeactivate(\r\n // component: unknown,\r\n // currentRoute: ActivatedRouteSnapshot,\r\n // currentState: RouterStateSnapshot,\r\n // nextState?: RouterStateSnapshot\r\n // ):\r\n // | Observable\r\n // | Promise\r\n // | boolean\r\n // | UrlTree {\r\n // return true;\r\n // }\r\n // canLoad(\r\n // route: Route,\r\n // segments: UrlSegment[]\r\n // ): Observable | Promise | boolean {\r\n // return true;\r\n // }\r\n\r\n checkUserRole(route: ActivatedRouteSnapshot, url: any): boolean {\r\n if (this.identityRolesService.isLoggedIn()) {\r\n const roles: string = route.data[\"role\"];\r\n let valid: boolean = false;\r\n if (roles !== undefined) {\r\n const splitRoles: any[] = roles.split(\"|\");\r\n splitRoles.forEach((role) => {\r\n valid =\r\n this.identityRolesService[role as keyof IdentityRolesService] !==\r\n undefined\r\n ? true\r\n : false;\r\n if (!valid) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n if (!valid) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n return false;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { IIdentity } from \"src/app/framework/interface.shared\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\n\r\n@Component({\r\n selector: \"app-base\",\r\n templateUrl: \"./base.component.html\",\r\n styleUrls: [\"./base.component.scss\"],\r\n})\r\nexport class BaseComponent implements OnInit {\r\n public currentIdentity: IIdentity;\r\n\r\n constructor(\r\n public router: Router,\r\n public broadcastService: BroadcastService,\r\n public identityRolesService: IdentityRolesService\r\n ) {\r\n //when log-in, the sessionStorageService might not yet init-ed, hence needs to sub to a broadcast\r\n this.broadcastService.onAutheticated.subscribe((msg: any) => {\r\n this.currentIdentity = this.identityRolesService.getIdentity();\r\n });\r\n\r\n this.currentIdentity = this.identityRolesService.getIdentity();\r\n //when refresh\r\n if (common.isUndefinedOrNull(this.currentIdentity.role)) {\r\n this.identityRolesService.refreshCurrentUser();\r\n }\r\n }\r\n\r\n public ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { httpNotifier } from \"src/app/interceptor/http-notifier\";\r\nimport { buttonNotifier } from \"../notifier/button-notifier\";\r\n\r\n@Component({\r\n selector: \"[button-default]\", //render Selector as an Attribute\r\n templateUrl: \"./button-default.component.html\",\r\n styleUrls: [\"./button-default.component.scss\"],\r\n})\r\nexport class ButtonDefaultComponent implements OnInit {\r\n public httpRequesting: boolean = false;\r\n public running: boolean = false;\r\n private id!: number;\r\n\r\n private request_notifier_subscription: Subscription = new Subscription();\r\n private request_error_notifier_subscription: Subscription =\r\n new Subscription();\r\n private response_notifier_subscription: Subscription = new Subscription();\r\n private response_error_notifier_subscription: Subscription =\r\n new Subscription();\r\n private start_notifier_subscription: Subscription = new Subscription();\r\n private end_notifier_subscription: Subscription = new Subscription();\r\n\r\n onClick!: (e: any) => void;\r\n event: any;\r\n customButtonStartNotification: boolean = false;\r\n\r\n constructor() {\r\n this.id = common.generateUniqueId();\r\n\r\n // do nothing\r\n this.request_notifier_subscription =\r\n httpNotifier.request_notifier$.subscribe(this.onHttpRequestStart);\r\n this.request_error_notifier_subscription =\r\n httpNotifier.response_error_notifier$.subscribe(this.onHttpRequestEnd);\r\n this.response_notifier_subscription =\r\n httpNotifier.response_notifier$.subscribe(this.onHttpRequestEnd);\r\n this.response_error_notifier_subscription =\r\n httpNotifier.response_error_notifier$.subscribe(this.onHttpRequestEnd);\r\n\r\n this.start_notifier_subscription = buttonNotifier.start_notifier$.subscribe(\r\n this.onButtonStart\r\n );\r\n this.end_notifier_subscription = buttonNotifier.end_notifier$.subscribe(\r\n this.onButtonEnd\r\n );\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public $onDestroy = () => {\r\n this.request_notifier_subscription.unsubscribe();\r\n this.request_error_notifier_subscription.unsubscribe();\r\n this.response_notifier_subscription.unsubscribe();\r\n this.response_error_notifier_subscription.unsubscribe();\r\n this.start_notifier_subscription.unsubscribe();\r\n this.end_notifier_subscription.unsubscribe();\r\n };\r\n\r\n public onHttpRequestStart = (e: KeyValue) => {\r\n this.httpRequesting = true;\r\n };\r\n\r\n public onHttpRequestEnd = (e: KeyValue) => {\r\n setTimeout(() => {\r\n this.httpRequesting = false;\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(this.id.toString(), \"end\")\r\n );\r\n }, 50);\r\n };\r\n\r\n public onButtonStart = (e: KeyValue) => {\r\n const eId = e.key.toNumber();\r\n if (eId === this.id) {\r\n this.running = true;\r\n }\r\n };\r\n\r\n public onButtonEnd = (e: KeyValue) => {\r\n const eId = e.key.toNumber();\r\n if (eId === this.id) {\r\n this.running = false;\r\n }\r\n };\r\n\r\n public click() {\r\n try {\r\n if (!this.customButtonStartNotification) {\r\n buttonNotifier.start_notifier$.next(\r\n new KeyValue(this.id.toString(), \"start\")\r\n );\r\n }\r\n\r\n if (common.isDefined(this.onClick)) {\r\n this.onClick(new KeyValue(this.id.toString(), this.event));\r\n }\r\n } catch (error) {\r\n // just notified end if any error occurred\r\n this.httpRequesting = false;\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(this.id.toString(), \"end\")\r\n );\r\n\r\n throw error;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n\r\n","export enum IdleWarningStates {\r\n PrimaryTimerStarted,\r\n PrimaryTimerExpired,\r\n SecondaryTimerStarted,\r\n SecondaryTimerExpired,\r\n SecondaryTimerCancelled,\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\n\r\nimport { timer } from \"rxjs\";\r\nimport { finalize, takeWhile, tap } from \"rxjs/operators\";\r\n\r\nimport { IdleWarningStates } from \"../enums/idle-warning.states.enum\";\r\nimport { IdleService } from \"src/app/services/idle/idle.service\";\r\n\r\n@Component({\r\n selector: \"ng-idle-warning\",\r\n templateUrl: \"./idle-warning.component.html\",\r\n styleUrls: [\"./idle-warning.component.scss\"],\r\n})\r\nexport class IdleWarningComponent implements OnInit, OnDestroy {\r\n @Input() titleMessage!: string;\r\n @Input() bodyMessage!: string;\r\n\r\n constructor(private _idleService: IdleService) {}\r\n\r\n private _isComponentDestroyed = false;\r\n\r\n timeRemaining!: number;\r\n warningTime!: number;\r\n\r\n ngOnInit(): void {\r\n this.warningTime = this._idleService.idleWarningTime;\r\n this.timeRemaining = this._idleService.idleWarningTime;\r\n this.startTimer();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._isComponentDestroyed = true;\r\n }\r\n\r\n private startTimer(): void {\r\n this.setState(true);\r\n timer(0, 1000)\r\n .pipe(\r\n takeWhile(() => this.continueTimer()),\r\n finalize(() => this.setState(false)),\r\n tap(() => this.timeRemaining--)\r\n )\r\n .subscribe();\r\n }\r\n\r\n private setState(isInitalState: boolean): void {\r\n if (isInitalState) {\r\n this._idleService.currentIdleWarningState =\r\n IdleWarningStates.SecondaryTimerStarted;\r\n return;\r\n }\r\n\r\n this._idleService.currentIdleWarningState =\r\n this.timeRemaining > 0\r\n ? IdleWarningStates.SecondaryTimerCancelled\r\n : IdleWarningStates.SecondaryTimerExpired;\r\n }\r\n\r\n private continueTimer(): boolean {\r\n if (!this._isComponentDestroyed && this.timeRemaining > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

{{ titleMessage }}

\r\n
\r\n
\r\n

{{ bodyMessage }}

\r\n
\r\n \r\n {{ timeRemaining }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, ElementRef, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ModalService } from \"src/app/services/idle/modal.service\";\r\n\r\n@Component({\r\n selector: \"ng-idle-modal\",\r\n templateUrl: \"./modal.component.html\",\r\n styleUrls: [\"./modal.component.scss\"],\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n @Input()\r\n id!: string;\r\n\r\n constructor(private modalService: ModalService, private el: ElementRef) {\r\n this.element = el.nativeElement;\r\n }\r\n\r\n private _closed$: Subject = new Subject();\r\n private element: any;\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n console.error(\"modal must have an id\");\r\n return;\r\n }\r\n\r\n this.toggleVisibility();\r\n\r\n document.body.appendChild(this.element);\r\n\r\n this.modalService.add(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalService.remove(this.id);\r\n this.element.remove();\r\n }\r\n\r\n open(): void {\r\n this.toggleVisibility();\r\n }\r\n\r\n close(): void {\r\n this.toggleVisibility();\r\n this._closed$.next(true);\r\n }\r\n\r\n afterClosed(): Observable {\r\n return this._closed$;\r\n }\r\n\r\n private toggleVisibility(): void {\r\n if (this.element.style.visibility === \"hidden\") {\r\n this.element.style.visibility = \"visible\";\r\n this.element.style.opacity = 1;\r\n } else {\r\n this.element.style.visibility = \"hidden\";\r\n this.element.style.opacity = 0;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { DialogsModule } from \"@progress/kendo-angular-dialog\";\r\n\r\nimport { IdleWarningComponent } from \"./idle-warning/idle-warning.component\";\r\nimport { ModalComponent } from \"./modal/modal.component\";\r\nimport { NgxIdleTimeoutComponent } from \"./ngx-idle-timeout/ngx-idle-timeout.component\";\r\n\r\n@NgModule({\r\n declarations: [IdleWarningComponent, ModalComponent, NgxIdleTimeoutComponent],\r\n imports: [CommonModule, DialogsModule],\r\n exports: [NgxIdleTimeoutComponent],\r\n})\r\nexport class NgxIdleTimeoutModule {}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\n\r\nimport { Observable, of, Subscription } from \"rxjs\";\r\nimport { IdleWarningStates } from \"../enums/idle-warning.states.enum\";\r\nimport { IdleService } from \"src/app/services/idle/idle.service\";\r\nimport { ModalService } from \"src/app/services/idle/modal.service\";\r\nimport { mergeMap, tap } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-idle-timeout\",\r\n templateUrl: \"./ngx-idle-timeout.component.html\",\r\n})\r\nexport class NgxIdleTimeoutComponent implements OnInit, OnDestroy {\r\n @Input() allowedIdleTimeInSeconds = 60;\r\n @Input() warningTimeInSeconds = 10;\r\n @Input() titleMessage!: string;\r\n @Input() bodyMessage!: string;\r\n\r\n modalId = \"timeout\";\r\n isIdlePopupOpen = false;\r\n\r\n constructor(\r\n private _idleService: IdleService,\r\n private _modalService: ModalService\r\n ) {}\r\n\r\n private _subscriptionsArray$: Subscription[] = [];\r\n\r\n ngOnInit(): void {\r\n this._idleService.allowedIdleTime = this.allowedIdleTimeInSeconds;\r\n this._idleService.idleWarningTime = this.warningTimeInSeconds;\r\n\r\n this.watchTimeout();\r\n this.watchStateChanged();\r\n this.watchTimerReset();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptionsArray$.forEach((item) => {\r\n item.unsubscribe();\r\n });\r\n this._idleService.stopTimer();\r\n }\r\n\r\n private watchTimeout(): void {\r\n const sub$ = this._idleService\r\n .startWatching()\r\n .pipe(\r\n tap(\r\n () =>\r\n (this._idleService.currentIdleWarningState =\r\n IdleWarningStates.PrimaryTimerExpired)\r\n )\r\n )\r\n .subscribe();\r\n\r\n this._subscriptionsArray$.push(sub$);\r\n }\r\n\r\n private watchStateChanged(): void {\r\n const sub$ = this._idleService\r\n .idleStateChanged()\r\n .pipe(\r\n mergeMap((state: IdleWarningStates) => this.showTimeoutWarning(state))\r\n )\r\n .subscribe((data: boolean | null) => this.setState(data));\r\n\r\n this._subscriptionsArray$.push(sub$);\r\n }\r\n\r\n private showTimeoutWarning(\r\n state: IdleWarningStates\r\n ): Observable {\r\n if (\r\n state === IdleWarningStates.PrimaryTimerExpired &&\r\n !this.isIdlePopupOpen\r\n ) {\r\n this.isIdlePopupOpen = true;\r\n\r\n this._modalService.open(this.modalId);\r\n return this._modalService.afterClosed();\r\n }\r\n return of(null);\r\n }\r\n\r\n private setState(action: boolean | null): void {\r\n if (!action) {\r\n return;\r\n }\r\n\r\n this._idleService.currentIdleWarningState = action\r\n ? IdleWarningStates.PrimaryTimerStarted\r\n : IdleWarningStates.SecondaryTimerExpired;\r\n }\r\n\r\n private watchTimerReset(): void {\r\n const sub$ = this._idleService\r\n .timerResetOccoured()\r\n .subscribe(() => this.closeDialog());\r\n\r\n this._subscriptionsArray$.push(sub$);\r\n }\r\n\r\n private closeDialog(): void {\r\n if (!this.isIdlePopupOpen) {\r\n return;\r\n }\r\n\r\n this._modalService.close(this.modalId);\r\n this.isIdlePopupOpen = false;\r\n }\r\n}\r\n","\r\n \r\n\r\n","import { Component, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"checkbox-question\",\r\n templateUrl: \"./checkbox-question.component.html\",\r\n styleUrls: [\"./checkbox-question.component.scss\"],\r\n})\r\nexport class CheckboxQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n\r\n @ViewChild(\"qs_checkbox\", { static: false })\r\n public qs_checkbox: any;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return (\r\n ques!.answer == 1 || ques!.answer === \"True\" || ques!.answer === true\r\n );\r\n }\r\n\r\n public qs_onChange = (data: any): void => {\r\n if (data === \"False\") {\r\n this.updateNativeElement(this.qs_checkbox, true);\r\n this.question!.answer = \"True\";\r\n } else {\r\n this.updateNativeElement(this.qs_checkbox, false);\r\n this.question!.answer = \"False\";\r\n }\r\n };\r\n\r\n updateNativeElement(ele: any, value: boolean) {\r\n if (ele !== undefined) {\r\n ele.nativeElement.checked = value;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Yes\r\n
\r\n \r\n No\r\n
\r\n \r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"currency-box-conditional-question\",\r\n templateUrl: \"./currency-box-conditional-question.component.html\",\r\n styleUrls: [\"./currency-box-conditional-question.component.scss\"],\r\n})\r\nexport class CurrencyBoxConditionalQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n @Input() public condition!: boolean;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n //https://stackoverflow.com/questions/40341648/angular-2-how-to-bind-input-to-model-property-with-getter-and-setter-methods\r\n // Getter method\r\n public get QuestionAnswerFormatted() {\r\n return Number(this.question.answer);\r\n }\r\n\r\n // Setter method\r\n public set QuestionAnswerFormatted(val: number) {\r\n // strip out all the currency information\r\n //const revenueVal = val.replace(/[^\\d]/g, '');\r\n //this.AnnualRevenue = parseInt(revenueVal);\r\n this.question.answer = String(val);\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n
\r\n {{\r\n question!.answer | ausCurrency\r\n }}\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"currency-box-v1-question\",\r\n templateUrl: \"./currency-box-v1-question.component.html\",\r\n styleUrls: [\"./currency-box-v1-question.component.scss\"],\r\n})\r\nexport class CurrencyBoxV1QuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n //https://stackoverflow.com/questions/40341648/angular-2-how-to-bind-input-to-model-property-with-getter-and-setter-methods\r\n // Getter method\r\n public get QuestionAnswerFormatted() {\r\n return Number(this.question.answer);\r\n }\r\n\r\n // Setter method\r\n public set QuestionAnswerFormatted(val: number) {\r\n // strip out all the currency information\r\n //const revenueVal = val.replace(/[^\\d]/g, '');\r\n //this.AnnualRevenue = parseInt(revenueVal);\r\n this.question.answer = String(val);\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

{{ question.answer | ausCurrency }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\nimport { Culture, dateFormatter } from \"src/app/shared/date-formatter\";\r\n\r\n@Component({\r\n selector: \"date-input-question\",\r\n templateUrl: \"./date-input-question.component.html\",\r\n styleUrls: [\"./date-input-question.component.scss\"],\r\n})\r\nexport class DateInputQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n minDate: any;\r\n maxDate: any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n displayText = () => {\r\n return dateFormatter.format(this.question.answer, Culture.enSg);\r\n };\r\n\r\n checkIsDefined = (mode: string, value: any) => {\r\n if (mode === \"min\") {\r\n // set min date to 1900\r\n this.minDate = common.isDate(value) ? value : new Date(1900, 0, 1);\r\n return this.minDate;\r\n } else if (mode === \"max\") {\r\n // set max date to 2999\r\n this.maxDate = common.isDate(value) ? value : new Date(2999, 11, 31);\r\n return this.maxDate;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n public onChange(): void {\r\n if (this.question.answer > this.maxDate) {\r\n this.question.answer = new Date(this.maxDate);\r\n } else if (this.question.answer < this.minDate) {\r\n this.question.answer = new Date(this.minDate);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{ displayText() }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\nimport { Culture, dateFormatter } from \"src/app/shared/date-formatter\";\r\nimport { Global } from \"src/app/shared/global\";\r\n\r\n@Component({\r\n selector: \"date-picker-v1-question\",\r\n templateUrl: \"./date-picker-v1-question.component.html\",\r\n styleUrls: [\"./date-picker-v1-question.component.scss\"],\r\n})\r\nexport class DatePickerV1QuestionComponent implements OnInit {\r\n @Input() public question!: QuestionEntity;\r\n @Input() public minDate?: Date;\r\n @Input() public maxDate?: Date;\r\n @Input() public onClose?: (args: any) => void;\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n keyDown = function (evt: { preventDefault: () => void }) {\r\n /* to disable the input for date input*/\r\n evt.preventDefault();\r\n };\r\n\r\n displayText = () => {\r\n return dateFormatter.format(this.question.answer, Culture.enSg);\r\n // return Global.formatDateToString(value.toISOString());\r\n };\r\n\r\n checkIsDefined(mode: string, value: Date | number): Date {\r\n if (mode === \"min\") {\r\n // set min date to 1900\r\n return Global.isDate(value) ? new Date(value) : new Date(1900, 1, 1);\r\n } /*(mode === 'max')*/ else {\r\n // set max date to 2999\r\n return Global.isDate(value) ? new Date(value) : new Date(2999, 12, 31);\r\n }\r\n }\r\n\r\n setMinDate() {\r\n if (this.minDate != undefined) {\r\n return this.minDate;\r\n } else {\r\n return this.checkIsDefined(\"min\", this.question.minValue!);\r\n }\r\n }\r\n\r\n setMaxDate() {\r\n if (this.maxDate != undefined) {\r\n return this.maxDate;\r\n } else {\r\n return this.checkIsDefined(\"max\", this.question.maxValue!);\r\n }\r\n }\r\n\r\n public valueUpdated(evt?: any) {\r\n if (this.onClose) {\r\n this.onClose(evt);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n   🛈\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

{{ displayText() }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"drop-down-list-filter-question\",\r\n templateUrl: \"./drop-down-list-filter-question.component.html\",\r\n styleUrls: [\"./drop-down-list-filter-question.component.scss\"],\r\n})\r\nexport class DropDownListFilterQuestionComponent implements OnInit {\r\n @Input() public question!: QuestionEntity;\r\n @Input() public onValueChange?: (args: any) => void;\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n answerDisplayText(question: QuestionEntity): string {\r\n let answerDisplayText: string = \"\";\r\n /*this.answer = \"1\";*/\r\n question.options.forEach((option) => {\r\n if (option.value === question.answer) {\r\n answerDisplayText = option.key;\r\n }\r\n });\r\n return answerDisplayText;\r\n }\r\n\r\n public valueChange(evt?: any) {\r\n if (this.onValueChange) {\r\n this.onValueChange(evt);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n

{{ answerDisplayText(question) }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"drop-down-list-question\",\r\n templateUrl: \"./drop-down-list-question.component.html\",\r\n styleUrls: [\"./drop-down-list-question.component.scss\"],\r\n})\r\nexport class DropDownListQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n answerDisplayText = (question: QuestionEntity) => {\r\n let answerDisplayText: string = \"\";\r\n /*this.answer = \"1\";*/\r\n question.options.forEach((option) => {\r\n if (option.value === question.answer) {\r\n answerDisplayText = option.key;\r\n }\r\n });\r\n return answerDisplayText;\r\n };\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n

{{ answerDisplayText(question) }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"numeric-box-question\",\r\n templateUrl: \"./numeric-box-question.component.html\",\r\n styleUrls: [\"./numeric-box-question.component.scss\"],\r\n})\r\nexport class NumericBoxQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n //https://stackoverflow.com/questions/40341648/angular-2-how-to-bind-input-to-model-property-with-getter-and-setter-methods\r\n // Getter method\r\n public get QuestionAnswerFormatted() {\r\n return Number(this.question.answer);\r\n }\r\n\r\n // Setter method\r\n public set QuestionAnswerFormatted(val: number) {\r\n this.question.answer = String(val);\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

{{ question.answer }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"percentage-box-v1-question\",\r\n templateUrl: \"./percentage-box-v1-question.component.html\",\r\n styleUrls: [\"./percentage-box-v1-question.component.scss\"],\r\n})\r\nexport class PercentageBoxV1QuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n @Input() public noAnsCustomDefaultText?: string;\r\n @Input() public numberOfDecimalPlace?: number = 2;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n //https://stackoverflow.com/questions/40341648/angular-2-how-to-bind-input-to-model-property-with-getter-and-setter-methods\r\n // Getter method\r\n public get QuestionAnswerFormatted() {\r\n //HE-160: for future\r\n if (this.question.answer === undefined) {\r\n return 0;\r\n }\r\n return Number(this.question.answer);\r\n }\r\n\r\n // Setter method\r\n public set QuestionAnswerFormatted(val: number) {\r\n // strip out all the currency information\r\n //const revenueVal = val.replace(/[^\\d]/g, '');\r\n //this.AnnualRevenue = parseInt(revenueVal);\r\n this.question.answer = String(val);\r\n }\r\n\r\n public noAnsDefText() {\r\n if (this.noAnsCustomDefaultText) {\r\n return this.noAnsCustomDefaultText;\r\n }\r\n\r\n return this.noAnswerDefaultText;\r\n }\r\n\r\n public noOfDecimalPlace(): number {\r\n if (this.numberOfDecimalPlace != undefined) {\r\n return this.numberOfDecimalPlace!;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n padDigits(digits: number) {\r\n return Array(Math.max(digits + 1, 0)).join(\"0\");\r\n }\r\n\r\n decimalPlaceFormat() {\r\n let dp = this.noOfDecimalPlace();\r\n return \"##.\" + this.padDigits(dp) + \" \\\\%\";\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n {{ question.answer | percentage : noOfDecimalPlace() }}\r\n

\r\n {{\r\n noAnsDefText()\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"radio-button-v1-question\",\r\n templateUrl: \"./radio-button-v1-question.component.html\",\r\n styleUrls: [\"./radio-button-v1-question.component.scss\"],\r\n})\r\nexport class RadioButtonV1QuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n answerDisplayText(question: QuestionEntity): string {\r\n let answerDisplayText: string = \"\";\r\n /*this.answer = \"1\";*/\r\n question.optionsValue.forEach((option) => {\r\n if (option.value === question.answer) {\r\n answerDisplayText = option.key;\r\n }\r\n });\r\n return answerDisplayText;\r\n }\r\n\r\n public onChange = (data: any): void => {\r\n return (this.question!.answer = data);\r\n };\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ answerDisplayText(question) }}

\r\n \r\n {{ noAnswerDefaultText }}\r\n \r\n
\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"text-area-question\",\r\n templateUrl: \"./text-area-question.component.html\",\r\n styleUrls: [\"./text-area-question.component.scss\"],\r\n})\r\nexport class TextAreaQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"text-box-question\",\r\n templateUrl: \"./text-box-question.component.html\",\r\n styleUrls: [\"./text-box-question.component.scss\"],\r\n})\r\nexport class TextBoxQuestionComponent implements OnInit {\r\n @Input() public question!: QuestionEntity;\r\n @Input() public placeholder?: string;\r\n\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

{{ question.answer }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\nimport { OnInit, Input, Component, Output } from \"@angular/core\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { stream } from \"exceljs\";\r\n\r\n@Component({\r\n selector: \"text-box-v2-question\",\r\n templateUrl: \"./text-box-v2-question.component.html\",\r\n styleUrls: [\"./text-box-v2-question.component.scss\"],\r\n})\r\nexport class TextBoxV2QuestionComponent implements OnInit {\r\n @Input() public question!: QuestionEntity;\r\n @Input() public placeholder?: string;\r\n @Input() public title?: string;\r\n @Input() public front?: boolean;\r\n @Input() public end?: boolean;\r\n @Input() public onClose?: (args: any) => void;\r\n\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n // public onChildValueChange = (data: any, question: string): void => {\r\n // if (\r\n // question == \"qs_risk_insuredAddress_lotunit\" &&\r\n // data.toUpperCase().trim().startsWith(\"FLAT\") &&\r\n // !common.isStringNullOrEmpty(data)\r\n // )\r\n // this.question.answer = this.question.answer.slice(4).trim();\r\n\r\n // if (\r\n // question == \"qs_risk_insuredAddress_building\" &&\r\n // data.toUpperCase().trim().startsWith(\"BLOCK\") &&\r\n // !common.isStringNullOrEmpty(data)\r\n // )\r\n // this.question.answer = this.question.answer.slice(5).trim();\r\n\r\n // if (\r\n // question == \"qs_risk_insuredAddress1\" &&\r\n // data.toUpperCase().trim().endsWith(\"/F\") &&\r\n // !common.isStringNullOrEmpty(data)\r\n // )\r\n // this.question.answer = this.question.answer.slice(0, -2).trim();\r\n // };\r\n\r\n //https://stackoverflow.com/questions/40341648/angular-2-how-to-bind-input-to-model-property-with-getter-and-setter-methods\r\n // Getter method\r\n public get QuestionAnswerFormatted(): string {\r\n if (this.question.key == \"qs_risk_insuredAddress_lotunit\") {\r\n if (this.question.answer === undefined || this.question.answer === \"Flat \") {\r\n this.question.answer = \"\";\r\n }\r\n //DO NOT replace directly, answer could be null, hence init above first\r\n return this.question.answer.replace(/^Flat /, \"\").replace(/^Flat/, \"\");\r\n }\r\n\r\n if (this.question.key == \"qs_risk_insuredAddress_building\") {\r\n if (this.question.answer === undefined || this.question.answer === \"Block \") {\r\n this.question.answer = \"\";\r\n }\r\n //DO NOT replace directly, answer could be null, hence init above first\r\n return this.question.answer.replace(/^Block /, \"\").replace(/^Block/, \"\");\r\n }\r\n\r\n if (this.question.key == \"qs_risk_insuredAddress1\") {\r\n if (this.question.answer === undefined || this.question.answer === \" /F\") {\r\n this.question.answer = \"\";\r\n }\r\n //DO NOT replace directly, answer could be null, hence init above first\r\n return this.question.answer.replace(/ \\/F$/, \"\").replace(/\\/F$/, \"\");\r\n }\r\n\r\n return this.question.answer;\r\n }\r\n\r\n // Setter method\r\n public set QuestionAnswerFormatted(val: string) {\r\n // strip out all the currency information\r\n if (this.question.key == \"qs_risk_insuredAddress_lotunit\") {\r\n this.question.answer = \"Flat \" + val.trim();\r\n return;\r\n }\r\n\r\n if (this.question.key == \"qs_risk_insuredAddress_building\") {\r\n this.question.answer = \"Block \" + val.trim();\r\n return;\r\n }\r\n\r\n if (this.question.key == \"qs_risk_insuredAddress1\") {\r\n this.question.answer = val.trim() + \" /F\";\r\n return;\r\n }\r\n\r\n this.question.answer = val.trim();\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n {{ question.answer }}\r\n

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { ProposalConst } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal-constant\";\r\n\r\n@Component({\r\n selector: \"yes-no-radio-question\",\r\n templateUrl: \"./yes-no-radio-question.component.html\",\r\n styleUrls: [\"./yes-no-radio-question.component.scss\"],\r\n})\r\nexport class YesNoRadioQuestionComponent implements OnInit {\r\n noAnswerDefaultText = ProposalConst.noAnswerDefaultText;\r\n @Input() public question!: QuestionEntity;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n answerDisplayText = (question: QuestionEntity) => {\r\n let answerDisplayText: string = \"\";\r\n /*this.answer = \"1\";*/\r\n question.options.forEach((option) => {\r\n if (option.value === question.answer) {\r\n answerDisplayText = option.key;\r\n }\r\n });\r\n return answerDisplayText;\r\n };\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

{{ answerDisplayText(question) }}

\r\n {{\r\n noAnswerDefaultText\r\n }}\r\n
\r\n
\r\n","import { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify http event trigger */\r\nexport class ButtonNotifier {\r\n /** Notify http request event */\r\n start_notifier$: Subject> = new Subject>();\r\n\r\n /** Notify http response event */\r\n end_notifier$: Subject> = new Subject>();\r\n}\r\n\r\nexport const buttonNotifier = new ButtonNotifier();\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { ComboBoxComponent } from \"@progress/kendo-angular-dropdowns\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ClausesandDeductibles } from \"src/app/models/new-product/base/Clauses-Deductibles.model\";\r\n\r\n@Component({\r\n selector: \"app-clauses-deductibles\",\r\n templateUrl: \"./clauses-deductibles.component.html\",\r\n styleUrls: [\"./clauses-deductibles.component.scss\"],\r\n})\r\nexport class ClausesDeductiblesComponent implements OnInit {\r\n @ViewChild(\"comboBox\") comboBox!: ComboBoxComponent;\r\n @Input() resultList: ClausesandDeductibles[] = [];\r\n @Input() nonDefaultList: ClausesandDeductibles[] = [];\r\n @Input() masterList: ClausesandDeductibles[] = [];\r\n @Input() isreadonly?: boolean;\r\n @Input() isAnswered?: boolean;\r\n\r\n @Output() resultListDataChange: EventEmitter<{\r\n item: ClausesandDeductibles;\r\n type: number;\r\n action: string;\r\n }> = new EventEmitter<{\r\n item: ClausesandDeductibles;\r\n type: number;\r\n action: string;\r\n }>();\r\n\r\n selectNonDefault: string = \"\";\r\n selectedDeductible: ClausesandDeductibles = {};\r\n newValue: ClausesandDeductibles = {};\r\n showAddMore: boolean = true;\r\n addMoreExpanded: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onDropdownchange(event: any): void {\r\n if (this.selectedDeductible.Title != \"\") {\r\n this.nonDefaultList = this.nonDefaultList.filter(\r\n (item) =>\r\n item.ClausesDeductiblesID !==\r\n this.selectedDeductible.ClausesDeductiblesID\r\n );\r\n\r\n const DeductiblesType = this.selectedDeductible.ClauseDeductibleType ?? 0;\r\n\r\n this.resultListDataChange.emit({\r\n item: this.selectedDeductible,\r\n type: DeductiblesType,\r\n action: \"add\",\r\n });\r\n\r\n this.comboBox.clearValue();\r\n }\r\n }\r\n\r\n protected removeItem(selectedValue: ClausesandDeductibles): void {\r\n this.resultList = this.resultList.filter(\r\n (item) => item.ClausesDeductiblesID !== selectedValue.ClausesDeductiblesID\r\n );\r\n\r\n const Value =\r\n this.masterList.find(\r\n (item) =>\r\n item.ClausesDeductiblesID == selectedValue.ClausesDeductiblesID\r\n ) ?? {};\r\n\r\n if (common.isDefined(Value.ClausesDeductiblesID)) {\r\n this.nonDefaultList.push(selectedValue);\r\n\r\n const DeductiblesType = selectedValue.ClauseDeductibleType ?? 0;\r\n this.resultListDataChange.emit({\r\n item: selectedValue,\r\n type: DeductiblesType,\r\n action: \"remove\",\r\n });\r\n } else {\r\n const DeductiblesType = selectedValue.ClauseDeductibleType ?? 0;\r\n this.resultListDataChange.emit({\r\n item: selectedValue,\r\n type: DeductiblesType,\r\n action: \"remove\",\r\n });\r\n }\r\n }\r\n\r\n public openDropdown() {\r\n this.comboBox.toggle();\r\n }\r\n\r\n toggleAddMore(): void {\r\n this.addMoreExpanded = !this.addMoreExpanded;\r\n this.showAddMore = !this.addMoreExpanded;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { MfHkEndorsementListSearchCriteria } from \"src/app/components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/mf-hk-end-list-search-criteria\";\r\n\r\n@Component({\r\n selector: \"app-configurable-filter\",\r\n templateUrl: \"./configurable-filter.component.html\",\r\n styleUrls: [\"./configurable-filter.component.scss\"],\r\n})\r\nexport class ConfigurableFilterComponent implements OnInit {\r\n @Input()\r\n model = new MfHkEndorsementListSearchCriteria();\r\n @Input()\r\n coverageTypeOptions!: Array<{ text: string; value: string }>;\r\n @Input()\r\n searchPlaceholder: string = \"Search Clauses and Warranties\";\r\n\r\n @Output() searchClickEvent = new EventEmitter();\r\n @Output() newClickEvent = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n addNew() {\r\n this.newClickEvent.emit(\"test\");\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Search\r\n \r\n \r\n \r\n New\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ConfigurableFormBaseComponent } from \"../configurable-form-base/configurable-form-base.component\";\r\n\r\n@Component({\r\n selector: \"app-configurable-form-add\",\r\n templateUrl: \"./configurable-form-add.component.html\",\r\n styleUrls: [\"./configurable-form-add.component.scss\"],\r\n})\r\nexport class ConfigurableFormAddComponent\r\n extends ConfigurableFormBaseComponent\r\n implements OnInit {}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Return\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n \r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n 0\"\r\n id=\"main\"\r\n title=\"Error\"\r\n [expanded]=\"true\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ConfigurableMode } from \"src/app/framework/enum.shared\";\r\n\r\nexport class MfHkConfigAddCriteria {\r\n constructor() {\r\n this.coverageTypes = new Array();\r\n this.code = \"\";\r\n this.title = \"\";\r\n this.editorValue = \"\";\r\n }\r\n\r\n coverageTypes: Array;\r\n code?: string;\r\n title?: string;\r\n default: boolean = false;\r\n editorValue: string;\r\n typeId: ConfigurableMode = ConfigurableMode.Clauses;\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { ClausesDeductiblesService } from \"src/app/services/clauses-deductibles.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { MdInformationMessageComponent } from \"../md-information-message/md-information-message.component\";\r\nimport { MfHkConfigAddCriteria } from \"../configurable-form-add/mf-hk-config-add-criteria\";\r\nimport { MfHkEndorsementListSearchCriteria } from \"src/app/components/new-product/sme/mortgage-fire/hong-kong/components/endorsement/endorsement-list/mf-hk-end-list-search-criteria\";\r\n\r\n@Component({\r\n selector: \"app-configurable-form-base\",\r\n templateUrl: \"./configurable-form-base.component.html\",\r\n styleUrls: [\"./configurable-form-base.component.scss\"],\r\n})\r\nexport class ConfigurableFormBaseComponent implements OnInit {\r\n errorLogs!: { Title: string; Logs: string[] };\r\n\r\n model = new MfHkConfigAddCriteria();\r\n\r\n @Input()\r\n public addSearchCriteria = new MfHkEndorsementListSearchCriteria();\r\n\r\n @Input()\r\n public coverageTypeOptions: Array<{ text: string; value: string }> = [];\r\n\r\n @Output() returnListing: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public clausesDeductiblesService: ClausesDeductiblesService,\r\n public cdkDialogService: CdkDialogService\r\n ) {\r\n // Init Error Log\r\n if (Global.isUndefined(this.errorLogs)) {\r\n this.errorLogs = { Title: \"\", Logs: new Array() };\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n //this is the time @Input() addSearchCriteria get initialized; not in constructor()\r\n this.model.typeId = this.addSearchCriteria.typeId;\r\n\r\n this.setDefaultCoverageType();\r\n }\r\n\r\n setDefaultCoverageType() {\r\n //if perils\r\n if (this.coverageTypeOptions.length === 1) {\r\n this.model.coverageTypes.push(this.coverageTypeOptions[0].value);\r\n }\r\n }\r\n\r\n returnToListing() {\r\n this.returnListing.emit(\"returnToListing\");\r\n }\r\n\r\n reset() {\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.model = new MfHkConfigAddCriteria();\r\n this.model.typeId = this.addSearchCriteria.typeId;\r\n }\r\n\r\n protected modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"coverageTypes\", \"eq\", this.model.coverageTypes.toString()],\r\n [\"code\", \"eq\", this.model.code!],\r\n [\"title\", \"eq\", this.model.title!],\r\n [\"description\", \"eq\", this.model.editorValue],\r\n [\"default\", \"eq\", this.boolToString(this.model.default)],\r\n [\"typeId\", \"eq\", this.model.typeId],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n private stringBoolToString(boolToCompare: any) {\r\n if (\r\n boolToCompare == true ||\r\n String(boolToCompare).toLowerCase() === \"true\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected boolToString(boolToCompare: any) {\r\n return this.stringBoolToString(boolToCompare).toApiValue();\r\n }\r\n\r\n protected setFormData(): FormData {\r\n //todo: future enhancement\r\n //var other_data = $('form').serialize(); //page_id=&category_id=15&method=upload&required%5Bcategory_id%5D=Category+ID\r\n const formData: FormData = new FormData();\r\n let array = this.modelToArray();\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n pushLog(log: string) {\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.errorLogs.Title = \"Error\";\r\n\r\n this.errorLogs.Logs.push(log);\r\n }\r\n\r\n handleReturnResult(result: any) {\r\n const returnCode = result.body.d?.results as string;\r\n if (returnCode === \"1\") {\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: {\r\n message: \"Data created. Redirect to listing page\",\r\n },\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {\r\n this.returnListing.emit(\"returnToListing\");\r\n });\r\n } else {\r\n const log: string =\r\n \"The code provided is already in use. Please change the code.\";\r\n this.pushLog(log);\r\n }\r\n }\r\n\r\n save() {\r\n if (\r\n this.model.coverageTypes.length === 0 ||\r\n this.model.code === undefined ||\r\n this.model.code.trim() === \"\" ||\r\n this.model.title === undefined ||\r\n this.model.title.trim() === \"\"\r\n ) {\r\n const log: string = \"Coverage Type, Title, and Code are mandatory.\";\r\n this.pushLog(log);\r\n } else {\r\n const formData: FormData = this.setFormData();\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService\r\n .createHaseEndorsementClause(querystring)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.handleReturnResult(result);\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n\r\n this.cdkDialogService.open(MdInformationMessageComponent, {\r\n data: {\r\n message: \"An error has occurred. Please contact admin\",\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","

configurable-form-base works!

\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { ConfigurableFormBaseComponent } from \"../configurable-form-base/configurable-form-base.component\";\r\nimport { MfHkConfigEditCriteria } from \"./mf-hk-config-edit-criteria\";\r\nimport { MdInformationMessageComponent } from \"../md-information-message/md-information-message.component\";\r\n\r\n@Component({\r\n selector: \"app-configurable-form-edit\",\r\n templateUrl: \"./configurable-form-edit.component.html\",\r\n styleUrls: [\"./configurable-form-edit.component.scss\"],\r\n})\r\nexport class ConfigurableFormEditComponent extends ConfigurableFormBaseComponent {\r\n @Input()\r\n public editModel: MfHkConfigEditCriteria = new MfHkConfigEditCriteria();\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.copyObjectWithoutReferences();\r\n }\r\n\r\n override reset() {\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.copyObjectWithoutReferences();\r\n }\r\n\r\n copyObjectWithoutReferences() {\r\n //this.model = this.editModel;\r\n this.model = JSON.parse(JSON.stringify(this.editModel)); //copy object without references, so that can be reset later\r\n }\r\n\r\n override modelToArray(): (\r\n | (string | Date | undefined)[]\r\n | (string | string[])[]\r\n | (string | number[])[]\r\n | (string | number)[]\r\n )[] {\r\n let array = [\r\n [\"coverageTypes\", \"eq\", this.model.coverageTypes.toString()],\r\n [\"code\", \"eq\", this.model.code!],\r\n [\"title\", \"eq\", this.model.title!],\r\n [\"description\", \"eq\", this.model.editorValue],\r\n [\"default\", \"eq\", this.boolToString(this.model.default)],\r\n [\"typeId\", \"eq\", this.model.typeId],\r\n [\"guid\", \"eq\", this.editModel.guid!.toString()],\r\n ];\r\n\r\n return array;\r\n }\r\n\r\n override save() {\r\n if (\r\n this.model.coverageTypes.length === 0 ||\r\n this.model.code === undefined ||\r\n this.model.code.trim() === \"\" ||\r\n this.model.title === undefined ||\r\n this.model.title.trim() === \"\"\r\n ) {\r\n const log: string = \"Coverage Type, Title, and Code are mandatory.\";\r\n this.pushLog(log);\r\n } else {\r\n const formData: FormData = this.setFormData();\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService\r\n .updateHaseEndorsementClause(querystring)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n this.handleReturnResult(result);\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n\r\n this.cdkDialogService.open(MdInformationMessageComponent, {\r\n data: {\r\n message: \"An error has occurred. Please contact admin\",\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n delete() {\r\n if (\r\n this.model.coverageTypes.length === 0 ||\r\n this.model.title === undefined ||\r\n this.model.title.trim() === \"\"\r\n ) {\r\n this.errorLogs.Logs = new Array(); // Clear error logs\r\n this.errorLogs.Title = \"Error\";\r\n const log: string = \"Master Policy number or title is needed.\";\r\n this.errorLogs.Logs.push(log);\r\n } else {\r\n const formData: FormData = this.setFormData();\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n this.clausesDeductiblesService\r\n .deleteHaseEndorsementClause(querystring)\r\n .subscribe(\r\n (result: any) => {\r\n if (\r\n result != undefined &&\r\n result.status != undefined &&\r\n result.status != null &&\r\n result.status === 200 &&\r\n result.statusText === \"OK\"\r\n ) {\r\n const v2DialogRef = this.cdkDialogService.open(\r\n MdInformationMessageComponent,\r\n {\r\n data: {\r\n message: \"Data deleted. Redirect to listing page\",\r\n },\r\n }\r\n );\r\n\r\n v2DialogRef.afterClosed().subscribe((result: any) => {\r\n this.returnListing.emit(\"returnToListing\");\r\n });\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n\r\n this.cdkDialogService.open(MdInformationMessageComponent, {\r\n data: {\r\n message: \"An error has occurred. Please contact admin\",\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Return\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n Reset\r\n \r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n 0\"\r\n id=\"main\"\r\n title=\"Error\"\r\n [expanded]=\"true\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { MfHkConfigAddCriteria } from \"../configurable-form-add/mf-hk-config-add-criteria\";\r\n\r\nexport class MfHkConfigEditCriteria extends MfHkConfigAddCriteria {\r\n constructor() {\r\n super();\r\n }\r\n\r\n guid?: GUID;\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { dlgModelArgs } from \"../md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\n\r\n@Component({\r\n selector: \"app-custom-error\",\r\n templateUrl: \"./custom-error.component.html\",\r\n styleUrls: [\"./custom-error.component.scss\"],\r\n})\r\nexport class CustomErrorComponent implements OnInit {\r\n clientSideErrorTitle = \"Client side error thrown\";\r\n serverSideErrorTitle = \"Server side error thrown\";\r\n header = \"\";\r\n\r\n @Input() public opened = false;\r\n @Input() public error: any;\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.opened = true;\r\n this.header =\r\n this.error && this.error.error\r\n ? this.error?.error?.ExceptionMessage\r\n : this.error;\r\n }\r\n\r\n public close(status: any) {\r\n this.opened = false;\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: \"\",\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{ header }}\r\n

\r\n
\r\n
\r\n
\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n/**\r\n * A reference to the dialog itself.\r\n * Can be injected into the component added to the overlay and then used to close itself.\r\n */\r\nexport class DialogRef {\r\n private afterClosedSubject = new Subject();\r\n\r\n constructor(private overlayRef: OverlayRef) {}\r\n\r\n /**\r\n * Closes the overlay. You can optionally provide a result.\r\n */\r\n public close(result?: any) {\r\n this.overlayRef.dispose();\r\n this.afterClosedSubject.next(result);\r\n this.afterClosedSubject.complete();\r\n }\r\n\r\n /**\r\n * An Observable that notifies when the overlay has closed\r\n */\r\n public afterClosed(): Observable {\r\n return this.afterClosedSubject.asObservable();\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const DIALOG_DATA = new InjectionToken('DIALOG_DATA');\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-v1\",\r\n templateUrl: \"./md-confirmation-message-v1.component.html\",\r\n styleUrls: [\"./md-confirmation-message-v1.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageV1Component implements OnInit {\r\n @Input() public opened = false;\r\n @Input() public data: any;\r\n @Input() public message: any;\r\n\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n public titlebarTitle = \"Confirmation\";\r\n public titlebarCssClass = \"modal-title-red\";\r\n public dlgWidth: number = 600;\r\n public dlgMaxHeight: string = '80%';\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v1DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.opened = this.inputData.opened;\r\n this.dlgWidth = this.inputData.dialogWidth;\r\n this.data = this.inputData.data;\r\n this.message = this.inputData.message;\r\n }\r\n }\r\n\r\n public close(status: any) {\r\n this.opened = false;\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n public open() {\r\n this.opened = true;\r\n }\r\n}\r\n\r\nexport interface v1DlgInputArgs {\r\n opened: boolean;\r\n dialogWidth: number;\r\n data: any;\r\n message: any;\r\n}\r\n\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n
\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-v2\",\r\n templateUrl: \"./md-confirmation-message-v2.component.html\",\r\n styleUrls: [\"./md-confirmation-message-v2.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageV2Component implements OnInit {\r\n @Input() public opened = false;\r\n @Input() public data: any;\r\n @Input() public message: any;\r\n\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n public titlebarTitle = \"Confirmation\";\r\n public titlebarCssClass = \"modal-title-red\";\r\n public dlgWidth: number = 600;\r\n\r\n public okText!: boolean;\r\n public isDisabled = false;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v2DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.opened = this.inputData.opened;\r\n this.dlgWidth = this.inputData.dialogWidth;\r\n this.data = this.inputData.data;\r\n this.message = this.inputData.message;\r\n }\r\n\r\n this.okText = this.data?.okText != undefined ? this.data.okText : \"OK\";\r\n }\r\n\r\n public close(status: any) {\r\n this.opened = false;\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n public open() {\r\n this.opened = true;\r\n }\r\n}\r\n\r\nexport interface v2DlgInputArgs {\r\n opened: boolean;\r\n dialogWidth: number;\r\n data: any;\r\n message: any;\r\n}\r\n\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ okText }}\r\n \r\n \r\n
\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport { dlgModelArgs } from \"../md-confirmation-message-v2/md-confirmation-message-v2.component\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-v4\",\r\n templateUrl: \"./md-confirmation-message-v4.component.html\",\r\n styleUrls: [\"./md-confirmation-message-v4.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageV4Component implements OnInit {\r\n data: any;\r\n model = {};\r\n options: KeyValue[] = [\r\n //DBSEP-7006: will added back later\r\n // {\r\n // key: \"Email\",\r\n // value: \"2\",\r\n // },\r\n // {\r\n // key: \"SMS\",\r\n // value: \"5\",\r\n // },\r\n {\r\n key: \"Mail\",\r\n value: \"1\",\r\n },\r\n {\r\n key: \"No Action Required\",\r\n value: \"4\",\r\n },\r\n ];\r\n selectedPrintType: any;\r\n\r\n isValid = true;\r\n isIBG = false;\r\n isInvalidEmailAddress = false;\r\n response = \"\";\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v4DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.data = this.inputData;\r\n\r\n this.data.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.data.preferredDeliveryMethod;\r\n })[0];\r\n\r\n if (\r\n this.data.selectedPrintType != null &&\r\n this.data.selectedPrintType.value === \"2\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.emailId;\r\n } else if (\r\n this.data.selectedPrintType != null &&\r\n this.data.selectedPrintType.value === \"5\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.mobileNo;\r\n } else if (\r\n this.data.selectedPrintType != null &&\r\n this.data.selectedPrintType.value === \"1\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.contactInfo;\r\n }\r\n if (this.data.selectedPrintType == null) {\r\n this.data.selectedPrintType = this.options[1];\r\n }\r\n\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.selectedPrintType = this.data.selectedPrintType.value;\r\n\r\n if (\r\n this.data.productId == \"06CB09D3-6FE0-4695-92A8-A61DFB627C61\" ||\r\n this.data.productId == \"8533FA05-F190-4A29-9613-3DB7F693DD32\"\r\n ) {\r\n this.isIBG = true;\r\n }\r\n\r\n this.data.isPasswordProtected = true;\r\n\r\n setTimeout(function () {\r\n //angular.element('#selectReprintConfirmationBoard').kendoDropDownList();\r\n }, 100);\r\n }\r\n }\r\n\r\n validateEmail(email: string) {\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n var valid = false;\r\n if (email !== \"\" && reg.test(email)) {\r\n this.isInvalidEmailAddress = false;\r\n this.response = \"\";\r\n valid = true;\r\n this.data.printCorrespondence = email;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n this.response = \"Invalid Email Address!\";\r\n valid = false;\r\n //todo\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n optionChange(event: any) {\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.data.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.selectedPrintType;\r\n })[0];\r\n\r\n this.response = \"\";\r\n if (this.data.selectedPrintType.value == 2) {\r\n this.validateEmail(this.data.emailId);\r\n }\r\n if (this.data.selectedPrintType.value == 5) {\r\n this.validateMobile(this.data.mobileNo);\r\n }\r\n }\r\n\r\n validateAddress(address: string | null) {\r\n var valid = false;\r\n if (address !== \"\" && address !== null) {\r\n this.isInvalidEmailAddress = false;\r\n this.data.printCorrespondence = address;\r\n valid = true;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n valid = false;\r\n //todo\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateMobile(mobile: string) {\r\n var reg = /^\\+?[0-9]+$/;\r\n var valid = false;\r\n if (\r\n mobile.length == 8 &&\r\n mobile !== \"\" &&\r\n reg.test(mobile) &&\r\n (mobile.toString()[0] == \"9\" || mobile.toString()[0] == \"8\")\r\n ) {\r\n this.isInvalidEmailAddress = false;\r\n valid = true;\r\n this.response = \"\";\r\n this.data.printCorrespondence = mobile;\r\n } else {\r\n this.isInvalidEmailAddress = true;\r\n this.response = \"Invalid Mobile Number!\";\r\n valid = false;\r\n //todo\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n confirmation(flag: any) {\r\n if (flag) {\r\n if (\r\n this.data.selectedPrintType.value == 2 &&\r\n !this.validateEmail(this.data.emailId)\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n this.data.selectedPrintType.value == 5 &&\r\n !this.validateMobile(this.data.mobileNo)\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n this.data.selectedPrintType.value == 1 &&\r\n !this.validateAddress(this.data.contactInfo)\r\n ) {\r\n this.response = \"Invalid Mail Adress!\";\r\n return;\r\n }\r\n }\r\n\r\n this.data.confirmation = flag;\r\n this.close(\"yes\");\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\n\r\nexport interface v4DlgInputArgs {\r\n preferredDeliveryMethod: any;\r\n emailId: any;\r\n mobileNo: any;\r\n contactInfo: any;\r\n confimationMsg: any;\r\n}\r\n","\r\n
\r\n
\r\n
\r\n

\r\n \r\n Print Options {{\r\n data.confimationMsg\r\n }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-v5\",\r\n templateUrl: \"./md-confirmation-message-v5.component.html\",\r\n styleUrls: [\"./md-confirmation-message-v5.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageV5Component implements OnInit {\r\n @Input() public opened = false;\r\n @Input() public data: any;\r\n @Input() public message: any;\r\n\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n public titlebarTitle = \"Confirmation\";\r\n public titlebarCssClass = \"modal-title-red\";\r\n public dlgWidth: number = 600;\r\n public dlgMaxHeight: string = \"80%\";\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v5DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.opened = this.inputData.opened;\r\n this.data = this.inputData.data;\r\n this.message = this.inputData.message;\r\n }\r\n }\r\n public close(status: any) {\r\n this.opened = false;\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\nexport interface v5DlgInputArgs {\r\n opened: boolean;\r\n dialogWidth: number;\r\n data: any;\r\n message: any;\r\n}\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Update\r\n \r\n \r\n
\r\n\r\n","export class ProposalEntity {\r\n DeclineReason!: string;\r\n command!: number;\r\n fileIdsJsonString!: string;\r\n isManual!: boolean;\r\n isPasswordProtected!: boolean;\r\n isReprint!: boolean;\r\n isSummary!: boolean;\r\n messageId!: number;\r\n printCorrespondence!: string;\r\n printType!: number; //better use number for keyValue pair for kendo-dropdownlist\r\n proposalId!: string;\r\n\r\n contactInfo!: string; //extra\r\n emailId!: string; //extra\r\n policyNo!: string; //extra\r\n insuredName!: string; //extra\r\n mobileNo!: string; //extra\r\n quoteNo!: string; //extra\r\n printEmailValidation!: string; //extra\r\n isInvalidEmailAddress: boolean = false; //extra\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { TodoPolicyListingEntity } from \"src/app/components/new-product/home/todo-list/TodoPolicyListingEntity\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport { ProposalEntity } from \"./ProposalEntity\";\r\nimport * as Enum from \"./../../../../framework/enum.shared\";\r\n\r\nexport type WindowSize = \"sm\" | \"md\" | \"lg\"; //\"350\" | \"650\" | \"1250\"\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-v6\",\r\n templateUrl: \"./md-confirmation-message-v6.component.html\",\r\n styleUrls: [\"./md-confirmation-message-v6.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageV6Component implements OnInit {\r\n model: ProposalEntity[] = [];\r\n\r\n @Input() public opened = false;\r\n public command: any;\r\n public gridData: TodoPolicyListingEntity[] = [];\r\n\r\n public postdataList: BulkActionModel[] = [];\r\n public printTypeOptions!: Array<{ text: string; value: number }>;\r\n public isValid = true;\r\n public warning_message = false; //existing bug; should be based on row\r\n public confirmLabel = \"\";\r\n\r\n public dlgWidth: WindowSize = \"md\";\r\n public titlebarTitle = \"\";\r\n public titlebarCssClass = \"\";\r\n\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n selectedPrintType: any;\r\n showData!: boolean;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v6DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const printTypeOptions = [\r\n { text: \"Email\", value: 2 },\r\n { text: \"SMS\", value: 5 },\r\n { text: \"Mail\", value: 1 },\r\n { text: \"No Action Required\", value: 4 },\r\n ];\r\n this.printTypeOptions = printTypeOptions;\r\n this.dlgWidth = this.inputData.dialogWidth;\r\n this.command = this.inputData.command;\r\n this.gridData = this.inputData.gridData;\r\n\r\n if (this.command === 6 || this.command === 9) {\r\n this.titlebarTitle = \"Confirmation\";\r\n this.titlebarCssClass = \"modal-title-red\";\r\n } else if (this.command === 7 || this.command === 3) {\r\n this.titlebarTitle = \"Print Option Confirmation\";\r\n this.titlebarCssClass = \"modal-title-orange\";\r\n }\r\n\r\n this.createFormModel();\r\n }\r\n\r\n public getWindowSize() {\r\n switch (this.dlgWidth) {\r\n case \"sm\":\r\n return 350;\r\n case \"md\":\r\n return 650;\r\n default:\r\n return 1250;\r\n }\r\n }\r\n\r\n createFormModel() {\r\n for (var i = 0; i < this.gridData?.length; i++) {\r\n var proposalEntity = new ProposalEntity();\r\n proposalEntity.contactInfo = this.gridData[i].contactInfo;\r\n proposalEntity.emailId = this.gridData[i].emailId;\r\n proposalEntity.policyNo = this.gridData[i].policyNo;\r\n proposalEntity.insuredName = this.gridData[i].insuredName;\r\n proposalEntity.mobileNo = this.gridData[i].mobileNo;\r\n proposalEntity.quoteNo = this.gridData[i].quoteNo;\r\n proposalEntity.proposalId = this.gridData[i].proposalId;\r\n proposalEntity.command = this.command;\r\n\r\n proposalEntity.printType = this.printTypeOptions.filter((item) => {\r\n return item.value == Number(this.gridData[i].preferredDeliveryMethod);\r\n })[0].value;\r\n\r\n if (proposalEntity.printType != null && proposalEntity.printType === 2) {\r\n proposalEntity.printCorrespondence = this.gridData[i].emailId;\r\n } else if (\r\n proposalEntity.printType != null &&\r\n proposalEntity.printType === 5\r\n ) {\r\n proposalEntity.printCorrespondence = this.gridData[i].mobileNo;\r\n } else if (\r\n proposalEntity.printType != null &&\r\n proposalEntity.printType === 1\r\n ) {\r\n proposalEntity.printCorrespondence = this.gridData[i].contactInfo;\r\n }\r\n if (proposalEntity.printType == null) {\r\n proposalEntity.printType = this.printTypeOptions[1].value;\r\n }\r\n\r\n proposalEntity.isPasswordProtected = false;\r\n proposalEntity.DeclineReason = \"\";\r\n proposalEntity.printEmailValidation = \"\";\r\n\r\n this.model.push(proposalEntity);\r\n }\r\n }\r\n\r\n validateDeclineReason(dataItem: ProposalEntity) {\r\n if (dataItem.command == 9) {\r\n if (dataItem.DeclineReason == \"\" || dataItem.DeclineReason == null) {\r\n this.warning_message = true;\r\n this.confirmLabel = \"Please enter the decline reason.\";\r\n\r\n return false;\r\n } else {\r\n this.warning_message = false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n validateEmail(dataItem: ProposalEntity) {\r\n var email = dataItem.emailId;\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n var valid = false;\r\n if (email !== \"\" && reg.test(email)) {\r\n dataItem.isInvalidEmailAddress = false;\r\n valid = true;\r\n dataItem.printCorrespondence = email;\r\n } else {\r\n dataItem.isInvalidEmailAddress = true;\r\n dataItem.printEmailValidation = \"Invalid Email Address!\";\r\n valid = false;\r\n //todo\r\n //angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n //setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n validateMobile(dataItem: ProposalEntity) {\r\n var mobile = dataItem.mobileNo;\r\n var reg = /^\\+?[0-9]+$/;\r\n var valid = false;\r\n if (\r\n mobile.length == 8 &&\r\n mobile !== \"\" &&\r\n reg.test(mobile) &&\r\n (mobile.toString()[0] == \"9\" || mobile.toString()[0] == \"8\")\r\n ) {\r\n dataItem.isInvalidEmailAddress = false;\r\n valid = true;\r\n dataItem.printCorrespondence = mobile;\r\n } else {\r\n dataItem.isInvalidEmailAddress = true;\r\n valid = false;\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n validateAddress(dataItem: ProposalEntity) {\r\n var address = dataItem.contactInfo;\r\n var valid = false;\r\n if (address !== \"\" && address !== null) {\r\n dataItem.isInvalidEmailAddress = false;\r\n dataItem.printCorrespondence = address;\r\n valid = true;\r\n } else {\r\n dataItem.isInvalidEmailAddress = true;\r\n valid = false;\r\n // angular.element('.alertLogin.invalidEmail').fadeIn(500);\r\n // setTimeout(\"$('.alertLogin.invalidEmail').fadeOut(1500);\", 3000);\r\n }\r\n return valid;\r\n }\r\n\r\n confirmation(flag: any): boolean {\r\n if (flag) {\r\n for (var i = 0; i < this.model.length; i++) {\r\n var proposalEntity = new BulkActionModel();\r\n if (\r\n this.model[i].printType == 2 &&\r\n !this.validateEmail(this.model[i])\r\n ) {\r\n this.model[i].printEmailValidation = \"Invalid Email Address!\";\r\n return false;\r\n } else if (\r\n this.model[i].printType == 5 &&\r\n !this.validateMobile(this.model[i])\r\n ) {\r\n this.model[i].printEmailValidation = \"Invalid Mobile Number!\";\r\n return false;\r\n } else if (\r\n this.model[i].printType == 1 &&\r\n !this.validateAddress(this.model[i])\r\n ) {\r\n this.model[i].printEmailValidation = \"Invalid Mail Adress!\";\r\n return false;\r\n } else {\r\n this.model[i].isInvalidEmailAddress = false;\r\n proposalEntity.printCorrespondence = \"\";\r\n }\r\n if (this.model[i].printCorrespondence != \"\") {\r\n proposalEntity.printCorrespondence =\r\n this.model[i].printCorrespondence;\r\n }\r\n\r\n proposalEntity.proposalId = this.model[i].proposalId;\r\n proposalEntity.printType = this.model[i].printType.toString();\r\n proposalEntity.messageId = 0;\r\n proposalEntity.isReprint = false;\r\n proposalEntity.isSummary = false;\r\n proposalEntity.isManual = false;\r\n proposalEntity.fileIdsJsonString = \"\";\r\n proposalEntity.isPasswordProtected = this.model[i].isPasswordProtected;\r\n proposalEntity.fileIdsJsonString = \"\";\r\n proposalEntity.DeclineReason = this.model[i].DeclineReason;\r\n proposalEntity.command = this.model[i].command;\r\n\r\n if (!this.validateDeclineReason(this.model[i])) {\r\n return false;\r\n }\r\n\r\n this.postdataList.push(proposalEntity);\r\n }\r\n } else {\r\n this.warning_message = false;\r\n }\r\n\r\n // $scope.data.BulkActionModel=postdataList;\r\n // $scope.data.confirmation = flag;\r\n // $scope.data.data=$scope.gridData;\r\n if (!this.warning_message) {\r\n // $modalInstance.dismiss($scope.data);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public close(status: any) {\r\n if (status === \"yes\") {\r\n if (this.confirmation(true)) {\r\n this.opened = false; //double-confirmation on 'yes' only dismiss\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.postdataList,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n this.dialogRef?.close(savParamters);\r\n return;\r\n } else {\r\n //let it float/modal\r\n //this.dialogRef?.close();\r\n }\r\n } else {\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: null,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n this.dialogRef?.close(savParamters);\r\n return;\r\n }\r\n }\r\n\r\n public open() {\r\n this.opened = true;\r\n }\r\n}\r\n\r\nexport interface v6DlgInputArgs {\r\n dialogWidth: WindowSize;\r\n command: Enum.ProposalCommandAction;\r\n gridData: TodoPolicyListingEntity[];\r\n}\r\n\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n\r\nexport class BulkActionModel {\r\n proposalId!: string; //GUID;\r\n printCorrespondence!: string;\r\n printType!: string; //number;\r\n isReprint: boolean = false;\r\n isManual: boolean = false;\r\n isSummary: boolean = false;\r\n isPasswordProtected: boolean = false;\r\n messageId!: number;\r\n fileIdsJsonString!: string;\r\n DeclineReason!: string;\r\n command!: number;\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{ idx + 1 }}\r\n
\r\n
\r\n {{ data.quoteNo }}\r\n {{\r\n data.policyNo\r\n }}\r\n
\r\n
\r\n {{ data.insuredName }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ confirmLabel }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n {{ idx + 1 }}\r\n
\r\n
\r\n {{\r\n data.quoteNo\r\n }}\r\n {{\r\n data.policyNo\r\n }}\r\n
\r\n
\r\n {{ data.insuredName }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ idx + 1 }}\r\n
\r\n
\r\n {{ data.quoteNo }}\r\n {{ data.policyNo }}\r\n
\r\n
\r\n {{ data.insuredName }}\r\n
\r\n
\r\n \r\n

\r\n \r\n Print Options * Any value entered will not be updated into the Client\r\n Master database.\r\n

\r\n\r\n \r\n
\r\n
\r\n {{ data.printEmailValidation }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport {\r\n FileInfo,\r\n RemoveEvent,\r\n SuccessEvent,\r\n UploadEvent,\r\n} from \"@progress/kendo-angular-upload\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport {\r\n dlgModelArgs,\r\n v1DlgInputArgs,\r\n} from \"../md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { FileUploadService } from \"src/app/services/file-upload.service\";\r\nimport {\r\n MessageBoard,\r\n MessageBoardModel,\r\n} from \"src/app/components/product/messageBoard/message-forum/MessageBoardModel\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MessageBoardService } from \"src/app/services/message-board.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-with-reason-attachment\",\r\n templateUrl:\r\n \"./md-confirmation-message-with-reason-attachment.component.html\",\r\n styleUrls: [\r\n \"./md-confirmation-message-with-reason-attachment.component.scss\",\r\n ],\r\n})\r\nexport class MdConfirmationMessageWithReasonAttachmentComponent\r\n implements OnInit\r\n{\r\n public data: any;\r\n model: MessageBoardModel = new MessageBoardModel();\r\n\r\n ownerId: any;\r\n description = \"Message Board File\";\r\n fileType = Enum.fileType.MessageBoard;\r\n documentIds = [];\r\n //DBSEP-3226 - INC21420894 - remove SMS and Email option and include no action required as per the business requirement\r\n options: KeyValue[] = [\r\n {\r\n key: \"Email\",\r\n value: \"2\",\r\n },\r\n {\r\n key: \"SMS\",\r\n value: \"5\",\r\n },\r\n {\r\n key: \"Mail\",\r\n value: \"1\",\r\n },\r\n {\r\n key: \"No Action Required\",\r\n value: \"4\",\r\n },\r\n ];\r\n selectedPrintType: any;\r\n isInvalidEmailAddress = false;\r\n\r\n hasFormError = false;\r\n formErrors = \"\";\r\n showNotify = true;\r\n validationMessage = \"\";\r\n public myFiles: Array = [];\r\n confirmLabel!: string;\r\n warning_message!: boolean;\r\n confirmationReason!: string;\r\n validationReasonMessage: string = \"Please enter Reason\";\r\n showReasonMessage!: boolean;\r\n isIBG!: boolean;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any,\r\n public identityRolesService: IdentityRolesService,\r\n private messageBoardService: MessageBoardService,\r\n private cdkDialogService: CdkDialogService,\r\n private fileUploadService: FileUploadService\r\n ) {\r\n if (this.inputData) {\r\n this.model.messageBoard.push(new MessageBoard());\r\n this.model.messageBoard[0].notifyUser = true;\r\n this.model.messageBoard[0].notifyOwnerOnly = true;\r\n this.model.messageBoard[0].isUnderwriterInternalComment = false;\r\n this.model.proposalId = this.inputData.proposalId;\r\n this.model.productId = this.inputData.productId;\r\n this.ownerId = this.inputData.proposalId;\r\n this.warning_message = false;\r\n this.model.messageBoard[0].messageTitle =\r\n \"Reason for Referred to Underwriter:\";\r\n if (this.inputData.tabClicked == 9) {\r\n this.confirmLabel = \"Reason:\";\r\n } else {\r\n this.confirmLabel = \"Reason:\";\r\n }\r\n this.description = \"Message Board File\";\r\n this.fileType = Enum.fileType.MessageBoard;\r\n this.documentIds = [];\r\n this.data = {\r\n proposalId: this.inputData.proposalId,\r\n tabClicked: this.inputData.tabClicked,\r\n };\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.model.printCorrespondence = this.inputData.printCorrespondence;\r\n\r\n this.model.selectedPrintType = this.options.filter((item) => {\r\n return item.value == this.inputData.preferredDeliveryMethod;\r\n })[0];\r\n\r\n if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"2\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.emailId;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"5\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.mobileNo;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"1\"\r\n ) {\r\n this.data.printCorrespondence = this.inputData.contactInfo;\r\n } else if (\r\n this.model.selectedPrintType != null &&\r\n this.model.selectedPrintType.value === \"4\"\r\n ) {\r\n this.data.printCorrespondence = \"\";\r\n }\r\n if (this.model.selectedPrintType == null) {\r\n this.data.selectedPrintType = this.options[1];\r\n }\r\n\r\n //https://github.com/udos86/ng-dynamic-forms/issues/362\r\n //overhead for non-primitive\r\n this.data.selectedPrintType = this.model.selectedPrintType.value;\r\n\r\n if (\r\n this.inputData.productId == \"06CB09D3-6FE0-4695-92A8-A61DFB627C61\" ||\r\n this.inputData.productId == \"8533FA05-F190-4A29-9613-3DB7F693DD32\"\r\n ) {\r\n this.isIBG = true;\r\n this.data.isPasswordProtected = false;\r\n } else {\r\n this.data.isPasswordProtected = true;\r\n }\r\n }\r\n\r\n confirmation(flag: any) {\r\n this.data.confirmation = flag;\r\n\r\n if (this.data.confirmation) {\r\n if (\r\n common.isDefined(this.confirmationReason) &&\r\n this.confirmationReason !== \"\"\r\n ) {\r\n this.data.message = this.confirmationReason;\r\n this.model.messageBoard[0].messageContent = this.confirmationReason;\r\n this.submit();\r\n this.close(\"yes\");\r\n } else {\r\n this.warning_message = true;\r\n }\r\n } else {\r\n this.close(\"no\");\r\n }\r\n }\r\n\r\n private submit = () => {\r\n this.model.messageBoard[0].proposalId = this.inputData.proposalId;\r\n this.model.messageBoard[0].notifyUser = false;\r\n\r\n // let serverModel: Array = this.model.messageBoard[0];\r\n this.model.messageBoard[0].fileIds = this.documentIds;\r\n\r\n if (!common.isDefined(this.model.messageBoard[0].messageTitle)) {\r\n this.model.messageBoard[0].messageTitle = \"\";\r\n }\r\n if (!common.isDefined(this.model.messageBoard[0].messageContent)) {\r\n this.model.messageBoard[0].messageContent = \"\";\r\n }\r\n\r\n this.messageBoardService.saveMessage(this.model.messageBoard[0]).subscribe(\r\n (result) => {\r\n //success\r\n },\r\n (result) => {\r\n this.hasFormError = true;\r\n this.formErrors = result.statusText;\r\n }\r\n );\r\n };\r\n\r\n public close(status: any) {\r\n let savParameters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n\r\n this.dialogRef?.close(savParameters);\r\n }\r\n\r\n public complete(): void {\r\n //console.log(`complete event`);\r\n }\r\n\r\n public error(e: ErrorEvent): void {\r\n //console.log(`error event: ${e.filename}`);\r\n }\r\n\r\n public remove(e: RemoveEvent): void {\r\n //console.log(`remove event: ${e.files[0].name}`);\r\n e.preventDefault(); //do our own way\r\n this.myFiles = [];\r\n }\r\n\r\n public success(e: SuccessEvent): void {\r\n //console.log(`success event ${e.files[0].name}`);\r\n }\r\n public upload(e: UploadEvent): void {\r\n //console.log(`upload event ${e.files[0].name}`);\r\n e.preventDefault(); //do our own way\r\n\r\n if (e.files.length > 0) {\r\n //from old ui: shared\\uiControls\\inputs\\drFileUpload\\FileUploadController.js\r\n const formData: FormData = new FormData();\r\n formData.append(\"description\", this.description);\r\n formData.append(\"ownerid\", this.ownerId);\r\n formData.append(\"type\", this.fileType.toString());\r\n for (var i = 0; i < e.files.length; i++) {\r\n formData.append(\"file\" + i, e.files[i].rawFile!);\r\n }\r\n this.fileUploadService.save(formData).subscribe((result: any) => {\r\n if (result && result.body) {\r\n if (result.body.StatusMessage == \"success\") {\r\n this.validationMessage = \"Upload successful\";\r\n this.myFiles = [];\r\n this.documentIds = result.body.docIdList;\r\n } else {\r\n this.validationMessage = \"Upload failed\";\r\n this.documentIds = [];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Please provide {{ confirmLabel }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n
\r\n\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport {\r\n dlgModelArgs,\r\n v1DlgInputArgs,\r\n} from \"../md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\n\r\n@Component({\r\n selector: \"app-md-confirmation-message-with-reason\",\r\n templateUrl: \"./md-confirmation-message-with-reason.component.html\",\r\n styleUrls: [\"./md-confirmation-message-with-reason.component.scss\"],\r\n})\r\nexport class MdConfirmationMessageWithReasonComponent implements OnInit {\r\n public data: any;\r\n isProcessing = false;\r\n model = {};\r\n confirmationReason = \"\";\r\n warning_message = false;\r\n confirmLabel = \"Return To Revise Reason:\";\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA)\r\n public inputData: confirmationMessageWithReasonInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.data = this.inputData;\r\n\r\n if (this.inputData.tabClicked == 9) {\r\n this.confirmLabel = \"Decline Reason:\";\r\n } else if (this.inputData.tabClicked == 45) {\r\n this.confirmLabel = \"Return To Revise Reason:\";\r\n }\r\n this.data.tabClicked = this.inputData.tabClicked;\r\n }\r\n }\r\n\r\n confirmation(flag: any) {\r\n this.data.confirmation = flag;\r\n if (this.data.confirmation) {\r\n if (this.confirmationReason != \"\") {\r\n this.data.message = this.confirmationReason;\r\n this.close(\"yes\");\r\n } else {\r\n this.warning_message = true;\r\n }\r\n } else {\r\n this.close(\"no\");\r\n }\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\n\r\nexport interface confirmationMessageWithReasonInputArgs {\r\n data: any;\r\n tabClicked: any;\r\n}\r\n","
\r\n
\r\n
\r\n

Please provide {{ confirmLabel }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport {\r\n dlgModelArgs,\r\n v1DlgInputArgs,\r\n} from \"../md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\n\r\n@Component({\r\n selector: \"md-information-message\",\r\n templateUrl: \"./md-information-message.component.html\",\r\n styleUrls: [\"./md-information-message.component.scss\"],\r\n})\r\nexport class MdInformationMessageComponent implements OnInit {\r\n public data: any;\r\n isProcessing = false;\r\n model = {};\r\n\r\n okText = \"OK\";\r\n isDisabled = false;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v1DlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.data = this.inputData;\r\n }\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ okText }}\r\n \r\n \r\n
\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"@progress/kendo-angular-dialog\";\r\nimport { UserProfileService } from \"src/app/services/user-profile.service\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-md-profile-details\",\r\n templateUrl: \"./md-profile-details.component.html\",\r\n styleUrls: [\"./md-profile-details.component.scss\"],\r\n})\r\nexport class MdProfileDetailsComponent implements OnInit {\r\n @Input() public data: any;\r\n public isProfileDetailsUpdated: boolean = false;\r\n public isExternalUser: boolean = false;\r\n\r\n constructor(\r\n public dialog: DialogRef,\r\n private userProfileService: UserProfileService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.isExternalUser =\r\n this.data.details.emailAddress.toString().indexOf(\"@chubb\") > -1\r\n ? false\r\n : true;\r\n }\r\n\r\n changePassword = () => {\r\n let authority = environment.adb2cSettings.passwordChangepolicy.authority;\r\n let changePasswordPolicy =\r\n environment.adb2cSettings.passwordChangepolicy.value;\r\n let changePasswordRedirectConfirmationUri =\r\n environment.adb2cSettings.passwordChangepolicy.redirectUri;\r\n let clientId = environment.adb2cSettings.clientId;\r\n\r\n const authorityUrl =\r\n authority + \"/\" + changePasswordPolicy + \"/oauth2/v2.0\";\r\n const changePasswordUrl =\r\n authorityUrl +\r\n \"/authorize?client_id=\" +\r\n clientId +\r\n \"&response_type=id_token&redirect_uri=\" +\r\n encodeURIComponent(changePasswordRedirectConfirmationUri) +\r\n \"&response_mode=query&scope=openid\";\r\n\r\n this.userProfileService\r\n .GenerateUserIdToken(this.data.details.emailAddress)\r\n .subscribe((result: any) => {\r\n let userIdToken: string = result.body.TokenData.replace('\"', \"\");\r\n window.location.href =\r\n changePasswordUrl + \"&id_token_hint=\" + userIdToken;\r\n });\r\n };\r\n}\r\n","
\r\n \r\n
\r\n Profile Details\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Name
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
User Login
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Change Password\r\n
\r\n
\r\n
\r\n
\r\n Your details have been updated.\r\n
\r\n
\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { ApiService } from \"src/app/services/dal/api.service\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MortgageFireSGTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../../dialog/dialog-tokens\";\r\nimport { clientViewDlgModelArgs } from \"../../mdClient/client-view/client-view.component\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { filterBy } from \"@progress/kendo-data-query\";\r\nimport { clone } from \"lodash\";\r\nimport { BaseSubscriptionComponent } from \"src/app/components/new-product/base/base-subscription/base-subscription.component\";\r\n\r\n@Component({\r\n selector: \"app-occupation-search\",\r\n templateUrl: \"./occupation-search.component.html\",\r\n styleUrls: [\"./occupation-search.component.scss\"],\r\n})\r\nexport class OccupationSearchComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n occupationKeyword: string = \"\";\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n\r\n outputData!: any;\r\n occupationList: any;\r\n loading: boolean = false;\r\n public selectedRowIndexes: number[] = [];\r\n\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: occupationSearchDlgInputArgs\r\n ) {\r\n super();\r\n this.tabId = MortgageFireSGTabSchema.premiumSummary.index.toString();\r\n\r\n if (this.inputData) {\r\n this.occupationList = clone(this.inputData.occupationList); //temp pass from outside\r\n }\r\n }\r\n\r\n //#region old ui code\r\n ngOnInit(): void {\r\n this.initialize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAllRxjs();\r\n }\r\n\r\n private initialize() {\r\n super.subscribeTabLoadRenderer();\r\n this.loadItems();\r\n }\r\n\r\n unsubscribeAllRxjs() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n public close(status: any) {\r\n let savParameters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: this.outputData,\r\n };\r\n this.dialogRef?.close(savParameters);\r\n }\r\n //#endregion\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.loadItems();\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n const di = dataItem;\r\n this.outputData = di;\r\n this.close(\"yes\");\r\n }\r\n\r\n public search(event: any): void {\r\n this.loading = true;\r\n this.occupationList = filterBy(this.inputData.occupationList, {\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: \"key\",\r\n operator: \"contains\",\r\n value: this.occupationKeyword,\r\n ignoreCase: true,\r\n },\r\n {\r\n field: \"value\",\r\n operator: \"contains\",\r\n value: this.occupationKeyword,\r\n ignoreCase: true,\r\n },\r\n ],\r\n });\r\n this.loadItems();\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.occupationList.slice(this.skip, this.skip + this.pageSize),\r\n total: this.occupationList.length,\r\n };\r\n this.loading = false;\r\n }\r\n //#endregion\r\n}\r\n\r\nexport interface occupationSearchDlgInputArgs {\r\n isEditable: boolean;\r\n occupationList: any;\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport { clientViewDlgModelArgs } from \"../mdClient/client-view/client-view.component\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"md-preferred-delivery-method\",\r\n templateUrl: \"./md-preferred-delivery-method.component.html\",\r\n styleUrls: [\"./md-preferred-delivery-method.component.scss\"],\r\n})\r\nexport class MdPreferredDeliveryMethodComponent implements OnInit {\r\n isNewClient = false;\r\n isProcessing = false;\r\n model = {};\r\n showCreateButton = true;\r\n labelText = \"Update\";\r\n h3LabelText = \"Change of Preferred Delivery\"; //update later in setCountry(clientCode: string)\r\n\r\n dialogActionSubscription: Subscription;\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n\r\n //#region old ui code\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any\r\n ) {\r\n this.dialogActionSubscription =\r\n dialogActionNotifier.cancel_notifier$.subscribe(this.dialogCancelled);\r\n }\r\n\r\n private dialogCancelled = (event: any) => {\r\n this.showCreateButton = event.value === \"failed\" ? true : false;\r\n if (\r\n event.value[\"status\"] !== \"failed\" &&\r\n event.key == \"preferred-delivery-close\"\r\n ) {\r\n this.close(\"yes\", event);\r\n } else {\r\n this.showCreateButton = true;\r\n }\r\n };\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.isNewClient = this.inputData.isNewClient;\r\n\r\n this.setCountry(this.inputData.clientCode);\r\n }\r\n }\r\n\r\n create() {\r\n this.showCreateButton = false;\r\n dialogActionNotifier.ok_notifier$.next({\r\n key: \"client-create-save\",\r\n value: {\r\n isNewClient: this.isNewClient,\r\n },\r\n });\r\n }\r\n\r\n private setCountry(clientCode: string) {\r\n let country = clientCode?.substring(0, 1);\r\n switch (country) {\r\n case \"H\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n\r\n this.h3LabelText =\r\n \"Updating Contact Info and Preferred Delivery Method\";\r\n break;\r\n case \"A\":\r\n default:\r\n this.isSgProduct = true;\r\n this.isHkProduct = false;\r\n break;\r\n }\r\n }\r\n\r\n public destroy() {\r\n this.dialogActionSubscription?.unsubscribe();\r\n }\r\n\r\n public close(status: any, event?: any) {\r\n if (status === \"yes\") {\r\n let outputData: preferredDeliveryMethodDlgInputArgs = {\r\n mobileNumber: event.value[\"data\"].mobileNumber,\r\n emailAddress: event.value[\"data\"].emailAddress,\r\n address: event.value[\"data\"].address,\r\n preferredDeliveryMethod: event.value[\"preferredDeliveryMethod\"],\r\n };\r\n\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: outputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n } else {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: null,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nexport interface preferredDeliveryMethodDlgInputArgs {\r\n mobileNumber: string;\r\n emailAddress: string;\r\n address: string;\r\n preferredDeliveryMethod: string;\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { IUser } from \"src/app/framework/interface.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { DialogRef } from \"../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../dialog/dialog-tokens\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport * as AppEnums from \"src/app/framework/app.enums\";\r\nimport { DialogAction } from \"@progress/kendo-angular-dialog\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_PROPOSAL } from \"src/app/app.module\";\r\n\r\n@Component({\r\n selector: \"app-md-product-selection-dialog\",\r\n templateUrl: \"./md-product-selection-dialog.component.html\",\r\n styleUrls: [\"./md-product-selection-dialog.component.scss\"],\r\n})\r\nexport class MdProductSelectionDialogComponent implements OnInit {\r\n currentUser: IUser | undefined;\r\n public data: any;\r\n public isProcessing: boolean = false;\r\n public model = {};\r\n public params: any = null;\r\n public organisationID = \"\";\r\n public productListing!: IProduct[];\r\n public contentLoaded: boolean = true;\r\n public showProduct: boolean = false;\r\n public isBroker: boolean = false;\r\n public isUnderwriter: boolean = false;\r\n\r\n public dlgWidth: number = 600;\r\n\r\n public returnActions: DialogAction[] = [{ text: \"Return to page\" }];\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: v2DlgInputArgs,\r\n public identityRolesService: IdentityRolesService,\r\n public router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.dlgWidth = this.inputData.dialogWidth;\r\n this.data = this.inputData.data;\r\n }\r\n\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser();\r\n this.params = null; //ProposalManager.processParams($stateParams);//todo: when click frm productPage\r\n this.organisationID = \"\";\r\n this.productListing =\r\n this.currentUser.products != undefined ? this.currentUser.products : [];\r\n this.contentLoaded = true;\r\n this.showProduct = this.currentUser.userType == Enums.UserType.Underwriter;\r\n this.isBroker = this.currentUser.userType == Enums.UserType.Broker;\r\n this.isUnderwriter =\r\n this.currentUser.userType == Enums.UserType.Underwriter;\r\n }\r\n\r\n //https://stackoverflow.com/questions/59289095/use-of-enums-in-angular-8-html-template-for-ngif\r\n public get EnumsForHtml() {\r\n return Enums;\r\n }\r\n\r\n goTo(productId: any): void {\r\n if (\r\n productId.toLocaleLowerCase() == AppEnums.product.ManagementLiablity &&\r\n this.currentUser?.userType == Enums.UserType.Underwriter\r\n ) {\r\n //fectchBrokerList(productId.toLocaleLowerCase());\r\n } else {\r\n var defaultGUID = \"00000000-0000-0000-0000-000000000000\";\r\n var proposalId = defaultGUID;\r\n var masterProposalId = defaultGUID;\r\n var action = 1; // CreateOrEdit\r\n var section = 1; // default to 1 since it's New\r\n var pathToProposal =\r\n AppEnums.productsRoute[productId.toLocaleLowerCase() + \"|\" + section];\r\n var type = this.params?.type;\r\n //Special case for GCN\r\n if (productId == AppEnums.product.GeneralCoverNote) {\r\n pathToProposal = AppEnums.productsRoute[productId + \"|\" + 0];\r\n }\r\n this.goToProposal(\r\n pathToProposal,\r\n productId,\r\n proposalId,\r\n masterProposalId,\r\n action,\r\n section,\r\n type,\r\n null,\r\n null\r\n );\r\n }\r\n }\r\n\r\n goToProposal(\r\n pathToProposal: any,\r\n productId: any,\r\n proposalId: any,\r\n masterProposalId: any,\r\n action: any,\r\n section: any,\r\n type: any,\r\n buid: any,\r\n organisationID: any\r\n ): void {\r\n //this will re-route to proposal page\r\n let currentUrl = this.router.url;\r\n //if same route, force reload\r\n if (currentUrl.startsWith(\"/\" + ROUTE_PROPOSAL)) {\r\n //https://stackblitz.com/edit/angular-same-route-reload\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() =>\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: productId,\r\n pid: proposalId,\r\n mpid: masterProposalId,\r\n action: action, //Creaate\r\n section: section,\r\n type: type,\r\n buid: buid,\r\n organisationID: organisationID,\r\n },\r\n })\r\n );\r\n } else {\r\n this.router.navigate([\"/\" + ROUTE_PROPOSAL], {\r\n queryParams: {\r\n pdid: productId,\r\n pid: proposalId,\r\n mpid: masterProposalId,\r\n action: action, //Creaate\r\n section: section,\r\n type: type,\r\n buid: buid,\r\n organisationID: organisationID,\r\n },\r\n });\r\n }\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: \"yes\", //action.text,\r\n data: this.data,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n\r\n // $state.go(pathToProposal, {\r\n // \"pdid\": productId,\r\n // \"pid\": proposalId,\r\n // \"mpid\": masterProposalId,\r\n // \"action\": action, //Creaate\r\n // \"section\": section,\r\n // \"type\": type,\r\n // \"buid\": buid,\r\n // \"organisationID\": organisationID\r\n // }, {\r\n // reload: true,\r\n // inherit: false,\r\n // notify: true\r\n // });\r\n // $scope.close();\r\n }\r\n\r\n /** Appending brokerid and broker user id is to cater for AML underwriter dual role. When logged in as\r\n * an underwriter user will be given an option to choose broker user id and this broker user id will be used\r\n during dosave() - kisiva\r\n */\r\n routeWithBrokerInfo(data: any): void {\r\n // if (angular.isUndefined(data)) return;\r\n // var defaultGUID = '00000000-0000-0000-0000-000000000000';\r\n // var proposalId = defaultGUID;\r\n // var masterProposalId = defaultGUID;\r\n // var action = 1; // CreateOrEdit\r\n // var section = 1; // default to 1 since it's New]\r\n // var productId = Enums.product.ManagementLiablity;\r\n // var pathToProposal = Enums.productsRoute[productId.toLocaleLowerCase() + '|' + section];\r\n // var type = $scope.params.type;\r\n // var buid = data.id;\r\n // var organisationID = data.organisationID;\r\n // goToProposal(pathToProposal,\r\n // productId,\r\n // proposalId,\r\n // masterProposalId,\r\n // action,\r\n // section,\r\n // type,\r\n // buid,\r\n // organisationID);\r\n }\r\n\r\n public onAction(action: DialogAction): void {\r\n let savParamters: dlgModelArgs = {\r\n status: \"cancel\", //action.text,\r\n data: this.data,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n}\r\n\r\nexport interface v2DlgInputArgs {\r\n opened: boolean;\r\n dialogWidth: number;\r\n data: any;\r\n message: any;\r\n}\r\n\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n\r\n
\r\n
\r\n
Please select a product to proceed
\r\n \r\n \r\n \r\n \r\n {{ item.pd }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.pd }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-md-successful-file-upload\",\r\n templateUrl: \"./md-successful-file-upload.component.html\",\r\n styleUrls: [\"./md-successful-file-upload.component.scss\"],\r\n})\r\nexport class MdSuccessfulFileUploadComponent implements OnInit {\r\n @Input() public opened = false;\r\n @Input() public data: any;\r\n @Input() public message: any;\r\n public isSuccess: boolean = false;\r\n validationMessage: any = [];\r\n\r\n @Output() closeDialogEvent = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n //has to be done here, not constructor() since UI/input not yet ready\r\n this.isSuccess = this.data != null ? this.data.status : false;\r\n if (this.data.validationMessage) {\r\n this.validationMessage = Object.keys(this.data.validationMessage).map(\r\n (key) => ({ value: this.data.validationMessage[key] })\r\n );\r\n }\r\n }\r\n\r\n public close(status: any) {\r\n this.opened = false;\r\n\r\n let savParamters: dlgModelArgs = {\r\n status: status,\r\n data: this.data,\r\n };\r\n this.closeDialogEvent.emit(savParamters);\r\n }\r\n\r\n public open() {\r\n this.opened = true;\r\n }\r\n}\r\n\r\nexport interface dlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n
\r\n \r\n Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Row Number : {{ item.value.RowNumber }}\r\n

\r\n
    \r\n \r\n {{ message }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Remain in the same page.\r\n \r\n \r\n Return to proposal listing.\r\n \r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n ViewChild,\r\n Inject,\r\n} from \"@angular/core\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\n//import { notifier } from \"src/app/framework/utils/notifier\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { AddressHelpFormComponent } from \"../../../../../products/address-help-form/address-help-form.component\";\r\nimport { SafeHtml } from \"@angular/platform-browser\";\r\nimport { DIALOG_DATA } from \"../../../../dialog/dialog-tokens\";\r\nimport { DialogRef } from \"../../../../dialog/dialog-ref\";\r\nimport { GooglePlaceDirective } from \"ngx-google-places-autocomplete\";\r\nimport { Address } from \"ngx-google-places-autocomplete/objects/address\";\r\nimport { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { MdInformationMessageComponent } from \"src/app/components/shared/partials/md-information-message/md-information-message.component\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { clientCreateDlgInputArgs } from \"./client-create-dlg-input-args\";\r\nimport { clientCreateDlgModelArgs } from \"./client-create-dlg-model-args\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { BaseSubscriptionComponent } from \"src/app/components/new-product/base/base-subscription/base-subscription.component\";\r\nimport { ProposalPackage } from \"src/app/models/new-product/base/proposal-package-model\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\n\r\n@Component({\r\n selector: \"app-base-client-create\",\r\n templateUrl: \"./base-client-create.component.html\",\r\n styleUrls: [\"./base-client-create.component.scss\"],\r\n})\r\nexport class BaseClientCreateComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n postBackData!: any[];\r\n proposal!: ProposalPackage; //MortgageFireSingaporeProposal;\r\n //googleSearchAutoCompleteClientInformation!: GoogleAddressAutoCompleteManager;\r\n ibgDisabled: boolean = true;\r\n isProcessing!: boolean;\r\n // mandatoryField: any[];\r\n isPersonal: boolean = true;\r\n isOrganization: boolean = false;\r\n changedVal: string = \"1\";\r\n //timeout = Application.angular_$timeout();\r\n\r\n clientData = new ClientEntity();\r\n address = new ClientAddressEntity();\r\n showErrorMessage!: boolean;\r\n emailPattern: string = \"\";\r\n readOnlyFields!: any[];\r\n addAddress1RO: boolean = true;\r\n addAddress2RO: boolean = true;\r\n addCityRO: boolean = true;\r\n addCountryRO: boolean = true;\r\n addPostcodeRO: boolean = true;\r\n addStateRO: boolean = true;\r\n nationalityList!: any[];\r\n countryList!: any[];\r\n firstRun: boolean = true;\r\n phoneNumberEntered: boolean = false;\r\n isEditable: boolean = false;\r\n productBase!: EnumSG.ProductBase;\r\n\r\n id: any;\r\n isCreate!: boolean;\r\n isStateVisible: boolean = false;\r\n countryExcludeState: any = [\"SG\", \"HK\"];\r\n newDOB: any;\r\n protected dialogOkNotifierSubscription!: Subscription;\r\n errorMsgInHtml!: SafeHtml;\r\n CINText = \"\";\r\n\r\n @ViewChild(\"insuredAddress_lotunit\", { static: false })\r\n public insuredAddress_lotunit: any;\r\n\r\n @ViewChild(\"insuredAddress_building\", { static: false })\r\n public insuredAddress_building: any;\r\n\r\n @ViewChild(\"insuredAddress1\", { static: false })\r\n public insuredAddress1: any;\r\n\r\n @ViewChild(\"insuredAddress2\", { static: false })\r\n public insuredAddress2: any;\r\n\r\n @ViewChild(\"insuredCity\", { static: false })\r\n public insuredCity: any;\r\n\r\n @ViewChild(\"insuredPostalCode\", { static: false })\r\n public insuredPostalCode: any;\r\n\r\n @ViewChild(\"insuredState\", { static: false })\r\n public insuredState: any;\r\n\r\n @ViewChild(\"clientInformation_autocomplete\", { static: false })\r\n public clientInformation_autocomplete!: GooglePlaceDirective;\r\n\r\n @ViewChild(\"modal_body\")\r\n modal_body!: ElementRef;\r\n\r\n productFactory!: AbstractProductFactory;\r\n\r\n googlePlacesOptions = {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [\"sg\"] },\r\n } as unknown as Options; //default to sg, will be determined by productFactory\r\n\r\n public salutationList!: Array<{ text: string; value: number }>;\r\n public docTypeList!: Array<{ text: string; value: string }>;\r\n public raceList!: Array<{ text: string; value: number }>;\r\n public genderList = new Array<{ text: string; value: number }>();\r\n public maritalStatus = new Array<{ text: string; value: number }>();\r\n labelText = \"Create\";\r\n h3LabelText = \"Client - Create\";\r\n documentTypeLabel = \"\";\r\n showClientTypeOthers = false;\r\n\r\n //validations\r\n emptyFieldValidation = \"\";\r\n\r\n constructor(\r\n public clientService: ClientService,\r\n public masterDataService: MasterDataService,\r\n public cdkDialogService: CdkDialogService,\r\n @Inject(DIALOG_DATA) public inputData: clientCreateDlgInputArgs,\r\n public dialogRef: DialogRef,\r\n public notifier: NotifierService,\r\n public productService: ProductService\r\n ) {\r\n super();\r\n // if (this.inputData) {\r\n // this.proposal = this.inputData.proposal; //temp pass from outside\r\n // this.isCreate = this.inputData.isNewClient;\r\n // this.labelText = \"Create\";\r\n // this.h3LabelText = \"Client - Create\";\r\n // if (!this.isCreate) {\r\n // this.labelText = \"Update\";\r\n // this.isCreate = false;\r\n // this.h3LabelText = \"Change of Client Info\";\r\n // }\r\n // }\r\n }\r\n\r\n ngOnInit(): void {\r\n // if (!this.isCreate) {\r\n // this.clientService\r\n // .get(\r\n // this.proposalService.proposal.customerMappingId!,\r\n // this.proposalService!.proposal.qsMaster.qs_master_insuredNo!.answer\r\n // )\r\n // .subscribe((response: ClientEntity) => {\r\n // this.clientData = response;\r\n // this.setDate(this.clientData.birthDate);\r\n // // check for docType, assign to empty if is 0\r\n // if (common.isDefined(this.clientData.docType)) {\r\n // this.clientData.docType =\r\n // parseInt(this.clientData.docType) === 0\r\n // ? \"\"\r\n // : this.clientData.docType.toString();\r\n // }\r\n // this.proposalService.proposal.customerMappingAddressID = Number(\r\n // response.address[0].clientAddressID\r\n // );\r\n // this.address = response.address[0];\r\n // this.setClientType(this.clientData.clientType);\r\n // this.getIsStateVisible(this.address.countryISO2);\r\n // });\r\n // // this.updateClientCIN();\r\n // }\r\n // this.dialogOkNotifierSubscription =\r\n // dialogActionNotifier.ok_notifier$.subscribe((event) => {\r\n // this.createClient();\r\n // });\r\n // this.initialize();\r\n // // this.checkIsNewClient();\r\n }\r\n\r\n protected setClientType(clientType: EnumSG.ClientType) {\r\n if (clientType === EnumSG.ClientType.Person) {\r\n this.isPersonal = true;\r\n this.isOrganization = false;\r\n } else {\r\n this.isPersonal = false;\r\n this.isOrganization = true;\r\n }\r\n }\r\n\r\n protected setDate(birthDate: Date) {\r\n if (birthDate) {\r\n let date = formatDate(birthDate, \"dd/MM/yyyy\", \"en-US\");\r\n let year = date.split(\"/\")[2];\r\n let month = date.split(\"/\")[1];\r\n let day = date.split(\"/\")[0];\r\n this.clientData.birthDate = new Date(\r\n parseInt(year),\r\n parseInt(month) - 1,\r\n parseInt(day)\r\n );\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.unsubscribeAllRxjs();\r\n }\r\n\r\n protected initialize() {\r\n // this.postBackData = [];\r\n // this.proposal = this.proposalService.proposal;\r\n // this.nationalityList = new Array();\r\n // this.countryList = new Array();\r\n // super.subscribeTabLoadRenderer();\r\n // super.subscribeTabLoadRenderer();\r\n // if (this.isCreate) this.initializeQuestionSchema();\r\n // // $(document).ready(() => {\r\n // this.componentsInitialize();\r\n // // });\r\n // this.productFactory = this.productService.getProductFactory(\r\n // this.proposal.productType\r\n // );\r\n // this.googlePlacesOptions = this.productFactory\r\n // .googlePlaces()\r\n // .getGooglePlacesOptions(); //init by country here\r\n }\r\n\r\n unsubscribeAllRxjs() {\r\n super.unsubscribeRxjs();\r\n this.dialogOkNotifierSubscription.unsubscribe();\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: clientCreateDlgModelArgs = {\r\n status: status,\r\n data: this.clientData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n emailValidation = (e: any, inputId: any): void => {\r\n const re = /\\S+@\\S+\\.\\S+/;\r\n if (!re.test(e.currentTarget.value)) {\r\n this.showErrorMessage = true;\r\n this.clientData.emailAddress = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid email address {\r\n let displayText: string = \"Unknown\";\r\n if (inputId?.length > 0) {\r\n this.countryList.forEach((i) => {\r\n if (i.value === inputId) {\r\n displayText = i.key;\r\n }\r\n });\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n addressDataIfUnknown = (inputId: any): string => {\r\n if (inputId?.length > 0) {\r\n return inputId;\r\n }\r\n if (Number(inputId)) {\r\n return inputId;\r\n }\r\n return \"Unknown\";\r\n };\r\n\r\n protected phoneValidation = (inputId: any): void => {\r\n const inputValue = this.clientData.mobileNumber.trim();\r\n let errorText: string = \"\";\r\n\r\n var phoneno = /^\\+?[0-9]+$/;\r\n if (inputValue.length > 0) {\r\n if (!inputValue.match(phoneno)) {\r\n errorText = this.getPhoneValidationText(inputId);\r\n this.showErrorMessage = true;\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid ' +\r\n errorText +\r\n \"
\";\r\n // angular.element('.modal-body').animate({ scrollTop: 0 }, 200);\r\n } else if (inputValue == \"0\" && inputValue.length == 1) {\r\n // this.checkIfPhoneEntered();\r\n this.showErrorMessage = false;\r\n this.errorMsgInHtml = \"\";\r\n // angular\r\n // .element(\"#\" + inputId)\r\n // .closest(\".form-group\")\r\n // .removeClass(\"has-error\");\r\n } else if (inputValue.length != 8 && inputValue != \"0\") {\r\n errorText = this.getPhoneValidationText(inputId);\r\n this.showErrorMessage = true;\r\n // this.htmlErrorMessage = htmlErrorMessage.replace('@i.label@', i.label);\r\n // if (inputId === 'brokerMobileNo' || inputId === 'brokerMobileNo' || inputId === 'brokerMobileNo') {\r\n // this.checkIfPhoneEntered();\r\n // }\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid ' +\r\n errorText +\r\n \"
\";\r\n } else if (\r\n inputValue.length == 8 &&\r\n inputValue.toString()[0] != \"9\" &&\r\n inputValue.toString()[0] != \"8\"\r\n ) {\r\n errorText = this.getPhoneValidationText(inputId);\r\n this.showErrorMessage = true;\r\n // this.htmlErrorMessage = htmlErrorMessage.replace('@i.label@', i.label);\r\n // if (inputId === 'brokerMobileNo' || inputId === 'brokerMobileNo' || inputId === 'brokerMobileNo') {\r\n // this.checkIfPhoneEntered();\r\n // }\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml =\r\n '
Please enter a valid ' +\r\n errorText +\r\n \"
\";\r\n // angular.element('.modal-body').animate({ scrollTop: 0 }, 200);\r\n } else {\r\n this.showErrorMessage = false;\r\n this.errorMsgInHtml = \"\";\r\n // angular\r\n // .element(\"#\" + inputId)\r\n // .closest(\".form-group\")\r\n // .removeClass(\"has-error\");\r\n }\r\n }\r\n };\r\n nricPassportValidation = (e: any, inputId: any): void => {\r\n const inputValue = e.currentTarget.value.trim();\r\n\r\n if (inputValue.length > 0) {\r\n if (inputId === \"clientNRICNo\") {\r\n if (this.clientData.passportNo.length > 0) {\r\n //angular.element(\"#passportNo\").find(\"label\").removeClass(\"required\");\r\n }\r\n //angular.element(\"#nric\").find(\"label\").addClass(\"required\");\r\n } else {\r\n if (this.clientData.nric.length > 0) {\r\n //angular.element(\"#nric\").find(\"label\").addClass(\"required\");\r\n //angular.element(\"#passportNo\").find(\"label\").removeClass(\"required\");\r\n } else {\r\n //angular.element(\"#passportNo\").find(\"label\").addClass(\"required\");\r\n //angular.element(\"#nric\").find(\"label\").removeClass(\"required\");\r\n }\r\n }\r\n }\r\n this.updateClientCIN();\r\n };\r\n businessRegistrationNumberToCIN = (e: any): void => {\r\n if (this.clientData.docType === \"B\")\r\n this.clientData.cinNo = this.clientData.businessRegistrationNumber;\r\n if (this.clientData.docType === \"C\")\r\n this.clientData.cinNo = this.clientData.businessRegistrationNumber2;\r\n };\r\n dbsClientReferenceNumberToCIN = (e: any): void => {\r\n this.clientData.cinNo = this.clientData.dbsClientReferenceNumber;\r\n };\r\n getPhoneValidationText = (inputId: any): string => {\r\n let errorText: string = \"\";\r\n switch (inputId) {\r\n case \"brokerMobileNo\":\r\n errorText = \"Mobile Number\";\r\n this.clientData.mobileNumber = \"\";\r\n break;\r\n case \"brokerPhoneNo\":\r\n errorText = \"Phone Number (Home)\";\r\n this.clientData.phoneNoHome = \"\";\r\n break;\r\n case \"brokerOfficeNo\":\r\n errorText = \"Phone Number (Office)\";\r\n this.clientData.phoneNoOffice = \"\";\r\n break;\r\n case \"brokerFaxNo\":\r\n errorText = \"Fax Number\";\r\n this.clientData.faxNumber = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n return errorText;\r\n };\r\n\r\n checkIFContainsRequired = (\r\n elementId1: any,\r\n elementId2: any,\r\n requiredElement: any\r\n ) => {\r\n let containsRequiredExists: boolean = false;\r\n // if (\r\n // angular.element(\"#mobilePhoneForm\").find(\"label\").hasClass(\"required\") ||\r\n // angular.element(\"#housePhoneForm\").find(\"label\").hasClass(\"required\") ||\r\n // angular.element(\"#officePhoneForm\").find(\"label\").hasClass(\"required\")\r\n // ) {\r\n // containsRequiredExists = true;\r\n // }\r\n\r\n // if (containsRequiredExists) {\r\n // angular\r\n // .element(\"#\" + elementId1)\r\n // .find(\"label\")\r\n // .removeClass(\"required\");\r\n // angular\r\n // .element(\"#\" + elementId2)\r\n // .find(\"label\")\r\n // .removeClass(\"required\");\r\n // } else {\r\n // angular\r\n // .element(\"#\" + requiredElement)\r\n // .find(\"label\")\r\n // .addClass(\"required\");\r\n // }\r\n };\r\n\r\n checkIfPhoneEntered = () => {\r\n this.phoneNumberEntered = false;\r\n if (\r\n this.clientData.mobileNumber !== \"\" ||\r\n this.clientData.phoneNoHome !== \"\" ||\r\n this.clientData.phoneNoOffice !== \"\"\r\n ) {\r\n this.phoneNumberEntered = true;\r\n // angular.element(\"#mobilePhoneForm\").find(\"label\").removeClass(\"required\");\r\n // angular.element(\"#housePhoneForm\").find(\"label\").removeClass(\"required\");\r\n // angular.element(\"#officePhoneForm\").find(\"label\").removeClass(\"required\");\r\n if (this.clientData.phoneNoHome !== \"\") {\r\n this.checkIFContainsRequired(\r\n \"mobilePhoneForm\",\r\n \"officePhoneForm\",\r\n \"housePhoneForm\"\r\n );\r\n } else if (this.clientData.mobileNumber !== \"\") {\r\n this.checkIFContainsRequired(\r\n \"housePhoneForm\",\r\n \"officePhoneForm\",\r\n \"mobilePhoneForm\"\r\n );\r\n } else if (this.clientData.phoneNoOffice !== \"\") {\r\n this.checkIFContainsRequired(\r\n \"mobilePhoneForm\",\r\n \"housePhoneForm\",\r\n \"officePhoneForm\"\r\n );\r\n }\r\n }\r\n };\r\n\r\n initializeQuestionSchema = () => {\r\n this.clientData = new ClientEntity();\r\n this.clientData.address = [];\r\n this.address = new ClientAddressEntity();\r\n\r\n this.clientData.clientId = 0;\r\n this.clientData.clientCode = \"\";\r\n this.clientData.clientType = 1;\r\n this.clientData.nric = \"\";\r\n this.clientData.passportNo = \"\";\r\n\r\n this.clientData.businessRegistrationNumber = \"\";\r\n this.clientData.dbsClientReferenceNumber = \"\";\r\n this.clientData.clientName = \"\";\r\n this.clientData.incorporatedDate = \"\";\r\n this.clientData.firstName = \"\";\r\n this.clientData.lastName = \"\";\r\n this.clientData.personInCharge = \"\";\r\n\r\n this.clientData.salutation = \"\";\r\n this.clientData.docType = \"\";\r\n this.clientData.gender = \"\";\r\n this.clientData.birthDate = \"\";\r\n this.clientData.occupation = \"\";\r\n this.clientData.nationality = \"154\";\r\n\r\n this.clientData.race = \"\";\r\n this.clientData.maritalStatus = \"\";\r\n this.clientData.phoneNoHome = \"\";\r\n this.clientData.phoneNoOffice = \"\";\r\n this.clientData.mobileNumber = \"\";\r\n\r\n this.clientData.pagerNo = \"\";\r\n this.clientData.faxNumber = \"\";\r\n this.clientData.emailAddress = \"\";\r\n this.clientData.mobileNumber = \"\";\r\n\r\n this.address.clientAddressID = \"\";\r\n this.address.clientID = \"\";\r\n this.address.buildingName = \"\";\r\n this.address.unitNo = \"\";\r\n this.address.addressLine1 = \"\";\r\n\r\n this.address.addressLine2 = \"\";\r\n this.address.addressLine3 = \"\";\r\n this.address.addressLine4 = \"\";\r\n this.address.addressLine5 = \"\";\r\n this.address.city = \"\";\r\n\r\n this.address.postCode = \"\";\r\n this.address.stateName = \"\";\r\n this.address.countryISO2 = \"\";\r\n this.address.contact1 = \"\";\r\n this.address.contact2 = \"\";\r\n\r\n this.clientData.address.push(this.address);\r\n };\r\n\r\n componentsInitialize = () => {\r\n this.salutationList = [\r\n { text: \"Capt\", value: 1 },\r\n { text: \"Dr.\", value: 2 },\r\n { text: \"Madam\", value: 3 },\r\n { text: \"Miss\", value: 4 },\r\n { text: \"Mr\", value: 5 },\r\n { text: \"Mrs\", value: 6 },\r\n { text: \"Ms\", value: 7 },\r\n { text: \"Prof\", value: 8 },\r\n { text: \"Sir\", value: 9 },\r\n { text: \"Tan Sir\", value: 10 },\r\n { text: \"Others\", value: 13 },\r\n ];\r\n\r\n let fac = this.productService.getProductFactoryByProductId(\r\n this.proposal.productId\r\n );\r\n let dtl = fac.docTypeList();\r\n this.docTypeList = dtl.getDocTypeList(this.clientData.clientType);\r\n this.documentTypeLabel = dtl.getDocTypeCaption();\r\n this.showClientTypeOthers = dtl.showClientTypeOthers();\r\n\r\n this.raceList = [\r\n { text: \"Chinese\", value: 1 },\r\n { text: \"Indian\", value: 2 },\r\n { text: \"Malay\", value: 3 },\r\n { text: \"Others\", value: 4 },\r\n ];\r\n this.genderList = [\r\n { text: \"Male\", value: 1 },\r\n { text: \"Female\", value: 2 },\r\n ];\r\n this.maritalStatus = [\r\n { text: \"Single\", value: 1 },\r\n { text: \"Married\", value: 2 },\r\n { text: \"Widowed\", value: 3 },\r\n { text: \"Divorced\", value: 4 },\r\n { text: \"Separated\", value: 5 },\r\n ];\r\n setTimeout(() => {\r\n if (this.clientData.clientType === EnumSG.ClientType.Person) {\r\n this.masterDataService.getNationalityList().subscribe((response) => {\r\n this.nationalityList = response;\r\n setTimeout(() => {\r\n let defaultNationality: any = \"\";\r\n if (\r\n !this.isCreate &&\r\n this.clientData.clientType === EnumSG.ClientType.Person\r\n ) {\r\n defaultNationality = this.clientData.nationality;\r\n }\r\n const docType: string = this.clientData.docType;\r\n this.documentTypeChange(docType);\r\n }, 10);\r\n });\r\n }\r\n this.masterDataService.getCountryList().subscribe((response) => {\r\n this.countryList = response;\r\n });\r\n\r\n this.setCinText();\r\n }, 500);\r\n };\r\n\r\n protected setCinText() {\r\n // this.CINText =\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n // ? \"Citibank CIN\"\r\n // : \"DBS CIN\";\r\n }\r\n\r\n protected selectClientType = (e: any): void => {\r\n this.emptyFieldValidation = \"\";\r\n this.showErrorMessage = false;\r\n if (this.isCreate) {\r\n this.clientData.cinNo = \"\";\r\n }\r\n\r\n this.errorMsgInHtml = \"\";\r\n this.clientData.clientType = Number(e.currentTarget.value);\r\n if (e.currentTarget.value === \"1\") {\r\n this.isOrganization = false;\r\n this.isPersonal = true;\r\n this.clientData.businessRegistrationNumber = \"\";\r\n this.clientData.clientName = \"\";\r\n this.clientData.personInCharge = \"\";\r\n }\r\n if (e.currentTarget.value === \"2\") {\r\n this.isOrganization = true;\r\n this.isPersonal = false;\r\n this.clientData.salutation = \"\";\r\n this.clientData.firstName = \"\";\r\n this.clientData.lastName = \"\";\r\n this.clientData.birthDate = \"\";\r\n this.clientData.gender = \"\";\r\n this.clientData.maritalStatus = \"\";\r\n this.clientData.nric = \"\";\r\n this.clientData.passportNo = \"\";\r\n this.clientData.occupation = \"\";\r\n this.clientData.race = \"\";\r\n this.clientData.docType = \"\";\r\n }\r\n\r\n this.componentsInitialize();\r\n };\r\n\r\n documentTypeChange = (docType: string) => {\r\n if (!this.firstRun) {\r\n this.clientData.nric = \"\";\r\n this.clientData.passportNo = \"\";\r\n this.clientData.businessRegistrationNumber = \"\";\r\n this.clientData.businessRegistrationNumber2 = \"\";\r\n this.clientData.nationality = undefined;\r\n }\r\n switch (docType) {\r\n case \"1\": // singaporean\r\n this.clientData.nationality = \"154\";\r\n break;\r\n case \"2\": // singapore PR\r\n if (!this.firstRun) {\r\n this.clientData.nric = \"\";\r\n this.clientData.passportNo = \"\";\r\n this.clientData.nationality = undefined;\r\n }\r\n break;\r\n case \"3\": // malaysian\r\n this.clientData.nationality = \"112\";\r\n if (!this.firstRun) {\r\n this.clientData.passportNo = \"\";\r\n }\r\n break;\r\n case \"4\": // foreigner\r\n if (this.isCreate) {\r\n //this.clientData.nationality = undefined;\r\n } else {\r\n //this.clientData.nationality = undefined;\r\n }\r\n break;\r\n default:\r\n // do nothing\r\n //this.clientData.nationality = \"\";\r\n break;\r\n }\r\n this.updateClientCIN();\r\n this.firstRun = false;\r\n };\r\n\r\n updateClientCIN = () => {\r\n let docType;\r\n docType = this.clientData.docType.toString();\r\n if (this.isCreate) {\r\n this.clientData.cinNo = \"\";\r\n }\r\n if (docType !== \"\" && docType !== null) {\r\n switch (docType) {\r\n case \"I\": // Person - NRIC\r\n this.clientData.cinNo = this.clientData.nric;\r\n break;\r\n case \"P\": // Person - passport\r\n this.clientData.cinNo = this.clientData.passportNo;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n protected updateAddressValues = (\r\n place: { address_components: string | any[] },\r\n componentForm: { [x: string]: string | number },\r\n divId: string\r\n ): void => {\r\n this.resetClientAddressForm();\r\n if (Global.isDefined(place.address_components)) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < place.address_components.length; i++) {\r\n const addressType = place.address_components[i].types[0];\r\n //if (componentForm[addressType]) {\r\n //const val = place.address_components[i][componentForm[addressType]];\r\n switch (addressType) {\r\n case \"street_number\":\r\n let val1 = place.address_components[i].long_name;\r\n this.address.addressLine1 = val1;\r\n this.validateReadOnlyAddress(val1, \"addAddress1RO\");\r\n break;\r\n case \"route\":\r\n let val2 = place.address_components[i].long_name;\r\n this.address.addressLine2 = val2;\r\n this.validateReadOnlyAddress(val2, \"addAddress2RO\");\r\n break;\r\n case \"locality\":\r\n let val3 = place.address_components[i].long_name;\r\n this.address.city = val3;\r\n this.validateReadOnlyAddress(val3, \"addCityRO\");\r\n break;\r\n case \"postal_code\":\r\n let val4 = place.address_components[i].long_name;\r\n this.address.postCode = val4;\r\n this.validateReadOnlyAddress(val4, \"addPostcodeRO\");\r\n break;\r\n case \"administrative_area_level_1\":\r\n let val5 = place.address_components[i].short_name;\r\n this.address.stateName = val5;\r\n this.validateReadOnlyAddress(val5, \"addStateRO\");\r\n break;\r\n case \"country\":\r\n let val6 = place.address_components[i].short_name;\r\n this.address.countryISO2 = val6.trim();\r\n this.validateReadOnlyAddress(val6, \"addCountryRO\");\r\n this.getIsStateVisible(val6);\r\n break;\r\n default:\r\n break;\r\n }\r\n // clearing the search input\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n //}\r\n this.inputReadOnlyAddress();\r\n }\r\n }\r\n //this.this.$apply();//todo\r\n };\r\n getIsStateVisible = (value: any) => {\r\n const elementPos = this.countryExcludeState\r\n .map(function (x: any) {\r\n return x;\r\n })\r\n .indexOf(value);\r\n if (elementPos > -1) {\r\n this.isStateVisible = false;\r\n } else {\r\n this.isStateVisible = true;\r\n }\r\n };\r\n\r\n protected validateReadOnlyAddress = (value: any, inputId: any) => {\r\n if (value !== \"\") {\r\n const index = this.readOnlyFields.indexOf(inputId);\r\n switch (inputId) {\r\n case \"addAddress1RO\":\r\n this.addAddress1RO = false;\r\n break;\r\n case \"addAddress2RO\":\r\n this.addAddress2RO = false;\r\n break;\r\n case \"addCityRO\":\r\n this.addCityRO = false;\r\n break;\r\n case \"addPostcodeRO\":\r\n this.addPostcodeRO = false;\r\n break;\r\n case \"addStateRO\":\r\n this.addStateRO = false;\r\n break;\r\n case \"addCountryRO\":\r\n this.addCountryRO = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (index !== -1) {\r\n this.readOnlyFields.splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n inputReadOnlyAddress = () => {\r\n for (let i = 0; i < this.readOnlyFields.length; i++) {\r\n const inputFieldId = this.readOnlyFields[i];\r\n switch (inputFieldId) {\r\n case \"addAddress1RO\":\r\n this.addAddress1RO = false;\r\n break;\r\n case \"addAddress2RO\":\r\n this.addAddress2RO = false;\r\n break;\r\n case \"addCityRO\":\r\n this.addCityRO = false;\r\n break;\r\n case \"addStateRO\":\r\n this.addStateRO = false;\r\n break;\r\n case \"addPostcodeRO\":\r\n this.addPostcodeRO = false;\r\n break;\r\n case \"addCountryRO\":\r\n this.addCountryRO = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n\r\n protected resetClientAddressForm() {\r\n this.readOnlyFields = [\r\n \"addAddress1RO\",\r\n \"addAddress2RO\",\r\n \"addCityRO\",\r\n \"addPostcodeRO\",\r\n \"addStateRO\",\r\n ];\r\n this.address.buildingName = \"\";\r\n this.address.unitNo = \"\";\r\n this.address.addressLine1 = \"\";\r\n this.address.addressLine2 = \"\";\r\n this.address.city = \"\";\r\n this.address.postCode = \"\";\r\n this.address.stateName = \"\";\r\n\r\n this.updateNativeElement(this.insuredAddress_lotunit, \"\");\r\n this.updateNativeElement(this.insuredAddress_building, \"\");\r\n this.updateNativeElement(this.insuredAddress1, \"\");\r\n this.updateNativeElement(this.insuredAddress2, \"\");\r\n this.updateNativeElement(this.insuredCity, \"\");\r\n this.updateNativeElement(this.insuredPostalCode, \"\");\r\n this.updateNativeElement(this.insuredState, \"\");\r\n //this.clientInformation_autocomplete.nativeElement.value = \"\";//todo\r\n }\r\n updateNativeElement(ele: any, value: string) {\r\n if (ele !== undefined) {\r\n ele.nativeElement.value = value;\r\n }\r\n }\r\n\r\n customerTypeCheck = () => {\r\n return this.clientData.clientType !== undefined ? true : false;\r\n };\r\n\r\n protected createClient = () => {};\r\n\r\n ClientSave(clientData: any) {\r\n //const deferred = this.$q.defer();\r\n this.clientService.create(clientData).subscribe(\r\n (result: any) => {\r\n let response = result?.body;\r\n let responseClientData: ClientEntity;\r\n // success\r\n if (response[\"IsSuccess\"]) {\r\n responseClientData = response[\"ClientData\"];\r\n\r\n if (this.isCreate) {\r\n this.notifier.info(\r\n \"New client is created.\",\r\n this.baseNotifierAppendTo\r\n );\r\n const outputData = {\r\n status: \"success\",\r\n clientId: responseClientData[\"clientId\"],\r\n clientAddressID:\r\n responseClientData[\"address\"][0][\"clientAddressID\"],\r\n clientCode: responseClientData[\"clientCode\"],\r\n };\r\n let savParamters: clientCreateDlgModelArgs = {\r\n status: \"yes\",\r\n data: outputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n } else {\r\n this.notifier.info(\r\n \"Client details is updated.\",\r\n this.baseNotifierAppendTo\r\n );\r\n const outputData = {\r\n status: \"success\",\r\n //clientId: responseClientData[\"clientId\"],\r\n clientAddressID:\r\n responseClientData[\"address\"][0][\"clientAddressID\"],\r\n clientData: clientData.clientModel,\r\n clientAddressData: clientData.clientModel[\"address\"][0],\r\n clientCode: responseClientData[\"clientCode\"],\r\n };\r\n let savParamters: clientCreateDlgModelArgs = {\r\n status: \"yes\",\r\n data: outputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n this.isProcessing = false;\r\n } else {\r\n // failed\r\n this.showClientValidationMessage(response[\"ClientErrorType\"]);\r\n this.showErrorMessage = true;\r\n this.isProcessing = false;\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: {\r\n status: \"failed\",\r\n },\r\n });\r\n }\r\n\r\n //deferred.resolve(response);\r\n },\r\n (rejection) => {\r\n this.isProcessing = false;\r\n this.notifier.info(\"Failed to save.\", this.baseNotifierAppendTo);\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n //deferred.reject(rejection);\r\n }\r\n );\r\n }\r\n\r\n formatDate = (date: any) => {\r\n const dateSplit = date.split(\"/\");\r\n\r\n const newDate = dateSplit[1] + \"/\" + dateSplit[0] + \"/\" + dateSplit[2];\r\n\r\n return newDate.replace(/-/g, \"/\").replace(/T.+/, \"\");\r\n };\r\n\r\n showClientValidationMessage = (errorType: number) => {\r\n //todo\r\n this.errorMsgInHtml = \"\";\r\n // angular.element(\"#createNewClient\").removeClass(\"has-error\");\r\n\r\n switch (errorType) {\r\n case EnumSG.ClientErrorType.NRICError:\r\n this.errorMsgInHtml =\r\n '
NRIC is already exists.
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.PassportNumberError:\r\n this.errorMsgInHtml =\r\n '
Passport Number is already exists.
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.BusinessRegistrationNumberError:\r\n this.errorMsgInHtml =\r\n '
Business Registration Number is already exists.
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.MandatoryError:\r\n this.errorMsgInHtml =\r\n '
Please enter all Mandatory fields.
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.EmailAddressError:\r\n this.errorMsgInHtml =\r\n '
Please enter a valid email address
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.PhoneNumberError:\r\n this.errorMsgInHtml =\r\n '
Phone Number is invalid.
';\r\n\r\n break;\r\n case EnumSG.ClientErrorType.NameAndNricError:\r\n this.errorMsgInHtml =\r\n '
Client is already exists with same given name ,surname,nric and date of birth.
';\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.componentsInitialize();\r\n };\r\n\r\n protected openAddressHelp(event: { preventDefault: () => void }): void {\r\n event.preventDefault();\r\n const data = {\r\n // 'proposalModel': this.proposal.proposalModel,\r\n showGeoCode: false, // determine to hide/show geocode\r\n };\r\n\r\n const clientCreateDialogRef = this.cdkDialogService.open(\r\n AddressHelpFormComponent,\r\n {\r\n data: data,\r\n }\r\n );\r\n\r\n clientCreateDialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n }\r\n });\r\n }\r\n keyDown = function (evt: any) {\r\n /* to disbale the input for date input*/\r\n evt.preventDefault();\r\n };\r\n\r\n formatDateToString = (date: any) => {\r\n // const dateSplit = date.split('-');\r\n // const newDate = dateSplit[1] + '-' + dateSplit[0] + '-' + dateSplit[2];\r\n const newDate = date;\r\n // 01, 02, 03, ... 29, 30, 31\r\n const dd =\r\n (new Date(newDate).getDate() < 10 ? \"0\" : \"\") +\r\n new Date(newDate).getDate();\r\n // 01, 02, 03, ... 10, 11, 12\r\n const MM =\r\n (new Date(newDate).getMonth() + 1 < 10 ? \"0\" : \"\") +\r\n (new Date(newDate).getMonth() + 1);\r\n // 1970, 1971, ... 2015, 2016, ...\r\n const yyyy = new Date(newDate).getFullYear();\r\n\r\n // create the format you want\r\n return MM + \"/\" + dd + \"/\" + yyyy;\r\n };\r\n isEmpty(lblValue: string): boolean {\r\n return this.emptyFieldValidation.includes(lblValue);\r\n }\r\n}\r\n","

base-client-create works!

\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { BaseClientCreateComponent } from \"./base/base-client-create/base-client-create.component\";\r\nimport { DialogRef } from \"src/app/components/shared/partials/dialog/dialog-ref\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\nimport { MfSgProposalService } from \"src/app/services/new-product/sme/mortgage-fire/singapore/mf-sg-proposal.service\";\r\nimport { NotifierService } from \"src/app/services/notifier.service\";\r\nimport { DIALOG_DATA } from \"../../dialog/dialog-tokens\";\r\nimport { clientCreateDlgInputArgs } from \"./base/base-client-create/client-create-dlg-input-args\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ClientAddressEntity } from \"src/app/models/customer/base/client-address-entity.model\";\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\n\r\n@Component({\r\n selector: \"app-client-create\",\r\n templateUrl: \"./client-create.component.html\",\r\n styleUrls: [\"./client-create.component.scss\"],\r\n})\r\nexport class ClientCreateComponent extends BaseClientCreateComponent {\r\n constructor(\r\n public override clientService: ClientService,\r\n public override masterDataService: MasterDataService,\r\n public override cdkDialogService: CdkDialogService,\r\n @Inject(DIALOG_DATA) public override inputData: clientCreateDlgInputArgs,\r\n public override dialogRef: DialogRef,\r\n public override notifier: NotifierService,\r\n public override productService: ProductService,\r\n public proposalService: MfSgProposalService\r\n ) {\r\n super(\r\n clientService,\r\n masterDataService,\r\n cdkDialogService,\r\n inputData,\r\n dialogRef,\r\n notifier,\r\n productService\r\n );\r\n\r\n if (this.inputData) {\r\n this.proposal = this.inputData.proposal as MortgageFireSingaporeProposal; //temp pass from outside\r\n this.isCreate = this.inputData.isNewClient;\r\n this.labelText = \"Create\";\r\n this.h3LabelText = \"Client - Create\";\r\n if (!this.isCreate) {\r\n this.labelText = \"Update\";\r\n this.isCreate = false;\r\n this.h3LabelText = \"Change of Client Info\";\r\n }\r\n }\r\n }\r\n\r\n override ngOnInit(): void {\r\n if (!this.isCreate) {\r\n this.clientService\r\n .get(\r\n this.proposalService.proposal.customerMappingId!,\r\n this.proposalService!.proposal.qsMaster.qs_master_insuredNo!.answer\r\n )\r\n .subscribe((response: ClientEntity) => {\r\n this.clientData = response;\r\n this.setDate(this.clientData.birthDate);\r\n // check for docType, assign to empty if is 0\r\n if (common.isDefined(this.clientData.docType)) {\r\n this.clientData.docType =\r\n parseInt(this.clientData.docType) === 0\r\n ? \"\"\r\n : this.clientData.docType.toString();\r\n }\r\n\r\n this.proposalService.proposal.customerMappingAddressID = Number(\r\n response.address[0].clientAddressID\r\n );\r\n this.address = response.address[0];\r\n this.setClientType(this.clientData.clientType);\r\n\r\n this.getIsStateVisible(this.address.countryISO2);\r\n });\r\n\r\n // this.updateClientCIN();\r\n }\r\n this.dialogOkNotifierSubscription =\r\n dialogActionNotifier.ok_notifier$.subscribe((event) => {\r\n this.createClient();\r\n });\r\n\r\n this.initialize();\r\n // this.checkIsNewClient();\r\n }\r\n\r\n override initialize() {\r\n this.postBackData = [];\r\n this.proposal = this.proposalService.proposal;\r\n this.nationalityList = new Array();\r\n this.countryList = new Array();\r\n super.subscribeTabLoadRenderer();\r\n super.subscribeTabLoadRenderer();\r\n if (this.isCreate) this.initializeQuestionSchema();\r\n // $(document).ready(() => {\r\n this.componentsInitialize();\r\n // });\r\n\r\n this.productFactory = this.productService.getProductFactory(\r\n (this.proposal as MortgageFireSingaporeProposal).productType\r\n );\r\n this.googlePlacesOptions = this.productFactory\r\n .googlePlaces()\r\n .getGooglePlacesOptions(); //init by country here\r\n }\r\n\r\n override setCinText() {\r\n this.CINText =\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTHDB ||\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? \"Citibank CIN\"\r\n : \"DBS CIN\";\r\n }\r\n\r\n override createClient = () => {\r\n this.showErrorMessage = false;\r\n\r\n //const deferred = this.$q.defer();\r\n\r\n if (this.customerTypeCheck()) {\r\n let personalMandatory: any[];\r\n let orgMandatory: any[];\r\n let contactMandatory: any[];\r\n let allMandatoryField: any[];\r\n\r\n personalMandatory = [\r\n {\r\n id: \"clientSalutation\",\r\n label: \"Salutation\",\r\n qid: this.clientData.salutation,\r\n },\r\n {\r\n id: \"clientDocType\",\r\n label: \"Document Type\",\r\n qid: this.clientData.docType === \"0\" ? \"\" : this.clientData.docType,\r\n },\r\n {\r\n id: \"clientSurname\",\r\n label: \"Surname\",\r\n qid: this.clientData.lastName,\r\n },\r\n {\r\n id: \"clientGivenName\",\r\n label: \"Given Name\",\r\n qid: this.clientData.firstName,\r\n },\r\n {\r\n id: \"clientDOB\",\r\n label: \"Date of Birth\",\r\n qid: this.clientData.birthDate,\r\n },\r\n {\r\n id: \"clientNationality\",\r\n label: \"Nationality\",\r\n qid: this.clientData.nationality,\r\n },\r\n ];\r\n\r\n if (\r\n this.clientData.docType === \"1\" ||\r\n this.clientData.docType === \"2\" ||\r\n this.clientData.docType === \"3\"\r\n ) {\r\n personalMandatory.push({\r\n id: \"clientNRICNo\",\r\n label: \"NRIC\",\r\n qid: this.clientData.nric,\r\n });\r\n } else if (this.clientData.docType === \"4\") {\r\n personalMandatory.push({\r\n id: \"clientPassportNo\",\r\n label: \"Passport Number\",\r\n qid: this.clientData.passportNo,\r\n });\r\n }\r\n\r\n contactMandatory = [\r\n {\r\n id: \"insuredAddress1\",\r\n label: \"Address Line 1\",\r\n qid: this.address.addressLine1,\r\n },\r\n {\r\n id: \"insuredAddress2\",\r\n label: \"Address Line 2\",\r\n qid: this.address.addressLine2,\r\n },\r\n {\r\n id: \"insuredPostalCode\",\r\n label: \"PostCode\",\r\n qid: this.address.postCode,\r\n },\r\n { id: \"insuredCity\", label: \"City/Suburb\", qid: this.address.city },\r\n {\r\n id: \"insuredCountry\",\r\n label: \"Country\",\r\n qid: this.address.countryISO2,\r\n },\r\n ];\r\n\r\n orgMandatory = [\r\n {\r\n id: \"clientBRNo\",\r\n label: \"Business Registration Number\",\r\n qid: this.clientData.businessRegistrationNumber,\r\n },\r\n {\r\n id: \"clientName\",\r\n label: \"Business Name\",\r\n qid: this.clientData.clientName,\r\n },\r\n ];\r\n if (!this.ibgDisabled) {\r\n orgMandatory.push({\r\n id: \"clientIncorporatedDate\",\r\n label: \"Incorporated Date\",\r\n qid: this.clientData.incorporatedDate,\r\n });\r\n }\r\n\r\n if (\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTHDB ||\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n (this.proposal as MortgageFireSingaporeProposal).productType ===\r\n EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ) {\r\n contactMandatory = [\r\n {\r\n id: \"insuredAddress1\",\r\n label: \"Address Line 1\",\r\n qid: this.address.addressLine1,\r\n },\r\n {\r\n id: \"insuredCountry\",\r\n label: \"Country\",\r\n qid: this.address.countryISO2,\r\n },\r\n ];\r\n } else {\r\n contactMandatory = [\r\n {\r\n id: \"insuredAddress1\",\r\n label: \"Address Line 1\",\r\n qid: this.address.addressLine1,\r\n },\r\n {\r\n id: \"insuredCountry\",\r\n label: \"Country\",\r\n qid: this.address.countryISO2,\r\n },\r\n {\r\n id: \"brokerMobileNo\",\r\n label: \"Mobile Number\",\r\n qid: this.clientData.mobileNumber,\r\n },\r\n ];\r\n }\r\n\r\n if (this.clientData.clientType === EnumSG.ClientType.Person) {\r\n allMandatoryField = personalMandatory.concat(contactMandatory);\r\n } else {\r\n allMandatoryField = orgMandatory.concat(contactMandatory);\r\n }\r\n\r\n this.postBackData = [Array];\r\n let errorMessageIndicator: number = 0;\r\n const htmlErrorMessage: string =\r\n '
' +\r\n \" @i.label@ is required.
\";\r\n\r\n const clientAddressData: ClientAddressEntity = new ClientAddressEntity();\r\n\r\n clientAddressData.clientAddressID = this.isCreate\r\n ? \"\"\r\n : String(this.proposalService.proposal.customerMappingAddressID);\r\n clientAddressData.clientID = this.isCreate\r\n ? \"\"\r\n : String(this.proposalService.proposal.customerMappingId);\r\n clientAddressData.buildingName = this.address.buildingName;\r\n clientAddressData.unitNo = this.address.unitNo;\r\n clientAddressData.addressLine1 = this.address.addressLine1;\r\n\r\n clientAddressData.addressLine2 = this.address.addressLine2;\r\n clientAddressData.city = this.address.city;\r\n clientAddressData.postCode = this.address.postCode;\r\n clientAddressData.stateName = this.address.stateName;\r\n\r\n clientAddressData.countryISO2 = this.address.countryISO2;\r\n clientAddressData.contact1 = \"\";\r\n clientAddressData.contact2 = \"\";\r\n\r\n const clientData: ClientEntity = new ClientEntity();\r\n clientData.address = [];\r\n\r\n clientData.clientId = this.isCreate\r\n ? 0\r\n : this.proposalService.proposal.customerMappingId!;\r\n clientData.clientCode = this.isCreate ? \"0\" : this.clientData.clientCode;\r\n clientData.clientType = this.clientData.clientType;\r\n clientData.nric = this.clientData.nric;\r\n clientData.passportNo = this.clientData.passportNo;\r\n\r\n clientData.businessRegistrationNumber =\r\n this.clientData.businessRegistrationNumber;\r\n clientData.incorporatedDate = this.clientData.incorporatedDate;\r\n // clientData.businessName = this.clientData.businessName;\r\n clientData.personInCharge = this.clientData.personInCharge;\r\n clientData.firstName = this.clientData.firstName;\r\n clientData.lastName = this.clientData.lastName;\r\n clientData.clientName = this.clientData.clientName;\r\n clientData.salutation = this.clientData.salutation;\r\n clientData.docType = this.clientData.docType;\r\n\r\n clientData.gender = this.clientData.gender;\r\n clientData.birthDate = this.clientData.birthDate;\r\n if (this.clientData.clientType === EnumSG.ClientType.Person) {\r\n if (\r\n common.isDefined(this.clientData.birthDate) &&\r\n this.clientData.birthDate !== \"\"\r\n ) {\r\n const answer = new Date(this.clientData.birthDate);\r\n const year = answer.getFullYear();\r\n const month = answer.getMonth() + 1;\r\n const day = answer.getDate();\r\n clientData.birthDate = `${year}-${month}-${day} 12:00:00 AM`;\r\n }\r\n }\r\n\r\n clientData.occupation = this.clientData.occupation;\r\n clientData.race = this.clientData.race;\r\n clientData.maritalStatus = this.clientData.maritalStatus;\r\n\r\n clientData.phoneNoHome = this.clientData.phoneNoHome;\r\n clientData.phoneNoOffice = this.clientData.phoneNoOffice;\r\n clientData.mobileNumber = this.clientData.mobileNumber;\r\n clientData.pagerNo = this.clientData.pagerNo;\r\n clientData.faxNumber = this.clientData.faxNumber;\r\n clientData.cinNo = this.clientData.cinNo;\r\n clientData.emailAddress = this.clientData.emailAddress;\r\n clientData.nationality =\r\n this.clientData.clientType === EnumSG.ClientType.Person\r\n ? this.clientData.nationality\r\n : \"\";\r\n clientData.address.push(clientAddressData);\r\n clientData.productBase = this.productService.getProductBase(\r\n (this.proposal as MortgageFireSingaporeProposal).productType\r\n );\r\n\r\n this.showErrorMessage = true;\r\n if (allMandatoryField.length > 0) {\r\n this.errorMsgInHtml = \"\";\r\n this.emptyFieldValidation = \"\";\r\n\r\n for (const i of allMandatoryField) {\r\n if (common.isUndefinedOrNull(i.qid) || i.qid.length === 0) {\r\n this.errorMsgInHtml += htmlErrorMessage.replace(\r\n \"@i.label@\",\r\n i.label\r\n );\r\n this.emptyFieldValidation += \" \" + i.label;\r\n errorMessageIndicator++;\r\n } else {\r\n this.emptyFieldValidation.replace(i.label, \"\");\r\n }\r\n }\r\n }\r\n if (errorMessageIndicator === 0) {\r\n this.showErrorMessage = false;\r\n this.isProcessing = true;\r\n\r\n let clientActionData: any;\r\n\r\n if (\r\n this.proposalService.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfClientInfo &&\r\n this.proposalService.proposal.transType === Enums.TransType.END &&\r\n !this.isCreate\r\n ) {\r\n clientActionData = {\r\n clientModel: clientData,\r\n action: \"validate\",\r\n };\r\n } else {\r\n clientActionData = {\r\n clientModel: clientData,\r\n action: \"save\",\r\n };\r\n }\r\n\r\n this.ClientSave(clientActionData);\r\n } else {\r\n //angular.element(\".modal-body\").animate({ scrollTop: 0 }, 200);\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n } else {\r\n this.showErrorMessage = true;\r\n this.errorMsgInHtml = \"\";\r\n this.errorMsgInHtml;\r\n '
Please select the client type to proceed.
';\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-save-close\",\r\n value: { status: \"failed\" },\r\n });\r\n }\r\n //return deferred.promise;\r\n };\r\n}\r\n","\r\n
\r\n
\r\n
\r\n Please Wait \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n Please complete the following :\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Personal Information

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n (Enter either NRIC or Passport Number)\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

Organization Information

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Contact Information

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Help\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Reset\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { ApiService } from \"src/app/services/dal/api.service\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\nimport { ClientService } from \"src/app/services/customer/client.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { MortgageFireSGTabSchema } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/schemas/mf-sg-tab-schema\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { Global } from \"src/app/shared/global\";\r\nimport { httpNotifier } from \"src/app/interceptor/http-notifier\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../../dialog/dialog-tokens\";\r\nimport { clientViewDlgModelArgs } from \"../client-view/client-view.component\";\r\nimport {\r\n CellClickEvent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { BaseSubscriptionComponent } from \"src/app/components/new-product/base/base-subscription/base-subscription.component\";\r\n\r\n@Component({\r\n selector: \"app-client-search\",\r\n templateUrl: \"./client-search.component.html\",\r\n styleUrls: [\"./client-search.component.scss\"],\r\n})\r\nexport class ClientSearchComponent\r\n extends BaseSubscriptionComponent\r\n implements OnInit\r\n{\r\n isEditable = false;\r\n isDisabled = false;\r\n\r\n proposal!: MortgageFireSingaporeProposal;\r\n\r\n currentUserType!: Enum.UserType;\r\n isUnderwriter!: boolean;\r\n isMarketer!: boolean;\r\n isChecker: boolean = false;\r\n isMaker: boolean = false;\r\n\r\n showErrorMessage!: boolean;\r\n clientId: any;\r\n clientName: string = \"\";\r\n custIdentificationNo: string = \"\";\r\n clientAddress: string = \"\";\r\n clientCode: string = \"\";\r\n clientNric: string = \"\";\r\n clientPassport: string = \"\";\r\n clientMobileNumber: string = \"\";\r\n clientEmailAddress: string = \"\";\r\n searchData!: any[];\r\n countryList!: any[];\r\n\r\n public gridView!: GridDataResult;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public take = 10;\r\n public pageSizes: (PageSizeItem | number)[] = [10, 50, 100];\r\n private listing: any[] = [];\r\n private totalListing: number = 0;\r\n submitted = false;\r\n\r\n public selectedRowIndexes: number[] = [];\r\n public loading!: boolean;\r\n\r\n outputData!: any;\r\n public gridHeight = 100;\r\n\r\n constructor(\r\n //private proposalService: MortgageFireSingaporeProposal,\r\n private api: ApiService,\r\n private clientService: ClientService,\r\n private masterDataService: MasterDataService,\r\n public identityRolesService: IdentityRolesService,\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: clientSearchDlgInputArgs\r\n ) {\r\n super();\r\n // this.$state = Application.angular_$state();\r\n // this.timeOut = Application.angular_$timeout();\r\n this.tabId = MortgageFireSGTabSchema.premiumSummary.index.toString();\r\n\r\n if (this.inputData) {\r\n this.proposal = this.inputData.proposal; //temp pass from outside\r\n this.isEditable = this.inputData.isEditable;\r\n }\r\n }\r\n\r\n //#region old ui code\r\n ngOnInit(): void {\r\n // /*check is underwriter*/\r\n //this.currentUserType = this.identityRolesService.getIdentity().currentUser().userType;\r\n\r\n /*check is underwriter*/\r\n this.isUnderwriter = this.identityRolesService.isUnderwriter;\r\n /*check is marketer*/\r\n this.isMarketer = this.identityRolesService.isMarketer;\r\n /*check is checker*/\r\n this.isChecker = this.identityRolesService.isChecker;\r\n /*check is maker*/\r\n this.isMaker = this.identityRolesService.isMaker;\r\n\r\n this.initialize();\r\n\r\n //todo\r\n // $(document).ready(() => {\r\n // // Trigger search on 'Enter' key pressed\r\n // $('#clientName_textBox, #custIdentificationNo_textBox, #clientAddress_textBox, #clientCode_textBox, #nric_textBox, #passport_textBox,#clientMobile_textBox,#clientEmail_textBox').keypress((event) => {\r\n\r\n // // 'Enter'\r\n // if (event.keyCode === 13) {\r\n // this.search(event);\r\n // }\r\n // });\r\n // });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAllRxjs();\r\n }\r\n\r\n search = (e: any) => {\r\n // TODO: validations\r\n if (\r\n (Global.isUndefined(this.clientName) || this.clientName === \"\") &&\r\n (Global.isUndefined(this.custIdentificationNo) ||\r\n this.custIdentificationNo === \"\") &&\r\n (Global.isUndefined(this.clientAddress) || this.clientAddress === \"\") &&\r\n (Global.isUndefined(this.clientCode) || this.clientCode === \"\") &&\r\n (Global.isUndefined(this.clientNric) || this.clientNric === \"\") &&\r\n (Global.isUndefined(this.clientPassport) || this.clientPassport === \"\") &&\r\n (Global.isUndefined(this.clientMobileNumber) ||\r\n this.clientMobileNumber === \"\") &&\r\n (Global.isUndefined(this.clientEmailAddress) ||\r\n this.clientEmailAddress === \"\")\r\n ) {\r\n this.showErrorMessage = true;\r\n httpNotifier.response_notifier$.next(new KeyValue(\"\", e));\r\n\r\n //reset grid\r\n this.listing = [];\r\n this.totalListing = 0;\r\n } else {\r\n this.showErrorMessage = false;\r\n // refresh grid\r\n this.masterDataService.getCountryList().subscribe((responseCountry) => {\r\n this.countryList = responseCountry;\r\n\r\n this.refresh();\r\n });\r\n }\r\n };\r\n\r\n private initialize() {\r\n //this.proposal = this.proposalService.proposal;//temp pass from outside\r\n super.subscribeTabLoadRenderer();\r\n }\r\n\r\n public getCurrentProductBase = (): EnumSG.ProductBase => {\r\n // this.proposal = this.proposalService.proposal;//temp pass from outside\r\n return this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO\r\n ? EnumSG.ProductBase.Citi\r\n : EnumSG.ProductBase.DBS;\r\n };\r\n\r\n //todo\r\n // private on_RequestStart(e: kendo.data.DataSourceRequestStartEvent) {\r\n // httpNotifier.request_notifier$.next(new KeyValue('', e));\r\n // }\r\n\r\n // private grid_dataBound = (e: kendo.ui.GridDataBoundEvent) => {\r\n\r\n // const dataItems = e.sender.dataSource.view();\r\n\r\n // // k-hierarchy-cell CSS stylings\r\n // const gridRowsToProcess = e.sender.tbody.find('tr');\r\n\r\n // for (let i = 0; i < dataItems.length; i++) {\r\n // const $gridRowsToProcess = $(gridRowsToProcess[i]);\r\n\r\n // this.proposal = this.proposalService.proposal;\r\n // const productType = (this.proposal.productType === EnumSG.MortgageFireSgProduct.CTHDB || this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFPTE\r\n // || this.proposal.productType === EnumSG.MortgageFireSgProduct.CTMFCONDO)\r\n // ? EnumSG.ProductBase.Citi : EnumSG.ProductBase.DBS;\r\n\r\n // if (((dataItems[i].get('productBase')).toUpperCase()) === productType.toUpperCase()) {\r\n // // hover cell - blue background & cursor pointer\r\n // $gridRowsToProcess.addClass('hoverPowderBlue cursorPointer');\r\n // } else {\r\n // // white background & cursor default\r\n // $gridRowsToProcess.addClass('ACElightgrey cursorDefault');\r\n // }\r\n // }\r\n // }\r\n\r\n private on_RequestEnd = (e: any) => {\r\n if (e !== undefined) {\r\n e.forEach(\r\n (c: {\r\n address: any[];\r\n addressDisplayText: string;\r\n clientType: any;\r\n badgeClass: string;\r\n clientTypeDisplayText: string;\r\n }) => {\r\n const clientAddress = c.address[0];\r\n\r\n // kendo grid schema model field: addressDisplayText\r\n if (clientAddress.countryISO2 === \"SG\") {\r\n c.addressDisplayText = this.getAddressDisplayText(clientAddress);\r\n } else {\r\n c.addressDisplayText =\r\n this.getNonSGAddressDisplayText(clientAddress);\r\n }\r\n\r\n let badgeClass = \"\";\r\n let clientTypeDisplayText = \"\";\r\n switch (c.clientType) {\r\n case 1:\r\n // Individual\r\n clientTypeDisplayText = \"Ind.\";\r\n badgeClass = \"primary\";\r\n break;\r\n case 2:\r\n // Organization\r\n clientTypeDisplayText = \"Org.\";\r\n badgeClass = \"success\";\r\n break;\r\n }\r\n\r\n c.badgeClass = badgeClass;\r\n c.clientTypeDisplayText = clientTypeDisplayText;\r\n }\r\n );\r\n }\r\n\r\n httpNotifier.response_notifier$.next(new KeyValue(\"\", e));\r\n };\r\n\r\n // private on_Change = (e: kendo.ui.GridChangeEvent) => {\r\n // // Selected row\r\n // this.clientService.clientDictionary = {};\r\n // const selectedRow = this.clientSearchGrid.select();\r\n // const dataItem: any = this.clientSearchGrid.dataItem(selectedRow);\r\n\r\n // if ((dataItem.productBase).toUpperCase() === this.getCurrentProductBase().toUpperCase()) {\r\n // // Parameters\r\n // this.clientId = dataItem.clientId;\r\n // this.clientCode = dataItem.clientCode;\r\n // this.PolicyConfirmationModalCloseForActions({ confirmation: true });\r\n // } else {\r\n // selectedRow.removeClass('k-state-selected');\r\n // selectedRow.addClass('ACElightgrey cursorDefault');\r\n // }\r\n // }\r\n\r\n // DBSEP-2063: It will check the confirmation from user and redirect to client edit or create page.\r\n\r\n PolicyConfirmationModalCloseForActions = (data: any): void => {\r\n if (data.confirmation) {\r\n // Return data to master component\r\n dialogActionNotifier.cancel_notifier$.next({\r\n key: \"client-search-close\",\r\n value: {\r\n status: \"success\",\r\n clientId: this.clientId,\r\n clientCode: this.clientCode,\r\n },\r\n });\r\n }\r\n };\r\n\r\n getDisplayTextIfUnknown = (inputId: string) => {\r\n let displayText: string = \"Unknown\";\r\n let array: any = [];\r\n if (inputId.length > 0) {\r\n if (common.isDefined(this.countryList)) {\r\n array = this.countryList;\r\n }\r\n\r\n if (array.length > 0) {\r\n const elementPos = array\r\n .map(function (x: { value: any }) {\r\n return x.value;\r\n })\r\n .indexOf(inputId);\r\n const objectFound = array[elementPos];\r\n displayText = objectFound.key;\r\n }\r\n }\r\n\r\n return displayText;\r\n };\r\n\r\n private getAddressDisplayText(addressEntity: any): string {\r\n let addressDisplayText = \"\";\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine1)) {\r\n addressDisplayText += addressEntity.addressLine1;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.addressLine2;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.unitNo)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.unitNo;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.buildingName)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.buildingName;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.city)) {\r\n if (addressEntity.countryISO2 !== \"SG\") {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.city;\r\n }\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.state)) {\r\n if (\r\n addressEntity.countryISO2 !== \"SG\" ||\r\n addressEntity.countryISO2 !== \"HK\"\r\n ) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.state;\r\n }\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.countryISO2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n\r\n addressDisplayText += this.getDisplayTextIfUnknown(\r\n addressEntity.countryISO2\r\n );\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.postCode)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.postCode;\r\n }\r\n return addressDisplayText;\r\n }\r\n private getNonSGAddressDisplayText(addressEntity: any): string {\r\n let addressDisplayText = \"\";\r\n if (!common.isStringNullOrEmpty(addressEntity.unitNo)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.unitNo;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.buildingName)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.buildingName;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine1)) {\r\n addressDisplayText += addressEntity.addressLine1;\r\n }\r\n\r\n if (!common.isStringNullOrEmpty(addressEntity.addressLine2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.addressLine2;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.postCode)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.postCode;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.city)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.city;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.state)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n addressDisplayText += addressEntity.state;\r\n }\r\n if (!common.isStringNullOrEmpty(addressEntity.countryISO2)) {\r\n if (!common.isStringNullOrEmpty(addressDisplayText)) {\r\n addressDisplayText += \" \";\r\n }\r\n\r\n addressDisplayText += this.getDisplayTextIfUnknown(\r\n addressEntity.countryISO2\r\n );\r\n }\r\n\r\n return addressDisplayText;\r\n }\r\n private getSearchFilters() {\r\n return [\r\n { field: \"clientName\", operator: \"eq\", value: this.clientName },\r\n {\r\n field: \"customerIdentificationNo\",\r\n operator: \"eq\",\r\n value: this.custIdentificationNo,\r\n },\r\n { field: \"address\", operator: \"eq\", value: this.clientAddress },\r\n { field: \"clientCode\", operator: \"eq\", value: this.clientCode },\r\n { field: \"nric\", operator: \"eq\", value: this.clientNric },\r\n { field: \"passportNo\", operator: \"eq\", value: this.clientPassport },\r\n { field: \"mobileNumber\", operator: \"eq\", value: this.clientMobileNumber },\r\n { field: \"emailAddress\", operator: \"eq\", value: this.clientEmailAddress },\r\n ];\r\n }\r\n\r\n unsubscribeAllRxjs() {\r\n super.unsubscribeRxjs();\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: this.outputData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n //#endregion\r\n\r\n //#region generic Grid event\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.take = event.take;\r\n this.pageSize = event.take; //this is the one that update the \r\n this.refresh();\r\n }\r\n\r\n private clearSelection() {\r\n // Optionally, clear the selection when paging\r\n this.selectedRowIndexes = [];\r\n }\r\n\r\n public gridSelectionChange(selection: SelectionEvent) {}\r\n\r\n public cellClickHandler({\r\n sender,\r\n rowIndex,\r\n columnIndex,\r\n dataItem,\r\n isEdited,\r\n }: CellClickEvent): void {\r\n const di = dataItem;\r\n //const proposalId = dataItem.proposalId;\r\n this.outputData = di;\r\n this.close(\"yes\");\r\n }\r\n\r\n private refresh(): void {\r\n this.clearSelection();\r\n this.loading = true;\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append(\"take\", this.take.toString());\r\n formData.append(\"skip\", this.skip.toString());\r\n formData.append(\"page\", \"1\");\r\n formData.append(\"pageSize\", this.pageSize.toString());\r\n formData.append(\"sort[0][field]\", \"clientName\");\r\n formData.append(\"sort[0][dir]\", \"asc\");\r\n\r\n let array = [\r\n [\"clientName\", \"eq\", this.clientName],\r\n [\"custIdentificationNo\", \"eq\", this.custIdentificationNo],\r\n [\"clientAddress\", \"eq\", this.clientAddress],\r\n [\"clientCode\", \"eq\", this.clientCode],\r\n [\"clientNric\", \"eq\", this.clientNric],\r\n [\"clientPassport\", \"eq\", this.clientPassport],\r\n [\"clientMobileNumber\", \"eq\", this.clientMobileNumber],\r\n [\"clientEmailAddress\", \"eq\", this.clientEmailAddress],\r\n ];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n for (let j = 0; j < array[i].length; j++) {\r\n if (j == 0) {\r\n formData.append(\r\n `filter[filters][${i}][field]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else if (j == 1) {\r\n formData.append(\r\n `filter[filters][${i}][operator]`,\r\n JSON.parse(JSON.stringify(array[i][j]))\r\n );\r\n } else {\r\n formData.append(\r\n `filter[filters][${i}][value]`,\r\n JSON.parse(JSON.stringify(array[i][j] || \"\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/35325370/how-do-i-post-a-x-www-form-urlencoded-request-using-fetch\r\n //IT HAS TO BE IN SINGLE CHUNK OF STRING\r\n var querystring: string = \"\";\r\n for (var pair of formData.entries()) {\r\n querystring +=\r\n encodeURIComponent(pair[0]) +\r\n \"=\" +\r\n encodeURIComponent(pair[1] as string) +\r\n \"&\";\r\n }\r\n\r\n this.clientService.search(querystring).subscribe((result: any) => {\r\n if (\r\n result != undefined &&\r\n result.body != undefined &&\r\n result.body != null\r\n ) {\r\n let e = result.body.d?.results;\r\n this.on_RequestEnd(e);\r\n this.listing = e;\r\n this.totalListing = result.body.d?.__count;\r\n this.loadItems();\r\n this.loading = false;\r\n\r\n if (this.totalListing > 0) {\r\n this.gridHeight = 400;\r\n } else {\r\n this.gridHeight = 100;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.listing, //.slice(this.skip, this.skip + this.pageSize),\r\n total: this.totalListing,\r\n };\r\n }\r\n //#endregion\r\n}\r\n\r\nexport interface clientSearchDlgInputArgs {\r\n isEditable: boolean;\r\n proposal: MortgageFireSingaporeProposal;\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Please enter any of the search criteria\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, Inject, Input, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"../../dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../../dialog/dialog-tokens\";\r\nimport { dialogActionNotifier } from \"src/app/models/new-product/notifier/dialog-action-notifier\";\r\n\r\n@Component({\r\n selector: \"app-client-view\",\r\n templateUrl: \"./client-view.component.html\",\r\n styleUrls: [\"./client-view.component.scss\"],\r\n})\r\nexport class ClientViewComponent implements OnInit {\r\n isProcessing = false;\r\n //model = {};\r\n showCreateButton = true;\r\n key = \"\";\r\n isEditable = this.inputData!.isEditable;\r\n isNewClient = false;\r\n isDisabled = this.inputData!.isDisabled;\r\n public dlgWidth: number = 850;\r\n\r\n clientViewData: any;\r\n isSgProduct: boolean = false;\r\n isHkProduct: boolean = false;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: clientViewDlgInputArgs\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.inputData) {\r\n this.isEditable = this.inputData.isEditable;\r\n //this.confirmation = this.inputData.confirmation;\r\n this.isDisabled = this.inputData.isDisabled;\r\n\r\n dialogActionNotifier.ok_notifier$.subscribe((event) => {\r\n this.showCreateButton = event.value === \"failed\" ? true : false;\r\n\r\n if (event.value[\"status\"] !== \"failed\") {\r\n this.clientViewData.clientId = event.value[\"clientId\"];\r\n this.clientViewData.clientAddressId = event.value[\"clientAddressID\"];\r\n this.clientViewData.clientCode = event.value[\"clientCode\"];\r\n this.close(\"yes\");\r\n } else {\r\n this.showCreateButton = true;\r\n }\r\n });\r\n\r\n this.setCountry(this.inputData.clientCode);\r\n }\r\n }\r\n\r\n private setCountry(clientCode: string) {\r\n let country = clientCode?.substring(0, 1);\r\n switch (country) {\r\n case \"H\":\r\n this.isSgProduct = false;\r\n this.isHkProduct = true;\r\n break;\r\n case \"A\":\r\n default:\r\n this.isSgProduct = true;\r\n this.isHkProduct = false;\r\n break;\r\n }\r\n }\r\n\r\n public close(status: any) {\r\n let savParamters: clientViewDlgModelArgs = {\r\n status: status,\r\n data: this.clientViewData,\r\n };\r\n this.dialogRef?.close(savParamters);\r\n }\r\n\r\n update() {\r\n dialogActionNotifier.ok_notifier$.next({\r\n key: \"client-edit-save\",\r\n value: {\r\n isNewClient: this.isNewClient,\r\n },\r\n });\r\n this.inputData.confirmation = true;\r\n // $modalInstance.dismiss(this.data);//perform outside already: (click)=\"update(); close('yes')\"\r\n }\r\n}\r\n\r\nexport interface clientViewDlgInputArgs {\r\n dialogWidth: number;\r\n isEditable: boolean;\r\n confirmation: any;\r\n isDisabled: boolean;\r\n clientCode: string;\r\n}\r\n\r\nexport interface clientViewDlgModelArgs {\r\n status: string;\r\n data: any; //ProposalEntity[]\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"../../partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../../partials/dialog/dialog-tokens\";\r\nimport { v1DlgInputArgs } from \"../../partials/md-confirmation-message-v1/md-confirmation-message-v1.component\";\r\n\r\n@Component({\r\n selector: \"address-help-form\",\r\n templateUrl: \"./address-help-form.component.html\",\r\n styleUrls: [\"./address-help-form.component.scss\"],\r\n})\r\nexport class AddressHelpFormComponent implements OnInit {\r\n showGeoCode = true;\r\n\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any\r\n ) {\r\n if (this.inputData) {\r\n this.showGeoCode = this.inputData.showGeoCode;\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public close(status: any) {\r\n this.dialogRef?.close(null);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Street Address Search

\r\n
    \r\n
  • \r\n This address search capability is powered by Google. It is\r\n restricted to addresses in Australia only and as cataloged\r\n by Google.\r\n
  • \r\n
  • Please only input street address.
  • \r\n
  • Do not input building name, suite/lot/unit number
  • \r\n
  • Example
  • \r\n
  • \r\n
      \r\n
    • \r\n 38 O’Connell Street\r\n \r\n \r\n
    • \r\n
    • \r\n Queen Victoria Building 455 George Street\r\n \r\n \r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n

Suite/Lot/Unit Number, Building Name

\r\n
    \r\n
  • \r\n Please input the suite/lot/unit number and building name\r\n in the respective named field.\r\n
  • \r\n
\r\n
\r\n

\r\n Street Number, Street Name, Postcode, Suburb, State, Country\r\n

\r\n

\r\n Address No 1, Address No 2, Postcode, City, State, Country\r\n

\r\n
    \r\n
  • \r\n These fields are automatically populated after you have\r\n selected an address from the Street Address Search.\r\n
  • \r\n
  • \r\n In the unlikely event that the address search did not\r\n return any value, the field will become editable and you\r\n can manually input the correct value.\r\n
  • \r\n
\r\n
\r\n
\r\n

Geocode

\r\n
    \r\n
  • \r\n This is automatically populated after you have selected\r\n an address from the Street Address Search.\r\n
  • \r\n
  • \r\n If the address provided does not have a valid geocode,\r\n the submission will be referred.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { DialogRef } from \"../../partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"../../partials/dialog/dialog-tokens\";\r\n\r\n@Component({\r\n selector: \"mf-contact-us-form\",\r\n templateUrl: \"./mf-contact-us-form.component.html\",\r\n styleUrls: [\"./mf-contact-us-form.component.scss\"],\r\n})\r\nexport class MfContactUsFormComponent implements OnInit {\r\n constructor(\r\n private dialogRef: DialogRef,\r\n @Inject(DIALOG_DATA) public inputData: any\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n bizPackEmailLink = function (event: { preventDefault: () => void }) {\r\n event.preventDefault();\r\n var email = \"CustomerService.SG@chubb.com\";\r\n var mailto_link = \"mailto:\" + email;\r\n var windowPopup1 = window.open(mailto_link.substr(0, 2000), \"emailWindow\");\r\n\r\n // setTimeout(function () {\r\n // if (angular.isDefined(windowPopup1) && windowPopup1 != null) {\r\n // windowPopup1.close();\r\n // }\r\n // }, 500);\r\n };\r\n\r\n public close(status: any) {\r\n this.dialogRef?.close(null);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Chubb\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export const openItemDisplayStatus: { [key: number]: string } = {\r\n 1: \"Pending Auto Debit\",\r\n 2: \"Pending Invoice To Bank\",\r\n 3: \"Pending To Invoice To Individual\",\r\n 4: \"Pending Refund To Bank\",\r\n 5: \"Auto Debited\",\r\n 6: \"Manual Paid\",\r\n 7: \"Invoiced To Bank\",\r\n 8: \"Invoiced To Individual\",\r\n 9: \"Refunded\",\r\n 10: \"Reconciled\",\r\n 11: \"Pending Manual Pay By Cheque\",\r\n 12: \"Manual Paid Non Auto Debit File Sent\",\r\n 13: \"Pending Refund To Individual\",\r\n 14: \"Unpaid Cheque To Bank\",\r\n 15: \"Unpaid Cheque To Individual\",\r\n 16: \"No Refund\",\r\n 17: \"Refunded Cheque\",\r\n 18: \"Meridian Auto Offset\",\r\n 19: \"Cheque Payment Auto Updated\",\r\n 20: \"Free Insurance Auto Updated\",\r\n 21: \"Pending Refund To Individual In Review\",\r\n 22: \"Pending Refund To Bank In Review\",\r\n 23: \"Pending Payment\", //new for hase\r\n 24: \"Sent for Collection\", //new for hase\r\n //25: \"Manually Paid\", //6\r\n //26: \"Reconciled\", //10\r\n 25: \"Pending Refund\", //new for hase\r\n //28: \"Refunded\", //9\r\n};\r\n","export enum OpenItemStatus {\r\n Undefined = 0,\r\n PendingAutoDebit = 1,\r\n PendingInvoiceToBank = 2,\r\n PendingToInvoiceToIndividual = 3,\r\n PendingRefundToBank = 4,\r\n AutoDebited = 5,\r\n ManualPaid = 6, //shared with hase\r\n InvoicedToBank = 7,\r\n InvoicedToIndividual = 8,\r\n Refunded = 9, //shared with hase\r\n Reconciled = 10, //shared with hase\r\n PendingManualPayByCheque = 11,\r\n ManualPaidNonAutoDebitFileSent = 12,\r\n PendingRefundToIndividual = 13,\r\n UnpaidChequeToBank = 14,\r\n UnpaidChequeToIndividual = 15,\r\n NoRefund = 16,\r\n RefundedCheque = 17,\r\n MeridianAutoOffset = 18,\r\n ChequeAutoUpdated = 19,\r\n FreeInsuranceAutoUpdated = 20,\r\n PendingRefundToIndividualInReview = 21,\r\n PendingRefundToBankInReview = 22,\r\n PendingPayment = 23, //new for hase\r\n SentForCollection = 24, //new for hase\r\n PendingRefund = 25, //new for hase\r\n}\r\n","export enum multiOptions {\r\n \"AGENCY_PROFILE_BRANCH\" = 0,\r\n \"AGENCY_PROFILE_MARKETER\" = 1,\r\n \"MARITAL_STATUS\" = 2,\r\n \"STATE\" = 3,\r\n \"LIFE_INSURANCE_LIST\" = 4,\r\n \"AGENCY_ORG_STRUCTURE\" = 5,\r\n \"EDUCATION\" = 6,\r\n \"AGENCY_PROFILE_NO_OF_CHILDREN\" = 7,\r\n \"AGENCY_TIME_IN_BUSINESS\" = 8,\r\n \"AGENCY_PROFILE_NO_OF_EMPLOYEE\" = 9,\r\n \"PERSONAL_PROFILE_STATE\" = 10,\r\n \"COUNTRY\" = 11,\r\n \"CLUB_CATEGORIES\" = 12,\r\n \"USER_TYPE\" = 13,\r\n \"PERSON_NO_OF_CHILDREN\" = 14,\r\n \"NATIONALITY\" = 15,\r\n \"GENDER\" = 16,\r\n \"MARKETER_TEAM\" = 17,\r\n \"PRODUCTS_ALL_LIST\" = 18,\r\n \"PRODUCTS_ALL_WITHOUT_DEFER\" = 19,\r\n \"PRODUCTS_ALL_CURRENT_USER\" = 20,\r\n \"PRODUCER_CODE\" = 23,\r\n \"ORGANISATION_LIST_BY_USER\" = 24,\r\n \"INSURER_INSURANCECOMPANY\" = 25,\r\n \"TYPE\" = 26,\r\n \"PDFPATHS\" = 27,\r\n \"SKINS\" = 28,\r\n \"SALUTATIONS\" = 29,\r\n \"ORGANISATIONGROUPS\" = 30,\r\n \"PAYMENTPATTERN\" = 31,\r\n \"SYSTEM_TYPE\" = 32,\r\n \"Agency_Code\" = 33,\r\n \"SALES_VIEW\" = 34,\r\n \"REGION\" = 35,\r\n \"AGENCY_TYPE\" = 36,\r\n \"PRODUCTS_BY_USER\" = 37,\r\n \"PROPOSAL_STATUSES_ALL_LIST\" = 38,\r\n \"PROPOSAL_MODIFIER\" = 39,\r\n \"PRODUCTS_ALL_CURRENT_USER_WITHOUT_DEFER\" = 40,\r\n \"PENETRATIONCHARTTYPE\" = 41,\r\n \"PENETRATION_CHART_TYPE_HIGH_LOW\" = 42,\r\n \"ORGANISATION_BY_BRANCH\" = 43,\r\n \"COUNTRIES\" = 44, //TODO - to be removed once the country service is ready\r\n \"GWPPeriod1GWPType\" = 45,\r\n \"GWPPeriod2GWPType\" = 46,\r\n \"REGION_CAMPAIGN\" = 47,\r\n \"BRANCH_CAMPAIGN\" = 48,\r\n \"PRODUCER_TYPE_CAMPAIGN\" = 49,\r\n \"PRODUCT_TYPE_CAMPAIGN\" = 50,\r\n \"CONTRACT_TYPE_CAMPAIGN\" = 51,\r\n \"GEM_CLUB_CAMPAIGN\" = 52,\r\n \"PRODUCT_TYPE_CAMPAIGN_SEARCH\" = 53,\r\n \"CONTRACT_TYPE_CAMPAIGN_SEARCH\" = 54,\r\n \"CONFIDENCE_LEVEL\" = 55,\r\n \"CAMPAIGN_TYPE\" = 56,\r\n \"REGION_CAMPAIGN_SEARCH\" = 57,\r\n \"BRANCH_CAMPAIGN_SEARCH\" = 58,\r\n \"SEGMENT\" = 59,\r\n \"PENETRATIONCHARTTYPE_THAILAND\" = 60,\r\n \"SYSTEM_TYPE_THAI\" = 61,\r\n \"CLUB_CATEGORIES_TH\" = 62,\r\n \"AGENCY_TYPE_TH\" = 63,\r\n \"SALESPLAN_COUNTRIES\" = 64,\r\n // \"Roles\"= 65,\r\n \"COUNTRYISO\" = 66,\r\n}\r\n\r\nexport enum classOfBusiness {\r\n \"PERSONAL_ACCIDENT\" = 1,\r\n \"MEDICAL\" = 2,\r\n \"TRAVEL_PA\" = 3,\r\n \"MARINE_CARGO\" = 4,\r\n \"MARINE_HULL\" = 5,\r\n \"ENGINEERING\" = 6,\r\n \"MISC_ACCIDENT\" = 7,\r\n \"LIABILITY\" = 8,\r\n \"BOND\" = 9,\r\n \"WORKMAN\" = 10,\r\n \"SME\" = 11,\r\n \"RESIDENTIAL\" = 12,\r\n \"MOTOR\" = 13,\r\n \"FIRE\" = 14,\r\n \"OTHERS\" = 15,\r\n}\r\n\r\nexport enum addressCategory {\r\n \"AGENCY\" = 1,\r\n \"ACE_JERNEH_BRANCH\" = 2,\r\n}\r\n\r\nexport enum addressType {\r\n \"HOME\" = 1,\r\n \"OFFICE\" = 2,\r\n \"CORRESPONDENT\" = 3,\r\n}\r\n\r\nexport enum contactTypes {\r\n \"TELEPHONE_1\" = 1,\r\n \"MOBILE_1\" = 2,\r\n \"FASCIMILE\" = 3,\r\n \"TELEPHONE_2\" = 4,\r\n \"MOBILE_2\" = 5,\r\n \"EMAIL_1\" = 6,\r\n \"WHATSAPP\" = 7,\r\n \"LINE_ID\" = 8,\r\n \"EMAIL_2\" = 9,\r\n}\r\nexport enum agencyClassOfBusinessType {\r\n \"TOTAL\" = 1,\r\n \"ACE\" = 2,\r\n}\r\nexport enum entityStatus {\r\n \"ACTIVE\" = 1,\r\n \"INACTIVE\" = 2,\r\n \"DELETED\" = 3,\r\n}\r\nexport enum organisationGroup {\r\n \"BROKER\" = 2,\r\n \"CLIENT\" = 4,\r\n \"AGENCY\" = 5,\r\n}\r\nexport enum pageMode {\r\n view = 1,\r\n edit = 2,\r\n add = 3,\r\n}\r\nexport enum competitiveEdge {\r\n PROMPTPOLICYISSUANCE = 1,\r\n PROMPTCLAIMSSETTLEMENT = 2,\r\n USERFRIENDLINESS = 3,\r\n PROMPTSERVICEDELIVERY = 4,\r\n PROMPTCOMMSNPAYMENT = 5,\r\n WIDEPRODUCTRANGE = 6,\r\n PROMPTUWASSESMENT = 7,\r\n OTHERS = 8,\r\n}\r\nexport enum displayMode {\r\n VIEW = 1,\r\n ADD = 2,\r\n EDIT = 3,\r\n}\r\nexport enum confirmationBoxType {\r\n productListingAction = 1,\r\n}\r\nexport enum proposalCommandSection {\r\n CreateOrEdit = 1,\r\n Endorsement = 33,\r\n Cancellation = 36,\r\n}\r\nexport enum proposalCommandAction {\r\n CreateOrEdit = 1,\r\n Save = 2,\r\n Submit = 3,\r\n Recalculate = 4,\r\n Exit = 5,\r\n Approve = 6,\r\n Accept = 7,\r\n Open = 8,\r\n Decline = 9,\r\n MakeRedundant = 10,\r\n SendEmail = 11,\r\n Unsuccessful = 12,\r\n Download = 13,\r\n AnswerReset = 14,\r\n AnswerResetAll = 15,\r\n Endorse = 16,\r\n Cancel = 17,\r\n Copy = 18,\r\n EditQuotation = 19,\r\n Renew = 20,\r\n AllowRenewal = 21,\r\n DeclineRenewal = 22,\r\n PremiumCalculationAndReferralQuickProcess = 23,\r\n EndorsementTypeChange = 24,\r\n SubmissionStatusChange = 25,\r\n UnsuccessfulWithReason = 26,\r\n ForceReferral = 28,\r\n EditDeclinedProposal = 41,\r\n}\r\n\r\ninterface IntegerMap {\r\n [key: string]: string;\r\n}\r\nexport const proposalColumnDataType: IntegerMap = {\r\n 1: \"String\",\r\n 2: \"Numeric\",\r\n 3: \"Action\",\r\n};\r\n\r\nexport enum transactionType {\r\n \"new\" = 1, //new business\r\n \"endorse\" = 2, //endorsement\r\n \"cancel\" = 3, //cancellation\r\n \"renewal\" = 4, //renewal\r\n}\r\n\r\nexport const proposalCommandImage: IntegerMap = {\r\n 1: \"\",\r\n 2: \"commandButtonSave\",\r\n 3: \"commandButtonSubmit\",\r\n 4: \"commandButtonCalc\",\r\n 5: \"commandButtonExit\",\r\n 6: \"commandButtonApprove\",\r\n 7: \"commandButtonAccept\",\r\n 8: \"commandButtonOpen\",\r\n 9: \"commandButtonDecline\",\r\n 10: \"commandButtonRedundant\",\r\n 11: \"commandButtonEmail\",\r\n 12: \"commandButtonRedundant\",\r\n 13: \"commandButtonDownload\",\r\n};\r\n\r\nexport enum userType {\r\n Undefined = 0,\r\n Admin = 1,\r\n Underwriter = 3,\r\n Marketer = 6,\r\n Broker = 2,\r\n Agent = 5,\r\n Client = 4,\r\n}\r\nexport enum proposalStatusId {\r\n /// \r\n /// No status has been assigned\r\n /// \r\n None = 0,\r\n\r\n /// \r\n /// Proposal has been approved\r\n /// \r\n Approved = 1,\r\n\r\n /// \r\n /// Proposal has been bound\r\n /// \r\n Accepted = 2,\r\n\r\n /// \r\n /// Proposal has been referred to an underwriter\r\n /// \r\n Referred = 3,\r\n\r\n /// \r\n /// Proposal has been declined\r\n /// \r\n Declined = 4,\r\n\r\n /// \r\n /// Proposal has been made redundant\r\n /// \r\n Replaced = 5,\r\n\r\n /// \r\n /// Proposal is incomplete\r\n /// \r\n Incomplete = 6,\r\n\r\n /// \r\n /// Proposal has given a quick quote only\r\n /// \r\n QuickQuoteApprovedOnly = 7,\r\n\r\n /// \r\n /// Proposal has been referred from a client to a broker\r\n /// \r\n ReferredToBroker = 8,\r\n\r\n /// \r\n /// Quotation has lapsed\r\n /// \r\n Lapsed = 9,\r\n\r\n /// \r\n /// Policy has been endorsed\r\n /// \r\n Endorsed = 10,\r\n\r\n /// \r\n /// Policy has been renewed\r\n /// \r\n Renewed = 11,\r\n\r\n /// \r\n /// Policy has been cancelled\r\n /// \r\n Cancelled = 12,\r\n\r\n /// \r\n /// Quotation has not been taken out (unsuccessful)\r\n /// \r\n Unsuccessful = 13,\r\n\r\n /// \r\n /// Broker submitted proposal for review\r\n /// \r\n Submitted = 14,\r\n\r\n /// \r\n /// Pending for underwriter to determine the referral case.\r\n /// \r\n PendingUnderwriter = 15,\r\n\r\n /// \r\n /// Pending for broker to submit supporting document.\r\n /// \r\n PendingBroker = 16,\r\n}\r\nexport enum proposalStatus {\r\n /// \r\n /// No status has been assigned\r\n /// \r\n None = \"None\",\r\n\r\n /// \r\n /// Proposal has been approved\r\n /// \r\n Approved = \"Approved\",\r\n\r\n /// \r\n /// Proposal has been bound\r\n /// \r\n Accepted = \"Accepted\",\r\n\r\n /// \r\n /// Proposal has been referred to an underwriter\r\n /// \r\n Referred = \"Referred\",\r\n\r\n /// \r\n /// Proposal has been declined\r\n /// \r\n Declined = \"Declined\",\r\n\r\n /// \r\n /// Proposal has been made redundant\r\n /// \r\n Replaced = \"Replaced\",\r\n\r\n /// \r\n /// Proposal is incomplete\r\n /// \r\n Incomplete = \"Incomplete\",\r\n\r\n /// \r\n /// Proposal has given a quick quote only\r\n /// \r\n QuickQuoteApprovedOnly = \"QuickQuoteApprovedOnly\",\r\n\r\n /// \r\n /// Proposal has been referred from a client to a broker\r\n /// \r\n ReferredToBroker = \"ReferredToBroker\",\r\n\r\n /// \r\n /// Quotation has lapsed\r\n /// \r\n Lapsed = \"Lapsed\",\r\n\r\n /// \r\n /// Policy has been endorsed\r\n /// \r\n Endorsed = \"Endorsed\",\r\n\r\n /// \r\n /// Policy has been renewed\r\n /// \r\n AllowRenewed = \"AllowRenewed\",\r\n\r\n /// \r\n /// Policy has been renewed\r\n /// \r\n DeclineRenewed = \"DeclineRenewed\",\r\n\r\n /// \r\n /// Policy has been renewed\r\n /// \r\n Renewed = \"Renewed\",\r\n\r\n /// \r\n /// Policy has been cancelled\r\n /// \r\n Cancelled = \"Cancelled\",\r\n\r\n /// \r\n /// Quotation has not been taken out (unsuccessful)\r\n /// \r\n Unsuccessful = \"Unsuccessful\",\r\n\r\n /// \r\n /// Broker submitted proposal for review\r\n /// \r\n Submitted = \"Submitted\",\r\n\r\n /// \r\n /// Pending for underwriter to determine the referral case.\r\n /// \r\n PendingUnderwriter = \"PendingUnderwriter\",\r\n\r\n /// \r\n /// Pending for broker to submit supporting document.\r\n /// \r\n PendingBroker = \"PendingBroker\",\r\n\r\n /// \r\n ///\r\n /// \r\n Complete = \"Complete\",\r\n\r\n /// \r\n /// Manual Rating Required.\r\n /// \r\n MRR = \"M.R.R\",\r\n\r\n /// \r\n /// Decline by the system.\r\n /// \r\n AutoDecline = \"AutoDecline\",\r\n}\r\n\r\n//https://stackoverflow.com/questions/56568423/typescript-no-index-signature-with-a-parameter-of-type-string-was-found-on-ty\r\ninterface StringMap {\r\n [key: string]: string;\r\n}\r\n\r\nexport const productsRoute: StringMap = {\r\n //flexiguard\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|1\": \"flexiguard.master\",\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|35\": \"flexiguard.insuredlocation\", // location details\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|32\": \"flexiguard.premiumsummarypage\", // premium summary\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|33\": \"flexiguard.endorsement\",\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|36\": \"flexiguard.cancellation\",\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7|34\": \"flexiguard.premiumOverwritten\",\r\n\r\n LocationListing: \"flexiguard.locations\", // child/master location listing- 30,31\r\n\r\n \"a362c274-7a1f-453c-9a62-db35b99422fa|1\": \"flexiguard.firerisks\",\r\n \"a8d50aec-5e45-47b7-94a7-22de192df072|1\": \"flexiguard.conlossext\",\r\n \"022e2fce-535a-49a5-859e-cb2ee287f558|1\": \"flexiguard.allrisks\",\r\n \"d403c766-2c5a-433a-b127-4313ee94e298|1\": \"flexiguard.burglary\",\r\n \"5f7ba256-7caf-4201-9be5-a88fafe76e16|1\": \"flexiguard.addmoney\",\r\n \"3821b43f-9bd1-4b9c-b739-1b6f901053ed|1\": \"flexiguard.plateglass\",\r\n \"19dcb88f-1dd6-46c4-8fb9-cbe14617d45f|1\": \"flexiguard.publicliability\",\r\n \"cba0e878-3cf4-4218-9602-5c102b27a612|1\": \"flexiguard.employerliability\",\r\n \"1a7b359c-a900-46d4-b89f-a4bd51e538f4|1\": \"flexiguard.fidelityguarantee\",\r\n \"1126398d-2747-44bd-a755-cb62761871cd|1\": \"flexiguard.gpa\",\r\n\r\n //myhome\r\n \"766ea862-df3d-4a83-8e6c-3128813956b9|1\": \"myAMS.myHomeMaster\",\r\n \"766ea862-df3d-4a83-8e6c-3128813956b9|2\": \"myAMS.myHomeQuestion\",\r\n\r\n //gcn\r\n \"90498eba-2cc6-4e6f-a468-2ee2cd46b1a8|1\": \"myAMS.gcn\",\r\n \"90498eba-2cc6-4e6f-a468-2ee2cd46b1a8|0\": \"myAMS.gcnCoverNote\",\r\n\r\n //bta\r\n \"8391c36c-14c8-40e8-90c0-4f8b0d475247|1\": \"proposal.businessTravel\",\r\n \"8391c36c-14c8-40e8-90c0-4f8b0d475247|2\": \"myAMS.btEmployeeDetails\",\r\n\r\n //aml\r\n \"f64a7d46-18f4-421a-931e-43b7fc198cd4|1\":\r\n \"proposal.australiaManagementLiability\",\r\n\r\n //sunrise\r\n \"f6c1bcb1-d045-4db3-b947-0e50fe0d49eb|1\": \"sunrise.bizPack\",\r\n\r\n //hk EC\r\n \"1ccfa1a3-23bd-4afd-9df5-d88687c3254c|1\": \"myAMS.hongkongEC\",\r\n\r\n // Houseowner Plus HDB\r\n \"2396885e-49f6-43f6-a314-47d727ab888f|1\": \"proposal.dbssghdb\",\r\n\r\n // Houseowner Plus PTE\r\n \"6faf6bee-f5fc-4dc2-9f75-37fe2d61611d|1\": \"proposal.dbssgpte\",\r\n\r\n // Mortgage Fire Hong Kong - CBG\r\n \"944439aa-4c28-4a69-999e-0731de0c795a|1\": \"proposal.dbshkcbg\",\r\n // Mortgage Fire Hong Kong - IBG\r\n \"cc290dc8-a0be-4818-9557-c2b725a3f4f8|1\": \"proposal.dbshkibg\",\r\n\r\n // Mortgage Fire Hong Kong - CMB HASE\r\n \"aaea26b4-812f-4fa1-ac43-7177ea129917|1\": \"proposal.cmbhkhase\",\r\n\r\n //Mortgage Fire ong Kong - WPB HASE\r\n \"3840d5aa-7fb6-416a-9e3e-9d346562e648|1\": \"proposal.wpshkhase\",\r\n\r\n // Mortgage Fire SG\r\n \"06cb09d3-6fe0-4695-92a8-a61dfb627c61|1\": \"proposal.dbssgibgmf\",\r\n\r\n // Mortgage Machinery All Risk SG\r\n \"8533fa05-f190-4a29-9613-3db7f693dd32|1\": \"proposal.dbssgibgmac\",\r\n\r\n // Mortgagee Interest Plus\r\n \"565e9075-9f73-45c0-ba5c-a78ac05ba837|1\": \"proposal.dbssgmip\",\r\n\r\n //Citi Houseowner Plus HDB\r\n \"a8cdac65-3ec4-4138-974a-d18c3ef8536c|1\": \"proposal.citisghdb\",\r\n\r\n //Citi Mortgage Fire Insurance PTE\r\n \"1f7ee805-c8ce-416c-af29-292e920878f8|1\": \"proposal.citisgmfpte\",\r\n\r\n //Citi Mortgage Fire Insureance Condo\r\n \"b8a348ca-491c-48da-988a-fcc52f7fc5c5|1\": \"proposal.citisgmfcondo\",\r\n};\r\n\r\nexport enum singleProduct {\r\n \"foreginMaid\" = \"31b5b1af-887e-4ee1-8c68-042ff8ff50e5\",\r\n \"myHome\" = \"766ea862-df3d-4a83-8e6c-3128813956b9\",\r\n \"GeneralCoverNote\" = \"90498eba-2cc6-4e6f-a468-2ee2cd46b1a8\",\r\n \"businessTravel\" = \"8391c36c-14c8-40e8-90c0-4f8b0d475247\",\r\n \"hongkongEC\" = \"1ccfa1a3-23bd-4afd-9df5-d88687c3254c\",\r\n \"MortgageeInterestPlus\" = \"565e9075-9f73-45c0-ba5c-a78ac05ba837\",\r\n \"HouseOwnerPlusPTE\" = \"6faf6bee-f5fc-4dc2-9f75-37fe2d61611d\",\r\n \"HouseOwnerPlusHDB\" = \"2396885e-49f6-43f6-a314-47d727ab888f\",\r\n \"CitiHouseOwnerPlusHDB\" = \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\",\r\n \"CitiMortgageFireInsurancePTE\" = \"1F7EE805-C8CE-416C-AF29-292E920878F8\",\r\n \"CitiMortgageFireInsuranceCondo\" = \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\",\r\n}\r\nexport enum product {\r\n \"FlexiguardMaster\" = \"1d6ae343-f479-43fe-bc6a-5a22803b3da7\",\r\n \"MyHome\" = \"766ea862-df3d-4a83-8e6c-3128813956b9\",\r\n \"GeneralCoverNote\" = \"90498eba-2cc6-4e6f-a468-2ee2cd46b1a8\",\r\n \"ManagementLiablity\" = \"f64a7d46-18f4-421a-931e-43b7fc198cd4\",\r\n}\r\nexport enum productName {\r\n \"022e2fce-535a-49a5-859e-cb2ee287f558\" = \"All Risk\",\r\n \"61f6835e-8791-4876-9745-e084ffa6ccd7\" = \"Insured Location\",\r\n \"d403c766-2c5a-433a-b127-4313ee94e298\" = \"Burglary\",\r\n \"cba0e878-3cf4-4218-9602-5c102b27a612\" = \"Employer's Liability\",\r\n \"1a7b359c-a900-46d4-b89f-a4bd51e538f4\" = \"Fidelity Guarantee\",\r\n \"a362c274-7a1f-453c-9a62-db35b99422fa\" = \"Fire\",\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7\" = \"Master\",\r\n \"1126398d-2747-44bd-a755-cb62761871cd\" = \"GPA\",\r\n \"5f7ba256-7caf-4201-9be5-a88fafe76e16\" = \"Money\",\r\n \"3821b43f-9bd1-4b9c-b739-1b6f901053ed\" = \"Plate Glass\",\r\n \"19dcb88f-1dd6-46c4-8fb9-cbe14617d45f\" = \"Public Liability\",\r\n \"a8d50aec-5e45-47b7-94a7-22de192df072\" = \"Con Loss\",\r\n \"a9c0623f-b17b-4b3d-abd6-017cc059e258\" = \"Premium Summary\",\r\n}\r\nexport enum endorsementType {\r\n \"ExtensionOfPeriod\" = \"e5715c71-a396-40e4-9740-7494ee073829\",\r\n \"ChangeOfFinancialInstitution\" = \"0c79a250-0e02-47f7-a00e-5b2a51f2ccea\",\r\n \"AddDeleteOfSectionRisk\" = \"58fba217-a665-441f-b222-ad680f33bcb5\",\r\n \"AddDeletePerils\" = \"9099078a-46ef-4a2e-b321-c67c1c83aab1\",\r\n \"ChangeOfLocationAddress\" = \"8c7f6ade-f141-46ae-a39c-181cfa634818\",\r\n \"AddDeleteNonFinancialClause\" = \"8382aab7-ac88-4556-8c39-3f85a60d8e96\",\r\n \"Others\" = \"f2d96910-b057-4b3f-b0ad-e25901f7028f\",\r\n \"AddDeleteOfInterestInsured\" = \"c3f5655f-cb4b-42f1-8595-b92b0664cd4b\",\r\n \"ChangeOfCorrespondenceAddress\" = \"2b75b59c-7447-4cc1-b470-158a098ff21e\",\r\n \"AmendItemInsuredDescription\" = \"6bc36bed-8733-4326-a96d-70ea6d8a8806\",\r\n \"ChangeOfSumInsured\" = \"62914003-7bbe-4c4a-ba14-8f3c3c03ff6b\",\r\n \"Cancellation\" = \"CANCELLATION_ENDORSEMENT_ID\",\r\n}\r\nexport enum productListingType {\r\n \"Submission\" = 1,\r\n \"Quotation\" = 2,\r\n \"Policy\" = 3,\r\n \"Cancellation\" = 4,\r\n \"Endorsement\" = 5,\r\n \"Renewal\" = 6,\r\n \"RenewalListing\" = 7,\r\n}\r\n\r\nexport const productOrder: IntegerMap = {\r\n 1: \"a362c274-7a1f-453c-9a62-db35b99422fa\",\r\n 2: \"a8d50aec-5e45-47b7-94a7-22de192df072\",\r\n 3: \"022e2fce-535a-49a5-859e-cb2ee287f558\",\r\n 4: \"d403c766-2c5a-433a-b127-4313ee94e298\",\r\n 5: \"5f7ba256-7caf-4201-9be5-a88fafe76e16\",\r\n 6: \"3821b43f-9bd1-4b9c-b739-1b6f901053ed\",\r\n 7: \"19dcb88f-1dd6-46c4-8fb9-cbe14617d45f\",\r\n 8: \"cba0e878-3cf4-4218-9602-5c102b27a612\",\r\n 9: \"1a7b359c-a900-46d4-b89f-a4bd51e538f4\",\r\n 10: \"1126398d-2747-44bd-a755-cb62761871cd\",\r\n 11: \"834cc5a1-270c-466c-927f-f4134565cf6b\",\r\n};\r\n\r\nexport const documentType: IntegerMap = {\r\n 1: \"Debit Note\",\r\n 2: \"Credit Note\",\r\n 3: \"Credit Advice\",\r\n 4: \"Debit Advice\",\r\n 5: \"Tax Invoice\",\r\n 6: \"Quotation\",\r\n 7: \"Policy Schedule\",\r\n 8: \"Endorsement\",\r\n 9: \"Cancellation\",\r\n 10: \"Renewal\",\r\n 11: \"Renewal Notice\",\r\n 12: \"Policy Wording\",\r\n 13: \"CreditAdvice_AgentCommission\",\r\n 14: \"DebitAdvice_AgentCommission\",\r\n 15: \"Payment Receipt\",\r\n 16: \"PolicyWording_ENG\",\r\n 17: \"PolicyWording_BM\",\r\n 19: \"Certificate Of Currency\",\r\n 20: \"Policy Schedule As Agreed\",\r\n 21: \"Quotation As Agreed\",\r\n 22: \"Cancellation As Agreed\",\r\n 23: \"Certificate Of Currency As Agreed\",\r\n 24: \"Proposal Form\",\r\n 25: \"Binder Letter\",\r\n 26: \"Quote\",\r\n 27: \"Endorsement As Agreed\",\r\n 28: \"Renewal Quote\",\r\n 29: \"RenewalNoticeNonRenewableOccupation\",\r\n 30: \"CoverNote_Draft\",\r\n 31: \"CoverNote\",\r\n 32: \"QuickIndication\",\r\n 33: \"Cancellation Binder\",\r\n 34: \"Multi Quote\",\r\n 35: \"Redemption Letter\",\r\n 36: \"Change In Building Sum Insured\",\r\n 37: \"Change In Correspondance Address\",\r\n};\r\n\r\n//DBS Admin Screen Enable Changes\r\n//Added New Error Enum\r\nexport const passwordErrorsEnum: IntegerMap = {\r\n 0: \"Undefined\",\r\n 1: \"Your passwords do not match.\",\r\n 2: \"Your password cannot be the same as your username.\",\r\n 3: \"The password must contain a minimum of 8 characters.\",\r\n 4: \"The password must not be longer than 20 characters.\",\r\n 5: \"The password cannot be the same as old password.\",\r\n 6: \"The password cannot contain the word 'password'.\",\r\n 7: \"The password cannot contain whitespaces or punctuation marks.\",\r\n 8: \"The password must contain at least one number.\",\r\n 9: \"At least one lower, one upper, and one special character required.\",\r\n 10: \"Current Password is not correct. Kindly enter correct password.\",\r\n 11: \"New Password is required. Kindly enter a password.\",\r\n 12: \"RequestId is invalid or already been used.\",\r\n 13: \"The display name cannot contain number.\",\r\n 14: \"The display name cannot contain special character.\",\r\n};\r\n// //End\r\n\r\nexport const lineOfBusiness: IntegerMap = {\r\n 0: \"Undefined\",\r\n 1: \"A&H PA\",\r\n 2: \"A&H Medical\",\r\n 3: \"A&H FWHS\",\r\n 4: \"A&H Travel\",\r\n 5: \"Motor / Auto Franchise\",\r\n 6: \"Motor / Auto Non Franchise\",\r\n 7: \"SME Premia\",\r\n 8: \"Fire Residential\",\r\n 9: \"Specialty\",\r\n 10: \"Cargo\",\r\n 11: \"Hull\",\r\n 12: \"Aviation\",\r\n 13: \"Fire\",\r\n 14: \"Misc Acct / Fire\",\r\n 15: \"Liability / Casualty\",\r\n 16: \"Financial Line\",\r\n 17: \"Workmen Comp\",\r\n 18: \"Environment\",\r\n 19: \"Engineering\",\r\n 20: \"Energy O&G\",\r\n 21: \"Bond / Surety\",\r\n};\r\n\r\nexport const lineOfBusinessGroup: IntegerMap = {\r\n 0: \"Undefined\",\r\n 1: \"A&H\",\r\n 2: \"PBI\",\r\n 3: \"P&C\",\r\n};\r\n\r\nexport const salesPlanType: IntegerMap = {\r\n 1: \"RENEWAL\",\r\n 2: \"NEW BUSINESS (CURRENT AGENTS)\",\r\n 3: \"NEW BUSINESS (RECRUITMENT)\",\r\n};\r\n\r\nexport const salesPlanFilterBy: IntegerMap = {\r\n 0: \"Undefined\",\r\n 1: \"Region\",\r\n 2: \"Branch\",\r\n 3: \"Marketer\",\r\n 4: \"Version\",\r\n};\r\n\r\nexport enum fileType {\r\n \"Undefined\" = 0,\r\n \"PropsalAttachment\" = 1,\r\n \"Bulletin\" = 2,\r\n \"MessageBoard\" = 3,\r\n \"VisitAppointment\" = 4,\r\n}\r\n\r\nexport const afterUploadMessages: IntegerMap = {\r\n 1: \"Data Uploaded Successfully\",\r\n 2: \"Uploaded Successfully but with few users left\",\r\n 3: \"No Records To Update\",\r\n 4: \"Something wrong. Please reachout to Helpdesk\",\r\n 5: \"Please select a file to upload\",\r\n};\r\nexport enum productList {\r\n flexiguard = 1,\r\n myHome = 2,\r\n PC = 3,\r\n marineCargo = 4,\r\n eliteMgntLiability = 5,\r\n construction = 6,\r\n}\r\nexport const productListDesc: IntegerMap = {\r\n 1: \"Flexiguard\",\r\n 2: \"My Home\",\r\n 3: \"P&C\",\r\n 4: \"Marine Cargo\",\r\n 5: \"Elite Management Liability\",\r\n 6: \"Construction\",\r\n};\r\n\r\nexport enum hideCustomerOrganisation { // 1- hide 2 - show\r\n \"766ea862-df3d-4a83-8e6c-3128813956b9\" = 1, //myhome\r\n \"1d6ae343-f479-43fe-bc6a-5a22803b3da7\" = 2, //flexiguard\r\n}\r\nexport enum headRoomChartType {\r\n HeadRoomSegementationProfile = 1,\r\n HeadRoomPerformanceTracking = 2,\r\n}\r\nexport enum authTypes {\r\n Normal = 0,\r\n Vestpin = 1,\r\n ADB2C = 2,\r\n}\r\n\r\nexport enum sessionstorageEnum {\r\n AccessToken = \"AccessToken\",\r\n RefreshToken = \"RefreshToken\",\r\n B2CAccessToken = \"adal.access.token.key\",\r\n}\r\n","export class ProductID {\r\n public static readonly PRODUCT_ID_AUS_BUSINESSTRAVEL =\r\n \"8391C36C-14C8-40E8-90C0-4F8B0D475247\";\r\n public static readonly PRODUCT_ID_MY_FLEXIGUARD =\r\n \"1D6AE343-F479-43FE-BC6A-5A22803B3DA7\";\r\n public static readonly PRODUCT_ID_MY_MYHOME =\r\n \"766EA862-DF3D-4A83-8E6C-3128813956B9\";\r\n public static readonly PRODUCT_ID_MY_GCN =\r\n \"90498EBA-2CC6-4E6F-A468-2EE2CD46B1A8\";\r\n public static readonly PRODUCT_ID_MY_FOREIGN_MAID =\r\n \"31B5B1AF-887E-4EE1-8C68-042FF8FF50E5\";\r\n\r\n //DBS\r\n public static readonly PRODUCT_ID_DBS_MORTGAGEINTERESTPLUS =\r\n \"565E9075-9F73-45C0-BA5C-A78AC05BA837\";\r\n public static readonly PRODUCT_ID_DBS_HOUSEOWNERPLUSPTE =\r\n \"6FAF6BEE-F5FC-4DC2-9F75-37FE2D61611D\";\r\n public static readonly PRODUCT_ID_DBS_HOUSEOWNERPLUSHDB =\r\n \"2396885E-49F6-43F6-A314-47D727AB888F\";\r\n public static readonly PRODUCT_ID_DBS_MF_IBG =\r\n \"06CB09D3-6FE0-4695-92A8-A61DFB627C61\";\r\n public static readonly PRODUCT_ID_DBS_MACH_IBG =\r\n \"8533FA05-F190-4A29-9613-3DB7F693DD32\";\r\n public static readonly PRODUCT_ID_DBS_HK_CBG =\r\n \"944439AA-4C28-4A69-999E-0731DE0C795A\";\r\n public static readonly PRODUCT_ID_DBS_HK_IBG =\r\n \"CC290DC8-A0BE-4818-9557-C2B725A3F4F8\";\r\n public static readonly PRODUCT_ID_CITI_HOUSEOWNERPLUSHDB =\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\";\r\n public static readonly PRODUCT_ID_CITI_MORTGAGEFIREINSURANCEPTE =\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\";\r\n public static readonly PRODUCT_ID_CITI_MORTGAGEFIREINSURANCECONDO =\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\";\r\n\r\n //Hase\r\n public static readonly PRODUCT_ID_HASE_WEALTHPERSONALBANKING =\r\n \"3840D5AA-7FB6-416A-9E3E-9D346562E648\";\r\n public static readonly PRODUCT_ID_HASE_COMMERCIALBANKING =\r\n \"AAEA26B4-812F-4FA1-AC43-7177EA129917\";\r\n\r\n //AML\r\n public static readonly PRODUCT_ID_AUS_MANAGEMENTLIABILITY =\r\n \"F64A7D46-18F4-421A-931E-43B7FC198CD4\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_EMPLOYMENT_PRACTICES =\r\n \"2934c8ee-4185-4147-9b0e-a9d54c0a6e68\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_CRIME =\r\n \"0e7feac7-2598-4eb2-9eab-67c6ba739c07\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_CYBER =\r\n \"275ab1e7-9706-419e-88bc-d927cfdd04e3\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_STATUTORY =\r\n \"246c1462-da73-4c4a-a4ed-8ad80f95de36\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_INTERNET =\r\n \"f092df46-6be6-4883-9b38-589ed119b7ce\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_PROFESSIONAL_INDEMNITY =\r\n \"0053d614-39bd-46b7-87ee-6f3442e2b998\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_KIDNAP_RANSOM =\r\n \"b7a2c22b-9451-4e5c-bc8c-17915968d591\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_DIRECTORS_OFFICERS =\r\n \"98d7da05-1e58-47de-a365-bc3ebc5cce38\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_TRUSTEES =\r\n \"1a452cf9-d6fe-4406-9a7a-8709aa18d05b\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_MAIN_LOSS_HISTORY =\r\n \"2dbc6e4b-e349-4959-be23-99cb1456564f\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_MAIN_INSURED_DETAILS =\r\n \"5c4e6cfa-1ab0-4b42-ab61-ce0eacb0d7d1\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_PREMIUM_SUMMARY =\r\n \"a1dd5540-a441-4a99-8c19-1b11d433f178\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_QUICK_QUOTE =\r\n \"cd56c438-2bb7-45fa-ad62-fc07171eae91\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_ENDORSEMENT =\r\n \"b2cc743f-53e0-4a2a-8851-440a1dd9954b\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_GTC =\r\n \"94002426-81f7-4ee9-b963-4b4921184b0c\";\r\n public static readonly AUS_MANAGEMENT_LIABILITY_PANEL_ID_LIMITS_DEDUCTIBLES =\r\n \"1ced21b7-dddc-4d43-bd81-5917f0abf9b9\";\r\n\r\n // Australia Biz pack\r\n public static readonly PRODUCT_ID_AUS_BizPack =\r\n \"f6c1bcb1-d045-4db3-b947-0e50fe0d49eb\";\r\n\r\n public static readonly PROPOSAL_ID_DEFAULT =\r\n \"00000000-0000-0000-0000-000000000000\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_FIRE =\r\n \"ea88562b-c749-4bdf-b077-0a02505bd87c\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_ENVIRONMENTALLIABILITY =\r\n \"5ccfd6c5-fe27-4df8-908c-e74fc7878e84\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_MONEY =\r\n \"b4a2abdf-555a-48de-8f0a-d68bad994de3\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_BUSINESSINTERRUPTION =\r\n \"2d01a81c-b8e1-4057-8b96-3a66254cfa1a\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_GENERALPROPERTY =\r\n \"550f2832-fd52-4b05-9343-15d4a6d7e511\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_PUBLIC_PRODUCTSLIABILITY =\r\n \"ddc1b159-7887-43d6-8e2c-8f57df0592a0\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_CYBER =\r\n \"bf70ff16-e74c-4486-bcb8-db5638455270\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_GLASS =\r\n \"dd2ee977-f692-4c83-8508-23f515840cfe\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_TAX_AUDIT =\r\n \"8be8ff3a-304b-408c-a072-482707ef4753\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_ELECTRONIC_EQUIPMENT_BREAKDOWN =\r\n \"3ce4c32a-f3e3-4d8c-86eb-c276b3530c54\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_MACHINERY_BREAKDOWN =\r\n \"bb6b5188-7489-4b76-9521-d2dc3db68a09\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_THEFT =\r\n \"48e1a383-f05c-49e0-9f6c-1d4e9ca273f1\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_MAIN =\r\n \"5c4bec68-94b7-4d7f-b5d6-f7003d1748cf\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_POST_QUOTE =\r\n \"2a1a23ef-491a-42c4-8ab7-5d9f96954940\";\r\n public static readonly AUS_BIZ_PACK_TAB_ID_ENDORSEMENT =\r\n \"4afa15a3-3a49-4c34-8cfe-b7b8e1989da1\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_LOCATION_DETAILS =\r\n \"d1e37920-a49c-4a2e-81f8-6f8df228ef17\";\r\n public static readonly AUS_BIZ_PACK_PANEL_ID_PREMIUM_SUMMARY =\r\n \"f3ec2091-edec-49d1-ba24-69000c6dc116\";\r\n //HongKong EC\r\n public static readonly PRODUCT_ID_HK_EC =\r\n \"1ccfa1a3-23bd-4afd-9df5-d88687c3254c\";\r\n}\r\n\r\nexport class UserRoles {\r\n public static readonly Underwriter_Role: string = \"Underwriter_Role\";\r\n public static readonly Dashboard_View: string = \"Dashboard_View\";\r\n\r\n public static readonly RulesExtension_View: string = \"RulesExtension_View\";\r\n public static readonly SalesPlanAcess_View: string = \"SalesPlanAcess_View\";\r\n public static readonly Campaigns_View: string = \"Campaigns_View\";\r\n}\r\n\r\nexport class EndorsementTypes {\r\n public static readonly GeneralEndorsement =\r\n \"6459191a-1f2b-4447-8a44-24b56bfe756c\";\r\n public static readonly ExtensionofPeriod =\r\n \"8c2694ea-4d73-4b02-8030-daee453fc9ac\";\r\n}\r\n","import * as Enums from \"./../../enum.shared\";\r\n\r\nimport { Exception } from \"./exception\";\r\nimport { common } from \"./../../utils/common\";\r\n\r\n/** Common Exception object to be thrown for argument invalid exception */\r\nexport class ArgumentInvalidException extends Exception {\r\n constructor(argument: any, argumentName: string, message?: string) {\r\n super(\"\");\r\n this.type = Enums.ErrorExceptionType.ArgumentException;\r\n\r\n if (common.isDefined(message) && message != undefined) {\r\n this.message = message;\r\n } else {\r\n this.message = `Invalid argument [${argumentName}] of type [${typeof argument}] of value [${argument}]`;\r\n }\r\n }\r\n}\r\n","import * as Enums from './../../enum.shared';\r\n\r\nimport { Exception } from './exception';\r\n\r\n/** Common Exception object to be thrown for argument null exception */\r\nexport class ArgumentNullException extends Exception {\r\n\r\n constructor(argument: any, argumentName: string) {\r\n super('');\r\n this.type = Enums.ErrorExceptionType.ArgumentException;\r\n this.message = `Invalid null or empty argument [${argumentName}] of type [${typeof argument}] of value [${argument}]`;\r\n }\r\n}\r\n","import * as Enums from './../../enum.shared';\r\n\r\nimport { common } from './../../utils/common';\r\n\r\n/** Common Exception object to be thrown with error message while system is unable to proceed */\r\nexport class Exception {\r\n\r\n public type?: Enums.ErrorExceptionType = Enums.ErrorExceptionType.ApplicationError;\r\n\r\n constructor(public message: string,\r\n public header?: string,\r\n type?: Enums.ErrorExceptionType) {\r\n\r\n if (common.isDefined(type)) {\r\n this.type = type;\r\n }\r\n }\r\n}\r\n","import * as Enums from \"./../../enum.shared\";\r\n\r\nimport { Exception } from \"./exception\";\r\nimport { common } from \"./../../utils/common\";\r\n\r\n/** Common Exception object to be thrown for argument null exception */\r\nexport class NotImplementedException extends Exception {\r\n constructor(message?: string) {\r\n if (message != undefined) {\r\n super(message);\r\n this.type = Enums.ErrorExceptionType.ApplicationError;\r\n\r\n if (common.isStringNullOrEmpty(message)) {\r\n this.message = `Incomplete implementations. TODO?`;\r\n }\r\n }\r\n }\r\n}\r\n","import * as Enums from './../../enum.shared';\r\n\r\nimport { Exception } from './exception';\r\n\r\n/** Common Exception object to be thrown for un-authorized access exception */\r\nexport class UnauthorizedException extends Exception {\r\n\r\n constructor() {\r\n super('');\r\n this.message = '401 Unauthorized';\r\n }\r\n}\r\n","import { environment } from \"src/environments/environment\";\r\nimport { common } from \"./../utils/common\";\r\n//import { environment } from \"./../../environments/environment\";\r\n\r\n/** Class to generate GUID\r\n * https://stackoverflow.com/questions/26501688/a-typescript-guid-class\r\n */\r\nexport class GUID {\r\n private str: string;\r\n private id: number;\r\n\r\n private pattern =\r\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/gi;\r\n private regex: RegExp = new RegExp(this.pattern.source);\r\n\r\n constructor(str?: string) {\r\n if (str !== undefined && !common.isStringNullOrEmpty(str)) {\r\n const match = this.regex.test(str);\r\n if (!match) {\r\n throw Error(`[${str}] not match GUID pattern`);\r\n }\r\n }\r\n this.str = str || common.DEFAULT_GUID;\r\n this.str = this.str.trim().toUpperCase();\r\n this.id = common.generateUniqueId();\r\n }\r\n\r\n /** Generate a new unique GUID object */\r\n static newGuid(): GUID {\r\n // your favorite guid generation function could go here\r\n // ex: http://stackoverflow.com/a/8809472/188246\r\n let d = new Date().getTime();\r\n\r\n if (environment.browser) {\r\n if (\r\n window[\"performance\"] &&\r\n typeof window[\"performance\"].now === \"function\"\r\n ) {\r\n d += performance.now(); // use high-precision timer if available\r\n }\r\n }\r\n\r\n const guid = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\r\n /[xy]/g,\r\n (c) => {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\r\n }\r\n );\r\n\r\n return new GUID(guid);\r\n }\r\n\r\n get isDefault(): boolean {\r\n return this.str === common.DEFAULT_GUID;\r\n }\r\n\r\n toString(): string {\r\n return this.str;\r\n }\r\n\r\n toId(): number {\r\n return this.id;\r\n }\r\n\r\n equal(object: GUID): boolean {\r\n return (\r\n this.str.trim().toUpperCase() === object.toString().trim().toUpperCase()\r\n );\r\n }\r\n}\r\n","export class KeyValue {\r\n key: string;\r\n value: T;\r\n\r\n constructor(key: string, value: T) {\r\n this.key = key;\r\n this.value = value;\r\n }\r\n}\r\n","export enum ProposalPageMode {\r\n Create,\r\n Edit,\r\n View,\r\n}\r\n\r\nexport enum ComponentMode {\r\n Add,\r\n Edit,\r\n}\r\n\r\nexport enum QuestionTheme {\r\n Normal,\r\n Danger,\r\n Warning,\r\n}\r\n\r\nexport enum ErrorExceptionType {\r\n UnknownErrorType = 0,\r\n ApplicationError = 1,\r\n FrameworkError = 2,\r\n ArgumentException = 3,\r\n InternalServerError = 500,\r\n Unauthorized = 401,\r\n NotFound = 404,\r\n}\r\n\r\nexport enum AnswerDataType {\r\n String = 1,\r\n Boolean = 2,\r\n Numeric = 3,\r\n Date = 4,\r\n Object = 5,\r\n}\r\n\r\nexport enum UserType {\r\n Undefined = 0,\r\n Admin = 1,\r\n Underwriter = 3,\r\n Marketer = 6,\r\n Broker = 2,\r\n Agent = 5,\r\n Client = 4,\r\n}\r\n\r\nexport enum ApplicationMode {\r\n browser,\r\n local,\r\n}\r\n\r\nexport enum ProductType {\r\n MY_Flexiguard = 1,\r\n MY_MyHome = 2,\r\n MY_GCN = 3,\r\n MY_ForeignMaid = 4,\r\n MY_ForeingWorker = 5,\r\n MY_PremiumDriveCare = 6,\r\n MY_MyPremiumDriveCare = 7,\r\n MY_PAPassenger1 = 8, // to be rename\r\n MY_PAPassenger2 = 9, // to be rename\r\n MY_PAPassenger3 = 10, // to be rename\r\n AUS_BusinessTravel = 11,\r\n AUS_BizPack = 12,\r\n}\r\n\r\nexport enum ProductListingType {\r\n Submission = 1,\r\n Quotation = 2,\r\n Policy = 3,\r\n Cancellation = 4,\r\n Endorsement = 5,\r\n Renewal = 6,\r\n RenewalManager = 7,\r\n}\r\n\r\nexport enum ConfirmationBoxType {\r\n productListingAction = 1,\r\n}\r\n\r\nexport enum ProposalCommandSection {\r\n CreateOrEdit = 1,\r\n Endorsement = 33,\r\n Cancellation = 36,\r\n}\r\n\r\nexport enum ProposalCommandAction {\r\n /** Create new or edit existing proposal */\r\n CreateOrEdit = 1,\r\n /** Save Proposal and recalculate premium */\r\n Save = 2,\r\n /** Submit Proposal */\r\n Submit = 3,\r\n /** Save Proposal and recalculate premium */\r\n Recalculate = 4,\r\n /** Exit to product listing page */\r\n Exit = 5,\r\n /** Underwriter Approve referred case */\r\n Approve = 6,\r\n /** Accept approved Quotation */\r\n Accept = 7,\r\n /** Open proposal */\r\n Open = 8,\r\n /** Underwriter Decline referred case */\r\n Decline = 9,\r\n /** Underwriter soft delete referred case */\r\n MakeRedundant = 10,\r\n /** ??? */\r\n SendEmail = 11,\r\n /** Producer/Underwriter Unsuccessful approved Quotation */\r\n Unsuccessful = 12,\r\n /** Producer/Underwriter download various document */\r\n Download = 13,\r\n /** Applicable to Malaysia Flexiguard product only. Clear all answer value of a particular proposal */\r\n AnswerReset = 14,\r\n /** Applicable to Malaysia Flexiguard product only. Clear all answer value of all proposals that link to a particular location */\r\n AnswerResetAll = 15,\r\n /** Producer/Underwriter to raise endorsement of a particular Policy */\r\n Endorse = 16,\r\n /** Producer/Underwriter to raise cancellation of a particular Policy */\r\n Cancel = 17,\r\n /** Producer to copy a new Incomplete Proposal from an exisitng record */\r\n Copy = 18,\r\n /** Producer to edit approved Quotation */\r\n EditQuotation = 19,\r\n /** Producer/Underwriter to raise renewal of a particular Policy */\r\n Renew = 20,\r\n /** Underwriter to grant an exisitng Policy from renewal */\r\n AllowRenewal = 21,\r\n /** Underwriter to block an exisitng Policy from renewal */\r\n DeclineRenewal = 22,\r\n /** Producer/Underwriter to get a quick calculation and underwriter referral message without actual saving the record */\r\n PremiumCalculationAndReferralQuickProcess = 23,\r\n /** Producer/Underwriter to change the existing endorsement type */\r\n EndorsementTypeChange = 24,\r\n /** Applicable to Malaysia EBiz GCN product only. To change Polisy Asia submission status */\r\n SubmissionStatusChange = 25,\r\n /** Applicable to all Malaysia EBiz product only. To change Polisy Asia submission status to cancel with reason provided */\r\n UnsuccessfulWithReason = 26,\r\n /** Skip quick quote for internal checking at the front-end */\r\n SkipQuickQuote = 27,\r\n /** Underwriter to set force refferal for renewal */\r\n ForceReferral = 28,\r\n /** Proceed quick quote for internal checking at the front-end */\r\n ProceedFormalQuote = 29,\r\n /** Download quick quote for internal checking at the front-end */\r\n DownloadQuickQuote = 30,\r\n\r\n /** download quick quote proposal for internal checking at the front-end */\r\n DownloadQuickQuoteProposal = 31,\r\n /** Update ExportStatusID to 6(PendingResend) */\r\n InterfaceResend = 40,\r\n /** Producer to edit declined proposal */\r\n EditDeclinedProposal = 41,\r\n /** Generate Referral Letter for AML */\r\n GenerateReferralLetter = 42,\r\n /** Resend Proposal Data to Codex Interface */\r\n CodexInterfaceResend = 43,\r\n /** Send draft to checker */\r\n SendToChecker = 44,\r\n /** Return to maker for revise */\r\n ReturnForRevise = 45,\r\n /** Refund minimum premium after performed cancellation*/\r\n CancellationAdjustment = 46,\r\n ChangeOfCorrespondenceAddress = 47,\r\n}\r\n\r\nexport enum ProposalStatus {\r\n /** No status has been assigned */\r\n None = 0,\r\n\r\n /** Proposal has been approved */\r\n Approved = 1,\r\n\r\n /** Proposal has been bound */\r\n Accepted = 2,\r\n\r\n /** Proposal has been referred to an underwriter */\r\n Referred = 3,\r\n\r\n /** Proposal has been declined */\r\n Declined = 4,\r\n\r\n /** Proposal has been made redundant */\r\n Replaced = 5,\r\n\r\n /** Draft, Proposal is incomplete */\r\n Incomplete = 6,\r\n\r\n /** Proposal has given a quick quote only */\r\n QuickQuoteApprovedOnly = 7,\r\n\r\n /** Applicable to Taiwan Broker Pro product only. Proposal has been referred from a client to a broker */\r\n ReferredToBroker = 8,\r\n\r\n /** Quotation has lapsed */\r\n Lapsed = 9,\r\n\r\n /** Policy has been endorsed */\r\n Endorsed = 10,\r\n\r\n /** Policy has been renewed */\r\n Renewed = 11,\r\n\r\n /** Policy has been cancelled */\r\n Cancelled = 12,\r\n\r\n /** Quotation has not been taken out (unsuccessful) */\r\n Unsuccessful = 13,\r\n\r\n /** Broker submitted proposal for review */\r\n Submitted = 14,\r\n\r\n /** Pending for underwriter to determine the referral case */\r\n PendingUnderwriter = 15,\r\n\r\n /** Pending for broker to submit supporting document */\r\n PendingBroker = 16,\r\n\r\n /** Complete in the sense of filling up all the mandatory field and insured to at least one coverage.\r\n * Currently only used for Sunrise integration purposes. */\r\n Complete = 17,\r\n\r\n /** Draft submitted by maker and now pending for checker to verify and submit */\r\n PendingChecker = 18,\r\n}\r\n\r\nexport enum ProposalType {\r\n /** No proposal type has been assigned */\r\n None = 0,\r\n\r\n /** It is a referred of incomplete proposal */\r\n Proposal = 1,\r\n\r\n /** A quotation has been issued */\r\n Quotation = 2,\r\n\r\n /** The policy has been bound */\r\n Policy = 3,\r\n\r\n /** The proposal is a pending cancellation */\r\n Cancellation = 4,\r\n\r\n /** The proposal is a pending endorsement */\r\n Endorsement = 5,\r\n\r\n /** The proposal is a pending renewal */\r\n Renewal = 6,\r\n}\r\n\r\nexport enum ProposalActionResultStatus {\r\n Undefined = 0,\r\n Success = 1,\r\n Failed = 2,\r\n NotAllowedToLeavePage = 3,\r\n Mandatory = 4,\r\n Referred = 5,\r\n BackDatedAcknowledgementFailed = 6,\r\n MannualOverwritten = 7,\r\n}\r\n\r\nexport enum After_ProposalAction {\r\n DoNothing = 0,\r\n NavigateToProposalListing = 1,\r\n NavigateToUrl = 2,\r\n}\r\n\r\n/** Location coverage type. Applicable to package product only */\r\nexport enum CoverageType {\r\n Undefined = 0,\r\n Individual = 1,\r\n Floating = 2,\r\n}\r\n\r\nexport enum TrueFalseQuestionAnswer {\r\n Unanswered = 0,\r\n Yes = 1,\r\n No = 2,\r\n}\r\n\r\nexport enum UiControlType {\r\n Undefined = 0,\r\n\r\n /** Label web control */\r\n LabelQuestion = 1,\r\n\r\n /** Yes/No question web control */\r\n TrueFalseQuestion = 6,\r\n\r\n /** Text question web control */\r\n ValueQuestion = 7,\r\n\r\n /** Date question web control */\r\n DateTimeQuestion = 9,\r\n\r\n /** Drop down list question web control */\r\n DropDownListQuestion = 13,\r\n\r\n /** Date range question web control */\r\n DateRangeQuestion = 14,\r\n\r\n /** Checkbox array question web control */\r\n CheckboxQuestion = 16,\r\n\r\n /** Upload file question web control */\r\n UploadQuestion = 17,\r\n\r\n /** Single checkbox question web control */\r\n SingleCheckboxQuestion = 19,\r\n\r\n /** Currency Value question web control */\r\n CurrencyValueQuestion = 33,\r\n\r\n /** Numeric Value question web control */\r\n NumericAndLabelQuestion = 34,\r\n\r\n /** Email question web control */\r\n EmailQuestion = 35,\r\n\r\n /** Currency Premium Value question web control */\r\n CurrencyPremiumValueQuestion = 36,\r\n\r\n /** Single Premium Check Box question web control */\r\n SinglePremiumCheckBoxQuestion = 37,\r\n\r\n /** Numeric Premium Text question web control */\r\n NumericPremiumValueQuestion = 38,\r\n\r\n /** Numeric Premium drop down list question web control */\r\n ComboBoxPremiumValueQuestion = 39,\r\n\r\n /** Text area question web control */\r\n TextAreaValueQuestion = 40,\r\n\r\n /** Numeric Premium drop down list question web control */\r\n ComboBoxInputQuestion = 41,\r\n}\r\n\r\nexport enum CommonForeignType {\r\n /** For dbo.[Address]. Used by dbo.Orgnisation\r\n * Currently there is a dbo.Organisation.AddressID column,\r\n * Every time create/update an organization address, it will create a new entry in dbo.Address with ForeignType = 0,\r\n * and then update the new AddressID into dbo.Organisation.AddressID table.\r\n * */\r\n Undefined = 0,\r\n\r\n /** For dbo.[Address]. Used by dbo.Person. */\r\n Person = 1,\r\n\r\n /** For dbo.[Address]. Used by dbo.Company (Corporate type client) */\r\n InsuredCompany = 2,\r\n}\r\n\r\nexport enum TransType {\r\n NONE = 0,\r\n NEW = 1,\r\n END = 2,\r\n CAN = 3,\r\n REN = 4,\r\n}\r\n\r\nexport enum DocumentType {\r\n Undefined = 0,\r\n DebitNote = 1,\r\n CreditNote = 2,\r\n CreditAdvice = 3,\r\n DebitAdvice = 4,\r\n TaxInvoice = 5,\r\n Quotation = 6,\r\n PolicySchedule = 7,\r\n Endorsement = 8,\r\n Cancellation = 9,\r\n Renewal = 10,\r\n RenewalNotice = 11,\r\n PolicyWording = 12,\r\n CreditAdvice_AgentCommission = 13,\r\n DebitAdvice_AgentCommission = 14,\r\n PaymentReceipt = 15,\r\n CoverNote_Draft = 17,\r\n CoverNote = 18,\r\n CertificateOfCurrency = 19,\r\n PolicyScheduleAsAgreed = 20,\r\n QuotationAsAgreed = 21,\r\n CancellationAsAgreed = 22,\r\n CertificateOfCurrencyAsAgreed = 23,\r\n ProposalForm = 24,\r\n BinderLetter = 25,\r\n Quote = 26,\r\n EndorsementAsAgreed = 27,\r\n RenewalQuote = 28,\r\n QuickIndication = 32,\r\n CancellationBinder = 33,\r\n MultiQuote = 34,\r\n RedemptionLetter = 35,\r\n ChangeInBuildingSumInsured = 36,\r\n ChangeInCorrespondanceAddress = 37,\r\n ChangeOfAdditionalInsuredName = 38,\r\n ChangeInPOI = 39,\r\n ChangeOfClientInfo = 40,\r\n CancellationAdjustment = 42,\r\n RedeemedExpired = 43,\r\n RedeemedCancelled = 44,\r\n ChangeOfPlanType = 45,\r\n RenewalMultiYear = 46,\r\n\r\n GstAdjustment = 47,\r\n LoanRedeemed = 48,\r\n Renewal_Non_MF = 49\r\n}\r\n\r\nexport enum ErrorType {\r\n Undefined = 0,\r\n Unanswered = 1,\r\n Alert = 2,\r\n Note = 3,\r\n Referral = 4,\r\n}\r\n\r\nexport enum copyProcessFor {\r\n NotInCopyProcess = 0,\r\n NormalCopy = 1,\r\n EndorsementCopy = 2,\r\n CancellationCopy = 3,\r\n RenewalCopy = 4,\r\n}\r\n\r\nexport enum ProposalBusinessRuleType {\r\n LessThan = 1,\r\n GreaterThan = 2,\r\n TrueFalse = 3,\r\n EqualTo = 4,\r\n Mandatory = 5,\r\n ABN = 6,\r\n Email = 7,\r\n Date = 8,\r\n AustralianAddress = 9,\r\n BooleanRule = 10,\r\n Undefined = 11,\r\n HasValue = 12,\r\n LessThanCompareByFuncRule = 13,\r\n GreaterThanCompareByFuncRule = 14,\r\n SumInsuredGreaterThan = 15,\r\n}\r\nexport enum fileType {\r\n Undefined = 0,\r\n PropsalAttachment = 1,\r\n Bulletin = 2,\r\n MessageBoard = 3,\r\n VisitAppointment = 4,\r\n}\r\n\r\nexport enum EndorsementType {\r\n Undefined = 0,\r\n GeneralEndorsement = 1,\r\n LoanRedemption = 16,\r\n ChangeOfPOI = 17,\r\n ChangeOfSumInsured = 8,\r\n ChangeOfCorrespondenceAddress = 3,\r\n ChangeOfAdditionalInsured = 18,\r\n ChangeOfClientInfo = 19,\r\n CancellationAdjustment = 20,\r\n MakeRedundant = 21,\r\n ChangeOfPlanType = 22,\r\n\r\n GstAdjustment = 23,\r\n}\r\n\r\nexport enum ManualPaymentType {\r\n Undefined = 0,\r\n Cash = 1,\r\n Cheque = 2,\r\n}\r\n\r\nexport enum RefundPaymentType {\r\n Undefined = 0,\r\n Cheque = 1,\r\n OnlineTransfer = 2,\r\n}\r\n\r\nexport enum UserOrganisation {\r\n DBS = \"DBS\",\r\n Citi = \"Citi\",\r\n}\r\n\r\nexport enum AuthTypes {\r\n Normal = 0,\r\n ADB2C = 2,\r\n}\r\nexport enum Gender {\r\n Undefined = 0,\r\n Male = 1,\r\n Female = 2,\r\n}\r\nexport enum MaritalStatus {\r\n Undefined = 0,\r\n Single = 1,\r\n Married = 2,\r\n Widowed = 3,\r\n Divorced = 4,\r\n Separated = 5,\r\n}\r\n\r\nexport enum ConfigurableMode {\r\n Clauses = 0,\r\n Deductibles = 1,\r\n ExtraPerils = 2,\r\n AddClausesOrExcl = 3,\r\n}\r\n","import * as lodash from 'lodash';\r\n\r\n/** https://stackoverflow.com/questions/28150967/typescript-cloning-object */\r\nclass Cloner {\r\n\r\n /** Object.create\r\n * Properties: Yes | Methods: Yes | Deep Copy: Yes\r\n */\r\n cloneDeep(obj: any) {\r\n return lodash.cloneDeep(obj);\r\n }\r\n\r\n /** Object.create\r\n * Properties: Yes | Methods: Yes | Deep Copy: Yes\r\n */\r\n arrayCloneDeep(arr: any[]) {\r\n return lodash.map(arr, this.cloneDeep);\r\n }\r\n}\r\n\r\nexport const cloner = new Cloner();\r\n","import * as lodash from \"lodash\";\r\n\r\nimport { ArgumentNullException } from \"./../domain-entity/exceptions/argument-null-exception\";\r\nimport { GUID } from \"./../domain-entity/guid\";\r\n\r\n/** House of global common function */\r\nclass Common {\r\n private uniqueIdPool: number = 0;\r\n\r\n public readonly DEFAULT_GUID: string = \"00000000-0000-0000-0000-000000000000\";\r\n private defaultGuidObjectValue!: GUID;\r\n\r\n get DEFAULT_GUID_OBJ(): GUID {\r\n if (this.isUndefinedOrNull(this.defaultGuidObjectValue)) {\r\n this.defaultGuidObjectValue = new GUID(this.DEFAULT_GUID);\r\n }\r\n\r\n return this.defaultGuidObjectValue;\r\n }\r\n\r\n /** Method to generate an unique numeric ID */\r\n generateUniqueId(): number {\r\n this.uniqueIdPool++;\r\n return this.uniqueIdPool;\r\n }\r\n\r\n isUndefinedOrNull(value: any): boolean {\r\n return lodash.isUndefined(value) || lodash.isNull(value);\r\n }\r\n\r\n isDefined(value: any): boolean {\r\n return !this.isUndefinedOrNull(value);\r\n }\r\n\r\n isStringNullOrEmpty(value: string): boolean {\r\n if (this.isUndefinedOrNull(value)) {\r\n return true;\r\n }\r\n\r\n if (value.length === 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isEmptyObject(value: any): boolean {\r\n return lodash.isEmpty(value);\r\n }\r\n\r\n isString(value: any): boolean {\r\n return lodash.isString(value);\r\n }\r\n\r\n isNumber(value: any): boolean {\r\n return lodash.isNumber(value);\r\n }\r\n\r\n isObject(value: any): boolean {\r\n return lodash.isObject(value);\r\n }\r\n\r\n isArray(value: any): boolean {\r\n return lodash.isArray(value);\r\n }\r\n\r\n isDate(value: any): boolean {\r\n return lodash.isDate(value);\r\n }\r\n\r\n isBoolean(value: any): boolean {\r\n return lodash.isBoolean(value);\r\n }\r\n\r\n objectToJson(value: any): string {\r\n if (this.isObject(value)) {\r\n return JSON.stringify(value);\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const common: Common = new Common();\r\n","import { ArgumentInvalidException } from './../domain-entity/exceptions/argument-invalid-exception';\r\nimport { ArgumentNullException } from './../domain-entity/exceptions/argument-null-exception';\r\nimport { Exception } from './../domain-entity/exceptions/exception';\r\nimport { NotImplementedException } from './../domain-entity/exceptions/not-implemented-exception';\r\nimport { UnauthorizedException } from './../domain-entity/exceptions/unauthorized-exception';\r\nimport { common } from './common';\r\n\r\nexport class ExceptionManager {\r\n static argumentNullGuard(argument: any, argumentName: string) {\r\n if (common.isUndefinedOrNull(argument)) {\r\n throw new ArgumentNullException(argument, argumentName);\r\n }\r\n }\r\n\r\n static incomplete(message?: string) {\r\n throw new NotImplementedException(message);\r\n }\r\n\r\n static error(message: string, header?: string) {\r\n throw new Exception(message, header);\r\n }\r\n\r\n static invalidArgument(argument: any, argumentName: string, message?: string) {\r\n throw new ArgumentInvalidException(argument, argumentName, message);\r\n }\r\n\r\n static unauthorized() {\r\n throw new UnauthorizedException();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n} from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { SessionStorageService } from \"../services/storages/session-storage.service\";\r\n\r\n@Injectable()\r\nexport class CustomHttpInterceptor implements HttpInterceptor {\r\n constructor(private sessionStorageService: SessionStorageService) {}\r\n\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n if (this.isTokenAccessRequires(req)) {\r\n // get auth token from local session storage\r\n const authData = this.sessionStorageService.get(\"authorizationData\");\r\n if (authData) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${authData.token}`,\r\n Session: authData.sessionToken,\r\n },\r\n });\r\n }\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n\r\n private isTokenAccessRequires = (config: { url: string }) => {\r\n /** Check if url is not login request, and it's api consuming request.\r\n *\r\n * Because we only need to add token bearer header to api consuming request,\r\n * other request like html content(partial.html) request is not requires to bear the token data\r\n */\r\n\r\n return (\r\n config.url.toLowerCase().indexOf(\"/token\") === -1 &&\r\n config.url.toLowerCase().indexOf(environment.serviceBase.toLowerCase()) >\r\n -1\r\n );\r\n };\r\n}\r\n","import { KeyValue } from \"./../framework/domain-entity/key-value\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify http event trigger */\r\nexport class HttpNotifier {\r\n /** Notify http request event */\r\n request_notifier$: Subject> = new Subject>();\r\n\r\n /** Notify http response event */\r\n response_notifier$: Subject> = new Subject>();\r\n\r\n /** Notify http request error event */\r\n request_error_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify http response error event */\r\n response_error_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n}\r\n\r\nexport const httpNotifier = new HttpNotifier();\r\n","export class ClientAddressEntity {\r\n clientAddressID!: string;\r\n clientID!: string;\r\n buildingName!: string;\r\n unitNo!: string;\r\n addressLine1!: string;\r\n\r\n addressLine2!: string;\r\n addressLine3!: string;\r\n addressLine4!: string;\r\n addressLine5!: string;\r\n city!: string;\r\n\r\n postCode!: string;\r\n stateName!: string;\r\n countryISO2!: string;\r\n contact1!: string;\r\n contact2!: string;\r\n\r\n hkDistrictCode?: string;\r\n}\r\n","import * as EnumSG from \"./../../new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\n\r\nimport { ClientAddressEntity } from \"./client-address-entity.model\";\r\n\r\nexport class ClientEntity {\r\n clientId!: number;\r\n clientCode?: string;\r\n clientType!: EnumSG.ClientType;\r\n productBase!: EnumSG.ProductBase;\r\n nric!: string;\r\n passportNo!: string;\r\n\r\n businessRegistrationNumber!: string;\r\n businessRegistrationNumber2!: string;\r\n dbsClientReferenceNumber!: string;\r\n incorporatedDate!: string;\r\n personInCharge!: string;\r\n firstName!: string;\r\n lastName!: string;\r\n clientName!: string;\r\n\r\n salutation!: string;\r\n gender!: string;\r\n birthDate: any;\r\n occupation!: string;\r\n nationality!: string | undefined;\r\n\r\n race!: string;\r\n maritalStatus!: string;\r\n phoneNoHome!: string;\r\n phoneNoOffice!: string;\r\n mobileNumber!: string;\r\n\r\n pagerNo!: string;\r\n faxNumber!: string;\r\n emailAddress!: string;\r\n address!: ClientAddressEntity[];\r\n docType!: string;\r\n cinNo!: string;\r\n}\r\n\r\nexport class PreferredDeliveryEntity {\r\n emailAddress!: string;\r\n mobileNumber!: string;\r\n address!: ClientAddressEntity[];\r\n}\r\n","import { AbstractButtonPanel } from \"./abstract-button-panel\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport { ProposalEntity } from \"../../base/proposal-entity.model\";\r\nimport * as Const from \"./../../../../framework/const.shared\";\r\nimport { common } from \"./../../../../framework/utils/common\";\r\nimport { MortgageFireSingaporeProposal } from \"../../sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\n\r\nexport class DbsButtonPanel implements AbstractButtonPanel {\r\n GetIncompleteActions(\r\n identityRolesService: IdentityRolesService,\r\n proposal: ProposalEntity\r\n ): Array {\r\n const actions = new Array();\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n // Allow [Save] and [Bind Policy]\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n break;\r\n\r\n case Enums.UserType.Broker:\r\n if (proposal.transType !== Enums.TransType.REN) {\r\n if (\r\n identityRolesService.isMaker &&\r\n common.isDefined(proposal.productId) &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n // Allow [Save], [Send To Checker] and [Delete]\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.SendToChecker);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n } else if (\r\n identityRolesService.IsCSCBGSG &&\r\n common.isDefined(proposal.productId) &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n }\r\n } else if (identityRolesService.isChecker) {\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n }\r\n\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n public GetApprovedActions(\r\n identityRolesService: IdentityRolesService,\r\n proposal: ProposalEntity\r\n ): Array {\r\n const actions = new Array();\r\n\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n if (\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n // renewal\r\n if (\r\n (proposal.transType === Enums.TransType.NEW ||\r\n proposal.transType === Enums.TransType.END ||\r\n proposal.transType === Enums.TransType.REN) &&\r\n proposal.proposalType === Enums.ProposalType.Policy &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n // 30 days before & 30 days after for HDB & PTE - CBG\r\n // 19 days before & 30 days after for MIP - CBG\r\n // 88 days before & 30 days after for MAR & FIRE - IBG\r\n if (proposal.auxiliary.allowRenewal) {\r\n actions.push(Enums.ProposalCommandAction.Renew);\r\n }\r\n }\r\n // reinstate year2 cancellation\r\n if (\r\n proposal.auxiliary.IsPreviousYearTerminated &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n proposal.transType !== Enums.TransType.CAN\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n // refund minimum premium\r\n if (\r\n proposal.transType === Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n proposal.auxiliary.DisplayCancellationAdjustment\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.CancellationAdjustment);\r\n }\r\n break;\r\n case Enums.UserType.Broker:\r\n // if (this.identityRolesService.role.isMaker &&\r\n // proposal.transType !== Enums.TransType.CAN &&\r\n // proposal.pendingTransaction == null\r\n // && proposal.productId.toString().toUpperCase() !== Const.ProductID.PRODUCT_ID_DBS_MF_IBG\r\n // && proposal.productId.toString().toUpperCase() !== Const.ProductID.PRODUCT_ID_DBS_MACH_IBG) {\r\n // actions.push(Enums.ProposalCommandAction.Endorse);\r\n // actions.push(Enums.ProposalCommandAction.Cancel);\r\n // }\r\n\r\n // if (this.identityRolesService.role.isMaker &&\r\n // proposal.auxiliary.IsPreviousYearTerminated\r\n // && proposal.proposalStatus === Enums.ProposalStatus.Accepted && proposal.pendingTransaction == null\r\n // && proposal.transType !== Enums.TransType.CAN) {\r\n // actions.splice(0, 1);\r\n // actions.push(Enums.ProposalCommandAction.Cancel);\r\n // }\r\n\r\n if (\r\n identityRolesService.isMaker &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null\r\n ) {\r\n if (\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n } else {\r\n if (\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n }\r\n }\r\n if (\r\n identityRolesService.IsCbsOps &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n }\r\n\r\n if (\r\n identityRolesService.IsCSCBGSG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n }\r\n\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n public ProductAllowApproved(proposalEntity: ProposalEntity): boolean {\r\n // DBSEP-2136\r\n if (\r\n proposalEntity.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposalEntity.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public CanSave(\r\n showSaveAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return showSaveAction && existingLogic; //todo: code changed, for future\r\n }\r\n\r\n public CanEditQuotation(\r\n showEditQuotation: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return showEditQuotation && existingLogic; //todo: code changed, for future\r\n }\r\n\r\n public CanEdit(\r\n showEditAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return showEditAction && existingLogic; //todo: code changed, for future\r\n }\r\n\r\n public CanApprove(\r\n showApproveAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return showApproveAction && existingLogic; //todo: code changed, for future\r\n }\r\n\r\n public CanChecked(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireSingaporeProposal\r\n ) {\r\n return (\r\n !proposal.isUnderwriter &&\r\n !identityRolesService.IsCbsOps &&\r\n !identityRolesService.IsCSCBGSG\r\n );\r\n }\r\n\r\n public CanBindPolicy(\r\n identityRolesService: IdentityRolesService,\r\n hideActionsCommandsByIBG: boolean\r\n ): boolean {\r\n return (\r\n (identityRolesService.hasProductTransactRoles &&\r\n !hideActionsCommandsByIBG) ||\r\n (identityRolesService.IsCbsOps && hideActionsCommandsByIBG)\r\n );\r\n }\r\n\r\n public CanReferToUnderwriter(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n //the rest handle by this.actions.submit.visible\r\n return showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n }\r\n\r\n public CanSubmit(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n //the rest handle by this.actions.submit.visible\r\n return showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n }\r\n public CanSubmitForREN(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n //the rest handle by this.actions.submit.visible\r\n return showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n }\r\n}\r\n","import { AbstractButtonPanel } from \"./abstract-button-panel\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport * as Const from \"./../../../../framework/const.shared\";\r\nimport { common } from \"./../../../../framework/utils/common\";\r\nimport { ProposalEntity } from \"../../base/proposal-entity.model\";\r\nimport { MortgageFireSingaporeProposal } from \"../../sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { ProposalStatus } from \"src/app/framework/enum.shared\";\r\n\r\nexport class HaseButtonPanel implements AbstractButtonPanel {\r\n GetIncompleteActions(\r\n identityRolesService: IdentityRolesService,\r\n proposal: ProposalEntity\r\n ): Array {\r\n const actions = new Array();\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n case Enums.UserType.Broker:\r\n if (\r\n identityRolesService.IsHASEUser &&\r\n common.isDefined(proposal.productId) &&\r\n (proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING)\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n if (\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n ) {\r\n if (proposal.proposalStatus === Enums.ProposalStatus.Approved) {\r\n actions.push(Enums.ProposalCommandAction.EditQuotation);\r\n } else {\r\n actions.push(Enums.ProposalCommandAction.Approve);\r\n }\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n public GetApprovedActions(\r\n identityRolesService: IdentityRolesService,\r\n proposal: ProposalEntity\r\n ): Array {\r\n const actions = new Array();\r\n\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n case Enums.UserType.Broker: //Hase's broker will resume what Dbs's UW's role\r\n if (\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n // renewal\r\n if (\r\n (proposal.transType === Enums.TransType.NEW ||\r\n proposal.transType === Enums.TransType.END ||\r\n proposal.transType === Enums.TransType.REN) &&\r\n proposal.proposalType === Enums.ProposalType.Policy &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n // 30 days before & 30 days after for HDB & PTE - CBG\r\n // 19 days before & 30 days after for MIP - CBG\r\n // 88 days before & 30 days after for MAR & FIRE - IBG\r\n if (proposal.auxiliary.allowRenewal) {\r\n actions.push(Enums.ProposalCommandAction.Renew);\r\n }\r\n }\r\n // reinstate year2 cancellation\r\n if (\r\n proposal.auxiliary.IsPreviousYearTerminated &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n proposal.transType !== Enums.TransType.CAN\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n // refund minimum premium\r\n if (\r\n proposal.transType === Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n proposal.auxiliary.DisplayCancellationAdjustment\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.CancellationAdjustment);\r\n }\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n public ProductAllowApproved(proposalEntity: ProposalEntity): boolean {\r\n if (\r\n proposalEntity.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING || //HE-28\r\n proposalEntity.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public CanSave(\r\n showSaveAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.CanSaveByWpb(\r\n showSaveAction,\r\n existingLogic,\r\n identityRolesService,\r\n proposal\r\n );\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return showSaveAction && existingLogic;\r\n default:\r\n return showSaveAction && existingLogic;\r\n }\r\n }\r\n\r\n private CanSaveByWpb(\r\n showSaveAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n //showSaveAction && //api (AvailableActionHelper.cs) has to add or ui has set: this.actions.approve.visible, to true\r\n if (\r\n identityRolesService.getIdentity().currentUser().userType ==\r\n Enums.UserType.Underwriter &&\r\n proposal.proposalStatus == Enums.ProposalStatus.Referred\r\n ) {\r\n return false;\r\n }\r\n return showSaveAction && existingLogic;\r\n }\r\n\r\n public CanEditQuotation(\r\n showEditQuotation: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.CanEditQuotationByWpb(\r\n showEditQuotation,\r\n existingLogic,\r\n identityRolesService,\r\n proposal\r\n );\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return showEditQuotation && existingLogic;\r\n default:\r\n return showEditQuotation && existingLogic;\r\n }\r\n }\r\n\r\n private CanEditQuotationByWpb(\r\n showEditQuotation: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Broker:\r\n if (\r\n proposal.proposalStatus == Enums.ProposalStatus.Approved //||\r\n //proposal.proposalStatus == Enums.ProposalStatus.Declined\r\n ) {\r\n return true;\r\n }\r\n break;\r\n case Enums.UserType.Underwriter:\r\n if (\r\n proposal.proposalStatus == Enums.ProposalStatus.Approved //||\r\n //proposal.proposalStatus == Enums.ProposalStatus.Declined\r\n ) {\r\n return true;\r\n }\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n return showEditQuotation && existingLogic;\r\n }\r\n\r\n public CanApprove(\r\n showApproveAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.CanApproveByWpb(\r\n showApproveAction,\r\n identityRolesService,\r\n proposal\r\n );\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return showApproveAction && existingLogic;\r\n default:\r\n return showApproveAction && existingLogic;\r\n }\r\n }\r\n\r\n private CanApproveByWpb(\r\n showApproveAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n return (\r\n //showApproveAction && //api (AvailableActionHelper.cs) has to add or ui has set: this.actions.approve.visible, to true\r\n identityRolesService.getIdentity().currentUser().userType ==\r\n Enums.UserType.Underwriter &&\r\n proposal.proposalStatus == Enums.ProposalStatus.Referred\r\n );\r\n }\r\n\r\n public CanEdit(\r\n showEditAction: boolean,\r\n existingLogic: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return showEditAction && existingLogic; //todo: code changed, for future\r\n }\r\n\r\n public CanChecked(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireSingaporeProposal\r\n ) {\r\n return false;\r\n }\r\n\r\n public CanBindPolicy(\r\n identityRolesService: IdentityRolesService,\r\n hideActionsCommandsByIBG: boolean\r\n ): boolean {\r\n return identityRolesService.hasProductTransactRoles;\r\n }\r\n\r\n public CanReferToUnderwriter(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.showReferToUnderwriterByWpb(\r\n showSubmitAction,\r\n identityRolesService,\r\n proposal,\r\n proposalService\r\n );\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return false;//showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n default:\r\n return false; //showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n }\r\n }\r\n\r\n private showReferToUnderwriterByWpb(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n //NB (transType) can have 2 draft proposal-statuses, one is Incomplete (after save), one is None (before save)\r\n //NB also can have referred proposal-status\r\n const isIncomplete =\r\n proposal.proposalStatus === ProposalStatus.None ||\r\n proposal.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n\r\n if (\r\n identityRolesService.isBroker &&\r\n proposalService.isFinancialEndorsementOrNbOrCan() &&\r\n isIncomplete\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public CanSubmitForREN(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n default:\r\n const flag =\r\n proposal.transType === Enums.TransType.REN && showSubmitAction;\r\n return flag;\r\n }\r\n }\r\n\r\n public CanSubmit(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.showSubmitByWpb(\r\n showSubmitAction,\r\n identityRolesService,\r\n proposal,\r\n proposalService\r\n );\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n default:\r\n return showSubmitAction; //dummy/temporary, for future; submit can be 'bind' or 'Checked'\r\n }\r\n }\r\n\r\n private showSubmitByWpb(\r\n showSubmitAction: boolean,\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Broker:\r\n const propStatus = proposal.proposalStatus;\r\n //NB (transType) can have 2 draft Proposal-statuses, one is Incomplete (after save), one is None (before save)\r\n //NB also can have referred Proposal-status\r\n const isIncomplete =\r\n propStatus === ProposalStatus.None ||\r\n propStatus === ProposalStatus.Incomplete;\r\n const manual_uw = proposalService.compareQuestionAnswer(\r\n proposal!.qsMaster.qs_master_manualUnderwritting!\r\n );\r\n\r\n //HE-28\r\n if (\r\n proposalService.isFinancialEndorsementOrNbOrCan() &&\r\n isIncomplete &&\r\n manual_uw\r\n ) {\r\n return false;\r\n } else if (\r\n proposal.transType === Enums.TransType.NEW &&\r\n isIncomplete &&\r\n proposal.proposalId &&\r\n proposal.proposalId.toString() !==\r\n \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n //NB but not manual UW\r\n return true;\r\n }\r\n return showSubmitAction;\r\n default:\r\n return showSubmitAction; //dummy, the rest handle by this.actions.submit.visible\r\n }\r\n }\r\n}\r\n","import * as EnumSG from \"../../sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { AbstractDocType } from \"./abstract-doc-type\";\r\n\r\nexport class DbsDocType implements AbstractDocType {\r\n public getDocTypeList(\r\n clientType: EnumSG.ClientType\r\n ): Array<{ text: string; value: string }> {\r\n return [\r\n { text: \"Singapore NRIC\", value: \"1\" },\r\n { text: \"Singapore PR\", value: \"2\" },\r\n { text: \"Malaysia IC\", value: \"3\" },\r\n { text: \"Foreign Passport\", value: \"4\" },\r\n ];\r\n }\r\n\r\n public getDocTypeCaption(): string {\r\n return \"Document Type\";\r\n }\r\n\r\n public showClientTypeOthers(): boolean {\r\n return false;\r\n }\r\n}\r\n","import * as EnumSG from \"../../sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as MfEnum from \"../../sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport { AbstractDocType } from \"./abstract-doc-type\";\r\n\r\nexport class HaseDocType implements AbstractDocType {\r\n public getDocTypeList(\r\n clientType: EnumSG.ClientType\r\n ): Array<{ text: string; value: string }> {\r\n switch (clientType) {\r\n case MfEnum.ClientType.Person: {\r\n return [\r\n { text: \"Hk Id Card\", value: \"I\" },\r\n { text: \"Passport\", value: \"P\" },\r\n ];\r\n }\r\n case MfEnum.ClientType.Organization: {\r\n return [\r\n { text: \"Business Registration Document\", value: \"B\" },\r\n { text: \"CI\", value: \"C\" },\r\n ];\r\n }\r\n case MfEnum.ClientType.Others:\r\n default: {\r\n return [{ text: \"Others\", value: \"X\" }];\r\n }\r\n }\r\n }\r\n\r\n public getDocTypeCaption(): string {\r\n return \"Mortgagor ID Type\";\r\n }\r\n\r\n public showClientTypeOthers(): boolean {\r\n return true;\r\n }\r\n}\r\n","import { AbstractGooglePlaces } from \"../google-places/abstract-google-places\";\r\nimport { DbsGooglePlaces } from \"../google-places/dbs-google-places\";\r\nimport { AbstractDocType } from \"../doc-type/abstract-doc-type\";\r\nimport { DbsDocType } from \"../doc-type/dbs-doc-type\";\r\nimport { AbstractProductFactory } from \"./abstract-product-factory\";\r\nimport { AbstractButtonPanel } from \"../button-panel/abstract-button-panel\";\r\nimport { DbsButtonPanel } from \"../button-panel/dbs-button-panel\";\r\nimport { AbstractProposal } from \"../proposal/abstract-proposal\";\r\nimport { DbsProposal } from \"../proposal/dbs-proposal\";\r\nimport { AbstractMaster } from \"../master/abstract-master\";\r\nimport { DbsMaster } from \"../master/dbs-master\";\r\nimport { AbstractPremiumSummary } from \"../premium-summary/abstract-premium-summary\";\r\nimport { DbsPremiumSummary } from \"../premium-summary/dbs-premium-summary\";\r\n\r\nexport class DbsProductFactory implements AbstractProductFactory {\r\n docTypeList(): AbstractDocType {\r\n return new DbsDocType();\r\n }\r\n\r\n googlePlaces(): AbstractGooglePlaces {\r\n return new DbsGooglePlaces();\r\n }\r\n\r\n buttonPanel(): AbstractButtonPanel {\r\n return new DbsButtonPanel();\r\n }\r\n\r\n master(): AbstractMaster {\r\n return new DbsMaster();\r\n }\r\n\r\n premiumSummary(): AbstractPremiumSummary {\r\n return new DbsPremiumSummary();\r\n }\r\n\r\n proposal(): AbstractProposal {\r\n return new DbsProposal();\r\n }\r\n}\r\n","import { AbstractGooglePlaces } from \"../google-places/abstract-google-places\";\r\nimport { HaseGooglePlaces } from \"../google-places/hase-google-places\";\r\nimport { AbstractDocType } from \"../doc-type/abstract-doc-type\";\r\nimport { AbstractProductFactory } from \"./abstract-product-factory\";\r\nimport { HaseDocType } from \"../doc-type/hase-doc-type\";\r\nimport { AbstractButtonPanel } from \"../button-panel/abstract-button-panel\";\r\nimport { HaseButtonPanel } from \"../button-panel/hase-button-panel\";\r\nimport { AbstractProposal } from \"../proposal/abstract-proposal\";\r\nimport { HaseProposal } from \"../proposal/hase-proposal\";\r\nimport { AbstractMaster } from \"../master/abstract-master\";\r\nimport { HaseMaster } from \"../master/hase-master\";\r\nimport { AbstractPremiumSummary } from \"../premium-summary/abstract-premium-summary\";\r\nimport { HasePremiumSummary } from \"../premium-summary/hase-premium-summary\";\r\n\r\nexport class HaseProductFactory implements AbstractProductFactory {\r\n docTypeList(): AbstractDocType {\r\n return new HaseDocType();\r\n }\r\n\r\n googlePlaces(): AbstractGooglePlaces {\r\n return new HaseGooglePlaces();\r\n }\r\n\r\n buttonPanel(): AbstractButtonPanel {\r\n return new HaseButtonPanel();\r\n }\r\n\r\n master(): AbstractMaster {\r\n return new HaseMaster();\r\n }\r\n\r\n premiumSummary(): AbstractPremiumSummary {\r\n return new HasePremiumSummary();\r\n }\r\n\r\n proposal(): AbstractProposal {\r\n return new HaseProposal();\r\n }\r\n}\r\n","import { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { AbstractGooglePlaces } from \"./abstract-google-places\";\r\n\r\nexport class DbsGooglePlaces implements AbstractGooglePlaces {\r\n public getGooglePlacesOptions(): Options {\r\n return {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [\"sg\"] },\r\n } as unknown as Options;\r\n }\r\n}\r\n","import { Options } from \"ngx-google-places-autocomplete/objects/options/options\";\r\nimport { AbstractGooglePlaces } from \"./abstract-google-places\";\r\n\r\nexport class HaseGooglePlaces implements AbstractGooglePlaces {\r\n public getGooglePlacesOptions(): Options {\r\n return {\r\n types: [\"address\"],\r\n componentRestrictions: { country: [\"hk\"] },\r\n } as unknown as Options;\r\n }\r\n}\r\n","import { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\"; //dummy, will refer to sg in the future\r\nimport { AbstractMaster } from \"./abstract-master\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\n\r\nexport class DbsMaster implements AbstractMaster {\r\n public showClientSearch(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n if (\r\n proposal.transType === Enum.TransType.NEW &&\r\n proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n return true; //NB\r\n }\r\n return false;\r\n }\r\n\r\n public showManualUnderwriting(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n return true; //dummy for future\r\n }\r\n}\r\n","import { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { AbstractMaster } from \"./abstract-master\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as Const from \"./../../../../framework/const.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\n\r\nexport class HaseMaster implements AbstractMaster {\r\n public showClientSearch(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.showClientSearchByWpb(identityRolesService, proposal);\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return this.showClientSearchByWpb(proposal);\r\n default:\r\n return this.showClientSearchByCmb(proposal);\r\n }\r\n }\r\n\r\n private showClientSearchByWpb(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n if (identityRolesService.isBroker) {\r\n if (\r\n proposal.transType === Enum.TransType.NEW &&\r\n proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n return true; //NB\r\n }\r\n } else if (identityRolesService.isUnderwriter) {\r\n if (\r\n proposal.transType === Enum.TransType.NEW &&\r\n (proposal.proposalStatus === Enum.ProposalStatus.Incomplete ||\r\n proposal.proposalStatus === Enum.ProposalStatus.Referred)\r\n ) {\r\n return true; //NB with referred\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private showClientSearchByCmb(\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n if (\r\n proposal.transType === Enum.TransType.NEW &&\r\n proposal.proposalStatus === Enum.ProposalStatus.Incomplete\r\n ) {\r\n return true; //NB\r\n }\r\n return false;\r\n }\r\n\r\n public showManualUnderwriting(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.showManualUnderwritingByWpb(identityRolesService, proposal);\r\n // case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n // return this.showManualUnderwritingByCmb(identityRolesService, proposal);\r\n default:\r\n return this.showManualUnderwritingByCmb(identityRolesService, proposal);\r\n }\r\n }\r\n\r\n private showManualUnderwritingByWpb(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n if (\r\n //identityRolesService.isBroker || //HE-28: only uw can perform manual-uw\r\n identityRolesService.isUnderwriter\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private showManualUnderwritingByCmb(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal\r\n ): boolean {\r\n if (identityRolesService.isBroker || identityRolesService.isUnderwriter) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { AbstractPremiumSummary } from \"./abstract-premium-summary\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager\";\r\n\r\nexport class DbsPremiumSummary implements AbstractPremiumSummary {\r\n public Can_toggle_manualUw(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n return true; //todo: code changed, for future\r\n }\r\n\r\n public getMinPremium(proposal: MortgageFireHongKongProposal): number {\r\n return MortgageFireHongKongFieldValidationManager.minPremium; //dummy\r\n }\r\n}\r\n","import { MortgageFireHongKongProposal } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { AbstractPremiumSummary } from \"./abstract-premium-summary\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport * as Const from \"./../../../../framework/const.shared\";\r\nimport { common } from \"./../../../../framework/utils/common\";\r\nimport { MfHKProposalService } from \"src/app/services/new-product/sme/mortgage-fire/hong-kong/mf-hk-proposal.service\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"../../sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager\";\r\n\r\nexport class HasePremiumSummary implements AbstractPremiumSummary {\r\n public Can_toggle_manualUw(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n switch (proposal.productId?.toString().toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n return this.CanToggleManualUwByWpb(\r\n identityRolesService,\r\n proposal,\r\n proposalService\r\n );\r\n case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING:\r\n return this.CanToggleManualUwByCmb(proposal, proposalService);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private CanToggleManualUwByWpb(\r\n identityRolesService: IdentityRolesService,\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n const isUnderwriter =\r\n identityRolesService.getIdentity().currentUser().userType ==\r\n Enum.UserType.Underwriter;\r\n\r\n const manual_uw = proposalService.compareQuestionAnswer(\r\n proposal!.qsMaster.qs_master_manualUnderwritting!\r\n );\r\n\r\n const canEditCommissionStatuses =\r\n proposal.proposalStatus === Enum.ProposalStatus.Incomplete ||\r\n proposal.proposalStatus === Enum.ProposalStatus.Referred ||\r\n proposal.proposalStatus === Enum.ProposalStatus.Approved ||\r\n proposal.proposalStatus === Enum.ProposalStatus.Declined;\r\n\r\n return isUnderwriter && canEditCommissionStatuses && manual_uw;\r\n }\r\n\r\n private CanToggleManualUwByCmb(\r\n proposal: MortgageFireHongKongProposal,\r\n proposalService: MfHKProposalService\r\n ): boolean {\r\n //do it outside\r\n // const manual_uw = proposalService.compareQuestionAnswer(\r\n // proposal!.qsMaster.qs_master_manualUnderwritting!\r\n // );\r\n\r\n const isIncomplete =\r\n proposal.proposalStatus === Enum.ProposalStatus.Incomplete;\r\n return isIncomplete; // && manual_uw;\r\n }\r\n\r\n public getMinPremium(proposal: MortgageFireHongKongProposal): number {\r\n const isCMBProduct =\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING;\r\n\r\n if (isCMBProduct) {\r\n return this.getCmbMinPremium(proposal);\r\n } else {\r\n return this.getWpbMinPremium(proposal);\r\n }\r\n }\r\n\r\n private getWpbMinPremium(proposal: MortgageFireHongKongProposal): number {\r\n return -1000000000;\r\n }\r\n\r\n private getCmbMinPremium(proposal: MortgageFireHongKongProposal): number {\r\n if (\r\n proposal.transType === Enum.TransType.NEW && //DBSEP-7012\r\n this.isManualUW(proposal)\r\n ) {\r\n return MortgageFireHongKongFieldValidationManager.minPremium;\r\n } else {\r\n return -1000000000;\r\n }\r\n }\r\n\r\n isManualUW(proposal: MortgageFireHongKongProposal) {\r\n return (\r\n proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\" ||\r\n proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n );\r\n }\r\n}\r\n","import { AbstractProposal } from \"./abstract-proposal\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport { ApiMapperNotifierModel } from \"../../notifier/api-mapper-notifier.model\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\nimport { ProposalEntity } from \"../../base/proposal-entity.model\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n\r\nexport class DbsProposal implements AbstractProposal {\r\n public IsApprovedReadOnly(proposal: ProposalEntity): boolean {\r\n //DBSEP-2136\r\n if (\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public IsIncompleteReadOnly(identityRolesService: IdentityRolesService) {\r\n // only Maker and Underwriter is editable in draft mode\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n // only Underwriter is editable in referred mode\r\n return false;\r\n\r\n case Enums.UserType.Broker:\r\n if (identityRolesService.getIdentity().role.isMaker) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n public isApiMapperNotifierModelAssignable(\r\n dataObject: ApiMapperNotifierModel\r\n ): boolean {\r\n return (\r\n common.isUndefinedOrNull(dataObject) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isUndefinedOrNull(dataObject.proposalEntity)) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isDefined(dataObject.proposalEntity) &&\r\n this.isDbsProposalEntity(dataObject.proposalEntity)) //if defined when init-ed\r\n );\r\n }\r\n\r\n public isDbsProposalEntity(proposal: ProposalEntity): boolean {\r\n return (\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MORTGAGEINTERESTPLUS ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSPTE ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSHDB ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_CITI_HOUSEOWNERPLUSHDB ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_CITI_MORTGAGEFIREINSURANCEPTE ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_CITI_MORTGAGEFIREINSURANCECONDO\r\n );\r\n }\r\n\r\n public isKeyValueProposalEntityAssignable(\r\n dataObject: KeyValue\r\n ) {\r\n return (\r\n common.isUndefinedOrNull(dataObject) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isUndefinedOrNull(dataObject.value)) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isDefined(dataObject.value) &&\r\n this.isDbsProposalEntity(dataObject.value)) //if defined when init-ed\r\n );\r\n }\r\n}\r\n","import { AbstractProposal } from \"./abstract-proposal\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport * as Enums from \"src/app/framework/enum.shared\";\r\nimport { ApiMapperNotifierModel } from \"../../notifier/api-mapper-notifier.model\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\nimport { ProposalEntity } from \"../../base/proposal-entity.model\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n\r\nexport class HaseProposal implements AbstractProposal {\r\n public IsApprovedReadOnly(proposal: ProposalEntity): boolean {\r\n if (\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING || //HE-28\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public IsIncompleteReadOnly(identityRolesService: IdentityRolesService) {\r\n switch (identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n case Enums.UserType.Broker:\r\n if (identityRolesService.getIdentity().role.IsHASEUser) {\r\n return false;\r\n }\r\n\r\n return true;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n public isApiMapperNotifierModelAssignable(\r\n dataObject: ApiMapperNotifierModel\r\n ): boolean {\r\n return (\r\n common.isUndefinedOrNull(dataObject) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isUndefinedOrNull(dataObject.proposalEntity)) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isDefined(dataObject.proposalEntity) &&\r\n this.isHaseProposalEntity(dataObject.proposalEntity)) //if defined when init-ed\r\n );\r\n }\r\n\r\n public isHaseProposalEntity(proposal: ProposalEntity): boolean {\r\n return (\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING ||\r\n proposal!.productId!.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n );\r\n }\r\n\r\n public isKeyValueProposalEntityAssignable(\r\n dataObject: KeyValue\r\n ) {\r\n return (\r\n common.isUndefinedOrNull(dataObject) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isUndefinedOrNull(dataObject.value)) || //if undefined when first init; has to let it pass-thru since unknown\r\n (common.isDefined(dataObject) &&\r\n common.isDefined(dataObject.value) &&\r\n this.isHaseProposalEntity(dataObject.value)) //if defined when init-ed\r\n );\r\n }\r\n}\r\n","export class Echo {\r\n public key?: string;\r\n public title?: string;\r\n public entity?: T;\r\n public info?: any;\r\n\r\n constructor(public message: string) {\r\n }\r\n}\r\n","import { Echo } from './echo.model';\r\n\r\nexport class Echos {\r\n info: any;\r\n\r\n constructor(public title: string,\r\n public echos: Echo[]) {\r\n }\r\n}\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\n\r\nexport class ProposalActionModel {\r\n visible: boolean = true;\r\n disabled: boolean = false;\r\n\r\n constructor(\r\n public command: Enums.ProposalCommandAction,\r\n public displayText: string\r\n ) {}\r\n}\r\n\r\nexport class ProposalAction {\r\n save: ProposalActionModel;\r\n sendToChecker: ProposalActionModel;\r\n returnForRevise: ProposalActionModel;\r\n recalculate: ProposalActionModel;\r\n submit: ProposalActionModel;\r\n approve: ProposalActionModel;\r\n accept: ProposalActionModel;\r\n renew: ProposalActionModel;\r\n decline: ProposalActionModel;\r\n makeRedundant: ProposalActionModel;\r\n unsuccessful: ProposalActionModel;\r\n exit: ProposalActionModel;\r\n endorsement: ProposalActionModel;\r\n cancel: ProposalActionModel;\r\n copy: ProposalActionModel;\r\n createOrEdit: ProposalActionModel;\r\n cancellationAdjustment: ProposalActionModel;\r\n ChangeOfCorrespondenceAddress: ProposalActionModel;\r\n EditQuotation: ProposalActionModel;\r\n\r\n constructor() {\r\n this.save = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Save,\r\n \"Save\"\r\n );\r\n this.sendToChecker = new ProposalActionModel(\r\n Enums.ProposalCommandAction.SendToChecker,\r\n \"Send To Checker\"\r\n );\r\n this.returnForRevise = new ProposalActionModel(\r\n Enums.ProposalCommandAction.ReturnForRevise,\r\n \"Return For Revise\"\r\n );\r\n this.recalculate = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Recalculate,\r\n \"Refresh Premium Summary\"\r\n );\r\n this.submit = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Submit,\r\n \"Get Quote\"\r\n );\r\n this.approve = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Approve,\r\n \"Approve\"\r\n );\r\n this.accept = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Accept,\r\n \"Bind Policy\"\r\n );\r\n this.renew = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Renew,\r\n \"Renew\"\r\n );\r\n this.decline = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Decline,\r\n \"Decline Quote\"\r\n );\r\n this.makeRedundant = new ProposalActionModel(\r\n Enums.ProposalCommandAction.MakeRedundant,\r\n \"Make Redundant\"\r\n );\r\n this.unsuccessful = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Unsuccessful,\r\n \"Unsuccessful\"\r\n );\r\n this.exit = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Exit,\r\n \"Exit\"\r\n );\r\n this.endorsement = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Endorse,\r\n \"Modify\"\r\n );\r\n this.cancel = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Cancel,\r\n \"Terminate\"\r\n );\r\n this.copy = new ProposalActionModel(\r\n Enums.ProposalCommandAction.Copy,\r\n \"Copy\"\r\n );\r\n this.createOrEdit = new ProposalActionModel(\r\n Enums.ProposalCommandAction.EditDeclinedProposal,\r\n \"Edit\"\r\n );\r\n this.cancellationAdjustment = new ProposalActionModel(\r\n Enums.ProposalCommandAction.CancellationAdjustment,\r\n \"Refund MinimumPremium\"\r\n );\r\n this.ChangeOfCorrespondenceAddress = new ProposalActionModel(\r\n Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress,\r\n \"Cancellation Addr. Update\"\r\n );\r\n   this.EditQuotation = new ProposalActionModel(\r\n   Enums.ProposalCommandAction.EditQuotation,\r\n \"Edit Quotation\"\r\n );\r\n }\r\n}\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"./../../../framework/interface.product\";\r\n\r\nimport { ApprovalHistory } from \"./approval-history.model\";\r\nimport { Echo } from \"./echo.model\";\r\nimport { EndorsementClause } from \"./endorsement-cluase.model\";\r\nimport { ClausesandDeductibles } from \"./Clauses-Deductibles.model\";\r\nimport { EndorsementHistory } from \"./endorsement-history.model\";\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { PremiumSummary } from \"./premium-summary.model\";\r\nimport { ProposalHeader } from \"./proposal-header\";\r\nimport { ProposalPendingTransaction } from \"./proposal-pending-transaction.model\";\r\nimport { QuestionEntity } from \"./question-entity.model\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\nimport { environment } from \"./../../../../environments/environment\";\r\n\r\nexport class ProposalEntity {\r\n constructor(proposalId?: GUID, productId?: GUID) {\r\n if (common.isDefined(productId)) {\r\n this.productId = productId;\r\n } else {\r\n this.productId = new GUID();\r\n }\r\n\r\n if (common.isDefined(proposalId)) {\r\n this.proposalId = proposalId;\r\n } else {\r\n this.proposalId = new GUID();\r\n }\r\n }\r\n\r\n /** Entity return from back-end */\r\n serverEntity: any;\r\n /** Unique numeric ID used by front-end */\r\n get proposalKey(): number {\r\n return this.proposalId!.toId();\r\n }\r\n\r\n /** pdid. Proposal Product GUID */\r\n productId?: GUID;\r\n /** pid Proposal GUID */\r\n proposalId?: GUID;\r\n /** Quote Number */\r\n quoteNumber?: string;\r\n /** Policy Number */\r\n policyNumber?: string;\r\n /** Policy Certificate Number */\r\n policyCertificateNumber?: string;\r\n /** section. Page/Panel section */\r\n questionSection?: number;\r\n /** e. Proposal effective date */\r\n effectiveDate?: Date;\r\n /** e. Start effective date */\r\n lastSubmittedDate?: Date;\r\n /** qas. Proposal Question Answer list */\r\n questions?: QuestionEntity[];\r\n /** sm. System message to the user */\r\n systemMessages?: Echo[];\r\n /** um. Underwriter message to the user. Usually contains proposal referred message */\r\n underwriterMessages?: Echo[];\r\n /** vm. Proposal validation message to the user. Usually contains mandatory question not answered message */\r\n validationsMessages?: Array<[string]>;\r\n\r\n /** custid. dbo.CustomerMapping.CustomerMapping */\r\n customerMappingID?: number;\r\n /** custAddid. dbo.Address.AddressId. AddressId of mapped customer */\r\n customerMappingAddressID?: number;\r\n /** custt. Mapped customer type */\r\n customerType?: Enums.CommonForeignType;\r\n /** custcountryISO2. Mapped customer country ISO2 */\r\n customerCountryISO2?: string;\r\n\r\n /** Proposal Header */\r\n header?: ProposalHeader[];\r\n /** pre. Proposal premium */\r\n proposalPremiumModel?: PremiumSummary;\r\n /** ro. Flag to determine if whole proposal is read only */\r\n proposalReadOnly?: boolean;\r\n /** tt. Proposal transaction type */\r\n transType?: Enums.TransType;\r\n /** ddt. List of available document for download */\r\n downloadDocument?: Enums.DocumentType[];\r\n /** im. Flag to determine if this migrated proposal */\r\n isMigrated?: boolean;\r\n /** child proposal */\r\n children?: ProposalEntity[];\r\n /** Child question schema */\r\n childQuestionSchema?: QuestionEntity[];\r\n /** Proposal Title */\r\n title?: string;\r\n\r\n /** BrokerID */\r\n producerOrganisationId!: number;\r\n /** BrokerUserID */\r\n producerUserId!: number;\r\n /*Broker Commission*/\r\n brokerCommission?: number;\r\n /** Approval History */\r\n approvalHistory?: ApprovalHistory[];\r\n /** Approval History Dictionary */\r\n approvalHistoryDictionary?: any;\r\n /** Endorsement clause table */\r\n endorsementClauseTable?: EndorsementClause[];\r\n /** All Clauses and Deductibles table */\r\n clausesDeductiblesTable!: ClausesandDeductibles[];\r\n /** Auxiliary data - generic to be use by a lot of things */\r\n auxiliary?: any;\r\n /** Downloadable Documents */\r\n downloadableDocuments?: Enums.DocumentType[];\r\n /** Flag to determine if this proposal/child is newly added by current transaction */\r\n isNewlyAddedByCurrentTransaction?: boolean;\r\n\r\n /** Proposal Question Dictionary Group by QuestionName */\r\n questionDictionary!: { [key: string]: QuestionEntity };\r\n /** Proposal Question Dictionary Group by QuestionPanelId */\r\n questionPanelDictionary!: { [key: string]: QuestionEntity[] };\r\n /** Previous Proposal Question Dictionary Group by QuestionName */\r\n previousPolicyQuestions!: { [key: string]: any };\r\n\r\n /** Proposal Status. dbo.Proposal.ProposalAdditionalStatusId */\r\n proposalStatus!: Enums.ProposalStatus;\r\n /** Proposal Type */\r\n proposalType!: Enums.ProposalType;\r\n\r\n /** DBS bank reference number */\r\n bankReferenceNo?: string;\r\n /** Master policy number */\r\n masterPolicyNumber?: string;\r\n /** Associated Client Code */\r\n clientCode?: string;\r\n /** Last submitted Maker UserId */\r\n makerUserId?: number;\r\n /** Last Approved/Return for revise Checker UserId */\r\n checkerUserId?: number;\r\n /** Copy Process For */\r\n copyProcessFor?: Enums.copyProcessFor;\r\n\r\n /** Current Policy Pending Transaction ProposalId */\r\n pendingTransactionProposalId?: GUID;\r\n /** Current Policy Pending Transaction TransType */\r\n pendingTransactionType?: Enums.TransType;\r\n\r\n /** Flag to indicate endorsement type while performing endorsement action */\r\n endorsementType?: number = 1; // default to 1 General Endorsement\r\n\r\n addtionalEndorsementType?: number = 0; // differentiate bind (1) and refer-to-UW (2), which both are submit\r\n\r\n /** Flag to indicate if loan fully redeemed */\r\n loanRedeemed?: boolean;\r\n\r\n /** Pending transaction of existing policy */\r\n pendingTransaction?: ProposalPendingTransaction;\r\n /** endorsement history of existing policy */\r\n endorsementHistory?: EndorsementHistory[];\r\n /** Original Inception Date */\r\n originalInceptionDate?: any = new Date(); // default to current Date\r\n /** Minimum Policy Effective Date */\r\n minimumEffectiveDate?: any;\r\n makerUserName?: any;\r\n checkerUserName?: any;\r\n openItems?: any;\r\n isPremiumManualOverridden?: boolean;\r\n /** Quote submission */\r\n quotes?: InterfaceProduct.IQuote[];\r\n bindQuestionDictionary(): void {\r\n this.questionDictionary = {};\r\n if (common.isDefined(this.questions)) {\r\n this.questions?.forEach((question) => {\r\n this.questionDictionary[question.key.trim().toLowerCase()] = question;\r\n });\r\n }\r\n }\r\n\r\n bindQuestionPanelDictionary(): void {\r\n this.questionPanelDictionary = {};\r\n if (common.isDefined(this.questions)) {\r\n this.questions?.forEach((question) => {\r\n if (common.isDefined(question.questionPanelId)) {\r\n const guid = question.questionPanelId?.toString();\r\n if (guid) {\r\n if (common.isUndefinedOrNull(this.questionPanelDictionary[guid])) {\r\n this.questionPanelDictionary[guid] = [];\r\n }\r\n this.questionPanelDictionary[guid].push(question);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n bindPreviousPolicyQuestionDictionary(\r\n controls: InterfaceProduct.IUiControl[]\r\n ): void {\r\n this.previousPolicyQuestions = {};\r\n controls.forEach((ui) => {\r\n if (ui && ui.k) {\r\n this.previousPolicyQuestions[ui.k] = ui.v;\r\n }\r\n });\r\n }\r\n\r\n getPreviousPolicyQuestionAnswer(questionName: string) {\r\n if (common.isUndefinedOrNull(this.previousPolicyQuestions[questionName])) {\r\n return undefined;\r\n }\r\n\r\n return this.previousPolicyQuestions[questionName];\r\n }\r\n\r\n refreshQuestionDictionary(): void {\r\n this.questionDictionary = {};\r\n this.questions?.forEach((question) => {\r\n this.questionDictionary[question.key.trim().toLowerCase()] = question;\r\n });\r\n }\r\n\r\n /** Retrieved particular question by question name */\r\n getQuestion(key: string): QuestionEntity | undefined {\r\n if (common.isUndefinedOrNull(key)) {\r\n ExceptionManager.error(\"Question [Key] not provided\");\r\n }\r\n\r\n if (common.isUndefinedOrNull(this.questions)) {\r\n ExceptionManager.error(\"Questions is undefined\");\r\n }\r\n\r\n key = key.trim().toLowerCase();\r\n\r\n if (common.isUndefinedOrNull(this.questionDictionary)) {\r\n this.refreshQuestionDictionary();\r\n }\r\n\r\n const question = this.questionDictionary[key];\r\n\r\n if (common.isUndefinedOrNull(question)) {\r\n if (!environment.production) {\r\n // console.log(`[${key}] not existed in the question list`);\r\n }\r\n return undefined;\r\n }\r\n\r\n return question;\r\n }\r\n\r\n /** To check if question existed */\r\n isQuestionExists(key: string): boolean {\r\n if (common.isUndefinedOrNull(key)) {\r\n ExceptionManager.error(\"Question [Key] not provided\");\r\n }\r\n\r\n if (common.isUndefinedOrNull(this.questions)) {\r\n ExceptionManager.error(\"Questions is undefined\");\r\n }\r\n\r\n key = key.trim().toLowerCase();\r\n\r\n return !common.isUndefinedOrNull(this.questionDictionary[key]);\r\n }\r\n}\r\n","import { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { Proposal } from \"./proposal.model\";\r\n\r\nexport abstract class ProposalPackage extends Proposal {\r\n children!: T[];\r\n\r\n abstract createOneChild(): T;\r\n\r\n abstract getChild(proposalId: GUID): T;\r\n}\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\n\r\nimport { IdentityRolesService } from \"./../../../services/identity-roles.service\";\r\nimport { EndorsementHistory } from \"./endorsement-history.model\";\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { IUser } from \"./../../../framework/interface.shared\";\r\nimport { ProductID } from \"./../../../framework/const.shared\";\r\nimport { ProposalEntity } from \"./proposal-entity.model\";\r\nimport { ProposalPendingTransaction } from \"./proposal-pending-transaction.model\";\r\nimport { QuestionEntity } from \"./question-entity.model\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\nimport { ClausesandDeductibles } from \"./Clauses-Deductibles.model\";\r\n\r\n/** Class that wrap proposal entity and act like a product specific proposal entity */\r\nexport abstract class Proposal {\r\n productId: GUID;\r\n proposalId?: GUID;\r\n currentUser: IUser;\r\n transType?: Enums.TransType = Enums.TransType.NEW;\r\n proposalStatus: Enums.ProposalStatus = Enums.ProposalStatus.Incomplete;\r\n makerUserId?: number = 0;\r\n checkerUserId?: number = 0;\r\n copyProcessFor?: Enums.copyProcessFor;\r\n quoteNumber?: string = \"\";\r\n policyNumber?: string = \"\";\r\n customerMappingId?: number = 0;\r\n customerMappingAddressID?: number = 0;\r\n //https://stackoverflow.com/questions/57086672/element-implicitly-has-an-any-type-because-expression-of-type-string-cant-b\r\n auxiliary: Record = {};\r\n endorsementType?: number;\r\n addtionalEndorsementType?: number;\r\n loanRedeemed?: boolean = false;\r\n pendingTransaction: ProposalPendingTransaction | undefined;\r\n documents: any = [];\r\n endorsementHistory!: EndorsementHistory[];\r\n clausesDeductibles!: ClausesandDeductibles[];\r\n referralMessageRequires: boolean = false;\r\n originalInceptionDate?: any;\r\n minimumEffectiveDate?: any;\r\n lastSubmittedDate?: any;\r\n makerUserName: any;\r\n checkerUserName: any;\r\n openItems: any = [];\r\n validationMessage: any = [];\r\n\r\n constructor(\r\n productId: GUID,\r\n public identityRolesService: IdentityRolesService,\r\n proposalId?: GUID\r\n ) {\r\n ExceptionManager.argumentNullGuard(productId, \"productId\");\r\n\r\n if (common.isDefined(proposalId)) {\r\n this.proposalId = proposalId;\r\n } else {\r\n this.proposalId = new GUID();\r\n }\r\n\r\n this.productId = productId;\r\n this.currentUser = this.identityRolesService.getIdentity().currentUser();\r\n }\r\n\r\n get isUnderwriter(): boolean {\r\n return this.currentUser.userType === Enums.UserType.Underwriter;\r\n }\r\n\r\n get isBroker(): boolean {\r\n return this.currentUser.userType === Enums.UserType.Broker;\r\n }\r\n\r\n private resetHeader() {\r\n // reset flag\r\n this.referralMessageRequires = false;\r\n\r\n this.transType = Enums.TransType.NEW;\r\n this.proposalStatus = Enums.ProposalStatus.Incomplete;\r\n this.makerUserId = 0;\r\n this.checkerUserId = 0;\r\n this.quoteNumber = \"\";\r\n this.policyNumber = \"\";\r\n this.customerMappingId = 0;\r\n this.customerMappingAddressID = 0;\r\n this.auxiliary = {};\r\n this.endorsementType = undefined;\r\n this.loanRedeemed = false;\r\n this.pendingTransaction = undefined;\r\n this.documents = [];\r\n this.minimumEffectiveDate = undefined;\r\n this.lastSubmittedDate = undefined;\r\n this.originalInceptionDate = undefined;\r\n this.openItems = [];\r\n this.clausesDeductibles = [];\r\n }\r\n\r\n refreshHeader(proposalEntity: ProposalEntity) {\r\n this.resetHeader();\r\n this.transType = proposalEntity.transType;\r\n this.proposalStatus = proposalEntity.proposalStatus;\r\n this.makerUserId = proposalEntity.makerUserId;\r\n this.checkerUserId = proposalEntity.checkerUserId;\r\n this.quoteNumber = proposalEntity.quoteNumber;\r\n this.policyNumber = proposalEntity.policyNumber;\r\n this.customerMappingId = proposalEntity.customerMappingID;\r\n this.customerMappingAddressID = proposalEntity.customerMappingAddressID;\r\n this.auxiliary = proposalEntity.auxiliary;\r\n this.loanRedeemed = proposalEntity.loanRedeemed;\r\n this.documents = proposalEntity.downloadableDocuments;\r\n this.checkerUserName = proposalEntity.checkerUserName;\r\n this.makerUserName = proposalEntity.makerUserName;\r\n this.openItems = proposalEntity.openItems;\r\n this.clausesDeductibles = proposalEntity.clausesDeductiblesTable;\r\n this.copyProcessFor = proposalEntity.copyProcessFor;\r\n\r\n if (common.isDefined(proposalEntity.endorsementType)) {\r\n this.endorsementType = proposalEntity.endorsementType;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.addtionalEndorsementType)) {\r\n this.addtionalEndorsementType = proposalEntity.addtionalEndorsementType;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.pendingTransaction)) {\r\n this.pendingTransaction = proposalEntity.pendingTransaction;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.minimumEffectiveDate)) {\r\n this.minimumEffectiveDate = proposalEntity.minimumEffectiveDate;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.lastSubmittedDate)) {\r\n this.lastSubmittedDate = proposalEntity.lastSubmittedDate;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.originalInceptionDate)) {\r\n this.originalInceptionDate = proposalEntity.originalInceptionDate;\r\n }\r\n }\r\n\r\n /** Not mandatory. Just a quick way to sync read only */\r\n abstract refreshQuestionsReadOnly(proposalEntity: ProposalEntity): any;\r\n\r\n /** * To refresh answers, certain properties in QuestionEntity\r\n * Normally only called once, which is the first time the proposal page is loaded. */\r\n abstract refreshQuestions(proposalEntity: ProposalEntity): any;\r\n\r\n /** To refresh calculated premiums returned from back end */\r\n abstract refreshPremiumSummary(proposalEntity: ProposalEntity): any;\r\n\r\n /** Extract all questions from all sections into an array */\r\n abstract extractQuestionArray(): QuestionEntity[];\r\n}\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\nimport { proposalConst } from \"./../const/proposal-const\";\r\nimport { questionNotifier } from \"./../notifier/question-notifier\";\r\n\r\nexport class QuestionEntity {\r\n // private variable for 'answer' property\r\n private answerValue: any;\r\n /** v. Value to the answer */\r\n get answer(): any {\r\n return this.answerValue;\r\n }\r\n set answer(value: any) {\r\n this.answerDataTypeGuard(value);\r\n this.isAnswerDirty(value);\r\n\r\n this.answerValue = value;\r\n\r\n questionNotifier.answer_change_notifier$.next(new KeyValue(this.key, this));\r\n }\r\n\r\n // private variable for 'answerDisplayText' property\r\n private answerDisplayTextValue!: string;\r\n /** answer readonly display text */\r\n get answerDisplayText(): string {\r\n if (common.isUndefinedOrNull(this.answer)) {\r\n return proposalConst.questionUnansweredDisplayText;\r\n }\r\n\r\n if (!common.isUndefinedOrNull(this.options)) {\r\n return this.optionsKeyDict?.get(this.answer)?.[0]; //this.optionsKeyDict[this.answer];//todo\r\n }\r\n\r\n if (common.isDate(this.answer)) {\r\n return this.answer.toLocaleString();\r\n }\r\n\r\n if (common.isObject(this.answer) || common.isArray(this.answer)) {\r\n return common.objectToJson(this.answer);\r\n }\r\n\r\n return this.answer.toString();\r\n }\r\n\r\n // private variable for 'answerDisplayText' property\r\n public optionsValue!: KeyValue[];\r\n private optionsKeyDict: Map = new Map(); // object;\r\n /** options list to be used by combo-box drop-down-list true-false etc... */\r\n get options(): KeyValue[] {\r\n return this.optionsValue;\r\n }\r\n\r\n set options(value: KeyValue[]) {\r\n this.optionsValue = []; //undefined;\r\n this.optionsKeyDict = new Map(); //{};\r\n\r\n if (!common.isUndefinedOrNull(value) && value.length > 0) {\r\n this.optionsValue = value;\r\n value.forEach((kv) => {\r\n //todo: check if this works\r\n //https://stackoverflow.com/questions/40358434/typescript-ts7015-element-implicitly-has-an-any-type-because-index-expression\r\n let y = this.optionsKeyDict?.get(kv.value)?.[0];\r\n if (y) {\r\n y = kv.key;\r\n }\r\n //this.optionsKeyDict[kv.value] = kv.key;\r\n });\r\n }\r\n }\r\n\r\n answerDataType: Enums.AnswerDataType | undefined;\r\n /** Original version of the \"answer\" property while the question instantiated */\r\n answerOriginalVersion: any;\r\n /** dv. Default answer */\r\n defaultAnswer?: string;\r\n /** flag to indicate if \"answer\" property value has been changed */\r\n isDirty: boolean;\r\n /** k. Question name */\r\n key: string;\r\n /** Question name for compare (key.trim().toLowerCase()) */\r\n keyTrimToLower?: string;\r\n /** ro. Read only flag */\r\n readOnly?: boolean = undefined;\r\n /** t. Label/ Text to display */\r\n displayText?: string = undefined;\r\n /** c. Question Control type. Front end take it as data type of the question answer */\r\n controlType?: Enums.UiControlType = undefined;\r\n /** i. Question additional info. Usually contains multi select options */\r\n additionalInfo?: any = undefined;\r\n /** m. Value text maximum length */\r\n maxLength?: number = undefined;\r\n /** mv. Value maximum allowed amount */\r\n maxValue?: number | Date = undefined;\r\n /** mnv. Value minimum allowed amount */\r\n minValue?: number | Date = undefined;\r\n /*step count - eg, incremental by 1000*/\r\n step?: number;\r\n /** decimal number */\r\n decimals?: number;\r\n /** r. Flag to determine if answer is mandatory */\r\n required?: boolean = undefined;\r\n /** nt. Question number */\r\n numberText?: string = undefined;\r\n /** qpid. QuestionPanelId */\r\n questionPanelId?: GUID = undefined;\r\n /** sid. Question section number */\r\n sectionId?: number = undefined;\r\n /** ig. Flag to determine if this question ignored by front end */\r\n isIgnore?: boolean = undefined;\r\n /** flag for hide and show */\r\n isVisible?: boolean = true;\r\n /** flag for disabling question */\r\n isDisabled?: boolean = false;\r\n /** extra additional attribute */\r\n attributes?: any;\r\n /** question field info */\r\n fieldInfo?: string;\r\n /** question info / place holder */\r\n questionInfo?: string;\r\n /** question located tab's index */\r\n tabId: number;\r\n /** theme */\r\n theme: Enums.QuestionTheme = Enums.QuestionTheme.Normal;\r\n\r\n constructor(\r\n key: string,\r\n answer: any,\r\n answerDataType?: Enums.AnswerDataType,\r\n options?: KeyValue[]\r\n ) {\r\n this.key = key;\r\n this.keyTrimToLower = this.key.trim().toLowerCase();\r\n\r\n if (common.isDefined(answerDataType)) {\r\n this.answerDataType = answerDataType;\r\n } else {\r\n this.answerDataType = Enums.AnswerDataType.String;\r\n }\r\n\r\n this.answerValue = answer;\r\n this.answerOriginalVersion = answer;\r\n this.options = options !== undefined ? options : [];\r\n this.isDirty = false; // default isDirty flag to false\r\n this.tabId = 0;\r\n }\r\n\r\n /** Method to check if the question has been answered */\r\n isAnswered(): boolean | undefined {\r\n // return false if answer is totally undefined\r\n if (common.isUndefinedOrNull(this.answer)) {\r\n return false;\r\n }\r\n\r\n if (common.isString(this.answer)) {\r\n return this.answer.length > 0;\r\n } else if (common.isNumber(this.answer)) {\r\n return true;\r\n } else if (common.isBoolean(this.answer)) {\r\n return true;\r\n } else if (common.isDate(this.answer)) {\r\n return true;\r\n } else if (common.isObject(this.answer)) {\r\n return !common.isEmptyObject(this.answer);\r\n } else if (common.isArray(this.answer)) {\r\n return this.answer.length > 0;\r\n }\r\n\r\n ExceptionManager.error(\"Answer Data Type not handled\");\r\n return undefined;\r\n }\r\n\r\n /** Method to read and convert the answer into string.\r\n * Answer value will be JSON.stringy() if it's an object.\r\n */\r\n readAnswerAsString(): string | undefined {\r\n // return undefined if answer is totally undefined\r\n if (common.isUndefinedOrNull(this.answer)) {\r\n return undefined;\r\n }\r\n\r\n if (common.isString(this.answer)) {\r\n return this.answer;\r\n } else if (common.isNumber(this.answer)) {\r\n return this.answer.toString();\r\n } else if (common.isBoolean(this.answer)) {\r\n return this.answer ? \"True\" : \"False\";\r\n } else if (common.isDate(this.answer)) {\r\n return this.answer.toString();\r\n } else if (common.isObject(this.answer) || common.isArray(this.answer)) {\r\n return common.objectToJson(this.answer);\r\n }\r\n\r\n ExceptionManager.error(\"Answer Data Type not handled\");\r\n return undefined;\r\n }\r\n\r\n /** Method to read and convert the answer into back-end Api expected string value */\r\n readAnswerAsApiValue(): string | undefined {\r\n // return undefined if answer is totally undefined\r\n if (common.isUndefinedOrNull(this.answer)) {\r\n return undefined;\r\n }\r\n\r\n if (common.isString(this.answer)) {\r\n return this.answer;\r\n } else if (common.isNumber(this.answer)) {\r\n return this.answer.toString();\r\n } else if (common.isBoolean(this.answer)) {\r\n return this.answer ? \"true\" : \"false\";\r\n } else if (common.isDate(this.answer)) {\r\n const year = this.answer.getFullYear();\r\n const month = this.answer.getMonth() + 1;\r\n const day = this.answer.getDate();\r\n return `${year}-${month}-${day} 12:00:00 AM`;\r\n } else if (common.isObject(this.answer) || common.isArray(this.answer)) {\r\n return common.objectToJson(this.answer);\r\n }\r\n\r\n ExceptionManager.error(\"Answer Data Type not handled\");\r\n return undefined;\r\n }\r\n\r\n /** Method to read numeric question type value\r\n * Return \"0\" if answer undefined or empty\r\n */\r\n readAnswerAsNumeric(): number | undefined {\r\n switch (this.answerDataType) {\r\n case Enums.AnswerDataType.String:\r\n case Enums.AnswerDataType.Numeric:\r\n if (common.isUndefinedOrNull(this.answer)) {\r\n return 0;\r\n }\r\n\r\n return parseFloat(this.answer);\r\n default:\r\n ExceptionManager.error(\"Data type is not numeric\");\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Method to read the answer */\r\n readAnswer(): T {\r\n return this.answer;\r\n }\r\n\r\n /** Method to clear the answer */\r\n clearAnswer(): void {\r\n this.answer = undefined;\r\n }\r\n\r\n /** Method to reset to default to answer if applicable.\r\n * ClearAnswer() will be executed if default value not available\r\n */\r\n resetToDefaultAnswer(): void {\r\n if (!common.isUndefinedOrNull(this.defaultAnswer)) {\r\n this.answerValue = this.defaultAnswer;\r\n } else {\r\n this.clearAnswer();\r\n }\r\n }\r\n\r\n /** Method to guard data type of answer value to be set */\r\n private answerDataTypeGuard(value: any) {\r\n // answer data type guard\r\n if (!common.isUndefinedOrNull(value)) {\r\n const invalidDataTypeMsg = \"[\" + this.key + \"] invalid answer data type\";\r\n switch (this.answerDataType) {\r\n case Enums.AnswerDataType.Numeric:\r\n case Enums.AnswerDataType.String:\r\n if (common.isDate(value)) {\r\n ExceptionManager.invalidArgument(value, invalidDataTypeMsg);\r\n }\r\n break;\r\n\r\n case Enums.AnswerDataType.Date:\r\n if (!common.isDate(value)) {\r\n ExceptionManager.invalidArgument(value, invalidDataTypeMsg);\r\n }\r\n break;\r\n\r\n case Enums.AnswerDataType.Boolean:\r\n // temporarily fix - to be checked with CM\r\n if (!common.isBoolean(value)) {\r\n value = value.toLowerCase() === \"true\" ? true : false;\r\n }\r\n\r\n if (!common.isBoolean(value)) {\r\n ExceptionManager.invalidArgument(value, invalidDataTypeMsg);\r\n }\r\n break;\r\n\r\n case Enums.AnswerDataType.Object:\r\n if (!common.isObject(value)) {\r\n ExceptionManager.invalidArgument(value, invalidDataTypeMsg);\r\n }\r\n break;\r\n\r\n default:\r\n ExceptionManager.invalidArgument(value, \"Data type is not numeric\");\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** Method to set isDirty flag */\r\n private isAnswerDirty(value: any) {\r\n // \"string\" | \"number\" | \"boolean\" | \"symbol\" | \"undefined\" | \"object\" | \"function\"\r\n const typeStr = typeof value;\r\n\r\n // check if value is different from \"answerOriginalVersion\"\r\n // to set isDirty flag\r\n switch (typeStr) {\r\n case \"string\":\r\n case \"number\":\r\n case \"boolean\":\r\n case \"undefined\":\r\n if (value !== this.answerOriginalVersion) {\r\n this.isDirty = true;\r\n } else {\r\n this.isDirty = false;\r\n }\r\n break;\r\n\r\n case \"object\":\r\n // TODO: find a better way to compare object\r\n // for now, set all object answer type changes to dirty if answer setter invoked\r\n this.isDirty = true;\r\n break;\r\n\r\n case \"symbol\":\r\n case \"function\":\r\n default:\r\n ExceptionManager.invalidArgument(value, \"Data type is not numeric\");\r\n break;\r\n }\r\n }\r\n}\r\n","// import * as Enums from './../../framework/enum.shared';\r\n\r\n// import { Application } from './../../application';\r\n// import { GUID } from './../../framework/domain-entity/guid';\r\nimport { MasterDataService } from \"./../../../services/master-data.service\";\r\nimport { ProposalEntity } from \"./proposal-entity.model\";\r\n// import { Question } from './../../framework/entity.product';\r\nimport { QuestionEntity } from \"./question-entity.model\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\nimport { environment } from \"./../../../../environments/environment\";\r\n\r\nexport abstract class QuestionSection {\r\n /** Array that contains references of all instances of QuestionEntity properties in the class,\r\n * useful for looping through all QuestionEntity to do certain task.\r\n */\r\n public questions: QuestionEntity[] = [];\r\n\r\n constructor(\r\n public tabId: number,\r\n public masterDataService: MasterDataService\r\n ) {\r\n this.initializeQuestionSchema();\r\n this.refreshQuestionsArray();\r\n }\r\n\r\n /** Setup Question schema\r\n * To be invoke in constructor to initializing instances of\r\n * [QuestionEntity] properties in the class and set up the basic behavior.\r\n */\r\n abstract initializeQuestionSchema(): any;\r\n\r\n /** Refresh this.questions[]\r\n * Method to push all QuestionEntity properties of the class to this.questions[] */\r\n abstract refreshQuestionsArray(): any;\r\n\r\n /** Method to refresh all instances of QuestionEntity properties in the class\r\n * by server returned ProposalEntity\r\n */\r\n refreshQuestions(proposalEntity: ProposalEntity) {\r\n this.questions.forEach((model) => {\r\n const serverEntity = proposalEntity.getQuestion(model.key);\r\n\r\n if (common.isDefined(serverEntity)) {\r\n this.readEntity(model, serverEntity!);\r\n }\r\n });\r\n }\r\n\r\n /** Method to clear all answers of QuestionEntity properties in the class */\r\n clearAnswers() {\r\n this.questions.forEach((question) => {\r\n question.clearAnswer();\r\n });\r\n }\r\n\r\n /** Method to reset all answers of QuestionEntity properties in the class */\r\n resetToDefaultAnswer() {\r\n this.questions.forEach((question) => {\r\n question.resetToDefaultAnswer();\r\n });\r\n }\r\n\r\n /** Method to sync value of certain properties with server returned data */\r\n readEntity(\r\n model: QuestionEntity,\r\n serverEntity: QuestionEntity,\r\n refreshDefaultAnswer: boolean = true\r\n ) {\r\n /** Sync server data\r\n * Do not sync everything from server,\r\n * probably sync only it's [answer] and [displayText].\r\n * Question schema should now defined by front end.\r\n * Data should always followed back-end,\r\n * but the behavior of the questions will be defined by front-end\r\n */\r\n // text to display\r\n model.displayText = serverEntity.displayText;\r\n\r\n if (\r\n common.isDefined(serverEntity.minValue) &&\r\n common.isNumber(serverEntity.minValue)\r\n ) {\r\n model.minValue = serverEntity.minValue;\r\n }\r\n\r\n if (\r\n common.isDefined(serverEntity.maxValue) &&\r\n common.isNumber(serverEntity.maxValue)\r\n ) {\r\n model.maxValue = serverEntity.maxValue;\r\n }\r\n\r\n if (\r\n common.isDefined(serverEntity.maxLength) &&\r\n common.isNumber(serverEntity.maxLength)\r\n ) {\r\n model.maxLength = serverEntity.maxLength;\r\n }\r\n\r\n if (\r\n common.isDefined(serverEntity.options) &&\r\n serverEntity.options.length > 0\r\n ) {\r\n // temporarily remove the empty option value\r\n serverEntity.options.splice(0, 1);\r\n model.options = serverEntity.options;\r\n }\r\n\r\n // answer value\r\n model.answer = serverEntity.answer;\r\n if (refreshDefaultAnswer) {\r\n model.defaultAnswer = serverEntity.defaultAnswer;\r\n model.answerOriginalVersion = serverEntity.answerOriginalVersion;\r\n }\r\n\r\n if (!environment.production) {\r\n // expected in sync with server entity checking\r\n if (model.questionPanelId !== serverEntity.questionPanelId) {\r\n const warn = `${model.key} questionPanelId not in sync with server:_\r\n model[${model.questionPanelId}] server[${serverEntity.questionPanelId}]`;\r\n // console.log(warn);\r\n }\r\n }\r\n }\r\n}\r\n","export class Rule {\r\n info: any;\r\n\r\n constructor(public id: string,\r\n public message: string,\r\n public entity: T) {\r\n }\r\n}\r\n","export class SectionTab {\r\n constructor(public displayText: string,\r\n public index: number) {\r\n }\r\n}\r\n","import { GUID } from \"src/app/framework/domain-entity/guid\";\r\n\r\nexport class Section {\r\n constructor(\r\n public name: string,\r\n public sectionId: GUID,\r\n public tabId: number\r\n ) {}\r\n}\r\n","import * as Const from \"./../../../../framework/const.shared\";\r\nimport * as Enums from \"./../../../../framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"../../../../framework/utils/exception-manager\";\r\nimport { IIdentity } from \"./../../../../framework/interface.shared\";\r\nimport { Identity } from \"../../../../shared/user/identity\";\r\nimport { ProposalEntity } from \"../proposal-entity.model\";\r\nimport { IdentityRolesService } from \"./../../../../services/identity-roles.service\";\r\nimport { Component, Injectable } from \"@angular/core\";\r\nimport { AbstractProductFactory } from \"../../abstract-factory/factory/abstract-product-factory\";\r\nimport { ProductService } from \"src/app/services/new-product/base/product.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/** Service to track user current proposal activity */\r\nexport class ProposalEditableHelperService {\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n public productService: ProductService\r\n ) {}\r\n\r\n isReadOnly(proposal: ProposalEntity): boolean {\r\n /** Current login user is transaction read only user\r\n * It could be [Claims] or whatever read only user type\r\n */\r\n if (\r\n this.identityRolesService.getIdentity().isProposalTransactionReadOnly ===\r\n true\r\n ) {\r\n return true;\r\n }\r\n\r\n switch (proposal.proposalStatus) {\r\n case Enums.ProposalStatus.Renewed:\r\n case Enums.ProposalStatus.Endorsed:\r\n case Enums.ProposalStatus.Cancelled:\r\n case Enums.ProposalStatus.Accepted:\r\n // always read only\r\n return true;\r\n\r\n case Enums.ProposalStatus.Referred:\r\n return this.referred(proposal);\r\n\r\n // draft\r\n case Enums.ProposalStatus.None:\r\n case Enums.ProposalStatus.Incomplete:\r\n return this.incomplete(proposal);\r\n //DBSEP-2136\r\n case Enums.ProposalStatus.Declined:\r\n return this.declined(proposal);\r\n case Enums.ProposalStatus.PendingChecker:\r\n // always read only\r\n return true;\r\n\r\n case Enums.ProposalStatus.Approved:\r\n var result = this.approved(proposal);\r\n if (!result) {\r\n ExceptionManager.error(\"Not to be expected to in [Approved] status\");\r\n }\r\n return result;\r\n }\r\n\r\n // default to true for unhandled case\r\n return true;\r\n }\r\n\r\n private approved(proposal: ProposalEntity): boolean {\r\n let productFactory!: AbstractProductFactory;\r\n productFactory = this.productService.getProductFactoryByProductId(\r\n proposal!.productId!\r\n );\r\n return productFactory.proposal().IsApprovedReadOnly(proposal);\r\n }\r\n\r\n private declined(proposal: ProposalEntity): boolean {\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n // only Non-operational Underwriter is able to view the declined button for IBG prodcut.\r\n case Enums.UserType.Underwriter:\r\n if (\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG)\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n default:\r\n return true;\r\n }\r\n }\r\n private referred(proposal: ProposalEntity): boolean {\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n // only Non-operational Underwriter is editable in referred mode\r\n case Enums.UserType.Underwriter:\r\n if (\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n private incomplete(proposal: ProposalEntity): boolean {\r\n let productFactory!: AbstractProductFactory;\r\n productFactory = this.productService.getProductFactoryByProductId(\r\n proposal!.productId!\r\n );\r\n return productFactory\r\n .proposal()\r\n .IsIncompleteReadOnly(this.identityRolesService);\r\n }\r\n}\r\n","import * as Enums from \"./../../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../echo.model\";\r\nimport { Echos } from \"./../echos.model\";\r\nimport { ExceptionManager } from \"./../../../../framework/utils/exception-manager\";\r\nimport { QuestionEntity } from \"./../question-entity.model\";\r\nimport { SectionTab } from \"./../section-tab.model\";\r\nimport { common } from \"./../../../../framework/utils/common\";\r\nimport { proposalHelper } from \"./../../utils/proposal.helper\";\r\n\r\nexport abstract class QuestionEntityValidator {\r\n constructor(\r\n private questions: QuestionEntity[],\r\n private tabSchemas: SectionTab[]\r\n ) {}\r\n\r\n validate(callback?: (echosToAdd: Echos) => void) {\r\n const mandatoryResult = this.checkMandatory(true);\r\n const maxLengthResult = this.checkMaxLength(false);\r\n const minMaxValueResult = this.checkMinMaxValue(false);\r\n\r\n let results = lodash.concat(mandatoryResult, maxLengthResult);\r\n results = lodash.concat(results, minMaxValueResult);\r\n\r\n lodash.sortBy(results, [\"key\"]);\r\n\r\n if (results.length > 0) {\r\n return this.convertToEchos(results, callback);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n protected convertToEchos(\r\n input: Echo[],\r\n callback?: (echosToAdd: Echos) => void\r\n ): Echos[] {\r\n const results: Echos[] = [];\r\n const resultEchos = proposalHelper.convertToEchos(input);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n this.tabSchemas\r\n );\r\n if (common.isDefined(callback) && callback) {\r\n callback(echosToAdd);\r\n }\r\n results.push(echosToAdd);\r\n });\r\n\r\n return results;\r\n }\r\n\r\n protected checkMandatory(themReset: boolean = true): Echo[] {\r\n const echos: Echo[] = [];\r\n\r\n this.questions.forEach((question) => {\r\n if (themReset) {\r\n question.theme = Enums.QuestionTheme.Normal;\r\n }\r\n if (question.required) {\r\n if (!question.isAnswered() && question.displayText) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n question.displayText,\r\n question\r\n )\r\n );\r\n }\r\n }\r\n });\r\n\r\n return echos;\r\n }\r\n\r\n protected checkMaxLength(themReset: boolean = true): Echo[] {\r\n const echos: Echo[] = [];\r\n\r\n this.questions.forEach((question) => {\r\n if (themReset) {\r\n question.theme = Enums.QuestionTheme.Normal;\r\n }\r\n\r\n switch (question.answerDataType) {\r\n case Enums.AnswerDataType.String:\r\n if (\r\n common.isDefined(question.maxLength) &&\r\n question.maxLength !== undefined &&\r\n question.maxLength > 0\r\n ) {\r\n const answer = question.readAnswerAsString();\r\n\r\n //replace predefined text \r\n const checkAddr = question.key == \"qs_risk_insuredAddress_lotunit\" ? question.readAnswerAsString()?.replace('Flat ', '') \r\n : question.key == \"qs_risk_insuredAddress_building\" ? question.readAnswerAsString()?.replace('Block ', '') :\r\n question.key == \"qs_risk_insuredAddress1\" ? question.readAnswerAsString()?.replace(' /F', '') : '';\r\n\r\n if (\r\n common.isDefined(answer) &&\r\n answer?.length !== undefined &&\r\n answer.length > question.maxLength && checkAddr == ''\r\n ) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const message = `Answer exceed maximum character count of ${question.maxLength}:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n if (\r\n common.isDefined(checkAddr) &&\r\n checkAddr?.length !== undefined &&\r\n checkAddr.length > question.maxLength && checkAddr != ''\r\n ) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const message = `Answer exceed maximum character count of ${question.maxLength}:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n return echos;\r\n }\r\n\r\n protected checkMinMaxValue(\r\n themReset: boolean = true\r\n ): Echo[] {\r\n const echos: Echo[] = [];\r\n\r\n this.questions.forEach((question) => {\r\n if (themReset) {\r\n question.theme = Enums.QuestionTheme.Normal;\r\n }\r\n\r\n switch (question.answerDataType) {\r\n case Enums.AnswerDataType.Date:\r\n if (common.isDefined(question.maxValue)) {\r\n if (!common.isDate(question.maxValue)) {\r\n ExceptionManager.error(`${question.key} .maxValue is not Date`);\r\n }\r\n\r\n const answer: Date = question.answer as Date;\r\n const max: Date = question.maxValue as Date;\r\n\r\n if (answer > max) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const dateText = max.toISOString().slice(0, 10); // 2107-09-20\r\n const message = `Answer exceed maximum date of [${dateText}]:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n }\r\n\r\n if (common.isDefined(question.minValue)) {\r\n if (!common.isDate(question.minValue)) {\r\n ExceptionManager.error(`${question.key} .minValue is not Date`);\r\n }\r\n\r\n const answer: Date = question.answer as Date;\r\n const min: Date = question.minValue as Date;\r\n\r\n if (answer < min) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const dateText = min.toISOString().slice(0, 10); // 2107-09-20\r\n const message = `Answer below minimum date of [${dateText}]:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n }\r\n break;\r\n\r\n case Enums.AnswerDataType.Numeric:\r\n if (common.isDefined(question.maxValue)) {\r\n if (!common.isNumber(question.maxValue)) {\r\n ExceptionManager.error(`${question.key} .maxValue is not Number`);\r\n }\r\n\r\n const answer: number = question.answer as number;\r\n const max: number = question.maxValue as number;\r\n\r\n if (answer > max) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const message = `Answer exceed maximum value of [${max}]:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n }\r\n\r\n if (common.isDefined(question.minValue)) {\r\n if (!common.isNumber(question.minValue)) {\r\n ExceptionManager.error(`${question.key} .minValue is not Number`);\r\n }\r\n\r\n const answer: number = question.answer as number;\r\n const min: number = question.minValue as number;\r\n\r\n // has to prepend to check if the answer is answered, then only check if it's mathematically NaN;\r\n // else sometimes answer is reset in clearAnswer() of src\\app\\models\\new-product\\base\\question-entity.model.ts\r\n /**Code block to fix validate $ symbol pasting into numeric field starts */\r\n if (question.answer && isNaN(answer)) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const message = `Answer below minimum value of [${min}]:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n /**Code block to fix validate $ symbol pasting into numeric field starts */\r\n\r\n if (answer < min) {\r\n question.theme = Enums.QuestionTheme.Danger;\r\n const message = `Answer below minimum value of [${min}]:- ${question.displayText}`;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(message, question)\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n return echos;\r\n }\r\n}\r\n","export const proposalConst = {\r\n questionUnansweredDisplayText: 'Unanswered'\r\n};\r\n","import { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { ProposalEntity } from \"./../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../base/question-entity.model\";\r\n\r\nclass ProposalEntityFactory {\r\n /** Method to build a new ProposalEntity instance */\r\n build(\r\n questions: QuestionEntity[],\r\n productId?: GUID,\r\n proposalId?: GUID\r\n ): ProposalEntity {\r\n ExceptionManager.argumentNullGuard(questions, \"questions\");\r\n\r\n const entity = new ProposalEntity(proposalId, productId);\r\n entity.questions = questions;\r\n entity.refreshQuestionDictionary();\r\n\r\n return entity;\r\n }\r\n}\r\n\r\nexport const proposalEntityFactory = new ProposalEntityFactory();\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"./../../../framework/interface.product\";\r\n\r\nimport { BaseMapper } from \"./../../product/baseMapper\";\r\nimport { EndorsementHistory } from \"./../base/endorsement-history.model\";\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { Global } from \"../../../shared/global\";\r\nimport { ProposalEntity } from \"./../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../base/question-entity.model\";\r\nimport { QuestionEntityMapper } from \"./question-entity.mapper\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\n\r\n/** Mapper to map proposal model between front end capture model and server side entity */\r\nexport class ProposalEntityMapper extends BaseMapper<\r\n ProposalEntity,\r\n InterfaceProduct.IProposalApiModel\r\n> {\r\n questionEntityMapper: QuestionEntityMapper = new QuestionEntityMapper();\r\n\r\n /** To map front end model to server side entity */\r\n map(proposalEntity: ProposalEntity): InterfaceProduct.IProposalApiModel {\r\n // utilized the exact same frontEndModel object by default\r\n // recommended to do the mapping properly to avoid unnecessary data passed to server\r\n\r\n let questionToPassToServer: QuestionEntity[] = [];\r\n if (common.isDefined(proposalEntity.questions)) {\r\n // ignored label question, cause server does not require it\r\n questionToPassToServer = proposalEntity.questions!.filter(\r\n (q) => q.controlType !== Enums.UiControlType.LabelQuestion\r\n );\r\n }\r\n\r\n // TODO: to complete all fields mapping\r\n const apiModel: InterfaceProduct.IProposalApiModel = {\r\n productId: proposalEntity.productId!.toString(),\r\n proposalId: proposalEntity.proposalId!.toString(),\r\n customerId: common.isDefined(proposalEntity.customerMappingID)\r\n ? proposalEntity.customerMappingID\r\n : 0,\r\n customerAddressId: common.isDefined(\r\n proposalEntity.customerMappingAddressID\r\n )\r\n ? proposalEntity.customerMappingAddressID\r\n : 0,\r\n questions: this.questionEntityMapper.mapList(questionToPassToServer),\r\n clausesDeductiblesTable: proposalEntity.clausesDeductiblesTable,\r\n };\r\n\r\n if (common.isDefined(proposalEntity.children)) {\r\n apiModel.children = new Array();\r\n proposalEntity.children?.forEach((child) => {\r\n apiModel.children?.push(this.map(child));\r\n });\r\n }\r\n\r\n if (common.isDefined(proposalEntity.endorsementClauseTable)) {\r\n /** Map endorsement clause table */\r\n apiModel.endorsementClauseTable = proposalEntity.endorsementClauseTable;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.clausesDeductiblesTable)) {\r\n /** Map endorsement clause table */\r\n apiModel.clausesDeductiblesTable = proposalEntity.clausesDeductiblesTable;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.endorsementHistory)) {\r\n /** Map endorsement history table */\r\n apiModel.endorsementHistoryModel = proposalEntity.endorsementHistory;\r\n }\r\n\r\n apiModel.aux = {};\r\n\r\n if (common.isDefined(proposalEntity.producerUserId)) {\r\n apiModel.aux.producerUserId = proposalEntity.producerUserId;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.producerOrganisationId)) {\r\n apiModel.aux.producerOrganisationId =\r\n proposalEntity.producerOrganisationId;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.brokerCommission)) {\r\n apiModel.aux.bc = proposalEntity.brokerCommission;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.endorsementType)) {\r\n apiModel.endorsementType = proposalEntity.endorsementType;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.addtionalEndorsementType)) {\r\n apiModel.addtionalEndorsementType =\r\n proposalEntity.addtionalEndorsementType;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.loanRedeemed)) {\r\n apiModel.loanRedeemed = proposalEntity.loanRedeemed;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.auxiliary)) {\r\n apiModel.aux = proposalEntity.auxiliary;\r\n\r\n if (common.isDefined(proposalEntity.auxiliary.actionReason)) {\r\n apiModel.aux.actionReason = proposalEntity.auxiliary.actionReason;\r\n }\r\n\r\n if (\r\n common.isDefined(proposalEntity.auxiliary.isPremiumManualOverridden)\r\n ) {\r\n apiModel.aux.isPremiumManualOverridden =\r\n proposalEntity.auxiliary.isPremiumManualOverridden;\r\n }\r\n\r\n if (\r\n common.isDefined(\r\n proposalEntity.auxiliary.IsLoanRedeemedValidationMessage\r\n )\r\n ) {\r\n apiModel.aux.IsLoanRedeemedValidationMessage =\r\n proposalEntity.auxiliary.IsLoanRedeemedValidationMessage;\r\n }\r\n\r\n if (\r\n common.isDefined(\r\n proposalEntity.auxiliary.IsRenewalYearPendingCheckerValidationMessage\r\n )\r\n ) {\r\n apiModel.aux.IsRenewalYearPendingCheckerValidationMessage =\r\n proposalEntity.auxiliary.IsRenewalYearPendingCheckerValidationMessage;\r\n }\r\n\r\n if (\r\n common.isDefined(\r\n proposalEntity.auxiliary.IsPreviousYearPendingCheckerValidationMessage\r\n )\r\n ) {\r\n apiModel.aux.IsPreviousYearPendingCheckerValidationMessage =\r\n proposalEntity.auxiliary.IsPreviousYearPendingCheckerValidationMessage;\r\n }\r\n }\r\n\r\n if (common.isDefined(proposalEntity.originalInceptionDate)) {\r\n apiModel.originalInceptionDate = proposalEntity.originalInceptionDate;\r\n }\r\n\r\n if (common.isDefined(proposalEntity.lastSubmittedDate)) {\r\n apiModel.lastSubmittedDate = proposalEntity.lastSubmittedDate;\r\n }\r\n\r\n return apiModel;\r\n }\r\n\r\n /** To map server side entity to front end model */\r\n reverseMap(serverEntity: InterfaceProduct.IProposalApiModel): ProposalEntity {\r\n // TODO: to complete all fields mapping\r\n const proposalModel = new ProposalEntity();\r\n\r\n proposalModel.serverEntity = serverEntity;\r\n proposalModel.proposalId = new GUID(serverEntity.proposalId);\r\n proposalModel.productId = new GUID(serverEntity.productId);\r\n proposalModel.proposalStatus = serverEntity.proposalStatus!;\r\n proposalModel.proposalType = serverEntity.proposalType!;\r\n proposalModel.questions = this.questionEntityMapper.reverseMapList(\r\n serverEntity.questions!\r\n );\r\n proposalModel.transType = serverEntity.transType;\r\n proposalModel.proposalReadOnly = Global.toBoolean(serverEntity.readOnly!);\r\n proposalModel.isMigrated = serverEntity.isMigrated;\r\n proposalModel.title = serverEntity.title;\r\n proposalModel.customerMappingID = serverEntity.customerId;\r\n proposalModel.customerMappingAddressID = serverEntity.customerAddressId;\r\n proposalModel.downloadableDocuments = serverEntity.documents;\r\n\r\n proposalModel.bindQuestionDictionary();\r\n proposalModel.bindQuestionPanelDictionary();\r\n\r\n if (Global.isDefined(serverEntity.header)) {\r\n proposalModel.header = [];\r\n serverEntity.header?.forEach((h) => {\r\n proposalModel.header?.push({\r\n title: h.l,\r\n value: h.v,\r\n });\r\n });\r\n }\r\n\r\n if (Global.isDefined(serverEntity.quoteNumber)) {\r\n proposalModel.quoteNumber = serverEntity.quoteNumber;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.policyNumber)) {\r\n proposalModel.policyNumber = serverEntity.policyNumber;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.policyCertificateNumber)) {\r\n proposalModel.policyCertificateNumber =\r\n serverEntity.policyCertificateNumber;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.validationMessage)) {\r\n proposalModel.validationsMessages = serverEntity.validationMessage;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.bankReferenceNo)) {\r\n proposalModel.bankReferenceNo = serverEntity.bankReferenceNo;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.masterPolicyNumber)) {\r\n proposalModel.masterPolicyNumber = serverEntity.masterPolicyNumber;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.clientCode)) {\r\n proposalModel.clientCode = serverEntity.clientCode;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.copyProcessFor)) {\r\n proposalModel.copyProcessFor = serverEntity.copyProcessFor;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.makerUserId)) {\r\n proposalModel.makerUserId = serverEntity.makerUserId;\r\n }\r\n if (Global.isDefined(serverEntity.checkerUserId)) {\r\n proposalModel.checkerUserId = serverEntity.checkerUserId;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.makerUserName)) {\r\n proposalModel.makerUserName = serverEntity.makerUserName;\r\n }\r\n if (Global.isDefined(serverEntity.checkerUserName)) {\r\n proposalModel.checkerUserName = serverEntity.checkerUserName;\r\n }\r\n if (Global.isDefined(serverEntity.openItems)) {\r\n proposalModel.openItems = serverEntity.openItems;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.endorsementType)) {\r\n proposalModel.endorsementType = serverEntity.endorsementType;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.addtionalEndorsementType)) {\r\n proposalModel.addtionalEndorsementType =\r\n serverEntity.addtionalEndorsementType;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.loanRedeemed)) {\r\n proposalModel.loanRedeemed = serverEntity.loanRedeemed;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.pendingTransaction)) {\r\n proposalModel.pendingTransaction = serverEntity.pendingTransaction;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.originalInceptionDate)) {\r\n proposalModel.originalInceptionDate = serverEntity.originalInceptionDate;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.minimumEffectiveDate)) {\r\n proposalModel.minimumEffectiveDate = serverEntity.minimumEffectiveDate;\r\n }\r\n\r\n if (common.isDefined(serverEntity.lastSubmittedDate)) {\r\n proposalModel.lastSubmittedDate = serverEntity.lastSubmittedDate;\r\n }\r\n\r\n /** map auxiliary data */\r\n if (Global.isDefined(serverEntity.aux)) {\r\n proposalModel.auxiliary = serverEntity.aux;\r\n\r\n // approval history\r\n if (Global.isDefined(serverEntity.aux.ApprovalHistory)) {\r\n proposalModel.approvalHistory = [];\r\n //https://stackoverflow.com/questions/57086672/element-implicitly-has-an-any-type-because-expression-of-type-string-cant-b\r\n const approvalHistoryDictionary: Record = {};\r\n\r\n serverEntity.aux.ApprovalHistory.forEach(\r\n (history: {\r\n ApprovedRules: { QuestionName: string | number; Value: any }[];\r\n ProposalId: string | number;\r\n }) => {\r\n const rules: InterfaceProduct.IApprovedRules[] = [];\r\n const rulesDictionary: Record = {};\r\n\r\n if (Global.isDefined(history.ApprovedRules)) {\r\n history.ApprovedRules.forEach(\r\n (rule: { QuestionName: string | number; Value: any }) => {\r\n rules.push({\r\n questionName: String(rule.QuestionName),\r\n value: rule.Value,\r\n });\r\n\r\n rulesDictionary[rule.QuestionName] = rule.Value;\r\n }\r\n );\r\n }\r\n\r\n proposalModel.approvalHistory?.push({\r\n proposalId: String(history.ProposalId),\r\n approvedRules: rules,\r\n });\r\n\r\n approvalHistoryDictionary[history.ProposalId] = rulesDictionary;\r\n }\r\n );\r\n\r\n proposalModel.approvalHistoryDictionary = approvalHistoryDictionary;\r\n }\r\n proposalModel.approvalHistory = serverEntity.aux.ApprovalHistory;\r\n\r\n if (Global.isDefined(serverEntity.aux.bc)) {\r\n proposalModel.brokerCommission = serverEntity.aux.bc;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.aux.poid)) {\r\n proposalModel.producerOrganisationId = serverEntity.aux.poid;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.aux.puid)) {\r\n proposalModel.producerUserId = serverEntity.aux.puid;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.aux.puid)) {\r\n proposalModel.producerUserId = serverEntity.aux.puid;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.aux.preqs)) {\r\n proposalModel.bindPreviousPolicyQuestionDictionary(\r\n serverEntity.aux.preqs\r\n );\r\n }\r\n\r\n if (Global.isDefined(serverEntity.aux.actionReason)) {\r\n proposalModel.auxiliary.actionReason = serverEntity.aux.actionReason;\r\n }\r\n\r\n /** flag to determine whether system is allowed to calculate premium */\r\n if (Global.isDefined(serverEntity.aux.isPremiumManualOverridden)) {\r\n proposalModel.auxiliary.isPremiumManualOverridden =\r\n serverEntity.aux.isPremiumManualOverridden;\r\n }\r\n\r\n /** map quotes */\r\n if (Global.isDefined(serverEntity.aux.qt)) {\r\n proposalModel.quotes = serverEntity.aux.qt;\r\n }\r\n }\r\n\r\n if (common.isDefined(serverEntity.childSchema)) {\r\n if (common.isUndefinedOrNull(serverEntity.childSchema?.questions)) {\r\n ExceptionManager.argumentNullGuard(\r\n serverEntity.childSchema?.questions,\r\n \"serverEntity.childSchema.questions\"\r\n );\r\n }\r\n proposalModel.childQuestionSchema =\r\n this.questionEntityMapper.reverseMapList(\r\n serverEntity.childSchema!.questions!\r\n );\r\n proposalModel.children = new Array();\r\n if (common.isDefined(serverEntity.children)) {\r\n serverEntity.children?.forEach((child) => {\r\n proposalModel.children?.push(this.reverseMap(child));\r\n });\r\n }\r\n }\r\n\r\n if (Global.isDefined(serverEntity.endorsementClauseTable)) {\r\n /** Map endorsement clause table */\r\n proposalModel.endorsementClauseTable =\r\n serverEntity.endorsementClauseTable;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.clausesDeductiblesTable)) {\r\n /** Map endorsement clause table */\r\n proposalModel.clausesDeductiblesTable =\r\n serverEntity.clausesDeductiblesTable;\r\n }\r\n\r\n if (Global.isDefined(serverEntity.endorsementHistoryModel)) {\r\n /** Map endorsement history table */\r\n proposalModel.endorsementHistory = new Array();\r\n if (common.isDefined(serverEntity.endorsementHistoryModel)) {\r\n serverEntity.endorsementHistoryModel?.forEach((endorsement) => {\r\n proposalModel.endorsementHistory?.push({\r\n transType: endorsement.tt,\r\n endorsementType: endorsement.et,\r\n proposalStartDate: endorsement.prosd,\r\n proposalEndDate: endorsement.proed,\r\n policyEffectiveDate: endorsement.ped,\r\n policyExpiryDate: endorsement.pexd,\r\n dateCreated: endorsement.dc,\r\n calculationMethod: endorsement.cm,\r\n });\r\n });\r\n }\r\n }\r\n\r\n return proposalModel;\r\n }\r\n}\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"./../../../framework/interface.product\";\r\n\r\nimport { BaseMapper } from \"./../../product/baseMapper\";\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { Global } from \"./../../../shared/global\";\r\nimport { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { QuestionEntity } from \"./../base/question-entity.model\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\n\r\nexport class QuestionEntityMapper extends BaseMapper<\r\n QuestionEntity,\r\n InterfaceProduct.IUiControl\r\n> {\r\n map(question: QuestionEntity): InterfaceProduct.IUiControl {\r\n const answer = question.answer;\r\n\r\n // 14: DateRangeQuestion\r\n if (question.controlType === Enums.UiControlType.DateRangeQuestion) {\r\n const dr = JSON.parse(question.answer.toString());\r\n\r\n const dateFrom = new Date(dr[\"df\"]);\r\n const dateTo = new Date(dr[\"dt\"]);\r\n\r\n dr[\"dft\"] = dateFrom.toApiValue();\r\n dr[\"dtt\"] = dateTo.toApiValue();\r\n\r\n question.answer = JSON.stringify(dr);\r\n }\r\n\r\n const control: InterfaceProduct.IUiControl = {\r\n /** v. Value to the answer */\r\n v: Global.convertToApiStandardValue(answer), // <== utilizing toApiValue() prototype\r\n /** k. Question name */\r\n k: question.key,\r\n };\r\n return control;\r\n }\r\n\r\n reverseMap(uiControl: InterfaceProduct.IUiControl): QuestionEntity {\r\n /**\r\n * ****************************************************************************\r\n * Control Type ID Control Type\t Front end return data type\r\n * ****************************************************************************\r\n 1\t LabelQuestion\r\n 7\t ValueQuestion\t string\r\n 19\t SingleCheckboxQuestion\t boolean\r\n 9\t DateTimeQuestion\t date\r\n 34\t NumericAndLabelQuestion\t numeric\r\n 13\t DropDownListQuestion\t string\r\n 6\t TrueFalseQuestion\t string\r\n */\r\n let answerDataType: Enums.AnswerDataType = Enums.AnswerDataType.String;\r\n let answerToAssigned: any = uiControl.v;\r\n\r\n switch (uiControl.c) {\r\n case Enums.UiControlType.LabelQuestion:\r\n break;\r\n\r\n case Enums.UiControlType.ValueQuestion:\r\n case Enums.UiControlType.DropDownListQuestion:\r\n case Enums.UiControlType.TrueFalseQuestion:\r\n answerDataType = Enums.AnswerDataType.String;\r\n break;\r\n\r\n case Enums.UiControlType.SingleCheckboxQuestion:\r\n answerDataType = Enums.AnswerDataType.Boolean;\r\n break;\r\n\r\n case Enums.UiControlType.DateTimeQuestion:\r\n answerDataType = Enums.AnswerDataType.Date;\r\n if (uiControl.v) {\r\n answerToAssigned = new Date(uiControl.v);\r\n }\r\n break;\r\n\r\n case Enums.UiControlType.CurrencyPremiumValueQuestion:\r\n case Enums.UiControlType.NumericAndLabelQuestion:\r\n answerDataType = Enums.AnswerDataType.Numeric;\r\n break;\r\n\r\n default:\r\n //todo\r\n //throw new ExceptionManager.incomplete(\"Control type not supported yet\");\r\n }\r\n\r\n /** k. Question name */\r\n /** v. Value to the answer */\r\n const question = new QuestionEntity(\r\n uiControl.k!,\r\n answerToAssigned,\r\n answerDataType\r\n );\r\n /** dv. Default answer */\r\n question.defaultAnswer = uiControl.dv;\r\n /** ro. Read only flag */\r\n question.readOnly = Global.toBoolean(uiControl.ro!);\r\n /** t. Text to display */\r\n question.displayText = uiControl.t;\r\n /** c. Question Control type */\r\n question.controlType = uiControl.c;\r\n /** i. Question additional info. Usually contains multi select options */\r\n question.additionalInfo = uiControl.i;\r\n /** m. Value text maximum length */\r\n question.maxLength = uiControl.m;\r\n /** mv. Value maximum allowed amount */\r\n question.maxValue = uiControl.mv;\r\n /** mnv. Value minimum allowed amount */\r\n question.minValue = uiControl.mnv;\r\n /** r. Flag to determine if answer is mandatory */\r\n question.required = Global.toBoolean(uiControl.r!);\r\n /** nt. Question */\r\n question.numberText = uiControl.nt;\r\n /** qpid. QuestionPanelId */\r\n question.questionPanelId = new GUID(uiControl.qpid);\r\n /** sid. Question section */\r\n question.sectionId = uiControl.sid;\r\n question.isIgnore = uiControl.ig;\r\n\r\n if (Global.isDefined(question.additionalInfo)) {\r\n const info = JSON.parse(question.additionalInfo);\r\n if (common.isDefined(info.o)) {\r\n const options = eval(info.o);\r\n if (Global.isDefined(options)) {\r\n // temporay fix\r\n question.options = [\r\n {\r\n key: \"\",\r\n value: \"\",\r\n },\r\n ];\r\n options.forEach((option: { v: any; k: any }) => {\r\n if (common.isDefined(question.options)) {\r\n question.options.push({\r\n key: option.v,\r\n value: option.k,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return question;\r\n }\r\n}\r\n","import { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { ProposalEntity } from \"./../base/proposal-entity.model\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify proposal action trigger */\r\nexport class ApiActionNotifier {\r\n /** Notify before proposal action trigger */\r\n before_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify after proposal action triggered successfully */\r\n success_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify after proposal action triggered failure */\r\n failure_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n}\r\n\r\nexport const apiActionNotifier = new ApiActionNotifier();\r\n","import { ApiMapperNotifierModel } from \"./api-mapper-notifier.model\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify upon proposal action api end point invoke */\r\nclass ApiMapperNotifier {\r\n /** Notify before ProposalEntity mapped to IProposalApiModel */\r\n before_entity_to_api_map_notifier$: Subject =\r\n new Subject();\r\n\r\n /** Notify after ProposalEntity mapped to IProposalApiModel */\r\n after_entity_to_api_map_notifier$: Subject =\r\n new Subject();\r\n\r\n /** Notify after IProposalApiModel mapped to ProposalEntity */\r\n after_api_to_entity_map_notifier$: Subject =\r\n new Subject();\r\n}\r\n\r\nexport const apiMapperNotifier = new ApiMapperNotifier();\r\n","import { KeyValue } from \"../../../framework/domain-entity/key-value\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nclass DialogActionNotifier {\r\n /** Notify on dialog Cancel() */\r\n cancel_notifier$: Subject> = new Subject>();\r\n\r\n /** Notify on dialog Ok() */\r\n ok_notifier$: Subject> = new Subject>();\r\n}\r\n\r\nexport const dialogActionNotifier = new DialogActionNotifier();\r\n","import { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { Proposal } from \"./../base/proposal.model\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify proposal action trigger */\r\nclass PageLifeCycleNotifier {\r\n /** Notify after proposal loaded */\r\n page_loaded_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify after proposal saved */\r\n page_unload_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify on tab load */\r\n tab_load_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify on tab change request notifier\r\n * Key: tabId\r\n * Value: questionName. ElementId to auto scroll to\r\n */\r\n tab_request_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n}\r\n\r\nexport const pageLifeCycleNotifier = new PageLifeCycleNotifier();\r\n","import { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { Proposal } from \"./../base/proposal.model\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/** To notify proposal action trigger */\r\nclass ProposalServiceNotifier {\r\n /** Notify after proposal loaded */\r\n loaded_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify after proposal saved */\r\n saved_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify upon editing child proposal */\r\n edit_child_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify upon save child proposal */\r\n save_child_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n\r\n /** Notify upon proposal command action failed */\r\n failed_notifier$: Subject> = new Subject>();\r\n}\r\n\r\nexport const proposalServiceNotifier = new ProposalServiceNotifier();\r\n","import { Subject } from \"rxjs\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { QuestionEntity } from \"./../base/question-entity.model\";\r\n\r\nclass QuestionNotifier {\r\n /** Notify after proposal loaded */\r\n answer_change_notifier$: Subject> = new Subject<\r\n KeyValue\r\n >();\r\n}\r\n\r\nexport const questionNotifier = new QuestionNotifier();\r\n","import * as Enums from \"./../../../../../../framework/enum.shared\";\r\n\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireHongKongBusinessRulesManager } from \"./mf-hk-business-rules.manager\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"./mf-hk-field-validation.manager\";\r\nimport { MortgageFireHongKongProposal } from \"./mf-hk-proposal\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { pageLifeCycleNotifier } from \"./../../../../notifier/page-life-cycle-notifier\";\r\nimport { questionNotifier } from \"./../../../../notifier/question-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nexport class MortgageFireHongKongAnswerChangeManager {\r\n answerChangedSubscription: Subscription;\r\n\r\n constructor(\r\n private proposal: MortgageFireHongKongProposal,\r\n private fieldValidationManager: MortgageFireHongKongFieldValidationManager,\r\n private businessRulesManager: MortgageFireHongKongBusinessRulesManager\r\n ) {\r\n this.answerChangedSubscription =\r\n questionNotifier.answer_change_notifier$.subscribe(this.answerChanged);\r\n\r\n pageLifeCycleNotifier.page_unload_notifier$.subscribe((event: any) => {\r\n this.destroy();\r\n });\r\n }\r\n\r\n private answerChanged = (event: KeyValue) => {\r\n const questionName = event.key;\r\n const questionEntity = event.value;\r\n };\r\n\r\n public destroy() {\r\n this.answerChangedSubscription.unsubscribe();\r\n }\r\n}\r\n","import * as EnumSG from \"./mf-hk-enums\";\r\nimport * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../../../../base/echo.model\";\r\nimport { Echos } from \"./../../../../base/echos.model\";\r\nimport { Global } from \"./../../../../../../shared/global\";\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireHKTabSchema } from \"./schemas/mf-hk-tab-schema\";\r\nimport { MortgageFireHongKongBusinessRuleSchema } from \"./schemas/mf-hk-business-rule-schema\";\r\nimport { MortgageFireHongKongProposal } from \"./mf-hk-proposal\";\r\nimport { ProductID } from \"./../../../../../../framework/const.shared\";\r\nimport { ProposalStatus } from \"./../../../../../../framework/enum.shared\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { Rule } from \"./../../../../base/rule.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { instanceFactory } from \"../../../../../../framework/utils/instance-factory\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\nimport * as Interface from \"./../../../../../../framework/interface.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\nexport class MortgageFireHongKongBusinessRulesManager {\r\n echos!: Echos[];\r\n ruleSchema: MortgageFireHongKongBusinessRuleSchema;\r\n underwriterMessages: Rule[];\r\n constructor(\r\n private proposal: MortgageFireHongKongProposal,\r\n public identityRolesService: IdentityRolesService\r\n ) {\r\n this.ruleSchema = new MortgageFireHongKongBusinessRuleSchema(this.proposal);\r\n this.underwriterMessages = [];\r\n this.validate(); //to do\r\n }\r\n\r\n /** Method for validate proposal mandatory questions */\r\n validate(): Echos[] {\r\n this.echos = [];\r\n\r\n switch (this.proposal.proposalStatus) {\r\n case ProposalStatus.Incomplete:\r\n case ProposalStatus.PendingChecker:\r\n if (!this.proposal.isUnderwriter) {\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateManualReferral(); */\r\n /** this.validateChangeOfSIEndorsement(); */\r\n /** this.validateChangeOfAddressEndorsement(); */\r\n /** this.validateCancellation(); */\r\n //this.validatePOIBackDated(); //HE-227 : no need for Hase\r\n //this.validateCancellationBackdating();\r\n //this.validateLoanRedemptionBackdating();\r\n //this.validateManualUnderwritting();//HE-255: no need for Hase\r\n } else if (\r\n this.proposal.isUnderwriter &&\r\n //this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement))\r\n ) {\r\n this.proposal.referralMessageRequires = true;\r\n } else {\r\n this.proposal.referralMessageRequires = false;\r\n }\r\n break;\r\n case ProposalStatus.Referred:\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateManualReferral(); */\r\n /** this.validateChangeOfSIEndorsement(); */\r\n /** this.validateChangeOfAddressEndorsement(); */\r\n /** this.validateCancellation(); */\r\n //this.validatePOIBackDated();//HE-227 : no need for Hase\r\n //this.validateCancellationBackdating();//HE-257\r\n this.validateLoanRedemptionBackdating();\r\n\r\n //this.validateManualUnderwritting();//HE-257, Scenario 3\r\n break;\r\n case ProposalStatus.Accepted:\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateIsPreviousYearLoanRedeemed(); */\r\n /** [checked with kevin and got feedback no need to show two warning message and to remove the loan redemption warning message] */\r\n this.validateIsRenewalYearPendingCheckerValidationMessage();\r\n break;\r\n case ProposalStatus.Renewed:\r\n this.proposal.referralMessageRequires = true;\r\n this.validateIsPreviousYearPendingCheckerValidationMessage();\r\n break;\r\n default:\r\n this.proposal.referralMessageRequires = false;\r\n // do nothing\r\n }\r\n\r\n //this.validateMaxSI();\r\n return this.echos;\r\n }\r\n\r\n //this one is un-obstructive, hence do in the ~src\\app\\models\\new-product\\sme\\mortgage-fire\\hong-kong\\base\\mf-hk-field-validation.manager.ts\r\n validateMaxSI() {\r\n if (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB) {\r\n const rule = this.ruleSchema.pwbSI;\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n if (\r\n this.proposal.qsMaster.qs_fire_building!.readAnswerAsNumeric()! >=\r\n 200000000\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n } else if (\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB\r\n ) {\r\n const rule = this.ruleSchema.cmbSI;\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n if (\r\n this.proposal.qsMaster.qs_fire_building!.readAnswerAsNumeric()! >=\r\n 100000000\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** This rule is no longer required. Just holding for Future Use */\r\n // validateChangeOfSIEndorsement() {\r\n // const rule = this.ruleSchema.changeOfSIEndorsementType;\r\n // if (this.proposal.endorsementType === Enums.EndorsementType.ChangeOfSumInsured) {\r\n // this.add(rule);\r\n // } else {\r\n // this.remove(rule);\r\n // }\r\n // }\r\n\r\n SetIBGReferredToUnderwriterReferRule() {\r\n switch (this.proposal.proposalStatus) {\r\n case ProposalStatus.Incomplete:\r\n if (\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter\r\n ) {\r\n this.proposal.referralMessageRequires = true;\r\n //this.validatePOIBackDated();//HE-227 : no need for Hase\r\n //this.validateCancellationBackdating();//HE-257\r\n this.validateManualUnderwritting();\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n }\r\n this.validateOperationUnderwriterCancellationAdj(true);\r\n }\r\n break;\r\n case ProposalStatus.Referred:\r\n this.validateOperationUnderwriterCancellationAdj(true);\r\n this.validateOperationUnderwriterMakeRedundant();\r\n break;\r\n }\r\n }\r\n\r\n validateChangeOfAddressEndorsement() {\r\n const rule = this.ruleSchema.changeOfdAddressEndorsementType;\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validateCancellation() {\r\n const rule = this.ruleSchema.cancellationRefer;\r\n if (\r\n this.proposal.transType === Enums.TransType.CAN &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB)\r\n ) {\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n const policyStartDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n /** const diffDates = Math.abs(cancellationEffectiveDate.getTime() - policyStartDate.getTime()); */\r\n /** const diffDaysOfPolicy = Math.floor(diffDates / (1000 * 3600 * 24)); */\r\n const timeDiff = Math.abs(\r\n policyStartDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n if (diffDays > 30) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validateLoanRedemptionBackdating() {\r\n const rule = this.ruleSchema.loanRedemptionReferBackdated;\r\n if (\r\n this.proposal.endorsementType === Enums.EndorsementType.LoanRedemption\r\n ) {\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n const timeDiff = Math.abs(\r\n cancellationEffectiveDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n if (cancellationEffectiveDate >= startDate) {\r\n if (EnumSG.BackdatedRules.MaximumAllowedLoanRedemption > diffDays) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n isFinancialEndorsementOrNbOrCan() {\r\n //refer: src\\app\\components\\new-product\\sme\\mortgage-fire\\hong-kong\\components\\master\\hase\\mf-hk-master\\mf-hk-master.component.ts\r\n //hide_qs_master_refund_onAllNonFinEn()\r\n if (this.proposal.transType == Enums.TransType.END) {\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption ||\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement ||\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return true; //diff here\r\n }\r\n\r\n isOnlyFinancialEndorsement() {\r\n //refer: src\\app\\components\\new-product\\sme\\mortgage-fire\\hong-kong\\components\\master\\hase\\mf-hk-master\\mf-hk-master.component.ts\r\n //hide_qs_master_refund_onAllNonFinEn()\r\n if (this.proposal.transType == Enums.TransType.END) {\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption ||\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement ||\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return this.proposal.transType == Enums.TransType.CAN; //diff here\r\n }\r\n\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return (\r\n ques!.answer == 1 || ques!.answer === \"True\" || ques!.answer === true\r\n );\r\n }\r\n\r\n //DBSEP-2136\r\n validateOperationUnderwriterCancellationAdj(flag: boolean) {\r\n const rule = this.ruleSchema.cancellationRefer;\r\n if (flag) {\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.add(rule);\r\n }\r\n } else {\r\n this.add(rule);\r\n }\r\n }\r\n\r\n validateOperationUnderwriterMakeRedundant() {\r\n const rule = this.ruleSchema.makeRedundantRefer;\r\n }\r\n\r\n validateCancellationBackdating() {\r\n let rule = this.ruleSchema.cancellationReferBackdated;\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n var timeDiff = Math.abs(\r\n cancellationEffectiveDate.getTime() - currentDate.getTime()\r\n );\r\n var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n var isCBG =\r\n this.proposal.transType === Enums.TransType.CAN &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB);\r\n\r\n if (isCBG) {\r\n if (cancellationEffectiveDate >= startDate) {\r\n if (EnumSG.BackdatedRules.MaximumAllowedBackdate > diffDays) {\r\n this.add(rule);\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n validateManualReferral() {\r\n const rule = this.ruleSchema.manualRefer;\r\n if (\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.Yes\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n // Cater for reinstatement loan redeemed scenario (message popup) for year 1\r\n validateIsPreviousYearLoanRedeemed() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB)\r\n ) {\r\n const rule = this.ruleSchema.loanRedemptionReinstatementMessage;\r\n if (\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"] === \"true\" ||\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n // Cater for year 2 pending checker message when there is pending checker transaction in year 1\r\n validateIsRenewalYearPendingCheckerValidationMessage() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsRenewalYearPendingCheckerValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB)\r\n ) {\r\n const rule = this.ruleSchema.renewalYearPendingCheckerMessage;\r\n if (\r\n this.proposal.auxiliary[\r\n \"IsRenewalYearPendingCheckerValidationMessage\"\r\n ] === \"true\" ||\r\n this.proposal.auxiliary[\r\n \"IsRenewalYearPendingCheckerValidationMessage\"\r\n ] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n // Cater for year 1 pending checker message when there is pending checker transaction in year 2\r\n validateIsPreviousYearPendingCheckerValidationMessage() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsPreviousYearPendingCheckerValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB)\r\n ) {\r\n const rule = this.ruleSchema.previousYearPendingCheckerMessage;\r\n if (\r\n this.proposal.auxiliary[\r\n \"IsPreviousYearPendingCheckerValidationMessage\"\r\n ] === \"true\" ||\r\n this.proposal.auxiliary[\r\n \"IsPreviousYearPendingCheckerValidationMessage\"\r\n ] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n validateManualUnderwritting() {\r\n const rule = this.ruleSchema.manualUnderwritingRefer;\r\n var isCBG =\r\n (this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer ===\r\n \"True\") &&\r\n (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Referred ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.PendingChecker);\r\n\r\n var isIBG =\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Referred);\r\n\r\n if (isCBG || isIBG) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n if (\r\n (this.identityRolesService.IsCbsOps ||\r\n this.identityRolesService.IsCSCBGSG) &&\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.remove(rule);\r\n }\r\n\r\n var isCBGOpsuser =\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB);\r\n if (isCBGOpsuser) {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validatePOIBackDated() {\r\n const rule = this.ruleSchema.backDatedPOI;\r\n const startDateOfPOI = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const timeDiff = Math.abs(startDateOfPOI.getTime() - currentDate.getTime());\r\n const diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\r\n var isCBGOpsuser =\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB);\r\n if (isCBGOpsuser) {\r\n this.remove(rule);\r\n return;\r\n }\r\n\r\n switch (this.proposal.transType) {\r\n case Enums.TransType.NEW:\r\n if (startDate < currentDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n break;\r\n case Enums.TransType.END:\r\n if (\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPOI &&\r\n startDate < currentDate\r\n ) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n break;\r\n case Enums.TransType.REN:\r\n break;\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n }\r\n\r\n private add(message: Rule) {\r\n this.pushUnderwriterMessage(message);\r\n this.pushEchos(message);\r\n }\r\n\r\n private remove(message: Rule) {\r\n this.removeUnderwriterMessage(message);\r\n this.removeEchos(message);\r\n }\r\n\r\n private pushUnderwriterMessage(message: Rule) {\r\n const found = lodash.find(\r\n this.underwriterMessages,\r\n (um: Rule) => {\r\n return um.id === message.id;\r\n }\r\n );\r\n\r\n if (common.isUndefinedOrNull(found)) {\r\n this.underwriterMessages.push(message);\r\n }\r\n }\r\n\r\n private removeUnderwriterMessage(message: Rule) {\r\n lodash.remove(\r\n this.underwriterMessages,\r\n (um: Rule) => {\r\n return um.id === message.id;\r\n }\r\n );\r\n }\r\n\r\n private pushEchos(message: Rule) {\r\n let echosFound = lodash.find(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n\r\n if (common.isUndefinedOrNull(echosFound)) {\r\n echosFound = new Echos(\"\", []);\r\n echosFound.info = message.entity!.tabId;\r\n proposalHelper.convertTitleToTabIntoEchos(\r\n echosFound,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n this.echos.push(echosFound);\r\n }\r\n\r\n const echoFound = lodash.find(\r\n echosFound!.echos,\r\n (e: Echo) => {\r\n return e.key === message.id;\r\n }\r\n );\r\n\r\n if (common.isUndefinedOrNull(echoFound)) {\r\n const echo = new Echo(message.message);\r\n echo.key = message.id;\r\n echo.entity = message.entity;\r\n echo.info = message.entity!.tabId;\r\n echo.title = message.entity!.key;\r\n echosFound!.echos.push(echo);\r\n }\r\n }\r\n\r\n private removeEchos(message: Rule) {\r\n const echosFound = lodash.find(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n\r\n if (common.isDefined(echosFound)) {\r\n lodash.remove(echosFound!.echos, (e: Echo) => {\r\n return e.key === message.id;\r\n });\r\n\r\n // section remove if no child available\r\n if (echosFound!.echos.length === 0) {\r\n lodash.remove(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","export enum MortgageFireHKProduct {\r\n HSWPB,\r\n HSCMB,\r\n}\r\n\r\nexport enum ProductBase {\r\n HASE = \"HASE\",\r\n}\r\n\r\nexport enum ClientType {\r\n Person = 1,\r\n Organization = 2,\r\n Others = 3,\r\n}\r\n\r\nexport enum ClientErrorType {\r\n NRICError = 1,\r\n PassportNumberError = 2,\r\n BusinessRegistrationNumberError = 3,\r\n MandatoryError = 4,\r\n EmailAddressError = 5,\r\n PhoneNumberError = 6,\r\n NameAndNricError = 7,\r\n}\r\n\r\nexport enum BackdatedRules {\r\n MaximumAllowedBackdate = 7,\r\n MaximumAllowedLoanRedemption = 14,\r\n}\r\n","import * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../../../../base/echo.model\";\r\nimport * as EnumSG from \"./../base/mf-hk-enums\";\r\nimport { Echos } from \"./../../../../base/echos.model\";\r\nimport { ICoverage } from \"./../../../../../../framework/interface.product\";\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireHKTabSchema } from \"./schemas/mf-hk-tab-schema\";\r\nimport { MortgageFireHongKongBusinessRuleSchema } from \"./schemas/mf-hk-business-rule-schema\";\r\nimport { MortgageFireHongKongProposal } from \"./mf-hk-proposal\";\r\nimport { MortgageFireHongKongQuestionEntityValidator } from \"./validator/mf-hk-question-entity.validator\";\r\nimport { Premium } from \"./../../../../base/premium.model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\nexport class MortgageFireHongKongFieldValidationManager {\r\n echos!: Echos[];\r\n ruleSchema: MortgageFireHongKongBusinessRuleSchema;\r\n underwriterMessages!: MortgageFireHongKongBusinessRuleSchema[];\r\n\r\n static readonly minPremium: number = 0;\r\n static readonly maxPremium: number = 5000000;\r\n\r\n constructor(private proposal: MortgageFireHongKongProposal) {\r\n this.ruleSchema = new MortgageFireHongKongBusinessRuleSchema(this.proposal);\r\n this.initializeMandatoryFields();\r\n // this.initializeVisibilityFields();\r\n }\r\n\r\n /** Method for setting up all questions [required] flag\r\n * This is the function we should call upon proposal page load to initialize custom mandatory fields\r\n */\r\n initializeMandatoryFields() {\r\n this.setManualReferralReasonRequires();\r\n this.setNoOfFreeInsuranceYearsRequires();\r\n }\r\n\r\n /** Method for setting up all questions [visibility] flag\r\n * This is the function we should call upon proposal page load to initialize custom mandatory fields\r\n */\r\n initializeVisibilityFields() {\r\n this.showReplacingPolicyNumberOnRenew();\r\n }\r\n\r\n setManualReferralReasonRequires() {\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.required = true;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.required =\r\n false;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.isVisible =\r\n false;\r\n if (\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.Yes\r\n ) {\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.required =\r\n true;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.isVisible =\r\n true;\r\n }\r\n }\r\n setEmailMobileRequires(data: string, isIBGProduct: any) {\r\n if (data === \"2\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n true;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n } else if (data === \"1\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n true;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n } else if (data === \"5\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n true;\r\n }\r\n\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n } else {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n }\r\n }\r\n setNoOfFreeInsuranceYearsRequires() {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireHKProduct.HSCMB:\r\n case EnumSG.MortgageFireHKProduct.HSWPB:\r\n //this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer = this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer;\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isVisible = false;\r\n // this.proposal.qsMaster.qs_master_FreeIns_startDate.isVisible = false;\r\n // if(Number(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer)>0)\r\n // {\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.readOnly = true;\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isVisible = true;\r\n // this.proposal.qsMaster.qs_master_FreeIns_startDate.isVisible = true;\r\n\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer = this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer;\r\n // }\r\n break;\r\n }\r\n /** INC1590772 - Set answer to Zero for qs_fire_freeInsuranceNoYear if qs_fire_freeInsuranceFirstYear is No */\r\n if (\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.No\r\n ) {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.required = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer = 0;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.minValue = 0;\r\n }\r\n /** INC1651796 - Disable the controls during endorsement for IBG */\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.isDisabled =\r\n this.proposal.transType === Enums.TransType.NEW ? false : true;\r\n ////DBSEP-252 : Allow Edit Free Year For IBG Product\r\n ///this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isDisabled = (this.proposal.transType === Enums.TransType.NEW) ? false : true;\r\n }\r\n\r\n showReplacingPolicyNumberOnRenew = () => {\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.isVisible =\r\n this.proposal.transType === Enums.TransType.REN ? true : false;\r\n };\r\n\r\n /** Method for validate proposal mandatory questions */\r\n validate(): Echos[] {\r\n this.echos = [];\r\n\r\n const questions = this.proposal.extractQuestionArray();\r\n const pValidator = new MortgageFireHongKongQuestionEntityValidator(\r\n questions,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n\r\n this.atLeastOneRiskInsuredAddressIsFilled(); //reset required fileds before validateMandatory\r\n\r\n const pValidationEchos = pValidator.validate();\r\n this.echos = pValidationEchos;\r\n\r\n //must do after assignment above, so that won't be overrided\r\n this.concateEchos(this.validateMaxSI());\r\n this.concateEchos(this.validateMinMaxPremiumIfNb());\r\n this.concateEchos(this.validateMaxPremiumIfEnd());\r\n this.concateEchosIfNotExist(this.validate_InsuredNo(), \"Client No\");\r\n this.concateEchosIfNotExist(this.validate_InsuredName(), \"Mortgagor Name\");\r\n\r\n if (\r\n common.isDefined(this.proposal.children) &&\r\n this.proposal.children.length > 0\r\n ) {\r\n this.proposal.children.forEach((location) => {\r\n const locQuestions = location.extractQuestionArray();\r\n const locValidator = new MortgageFireHongKongQuestionEntityValidator(\r\n locQuestions,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n const locValidationEchos = locValidator.validate();\r\n this.echos = lodash.concat(this.echos, locValidationEchos);\r\n });\r\n }\r\n\r\n // TODO: implement custom validations if any\r\n\r\n return this.echos;\r\n }\r\n\r\n /** Method for validate proposal mandatory questions [Client Name] [Client No] for Save */\r\n validateSave(): Echos[] {\r\n this.echos = [];\r\n\r\n let questions = this.proposal.extractQuestionArray();\r\n questions = questions.filter(function (q) {\r\n return (\r\n q.key === \"qs_master_insuredName\" || q.key === \"qs_master_insuredNo\"\r\n );\r\n });\r\n const pValidator = new MortgageFireHongKongQuestionEntityValidator(\r\n questions,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n const pValidationEchos = pValidator.validate();\r\n this.echos = pValidationEchos;\r\n\r\n if (\r\n common.isDefined(this.proposal.children) &&\r\n this.proposal.children.length > 0\r\n ) {\r\n this.proposal.children.forEach((location) => {\r\n const locQuestions = location.extractQuestionArray();\r\n const locValidator = new MortgageFireHongKongQuestionEntityValidator(\r\n locQuestions,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n const locValidationEchos = locValidator.validate();\r\n this.echos = lodash.concat(this.echos, locValidationEchos);\r\n });\r\n }\r\n\r\n return this.echos;\r\n }\r\n validateDeliverMethod(): Echos[] {\r\n const questions = this.proposal\r\n .extractQuestionArray()\r\n .filter(\r\n (x) =>\r\n x.key === \"qs_master_preferredDeliveryMethod_MobileNo\" ||\r\n x.key === \"qs_master_preferredDeliveryMethod_Email\" ||\r\n x.key === \"qs_master_preferredDeliveryMethod_CorrAddress\"\r\n );\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n const requiredCount = questions.filter((x) => x.required).length;\r\n if (requiredCount >= 1) {\r\n var q = questions.filter(\r\n (x) => x.key === \"qs_master_preferredDeliveryMethod_MobileNo\"\r\n )[0];\r\n const mobileAnswer = q.readAnswerAsString();\r\n if (!common.isDefined(mobileAnswer) && q.required) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else if (common.isDefined(mobileAnswer) && q.required) {\r\n if (!proposalHelper.phoneHkValidation(mobileAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n } else if (\r\n common.isDefined(mobileAnswer) &&\r\n !q.required &&\r\n mobileAnswer !== null &&\r\n mobileAnswer !== \"\"\r\n ) {\r\n if (!proposalHelper.phoneHkValidation(mobileAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n }\r\n q = questions.filter(\r\n (x) => x.key === \"qs_master_preferredDeliveryMethod_Email\"\r\n )[0];\r\n const emailAnswer = q.readAnswerAsString();\r\n if (!common.isDefined(emailAnswer) && q.required) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\"Email Id is not correct.\", q)\r\n );\r\n } else if (common.isDefined(emailAnswer) && q.required) {\r\n if (!proposalHelper.emailValidation(emailAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Email Id is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n } else if (\r\n common.isDefined(emailAnswer) &&\r\n !q.required &&\r\n emailAnswer !== null &&\r\n emailAnswer !== \"\"\r\n ) {\r\n if (!proposalHelper.emailValidation(emailAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Email Id is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n }\r\n }\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n }\r\n\r\n //#region hase\r\n validateMaxSI() {\r\n if (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB) {\r\n const rule = this.ruleSchema.pwbSI;\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfSumInsured) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n if (\r\n this.proposal.qsMaster.qs_fire_building!.readAnswerAsNumeric()! >\r\n environment.wpbMaxSiLimit\r\n ) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Insurance amount cannot exceed HKD\" +\r\n environment.wpbMaxSiLimit.toLocaleString(\"en-US\", {\r\n minimumFractionDigits: 2,\r\n }),\r\n this.proposal.qsMaster.qs_fire_building!\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n } else if (\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB\r\n ) {\r\n const rule = this.ruleSchema.cmbSI;\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfSumInsured) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n if (\r\n this.proposal.qsMaster.qs_fire_building!.readAnswerAsNumeric()! >\r\n environment.cmbMaxSiLimit\r\n ) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Insurance amount cannot exceed HKD\" +\r\n environment.cmbMaxSiLimit.toLocaleString(\"en-US\", {\r\n minimumFractionDigits: 2,\r\n }),\r\n this.proposal.qsMaster.qs_fire_building!\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateMinMaxPremiumIfNb() {\r\n if (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB) {\r\n return this.validateCmbMinMaxPremiumIfNb();\r\n } else if (\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB\r\n ) {\r\n return this.validateWpbMaxPremiumIfNb();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateWpbMaxPremiumIfNb() {\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW && //DBSEP-7012\r\n this.isManualUW()\r\n ) {\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n if (common.isDefined(premiumData) && premiumData.length > 0) {\r\n var premium = premiumData[0].premiumSummary?.premium;\r\n if (common.isDefined(premium)) {\r\n if (premium > MortgageFireHongKongFieldValidationManager.maxPremium) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Premium cannot be exceeded HKD 5,000,000.00\",\r\n this.proposal!.qsPremiumSummary.qs_master_techRate!\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateCmbMinMaxPremiumIfNb() {\r\n if (this.proposal.transType === Enums.TransType.NEW && this.isManualUW()) {\r\n //DBSEP-7012\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n if (common.isDefined(premiumData) && premiumData.length > 0) {\r\n var premium = premiumData[0].premiumSummary?.premium;\r\n if (common.isDefined(premium)) {\r\n if (premium > MortgageFireHongKongFieldValidationManager.maxPremium) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Premium cannot exceed HKD 5,000,000.00\",\r\n this.proposal!.qsPremiumSummary.qs_master_techRate!\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateMaxPremiumIfEnd() {\r\n if (this.proposal.transType === Enums.TransType.END && this.isManualUW()) {\r\n //DBSEP-7245\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n if (common.isDefined(premiumData) && premiumData.length > 0) {\r\n var premium = premiumData[0].premiumSummary?.premium;\r\n if (common.isDefined(premium)) {\r\n //only validate when > 0, when END\r\n if (premium > MortgageFireHongKongFieldValidationManager.maxPremium) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Premium cannot exceed HKD 5,000,000.00\",\r\n this.proposal!.qsPremiumSummary.qs_master_techRate!\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n isManualUW() {\r\n return (\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === \"True\" ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true\r\n );\r\n }\r\n\r\n validate_InsuredNo() {\r\n if (\r\n this.proposal.qsMaster.qs_master_insuredNo!.readAnswerAsString() === \"\"\r\n ) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Client No\",\r\n this.proposal.qsMaster.qs_master_insuredNo!\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n validate_InsuredName() {\r\n if (\r\n this.proposal.qsMaster.qs_master_insuredName!.readAnswerAsString() === \"\"\r\n ) {\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Mortgagor Name\",\r\n this.proposal.qsMaster.qs_master_insuredName!\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n convertToEchos(echos: Echo | null) {\r\n const echoArray: Array> =\r\n Array>();\r\n const pEchos = echos;\r\n if (pEchos) {\r\n echoArray.push(pEchos);\r\n }\r\n return proposalHelper.convertToEchos(echoArray);\r\n }\r\n\r\n concateEchos(echos: Echo | null) {\r\n const results = this.convertToEchos(echos);\r\n this.echos = lodash.concat(this.echos, results);\r\n }\r\n\r\n concateEchosIfNotExist(echos: Echo | null, str: string) {\r\n const results = this.convertToEchos(echos);\r\n if (!this.checkEchosExist(str)) {\r\n this.echos = lodash.concat(this.echos, results);\r\n }\r\n }\r\n\r\n checkEchosExist(str: string) {\r\n if (this.echos && this.echos.length > 0 && this.echos[0].echos) {\r\n return this.echos[0].echos.filter((x) => x.message === str);\r\n }\r\n\r\n return null; //also concat\r\n }\r\n //#endregion\r\n\r\n //#region at least one field is filled\r\n atLeastOneRiskInsuredAddressIsFilled() {\r\n let questions = this.proposal.extractQuestionArray();\r\n\r\n let qs_risk_insuredAddress_lotunit = questions.filter(\r\n (x) => x.key === \"qs_risk_insuredAddress_lotunit\"\r\n );\r\n\r\n let qs_risk_insuredAddress_building = questions.filter(\r\n (x) => x.key === \"qs_risk_insuredAddress_building\"\r\n );\r\n\r\n let qs_risk_insuredAddress1 = questions.filter(\r\n (x) => x.key === \"qs_risk_insuredAddress1\"\r\n );\r\n\r\n let qs_risk_insuredAddress2 = questions.filter(\r\n (x) => x.key === \"qs_risk_insuredAddress2\"\r\n );\r\n\r\n let qs_risk_insuredAddress3 = questions.filter(\r\n (x) => x.key === \"qs_risk_insuredAddress3\"\r\n );\r\n\r\n if (\r\n qs_risk_insuredAddress_lotunit.length > 0 &&\r\n qs_risk_insuredAddress_building.length > 0 &&\r\n qs_risk_insuredAddress1.length > 0 &&\r\n qs_risk_insuredAddress2.length > 0 &&\r\n qs_risk_insuredAddress3.length > 0\r\n )\r\n if (\r\n common.isStringNullOrEmpty(qs_risk_insuredAddress_lotunit[0].answer) &&\r\n common.isStringNullOrEmpty(qs_risk_insuredAddress_building[0].answer) &&\r\n common.isStringNullOrEmpty(qs_risk_insuredAddress1[0].answer) &&\r\n common.isStringNullOrEmpty(qs_risk_insuredAddress2[0].answer) &&\r\n common.isStringNullOrEmpty(qs_risk_insuredAddress3[0].answer)\r\n ) {\r\n qs_risk_insuredAddress_lotunit[0].required = true;\r\n } else {\r\n //need to reset in case, re-fill\r\n qs_risk_insuredAddress_lotunit[0].required = false;\r\n }\r\n }\r\n\r\n inverseQuestionRequired(\r\n quesToCheck: QuestionEntity,\r\n ques1ToInverse: QuestionEntity,\r\n ques2ToInverse: QuestionEntity,\r\n ques3ToInverse: QuestionEntity\r\n ) {\r\n if (!common.isStringNullOrEmpty(quesToCheck!.answer)) {\r\n ques1ToInverse!.required = false;\r\n ques2ToInverse!.required = false;\r\n ques3ToInverse!.required = false;\r\n }\r\n }\r\n //#endregion\r\n\r\n /** Method for validate atleast one of the equipment SI must be greater than zero */\r\n validateEquipmentsSI(): Echos[] {\r\n let totalSI = 0;\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_machinery_equipment\":\r\n const answer = q.readAnswerAsString();\r\n let equipmentAnswer: any[] = [];\r\n if (common.isDefined(answer) && answer !== null && answer !== \"\") {\r\n equipmentAnswer = JSON.parse(answer!);\r\n if (equipmentAnswer.length > 0) {\r\n equipmentAnswer.forEach((ep) => {\r\n totalSI = totalSI + ep.sumInsured;\r\n });\r\n }\r\n }\r\n if (totalSI <= 0) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Sum Insured of the Equipments must be greater than Zero\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n }\r\n validateCBGTotalChargeAgainstGrossAndGST = (): Echos[] => {\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n const proposalTransType = this.proposal.transType;\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_master_brokerCommission\":\r\n if (premiumData.length > 0) {\r\n const counter = [];\r\n if (common.isDefined(premiumData[0].premiumSummary)) {\r\n if (\r\n (Math.sign(premiumData[0].premiumSummary.premium) >= 0 &&\r\n Math.sign(premiumData[0].premiumSummary.premiumTax) >= 0) ||\r\n (Math.sign(premiumData[0].premiumSummary.premium) <= 0 &&\r\n Math.sign(premiumData[0].premiumSummary.premiumTax) <= 0)\r\n ) {\r\n if (\r\n //todo\r\n true\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n ) {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n }\r\n //todo\r\n // if ($(\"#cbg_fireGST\").siblings().hasClass(\"chubbLightRed_bg\")) {\r\n // $(\"#cbg_fireGST\").siblings().removeClass(\"chubbLightRed_bg\");\r\n // }\r\n } else {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // $(\"#cbg_fireGST\").siblings().addClass(\"chubbLightRed_bg\");\r\n const str =\r\n \"The Gross Premium or GST is incorrect for Property Fire\";\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferral\":\r\n if (premiumData.length > 0) {\r\n if (common.isDefined(premiumData[0].premiumSummary)) {\r\n const coverage = premiumData[0].premiumSummary;\r\n if (\r\n coverage.premium < 0 &&\r\n Math.abs(coverage.premium) > coverage.accumulatedBasePremium\r\n ) {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n const str =\r\n \"The Gross Premium cannot be refunded more than accumulated Base Premium $\" +\r\n coverage.accumulatedBasePremium;\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n } else {\r\n if (\r\n //todo\r\n true\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n ) {\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n }\r\n }\r\n\r\n if (\r\n coverage.premiumTax < 0 &&\r\n Math.abs(coverage.premiumTax) > coverage.accumulatedPremiumGst\r\n ) {\r\n //$(\"#cbg_fireGST\").siblings().addClass(\"chubbLightRed_bg\");//todo\r\n const str =\r\n \"The GST cannot be refunded more than accumulated Premium GST $\" +\r\n coverage.accumulatedPremiumGst;\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n } else {\r\n //todo\r\n // if ($(\"#cbg_fireGST\").siblings().hasClass(\"chubbLightRed_bg\")) {\r\n // $(\"#cbg_fireGST\").siblings().removeClass(\"chubbLightRed_bg\");\r\n // }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferralReason\":\r\n if (\r\n premiumData.length > 0 &&\r\n proposalTransType === Enums.TransType.NEW\r\n ) {\r\n if (premiumData[0].premiumSummary.premium <= 0) {\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Gross Premium must be greater than $0.\",\r\n q\r\n )\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n };\r\n /** Method for validate the total Charge cannot be less than sum of Gross Premium and GST */\r\n validateTotalChargeAgainstGrossAndGST = (): Echos[] => {\r\n const totalSI = 0;\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n var t = this.proposal.auxiliary[\"qt\"];\r\n const premiumData = t;\r\n const proposalTransType = this.proposal.transType;\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_master_brokerCommission\":\r\n if (premiumData.length > 0) {\r\n const counter: ICoverage[] = [];\r\n premiumData[0].coverages.forEach(\r\n (coverage: {\r\n premiumDetails: { premium: number; premiumTax: number };\r\n coverageProductMappingId: string;\r\n coverageName: ICoverage;\r\n }) => {\r\n if (\r\n (Math.sign(coverage.premiumDetails.premium) >= 0 &&\r\n Math.sign(coverage.premiumDetails.premiumTax) >= 0) ||\r\n (Math.sign(coverage.premiumDetails.premium) <= 0 &&\r\n Math.sign(coverage.premiumDetails.premiumTax) <= 0)\r\n ) {\r\n //todo\r\n // if (\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n // ) {\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n // }\r\n // if (\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n // ) {\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n // }\r\n // } else {\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // counter.push(coverage.coverageName);\r\n }\r\n }\r\n );\r\n if (counter.length > 0) {\r\n let str = \"The Gross Premium or GST is incorrect for \";\r\n for (let i = 0; i < counter.length; i++) {\r\n str = str + \"\\n\" + counter[i] + \" , \";\r\n }\r\n str = str.slice(0, -3);\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferral\":\r\n if (premiumData.length > 0) {\r\n const counter: ICoverage[] = [];\r\n premiumData[0].coverages.forEach((coverage: ICoverage) => {\r\n if (\r\n coverage.premiumDetails!.premium < 0 &&\r\n Math.abs(coverage.premiumDetails!.premium) >\r\n coverage.premiumDetails!.accumulatedBasePremium!\r\n ) {\r\n //todo\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n counter.push(coverage);\r\n }\r\n });\r\n if (counter.length > 0) {\r\n let str =\r\n \"The Gross Premium cannot be refunded more than accumulated Base Premium of \";\r\n for (let i = 0; i < counter.length; i++) {\r\n str =\r\n str +\r\n \"\\n$\" +\r\n counter[i].premiumDetails!.accumulatedBasePremium +\r\n \" for \" +\r\n counter[i].coverageName +\r\n \" , \";\r\n }\r\n str = str.slice(0, -3);\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferralReason\":\r\n if (\r\n premiumData.length > 0 &&\r\n proposalTransType === Enums.TransType.NEW\r\n ) {\r\n const counter = [];\r\n if (premiumData[0].premiumSummary.premium <= 0) {\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Gross Premium must be greater than $0.\",\r\n q\r\n )\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireHKTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n };\r\n\r\n /*2022-08-29 dagoh0: APACDM-363 - validate previous selected Plan Type against new selected Plan Type*/\r\n //validateCBGSelectedPlanType = (previousPlanType: string): Echos[] => {\r\n // const results: Echos[] = [];\r\n // const echos: Echo[] = [];\r\n //\r\n //\r\n // const isCBGProduct = (this.proposal.productType !== EnumSG.MortgageFireSgProduct.IBGMF &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.IBGMAC &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTHDB &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFCONDO &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFPTE);\r\n //\r\n // const questions = this.proposal.extractQuestionArray();\r\n // if (isCBGProduct){\r\n //\r\n // const q = questions.filter(x=>x.key==='qs_master_planType')[0];\r\n // let planTypeAnswer = q.readAnswerAsString();\r\n //\r\n // if (planTypeAnswer === previousPlanType)\r\n // {\r\n // console.log(planTypeAnswer + '::' + previousPlanType)\r\n // echos.push(proposalHelper.\r\n // buildQuestionEntityEcho('Endorsing Plan Type that are same as existing policy\\'s plan type are not allowed.', q));\r\n // }\r\n // }\r\n //\r\n //\r\n // const resultEchos = proposalHelper.convertToEchos(echos);\r\n // resultEchos.forEach(e => {\r\n // const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(e, MortgageFireHKTabSchema.tabs);\r\n // results.push(echosToAdd);\r\n // });\r\n //\r\n // if (this.echos.length > 0) {\r\n // if (results.length > 0) {\r\n // this.echos[0].echos.push(results[0].echos[0]);\r\n // }\r\n // } else {\r\n // this.echos = results;\r\n // }\r\n // return this.echos;\r\n //}\r\n}\r\n","import * as MfEnum from \"./../../hong-kong/base/mf-hk-enums\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { Proposal } from \"../../../../base/proposal.model\";\r\nimport { ProposalEntity } from \"./../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { IdentityRolesService } from \"../../../../../../services/identity-roles.service\";\r\n\r\n/** Empty dummy class. No actual implementation\r\n * This class was created just to fullfil multi location structure,\r\n * but actually mortgage fire Singapore is single location\r\n */\r\nexport class MortgageFireHongKongProposalLocation extends Proposal {\r\n constructor(\r\n productId: GUID,\r\n public override identityRolesService: IdentityRolesService\r\n ) {\r\n super(productId, identityRolesService);\r\n\r\n this.initialize();\r\n }\r\n\r\n initialize() {}\r\n\r\n refreshQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n }\r\n\r\n refreshPremiumSummary(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n }\r\n\r\n refreshQuestionsReadOnly(proposalEntity: ProposalEntity) {\r\n // do nothing\r\n }\r\n\r\n extractQuestionArray(): QuestionEntity[] {\r\n const questions: QuestionEntity[] = [];\r\n return questions;\r\n }\r\n}\r\n","import * as EnumHK from \"./mf-hk-enums\";\r\nimport * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as MfEnum from \"./../../hong-kong/base/mf-hk-enums\";\r\nimport {\r\n ProductID,\r\n UserRoles,\r\n} from \"./../../../../../../framework/const.shared\";\r\nimport { TransType, UserType } from \"./../../../../../../framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { Global } from \"../../../../../../shared/global\";\r\nimport { Identity } from \"../../../../../../shared/user/identity\";\r\nimport { MortgageFireHongKongClientCreateQuestionSection } from \"./questions/mf-hk-client-create-question-section\";\r\nimport { MortgageFireHongKongMasterQuestionSection } from \"./questions/mf-hk-master-question-section\";\r\nimport { MortgageFireHongKongPremiumSummaryQuestionSection } from \"./questions/mf-hk-premium-summary-question-section\";\r\nimport { MortgageFireHongKongProposalLocation } from \"./mf-hk-proposal-location\";\r\nimport { Proposal } from \"../../../../base/proposal.model\";\r\nimport { ProposalEntity } from \"./../../../../base/proposal-entity.model\";\r\nimport { ProposalPackage } from \"./../../../../base/proposal-package-model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { mortgageFireHongKongHelper } from \"../utils/mf-hk-helper\";\r\nimport { proposalEntityFactory } from \"./../../../../factory/proposal-entity.factory\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\nimport { IdentityRolesService } from \"../../../../../../services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { ClausesandDeductibles } from \"src/app/models/new-product/base/Clauses-Deductibles.model\";\r\n\r\nexport class MortgageFireHongKongProposal extends ProposalPackage {\r\n /** cmwanx: 2017-11-7\r\n * Mortgage Fire was originally designed to cater multiple locations.\r\n *\r\n * Later JK decided it will always be single location.\r\n * Although front end is now only capturing for single location,\r\n * but [Proposal] class still remains its multi location design to extends from [ProposalPackage]\r\n */\r\n\r\n qsMaster!: MortgageFireHongKongMasterQuestionSection;\r\n qsPremiumSummary!: MortgageFireHongKongPremiumSummaryQuestionSection;\r\n qsClientCreate!: MortgageFireHongKongClientCreateQuestionSection;\r\n productType: MfEnum.MortgageFireHKProduct;\r\n\r\n messageId!: number;\r\n printType?: string;\r\n printCorrespondence?: string;\r\n isReprint?: boolean;\r\n isSummary?: boolean;\r\n isManual?: boolean;\r\n isPasswordProtected?: boolean;\r\n IsCancellationAdjustment!: boolean;\r\n\r\n /** ProposalEntity that last used for refreshing questions */\r\n refreshedProposalEntity!: ProposalEntity;\r\n // TODO: other sections question implementation\r\n\r\n /**\r\n * productID\r\n * proposalEntity <= will be passing in while proposalApi retrieved object from back end\r\n */\r\n constructor(\r\n productId: GUID,\r\n public override identityRolesService: IdentityRolesService,\r\n public masterDataService: MasterDataService\r\n ) {\r\n super(productId, identityRolesService);\r\n\r\n this.productType = mortgageFireHongKongHelper.readProductType(\r\n this.productId\r\n )!;\r\n\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n // initialize sections\r\n this.qsMaster = new MortgageFireHongKongMasterQuestionSection(\r\n this.masterDataService\r\n );\r\n this.qsPremiumSummary =\r\n new MortgageFireHongKongPremiumSummaryQuestionSection(\r\n this.masterDataService\r\n );\r\n this.qsClientCreate = new MortgageFireHongKongClientCreateQuestionSection(\r\n this.masterDataService\r\n );\r\n\r\n this.children = [];\r\n }\r\n\r\n refreshQuestionsReadOnly(proposalEntity: ProposalEntity) {\r\n const questions = this.extractQuestionArray();\r\n\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (q && common.isDefined(q)) {\r\n if (\r\n this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfAdditionalInsured ||\r\n this.endorsementType === Enums.EndorsementType.GstAdjustment ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPlanType\r\n ) {\r\n question.readOnly = true;\r\n } else {\r\n question.readOnly = q.readOnly;\r\n }\r\n }\r\n });\r\n }\r\n\r\n refreshQuestionsReadOnlyForcbsOps(proposalEntity: ProposalEntity) {\r\n const isIBGProducts = false;\r\n // this.productType === EnumSG.MortgageFireSgProduct.IBGMAC ||\r\n // this.productType === EnumSG.MortgageFireSgProduct.IBGMF;\r\n\r\n const isIBGOPS =\r\n this.identityRolesService.IsCbsOps &&\r\n isIBGProducts &&\r\n this.transType === Enums.TransType.END &&\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n\r\n const isCBGOPS =\r\n this.identityRolesService.IsCbsOps &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n\r\n if (isIBGOPS || isCBGOPS) {\r\n const questions = this.extractQuestionArray();\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n question.readOnly = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshCustomQuestionsReadOnly = (proposalEntity: ProposalEntity) => {\r\n if (this.productType === EnumHK.MortgageFireHKProduct.HSCMB) {\r\n this.qsPremiumSummary.qs_master_commission.readOnly = true; //CMB only, always\r\n }\r\n\r\n if (this.productType === EnumHK.MortgageFireHKProduct.HSWPB) {\r\n this.qsPremiumSummary.qs_master_techRate.readOnly = true; //WPB only, always\r\n }\r\n\r\n //DBSEP-7022\r\n this.qsMaster.qs_fire_currency!.readOnly = true;\r\n this.qsMaster.qs_fire_currency!.answer = \"HKD\";\r\n\r\n let isNB = this.whenNewBussiness();\r\n if (!isNB) {\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true; //as long as not NB, remarks is needed\r\n this.qsMaster.qs_fire_coverageValueType!.readOnly = true; //as long as not NB, it cannot be edited\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true; //as long as not NB, it cannot be edited\r\n\r\n this.qsMaster.qs_risk_insuredAddress1!.readOnly = true; //when END, readonly\r\n this.qsMaster.qs_risk_insuredAddress2!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress3!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_risk_insuredDistCode!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_risk_carParkAddress1!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_risk_carParkAddress2!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_risk_carParkAddress3!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_risk_carParkAddress4!.readOnly = true; //when GeneralEdit, readonly\r\n this.qsMaster.qs_fire_grossFloorArea!.readOnly = true; //readonly for the rest, when GeneralEdit do in its func\r\n //this.qsMaster.qs_fire_currency!.readOnly = true; //readonly for the rest, when GeneralEdit do in its func //DBSEP-7022\r\n this.qsMaster.qs_fire_loanAmount!.readOnly = true; //readonly for the rest, when GeneralEdit do in its func\r\n\r\n //reset when newly bound from in-complete to accepted; add other proposalStatus if needed\r\n if (this.productType === EnumHK.MortgageFireHKProduct.HSCMB) {\r\n this.qsMaster.qs_risk_occupancy!.readOnly = true; //readonly for the rest, when GeneralEdit do in its func\r\n this.qsMaster.qs_risk_construction!.readOnly = true; //readonly for the rest, when GeneralEdit do in its func\r\n }\r\n }\r\n\r\n this.qsMaster.qs_risk_insuredPostalCode!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredCity!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredCountry!.readOnly = true;\r\n //this.qsMaster.qs_master_poi_endDate!.readOnly = false;\r\n // this.qsMaster.qs_master_insuredNo.readOnly = true;\r\n this.qsMaster.qs_fire_householdContents!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress!.readOnly = true;\r\n this.qsMaster.qs_risk_uploadRiskAddress!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCountry!.readOnly = true;\r\n this.qsPremiumSummary.qs_master_brokerCommission.required = false;\r\n this.qsMaster.qs_master_insuredAddress1!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress2!.readOnly = true;\r\n this.qsMaster.qs_master_insuredPostalCode!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCity!.readOnly = true;\r\n this.qsMaster.qs_master_insuredState!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCountry!.readOnly = true;\r\n if (this.transType === Enums.TransType.END) {\r\n this.qsMaster.qs_master_planType!.readOnly = true;\r\n this.qsMaster.qs_master_premiumPayment!.readOnly = true; //when GeneralEdit, editable\r\n }\r\n //HE-2236: Set Discount ReadOnly\r\n this.checkDiscountEligibility('');\r\n\r\n this.qsMaster.qs_otherinfo_VersionDate!.readOnly = true; //always, regardless of proposalStatus;\r\n this.qsMaster.qs_otherinfo_AutoIssue!.readOnly = true; //always, regardless of proposalStatus;\r\n this.qsMaster.qs_master_masterPolicyNumber!.readOnly = true; //always, regardless of proposalStatus; read from propertyType 'qs_fire_occupied'\r\n\r\n //if any of the field aside country is selected then can bind\r\n //this.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress_building!.required = false;\r\n this.qsMaster.qs_risk_insuredAddress1!.required = false;\r\n this.qsMaster.qs_risk_insuredAddress2!.required = false;\r\n this.qsMaster.qs_risk_insuredAddress3!.required = false;\r\n\r\n switch (this.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.qsMaster.qs_fire_notes!.required = false;\r\n // HDB don't have Fire Replacement Value Question. So setting min value as 0.\r\n this.qsMaster.qs_fire_replacement!.minValue = 0;\r\n this.qsMaster.qs_fire_building!.minValue = 1;\r\n this.qsMaster.qs_master_insuredNo!.readOnly = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // assign value for CBG product only\r\n switch (this.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n if (this.endorsementType != Enums.EndorsementType.ChangeOfPlanType) {\r\n this.qsMaster.qs_master_planType!.readOnly = true;\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (\r\n (this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfAdditionalInsured ||\r\n this.endorsementType === Enums.EndorsementType.GstAdjustment) &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n //(this.identityRolesService.isMaker || this.isUnderwriter)//change for Hase\r\n this.identityRolesService.getIdentity().role.IsHASEUser) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.isOperationUnderwriter))\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = false;\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n this.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_cancellation_masterpiece!.readOnly = false;\r\n }\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n this.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_poi_startDate!.readOnly = false;\r\n }\r\n\r\n if (\r\n this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n this.isBroker\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = true;\r\n this.qsMaster.qs_master_cancellation_masterpiece!.readOnly = true;\r\n this.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = true;\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = true;\r\n }\r\n if (this.endorsementType === Enums.EndorsementType.LoanRedemption &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.IsHASEUser) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.isOperationUnderwriter))\r\n ) {\r\n this.qsMaster.qs_otherinfo_MortgLoanAcctNum2!.readOnly = false;\r\n this.qsMaster.qs_otherinfo_MortgLoanAcctNum3!.readOnly = false;\r\n }\r\n }\r\n\r\n if (\r\n this.refreshedProposalEntity.proposalReadOnly ||\r\n this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption\r\n ) {\r\n this.qsMaster.qs_master_insuredAddress_building!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = true;\r\n }\r\n\r\n this.qsMaster.qs_master_poi_endDate!.readOnly = true; //always, regarding any proposal status\r\n\r\n this.whenGeneralEndorsement();\r\n this.whenChangeOfSumInsured();\r\n this.whenChangeOfPlanType();\r\n this.whenRenewal();\r\n\r\n // If User role is isClaimant or ProductReadOnly, all the questions should be readOnly\r\n if (\r\n this.identityRolesService.isClaimant ||\r\n this.identityRolesService.isProductReadOnly\r\n ) {\r\n const questions = this.extractQuestionArray();\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n question.readOnly = true;\r\n }\r\n });\r\n }\r\n\r\n this.whenChangeOfCorrespondenceAddress();\r\n this.whenChangeOfClientInfo();\r\n\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.transType === Enums.TransType.CAN &&\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = false;\r\n this.qsMaster.qs_master_insuredAddress_building!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = true;\r\n }\r\n\r\n let isCanAdj = this.whenCancellationAdjustment();\r\n if (!isCanAdj) {\r\n // Visibility Check\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.isVisible = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.isVisible =\r\n false;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.required =\r\n false;\r\n }\r\n\r\n // Waive Minimum Premium Checkbox\r\n // Visibility Check\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n this.auxiliary[\"DisplayMinimumPremiumWaived\"]\r\n ) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n\r\n // Disable Check\r\n if (this.proposalStatus === Enums.ProposalStatus.Incomplete) {\r\n if (!this.isUnderwriter) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled = true;\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n } else {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled =\r\n this.auxiliary[\"FirstCancellationWaiveMinimumPremium\"];\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n }\r\n } else {\r\n /* for accepted scenario */\r\n if (!this.isUnderwriter) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n } else {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n }\r\n\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled = true;\r\n }\r\n } else {\r\n // Visibility Check\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n }\r\n\r\n this.refreshCustomQuestionsReadOnlyForDeliveryMethod(proposalEntity);\r\n };\r\n\r\n //#region proposal status\r\n whenNewBussiness(): boolean {\r\n if (\r\n this.transType === Enums.TransType.NEW &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_risk_insuredAddress1!.readOnly = false; //only NB can edit\r\n this.qsMaster.qs_risk_insuredAddress2!.readOnly = false;\r\n\r\n //this.qsMaster.qs_risk_carParkAddress1!.required = true; //default carParkAddress1 to required //no more\r\n this.qsPremiumSummary.qs_master_techRate.readOnly = false;\r\n\r\n if (this.productType === EnumHK.MortgageFireHKProduct.HSWPB)\r\n this.qsPremiumSummary.qs_master_techRate.readOnly = true;\r\n\r\n const isCMBProducts =\r\n this.productType === EnumHK.MortgageFireHKProduct.HSCMB;\r\n const isWPBroducts =\r\n this.productType === EnumHK.MortgageFireHKProduct.HSWPB;\r\n //HE-28: 4- Commission: by default, is 40%, should be editable in both Manual and Non-Manual Underwriting.\r\n if (isCMBProducts || (isWPBroducts && this.isUnderwriter)) {\r\n this.qsPremiumSummary.qs_master_brokerCommission.readOnly = false;\r\n }\r\n\r\n //check if not defined, then only assign default\r\n if (\r\n common.isUndefinedOrNull(this.qsMaster.qs_risk_construction!.answer) ||\r\n this.qsMaster.qs_risk_construction!.answer === \"\"\r\n ) {\r\n this.qsMaster.qs_risk_construction!.answer = \"Class I\"; //default\r\n }\r\n return true;\r\n } else if (\r\n this.transType === Enums.TransType.NEW &&\r\n this.proposalStatus === Enums.ProposalStatus.Referred\r\n ) {\r\n const isWPBroducts =\r\n this.productType === EnumHK.MortgageFireHKProduct.HSWPB; //HE-28\r\n if (isWPBroducts && this.isUnderwriter) {\r\n //HE-28: 4- Commission: by default, is 40%, should be editable in both Manual and Non-Manual Underwriting.\r\n this.qsPremiumSummary.qs_master_brokerCommission.readOnly = false;\r\n\r\n this.qsMaster.qs_risk_carParkAddress1!.readOnly = false;\r\n this.qsMaster.qs_fire_grossFloorArea!.readOnly = false;\r\n this.qsMaster.qs_fire_loanAmount!.readOnly = false;\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n whenGeneralEndorsement() {\r\n if (\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.transType === Enums.TransType.END &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.IsHASEUser) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.IsHASEUser))\r\n ) {\r\n this.qsMaster.qs_master_premiumPayment!.readOnly = false; //when GeneralEdit, editable\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = false; //when GeneralEdit, editable\r\n if (this.productType === EnumHK.MortgageFireHKProduct.HSCMB) {\r\n //this.qsPremiumSummary.qs_master_commission.readOnly = false; //CMB only when GeneralEdit, editable\r\n }\r\n //this.qsMaster.qs_master_endorse_endorsementReason!.required = false;\r\n this.qsMaster.qs_risk_insuredAddress_building!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = true;\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n\r\n this.qsMaster.qs_fire_loanAmount!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_fire_replacement!.readOnly = false; //all product when GeneralEdit, editable\r\n //this.qsMaster.qs_fire_currency!.readOnly = false; //all product when GeneralEdit, editable //DBSEP-7022\r\n this.qsMaster.qs_fire_grossFloorArea!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_risk_occupancy!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_risk_construction!.readOnly = false; //all product when GeneralEdit, editable\r\n }\r\n }\r\n\r\n whenChangeOfSumInsured() {\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.IsHASEUser\r\n ) {\r\n switch (this.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_occupied!.required = true;\r\n this.qsMaster.qs_fire_building!.readOnly = false; //follow EnumSG.MortgageFireSgProduct.PTE when END\r\n this.qsMaster.qs_fire_building!.required = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n } else if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured &&\r\n this.proposalStatus === Enums.ProposalStatus.Referred\r\n ) {\r\n const isWPBroducts =\r\n this.productType === EnumHK.MortgageFireHKProduct.HSWPB; //HE-28\r\n if (isWPBroducts) {\r\n if (this.isBroker) {\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n } else if (this.isUnderwriter) {\r\n this.qsMaster.qs_fire_building!.readOnly = false; //HE-28\r\n this.qsMaster.qs_fire_building!.required = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n whenRenewal() {\r\n if (\r\n this.transType === Enums.TransType.REN &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.IsHASEUser\r\n ) {\r\n switch (this.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = false;\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_occupied!.required = true;\r\n this.qsMaster.qs_fire_building!.readOnly = false; //follow EnumSG.MortgageFireSgProduct.PTE when END\r\n this.qsMaster.qs_fire_building!.required = true;\r\n this.qsMaster.qs_risk_insuredAddress_building!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = true;\r\n\r\n this.qsMaster.qs_fire_loanAmount!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_fire_replacement!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_fire_grossFloorArea!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_risk_occupancy!.readOnly = false; //all product when GeneralEdit, editable\r\n this.qsMaster.qs_risk_construction!.readOnly = false; //all product when GeneralEdit, editable\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this.productType == EnumHK.MortgageFireHKProduct.HSCMB) {\r\n //Broker commission should be editable for renewal\r\n this.qsPremiumSummary.qs_master_brokerCommission.readOnly = false;\r\n }\r\n } else if (this.proposalStatus === Enums.ProposalStatus.Referred) {\r\n const isWPBroducts =\r\n this.productType === EnumHK.MortgageFireHKProduct.HSWPB;\r\n if (isWPBroducts) {\r\n if (this.isBroker) {\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n } else if (this.isUnderwriter) {\r\n this.qsMaster.qs_fire_building!.readOnly = false;\r\n this.qsMaster.qs_fire_building!.required = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n whenChangeOfPlanType() {\r\n //2022-08-25 dagoh0: APACDM-363 - Handle fields required for change of plan type\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPlanType &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.isUnderwriter ||\r\n this.identityRolesService.getIdentity().role.IsCbsOps ||\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter)\r\n ) {\r\n switch (this.productType) {\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n // case EnumSG.MortgageFireSgProduct.HDB:\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n this.qsMaster.qs_master_planType!.readOnly = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n whenChangeOfCorrespondenceAddress() {\r\n // Enable Client Address and info endorsement for CBSOPS user\r\n const isChangeOfAddressOrClientInfo =\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo;\r\n\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n isChangeOfAddressOrClientInfo\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n }\r\n }\r\n\r\n whenChangeOfClientInfo() {\r\n //Enabled client info endorsement for CS CBS SG User\r\n if (\r\n this.identityRolesService.IsCSCBGSG &&\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n }\r\n }\r\n\r\n whenCancellationAdjustment(): boolean {\r\n // Cancellation adjustmentAmount and maximum adjust amount\r\n // Visibility Check\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n this.endorsementType === Enums.EndorsementType.CancellationAdjustment\r\n ) {\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.isVisible = true;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.isVisible =\r\n true;\r\n\r\n // Readonly Check\r\n if (\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.isUnderwriter\r\n ) {\r\n // can edit only after incomplete and underwriter\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.readOnly =\r\n false;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = true;\r\n } else {\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = true;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.readOnly =\r\n true;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = false;\r\n }\r\n\r\n // Updating Min and Max value of adjustment amount depend on Maximum Adjustment amount\r\n var maximumAdjustmentAmount =\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount;\r\n maximumAdjustmentAmount!.answer =\r\n maximumAdjustmentAmount!.answer === undefined ||\r\n isNaN(maximumAdjustmentAmount!.answer)\r\n ? 0\r\n : parseFloat(maximumAdjustmentAmount!.answer);\r\n\r\n var adjustmentAmount =\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount;\r\n adjustmentAmount!.answer =\r\n adjustmentAmount!.answer === undefined ||\r\n isNaN(adjustmentAmount!.answer)\r\n ? 0\r\n : parseFloat(adjustmentAmount!.answer);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n //#endregion\r\n\r\n refreshCustomQuestionsReadOnlyForDeliveryMethod(\r\n proposalEntity: ProposalEntity\r\n ) {\r\n if (\r\n this.transType === Enums.TransType.END &&\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n switch (this.productType) {\r\n // case EnumSG.MortgageFireSgProduct.HDB:\r\n // case EnumSG.MortgageFireSgProduct.MIP:\r\n // case EnumSG.MortgageFireSgProduct.PTE:\r\n // case EnumSG.MortgageFireSgProduct.CTHDB:\r\n // case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n // case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n case EnumHK.MortgageFireHKProduct.HSCMB:\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n this.qsMaster.qs_master_preferredDeliveryMethod!.readOnly = true;\r\n break;\r\n // case EnumSG.MortgageFireSgProduct.IBGMF:\r\n // case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n // // this.qsMaster.qs_master_preferredDeliveryMethod.readOnly = true;\r\n // // this.qsMaster.qs_master_mobileNumber.readOnly=true;\r\n // // this.qsMaster.qs_master_emailID.readOnly=true;\r\n // break;\r\n }\r\n }\r\n }\r\n refreshPotentiallyChangedQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n\r\n this.qsMaster.questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (q && common.isDefined(q)) {\r\n switch (question.key) {\r\n case \"qs_master_effectiveDate\":\r\n this.qsMaster.qs_master_effectiveDate!.answer = q.answer;\r\n break;\r\n case \"qs_master_endorse_endorsementReason\":\r\n this.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n q.answer;\r\n break;\r\n case \"qs_master_refund\":\r\n this.qsMaster.qs_master_refund!.answer = q.answer;\r\n break;\r\n case \"qs_fire_occupied\":\r\n this.qsMaster.qs_fire_occupied!.answer = q.answer;\r\n break;\r\n case \"qs_master_manualUnderwritting\":\r\n this.qsMaster.qs_master_manualUnderwritting!.answer = q.answer;\r\n break;\r\n case \"qs_master_insuredCountry\":\r\n if (\r\n this.qsMaster.qs_master_insuredCountry!.answer === null ||\r\n this.qsMaster.qs_master_insuredCountry!.answer === \"\"\r\n ) {\r\n this.qsMaster.qs_master_insuredCountry!.answer = \"SG\";\r\n }\r\n break;\r\n case \"qs_fire_freeInsuranceFirstYear\":\r\n // // IBG\r\n // if (\r\n // this.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n // this.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n // ) {\r\n // this.qsMaster.qs_fire_freeInsuranceFirstYear!.answer = q.answer;\r\n // }\r\n\r\n break;\r\n case \"qs_fire_freeInsuranceNoYear\":\r\n ////Chirag: 28-12-2018 Free Year Change For CBG Prodcut\r\n // IBG\r\n // if (this.productType === EnumSG.MortgageFireSgProduct.IBGMF\r\n // || this.productType === EnumSG.MortgageFireSgProduct.IBGMAC) {\r\n this.qsMaster.qs_fire_freeInsuranceNoYear!.answer = q.answer;\r\n //}\r\n break;\r\n case \"qs_master_masterPolicyNumber\":\r\n // // PTE and MIP\r\n // if (\r\n // this.productType === EnumSG.MortgageFireSgProduct.PTE ||\r\n // this.productType === EnumSG.MortgageFireSgProduct.MIP\r\n // ) {\r\n // this.qsMaster.qs_master_masterPolicyNumber!.answer = q.answer;\r\n // }\r\n\r\n break;\r\n case \"qs_master_poi_startDate\":\r\n if (this.transType === Enums.TransType.REN) {\r\n this.qsMaster.qs_master_poi_startDate!.answer = q.answer;\r\n }\r\n //HE-1811 : Refresh dates for copied policy\r\n if (\r\n this.transType === Enums.TransType.NEW &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_poi_startDate!.answer = q.answer;\r\n }\r\n break;\r\n case \"qs_master_poi_endDate\":\r\n if (this.transType === Enums.TransType.REN) {\r\n this.qsMaster.qs_master_poi_endDate!.answer = q.answer;\r\n }\r\n //HE-1811 : Refresh dates for copied policy\r\n if (\r\n this.transType === Enums.TransType.NEW &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_poi_endDate!.answer = q.answer;\r\n }\r\n break;\r\n case \"qs_master_cancellation_maximumAdjustmentAmount\":\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.answer =\r\n q.answer;\r\n break;\r\n case \"qs_master_lstDetails\":\r\n this.qsMaster.qs_master_lstDetails!.answer = q.answer;\r\n break;\r\n case \"qs_master_lst\":\r\n this.qsMaster.qs_master_lst!.answer = q.answer;\r\n break;\r\n case \"qs_master_planType\":\r\n this.qsMaster.qs_master_planType!.answer = q.answer;\r\n break;\r\n case \"qs_master_discountCode\":\r\n this.qsMaster.qs_master_discountCode!.answer = q.answer;\r\n break;\r\n case \"qs_master_customDiscountCode\":\r\n this.qsMaster.qs_master_customDiscountCode!.answer = q.answer;\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n this.qsPremiumSummary.questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n switch (question.key) {\r\n case \"qs_master_brokerCommission\":\r\n this.qsPremiumSummary.qs_master_brokerCommission.answer = q!.answer;\r\n break;\r\n case \"qs_master_techRate\":\r\n this.qsPremiumSummary.qs_master_techRate.answer = q!.answer;\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n }\r\n\r\n refreshQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n\r\n this.refreshedProposalEntity = proposalEntity;\r\n this.proposalId = proposalEntity.proposalId;\r\n this.qsMaster.refreshQuestions(proposalEntity);\r\n this.qsPremiumSummary.refreshQuestions(proposalEntity);\r\n\r\n // it is always one children\r\n if (\r\n common.isDefined(proposalEntity.children) &&\r\n /* While creating new proposal, back end is returning an children array with zero item, therefore, check for child length */\r\n proposalEntity.children &&\r\n proposalEntity.children!.length! > 0 &&\r\n common.isDefined(this.children) &&\r\n this.children.length > 0\r\n ) {\r\n this.children[0].refreshQuestions(proposalEntity.children[0]);\r\n }\r\n }\r\n\r\n refreshPremiumSummary(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n\r\n /** Refresh the proposalId and entity to pass back to back-end */\r\n this.refreshedProposalEntity = proposalEntity;\r\n this.proposalId = proposalEntity.proposalId;\r\n\r\n this.IsCancellationAdjustment =\r\n this.endorsementType == Enums.EndorsementType.CancellationAdjustment;\r\n\r\n // TODO: refresh premium summary\r\n }\r\n\r\n refreshValidationMessage(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n\r\n /** Refresh the proposalId and entity to pass back to back-end */\r\n this.validationMessage = proposalEntity.validationsMessages;\r\n this.proposalId = proposalEntity.proposalId;\r\n }\r\n\r\n extractQuestionArray(): QuestionEntity[] {\r\n const questions: QuestionEntity[] = [];\r\n\r\n this.qsMaster.questions.forEach((q) => {\r\n if (common.isDefined(this.refreshedProposalEntity.getQuestion(q.key))) {\r\n questions.push(q);\r\n }\r\n });\r\n\r\n this.qsPremiumSummary.questions.forEach((q) => {\r\n if (common.isDefined(this.refreshedProposalEntity.getQuestion(q.key))) {\r\n questions.push(q);\r\n }\r\n });\r\n\r\n return questions;\r\n }\r\n\r\n createOneChild(): MortgageFireHongKongProposalLocation {\r\n const newChild = this.createEmptyLocation();\r\n this.children.push(newChild);\r\n\r\n return newChild;\r\n }\r\n\r\n getChild(proposalId: GUID): MortgageFireHongKongProposalLocation {\r\n const found = proposalHelper.searchChildren(this.children, proposalId);\r\n return found as MortgageFireHongKongProposalLocation;\r\n }\r\n\r\n private createEmptyLocation(): MortgageFireHongKongProposalLocation {\r\n const location = new MortgageFireHongKongProposalLocation(\r\n this.productId,\r\n this.identityRolesService\r\n );\r\n return location;\r\n }\r\n\r\n checkDiscountEligibility(key: any){\r\n if(this.productType === EnumHK.MortgageFireHKProduct.HSWPB)\r\n {\r\n //HE-2236: Copy Function\r\n if(key == 'Copy')\r\n {\r\n this.setDiscountCodeValue(''); \r\n }\r\n else\r\n {\r\n if(this.qsMaster.qs_master_discountCode != null){\r\n if(!this.isUnderwriter || this.transType !== Enums.TransType.NEW)\r\n {\r\n this.setDiscountCodeEnablement(true);\r\n }\r\n //HE-2236: Exclusion case\r\n if(common.isUndefinedOrNull(this.qsPremiumSummary.qs_master_brokerCommission?.answer) || this.qsPremiumSummary.qs_master_brokerCommission?.answer == 'null' || this.qsPremiumSummary.qs_master_brokerCommission?.answer <= 0 || this.qsPremiumSummary.qs_master_techRate?.answer != 0)\r\n {\r\n this.setDiscountCodeEnablement(true);\r\n if(this.transType === Enums.TransType.NEW && this.proposalStatus === Enums.ProposalStatus.Incomplete)\r\n this.setDiscountCodeValue('1');\r\n }\r\n else if(this.transType === Enums.TransType.NEW && this.proposalStatus === Enums.ProposalStatus.Incomplete){\r\n if((this.qsMaster.qs_master_discountCode.readOnly == true && this.isUnderwriter) || common.isUndefinedOrNull(this.qsMaster.qs_master_discountCode?.answer) || key == this.qsMaster.qs_otherinfo_InsuranceCompany?.key)\r\n {\r\n this.setDiscountCodeValue(''); \r\n }\r\n if(this.isUnderwriter)\r\n this.setDiscountCodeEnablement(false); \r\n }\r\n }\r\n //HE-2344: Show N/A for all historical policies\r\n if((this.transType !== Enums.TransType.NEW || this.proposalStatus != Enums.ProposalStatus.Incomplete) && common.isUndefinedOrNull(this.qsMaster.qs_master_discountCode?.answer)){\r\n this.setDiscountCodeValue('1');\r\n this.setDiscountCodeEnablement(true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n setDiscountCodeValue(result: any){\r\n if(this.qsMaster.qs_master_discountCode != null)\r\n this.qsMaster.qs_master_discountCode.answer = result == \"1\" ? \"1\" : (String(this.qsMaster.qs_otherinfo_InsuranceCompany?.answer).toUpperCase() == \"CB\" && this.qsPremiumSummary.qs_master_brokerCommission?.answer > 0 && (this.qsMaster.qs_master_manualUnderwritting?.answer == false || this.qsMaster.qs_master_manualUnderwritting?.answer == 'False') && (this.qsPremiumSummary.qs_master_techRate?.answer == 0 || common.isStringNullOrEmpty(this.qsPremiumSummary.qs_master_techRate?.answer))) ? \"4\" : \"1\"; \r\n }\r\n\r\n setDiscountCodeEnablement(result: boolean){\r\n if(this.qsMaster.qs_master_discountCode != null)\r\n this.qsMaster.qs_master_discountCode.readOnly = result; \r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireHKSectionSchema } from \"./../schemas/mf-hk-section-schema\";\r\nimport { MortgageFireHKTabSchema } from \"./../schemas/mf-hk-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"../../../../../../../services/master-data.service\";\r\n\r\nexport class MortgageFireHongKongClientCreateQuestionSection extends QuestionSection {\r\n qs_master_clientSalutation!: QuestionEntity;\r\n qs_master_clientSurname!: QuestionEntity;\r\n qs_master_clientGivenName!: QuestionEntity;\r\n qs_master_clientNRICPassportNo!: QuestionEntity;\r\n qs_master_clientDOB!: QuestionEntity;\r\n\r\n qs_master_clientOccupation!: QuestionEntity;\r\n qs_master_clientCategory!: QuestionEntity;\r\n qs_master_clientRace!: QuestionEntity;\r\n qs_master_clientNationality!: QuestionEntity;\r\n qs_master_clientGender!: QuestionEntity;\r\n\r\n qs_master_clientMaritalStatus!: QuestionEntity;\r\n\r\n qs_master_insuredAddress_building!: QuestionEntity;\r\n qs_master_insuredAddress_lotunit!: QuestionEntity;\r\n qs_master_insuredAddress1!: QuestionEntity;\r\n qs_master_insuredAddress2!: QuestionEntity;\r\n qs_master_insuredAddress3!: QuestionEntity;\r\n qs_master_insuredAddress4!: QuestionEntity;\r\n qs_master_insuredPostalCode!: QuestionEntity;\r\n qs_master_insuredCity!: QuestionEntity;\r\n qs_master_insuredState!: QuestionEntity;\r\n qs_master_insuredCountry!: QuestionEntity;\r\n\r\n qs_master_brokerEmail!: QuestionEntity;\r\n qs_master_brokerPhoneNo!: QuestionEntity;\r\n qs_master_brokerMobileNo!: QuestionEntity;\r\n qs_master_brokerOfficeNo!: QuestionEntity;\r\n qs_master_brokerFaxNo!: QuestionEntity;\r\n qs_master_brokerPagerNo!: QuestionEntity;\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireHKTabSchema.master.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_clientSalutation = new QuestionEntity(\r\n \"qs_master_clientSalutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientSalutation.displayText = \"Salutation\";\r\n this.qs_master_clientSalutation.options = [\r\n { key: \"Capt\", value: \"1\" },\r\n { key: \"Dr\", value: \"2\" },\r\n { key: \"Madam\", value: \"3\" },\r\n { key: \"Miss\", value: \"4\" },\r\n { key: \"Mr\", value: \"5\" },\r\n { key: \"Mrs\", value: \"6\" },\r\n { key: \"Ms\", value: \"7\" },\r\n { key: \"Prof\", value: \"8\" },\r\n { key: \"Sir\", value: \"9\" },\r\n { key: \"Tan Sri\", value: \"10\" },\r\n ];\r\n this.qs_master_clientSalutation.required = true;\r\n this.qs_master_clientSalutation.tabId = this.tabId;\r\n this.qs_master_clientSalutation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientSurname = new QuestionEntity(\r\n \"qs_master_clientSurname\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientSurname.displayText = \"Surname\";\r\n this.qs_master_clientSurname.required = true;\r\n this.qs_master_clientSurname.tabId = this.tabId;\r\n this.qs_master_clientSurname.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientGivenName = new QuestionEntity(\r\n \"qs_master_clientGivenName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientGivenName.displayText = \"Given Name\";\r\n this.qs_master_clientGivenName.required = true;\r\n this.qs_master_clientGivenName.tabId = this.tabId;\r\n this.qs_master_clientGivenName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientNRICPassportNo = new QuestionEntity(\r\n \"qs_master_clientNRICPassportNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientNRICPassportNo.displayText = \"NRIC / Passport Number\";\r\n this.qs_master_clientNRICPassportNo.required = true;\r\n this.qs_master_clientNRICPassportNo.tabId = this.tabId;\r\n this.qs_master_clientNRICPassportNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientDOB = new QuestionEntity(\r\n \"qs_master_clientSalutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientDOB.displayText = \"Birth Date\";\r\n this.qs_master_clientDOB.required = true;\r\n this.qs_master_clientDOB.tabId = this.tabId;\r\n this.qs_master_clientDOB.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientOccupation = new QuestionEntity(\r\n \"qs_master_clientOccupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientOccupation.displayText = \"Occupation\";\r\n this.qs_master_clientOccupation.options = [\r\n { key: \"Accounting Director\", value: \"1\" },\r\n { key: \"Administrator Database\", value: \"2\" },\r\n { key: \"Advisory Sale Specialist\", value: \"3\" },\r\n { key: \"Journalist\", value: \"4\" },\r\n { key: \"Legal Consultant\", value: \"5\" },\r\n { key: \"Management Engineer\", value: \"6\" },\r\n { key: \"Safety Manager\", value: \"7\" },\r\n { key: \"Script Editor\", value: \"8\" },\r\n { key: \"Trade Manager\", value: \"9\" },\r\n ];\r\n this.qs_master_clientOccupation.required = true;\r\n this.qs_master_clientOccupation.tabId = this.tabId;\r\n this.qs_master_clientOccupation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientCategory = new QuestionEntity(\r\n \"qs_master_clientCategory\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientCategory.displayText = \"Category\";\r\n this.qs_master_clientCategory.options = [{ key: \"Others\", value: \"1\" }];\r\n this.qs_master_clientSalutation.required = true;\r\n this.qs_master_clientSalutation.tabId = this.tabId;\r\n this.qs_master_clientSalutation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientRace = new QuestionEntity(\r\n \"qs_master_clientRace\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientRace.displayText = \"Race\";\r\n this.qs_master_clientRace.options = [\r\n { key: \"Chinese\", value: \"1\" },\r\n { key: \"Indian\", value: \"2\" },\r\n { key: \"Malay\", value: \"3\" },\r\n { key: \"Others\", value: \"4\" },\r\n ];\r\n this.qs_master_clientRace.required = true;\r\n this.qs_master_clientRace.tabId = this.tabId;\r\n this.qs_master_clientRace.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientNationality = new QuestionEntity(\r\n \"qs_master_clientNationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientNationality.displayText = \"Nationality\";\r\n this.qs_master_clientNationality.options = [\r\n { key: \"Hong Kong\", value: \"1\" },\r\n { key: \"Singaporean\", value: \"2\" },\r\n ];\r\n this.qs_master_clientNationality.required = true;\r\n this.qs_master_clientNationality.tabId = this.tabId;\r\n this.qs_master_clientNationality.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientGender = new QuestionEntity(\r\n \"qs_master_clientGender\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientGender.displayText = \"Gender\";\r\n this.qs_master_clientGender.options = [\r\n { key: \"Male\", value: \"1\" },\r\n { key: \"Female\", value: \"2\" },\r\n ];\r\n this.qs_master_clientGender.required = true;\r\n this.qs_master_clientGender.tabId = this.tabId;\r\n this.qs_master_clientGender.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientMaritalStatus = new QuestionEntity(\r\n \"qs_master_clientMaritalStatus\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientMaritalStatus.displayText = \"Marital Status\";\r\n this.qs_master_clientMaritalStatus.options = [\r\n { key: \"Single\", value: \"1\" },\r\n { key: \"Married\", value: \"2\" },\r\n { key: \"Widowed\", value: \"3\" },\r\n { key: \"Divorced\", value: \"4\" },\r\n { key: \"Separated\", value: \"5\" },\r\n ];\r\n this.qs_master_clientMaritalStatus.required = true;\r\n this.qs_master_clientMaritalStatus.tabId = this.tabId;\r\n this.qs_master_clientMaritalStatus.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredAddress_building = new QuestionEntity(\r\n \"qs_master_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_master_insuredAddress_building.required = false;\r\n this.qs_master_insuredAddress_building.tabId = this.tabId;\r\n this.qs_master_insuredAddress_building.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_master_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_master_insuredAddress_lotunit.required = false;\r\n this.qs_master_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_master_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress1 = new QuestionEntity(\r\n \"qs_master_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_master_insuredAddress1.readOnly = true;\r\n this.qs_master_insuredAddress1.required = true;\r\n this.qs_master_insuredAddress1.tabId = this.tabId;\r\n this.qs_master_insuredAddress1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress2 = new QuestionEntity(\r\n \"qs_master_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_master_insuredAddress2.readOnly = true;\r\n this.qs_master_insuredAddress2.required = false;\r\n this.qs_master_insuredAddress2.tabId = this.tabId;\r\n this.qs_master_insuredAddress2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredPostalCode = new QuestionEntity(\r\n \"qs_master_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_master_insuredPostalCode.readOnly = true;\r\n this.qs_master_insuredPostalCode.required = false;\r\n this.qs_master_insuredPostalCode.tabId = this.tabId;\r\n this.qs_master_insuredPostalCode.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCity = new QuestionEntity(\r\n \"qs_master_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_master_insuredCity.readOnly = true;\r\n this.qs_master_insuredCity.required = false;\r\n this.qs_master_insuredCity.tabId = this.tabId;\r\n this.qs_master_insuredCity.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredState = new QuestionEntity(\r\n \"qs_master_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredState.displayText = \"State\";\r\n this.qs_master_insuredState.readOnly = true;\r\n this.qs_master_insuredState.required = false;\r\n this.qs_master_insuredState.tabId = this.tabId;\r\n this.qs_master_insuredState.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCountry = new QuestionEntity(\r\n \"qs_master_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCountry.displayText = \"Country\";\r\n this.qs_master_insuredCountry.readOnly = true;\r\n this.qs_master_insuredCountry.answer = \"HK\";\r\n this.qs_master_insuredCountry.required = true;\r\n this.qs_master_insuredCountry.tabId = this.tabId;\r\n this.qs_master_insuredCountry.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_brokerEmail = new QuestionEntity(\r\n \"qs_pd_brokerEmail\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerEmail.displayText = \"Email Address\";\r\n this.qs_master_brokerEmail.required = true;\r\n this.qs_master_brokerEmail.tabId = this.tabId;\r\n this.qs_master_brokerEmail.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerPhoneNo = new QuestionEntity(\r\n \"qs_master_brokerPhoneNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerPhoneNo.displayText = \"Phone Number (Home)\";\r\n this.qs_master_brokerPhoneNo.required = false;\r\n this.qs_master_brokerPhoneNo.tabId = this.tabId;\r\n this.qs_master_brokerPhoneNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerMobileNo = new QuestionEntity(\r\n \"qs_master_brokerMobileNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerMobileNo.displayText = \"Mobile Number\";\r\n this.qs_master_brokerMobileNo.required = false;\r\n this.qs_master_brokerMobileNo.tabId = this.tabId;\r\n this.qs_master_brokerMobileNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerOfficeNo = new QuestionEntity(\r\n \"qs_master_brokerOfficeNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerOfficeNo.displayText = \"Phone Number (Office)\";\r\n this.qs_master_brokerOfficeNo.required = true;\r\n this.qs_master_brokerOfficeNo.tabId = this.tabId;\r\n this.qs_master_brokerOfficeNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerFaxNo = new QuestionEntity(\r\n \"qs_master_brokerFaxNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerFaxNo.displayText = \"Fax Number\";\r\n this.qs_master_brokerFaxNo.required = false;\r\n this.qs_master_brokerFaxNo.tabId = this.tabId;\r\n this.qs_master_brokerFaxNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerEmail = new QuestionEntity(\r\n \"qs_master_brokerEmail\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerEmail.displayText = \"Pager Number\";\r\n this.qs_master_brokerEmail.required = false;\r\n this.qs_master_brokerEmail.tabId = this.tabId;\r\n this.qs_master_brokerEmail.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_clientSalutation);\r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { Application } from \"../../../../../../../application\";\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireHKSectionSchema } from \"./../schemas/mf-hk-section-schema\";\r\nimport { MortgageFireHKTabSchema } from \"./../schemas/mf-hk-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"../../../../../../../services/master-data.service\";\r\n\r\nexport class MortgageFireHongKongMasterQuestionSection extends QuestionSection {\r\n qs_master_brokerFirstName!: QuestionEntity | undefined;\r\n\r\n //Implementation Preferred Delivery Method\r\n qs_master_preferredDeliveryMethod!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_Email!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_MobileNo!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_CorrAddress!: QuestionEntity | undefined;\r\n\r\n qs_master_brokerLastName!: QuestionEntity | undefined;\r\n qs_master_brokerOrganizationName!: QuestionEntity | undefined;\r\n qs_master_borrowerCIN!: QuestionEntity | undefined;\r\n\r\n qs_master_buPcCode!: QuestionEntity | undefined;\r\n qs_master_uploadBuPcCode!: QuestionEntity | undefined;\r\n qs_master_rmName!: QuestionEntity | undefined;\r\n qs_master_rmContactNo!: QuestionEntity | undefined;\r\n qs_master_rmRemarks!: QuestionEntity | undefined;\r\n qs_master_insuredAddress!: QuestionEntity | undefined;\r\n\r\n qs_master_busReg2ndInsured!: QuestionEntity | undefined;\r\n qs_master_otherInsuredName!: QuestionEntity | undefined;\r\n qs_master_additionalInsured!: QuestionEntity | undefined;\r\n qs_master_insuredNo2!: QuestionEntity | undefined;\r\n qs_master_namesOtherInsured!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredAddress_building!: QuestionEntity | undefined;\r\n qs_master_insuredAddress_lotunit!: QuestionEntity | undefined;\r\n qs_master_insuredAddress1!: QuestionEntity | undefined;\r\n qs_master_insuredAddress2!: QuestionEntity | undefined;\r\n //Address3/4 needed when Endorse Client-Info, ~\\dbs-ep2-api\\Baseline\\Chubb.Library.Proposal\\Base\\ProposalExtend.cs\r\n qs_master_insuredAddress3!: QuestionEntity | undefined;\r\n qs_master_insuredAddress4!: QuestionEntity | undefined;\r\n qs_master_insuredPostalCode!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredCity!: QuestionEntity | undefined;\r\n qs_master_insuredState!: QuestionEntity | undefined;\r\n qs_master_insuredCountry!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredNo!: QuestionEntity | undefined;\r\n qs_master_insuredName!: QuestionEntity | undefined;\r\n qs_master_replacePolicyNo!: QuestionEntity | undefined;\r\n qs_master_masterPolicyNumber!: QuestionEntity | undefined;\r\n qs_master_planType!: QuestionEntity | undefined;\r\n qs_master_insuredNoNationality!: QuestionEntity | undefined;\r\n qs_master_insuredNo2Nationality!: QuestionEntity | undefined;\r\n qs_master_insuredNo2DocType!: QuestionEntity | undefined;\r\n\r\n qs_master_poi_startDate!: QuestionEntity | undefined;\r\n qs_master_poi_endDate!: QuestionEntity | undefined;\r\n\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n qs_master_FreeIns_startDate!: QuestionEntity | undefined;\r\n qs_master_FreeIns_endDate!: QuestionEntity | undefined;\r\n\r\n qs_master_mobileNumber!: QuestionEntity | undefined;\r\n qs_master_emailID!: QuestionEntity | undefined;\r\n\r\n ////DBSEP-252 : Client Info Update\r\n qs_master_salutation!: QuestionEntity | undefined;\r\n qs_master_clientName!: QuestionEntity | undefined;\r\n qs_master_passport!: QuestionEntity | undefined;\r\n qs_master_nric!: QuestionEntity | undefined;\r\n qs_master_occupation!: QuestionEntity | undefined;\r\n qs_master_birthDate!: QuestionEntity | undefined;\r\n qs_master_race!: QuestionEntity | undefined;\r\n qs_master_nationality!: QuestionEntity | undefined;\r\n qs_master_gender!: QuestionEntity | undefined;\r\n qs_master_maritalStatus!: QuestionEntity | undefined;\r\n qs_master_phoneNoHome!: QuestionEntity | undefined;\r\n qs_master_phoneNoOffice!: QuestionEntity | undefined;\r\n qs_master_faxNumber!: QuestionEntity | undefined;\r\n qs_master_cin!: QuestionEntity | undefined;\r\n qs_master_insuredNoDocType!: QuestionEntity | undefined;\r\n qs_master_clausesflag!: QuestionEntity | undefined;\r\n\r\n qs_master_financialBranch!: QuestionEntity | undefined;\r\n qs_master_bankReferNumber!: QuestionEntity | undefined;\r\n qs_master_assetClassCode!: QuestionEntity | undefined;\r\n qs_master_assetSerialNumber!: QuestionEntity | undefined;\r\n qs_master_effectiveDate!: QuestionEntity | undefined;\r\n qs_master_endorse_endorsementReason!: QuestionEntity | undefined;\r\n qs_master_cancellation_adjustmentAmount!: QuestionEntity | undefined;\r\n qs_master_cancellation_maximumAdjustmentAmount!: QuestionEntity | undefined;\r\n qs_master_refund!: QuestionEntity | undefined;\r\n qs_master_waiveMinimumPremium!: QuestionEntity | undefined;\r\n qs_master_cancellation_masterpiece!: QuestionEntity | undefined;\r\n qs_master_insuredIndustry!: QuestionEntity | undefined;\r\n qs_master_occupancyRate!: QuestionEntity | undefined;\r\n qs_master_miRate!: QuestionEntity | undefined;\r\n qs_master_insuredIndustry_desc!: QuestionEntity | undefined;\r\n qs_master_manualUnderwritting!: QuestionEntity | undefined;\r\n qs_location_occupation!: QuestionEntity | undefined;\r\n qs_location_riskAddress1!: QuestionEntity | undefined;\r\n qs_location_riskAddress2!: QuestionEntity | undefined;\r\n //questions: QuestionEntity[] = [];//no need anymore, since inherited from base\r\n\r\n qs_risk_floating!: QuestionEntity | undefined;\r\n qs_risk_sameAsAddress!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress_building!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress_lotunit!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress1!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress2!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress3!: QuestionEntity | undefined;\r\n qs_risk_insuredDistCode!: QuestionEntity | undefined;\r\n qs_risk_insuredPostalCode!: QuestionEntity | undefined;\r\n qs_risk_insuredCity!: QuestionEntity | undefined;\r\n qs_risk_insuredState!: QuestionEntity | undefined;\r\n qs_risk_insuredCountry!: QuestionEntity | undefined;\r\n qs_risk_uploadRiskAddress!: QuestionEntity | undefined;\r\n\r\n // \"Other Information\" Section\r\n qs_otherinfo_MortgLoanAcctNum1!: QuestionEntity | undefined;\r\n qs_otherinfo_MortgLoanAcctNum2!: QuestionEntity | undefined;\r\n qs_otherinfo_MortgLoanAcctNum3!: QuestionEntity | undefined;\r\n qs_otherinfo_InsuranceCompany!: QuestionEntity | undefined;\r\n qs_otherinfo_VersionDate!: QuestionEntity | undefined;\r\n qs_otherinfo_MortgLoanRecEntryDate!: QuestionEntity | undefined;\r\n qs_otherinfo_RepayAcctType!: QuestionEntity | undefined;\r\n qs_otherinfo_RepayAcct!: QuestionEntity | undefined;\r\n qs_otherinfo_RepayAcctName!: QuestionEntity | undefined;\r\n qs_otherinfo_AutoIssue!: QuestionEntity | undefined;\r\n qs_otherinfo_PreGeneratePolicyNo!: QuestionEntity | undefined;\r\n qs_otherinfo_InsuranceOption!: QuestionEntity | undefined;\r\n qs_otherinfo_CurrentLoanValue!: QuestionEntity | undefined;\r\n qs_otherinfo_ProptyReinstaCost!: QuestionEntity | undefined;\r\n qs_otherinfo_ProptyReinstaCostDate!: QuestionEntity | undefined;\r\n\r\n // qs_fire_situation! : QuestionEntity | undefined;\r\n qs_fire_occupied!: QuestionEntity | undefined;\r\n qs_fire_notes!: QuestionEntity | undefined;\r\n qs_fire_excess!: QuestionEntity | undefined;\r\n qs_fire_mcst!: QuestionEntity | undefined;\r\n qs_fire_replacement!: QuestionEntity | undefined;\r\n qs_fire_generalPage!: QuestionEntity | undefined;\r\n qs_fire_businessDesc!: QuestionEntity | undefined;\r\n qs_fire_interestedParties!: QuestionEntity | undefined;\r\n qs_fire_discussionNotes!: QuestionEntity | undefined;\r\n\r\n qs_fire_natureBusiness!: QuestionEntity | undefined;\r\n qs_fire_usagePremises!: QuestionEntity | undefined;\r\n qs_fire_typeProperty!: QuestionEntity | undefined;\r\n qs_fire_freeInsuranceFirstYear!: QuestionEntity | undefined;\r\n qs_fire_nameSolicitors!: QuestionEntity | undefined;\r\n qs_fire_equipment_description!: QuestionEntity | undefined;\r\n qs_fire_equipment_type!: QuestionEntity | undefined;\r\n qs_fire_equipment_financing!: QuestionEntity | undefined;\r\n qs_fire_sumOfInsured!: QuestionEntity | undefined;\r\n qs_master_busReg1stInsured!: QuestionEntity | undefined;\r\n qs_fire_building!: QuestionEntity | undefined;\r\n qs_fire_householdContents!: QuestionEntity | undefined;\r\n qs_machinery_equipment!: QuestionEntity | undefined;\r\n qs_master_lst!: QuestionEntity | undefined;\r\n qs_master_lstDetails!: QuestionEntity | undefined;\r\n\r\n // IBG\r\n qs_master_dateOfBirthOrIncorporation!: QuestionEntity | undefined;\r\n qs_master_clientContactPerson!: QuestionEntity | undefined;\r\n qs_master_clientContactPersonContactNo!: QuestionEntity | undefined;\r\n qs_machinery_uploadSumInsured!: QuestionEntity | undefined;\r\n qs_machinery_uploadTypeOfEquipment!: QuestionEntity | undefined;\r\n qs_machinery_uploadEquipmentDescription!: QuestionEntity | undefined;\r\n qs_machinery_uploadTypeOfFinancing!: QuestionEntity | undefined;\r\n qs_fire_freeInsuranceNoYear!: QuestionEntity | undefined;\r\n qs_master_uploadAdditionalInsured!: QuestionEntity | undefined;\r\n\r\n //Citibank\r\n qs_master_premiumPayment!: QuestionEntity | undefined;\r\n qs_master_customerType!: QuestionEntity | undefined;\r\n qs_master_collateralNumber: QuestionEntity | undefined;\r\n qs_master_discountCode!: QuestionEntity | undefined;\r\n qs_master_discountType!: QuestionEntity | undefined;\r\n qs_fire_outstandingLoanValue!: QuestionEntity | undefined;\r\n qs_fire_coverageValueType!: QuestionEntity | undefined;\r\n qs_master_customDiscountCode!: QuestionEntity | undefined;\r\n qs_risk_occupancy!: QuestionEntity | undefined;\r\n qs_risk_construction!: QuestionEntity | undefined;\r\n\r\n //#region HASE\r\n qs_master_rmBranchCode!: QuestionEntity | undefined;\r\n qs_master_rmMortgageeCode!: QuestionEntity | undefined;\r\n qs_master_rmSalesChannel!: QuestionEntity | undefined;\r\n qs_master_rmStaffReference!: QuestionEntity | undefined;\r\n qs_master_rmSalesStaffCode!: QuestionEntity | undefined;\r\n //#endregion\r\n\r\n qs_risk_carParkAddress1!: QuestionEntity | undefined;\r\n qs_risk_carParkAddress2!: QuestionEntity | undefined;\r\n qs_risk_carParkAddress3!: QuestionEntity | undefined;\r\n qs_risk_carParkAddress4!: QuestionEntity | undefined;\r\n qs_risk_carParkCountry!: QuestionEntity | undefined;\r\n\r\n qs_fire_grossFloorArea!: QuestionEntity | undefined;\r\n qs_fire_loanAmount!: QuestionEntity | undefined;\r\n qs_fire_currency!: QuestionEntity | undefined;\r\n qs_fire_freeInsurance!: QuestionEntity | undefined;\r\n\r\n nationalityList!: any[];\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireHKTabSchema.master.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_brokerFirstName = new QuestionEntity(\r\n \"qs_master_brokerFirstName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerFirstName.displayText = \"First Name\";\r\n this.qs_master_brokerFirstName.maxLength = 100;\r\n this.qs_master_brokerFirstName.required = false;\r\n this.qs_master_brokerFirstName.tabId = this.tabId;\r\n this.qs_master_brokerFirstName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerLastName = new QuestionEntity(\r\n \"qs_master_brokerLastName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerLastName.displayText = \"Last Name\";\r\n this.qs_master_brokerLastName.maxLength = 100;\r\n this.qs_master_brokerLastName.required = true;\r\n this.qs_master_brokerLastName.tabId = this.tabId;\r\n this.qs_master_brokerLastName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerOrganizationName = new QuestionEntity(\r\n \"qs_master_brokerOrganizationName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerOrganizationName.displayText = \"Insured Name\";\r\n this.qs_master_brokerOrganizationName.maxLength = 100;\r\n this.qs_master_brokerOrganizationName.required = true;\r\n this.qs_master_brokerOrganizationName.tabId = this.tabId;\r\n this.qs_master_brokerOrganizationName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n // New IBG broker requirement\r\n this.qs_master_insuredAddress = new QuestionEntity(\r\n \"qs_master_insuredAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress.displayText =\r\n \"Uploaded correspondence address\";\r\n this.qs_master_insuredAddress.readOnly = true;\r\n this.qs_master_insuredAddress.required = false;\r\n this.qs_master_insuredAddress.tabId = this.tabId;\r\n this.qs_master_insuredAddress.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredAddress_building = new QuestionEntity(\r\n \"qs_master_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_master_insuredAddress_building.required = false;\r\n this.qs_master_insuredAddress_building.tabId = this.tabId;\r\n this.qs_master_insuredAddress_building.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_master_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_master_insuredAddress_lotunit.required = false;\r\n this.qs_master_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_master_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress1 = new QuestionEntity(\r\n \"qs_master_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_master_insuredAddress1.readOnly = true;\r\n this.qs_master_insuredAddress1.required = false;\r\n this.qs_master_insuredAddress1.tabId = this.tabId;\r\n this.qs_master_insuredAddress1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress2 = new QuestionEntity(\r\n \"qs_master_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_master_insuredAddress2.readOnly = true;\r\n this.qs_master_insuredAddress2.required = false;\r\n this.qs_master_insuredAddress2.tabId = this.tabId;\r\n this.qs_master_insuredAddress2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress3 = new QuestionEntity(\r\n \"qs_master_insuredAddress3\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress3.displayText = \"Address No 3\";\r\n this.qs_master_insuredAddress3.readOnly = true;\r\n this.qs_master_insuredAddress3.required = false;\r\n this.qs_master_insuredAddress3.tabId = this.tabId;\r\n this.qs_master_insuredAddress3.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress4 = new QuestionEntity(\r\n \"qs_master_insuredAddress4\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress4.displayText = \"Address No 4\";\r\n this.qs_master_insuredAddress4.readOnly = true;\r\n this.qs_master_insuredAddress4.required = false;\r\n this.qs_master_insuredAddress4.tabId = this.tabId;\r\n this.qs_master_insuredAddress4.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredPostalCode = new QuestionEntity(\r\n \"qs_master_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_master_insuredPostalCode.readOnly = true;\r\n this.qs_master_insuredPostalCode.required = false;\r\n this.qs_master_insuredPostalCode.tabId = this.tabId;\r\n this.qs_master_insuredPostalCode.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCity = new QuestionEntity(\r\n \"qs_master_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_master_insuredCity.readOnly = true;\r\n this.qs_master_insuredCity.required = false;\r\n this.qs_master_insuredCity.tabId = this.tabId;\r\n this.qs_master_insuredCity.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredState = new QuestionEntity(\r\n \"qs_master_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredState.displayText = \"State\";\r\n this.qs_master_insuredState.readOnly = true;\r\n this.qs_master_insuredState.required = false;\r\n this.qs_master_insuredState.tabId = this.tabId;\r\n this.qs_master_insuredState.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCountry = new QuestionEntity(\r\n \"qs_master_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCountry.displayText = \"Country\";\r\n this.qs_master_insuredCountry.readOnly = true;\r\n this.qs_master_insuredCountry.answer = \"Hong Kong\";\r\n this.qs_master_insuredCountry.required = true;\r\n\r\n this.qs_master_insuredCountry.tabId = this.tabId;\r\n this.qs_master_insuredCountry.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_carParkAddress1 = new QuestionEntity(\r\n \"qs_risk_carParkAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_carParkAddress1.displayText = \"Address Line 1\";\r\n this.qs_risk_carParkAddress1.required = false;\r\n this.qs_risk_carParkAddress1.tabId = this.tabId;\r\n this.qs_risk_carParkAddress1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_carParkAddress2 = new QuestionEntity(\r\n \"qs_risk_carParkAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_carParkAddress2.displayText = \"Address Line 2\";\r\n this.qs_risk_carParkAddress2.required = false;\r\n this.qs_risk_carParkAddress2.tabId = this.tabId;\r\n this.qs_risk_carParkAddress2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_carParkAddress3 = new QuestionEntity(\r\n \"qs_risk_carParkAddress3\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_carParkAddress3.displayText = \"Address Line 3\";\r\n this.qs_risk_carParkAddress3.required = false;\r\n this.qs_risk_carParkAddress3.tabId = this.tabId;\r\n this.qs_risk_carParkAddress3.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n this.qs_risk_carParkAddress4 = new QuestionEntity(\r\n \"qs_risk_carParkAddress4\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_carParkAddress4.displayText = \"Address Line 4\";\r\n this.qs_risk_carParkAddress4.required = false;\r\n this.qs_risk_carParkAddress4.tabId = this.tabId;\r\n this.qs_risk_carParkAddress4.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n this.qs_risk_carParkCountry = new QuestionEntity(\r\n \"qs_risk_carParkCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_carParkCountry.displayText = \"Country\";\r\n this.qs_risk_carParkCountry.required = true;\r\n this.qs_risk_carParkCountry.readOnly = true;\r\n this.qs_risk_carParkCountry.answer = \"HK\"; //default to HK, use ISO code\r\n this.qs_risk_carParkCountry.tabId = this.tabId;\r\n this.qs_risk_carParkCountry.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_grossFloorArea = new QuestionEntity(\r\n \"qs_fire_grossFloorArea\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_grossFloorArea.displayText = \"Gross Floor Area\";\r\n this.qs_fire_grossFloorArea.required = false;\r\n this.qs_fire_grossFloorArea.tabId = this.tabId;\r\n this.qs_fire_grossFloorArea.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_loanAmount = new QuestionEntity(\r\n \"qs_fire_loanAmount\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_loanAmount.displayText = \"Loan Amount\";\r\n this.qs_fire_loanAmount.required = false;\r\n this.qs_fire_loanAmount.tabId = this.tabId;\r\n this.qs_fire_loanAmount.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_currency = new QuestionEntity(\r\n \"qs_fire_currency\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_currency.displayText = \"Currency\";\r\n this.qs_fire_currency.required = false;\r\n this.qs_fire_currency.tabId = this.tabId;\r\n this.qs_fire_currency.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_freeInsurance = new QuestionEntity(\r\n \"qs_fire_freeInsurance\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_freeInsurance.displayText = \"Free Insurance\";\r\n this.qs_fire_freeInsurance.required = false;\r\n this.qs_fire_freeInsurance.tabId = this.tabId;\r\n this.qs_fire_freeInsurance.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_buPcCode = new QuestionEntity(\r\n \"qs_master_buPcCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_buPcCode.displayText = \"BU PC Code\";\r\n this.qs_master_buPcCode.required = true;\r\n this.qs_master_buPcCode.tabId = this.tabId;\r\n this.qs_master_buPcCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_uploadBuPcCode = new QuestionEntity(\r\n \"qs_master_uploadBuPcCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_uploadBuPcCode.displayText = \"Uploaded BU PC Code\";\r\n this.qs_master_uploadBuPcCode.required = false;\r\n this.qs_master_uploadBuPcCode.readOnly = true;\r\n this.qs_master_uploadBuPcCode.tabId = this.tabId;\r\n this.qs_master_uploadBuPcCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmName = new QuestionEntity(\r\n \"qs_master_rmName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmName.displayText = \"Name\";\r\n this.qs_master_rmName.maxLength = 100;\r\n this.qs_master_rmName.required = false;\r\n this.qs_master_rmName.tabId = this.tabId;\r\n this.qs_master_rmName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmContactNo = new QuestionEntity(\r\n \"qs_master_rmContactNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmContactNo.displayText = \"Contact No\";\r\n this.qs_master_rmContactNo.required = false;\r\n this.qs_master_rmContactNo.tabId = this.tabId;\r\n this.qs_master_rmContactNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmRemarks = new QuestionEntity(\r\n \"qs_master_rmRemarks\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmRemarks.displayText = \"Remarks\";\r\n this.qs_master_rmRemarks.required = false;\r\n this.qs_master_rmRemarks.tabId = this.tabId;\r\n this.qs_master_rmRemarks.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n // End new IBG\r\n\r\n // New IBG Client Information\r\n this.qs_master_busReg1stInsured = new QuestionEntity(\r\n \"qs_master_busReg1stInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_busReg1stInsured.displayText =\r\n \"Business Registration No / NRIC No (1st Insured)\";\r\n this.qs_master_busReg1stInsured.required = false;\r\n this.qs_master_busReg1stInsured.tabId = this.tabId;\r\n this.qs_master_busReg1stInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_busReg2ndInsured = new QuestionEntity(\r\n \"qs_master_busReg2ndInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_busReg2ndInsured.displayText =\r\n \"Business Registration No / NRIC No (2nd Insured)\";\r\n this.qs_master_busReg2ndInsured.required = false;\r\n this.qs_master_busReg2ndInsured.tabId = this.tabId;\r\n this.qs_master_busReg2ndInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_otherInsuredName = new QuestionEntity(\r\n \"qs_master_otherInsuredName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_otherInsuredName.displayText = \"Other Insured Name\";\r\n this.qs_master_otherInsuredName.required = false;\r\n this.qs_master_otherInsuredName.tabId = this.tabId;\r\n this.qs_master_otherInsuredName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_additionalInsured = new QuestionEntity(\r\n \"qs_master_additionalInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_additionalInsured.displayText =\r\n \"Names other than Insured(if any)\";\r\n this.qs_master_additionalInsured.required = false;\r\n this.qs_master_additionalInsured.tabId = this.tabId;\r\n this.qs_master_additionalInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n // End IBG Client Information\r\n\r\n this.qs_master_insuredNo = new QuestionEntity(\r\n \"qs_master_insuredNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo.displayText = \"Client No\";\r\n this.qs_master_insuredNo.required = true;\r\n this.qs_master_insuredNo.readOnly = true;\r\n this.qs_master_insuredNo.tabId = this.tabId;\r\n this.qs_master_insuredNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNoNationality = new QuestionEntity(\r\n \"qs_master_insuredNoNationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNoNationality.displayText = \"Nationality\";\r\n this.qs_master_insuredNoNationality.required = false;\r\n this.qs_master_insuredNoNationality.readOnly = false;\r\n this.qs_master_insuredNoNationality.tabId = this.tabId;\r\n this.qs_master_insuredNoNationality.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNoDocType = new QuestionEntity(\r\n \"qs_master_insuredNoDocType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNoDocType.displayText = \"Document Type\";\r\n this.qs_master_insuredNoDocType.required = false;\r\n this.qs_master_insuredNoDocType.readOnly = false;\r\n this.qs_master_insuredNoDocType.tabId = this.tabId;\r\n this.qs_master_insuredNoDocType.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clausesflag = new QuestionEntity(\r\n \"qs_master_clausesflag\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clausesflag.displayText = \"Clauses Flag\";\r\n this.qs_master_clausesflag.required = false;\r\n this.qs_master_clausesflag.readOnly = false;\r\n this.qs_master_clausesflag.tabId = this.tabId;\r\n this.qs_master_clausesflag.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredName = new QuestionEntity(\r\n \"qs_master_insuredName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredName.displayText = \"Client Name\";\r\n this.qs_master_insuredName.readOnly = true;\r\n this.qs_master_insuredName.required = true;\r\n this.qs_master_insuredName.tabId = this.tabId;\r\n this.qs_master_insuredName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_replacePolicyNo = new QuestionEntity(\r\n \"qs_master_replacePolicyNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_replacePolicyNo.displayText = \"Replacing Policy No\";\r\n this.qs_master_replacePolicyNo.required = false;\r\n this.qs_master_replacePolicyNo.tabId = this.tabId;\r\n this.qs_master_replacePolicyNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_masterPolicyNumber = new QuestionEntity(\r\n \"qs_master_masterPolicyNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_masterPolicyNumber.displayText = \"Master Policy Number\";\r\n this.qs_master_masterPolicyNumber.required = false;\r\n this.qs_master_masterPolicyNumber.tabId = this.tabId;\r\n this.qs_master_masterPolicyNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_planType = new QuestionEntity(\r\n \"qs_master_planType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_planType.displayText = \"No Of Years\";\r\n this.qs_master_planType.required = false;\r\n this.qs_master_planType.tabId = this.tabId;\r\n this.qs_master_planType.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_financialBranch = new QuestionEntity(\r\n \"qs_master_financialBranch\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_financialBranch.displayText = \"Financial Institution Branch\";\r\n this.qs_master_financialBranch.required = true;\r\n this.qs_master_financialBranch.tabId = this.tabId;\r\n this.qs_master_financialBranch.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_bankReferNumber = new QuestionEntity(\r\n \"qs_master_bankReferNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_bankReferNumber.displayText = \"Bank/Cross Reference Number\";\r\n this.qs_master_bankReferNumber.required = true;\r\n this.qs_master_bankReferNumber.tabId = this.tabId;\r\n this.qs_master_bankReferNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_assetClassCode = new QuestionEntity(\r\n \"qs_master_assetClassCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_assetClassCode.displayText = \"Asset Class Code\";\r\n this.qs_master_assetClassCode.required = false;\r\n this.qs_master_assetClassCode.tabId = this.tabId;\r\n this.qs_master_assetClassCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_assetSerialNumber = new QuestionEntity(\r\n \"qs_master_assetSerialNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_assetSerialNumber.displayText = \"Asset Serial Number\";\r\n this.qs_master_assetSerialNumber.required = false;\r\n this.qs_master_assetSerialNumber.tabId = this.tabId;\r\n this.qs_master_assetSerialNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_poi_startDate = new QuestionEntity(\r\n \"qs_master_poi_startDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_poi_startDate.displayText = \"Policy Inception Date\";\r\n this.qs_master_poi_startDate.answer = new Date();\r\n // Set the minimum date to be selected to 30 days before the current Date\r\n // this.qs_master_poi_startDate.minValue =\r\n // new Date(new Date(this.qs_master_poi_startDate.answer).setDate(new Date(this.qs_master_poi_startDate.answer).getDate() - 30));\r\n this.qs_master_poi_startDate.required = true;\r\n this.qs_master_poi_startDate.tabId = this.tabId;\r\n this.qs_master_poi_startDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_effectiveDate = new QuestionEntity(\r\n \"qs_master_effectiveDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_effectiveDate.displayText = \"Effective Date\";\r\n this.qs_master_effectiveDate.answer = new Date();\r\n this.qs_master_effectiveDate.tabId = this.tabId;\r\n this.qs_master_effectiveDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_poi_endDate = new QuestionEntity(\r\n \"qs_master_poi_endDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_poi_endDate.displayText = \"Policy Expiry Date\";\r\n this.qs_master_poi_endDate.answer = new Date();\r\n this.qs_master_poi_endDate.tabId = this.tabId;\r\n this.qs_master_poi_endDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.qs_master_FreeIns_startDate = new QuestionEntity(\r\n \"qs_master_FreeIns_startDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_FreeIns_startDate.displayText = \"Free Insurance Start Date\";\r\n this.qs_master_FreeIns_startDate.answer = new Date();\r\n this.qs_master_FreeIns_startDate.readOnly = true;\r\n this.qs_master_FreeIns_startDate.required = false;\r\n this.qs_master_FreeIns_startDate.tabId = this.tabId;\r\n this.qs_master_FreeIns_startDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_FreeIns_endDate = new QuestionEntity(\r\n \"qs_master_FreeIns_endDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_FreeIns_endDate.displayText = \"Free Insurance End Date\";\r\n this.qs_master_FreeIns_endDate.answer = new Date();\r\n this.qs_master_FreeIns_endDate.required = false;\r\n this.qs_master_FreeIns_endDate.readOnly = true;\r\n this.qs_master_FreeIns_endDate.tabId = this.tabId;\r\n this.qs_master_FreeIns_endDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n //Implemetaion Preferred Delivery method\r\n this.qs_master_preferredDeliveryMethod = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod.displayText =\r\n \"Preferred Delivery Method\";\r\n this.qs_master_preferredDeliveryMethod.required = true;\r\n this.qs_master_preferredDeliveryMethod.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod.readOnly = false;\r\n this.qs_master_preferredDeliveryMethod.answer = 5;\r\n this.qs_master_preferredDeliveryMethod.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_Email = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_Email\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_Email.displayText = \"Email\";\r\n this.qs_master_preferredDeliveryMethod_Email.required = false;\r\n this.qs_master_preferredDeliveryMethod_Email.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_Email.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_MobileNo = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_MobileNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_MobileNo.displayText =\r\n \"Mobile Number\";\r\n this.qs_master_preferredDeliveryMethod_MobileNo.required = false;\r\n this.qs_master_preferredDeliveryMethod_MobileNo.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_MobileNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_CorrAddress = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_CorrAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.displayText =\r\n \"Corresponding Address\";\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.required = false;\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n // End Of delivery Method Block\r\n\r\n /// 12/10/2018 : Chirag Added Code For Mobile/Email Address\r\n this.qs_master_mobileNumber = new QuestionEntity(\r\n \"qs_master_mobileNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_mobileNumber.displayText = \"Mobile Number\";\r\n this.qs_master_mobileNumber.required = false;\r\n this.qs_master_mobileNumber.tabId = this.tabId;\r\n this.qs_master_mobileNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_emailID = new QuestionEntity(\r\n \"qs_master_emailID\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_emailID.displayText = \"Email\";\r\n this.qs_master_emailID.required = false;\r\n this.qs_master_emailID.tabId = this.tabId;\r\n this.qs_master_emailID.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n ////DBSEP-252 : Client Info Update\r\n this.qs_master_salutation = new QuestionEntity(\r\n \"qs_master_salutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_salutation.displayText = \"Salutation\";\r\n this.qs_master_salutation.required = false;\r\n this.qs_master_salutation.tabId = this.tabId;\r\n this.qs_master_salutation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientName = new QuestionEntity(\r\n \"qs_master_clientName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientName.displayText = \"ClientName\";\r\n this.qs_master_clientName.required = false;\r\n this.qs_master_clientName.tabId = this.tabId;\r\n this.qs_master_clientName.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_passport = new QuestionEntity(\r\n \"qs_master_passport\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_passport.displayText = \"Passport\";\r\n this.qs_master_passport.required = false;\r\n this.qs_master_passport.tabId = this.tabId;\r\n this.qs_master_passport.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_nric = new QuestionEntity(\r\n \"qs_master_nric\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_nric.displayText = \"NRIC\";\r\n this.qs_master_nric.required = false;\r\n this.qs_master_nric.tabId = this.tabId;\r\n this.qs_master_nric.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_occupation = new QuestionEntity(\r\n \"qs_master_occupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_occupation.displayText = \"Occupation\";\r\n this.qs_master_occupation.required = false;\r\n this.qs_master_occupation.tabId = this.tabId;\r\n this.qs_master_occupation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_birthDate = new QuestionEntity(\r\n \"qs_master_birthDate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_birthDate.displayText = \"Birth Date\";\r\n this.qs_master_birthDate.required = false;\r\n this.qs_master_birthDate.tabId = this.tabId;\r\n this.qs_master_birthDate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_race = new QuestionEntity(\r\n \"qs_master_race\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_race.displayText = \"Race\";\r\n this.qs_master_race.required = false;\r\n this.qs_master_race.tabId = this.tabId;\r\n this.qs_master_race.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_nationality = new QuestionEntity(\r\n \"qs_master_nationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_nationality.displayText = \"Nationality\";\r\n this.qs_master_nationality.required = false;\r\n this.qs_master_nationality.tabId = this.tabId;\r\n this.qs_master_nationality.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_gender = new QuestionEntity(\r\n \"qs_master_gender\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_gender.displayText = \"Gender\";\r\n this.qs_master_gender.required = false;\r\n this.qs_master_gender.tabId = this.tabId;\r\n this.qs_master_gender.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_maritalStatus = new QuestionEntity(\r\n \"qs_master_maritalStatus\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_maritalStatus.displayText = \"Marital Status\";\r\n this.qs_master_maritalStatus.required = false;\r\n this.qs_master_maritalStatus.tabId = this.tabId;\r\n this.qs_master_maritalStatus.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_phoneNoHome = new QuestionEntity(\r\n \"qs_master_phoneNoHome\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_phoneNoHome.displayText = \"PhoneNo Home\";\r\n this.qs_master_phoneNoHome.required = false;\r\n this.qs_master_phoneNoHome.tabId = this.tabId;\r\n this.qs_master_phoneNoHome.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_phoneNoOffice = new QuestionEntity(\r\n \"qs_master_phoneNoOffice\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_phoneNoOffice.displayText = \"Office No\";\r\n this.qs_master_phoneNoOffice.required = false;\r\n this.qs_master_phoneNoOffice.tabId = this.tabId;\r\n this.qs_master_phoneNoOffice.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_faxNumber = new QuestionEntity(\r\n \"qs_master_faxNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_faxNumber.displayText = \"Fax Number\";\r\n this.qs_master_faxNumber.required = false;\r\n this.qs_master_faxNumber.tabId = this.tabId;\r\n this.qs_master_faxNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cin = new QuestionEntity(\r\n \"qs_master_cin\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_cin.displayText = \"CIN\";\r\n this.qs_master_cin.required = false;\r\n this.qs_master_cin.tabId = this.tabId;\r\n this.qs_master_cin.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_endorse_endorsementReason = new QuestionEntity(\r\n \"qs_master_endorse_endorsementReason\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_endorse_endorsementReason.displayText = \"Remarks\";\r\n this.qs_master_endorse_endorsementReason.required = false;\r\n this.qs_master_endorse_endorsementReason.tabId = this.tabId;\r\n this.qs_master_endorse_endorsementReason.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_refund = new QuestionEntity(\r\n \"qs_master_refund\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_refund.displayText = \"Remarks\";\r\n this.qs_master_refund.required = false;\r\n this.qs_master_refund.tabId = this.tabId;\r\n this.qs_master_refund.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_waiveMinimumPremium = new QuestionEntity(\r\n \"qs_master_waiveMinimumPremium\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_waiveMinimumPremium.displayText = \"WaiveMinimumPremium\";\r\n this.qs_master_waiveMinimumPremium.defaultAnswer = \"False\";\r\n this.qs_master_waiveMinimumPremium.answer = \"False\";\r\n this.qs_master_waiveMinimumPremium.required = false;\r\n this.qs_master_waiveMinimumPremium.isVisible = false;\r\n this.qs_master_waiveMinimumPremium.tabId = this.tabId;\r\n this.qs_master_waiveMinimumPremium.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cancellation_masterpiece = new QuestionEntity(\r\n \"qs_master_cancellation_masterpiece\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_cancellation_masterpiece.displayText =\r\n \"Masterpiece Issuance\";\r\n this.qs_master_cancellation_masterpiece.defaultAnswer = \"False\";\r\n this.qs_master_cancellation_masterpiece.answer = \"False\";\r\n this.qs_master_cancellation_masterpiece.required = false;\r\n this.qs_master_cancellation_masterpiece.isVisible = false;\r\n this.qs_master_cancellation_masterpiece.tabId = this.tabId;\r\n this.qs_master_cancellation_masterpiece.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cancellation_adjustmentAmount = new QuestionEntity(\r\n \"qs_master_cancellation_adjustmentAmount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_cancellation_adjustmentAmount.displayText =\r\n \"Adjustment Amount\";\r\n this.qs_master_cancellation_adjustmentAmount.isVisible = false;\r\n this.qs_master_cancellation_adjustmentAmount.required = false;\r\n this.qs_master_cancellation_adjustmentAmount.readOnly = true;\r\n this.qs_master_cancellation_adjustmentAmount.tabId = this.tabId;\r\n this.qs_master_cancellation_adjustmentAmount.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_cancellation_adjustmentAmount.answer = 0;\r\n this.qs_master_cancellation_adjustmentAmount.decimals = 2;\r\n\r\n this.qs_master_cancellation_maximumAdjustmentAmount = new QuestionEntity(\r\n \"qs_master_cancellation_maximumAdjustmentAmount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_cancellation_maximumAdjustmentAmount.displayText =\r\n \"Maximum Adjustment Amount\";\r\n this.qs_master_cancellation_maximumAdjustmentAmount.isVisible = false;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.readOnly = true;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.required = false;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.tabId = this.tabId;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredIndustry = new QuestionEntity(\r\n \"qs_master_insuredIndustry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredIndustry.displayText = \"NAICS\";\r\n this.qs_master_insuredIndustry.required = true;\r\n this.qs_master_insuredIndustry.tabId = this.tabId;\r\n this.qs_master_insuredIndustry.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_occupancyRate = new QuestionEntity(\r\n \"qs_master_occupancyRate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_occupancyRate.displayText = \"Occupancy Rates\";\r\n this.qs_master_occupancyRate.required = true;\r\n this.qs_master_occupancyRate.tabId = this.tabId;\r\n this.qs_master_occupancyRate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_miRate = new QuestionEntity(\r\n \"qs_master_miRate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_miRate.displayText = \"Mi Rates\";\r\n this.qs_master_miRate.required = true;\r\n this.qs_master_miRate.tabId = this.tabId;\r\n this.qs_master_miRate.readOnly = true;\r\n this.qs_master_miRate.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_miRate.options = [\r\n { key: \"MI\", value: \"1\" },\r\n { key: \"Non-MI\", value: \"2\" },\r\n ];\r\n\r\n this.qs_location_occupation = new QuestionEntity(\r\n \"qs_location_occupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_occupation.displayText = \"Location Occupation\";\r\n this.qs_location_occupation.required = true;\r\n this.qs_location_occupation.tabId = this.tabId;\r\n this.qs_location_occupation.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredIndustry_desc = new QuestionEntity(\r\n \"qs_master_insuredIndustry_desc\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredIndustry_desc.displayText = \"Occupation Description\";\r\n this.qs_master_insuredIndustry_desc.required = false;\r\n this.qs_master_insuredIndustry_desc.tabId = this.tabId;\r\n this.qs_master_insuredIndustry_desc.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_location_riskAddress1 = new QuestionEntity(\r\n \"qs_location_riskAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_riskAddress1.displayText = \"Location Address 1\";\r\n this.qs_location_riskAddress1.required = true;\r\n this.qs_location_riskAddress1.tabId = this.tabId;\r\n this.qs_location_riskAddress1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_location_riskAddress2 = new QuestionEntity(\r\n \"qs_location_riskAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_riskAddress2.displayText = \"Location Address 2\";\r\n this.qs_location_riskAddress2.required = true;\r\n this.qs_location_riskAddress2.tabId = this.tabId;\r\n this.qs_location_riskAddress2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_floating = new QuestionEntity(\r\n \"qs_risk_floating\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_floating.displayText = \"Floating\";\r\n this.qs_risk_floating.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_risk_floating.required = false;\r\n this.qs_risk_floating.tabId = this.tabId;\r\n this.qs_risk_floating.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_sameAsAddress = new QuestionEntity(\r\n \"qs_risk_sameAsAddress\",\r\n undefined,\r\n Enums.AnswerDataType.Boolean\r\n );\r\n this.qs_risk_sameAsAddress.displayText =\r\n \"Same as Client’s Contact Information\";\r\n this.qs_risk_sameAsAddress.required = false;\r\n this.qs_risk_sameAsAddress.tabId = this.tabId;\r\n this.qs_risk_sameAsAddress.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress_building = new QuestionEntity(\r\n \"qs_risk_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_risk_insuredAddress_building.required = true;\r\n this.qs_risk_insuredAddress_building.tabId = this.tabId;\r\n this.qs_risk_insuredAddress_building.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_risk_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_risk_insuredAddress_lotunit.required = true;\r\n this.qs_risk_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_risk_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress1 = new QuestionEntity(\r\n \"qs_risk_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_risk_insuredAddress1.required = true;\r\n this.qs_risk_insuredAddress1.tabId = this.tabId;\r\n this.qs_risk_insuredAddress1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress2 = new QuestionEntity(\r\n \"qs_risk_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_risk_insuredAddress2.required = true;\r\n this.qs_risk_insuredAddress2.tabId = this.tabId;\r\n this.qs_risk_insuredAddress2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress3 = new QuestionEntity(\r\n \"qs_risk_insuredAddress3\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress3.displayText = \"Address No 2\";\r\n this.qs_risk_insuredAddress3.required = true;\r\n this.qs_risk_insuredAddress3.tabId = this.tabId;\r\n this.qs_risk_insuredAddress3.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredDistCode = new QuestionEntity(\r\n \"qs_risk_insuredDistCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredDistCode.displayText = \"District Code\";\r\n this.qs_risk_insuredDistCode.required = false;\r\n this.qs_risk_insuredDistCode.tabId = this.tabId;\r\n this.qs_risk_insuredDistCode.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredPostalCode = new QuestionEntity(\r\n \"qs_risk_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_risk_insuredPostalCode.required = false; //no needed for Hase\r\n this.qs_risk_insuredPostalCode.tabId = this.tabId;\r\n this.qs_risk_insuredPostalCode.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredCity = new QuestionEntity(\r\n \"qs_risk_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_risk_insuredCity.required = false; //no needed for Hase\r\n this.qs_risk_insuredCity.tabId = this.tabId;\r\n this.qs_risk_insuredCity.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredState = new QuestionEntity(\r\n \"qs_risk_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredState.displayText = \"State\";\r\n this.qs_risk_insuredState.required = false;\r\n this.qs_risk_insuredState.tabId = this.tabId;\r\n this.qs_risk_insuredState.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredCountry = new QuestionEntity(\r\n \"qs_risk_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredCountry.displayText = \"Country\";\r\n this.qs_risk_insuredCountry.answer = \"HK\"; //default to HK, use ISO code\r\n this.qs_risk_insuredCountry.required = true;\r\n this.qs_risk_insuredCountry.readOnly = true;\r\n this.qs_risk_insuredCountry.tabId = this.tabId;\r\n this.qs_risk_insuredCountry.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_uploadRiskAddress = new QuestionEntity(\r\n \"qs_risk_uploadRiskAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_uploadRiskAddress.displayText = \"Uploaded risk address\";\r\n this.qs_risk_uploadRiskAddress.readOnly = true;\r\n this.qs_risk_uploadRiskAddress.required = false;\r\n this.qs_risk_uploadRiskAddress.tabId = this.tabId;\r\n this.qs_risk_uploadRiskAddress.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_occupied = new QuestionEntity(\r\n \"qs_fire_occupied\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_occupied.displayText = \"Occupied as\";\r\n this.qs_fire_occupied.required = true;\r\n this.qs_fire_occupied.tabId = this.tabId;\r\n this.qs_fire_occupied.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n this.qs_master_manualUnderwritting = new QuestionEntity(\r\n \"qs_master_manualUnderwritting\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualUnderwritting.displayText = \"Manual Underwriting\";\r\n this.qs_master_manualUnderwritting.required = true;\r\n this.qs_master_manualUnderwritting.tabId = this.tabId;\r\n this.qs_master_manualUnderwritting.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_notes = new QuestionEntity(\r\n \"qs_fire_notes\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_notes.displayText = \"Additional Notes on occupancy\";\r\n this.qs_fire_notes.required = false;\r\n this.qs_fire_notes.tabId = this.tabId;\r\n this.qs_fire_notes.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_mcst = new QuestionEntity(\r\n \"qs_fire_mcst\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_mcst.displayText = \"MCST Number\";\r\n this.qs_fire_mcst.required = false;\r\n this.qs_fire_mcst.isVisible = false;\r\n this.qs_fire_mcst.tabId = this.tabId;\r\n this.qs_fire_mcst.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_replacement = new QuestionEntity(\r\n \"qs_fire_replacement\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_replacement.displayText =\r\n \"Fire Replacement Value / Sum Insured\";\r\n this.qs_fire_replacement.required = false;\r\n this.qs_fire_replacement.tabId = this.tabId;\r\n this.qs_fire_replacement.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n // \"Other Information\" Section\r\n this.qs_otherinfo_MortgLoanAcctNum1 = new QuestionEntity(\r\n \"qs_otherinfo_MortgLoanAcctNum1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_MortgLoanAcctNum1.displayText = \"Loan Account Number1\";\r\n this.qs_otherinfo_MortgLoanAcctNum1.required = false;\r\n this.qs_otherinfo_MortgLoanAcctNum1.tabId = this.tabId;\r\n this.qs_otherinfo_MortgLoanAcctNum1.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_MortgLoanAcctNum2 = new QuestionEntity(\r\n \"qs_otherinfo_MortgLoanAcctNum2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_MortgLoanAcctNum2.displayText = \"Loan Account Number2\";\r\n this.qs_otherinfo_MortgLoanAcctNum2.required = false;\r\n this.qs_otherinfo_MortgLoanAcctNum2.tabId = this.tabId;\r\n this.qs_otherinfo_MortgLoanAcctNum2.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_MortgLoanAcctNum3 = new QuestionEntity(\r\n \"qs_otherinfo_MortgLoanAcctNum3\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_MortgLoanAcctNum3.displayText = \"Loan Account Number3\";\r\n this.qs_otherinfo_MortgLoanAcctNum3.required = false;\r\n this.qs_otherinfo_MortgLoanAcctNum3.tabId = this.tabId;\r\n this.qs_otherinfo_MortgLoanAcctNum3.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_InsuranceCompany = new QuestionEntity(\r\n \"qs_otherinfo_InsuranceCompany\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_InsuranceCompany.displayText = \"Insurance Company\";\r\n this.qs_otherinfo_InsuranceCompany.required = false;\r\n this.qs_otherinfo_InsuranceCompany.tabId = this.tabId;\r\n this.qs_otherinfo_InsuranceCompany.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_VersionDate = new QuestionEntity(\r\n \"qs_otherinfo_VersionDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_otherinfo_VersionDate.displayText = \"Version Date\";\r\n this.qs_otherinfo_VersionDate.required = false;\r\n this.qs_otherinfo_VersionDate.tabId = this.tabId;\r\n this.qs_otherinfo_VersionDate.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_MortgLoanRecEntryDate = new QuestionEntity(\r\n \"qs_otherinfo_MortgLoanRecEntryDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_otherinfo_MortgLoanRecEntryDate.displayText =\r\n \"Mortgage Loan Record Entry Date\";\r\n this.qs_otherinfo_MortgLoanRecEntryDate.required = false;\r\n this.qs_otherinfo_MortgLoanRecEntryDate.tabId = this.tabId;\r\n this.qs_otherinfo_MortgLoanRecEntryDate.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_RepayAcctType = new QuestionEntity(\r\n \"qs_otherinfo_RepayAcctType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_RepayAcctType.displayText = \"Repayment Account Type\";\r\n this.qs_otherinfo_RepayAcctType.required = false;\r\n this.qs_otherinfo_RepayAcctType.tabId = this.tabId;\r\n this.qs_otherinfo_RepayAcctType.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_RepayAcct = new QuestionEntity(\r\n \"qs_otherinfo_RepayAcct\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_RepayAcct.displayText = \"Repayment Account\";\r\n this.qs_otherinfo_RepayAcct.required = false;\r\n this.qs_otherinfo_RepayAcct.tabId = this.tabId;\r\n this.qs_otherinfo_RepayAcct.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_RepayAcctName = new QuestionEntity(\r\n \"qs_otherinfo_RepayAcctName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_RepayAcctName.displayText = \"Repayment Account Name\";\r\n this.qs_otherinfo_RepayAcctName.required = false;\r\n this.qs_otherinfo_RepayAcctName.tabId = this.tabId;\r\n this.qs_otherinfo_RepayAcctName.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_AutoIssue = new QuestionEntity(\r\n \"qs_otherinfo_AutoIssue\",\r\n undefined,\r\n Enums.AnswerDataType.Boolean\r\n );\r\n this.qs_otherinfo_AutoIssue.displayText = \"Auto Issue Flag\";\r\n this.qs_otherinfo_AutoIssue.required = false;\r\n this.qs_otherinfo_AutoIssue.tabId = this.tabId;\r\n this.qs_otherinfo_AutoIssue.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_PreGeneratePolicyNo = new QuestionEntity(\r\n \"qs_otherinfo_PreGeneratePolicyNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_PreGeneratePolicyNo.displayText =\r\n \"Pre-generated policy No\";\r\n this.qs_otherinfo_PreGeneratePolicyNo.required = false;\r\n this.qs_otherinfo_PreGeneratePolicyNo.tabId = this.tabId;\r\n this.qs_otherinfo_PreGeneratePolicyNo.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_InsuranceOption = new QuestionEntity(\r\n \"qs_otherinfo_InsuranceOption\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_otherinfo_InsuranceOption.displayText = \"Insurance Option\";\r\n this.qs_otherinfo_InsuranceOption.required = false;\r\n this.qs_otherinfo_InsuranceOption.tabId = this.tabId;\r\n this.qs_otherinfo_InsuranceOption.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_CurrentLoanValue = new QuestionEntity(\r\n \"qs_otherinfo_CurrentLoanValue\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_otherinfo_CurrentLoanValue.displayText = \"Current Loan Value\";\r\n this.qs_otherinfo_CurrentLoanValue.required = false;\r\n this.qs_otherinfo_CurrentLoanValue.tabId = this.tabId;\r\n this.qs_otherinfo_CurrentLoanValue.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_ProptyReinstaCost = new QuestionEntity(\r\n \"qs_otherinfo_ProptyReinstaCost\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_otherinfo_ProptyReinstaCost.displayText =\r\n \"Property Reinstalling cost\";\r\n this.qs_otherinfo_ProptyReinstaCost.required = false;\r\n this.qs_otherinfo_ProptyReinstaCost.tabId = this.tabId;\r\n this.qs_otherinfo_ProptyReinstaCost.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_otherinfo_ProptyReinstaCostDate = new QuestionEntity(\r\n \"qs_otherinfo_ProptyReinstaCostDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_otherinfo_ProptyReinstaCostDate.displayText =\r\n \"Date of Property Reinstalling Cost Report\";\r\n this.qs_otherinfo_ProptyReinstaCostDate.required = false;\r\n this.qs_otherinfo_ProptyReinstaCostDate.tabId = this.tabId;\r\n this.qs_otherinfo_ProptyReinstaCostDate.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_excess = new QuestionEntity(\r\n \"qs_fire_excess\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_excess.displayText = \"Excess\";\r\n this.qs_fire_excess.required = false;\r\n this.qs_fire_excess.tabId = this.tabId;\r\n this.qs_fire_excess.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_generalPage = new QuestionEntity(\r\n \"qs_fire_generalPage\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_generalPage.displayText = \"General Page\";\r\n this.qs_fire_generalPage.required = false;\r\n this.qs_fire_generalPage.tabId = this.tabId;\r\n this.qs_fire_generalPage.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_businessDesc = new QuestionEntity(\r\n \"qs_fire_businessDesc\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_businessDesc.displayText = \"Business Description\";\r\n this.qs_fire_businessDesc.required = false;\r\n this.qs_fire_businessDesc.tabId = this.tabId;\r\n this.qs_fire_businessDesc.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_interestedParties = new QuestionEntity(\r\n \"qs_fire_interestedParties\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_interestedParties.displayText = \"Interested Parties\";\r\n this.qs_fire_interestedParties.required = false;\r\n this.qs_fire_interestedParties.tabId = this.tabId;\r\n this.qs_fire_interestedParties.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_discussionNotes = new QuestionEntity(\r\n \"qs_fire_discussionNotes\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_discussionNotes.displayText = \"Discussion Note\";\r\n this.qs_fire_discussionNotes.required = false;\r\n this.qs_fire_discussionNotes.tabId = this.tabId;\r\n this.qs_fire_discussionNotes.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n // New IBG risk details\r\n this.qs_fire_natureBusiness = new QuestionEntity(\r\n \"qs_fire_natureBusiness\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_natureBusiness.displayText = \"Nature of Business\";\r\n this.qs_fire_natureBusiness.required = false;\r\n this.qs_fire_natureBusiness.tabId = this.tabId;\r\n this.qs_fire_natureBusiness.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_usagePremises = new QuestionEntity(\r\n \"qs_fire_usagePremises\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_usagePremises.displayText = \"Usage of Premises\";\r\n this.qs_fire_usagePremises.required = false;\r\n this.qs_fire_usagePremises.tabId = this.tabId;\r\n this.qs_fire_usagePremises.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_typeProperty = new QuestionEntity(\r\n \"qs_fire_typeProperty\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_typeProperty.displayText = \"Type Of Property\";\r\n this.qs_fire_typeProperty.required = true;\r\n this.qs_fire_typeProperty.tabId = this.tabId;\r\n this.qs_fire_typeProperty.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_freeInsuranceFirstYear = new QuestionEntity(\r\n \"qs_fire_freeInsuranceFirstYear\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_freeInsuranceFirstYear.displayText =\r\n \"Free Insurance for First Year\";\r\n this.qs_fire_freeInsuranceFirstYear.required = false;\r\n this.qs_fire_freeInsuranceFirstYear.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_fire_freeInsuranceFirstYear.tabId = this.tabId;\r\n this.qs_fire_freeInsuranceFirstYear.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_nameSolicitors = new QuestionEntity(\r\n \"qs_fire_nameSolicitors\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_nameSolicitors.displayText =\r\n \"Name of Solicitors (For HDB Shops only)\";\r\n this.qs_fire_nameSolicitors.required = false;\r\n this.qs_fire_nameSolicitors.tabId = this.tabId;\r\n this.qs_fire_nameSolicitors.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_machinery_equipment = new QuestionEntity(\r\n \"qs_machinery_equipment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_equipment.displayText = \"Equipment\";\r\n this.qs_machinery_equipment.required = true;\r\n this.qs_machinery_equipment.tabId = this.tabId;\r\n this.qs_machinery_equipment.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_lst = new QuestionEntity(\r\n \"qs_master_lst\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_lst.displayText = \"Local Surplus Treaty\";\r\n this.qs_master_lst.required = false;\r\n this.qs_master_lst.readOnly = true;\r\n this.qs_master_lst.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_master_lst.tabId = this.tabId;\r\n this.qs_master_lst.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_lstDetails = new QuestionEntity(\r\n \"qs_master_lstDetails\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_lstDetails.displayText = \"LST Details\";\r\n this.qs_master_lstDetails.required = false;\r\n this.qs_master_lstDetails.tabId = this.tabId;\r\n this.qs_master_lstDetails.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_equipment_description = new QuestionEntity(\r\n \"qs_fire_equipment_description\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_description.displayText = \"Description of Equipment\";\r\n this.qs_fire_equipment_description.required = false;\r\n this.qs_fire_equipment_description.tabId = this.tabId;\r\n this.qs_fire_equipment_description.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_equipment_type = new QuestionEntity(\r\n \"qs_fire_equipment_type\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_type.displayText = \"Type of Equipment\";\r\n this.qs_fire_equipment_type.required = false;\r\n this.qs_fire_equipment_type.tabId = this.tabId;\r\n this.qs_fire_equipment_type.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_equipment_financing = new QuestionEntity(\r\n \"qs_fire_equipment_financing\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_financing.displayText = \"Type of Financing\";\r\n this.qs_fire_equipment_financing.required = false;\r\n this.qs_fire_equipment_financing.tabId = this.tabId;\r\n this.qs_fire_equipment_financing.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_sumOfInsured = new QuestionEntity(\r\n \"qs_fire_sumOfInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_sumOfInsured.displayText = \"Sum Insured\";\r\n this.qs_fire_sumOfInsured.required = false;\r\n this.qs_fire_sumOfInsured.tabId = this.tabId;\r\n this.qs_fire_sumOfInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_building = new QuestionEntity(\r\n \"qs_fire_building\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_building.displayText = \"Building\";\r\n this.qs_fire_building.required = false;\r\n this.qs_fire_building.tabId = this.tabId;\r\n this.qs_fire_building.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_householdContents = new QuestionEntity(\r\n \"qs_fire_householdContents\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_householdContents.displayText = \"Household contents\";\r\n this.qs_fire_householdContents.required = false;\r\n this.qs_fire_householdContents.readOnly = true;\r\n this.qs_fire_householdContents.tabId = this.tabId;\r\n this.qs_fire_householdContents.questionPanelId =\r\n MortgageFireHKSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_dateOfBirthOrIncorporation = new QuestionEntity(\r\n \"qs_master_dateOfBirthOrIncorporation\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_dateOfBirthOrIncorporation.displayText = \"Date Of Birth\";\r\n this.qs_master_dateOfBirthOrIncorporation.required = true;\r\n this.qs_master_dateOfBirthOrIncorporation.readOnly = false;\r\n this.qs_master_dateOfBirthOrIncorporation.tabId = this.tabId;\r\n this.qs_master_dateOfBirthOrIncorporation.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_dateOfBirthOrIncorporation.maxValue = new Date();\r\n\r\n this.qs_master_clientContactPerson = new QuestionEntity(\r\n \"qs_master_clientContactPerson\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientContactPerson.displayText = \"Client Contact Person\";\r\n this.qs_master_clientContactPerson.required = false;\r\n this.qs_master_clientContactPerson.readOnly = false;\r\n this.qs_master_clientContactPerson.tabId = this.tabId;\r\n this.qs_master_clientContactPerson.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientContactPersonContactNo = new QuestionEntity(\r\n \"qs_master_clientContactPersonContactNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientContactPersonContactNo.displayText =\r\n \"Client Contact Person Contact No\";\r\n this.qs_master_clientContactPersonContactNo.required = false;\r\n this.qs_master_clientContactPersonContactNo.readOnly = false;\r\n this.qs_master_clientContactPersonContactNo.tabId = this.tabId;\r\n this.qs_master_clientContactPersonContactNo.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadSumInsured = new QuestionEntity(\r\n \"qs_machinery_uploadSumInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_machinery_uploadSumInsured.displayText = \"Uploaded Sum Insured\";\r\n this.qs_machinery_uploadSumInsured.required = false;\r\n this.qs_machinery_uploadSumInsured.readOnly = true;\r\n this.qs_machinery_uploadSumInsured.tabId = this.tabId;\r\n this.qs_machinery_uploadSumInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadTypeOfEquipment = new QuestionEntity(\r\n \"qs_machinery_uploadTypeOfEquipment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadTypeOfEquipment.displayText =\r\n \"Uploaded Type Of Equipment\";\r\n this.qs_machinery_uploadTypeOfEquipment.required = false;\r\n this.qs_machinery_uploadTypeOfEquipment.readOnly = true;\r\n this.qs_machinery_uploadTypeOfEquipment.tabId = this.tabId;\r\n this.qs_machinery_uploadTypeOfEquipment.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadEquipmentDescription = new QuestionEntity(\r\n \"qs_machinery_uploadEquipmentDescription\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadEquipmentDescription.displayText =\r\n \"Uploaded Equipment Description\";\r\n this.qs_machinery_uploadEquipmentDescription.required = false;\r\n this.qs_machinery_uploadEquipmentDescription.readOnly = true;\r\n this.qs_machinery_uploadEquipmentDescription.tabId = this.tabId;\r\n this.qs_machinery_uploadEquipmentDescription.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadTypeOfFinancing = new QuestionEntity(\r\n \"qs_machinery_uploadTypeOfFinancing\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadTypeOfFinancing.displayText =\r\n \"Uploaded Type Of Financing\";\r\n this.qs_machinery_uploadTypeOfFinancing.required = false;\r\n this.qs_machinery_uploadTypeOfFinancing.readOnly = true;\r\n this.qs_machinery_uploadTypeOfFinancing.tabId = this.tabId;\r\n this.qs_machinery_uploadTypeOfFinancing.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_uploadAdditionalInsured = new QuestionEntity(\r\n \"qs_master_uploadAdditionalInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_uploadAdditionalInsured.displayText =\r\n \"Uploaded Additional Insured\";\r\n this.qs_master_uploadAdditionalInsured.required = false;\r\n this.qs_master_uploadAdditionalInsured.readOnly = true;\r\n this.qs_master_uploadAdditionalInsured.tabId = this.tabId;\r\n this.qs_master_uploadAdditionalInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_freeInsuranceNoYear = new QuestionEntity(\r\n \"qs_fire_freeInsuranceNoYear\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_freeInsuranceNoYear.displayText =\r\n \"No. of Years – Free Insurance\";\r\n this.qs_fire_freeInsuranceNoYear.required = false;\r\n this.qs_fire_freeInsuranceNoYear.answer = 0;\r\n this.qs_fire_freeInsuranceNoYear.tabId = this.tabId;\r\n this.qs_fire_freeInsuranceNoYear.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2 = new QuestionEntity(\r\n \"qs_master_insuredNo2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2.displayText =\r\n \"Business Registeration No / NRIC - 2nd Insured\";\r\n this.qs_master_insuredNo2.required = false;\r\n this.qs_master_insuredNo2.readOnly = true;\r\n this.qs_master_insuredNo2.tabId = this.tabId;\r\n this.qs_master_insuredNo2.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_insuredNo2.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2Nationality = new QuestionEntity(\r\n \"qs_master_insuredNo2Nationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2Nationality.displayText = \"Nationality\";\r\n this.qs_master_insuredNo2Nationality.required = false;\r\n this.qs_master_insuredNo2Nationality.readOnly = false;\r\n this.qs_master_insuredNo2Nationality.tabId = this.tabId;\r\n this.qs_master_insuredNo2Nationality.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2DocType = new QuestionEntity(\r\n \"qs_master_insuredNo2DocType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2DocType.displayText = \"Document Type\";\r\n this.qs_master_insuredNo2DocType.required = false;\r\n this.qs_master_insuredNo2DocType.readOnly = false;\r\n this.qs_master_insuredNo2DocType.tabId = this.tabId;\r\n this.qs_master_insuredNo2DocType.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_insuredNo2DocType.options = [\r\n { key: \"S - Singapore NRIC\", value: \"1\" },\r\n { key: \"S - Singapore PR\", value: \"2\" },\r\n { key: \"M - Malaysia IC\", value: \"3\" },\r\n { key: \"P - Foreign Passport\", value: \"4\" },\r\n ];\r\n\r\n this.qs_master_namesOtherInsured = new QuestionEntity(\r\n \"qs_master_namesOtherInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_namesOtherInsured.displayText = \"Names other than Insured\";\r\n this.qs_master_namesOtherInsured.required = false;\r\n this.qs_master_namesOtherInsured.tabId = this.tabId;\r\n this.qs_master_namesOtherInsured.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_borrowerCIN = new QuestionEntity(\r\n \"qs_master_borrowerCIN\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_borrowerCIN.displayText = \"Borrower GCIN\";\r\n this.qs_master_borrowerCIN.required = false;\r\n this.qs_master_borrowerCIN.tabId = this.tabId;\r\n this.qs_master_borrowerCIN.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.masterDataService.getNationalityList().subscribe((response) => {\r\n this.nationalityList = response;\r\n this.qs_master_insuredNoNationality!.options = this.nationalityList;\r\n this.qs_master_insuredNo2Nationality!.options = this.nationalityList;\r\n });\r\n\r\n this.qs_master_premiumPayment = new QuestionEntity(\r\n \"qs_master_premiumPayment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_premiumPayment.displayText = \"Premium Payment\";\r\n this.qs_master_premiumPayment.required = false; //no needed for Hase\r\n this.qs_master_premiumPayment.tabId = this.tabId;\r\n this.qs_master_premiumPayment.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_customerType = new QuestionEntity(\r\n \"qs_master_customerType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_customerType.displayText = \"Customer Type\";\r\n this.qs_master_customerType.required = true;\r\n this.qs_master_customerType.tabId = this.tabId;\r\n this.qs_master_customerType.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_collateralNumber = new QuestionEntity(\r\n \"qs_master_collateralNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_collateralNumber.displayText = \"Collateral No\";\r\n this.qs_master_collateralNumber.required = true;\r\n this.qs_master_collateralNumber.tabId = this.tabId;\r\n this.qs_master_collateralNumber.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_discountCode = new QuestionEntity(\r\n \"qs_master_discountCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_discountCode.displayText = \"Code\";\r\n this.qs_master_discountCode.required = false;\r\n this.qs_master_discountCode.tabId = this.tabId;\r\n this.qs_master_discountCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_outstandingLoanValue = new QuestionEntity(\r\n \"qs_fire_outstandingLoanValue\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_outstandingLoanValue.displayText = \"Outstanding Loan Value\";\r\n this.qs_fire_outstandingLoanValue.required = false;\r\n this.qs_fire_outstandingLoanValue.tabId = this.tabId;\r\n this.qs_fire_outstandingLoanValue.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_coverageValueType = new QuestionEntity(\r\n \"qs_fire_coverageValueType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_coverageValueType.displayText = \"Coverage Value Type\";\r\n this.qs_fire_coverageValueType.required = true;\r\n this.qs_fire_coverageValueType.tabId = this.tabId;\r\n this.qs_fire_coverageValueType.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_customDiscountCode = new QuestionEntity(\r\n \"qs_master_customDiscountCode\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_customDiscountCode.displayText = \"Custom Code\";\r\n this.qs_master_customDiscountCode.required = false;\r\n this.qs_master_customDiscountCode.tabId = this.tabId;\r\n this.qs_master_customDiscountCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_risk_occupancy = new QuestionEntity(\r\n \"qs_risk_occupancy\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_occupancy.displayText = \"Occupancy\";\r\n this.qs_risk_occupancy.required = false;\r\n this.qs_risk_occupancy.tabId = this.tabId;\r\n this.qs_risk_occupancy.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_risk_construction = new QuestionEntity(\r\n \"qs_risk_construction\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_construction.displayText = \"Construction\";\r\n this.qs_risk_construction.required = false;\r\n this.qs_risk_construction.tabId = this.tabId;\r\n this.qs_risk_construction.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.initHaseQuestions();\r\n }\r\n\r\n initHaseQuestions() {\r\n this.qs_master_rmBranchCode = new QuestionEntity(\r\n \"qs_master_rmBranchCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmBranchCode.displayText = \"Branch Code\";\r\n this.qs_master_rmBranchCode.maxLength = 100;\r\n this.qs_master_rmBranchCode.required = false;\r\n this.qs_master_rmBranchCode.tabId = this.tabId;\r\n this.qs_master_rmBranchCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmMortgageeCode = new QuestionEntity(\r\n \"qs_master_rmMortgageeCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmMortgageeCode.displayText = \"Mortgagee Code\";\r\n this.qs_master_rmMortgageeCode.maxLength = 100;\r\n this.qs_master_rmMortgageeCode.required = false;\r\n this.qs_master_rmMortgageeCode.tabId = this.tabId;\r\n this.qs_master_rmMortgageeCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmSalesChannel = new QuestionEntity(\r\n \"qs_master_rmSalesChannel\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmSalesChannel.displayText = \"Sales Channel\";\r\n this.qs_master_rmSalesChannel.maxLength = 100;\r\n this.qs_master_rmSalesChannel.required = false;\r\n this.qs_master_rmSalesChannel.tabId = this.tabId;\r\n this.qs_master_rmSalesChannel.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmStaffReference = new QuestionEntity(\r\n \"qs_master_rmStaffReference\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmStaffReference.displayText = \"HASE Staff Reference\";\r\n this.qs_master_rmStaffReference.maxLength = 100;\r\n this.qs_master_rmStaffReference.required = false;\r\n this.qs_master_rmStaffReference.tabId = this.tabId;\r\n this.qs_master_rmStaffReference.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmSalesStaffCode = new QuestionEntity(\r\n \"qs_master_rmSalesStaffCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmSalesStaffCode.displayText = \"HASE Sales Staff Code\";\r\n this.qs_master_rmSalesStaffCode.maxLength = 100;\r\n this.qs_master_rmSalesStaffCode.required = false;\r\n this.qs_master_rmSalesStaffCode.tabId = this.tabId;\r\n this.qs_master_rmSalesStaffCode.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_brokerFirstName!);\r\n this.questions.push(this.qs_master_brokerLastName!);\r\n this.questions.push(this.qs_master_brokerOrganizationName!);\r\n\r\n this.questions.push(this.qs_master_insuredNo!);\r\n this.questions.push(this.qs_master_insuredNoNationality!);\r\n this.questions.push(this.qs_master_insuredNoDocType!);\r\n this.questions.push(this.qs_master_insuredName!);\r\n this.questions.push(this.qs_master_replacePolicyNo!);\r\n this.questions.push(this.qs_master_masterPolicyNumber!);\r\n this.questions.push(this.qs_master_planType!);\r\n this.questions.push(this.qs_master_poi_startDate!);\r\n this.questions.push(this.qs_master_poi_endDate!);\r\n\r\n //// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.questions.push(this.qs_master_FreeIns_startDate!);\r\n this.questions.push(this.qs_master_FreeIns_endDate!);\r\n\r\n this.questions.push(this.qs_master_financialBranch!);\r\n this.questions.push(this.qs_master_bankReferNumber!);\r\n this.questions.push(this.qs_master_assetClassCode!);\r\n this.questions.push(this.qs_master_assetSerialNumber!);\r\n this.questions.push(this.qs_master_effectiveDate!);\r\n\r\n this.questions.push(this.qs_location_occupation!);\r\n this.questions.push(this.qs_location_riskAddress1!);\r\n this.questions.push(this.qs_location_riskAddress2!);\r\n\r\n this.questions.push(this.qs_risk_floating!);\r\n this.questions.push(this.qs_risk_sameAsAddress!);\r\n this.questions.push(this.qs_risk_insuredAddress_building!);\r\n this.questions.push(this.qs_risk_insuredAddress_lotunit!);\r\n this.questions.push(this.qs_risk_insuredAddress1!);\r\n this.questions.push(this.qs_risk_insuredAddress2!);\r\n this.questions.push(this.qs_risk_insuredAddress3!);\r\n this.questions.push(this.qs_risk_insuredDistCode!);\r\n this.questions.push(this.qs_risk_insuredPostalCode!);\r\n this.questions.push(this.qs_risk_insuredCity!);\r\n this.questions.push(this.qs_risk_insuredState!);\r\n this.questions.push(this.qs_risk_insuredCountry!);\r\n\r\n //// 24/01/2019 : Chirag Added Code For Mobile/Email\r\n ////DBSEP-252 : Client Info Update\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_Email!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_MobileNo!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_CorrAddress!);\r\n this.questions.push(this.qs_master_mobileNumber!);\r\n this.questions.push(this.qs_master_emailID!);\r\n this.questions.push(this.qs_master_salutation!);\r\n this.questions.push(this.qs_master_clientName!);\r\n this.questions.push(this.qs_master_passport!);\r\n this.questions.push(this.qs_master_nric!);\r\n this.questions.push(this.qs_master_occupation!);\r\n this.questions.push(this.qs_master_birthDate!);\r\n this.questions.push(this.qs_master_race!);\r\n this.questions.push(this.qs_master_nationality!);\r\n this.questions.push(this.qs_master_gender!);\r\n this.questions.push(this.qs_master_maritalStatus!);\r\n this.questions.push(this.qs_master_phoneNoHome!);\r\n this.questions.push(this.qs_master_phoneNoOffice!);\r\n this.questions.push(this.qs_master_faxNumber!);\r\n this.questions.push(this.qs_master_cin!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod!);\r\n this.questions.push(this.qs_master_insuredAddress_building!);\r\n this.questions.push(this.qs_master_insuredAddress_lotunit!);\r\n this.questions.push(this.qs_master_insuredAddress1!);\r\n this.questions.push(this.qs_master_insuredAddress2!);\r\n this.questions.push(this.qs_master_insuredAddress3!);\r\n this.questions.push(this.qs_master_insuredAddress4!);\r\n this.questions.push(this.qs_master_insuredPostalCode!);\r\n this.questions.push(this.qs_master_insuredCity!);\r\n this.questions.push(this.qs_master_insuredState!);\r\n this.questions.push(this.qs_master_insuredCountry!);\r\n\r\n // this.questions.push(this.qs_fire_situation);\r\n this.questions.push(this.qs_fire_occupied!);\r\n this.questions.push(this.qs_master_miRate!);\r\n this.questions.push(this.qs_fire_notes!);\r\n this.questions.push(this.qs_fire_excess!);\r\n this.questions.push(this.qs_fire_mcst!);\r\n this.questions.push(this.qs_fire_replacement!);\r\n this.questions.push(this.qs_fire_generalPage!);\r\n this.questions.push(this.qs_fire_businessDesc!);\r\n this.questions.push(this.qs_fire_interestedParties!);\r\n this.questions.push(this.qs_fire_discussionNotes!);\r\n\r\n // New IBG fields\r\n this.questions.push(this.qs_master_buPcCode!);\r\n this.questions.push(this.qs_master_uploadBuPcCode!);\r\n this.questions.push(this.qs_master_busReg1stInsured!);\r\n this.questions.push(this.qs_master_busReg2ndInsured!);\r\n this.questions.push(this.qs_master_additionalInsured!);\r\n this.questions.push(this.qs_master_otherInsuredName!);\r\n this.questions.push(this.qs_master_rmName!);\r\n this.questions.push(this.qs_master_rmContactNo!);\r\n this.questions.push(this.qs_master_rmRemarks!);\r\n this.questions.push(this.qs_master_insuredAddress!);\r\n this.questions.push(this.qs_master_insuredNo2!);\r\n this.questions.push(this.qs_master_insuredNo2Nationality!);\r\n this.questions.push(this.qs_master_insuredNo2DocType!);\r\n this.questions.push(this.qs_master_namesOtherInsured!);\r\n this.questions.push(this.qs_master_borrowerCIN!);\r\n\r\n this.questions.push(this.qs_fire_natureBusiness!);\r\n this.questions.push(this.qs_fire_usagePremises!);\r\n this.questions.push(this.qs_fire_typeProperty!);\r\n this.questions.push(this.qs_fire_freeInsuranceFirstYear!);\r\n this.questions.push(this.qs_fire_nameSolicitors!);\r\n this.questions.push(this.qs_fire_equipment_description!);\r\n this.questions.push(this.qs_fire_equipment_type!);\r\n this.questions.push(this.qs_fire_equipment_financing!);\r\n this.questions.push(this.qs_fire_sumOfInsured!);\r\n this.questions.push(this.qs_fire_building!);\r\n this.questions.push(this.qs_fire_householdContents!);\r\n this.questions.push(this.qs_machinery_equipment!);\r\n this.questions.push(this.qs_risk_uploadRiskAddress!);\r\n this.questions.push(this.qs_master_endorse_endorsementReason!);\r\n this.questions.push(this.qs_master_refund!);\r\n this.questions.push(this.qs_master_waiveMinimumPremium!);\r\n this.questions.push(this.qs_master_cancellation_masterpiece!);\r\n this.questions.push(this.qs_master_cancellation_maximumAdjustmentAmount!);\r\n this.questions.push(this.qs_master_cancellation_adjustmentAmount!);\r\n this.questions.push(this.qs_master_insuredIndustry!);\r\n this.questions.push(this.qs_master_occupancyRate!);\r\n this.questions.push(this.qs_master_insuredIndustry_desc!);\r\n\r\n this.questions.push(this.qs_master_dateOfBirthOrIncorporation!);\r\n this.questions.push(this.qs_master_clientContactPerson!);\r\n this.questions.push(this.qs_master_clientContactPersonContactNo!);\r\n this.questions.push(this.qs_machinery_uploadSumInsured!);\r\n this.questions.push(this.qs_machinery_uploadTypeOfEquipment!);\r\n this.questions.push(this.qs_machinery_uploadEquipmentDescription!);\r\n this.questions.push(this.qs_machinery_uploadTypeOfFinancing!);\r\n this.questions.push(this.qs_fire_freeInsuranceNoYear!);\r\n this.questions.push(this.qs_master_uploadAdditionalInsured!);\r\n\r\n this.questions.push(this.qs_master_lst!);\r\n this.questions.push(this.qs_master_lstDetails!);\r\n\r\n this.questions.push(this.qs_master_manualUnderwritting!);\r\n\r\n //Citi\r\n this.questions.push(this.qs_master_premiumPayment!);\r\n this.questions.push(this.qs_master_customerType!);\r\n this.questions.push(this.qs_master_collateralNumber!);\r\n this.questions.push(this.qs_master_discountCode!);\r\n this.questions.push(this.qs_fire_outstandingLoanValue!);\r\n this.questions.push(this.qs_fire_coverageValueType!);\r\n this.questions.push(this.qs_master_customDiscountCode!);\r\n\r\n //Hase\r\n this.questions.push(this.qs_risk_carParkAddress1!);\r\n this.questions.push(this.qs_risk_carParkAddress2!);\r\n this.questions.push(this.qs_risk_carParkAddress3!);\r\n this.questions.push(this.qs_risk_carParkAddress4!);\r\n this.questions.push(this.qs_risk_carParkCountry!);\r\n this.questions.push(this.qs_fire_grossFloorArea!);\r\n this.questions.push(this.qs_fire_loanAmount!);\r\n this.questions.push(this.qs_fire_currency!);\r\n this.questions.push(this.qs_fire_freeInsurance!);\r\n this.questions.push(this.qs_risk_occupancy!);\r\n this.questions.push(this.qs_risk_construction!);\r\n\r\n this.questions.push(this.qs_master_rmBranchCode!);\r\n this.questions.push(this.qs_master_rmMortgageeCode!);\r\n this.questions.push(this.qs_master_rmSalesChannel!);\r\n this.questions.push(this.qs_master_rmStaffReference!);\r\n this.questions.push(this.qs_master_rmSalesStaffCode!);\r\n\r\n //Hase \"Other Information\" Section\r\n this.questions.push(this.qs_otherinfo_MortgLoanAcctNum1!);\r\n this.questions.push(this.qs_otherinfo_MortgLoanAcctNum2!);\r\n this.questions.push(this.qs_otherinfo_MortgLoanAcctNum3!);\r\n this.questions.push(this.qs_otherinfo_InsuranceCompany!);\r\n this.questions.push(this.qs_otherinfo_VersionDate!);\r\n this.questions.push(this.qs_otherinfo_MortgLoanRecEntryDate!);\r\n this.questions.push(this.qs_otherinfo_RepayAcctType!);\r\n this.questions.push(this.qs_otherinfo_RepayAcct!);\r\n this.questions.push(this.qs_otherinfo_RepayAcctName!);\r\n this.questions.push(this.qs_otherinfo_AutoIssue!);\r\n this.questions.push(this.qs_otherinfo_PreGeneratePolicyNo!);\r\n this.questions.push(this.qs_otherinfo_InsuranceOption!);\r\n this.questions.push(this.qs_otherinfo_CurrentLoanValue!);\r\n this.questions.push(this.qs_otherinfo_ProptyReinstaCost!);\r\n this.questions.push(this.qs_otherinfo_ProptyReinstaCostDate!);\r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireHKSectionSchema } from \"../schemas/mf-hk-section-schema\";\r\nimport { MortgageFireHKTabSchema } from \"./../schemas/mf-hk-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\n\r\nexport class MortgageFireHongKongPremiumSummaryQuestionSection extends QuestionSection {\r\n qs_master_techRate!: QuestionEntity;\r\n qs_master_brokerCommission!: QuestionEntity;\r\n qs_master_brokerCommissionRate!: QuestionEntity;\r\n qs_master_commission!: QuestionEntity;\r\n qs_master_commissionGst!: QuestionEntity;\r\n qs_master_commissionPayable!: QuestionEntity;\r\n\r\n // Premium summary\r\n qs_master_manualReferral!: QuestionEntity;\r\n qs_master_manualReferralReason!: QuestionEntity;\r\n\r\n //Citibank\r\n qs_master_netCommOffsetWithDiscount!: QuestionEntity;\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireHKTabSchema.premiumSummary.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_techRate = new QuestionEntity(\r\n \"qs_master_techRate\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_techRate.displayText = \"Tech Rate\";\r\n this.qs_master_techRate.readOnly = true;\r\n this.qs_master_techRate.required = false;\r\n this.qs_master_techRate.tabId = this.tabId;\r\n this.qs_master_techRate.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_brokerCommission = new QuestionEntity(\r\n \"qs_master_brokerCommission\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_brokerCommission.displayText = \"Commission\";\r\n this.qs_master_brokerCommission.readOnly = true;\r\n this.qs_master_brokerCommission.required = true;\r\n this.qs_master_brokerCommission.tabId = this.tabId;\r\n this.qs_master_brokerCommission.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_brokerCommissionRate = new QuestionEntity(\r\n \"qs_master_brokerCommissionRate\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_brokerCommissionRate.displayText = \"Commission Rate\";\r\n this.qs_master_brokerCommissionRate.readOnly = true;\r\n this.qs_master_brokerCommissionRate.required = true;\r\n this.qs_master_brokerCommissionRate.tabId = this.tabId;\r\n this.qs_master_brokerCommissionRate.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commission = new QuestionEntity(\r\n \"qs_master_commission\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commission.displayText = \"Commission Amount\";\r\n this.qs_master_commission.readOnly = true;\r\n this.qs_master_commission.required = false;\r\n this.qs_master_commission.tabId = this.tabId;\r\n this.qs_master_commission.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commissionGst = new QuestionEntity(\r\n \"qs_master_commissionGst\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commissionGst.displayText = \"GST on Commission\";\r\n this.qs_master_commissionGst.readOnly = true;\r\n this.qs_master_commissionGst.required = true;\r\n this.qs_master_commissionGst.tabId = this.tabId;\r\n this.qs_master_commissionGst.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commissionPayable = new QuestionEntity(\r\n \"qs_master_commissionPayable \",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commissionPayable.displayText = \"Commission Payable\";\r\n this.qs_master_commissionPayable.readOnly = true;\r\n this.qs_master_commissionPayable.required = true;\r\n this.qs_master_commissionPayable.tabId = this.tabId;\r\n this.qs_master_commissionPayable.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_manualReferral = new QuestionEntity(\r\n \"qs_master_manualReferral\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualReferral.displayText =\r\n \"Would you like to manually refer to Underwriter?\";\r\n this.qs_master_manualReferral.required = true;\r\n this.qs_master_manualReferral.tabId = this.tabId;\r\n this.qs_master_manualReferral.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n this.qs_master_manualReferral.defaultAnswer = \"2\";\r\n this.qs_master_manualReferral.answer = \"2\";\r\n\r\n this.qs_master_manualReferralReason = new QuestionEntity(\r\n \"qs_master_manualReferralReason\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualReferralReason.displayText =\r\n \"Refer to underwriter reason\";\r\n this.qs_master_manualReferralReason.required = false;\r\n this.qs_master_manualReferralReason.tabId = this.tabId;\r\n this.qs_master_manualReferralReason.isVisible = false;\r\n this.qs_master_manualReferralReason.questionPanelId =\r\n MortgageFireHKSectionSchema.master.sectionId;\r\n\r\n this.qs_master_netCommOffsetWithDiscount = new QuestionEntity(\r\n \"qs_master_netCommOffsetWithDiscount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_netCommOffsetWithDiscount.displayText =\r\n \"Nett Comm Offset with Discount\";\r\n this.qs_master_netCommOffsetWithDiscount.readOnly = true;\r\n this.qs_master_netCommOffsetWithDiscount.required = true;\r\n this.qs_master_netCommOffsetWithDiscount.tabId = this.tabId;\r\n this.qs_master_netCommOffsetWithDiscount.questionPanelId =\r\n MortgageFireHKSectionSchema.premiumSummary.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_techRate);\r\n this.questions.push(this.qs_master_brokerCommission);\r\n this.questions.push(this.qs_master_brokerCommissionRate);\r\n this.questions.push(this.qs_master_commission);\r\n this.questions.push(this.qs_master_manualReferral);\r\n this.questions.push(this.qs_master_manualReferralReason);\r\n this.questions.push(this.qs_master_commissionGst);\r\n this.questions.push(this.qs_master_netCommOffsetWithDiscount);\r\n this.questions.push(this.qs_master_commissionPayable);\r\n }\r\n}\r\n","import { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { Rule } from \"./../../../../../base/rule.model\";\r\nimport { MortgageFireHongKongProposal } from \"./../mf-hk-proposal\";\r\n\r\nexport class MortgageFireHongKongBusinessRuleSchema {\r\n manualRefer: Rule;\r\n pwbSI!: Rule;\r\n backDatedPOI: Rule;\r\n backDatedLoanRedemption: Rule;\r\n // changeOfSIEndorsementType: Rule;\r\n changeOfdAddressEndorsementType: Rule;\r\n cancellationRefer: Rule;\r\n makeRedundantRefer: Rule;\r\n cancellationReferBackdated: Rule;\r\n loanRedemptionReferBackdated: Rule;\r\n manualUnderwritingRefer: Rule;\r\n loanRedemptionReinstatementMessage: Rule;\r\n renewalYearPendingCheckerMessage: Rule;\r\n previousYearPendingCheckerMessage: Rule;\r\n cmbSI: Rule;\r\n\r\n constructor(private proposal: MortgageFireHongKongProposal) {\r\n this.manualRefer = new Rule(\r\n \"REF01\",\r\n \"Manual Refer\",\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral\r\n );\r\n this.pwbSI = new Rule(\r\n \"REF02\",\r\n \"Insurance amount cannot exceed HKD200,000,000.00\",\r\n this.proposal.qsMaster.qs_fire_building\r\n );\r\n this.backDatedPOI = new Rule(\r\n \"REF03\",\r\n \"Backdating insurance start date\",\r\n this.proposal.qsMaster.qs_master_poi_startDate\r\n );\r\n this.backDatedLoanRedemption = new Rule(\r\n \"REF13\",\r\n \"Loan Redemption backdating effective date\",\r\n this.proposal.qsMaster.qs_master_poi_startDate\r\n );\r\n // this.changeOfSIEndorsementType =\r\n // new Rule('REF04', 'Modify Sum Insured Endorsement', this.proposal.qsMaster.qs_master_endorse_endorsementReason);\r\n this.changeOfdAddressEndorsementType = new Rule(\r\n \"REF04\",\r\n \"Modify Correspondence Address Endorsement Requested\",\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason\r\n );\r\n this.cancellationRefer = new Rule(\r\n \"REF05\",\r\n \"Cancellation Adjustment Requested\",\r\n this.proposal.qsMaster.qs_master_cancellation_adjustmentAmount\r\n );\r\n\r\n this.makeRedundantRefer = new Rule(\r\n \"REF12\",\r\n \"Renewal Draft Redundant Requested\",\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason\r\n );\r\n\r\n this.cancellationReferBackdated = new Rule(\r\n \"REF06\",\r\n \"Cancellation backdating greater than 7 days\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.manualUnderwritingRefer = new Rule(\r\n \"REF07\",\r\n \"Manual Underwriting is selected\",\r\n this.proposal.qsMaster.qs_master_manualUnderwritting\r\n );\r\n\r\n this.loanRedemptionReferBackdated = new Rule(\r\n \"REF08\",\r\n \"Loan redemption backdating greater than 14 days\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.loanRedemptionReinstatementMessage = new Rule(\r\n \"REF09\",\r\n \"Previous year policy is currently being loan redeemed and is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.renewalYearPendingCheckerMessage = new Rule(\r\n \"REF10\",\r\n \"Previous year policy is currently is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.previousYearPendingCheckerMessage = new Rule(\r\n \"REF11\",\r\n \"Current year policy is currently is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n //DBSEP-2136\r\n this.cmbSI = new Rule(\r\n \"REF12\",\r\n \"Insurance amount cannot exceed HKD100,000,000.00\",\r\n this.proposal.qsMaster.qs_fire_building\r\n );\r\n }\r\n}\r\n","import { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireHKTabSchema } from \"./mf-hk-tab-schema\";\r\nimport { Section } from \"./../../../../../base/section.model\";\r\n\r\nclass MortgageFireHongKongSectionSchema {\r\n sections!: Section[];\r\n master!: Section;\r\n locationInsuredInfo!: Section;\r\n materialDamage!: Section;\r\n businessInterruption!: Section;\r\n money!: Section;\r\n premiumSummary!: Section;\r\n clausesAndDeductibles!: Section;\r\n\r\n constructor() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.master = new Section(\r\n \"Master\",\r\n new GUID(\"5C4BEC68-94B7-4D7F-B5D6-F7003D1748CF\"),\r\n MortgageFireHKTabSchema.master.index\r\n );\r\n\r\n this.locationInsuredInfo = new Section(\r\n \"Location Details\",\r\n new GUID(\"C3651266-87DE-44E5-97C0-8258137906A4\"),\r\n MortgageFireHKTabSchema.locations.index\r\n );\r\n this.materialDamage = new Section(\r\n \"Material Damage\",\r\n new GUID(\"95902C96-166B-4093-8DA2-D784E21628EA\"),\r\n MortgageFireHKTabSchema.locations.index\r\n );\r\n\r\n this.businessInterruption = new Section(\r\n \"Business Interruption\",\r\n new GUID(\"2D01A81C-B8E1-4057-8B96-3A66254CFA1A\"),\r\n MortgageFireHKTabSchema.businessInterruption.index\r\n );\r\n\r\n this.money = new Section(\r\n \"Money\",\r\n new GUID(\"B4A2ABDF-555A-48DE-8F0A-D68BAD994DE3\"),\r\n MortgageFireHKTabSchema.money.index\r\n );\r\n this.premiumSummary = new Section(\r\n \"Premium Summary\",\r\n new GUID(\"B4A2ABDF-555A-48DE-8F0A-D68BAD994DE3\"),\r\n MortgageFireHKTabSchema.premiumSummary.index\r\n );\r\n this.clausesAndDeductibles = new Section(\r\n \"Clauses And Deductibles\",\r\n new GUID(\"2D01A81C-B8E1-4057-8B96-3A66254CFA1A\"),\r\n MortgageFireHKTabSchema.clausesAndDeductibles.index\r\n );\r\n\r\n this.sections = [];\r\n this.sections.push(this.master);\r\n this.sections.push(this.locationInsuredInfo);\r\n this.sections.push(this.materialDamage);\r\n this.sections.push(this.businessInterruption);\r\n this.sections.push(this.money);\r\n this.sections.push(this.premiumSummary);\r\n this.sections.push(this.clausesAndDeductibles);\r\n }\r\n}\r\n\r\nexport const MortgageFireHKSectionSchema =\r\n new MortgageFireHongKongSectionSchema();\r\n","import { SectionTab } from \"./../../../../../base/section-tab.model\";\r\nclass MortgageFireHongKongTabSchema {\r\n tabs!: SectionTab[];\r\n master!: SectionTab;\r\n locations!: SectionTab;\r\n businessInterruption!: SectionTab;\r\n money!: SectionTab;\r\n premiumSummary!: SectionTab;\r\n clausesAndDeductibles!: SectionTab;\r\n\r\n constructor() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.master = new SectionTab(\"Master\", 0);\r\n this.locations = new SectionTab(\"Locations\", 3);\r\n this.businessInterruption = new SectionTab(\"Business Interruption\", 4);\r\n this.money = new SectionTab(\"Money\", 5);\r\n this.premiumSummary = new SectionTab(\"Premium Summary\", 1);\r\n this.clausesAndDeductibles = new SectionTab(\"Clauses and Deductibles\", 2);\r\n\r\n this.tabs = [];\r\n this.tabs.push(this.master);\r\n this.tabs.push(this.locations);\r\n this.tabs.push(this.businessInterruption);\r\n this.tabs.push(this.money);\r\n this.tabs.push(this.premiumSummary);\r\n this.tabs.push(this.clausesAndDeductibles);\r\n }\r\n}\r\n\r\nexport const MortgageFireHKTabSchema = new MortgageFireHongKongTabSchema();\r\n","import { QuestionEntityValidator } from \"./../../../../../base/validator/question-entity.validator\";\r\nimport { Echos } from \"../../../../../base/echos.model\";\r\nimport { QuestionEntity } from \"../../../../../base/question-entity.model\";\r\n//import lodash = require('lodash');\r\nimport { concat } from \"lodash\";\r\nimport { proposalHelper } from \"../../../../../utils/proposal.helper\";\r\nimport { Echo } from \"../../../../../base/echo.model\";\r\nimport { SectionTab } from \"../../../../../base/section-tab.model\";\r\nimport { QuestionTheme } from \"../../../../../../../framework/enum.shared\";\r\n\r\nexport class MortgageFireHongKongQuestionEntityValidator extends QuestionEntityValidator {\r\n constructor(\r\n private questionsSg: QuestionEntity[],\r\n private tabSchemasSg: SectionTab[]\r\n ) {\r\n super(questionsSg, tabSchemasSg);\r\n }\r\n\r\n override validate(callback?: (echosToAdd: Echos) => void) {\r\n let pValidationEchos = super.validate(callback);\r\n\r\n if (pValidationEchos === null) {\r\n pValidationEchos = Array>();\r\n }\r\n\r\n const postalCodeEchoArray: Array> =\r\n Array>();\r\n\r\n //no needed for Hase\r\n // const echoRiskPostalCodeValidation = this.validateRiskPostalCode();\r\n // if (echoRiskPostalCodeValidation) {\r\n // postalCodeEchoArray.push(echoRiskPostalCodeValidation);\r\n // }\r\n\r\n const results = this.convertToEchos(postalCodeEchoArray);\r\n\r\n if (pValidationEchos.length > 0) {\r\n for (let index = 0; index < pValidationEchos.length; index++) {\r\n const value = pValidationEchos[index];\r\n results.forEach((nValue, nIndex) => {\r\n if (nValue.title === value.title) {\r\n pValidationEchos[index].echos = concat(\r\n pValidationEchos[index].echos,\r\n results[nIndex].echos\r\n );\r\n } else {\r\n pValidationEchos.push(nValue);\r\n }\r\n });\r\n }\r\n } else {\r\n pValidationEchos = results;\r\n }\r\n\r\n if (pValidationEchos.length > 0) {\r\n return pValidationEchos;\r\n }\r\n\r\n return Array>();\r\n }\r\n\r\n validateRiskPostalCode = (): Echo | null => {\r\n const insuredPostalCode = this.questionsSg.filter((value) => {\r\n return value.key === \"qs_risk_insuredPostalCode\";\r\n });\r\n\r\n if (insuredPostalCode.length > 0) {\r\n return this.validateProposalPostalCodes(insuredPostalCode[0]);\r\n }\r\n\r\n return null;\r\n };\r\n\r\n validateProposalPostalCodes = (\r\n question: QuestionEntity\r\n ): Echo | null => {\r\n if (question.answer.length === 0) {\r\n return null;\r\n }\r\n\r\n const isValid = this.checkPostalCodeFormat(question.answer);\r\n if (!isValid) {\r\n question.theme = QuestionTheme.Danger;\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Invalid \" + question.displayText + \" Format\",\r\n question\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n checkPostalCodeFormat = (postalCodes: string): boolean => {\r\n const reg = /(^(\\d{6}\\/)*(\\d{6})$)/;\r\n return reg.test(postalCodes);\r\n };\r\n}\r\n","import { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\n\r\nclass MortgageFireHongKongSettings {\r\n wpbProductId = new GUID(\"3840D5AA-7FB6-416A-9E3E-9D346562E648\");\r\n cmbProductId = new GUID(\"AAEA26B4-812F-4FA1-AC43-7177EA129917\");\r\n}\r\n\r\nexport const mortgageFireHongKongSettings: MortgageFireHongKongSettings =\r\n new MortgageFireHongKongSettings();\r\n","import * as MfEnum from \"./../../hong-kong/base/mf-hk-enums\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { mortgageFireHongKongSettings } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/const/mf-hk-const\";\r\n\r\nclass MortgageFireHongKongHelper {\r\n readProductType(productId: GUID) {\r\n switch (productId.toString()) {\r\n case mortgageFireHongKongSettings.wpbProductId.toString():\r\n return MfEnum.MortgageFireHKProduct.HSWPB;\r\n case mortgageFireHongKongSettings.cmbProductId.toString():\r\n return MfEnum.MortgageFireHKProduct.HSCMB;\r\n default:\r\n ExceptionManager.error(\"Unhandled\");\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport const mortgageFireHongKongHelper = new MortgageFireHongKongHelper();\r\n","import * as Enums from \"./../../../../../../framework/enum.shared\";\r\n\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireSingaporeBusinessRulesManager } from \"./mf-sg-business-rules.manager\";\r\nimport { MortgageFireSingaporeFieldValidationManager } from \"./mf-sg-field-validation.manager\";\r\nimport { MortgageFireSingaporeProposal } from \"./mf-sg-proposal\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { pageLifeCycleNotifier } from \"./../../../../notifier/page-life-cycle-notifier\";\r\nimport { questionNotifier } from \"./../../../../notifier/question-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nexport class MortgageFireSingaporeAnswerChangeManager {\r\n answerChangedSubscription: Subscription;\r\n\r\n constructor(\r\n private proposal: MortgageFireSingaporeProposal,\r\n private fieldValidationManager: MortgageFireSingaporeFieldValidationManager,\r\n private businessRulesManager: MortgageFireSingaporeBusinessRulesManager\r\n ) {\r\n this.answerChangedSubscription =\r\n questionNotifier.answer_change_notifier$.subscribe(this.answerChanged);\r\n\r\n pageLifeCycleNotifier.page_unload_notifier$.subscribe((event: any) => {\r\n this.destroy();\r\n });\r\n }\r\n\r\n private answerChanged = (event: KeyValue) => {\r\n const questionName = event.key;\r\n const questionEntity = event.value;\r\n };\r\n\r\n public destroy() {\r\n this.answerChangedSubscription.unsubscribe();\r\n }\r\n}\r\n","import * as EnumSG from \"./mf-sg-enums\";\r\nimport * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../../../../base/echo.model\";\r\nimport { Echos } from \"./../../../../base/echos.model\";\r\nimport { Global } from \"./../../../../../../shared/global\";\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireSGTabSchema } from \"./schemas/mf-sg-tab-schema\";\r\nimport { MortgageFireSingaporeBusinessRuleSchema } from \"./schemas/mf-sg-business-rule-schema\";\r\nimport { MortgageFireSingaporeProposal } from \"./mf-sg-proposal\";\r\nimport { ProductID } from \"./../../../../../../framework/const.shared\";\r\nimport { ProposalStatus } from \"./../../../../../../framework/enum.shared\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { Rule } from \"./../../../../base/rule.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { instanceFactory } from \"../../../../../../framework/utils/instance-factory\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\nimport * as Interface from \"./../../../../../../framework/interface.shared\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\nexport class MortgageFireSingaporeBusinessRulesManager {\r\n echos!: Echos[];\r\n ruleSchema: MortgageFireSingaporeBusinessRuleSchema;\r\n underwriterMessages: Rule[];\r\n isIBGProduct: boolean = false;\r\n constructor(\r\n private proposal: MortgageFireSingaporeProposal,\r\n public identityRolesService: IdentityRolesService\r\n ) {\r\n this.ruleSchema = new MortgageFireSingaporeBusinessRuleSchema(\r\n this.proposal\r\n );\r\n this.underwriterMessages = [];\r\n this.isIBGProduct =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ? true\r\n : false;\r\n this.validate(); //to do\r\n }\r\n\r\n /** Method for validate proposal mandatory questions */\r\n validate(): Echos[] {\r\n this.echos = [];\r\n\r\n switch (this.proposal.proposalStatus) {\r\n case ProposalStatus.Incomplete:\r\n case ProposalStatus.PendingChecker:\r\n if (!this.proposal.isUnderwriter) {\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateManualReferral(); */\r\n /** this.validateChangeOfSIEndorsement(); */\r\n /** this.validateChangeOfAddressEndorsement(); */\r\n /** this.validateCancellation(); */\r\n this.validatePOIBackDated();\r\n this.validateCancellationBackdating();\r\n this.validateLoanRedemptionBackdating();\r\n this.validateManualUnderwritting();\r\n } else if (\r\n this.proposal.isUnderwriter &&\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement))\r\n ) {\r\n this.proposal.referralMessageRequires = true;\r\n this.validateIBGSI();\r\n } else {\r\n this.proposal.referralMessageRequires = false;\r\n }\r\n break;\r\n case ProposalStatus.Referred:\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateManualReferral(); */\r\n /** this.validateChangeOfSIEndorsement(); */\r\n /** this.validateChangeOfAddressEndorsement(); */\r\n /** this.validateCancellation(); */\r\n this.validatePOIBackDated();\r\n this.validateCancellationBackdating();\r\n this.validateLoanRedemptionBackdating();\r\n this.validateIBGSI();\r\n this.validateManualUnderwritting();\r\n break;\r\n case ProposalStatus.Accepted:\r\n this.proposal.referralMessageRequires = true;\r\n /** this.validateIsPreviousYearLoanRedeemed(); */\r\n /** [checked with kevin and got feedback no need to show two warning message and to remove the loan redemption warning message] */\r\n this.validateIsRenewalYearPendingCheckerValidationMessage();\r\n break;\r\n case ProposalStatus.Renewed:\r\n this.proposal.referralMessageRequires = true;\r\n this.validateIsPreviousYearPendingCheckerValidationMessage();\r\n break;\r\n default:\r\n this.proposal.referralMessageRequires = false;\r\n // do nothing\r\n }\r\n if (this.isIBGProduct) {\r\n this.SetIBGReferredToUnderwriterReferRule();\r\n }\r\n\r\n return this.echos;\r\n }\r\n\r\n /** This rule is no longer required. Just holding for Future Use */\r\n // validateChangeOfSIEndorsement() {\r\n // const rule = this.ruleSchema.changeOfSIEndorsementType;\r\n // if (this.proposal.endorsementType === Enums.EndorsementType.ChangeOfSumInsured) {\r\n // this.add(rule);\r\n // } else {\r\n // this.remove(rule);\r\n // }\r\n // }\r\n\r\n SetIBGReferredToUnderwriterReferRule() {\r\n switch (this.proposal.proposalStatus) {\r\n case ProposalStatus.Incomplete:\r\n if (\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter\r\n ) {\r\n this.proposal.referralMessageRequires = true;\r\n this.validatePOIBackDated();\r\n this.validateCancellationBackdating();\r\n this.validateManualUnderwritting();\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n this.validateIBGSI();\r\n this.validateIBGMACSI();\r\n }\r\n this.validateOperationUnderwriterCancellationAdj(true);\r\n }\r\n break;\r\n case ProposalStatus.Referred:\r\n this.validateIBGMACSI();\r\n this.validateOperationUnderwriterCancellationAdj(true);\r\n this.validateOperationUnderwriterMakeRedundant();\r\n break;\r\n }\r\n }\r\n\r\n validateChangeOfAddressEndorsement() {\r\n const rule = this.ruleSchema.changeOfdAddressEndorsementType;\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validateCancellation() {\r\n const rule = this.ruleSchema.cancellationRefer;\r\n if (\r\n this.proposal.transType === Enums.TransType.CAN &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE)\r\n ) {\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n const policyStartDate = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.answer\r\n );\r\n /** const diffDates = Math.abs(cancellationEffectiveDate.getTime() - policyStartDate.getTime()); */\r\n /** const diffDaysOfPolicy = Math.floor(diffDates / (1000 * 3600 * 24)); */\r\n const timeDiff = Math.abs(\r\n policyStartDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n if (diffDays > 30) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validateLoanRedemptionBackdating() {\r\n const rule = this.ruleSchema.loanRedemptionReferBackdated;\r\n if (\r\n this.proposal.endorsementType === Enums.EndorsementType.LoanRedemption\r\n ) {\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n const timeDiff = Math.abs(\r\n cancellationEffectiveDate.getTime() - currentDate.getTime()\r\n );\r\n const diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n if (cancellationEffectiveDate >= startDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedLoanRedemption) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n //DBSEP-2136\r\n validateOperationUnderwriterCancellationAdj(flag: boolean) {\r\n const rule = this.ruleSchema.cancellationRefer;\r\n if (flag) {\r\n if (this.proposal.IsCancellationAdjustment) {\r\n this.add(rule);\r\n }\r\n } else {\r\n this.add(rule);\r\n }\r\n }\r\n\r\n validateOperationUnderwriterMakeRedundant() {\r\n const rule = this.ruleSchema.makeRedundantRefer;\r\n if (this.proposal.transType === Enums.TransType.REN && this.isIBGProduct) {\r\n if (\r\n this.proposal.endorsementType === Enums.EndorsementType.MakeRedundant\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n validateCancellationBackdating() {\r\n let rule = this.ruleSchema.cancellationReferBackdated;\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date();\r\n const cancellationEffectiveDate = new Date(\r\n this.proposal.qsMaster.qs_master_effectiveDate!.answer\r\n );\r\n var timeDiff = Math.abs(\r\n cancellationEffectiveDate.getTime() - currentDate.getTime()\r\n );\r\n var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));\r\n var isCBG =\r\n this.proposal.transType === Enums.TransType.CAN &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE);\r\n\r\n var isIBG =\r\n (this.proposal.transType === Enums.TransType.CAN ||\r\n this.proposal.transType === Enums.TransType.END) &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC) &&\r\n this.proposal.isUnderwriter;\r\n if (isIBG) {\r\n switch (this.proposal.transType) {\r\n case Enums.TransType.END:\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption\r\n ) {\r\n rule = this.ruleSchema.backDatedLoanRedemption;\r\n } else {\r\n rule = this.ruleSchema.backDatedPOI;\r\n }\r\n break;\r\n case Enums.TransType.CAN:\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.LoanRedemption\r\n ) {\r\n rule = this.ruleSchema.backDatedLoanRedemption;\r\n }\r\n break;\r\n }\r\n if (cancellationEffectiveDate < currentDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n if (isCBG) {\r\n if (cancellationEffectiveDate >= startDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n if (\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress\r\n ) {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n validateManualReferral() {\r\n const rule = this.ruleSchema.manualRefer;\r\n if (\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.Yes\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validateIBGSI() {\r\n if (this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF) {\r\n const rule = this.ruleSchema.ibgSI;\r\n if (\r\n this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN\r\n ) {\r\n if (\r\n this.proposal.qsMaster.qs_fire_replacement!.readAnswerAsNumeric()! >=\r\n environment.si_limit_referral\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateIBGMACSI() {\r\n var isIBGCondition =\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC &&\r\n (this.proposal.transType === Enums.TransType.NEW ||\r\n (this.proposal.transType === Enums.TransType.END &&\r\n this.proposal.endorsementType ===\r\n Enums.EndorsementType.GeneralEndorsement) ||\r\n this.proposal.transType === Enums.TransType.REN);\r\n if (isIBGCondition) {\r\n var answer;\r\n if (\r\n this.proposal.qsMaster.qs_machinery_equipment!.answer != null &&\r\n this.proposal.qsMaster.qs_machinery_equipment!.answer != \"\"\r\n ) {\r\n answer = JSON.parse(\r\n this.proposal.qsMaster.qs_machinery_equipment!.answer\r\n );\r\n }\r\n var sumInsured = 0;\r\n if (answer != null) {\r\n if (answer.length > 0) {\r\n answer.forEach((element: { sumInsured: number }) => {\r\n sumInsured = sumInsured + element.sumInsured;\r\n });\r\n const rule = this.ruleSchema.ibgMACSI;\r\n if (sumInsured >= environment.si_limit_referral) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Cater for reinstatement loan redeemed scenario (message popup) for year 1\r\n validateIsPreviousYearLoanRedeemed() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE)\r\n ) {\r\n const rule = this.ruleSchema.loanRedemptionReinstatementMessage;\r\n if (\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"] === \"true\" ||\r\n this.proposal.auxiliary[\"IsLoanRedeemedValidationMessage\"] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n // Cater for year 2 pending checker message when there is pending checker transaction in year 1\r\n validateIsRenewalYearPendingCheckerValidationMessage() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsRenewalYearPendingCheckerValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE)\r\n ) {\r\n const rule = this.ruleSchema.renewalYearPendingCheckerMessage;\r\n if (\r\n this.proposal.auxiliary[\r\n \"IsRenewalYearPendingCheckerValidationMessage\"\r\n ] === \"true\" ||\r\n this.proposal.auxiliary[\r\n \"IsRenewalYearPendingCheckerValidationMessage\"\r\n ] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n // Cater for year 1 pending checker message when there is pending checker transaction in year 2\r\n validateIsPreviousYearPendingCheckerValidationMessage() {\r\n if (\r\n Global.isDefined(\r\n this.proposal.auxiliary[\"IsPreviousYearPendingCheckerValidationMessage\"]\r\n ) &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE)\r\n ) {\r\n const rule = this.ruleSchema.previousYearPendingCheckerMessage;\r\n if (\r\n this.proposal.auxiliary[\r\n \"IsPreviousYearPendingCheckerValidationMessage\"\r\n ] === \"true\" ||\r\n this.proposal.auxiliary[\r\n \"IsPreviousYearPendingCheckerValidationMessage\"\r\n ] === true\r\n ) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n }\r\n }\r\n\r\n validateManualUnderwritting() {\r\n const rule = this.ruleSchema.manualUnderwritingRefer;\r\n var isCBG =\r\n !this.isIBGProduct &&\r\n (this.proposal.qsMaster.qs_master_manualUnderwritting!.answer === true ||\r\n this.proposal.qsMaster.qs_master_manualUnderwritting!.answer ===\r\n \"True\") &&\r\n (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Referred ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.PendingChecker);\r\n\r\n var isIBG =\r\n this.isIBGProduct &&\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Referred);\r\n\r\n if (isCBG || isIBG) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n if (\r\n (this.identityRolesService.IsCbsOps ||\r\n this.identityRolesService.IsCSCBGSG) &&\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.remove(rule);\r\n }\r\n\r\n var isCBGOpsuser =\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE);\r\n if (isCBGOpsuser) {\r\n this.remove(rule);\r\n }\r\n }\r\n\r\n validatePOIBackDated() {\r\n const rule = this.ruleSchema.backDatedPOI;\r\n const startDateOfPOI = new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n );\r\n const startDate = new Date(\r\n new Date(\r\n this.proposal.qsMaster.qs_master_poi_startDate!.readAnswerAsString()!\r\n ).setHours(0, 0, 0, 0)\r\n );\r\n const currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const timeDiff = Math.abs(startDateOfPOI.getTime() - currentDate.getTime());\r\n const diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\r\n var isCBGOpsuser =\r\n this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete &&\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE);\r\n if (isCBGOpsuser) {\r\n this.remove(rule);\r\n return;\r\n }\r\n\r\n switch (this.proposal.transType) {\r\n case Enums.TransType.NEW:\r\n if (startDate < currentDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n break;\r\n case Enums.TransType.END:\r\n if (\r\n this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPOI &&\r\n startDate < currentDate\r\n ) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n break;\r\n case Enums.TransType.REN:\r\n if (this.isIBGProduct && startDate < currentDate) {\r\n if (diffDays > EnumSG.BackdatedRules.MaximumAllowedBackdate) {\r\n this.add(rule);\r\n } else {\r\n this.remove(rule);\r\n }\r\n } else {\r\n this.remove(rule);\r\n }\r\n break;\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n }\r\n\r\n private add(message: Rule) {\r\n this.pushUnderwriterMessage(message);\r\n this.pushEchos(message);\r\n }\r\n\r\n private remove(message: Rule) {\r\n this.removeUnderwriterMessage(message);\r\n this.removeEchos(message);\r\n }\r\n\r\n private pushUnderwriterMessage(message: Rule) {\r\n const found = lodash.find(\r\n this.underwriterMessages,\r\n (um: Rule) => {\r\n return um.id === message.id;\r\n }\r\n );\r\n\r\n if (common.isUndefinedOrNull(found)) {\r\n this.underwriterMessages.push(message);\r\n }\r\n }\r\n\r\n private removeUnderwriterMessage(message: Rule) {\r\n lodash.remove(\r\n this.underwriterMessages,\r\n (um: Rule) => {\r\n return um.id === message.id;\r\n }\r\n );\r\n }\r\n\r\n private pushEchos(message: Rule) {\r\n let echosFound = lodash.find(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n\r\n if (common.isUndefinedOrNull(echosFound)) {\r\n echosFound = new Echos(\"\", []);\r\n echosFound.info = message.entity!.tabId;\r\n proposalHelper.convertTitleToTabIntoEchos(\r\n echosFound,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n this.echos.push(echosFound);\r\n }\r\n\r\n const echoFound = lodash.find(\r\n echosFound!.echos,\r\n (e: Echo) => {\r\n return e.key === message.id;\r\n }\r\n );\r\n\r\n if (common.isUndefinedOrNull(echoFound)) {\r\n const echo = new Echo(message.message);\r\n echo.key = message.id;\r\n echo.entity = message.entity;\r\n echo.info = message.entity!.tabId;\r\n echo.title = message.entity!.key;\r\n echosFound!.echos.push(echo);\r\n }\r\n }\r\n\r\n private removeEchos(message: Rule) {\r\n const echosFound = lodash.find(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n\r\n if (common.isDefined(echosFound)) {\r\n lodash.remove(echosFound!.echos, (e: Echo) => {\r\n return e.key === message.id;\r\n });\r\n\r\n // section remove if no child available\r\n if (echosFound!.echos.length === 0) {\r\n lodash.remove(this.echos, (e: Echos) => {\r\n const tabId = parseInt(e.info, 10);\r\n return message.entity!.tabId === tabId;\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","export enum MortgageFireSgProduct {\r\n HDB,\r\n PTE,\r\n MIP,\r\n IBGMF,\r\n IBGMAC,\r\n CTHDB,\r\n CTMFPTE,\r\n CTMFCONDO,\r\n HSWPB,\r\n HSCMB,\r\n}\r\n\r\nexport enum ProductBase {\r\n DBS = \"DBS\",\r\n Citi = \"Citi\",\r\n HASE = \"HASE\",\r\n}\r\n\r\nexport enum ClientType {\r\n Person = 1,\r\n Organization = 2,\r\n Others = 3,\r\n}\r\n\r\nexport enum ClientErrorType {\r\n NRICError = 1,\r\n PassportNumberError = 2,\r\n BusinessRegistrationNumberError = 3,\r\n MandatoryError = 4,\r\n EmailAddressError = 5,\r\n PhoneNumberError = 6,\r\n NameAndNricError = 7,\r\n}\r\n\r\nexport enum BackdatedRules {\r\n MaximumAllowedBackdate = 7,\r\n MaximumAllowedLoanRedemption = 14,\r\n}\r\n","import * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../../../../base/echo.model\";\r\nimport * as EnumSG from \"./../base/mf-sg-enums\";\r\nimport { Echos } from \"./../../../../base/echos.model\";\r\nimport { ICoverage } from \"./../../../../../../framework/interface.product\";\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { MortgageFireSGTabSchema } from \"./schemas/mf-sg-tab-schema\";\r\nimport { MortgageFireSingaporeBusinessRuleSchema } from \"./schemas/mf-sg-business-rule-schema\";\r\nimport { MortgageFireSingaporeProposal } from \"./mf-sg-proposal\";\r\nimport { MortgageFireSingaporeQuestionEntityValidator } from \"./validator/mf-sg-question-entity.validator\";\r\nimport { Premium } from \"./../../../../base/premium.model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\n\r\nexport class MortgageFireSingaporeFieldValidationManager {\r\n echos!: Echos[];\r\n ruleSchema: MortgageFireSingaporeBusinessRuleSchema;\r\n underwriterMessages!: MortgageFireSingaporeBusinessRuleSchema[];\r\n\r\n constructor(private proposal: MortgageFireSingaporeProposal) {\r\n this.ruleSchema = new MortgageFireSingaporeBusinessRuleSchema(\r\n this.proposal\r\n );\r\n this.initializeMandatoryFields();\r\n // this.initializeVisibilityFields();\r\n }\r\n\r\n /** Method for setting up all questions [required] flag\r\n * This is the function we should call upon proposal page load to initialize custom mandatory fields\r\n */\r\n initializeMandatoryFields() {\r\n this.setManualReferralReasonRequires();\r\n this.setNoOfFreeInsuranceYearsRequires();\r\n }\r\n\r\n /** Method for setting up all questions [visibility] flag\r\n * This is the function we should call upon proposal page load to initialize custom mandatory fields\r\n */\r\n initializeVisibilityFields() {\r\n this.showReplacingPolicyNumberOnRenew();\r\n }\r\n\r\n setManualReferralReasonRequires() {\r\n this.proposal.qsMaster.qs_master_masterPolicyNumber!.required = true;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.required =\r\n false;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.isVisible =\r\n false;\r\n if (\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.Yes\r\n ) {\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.required =\r\n true;\r\n this.proposal.qsPremiumSummary.qs_master_manualReferralReason.isVisible =\r\n true;\r\n }\r\n }\r\n setEmailMobileRequires(data: string, isIBGProduct: any) {\r\n if (data === \"2\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n true;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n } else if (data === \"1\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n true;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n } else if (data === \"5\") {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n true;\r\n }\r\n\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n } else {\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo.required =\r\n false;\r\n }\r\n if (\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress !=\r\n undefined\r\n ) {\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_CorrAddress.required =\r\n false;\r\n }\r\n }\r\n }\r\n setNoOfFreeInsuranceYearsRequires() {\r\n switch (this.proposal.productType) {\r\n case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.required = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.minValue = 0;\r\n if (\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.Yes\r\n ) {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.required = true;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible = true;\r\n\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer =\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer === 0\r\n ? 1\r\n : this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.minValue = 1;\r\n }\r\n break;\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n //this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer = this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer;\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isVisible = false;\r\n // this.proposal.qsMaster.qs_master_FreeIns_startDate.isVisible = false;\r\n // if(Number(this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer)>0)\r\n // {\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.readOnly = true;\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isVisible = true;\r\n // this.proposal.qsMaster.qs_master_FreeIns_startDate.isVisible = true;\r\n\r\n // this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer = this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.answer;\r\n // }\r\n break;\r\n }\r\n /** INC1590772 - Set answer to Zero for qs_fire_freeInsuranceNoYear if qs_fire_freeInsuranceFirstYear is No */\r\n if (\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.readAnswerAsNumeric() ===\r\n Enums.TrueFalseQuestionAnswer.No\r\n ) {\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.required = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.isVisible = false;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.answer = 0;\r\n this.proposal.qsMaster.qs_fire_freeInsuranceNoYear!.minValue = 0;\r\n }\r\n /** INC1651796 - Disable the controls during endorsement for IBG */\r\n this.proposal.qsMaster.qs_fire_freeInsuranceFirstYear!.isDisabled =\r\n this.proposal.transType === Enums.TransType.NEW ? false : true;\r\n ////DBSEP-252 : Allow Edit Free Year For IBG Product\r\n ///this.proposal.qsMaster.qs_fire_freeInsuranceNoYear.isDisabled = (this.proposal.transType === Enums.TransType.NEW) ? false : true;\r\n }\r\n\r\n showReplacingPolicyNumberOnRenew = () => {\r\n this.proposal.qsMaster.qs_master_replacePolicyNo!.isVisible =\r\n this.proposal.transType === Enums.TransType.REN ? true : false;\r\n };\r\n\r\n /** Method for validate proposal mandatory questions */\r\n validate(): Echos[] {\r\n this.echos = [];\r\n\r\n const questions = this.proposal.extractQuestionArray();\r\n const pValidator = new MortgageFireSingaporeQuestionEntityValidator(\r\n questions,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n const pValidationEchos = pValidator.validate();\r\n this.echos = pValidationEchos;\r\n\r\n if (\r\n common.isDefined(this.proposal.children) &&\r\n this.proposal.children.length > 0\r\n ) {\r\n this.proposal.children.forEach((location) => {\r\n const locQuestions = location.extractQuestionArray();\r\n const locValidator = new MortgageFireSingaporeQuestionEntityValidator(\r\n locQuestions,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n const locValidationEchos = locValidator.validate();\r\n this.echos = lodash.concat(this.echos, locValidationEchos);\r\n });\r\n }\r\n\r\n // TODO: implement custom validations if any\r\n\r\n return this.echos;\r\n }\r\n\r\n /** Method for validate proposal mandatory questions [Client Name] [Client No] for Save */\r\n validateSave(): Echos[] {\r\n this.echos = [];\r\n\r\n let questions = this.proposal.extractQuestionArray();\r\n questions = questions.filter(function (q) {\r\n return (\r\n q.key === \"qs_master_insuredName\" || q.key === \"qs_master_insuredNo\"\r\n );\r\n });\r\n const pValidator = new MortgageFireSingaporeQuestionEntityValidator(\r\n questions,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n const pValidationEchos = pValidator.validate();\r\n this.echos = pValidationEchos;\r\n\r\n if (\r\n common.isDefined(this.proposal.children) &&\r\n this.proposal.children.length > 0\r\n ) {\r\n this.proposal.children.forEach((location) => {\r\n const locQuestions = location.extractQuestionArray();\r\n const locValidator = new MortgageFireSingaporeQuestionEntityValidator(\r\n locQuestions,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n const locValidationEchos = locValidator.validate();\r\n this.echos = lodash.concat(this.echos, locValidationEchos);\r\n });\r\n }\r\n\r\n return this.echos;\r\n }\r\n validateDeliverMethod(): Echos[] {\r\n const questions = this.proposal\r\n .extractQuestionArray()\r\n .filter(\r\n (x) =>\r\n x.key === \"qs_master_preferredDeliveryMethod_MobileNo\" ||\r\n x.key === \"qs_master_preferredDeliveryMethod_Email\" ||\r\n x.key === \"qs_master_preferredDeliveryMethod_CorrAddress\"\r\n );\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n const requiredCount = questions.filter((x) => x.required).length;\r\n if (requiredCount >= 1) {\r\n var q = questions.filter(\r\n (x) => x.key === \"qs_master_preferredDeliveryMethod_MobileNo\"\r\n )[0];\r\n const mobileAnswer = q.readAnswerAsString();\r\n if (!common.isDefined(mobileAnswer) && q.required) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else if (common.isDefined(mobileAnswer) && q.required) {\r\n if (!proposalHelper.phoneValidation(mobileAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n } else if (\r\n common.isDefined(mobileAnswer) &&\r\n !q.required &&\r\n mobileAnswer !== null &&\r\n mobileAnswer !== \"\"\r\n ) {\r\n if (!proposalHelper.phoneValidation(mobileAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Mobile Number is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n }\r\n q = questions.filter(\r\n (x) => x.key === \"qs_master_preferredDeliveryMethod_Email\"\r\n )[0];\r\n const emailAnswer = q.readAnswerAsString();\r\n if (!common.isDefined(emailAnswer) && q.required) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\"Email Id is not correct.\", q)\r\n );\r\n } else if (common.isDefined(emailAnswer) && q.required) {\r\n if (!proposalHelper.emailValidation(emailAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Email Id is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n } else if (\r\n common.isDefined(emailAnswer) &&\r\n !q.required &&\r\n emailAnswer !== null &&\r\n emailAnswer !== \"\"\r\n ) {\r\n if (!proposalHelper.emailValidation(emailAnswer!)) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Email Id is not correct.\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n }\r\n }\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n }\r\n\r\n /** Method for validate atleast one of the equipment SI must be greater than zero */\r\n validateEquipmentsSI(): Echos[] {\r\n let totalSI = 0;\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_machinery_equipment\":\r\n const answer = q.readAnswerAsString();\r\n let equipmentAnswer: any[] = [];\r\n if (common.isDefined(answer) && answer !== null && answer !== \"\") {\r\n equipmentAnswer = JSON.parse(answer!);\r\n if (equipmentAnswer.length > 0) {\r\n equipmentAnswer.forEach((ep) => {\r\n totalSI = totalSI + ep.sumInsured;\r\n });\r\n }\r\n }\r\n if (totalSI <= 0) {\r\n q.theme = Enums.QuestionTheme.Danger;\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Sum Insured of the Equipments must be greater than Zero\",\r\n q\r\n )\r\n );\r\n } else {\r\n questions[0].theme = Enums.QuestionTheme.Normal;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n }\r\n validateCBGTotalChargeAgainstGrossAndGST = (): Echos[] => {\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n const premiumData = this.proposal.auxiliary[\"qt\"];\r\n const proposalTransType = this.proposal.transType;\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_master_brokerCommission\":\r\n if (premiumData.length > 0) {\r\n const counter = [];\r\n if (common.isDefined(premiumData[0].premiumSummary)) {\r\n if (\r\n (Math.sign(premiumData[0].premiumSummary.premium) >= 0 &&\r\n Math.sign(premiumData[0].premiumSummary.premiumTax) >= 0) ||\r\n (Math.sign(premiumData[0].premiumSummary.premium) <= 0 &&\r\n Math.sign(premiumData[0].premiumSummary.premiumTax) <= 0)\r\n ) {\r\n if (\r\n //todo\r\n true\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n ) {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n }\r\n //todo\r\n // if ($(\"#cbg_fireGST\").siblings().hasClass(\"chubbLightRed_bg\")) {\r\n // $(\"#cbg_fireGST\").siblings().removeClass(\"chubbLightRed_bg\");\r\n // }\r\n } else {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // $(\"#cbg_fireGST\").siblings().addClass(\"chubbLightRed_bg\");\r\n const str =\r\n \"The Gross Premium or GST is incorrect for Property Fire\";\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferral\":\r\n if (premiumData.length > 0) {\r\n if (common.isDefined(premiumData[0].premiumSummary)) {\r\n const coverage = premiumData[0].premiumSummary;\r\n if (\r\n coverage.premium < 0 &&\r\n Math.abs(coverage.premium) > coverage.accumulatedBasePremium\r\n ) {\r\n //todo\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n const str =\r\n \"The Gross Premium cannot be refunded more than accumulated Base Premium $\" +\r\n coverage.accumulatedBasePremium;\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n } else {\r\n if (\r\n //todo\r\n true\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n ) {\r\n // $(\"#cbg_fireGrossPremium\")\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n }\r\n }\r\n\r\n if (\r\n coverage.premiumTax < 0 &&\r\n Math.abs(coverage.premiumTax) > coverage.accumulatedPremiumGst\r\n ) {\r\n //$(\"#cbg_fireGST\").siblings().addClass(\"chubbLightRed_bg\");//todo\r\n const str =\r\n \"The GST cannot be refunded more than accumulated Premium GST $\" +\r\n coverage.accumulatedPremiumGst;\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n } else {\r\n //todo\r\n // if ($(\"#cbg_fireGST\").siblings().hasClass(\"chubbLightRed_bg\")) {\r\n // $(\"#cbg_fireGST\").siblings().removeClass(\"chubbLightRed_bg\");\r\n // }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferralReason\":\r\n if (\r\n premiumData.length > 0 &&\r\n proposalTransType === Enums.TransType.NEW\r\n ) {\r\n if (premiumData[0].premiumSummary.premium <= 0) {\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Gross Premium must be greater than $0.\",\r\n q\r\n )\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n };\r\n /** Method for validate the total Charge cannot be less than sum of Gross Premium and GST */\r\n validateTotalChargeAgainstGrossAndGST = (): Echos[] => {\r\n const totalSI = 0;\r\n const questions = this.proposal.extractQuestionArray();\r\n const echos: Echo[] = [];\r\n const results: Echos[] = [];\r\n var t = this.proposal.auxiliary[\"qt\"];\r\n const premiumData = t;\r\n const proposalTransType = this.proposal.transType;\r\n questions.forEach(function (q) {\r\n switch (q.key) {\r\n case \"qs_master_brokerCommission\":\r\n if (premiumData.length > 0) {\r\n const counter: ICoverage[] = [];\r\n premiumData[0].coverages.forEach(\r\n (coverage: {\r\n premiumDetails: { premium: number; premiumTax: number };\r\n coverageProductMappingId: string;\r\n coverageName: ICoverage;\r\n }) => {\r\n if (\r\n (Math.sign(coverage.premiumDetails.premium) >= 0 &&\r\n Math.sign(coverage.premiumDetails.premiumTax) >= 0) ||\r\n (Math.sign(coverage.premiumDetails.premium) <= 0 &&\r\n Math.sign(coverage.premiumDetails.premiumTax) <= 0)\r\n ) {\r\n //todo\r\n // if (\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n // ) {\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n // }\r\n // if (\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .hasClass(\"chubbLightRed_bg\")\r\n // ) {\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .removeClass(\"chubbLightRed_bg\");\r\n // }\r\n // } else {\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // $(\"#premiumTax_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n // counter.push(coverage.coverageName);\r\n }\r\n }\r\n );\r\n if (counter.length > 0) {\r\n let str = \"The Gross Premium or GST is incorrect for \";\r\n for (let i = 0; i < counter.length; i++) {\r\n str = str + \"\\n\" + counter[i] + \" , \";\r\n }\r\n str = str.slice(0, -3);\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferral\":\r\n if (premiumData.length > 0) {\r\n const counter: ICoverage[] = [];\r\n premiumData[0].coverages.forEach((coverage: ICoverage) => {\r\n if (\r\n coverage.premiumDetails!.premium < 0 &&\r\n Math.abs(coverage.premiumDetails!.premium) >\r\n coverage.premiumDetails!.accumulatedBasePremium!\r\n ) {\r\n //todo\r\n // $(\"#premium_\" + coverage.coverageProductMappingId)\r\n // .siblings()\r\n // .addClass(\"chubbLightRed_bg\");\r\n counter.push(coverage);\r\n }\r\n });\r\n if (counter.length > 0) {\r\n let str =\r\n \"The Gross Premium cannot be refunded more than accumulated Base Premium of \";\r\n for (let i = 0; i < counter.length; i++) {\r\n str =\r\n str +\r\n \"\\n$\" +\r\n counter[i].premiumDetails!.accumulatedBasePremium +\r\n \" for \" +\r\n counter[i].coverageName +\r\n \" , \";\r\n }\r\n str = str.slice(0, -3);\r\n echos.push(proposalHelper.buildQuestionEntityEcho(str, q));\r\n }\r\n }\r\n break;\r\n\r\n case \"qs_master_manualReferralReason\":\r\n if (\r\n premiumData.length > 0 &&\r\n proposalTransType === Enums.TransType.NEW\r\n ) {\r\n const counter = [];\r\n if (premiumData[0].premiumSummary.premium <= 0) {\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"The total Gross Premium must be greater than $0.\",\r\n q\r\n )\r\n );\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n const resultEchos = proposalHelper.convertToEchos(echos);\r\n resultEchos.forEach((e) => {\r\n const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(\r\n e,\r\n MortgageFireSGTabSchema.tabs\r\n );\r\n results.push(echosToAdd);\r\n });\r\n\r\n if (this.echos.length > 0) {\r\n if (results.length > 0) {\r\n this.echos[0].echos.push(results[0].echos[0]);\r\n }\r\n } else {\r\n this.echos = results;\r\n }\r\n return this.echos;\r\n };\r\n\r\n /*2022-08-29 dagoh0: APACDM-363 - validate previous selected Plan Type against new selected Plan Type*/\r\n //validateCBGSelectedPlanType = (previousPlanType: string): Echos[] => {\r\n // const results: Echos[] = [];\r\n // const echos: Echo[] = [];\r\n //\r\n //\r\n // const isCBGProduct = (this.proposal.productType !== EnumSG.MortgageFireSgProduct.IBGMF &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.IBGMAC &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTHDB &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFCONDO &&\r\n // this.proposal.productType !== EnumSG.MortgageFireSgProduct.CTMFPTE);\r\n //\r\n // const questions = this.proposal.extractQuestionArray();\r\n // if (isCBGProduct){\r\n //\r\n // const q = questions.filter(x=>x.key==='qs_master_planType')[0];\r\n // let planTypeAnswer = q.readAnswerAsString();\r\n //\r\n // if (planTypeAnswer === previousPlanType)\r\n // {\r\n // console.log(planTypeAnswer + '::' + previousPlanType)\r\n // echos.push(proposalHelper.\r\n // buildQuestionEntityEcho('Endorsing Plan Type that are same as existing policy\\'s plan type are not allowed.', q));\r\n // }\r\n // }\r\n //\r\n //\r\n // const resultEchos = proposalHelper.convertToEchos(echos);\r\n // resultEchos.forEach(e => {\r\n // const echosToAdd = proposalHelper.convertTitleToTabIntoEchos(e, MortgageFireSGTabSchema.tabs);\r\n // results.push(echosToAdd);\r\n // });\r\n //\r\n // if (this.echos.length > 0) {\r\n // if (results.length > 0) {\r\n // this.echos[0].echos.push(results[0].echos[0]);\r\n // }\r\n // } else {\r\n // this.echos = results;\r\n // }\r\n // return this.echos;\r\n //}\r\n}\r\n","export class ProposalConst {\r\n public static readonly noAnswerDefaultText: string = 'Unknown';\r\n}\r\n","import * as MfEnum from \"./../../singapore/base/mf-sg-enums\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { KeyValue } from \"./../../../../../../framework/domain-entity/key-value\";\r\nimport { Proposal } from \"../../../../base/proposal.model\";\r\nimport { ProposalEntity } from \"./../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { mortgageFireSingaporeHelper } from \"./../utils/mf-sg-helper\";\r\nimport { IdentityRolesService } from \"../../../../../../services/identity-roles.service\";\r\n\r\n/** Empty dummy class. No actual implementation\r\n * This class was created just to fullfil multi location structure,\r\n * but actually mortgage fire Singapore is single location\r\n */\r\nexport class MortgageFireSingaporeProposalLocation extends Proposal {\r\n constructor(\r\n productId: GUID,\r\n public override identityRolesService: IdentityRolesService\r\n ) {\r\n super(productId, identityRolesService);\r\n\r\n this.initialize();\r\n }\r\n\r\n initialize() {}\r\n\r\n refreshQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n }\r\n\r\n refreshPremiumSummary(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n }\r\n\r\n refreshQuestionsReadOnly(proposalEntity: ProposalEntity) {\r\n // do nothing\r\n }\r\n\r\n extractQuestionArray(): QuestionEntity[] {\r\n const questions: QuestionEntity[] = [];\r\n return questions;\r\n }\r\n}\r\n","import * as EnumSG from \"./mf-sg-enums\";\r\nimport * as Enums from \"./../../../../../../framework/enum.shared\";\r\nimport * as MfEnum from \"./../../singapore/base/mf-sg-enums\";\r\n\r\nimport {\r\n ProductID,\r\n UserRoles,\r\n} from \"./../../../../../../framework/const.shared\";\r\nimport { TransType, UserType } from \"./../../../../../../framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { Global } from \"../../../../../../shared/global\";\r\nimport { Identity } from \"../../../../../../shared/user/identity\";\r\nimport { MortgageFireSingaporeClientCreateQuestionSection } from \"./questions/mf-sg-client-create-question-section\";\r\nimport { MortgageFireSingaporeMasterQuestionSection } from \"./questions/mf-sg-master-question-section\";\r\nimport { MortgageFireSingaporePremiumSummaryQuestionSection } from \"./questions/mf-sg-premium-summary-question-section\";\r\nimport { MortgageFireSingaporeProposalLocation } from \"./mf-sg-proposal-location\";\r\nimport { Proposal } from \"../../../../base/proposal.model\";\r\nimport { ProposalEntity } from \"./../../../../base/proposal-entity.model\";\r\nimport { ProposalPackage } from \"./../../../../base/proposal-package-model\";\r\nimport { QuestionEntity } from \"./../../../../base/question-entity.model\";\r\nimport { common } from \"./../../../../../../framework/utils/common\";\r\nimport { mortgageFireSingaporeHelper } from \"./../utils/mf-sg-helper\";\r\nimport { proposalEntityFactory } from \"./../../../../factory/proposal-entity.factory\";\r\nimport { proposalHelper } from \"./../../../../utils/proposal.helper\";\r\nimport { IdentityRolesService } from \"../../../../../../services/identity-roles.service\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\n\r\nexport class MortgageFireSingaporeProposal extends ProposalPackage {\r\n /** cmwanx: 2017-11-7\r\n * Mortgage Fire was originally designed to cater multiple locations.\r\n *\r\n * Later JK decided it will always be single location.\r\n * Although front end is now only capturing for single location,\r\n * but [Proposal] class still remains its multi location design to extends from [ProposalPackage]\r\n */\r\n\r\n qsMaster!: MortgageFireSingaporeMasterQuestionSection;\r\n qsPremiumSummary!: MortgageFireSingaporePremiumSummaryQuestionSection;\r\n qsClientCreate!: MortgageFireSingaporeClientCreateQuestionSection;\r\n productType: MfEnum.MortgageFireSgProduct;\r\n\r\n messageId!: number;\r\n printType?: string;\r\n printCorrespondence?: string;\r\n isReprint?: boolean;\r\n isSummary?: boolean;\r\n isManual?: boolean;\r\n isPasswordProtected?: boolean;\r\n IsCancellationAdjustment!: boolean;\r\n\r\n /** ProposalEntity that last used for refreshing questions */\r\n refreshedProposalEntity!: ProposalEntity;\r\n // TODO: other sections question implementation\r\n\r\n /**\r\n * productID\r\n * proposalEntity <= will be passing in while proposalApi retrieved object from back end\r\n */\r\n constructor(\r\n productId: GUID,\r\n public override identityRolesService: IdentityRolesService,\r\n public masterDataService: MasterDataService\r\n ) {\r\n super(productId, identityRolesService);\r\n\r\n this.productType = mortgageFireSingaporeHelper.readProductType(\r\n this.productId\r\n )!;\r\n\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n // initialize sections\r\n this.qsMaster = new MortgageFireSingaporeMasterQuestionSection(\r\n this.masterDataService\r\n );\r\n this.qsPremiumSummary =\r\n new MortgageFireSingaporePremiumSummaryQuestionSection(\r\n this.masterDataService\r\n );\r\n this.qsClientCreate = new MortgageFireSingaporeClientCreateQuestionSection(\r\n this.masterDataService\r\n );\r\n\r\n this.children = [];\r\n }\r\n\r\n refreshQuestionsReadOnly(proposalEntity: ProposalEntity) {\r\n const questions = this.extractQuestionArray();\r\n\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (q && common.isDefined(q)) {\r\n if (\r\n this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfAdditionalInsured ||\r\n this.endorsementType === Enums.EndorsementType.GstAdjustment ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPlanType\r\n ) {\r\n question.readOnly = true;\r\n } else {\r\n question.readOnly = q.readOnly;\r\n }\r\n }\r\n });\r\n }\r\n\r\n refreshQuestionsReadOnlyForcbsOps(proposalEntity: ProposalEntity) {\r\n const isIBGProducts =\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMAC ||\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMF;\r\n\r\n const isIBGOPS =\r\n this.identityRolesService.IsCbsOps &&\r\n isIBGProducts &&\r\n this.transType === Enums.TransType.END &&\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n\r\n const isCBGOPS =\r\n this.identityRolesService.IsCbsOps &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete;\r\n\r\n if (isIBGOPS || isCBGOPS) {\r\n const questions = this.extractQuestionArray();\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n question.readOnly = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshCustomQuestionsReadOnly = (proposalEntity: ProposalEntity) => {\r\n this.qsMaster.qs_risk_insuredAddress1!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress2!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredPostalCode!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredCity!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredCountry!.readOnly = true;\r\n this.qsMaster.qs_master_poi_endDate!.readOnly = true;\r\n // this.qsMaster.qs_master_insuredNo.readOnly = true;\r\n this.qsMaster.qs_fire_householdContents!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress!.readOnly = true;\r\n this.qsMaster.qs_risk_uploadRiskAddress!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCountry!.readOnly = true;\r\n this.qsPremiumSummary.qs_master_brokerCommission.required = false;\r\n this.qsMaster.qs_master_insuredAddress1!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress2!.readOnly = true;\r\n this.qsMaster.qs_master_insuredPostalCode!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCity!.readOnly = true;\r\n this.qsMaster.qs_master_insuredState!.readOnly = true;\r\n this.qsMaster.qs_master_insuredCountry!.readOnly = true;\r\n if (this.transType === Enums.TransType.END) {\r\n this.qsMaster.qs_master_masterPolicyNumber!.readOnly = true;\r\n this.qsMaster.qs_master_planType!.readOnly = true;\r\n this.qsMaster.qs_master_premiumPayment!.readOnly = true;\r\n this.qsMaster.qs_master_discountCode!.readOnly = true;\r\n }\r\n\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.qsMaster.qs_fire_notes!.required = false;\r\n // HDB don't have Fire Replacement Value Question. So setting min value as 0.\r\n this.qsMaster.qs_fire_replacement!.minValue = 0;\r\n this.qsMaster.qs_fire_building!.minValue = 1;\r\n this.qsMaster.qs_master_insuredNo!.readOnly = true;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n // this.qsMaster.qs_fire_occupied.answer = true;\r\n // this.qsMaster.qs_fire_notes.required = false;\r\n if (\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ) {\r\n this.qsMaster.qs_master_insuredAddress1!.required = true;\r\n this.qsMaster.qs_master_insuredNo!.maxLength = 15;\r\n // this.qsMaster.qs_master_insuredPostalCode.required = true;\r\n // this.qsMaster.qs_master_insuredCity.required = true;\r\n // this.qsMaster.qs_master_insuredState.readOnly = true;\r\n } else {\r\n this.qsMaster.qs_master_insuredNo!.readOnly = true;\r\n }\r\n if (this.productType === EnumSG.MortgageFireSgProduct.PTE) {\r\n this.qsMaster.qs_fire_notes!.required = false;\r\n }\r\n if (\r\n (this.productType === EnumSG.MortgageFireSgProduct.MIP ||\r\n this.productType === EnumSG.MortgageFireSgProduct.PTE) &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n this.isUnderwriter &&\r\n !this.identityRolesService.getIdentity().role\r\n .isOperationUnderwriter))\r\n ) {\r\n // if is Renewal\r\n if (\r\n this.transType !== Enums.TransType.REN &&\r\n !this.identityRolesService.isBroker\r\n ) {\r\n this.qsMaster.qs_fire_occupied!.readOnly = false;\r\n }\r\n\r\n if (\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === \"False\" ||\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === false\r\n ) {\r\n // if is Renewal\r\n if (\r\n this.transType !== Enums.TransType.REN &&\r\n !this.identityRolesService.isBroker\r\n ) {\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = false;\r\n }\r\n }\r\n }\r\n\r\n // set min value for Fire Replacement Value and Building Questions\r\n this.qsMaster.qs_fire_replacement!.minValue = 1;\r\n this.qsMaster.qs_fire_building!.minValue = 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // assign value for CBG product only\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n if (this.endorsementType != Enums.EndorsementType.ChangeOfPlanType) {\r\n this.qsMaster.qs_master_planType!.readOnly = true;\r\n }\r\n\r\n break;\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n this.qsMaster.qs_master_miRate!.readOnly = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (\r\n (this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured ||\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfAdditionalInsured ||\r\n this.endorsementType === Enums.EndorsementType.GstAdjustment) &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.isOperationUnderwriter))\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = false;\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n this.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_cancellation_masterpiece!.readOnly = false;\r\n }\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPOI &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n this.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_poi_startDate!.readOnly = false;\r\n }\r\n if (\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfAdditionalInsured &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n this.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = false;\r\n }\r\n\r\n if (\r\n this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n this.isBroker\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = true;\r\n this.qsMaster.qs_master_cancellation_masterpiece!.readOnly = true;\r\n this.qsMaster.qs_master_poi_startDate!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = true;\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = true;\r\n }\r\n }\r\n\r\n if (\r\n this.refreshedProposalEntity.proposalReadOnly ||\r\n this.transType === Enums.TransType.CAN ||\r\n this.endorsementType === Enums.EndorsementType.LoanRedemption\r\n ) {\r\n this.qsMaster.qs_master_insuredAddress_building!.readOnly = true;\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = true;\r\n }\r\n if (\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.transType === Enums.TransType.END &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.isOperationUnderwriter))\r\n ) {\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = false;\r\n this.qsMaster.qs_risk_insuredAddress_building!.readOnly = true;\r\n this.qsMaster.qs_risk_insuredAddress_lotunit!.readOnly = true;\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = true;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n this.qsMaster.qs_fire_occupied!.readOnly = false;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = true;\r\n if (\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === \"False\" ||\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === false\r\n ) {\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = false;\r\n }\r\n break;\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.qsMaster.qs_fire_occupied!.readOnly = false;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n this.qsMaster.qs_fire_interestedParties!.readOnly = true;\r\n break;\r\n default:\r\n // do nothing\r\n }\r\n }\r\n\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfSumInsured &&\r\n ((this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)) ||\r\n (this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n !this.identityRolesService.getIdentity().role.isOperationUnderwriter))\r\n ) {\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n this.qsMaster.qs_fire_occupied!.readOnly = false;\r\n this.qsMaster.qs_fire_occupied!.required = true;\r\n this.qsMaster.qs_fire_building!.readOnly = false;\r\n this.qsMaster.qs_fire_building!.required = true;\r\n if (\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === \"False\" ||\r\n this.qsMaster.qs_master_manualUnderwritting!.answer === false\r\n ) {\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = false;\r\n }\r\n break;\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.qsMaster.qs_fire_replacement!.readOnly = false;\r\n this.qsMaster.qs_fire_replacement!.required = true;\r\n this.qsMaster.qs_fire_building!.readOnly = false;\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (\r\n this.proposalStatus === Enums.ProposalStatus.Referred &&\r\n this.isBroker\r\n ) {\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_fire_replacement!.readOnly = true;\r\n this.qsMaster.qs_fire_building!.readOnly = true;\r\n this.qsMaster.qs_master_manualUnderwritting!.readOnly = true;\r\n }\r\n }\r\n\r\n //2022-08-25 dagoh0: APACDM-363 - Handle fields required for change of plan type\r\n if (\r\n this.endorsementType === Enums.EndorsementType.ChangeOfPlanType &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.isUnderwriter ||\r\n this.identityRolesService.getIdentity().role.IsCbsOps ||\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter)\r\n ) {\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n this.qsMaster.qs_fire_occupied!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n this.qsMaster.qs_master_planType!.readOnly = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n // If User role is isClaimant or ProductReadOnly, all the questions should be readOnly\r\n if (\r\n this.identityRolesService.isClaimant ||\r\n this.identityRolesService.isProductReadOnly\r\n ) {\r\n const questions = this.extractQuestionArray();\r\n questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n question.readOnly = true;\r\n }\r\n });\r\n }\r\n // Enable Client Address and info endorsement for CBSOPS user\r\n const isChangeOfAddressOrClientInfo =\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress ||\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo;\r\n\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n isChangeOfAddressOrClientInfo\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n }\r\n\r\n // Enable client endorsement of IBG product FOR CBG OPS users\r\n const isIBGProducts =\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMAC ||\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMF;\r\n\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n isIBGProducts &&\r\n this.transType === Enums.TransType.END &&\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_buPcCode!.readOnly = false;\r\n this.qsMaster.qs_master_bankReferNumber!.readOnly = false;\r\n this.qsMaster.qs_master_assetSerialNumber!.readOnly = false;\r\n this.qsMaster.qs_master_assetClassCode!.readOnly = false;\r\n this.qsMaster.qs_master_borrowerCIN!.readOnly = false;\r\n this.qsMaster.qs_master_insuredName!.readOnly = false;\r\n this.qsMaster.qs_master_dateOfBirthOrIncorporation!.readOnly = false;\r\n this.qsMaster.qs_master_insuredNo!.readOnly = false;\r\n this.qsMaster.qs_master_insuredNo2!.readOnly = false;\r\n this.qsMaster.qs_master_namesOtherInsured!.readOnly = false;\r\n this.qsMaster.qs_master_clientContactPerson!.readOnly = false;\r\n this.qsMaster.qs_master_clientContactPersonContactNo!.readOnly = false;\r\n this.qsMaster.qs_master_phoneNoOffice!.readOnly = false;\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = false;\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = false;\r\n this.qsMaster.qs_master_insuredAddress_building!.readOnly = false;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n }\r\n\r\n //Enabled client info endorsement for CS CBS SG User\r\n if (\r\n this.identityRolesService.IsCSCBGSG &&\r\n !isIBGProducts &&\r\n this.endorsementType === Enums.EndorsementType.ChangeOfClientInfo &&\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n this.qsMaster.qs_master_refund!.readOnly = false;\r\n }\r\n\r\n if (\r\n this.identityRolesService.isOperationUnderwriter &&\r\n this.transType === Enums.TransType.CAN &&\r\n this.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n this.qsMaster.qs_master_insuredAddress_lotunit!.readOnly = false;\r\n this.qsMaster.qs_master_insuredAddress_building!.readOnly = false;\r\n this.qsMaster.qs_master_endorse_endorsementReason!.readOnly = false;\r\n this.qsMaster.qs_master_effectiveDate!.readOnly = true;\r\n this.qsMaster.qs_master_refund!.readOnly = true;\r\n }\r\n\r\n if (\r\n this.transType === Enums.TransType.END &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (this.identityRolesService.isMaker || this.isUnderwriter)\r\n ) {\r\n this.qsMaster.qs_master_endorse_endorsementReason!.required = true;\r\n }\r\n\r\n // Cancellation adjustmentAmount and maximum adjust amount\r\n // Visibility Check\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n this.endorsementType === Enums.EndorsementType.CancellationAdjustment\r\n ) {\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.isVisible = true;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.isVisible =\r\n true;\r\n\r\n // Readonly Check\r\n if (\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n this.isUnderwriter\r\n ) {\r\n // can edit only after incomplete and underwriter\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.readOnly =\r\n false;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = true;\r\n } else {\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.readOnly = true;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.readOnly =\r\n true;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = false;\r\n }\r\n\r\n // Updating Min and Max value of adjustment amount depend on Maximum Adjustment amount\r\n var maximumAdjustmentAmount =\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount;\r\n maximumAdjustmentAmount!.answer =\r\n maximumAdjustmentAmount!.answer === undefined ||\r\n isNaN(maximumAdjustmentAmount!.answer)\r\n ? 0\r\n : parseFloat(maximumAdjustmentAmount!.answer);\r\n\r\n var adjustmentAmount =\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount;\r\n adjustmentAmount!.answer =\r\n adjustmentAmount!.answer === undefined ||\r\n isNaN(adjustmentAmount!.answer)\r\n ? 0\r\n : parseFloat(adjustmentAmount!.answer);\r\n } else {\r\n // Visibility Check\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.isVisible = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.isVisible =\r\n false;\r\n\r\n this.qsMaster.qs_master_cancellation_adjustmentAmount!.required = false;\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.required =\r\n false;\r\n }\r\n\r\n // Waive Minimum Premium Checkbox\r\n // Visibility Check\r\n if (\r\n this.transType === Enums.TransType.CAN &&\r\n this.auxiliary[\"DisplayMinimumPremiumWaived\"]\r\n ) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n\r\n // Disable Check\r\n if (this.proposalStatus === Enums.ProposalStatus.Incomplete) {\r\n if (!this.isUnderwriter) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled = true;\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n } else {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled =\r\n this.auxiliary[\"FirstCancellationWaiveMinimumPremium\"];\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n }\r\n } else {\r\n /* for accepted scenario */\r\n if (!this.isUnderwriter) {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n } else {\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = true;\r\n }\r\n\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isDisabled = true;\r\n }\r\n } else {\r\n // Visibility Check\r\n this.qsMaster.qs_master_waiveMinimumPremium!.isVisible = false;\r\n }\r\n\r\n this.refreshCustomQuestionsReadOnlyForDeliveryMethod(proposalEntity);\r\n };\r\n\r\n refreshCustomQuestionsReadOnlyForDeliveryMethod(\r\n proposalEntity: ProposalEntity\r\n ) {\r\n if (\r\n this.transType === Enums.TransType.END &&\r\n this.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n this.proposalStatus === Enums.ProposalStatus.Incomplete\r\n ) {\r\n switch (this.productType) {\r\n case EnumSG.MortgageFireSgProduct.HDB:\r\n case EnumSG.MortgageFireSgProduct.MIP:\r\n case EnumSG.MortgageFireSgProduct.PTE:\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO:\r\n this.qsMaster.qs_master_preferredDeliveryMethod!.readOnly = true;\r\n break;\r\n case EnumSG.MortgageFireSgProduct.IBGMF:\r\n case EnumSG.MortgageFireSgProduct.IBGMAC:\r\n // this.qsMaster.qs_master_preferredDeliveryMethod.readOnly = true;\r\n // this.qsMaster.qs_master_mobileNumber.readOnly=true;\r\n // this.qsMaster.qs_master_emailID.readOnly=true;\r\n break;\r\n }\r\n }\r\n }\r\n refreshPotentiallyChangedQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n\r\n this.qsMaster.questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (q && common.isDefined(q)) {\r\n switch (question.key) {\r\n case \"qs_master_effectiveDate\":\r\n this.qsMaster.qs_master_effectiveDate!.answer = q.answer;\r\n break;\r\n case \"qs_master_endorse_endorsementReason\":\r\n this.qsMaster.qs_master_endorse_endorsementReason!.answer =\r\n q.answer;\r\n break;\r\n case \"qs_master_refund\":\r\n this.qsMaster.qs_master_refund!.answer = q.answer;\r\n break;\r\n case \"qs_fire_occupied\":\r\n this.qsMaster.qs_fire_occupied!.answer = q.answer;\r\n break;\r\n case \"qs_master_manualUnderwritting\":\r\n this.qsMaster.qs_master_manualUnderwritting!.answer = q.answer;\r\n break;\r\n case \"qs_master_insuredCountry\":\r\n if (\r\n this.qsMaster.qs_master_insuredCountry!.answer === null ||\r\n this.qsMaster.qs_master_insuredCountry!.answer === \"\"\r\n ) {\r\n this.qsMaster.qs_master_insuredCountry!.answer = \"SG\";\r\n }\r\n break;\r\n case \"qs_fire_freeInsuranceFirstYear\":\r\n // IBG\r\n if (\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ) {\r\n this.qsMaster.qs_fire_freeInsuranceFirstYear!.answer = q.answer;\r\n }\r\n\r\n break;\r\n case \"qs_fire_freeInsuranceNoYear\":\r\n ////Chirag: 28-12-2018 Free Year Change For CBG Prodcut\r\n // IBG\r\n // if (this.productType === EnumSG.MortgageFireSgProduct.IBGMF\r\n // || this.productType === EnumSG.MortgageFireSgProduct.IBGMAC) {\r\n this.qsMaster.qs_fire_freeInsuranceNoYear!.answer = q.answer;\r\n //}\r\n break;\r\n case \"qs_master_masterPolicyNumber\":\r\n // PTE and MIP\r\n if (\r\n this.productType === EnumSG.MortgageFireSgProduct.PTE ||\r\n this.productType === EnumSG.MortgageFireSgProduct.MIP\r\n ) {\r\n this.qsMaster.qs_master_masterPolicyNumber!.answer = q.answer;\r\n }\r\n\r\n break;\r\n case \"qs_master_poi_startDate\":\r\n if (this.transType === Enums.TransType.REN) {\r\n this.qsMaster.qs_master_poi_startDate!.answer = q.answer;\r\n }\r\n break;\r\n case \"qs_master_poi_endDate\":\r\n if (this.transType === Enums.TransType.REN) {\r\n this.qsMaster.qs_master_poi_endDate!.answer = q.answer;\r\n }\r\n break;\r\n case \"qs_master_cancellation_maximumAdjustmentAmount\":\r\n this.qsMaster.qs_master_cancellation_maximumAdjustmentAmount!.answer =\r\n q.answer;\r\n break;\r\n case \"qs_master_lstDetails\":\r\n this.qsMaster.qs_master_lstDetails!.answer = q.answer;\r\n break;\r\n case \"qs_master_lst\":\r\n this.qsMaster.qs_master_lst!.answer = q.answer;\r\n break;\r\n case \"qs_master_planType\":\r\n this.qsMaster.qs_master_planType!.answer = q.answer;\r\n break;\r\n case \"qs_master_discountCode\":\r\n this.qsMaster.qs_master_discountCode!.answer = q.answer;\r\n break;\r\n case \"qs_master_customDiscountCode\":\r\n this.qsMaster.qs_master_customDiscountCode!.answer = q.answer;\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n this.qsPremiumSummary.questions.forEach((question) => {\r\n const q = proposalEntity.getQuestion(question.key);\r\n if (common.isDefined(q)) {\r\n switch (question.key) {\r\n case \"qs_master_brokerCommission\":\r\n this.qsPremiumSummary.qs_master_brokerCommission.answer = q!.answer;\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n });\r\n }\r\n\r\n refreshQuestions(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n ExceptionManager.argumentNullGuard(\r\n proposalEntity.questions,\r\n \"proposalEntity.questions\"\r\n );\r\n\r\n this.refreshedProposalEntity = proposalEntity;\r\n this.proposalId = proposalEntity.proposalId;\r\n this.qsMaster.refreshQuestions(proposalEntity);\r\n this.qsPremiumSummary.refreshQuestions(proposalEntity);\r\n\r\n // it is always one children\r\n if (\r\n common.isDefined(proposalEntity.children) &&\r\n /* While creating new proposal, back end is returning an children array with zero item, therefore, check for child length */\r\n proposalEntity.children &&\r\n proposalEntity.children!.length! > 0 &&\r\n common.isDefined(this.children) &&\r\n this.children.length > 0\r\n ) {\r\n this.children[0].refreshQuestions(proposalEntity.children[0]);\r\n }\r\n }\r\n\r\n refreshPremiumSummary(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n\r\n /** Refresh the proposalId and entity to pass back to back-end */\r\n this.refreshedProposalEntity = proposalEntity;\r\n this.proposalId = proposalEntity.proposalId;\r\n\r\n this.IsCancellationAdjustment =\r\n this.endorsementType == Enums.EndorsementType.CancellationAdjustment;\r\n\r\n // TODO: refresh premium summary\r\n }\r\n\r\n refreshValidationMessage(proposalEntity: ProposalEntity) {\r\n ExceptionManager.argumentNullGuard(proposalEntity, \"proposalEntity\");\r\n\r\n /** Refresh the proposalId and entity to pass back to back-end */\r\n this.validationMessage = proposalEntity.validationsMessages;\r\n this.proposalId = proposalEntity.proposalId;\r\n }\r\n\r\n extractQuestionArray(): QuestionEntity[] {\r\n const questions: QuestionEntity[] = [];\r\n\r\n this.qsMaster.questions.forEach((q) => {\r\n if (common.isDefined(this.refreshedProposalEntity.getQuestion(q.key))) {\r\n questions.push(q);\r\n }\r\n });\r\n\r\n this.qsPremiumSummary.questions.forEach((q) => {\r\n if (common.isDefined(this.refreshedProposalEntity.getQuestion(q.key))) {\r\n questions.push(q);\r\n }\r\n });\r\n\r\n return questions;\r\n }\r\n\r\n createOneChild(): MortgageFireSingaporeProposalLocation {\r\n const newChild = this.createEmptyLocation();\r\n this.children.push(newChild);\r\n\r\n return newChild;\r\n }\r\n\r\n getChild(proposalId: GUID): MortgageFireSingaporeProposalLocation {\r\n const found = proposalHelper.searchChildren(this.children, proposalId);\r\n return found as MortgageFireSingaporeProposalLocation;\r\n }\r\n\r\n private createEmptyLocation(): MortgageFireSingaporeProposalLocation {\r\n const location = new MortgageFireSingaporeProposalLocation(\r\n this.productId,\r\n this.identityRolesService\r\n );\r\n return location;\r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireSGSectionSchema } from \"./../schemas/mf-sg-section-schema\";\r\nimport { MortgageFireSGTabSchema } from \"./../schemas/mf-sg-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"../../../../../../../services/master-data.service\";\r\n\r\nexport class MortgageFireSingaporeClientCreateQuestionSection extends QuestionSection {\r\n qs_master_clientSalutation!: QuestionEntity;\r\n qs_master_clientSurname!: QuestionEntity;\r\n qs_master_clientGivenName!: QuestionEntity;\r\n qs_master_clientNRICPassportNo!: QuestionEntity;\r\n qs_master_clientDOB!: QuestionEntity;\r\n\r\n qs_master_clientOccupation!: QuestionEntity;\r\n qs_master_clientCategory!: QuestionEntity;\r\n qs_master_clientRace!: QuestionEntity;\r\n qs_master_clientNationality!: QuestionEntity;\r\n qs_master_clientGender!: QuestionEntity;\r\n\r\n qs_master_clientMaritalStatus!: QuestionEntity;\r\n\r\n qs_master_insuredAddress_building!: QuestionEntity;\r\n qs_master_insuredAddress_lotunit!: QuestionEntity;\r\n qs_master_insuredAddress1!: QuestionEntity;\r\n qs_master_insuredAddress2!: QuestionEntity;\r\n qs_master_insuredPostalCode!: QuestionEntity;\r\n qs_master_insuredCity!: QuestionEntity;\r\n qs_master_insuredState!: QuestionEntity;\r\n qs_master_insuredCountry!: QuestionEntity;\r\n\r\n qs_master_brokerEmail!: QuestionEntity;\r\n qs_master_brokerPhoneNo!: QuestionEntity;\r\n qs_master_brokerMobileNo!: QuestionEntity;\r\n qs_master_brokerOfficeNo!: QuestionEntity;\r\n qs_master_brokerFaxNo!: QuestionEntity;\r\n qs_master_brokerPagerNo!: QuestionEntity;\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireSGTabSchema.master.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_clientSalutation = new QuestionEntity(\r\n \"qs_master_clientSalutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientSalutation.displayText = \"Salutation\";\r\n this.qs_master_clientSalutation.options = [\r\n { key: \"Capt\", value: \"1\" },\r\n { key: \"Dr\", value: \"2\" },\r\n { key: \"Madam\", value: \"3\" },\r\n { key: \"Miss\", value: \"4\" },\r\n { key: \"Mr\", value: \"5\" },\r\n { key: \"Mrs\", value: \"6\" },\r\n { key: \"Ms\", value: \"7\" },\r\n { key: \"Prof\", value: \"8\" },\r\n { key: \"Sir\", value: \"9\" },\r\n { key: \"Tan Sri\", value: \"10\" },\r\n ];\r\n this.qs_master_clientSalutation.required = true;\r\n this.qs_master_clientSalutation.tabId = this.tabId;\r\n this.qs_master_clientSalutation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientSurname = new QuestionEntity(\r\n \"qs_master_clientSurname\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientSurname.displayText = \"Surname\";\r\n this.qs_master_clientSurname.required = true;\r\n this.qs_master_clientSurname.tabId = this.tabId;\r\n this.qs_master_clientSurname.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientGivenName = new QuestionEntity(\r\n \"qs_master_clientGivenName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientGivenName.displayText = \"Given Name\";\r\n this.qs_master_clientGivenName.required = true;\r\n this.qs_master_clientGivenName.tabId = this.tabId;\r\n this.qs_master_clientGivenName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientNRICPassportNo = new QuestionEntity(\r\n \"qs_master_clientNRICPassportNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientNRICPassportNo.displayText = \"NRIC / Passport Number\";\r\n this.qs_master_clientNRICPassportNo.required = true;\r\n this.qs_master_clientNRICPassportNo.tabId = this.tabId;\r\n this.qs_master_clientNRICPassportNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientDOB = new QuestionEntity(\r\n \"qs_master_clientSalutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientDOB.displayText = \"Birth Date\";\r\n this.qs_master_clientDOB.required = true;\r\n this.qs_master_clientDOB.tabId = this.tabId;\r\n this.qs_master_clientDOB.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientOccupation = new QuestionEntity(\r\n \"qs_master_clientOccupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientOccupation.displayText = \"Occupation\";\r\n this.qs_master_clientOccupation.options = [\r\n { key: \"Accounting Director\", value: \"1\" },\r\n { key: \"Administrator Database\", value: \"2\" },\r\n { key: \"Advisory Sale Specialist\", value: \"3\" },\r\n { key: \"Journalist\", value: \"4\" },\r\n { key: \"Legal Consultant\", value: \"5\" },\r\n { key: \"Management Engineer\", value: \"6\" },\r\n { key: \"Safety Manager\", value: \"7\" },\r\n { key: \"Script Editor\", value: \"8\" },\r\n { key: \"Trade Manager\", value: \"9\" },\r\n ];\r\n this.qs_master_clientOccupation.required = true;\r\n this.qs_master_clientOccupation.tabId = this.tabId;\r\n this.qs_master_clientOccupation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientCategory = new QuestionEntity(\r\n \"qs_master_clientCategory\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientCategory.displayText = \"Category\";\r\n this.qs_master_clientCategory.options = [{ key: \"Others\", value: \"1\" }];\r\n this.qs_master_clientSalutation.required = true;\r\n this.qs_master_clientSalutation.tabId = this.tabId;\r\n this.qs_master_clientSalutation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientRace = new QuestionEntity(\r\n \"qs_master_clientRace\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientRace.displayText = \"Race\";\r\n this.qs_master_clientRace.options = [\r\n { key: \"Chinese\", value: \"1\" },\r\n { key: \"Indian\", value: \"2\" },\r\n { key: \"Malay\", value: \"3\" },\r\n { key: \"Others\", value: \"4\" },\r\n ];\r\n this.qs_master_clientRace.required = true;\r\n this.qs_master_clientRace.tabId = this.tabId;\r\n this.qs_master_clientRace.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientNationality = new QuestionEntity(\r\n \"qs_master_clientNationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientNationality.displayText = \"Nationality\";\r\n this.qs_master_clientNationality.options = [\r\n { key: \"Hong Kong\", value: \"1\" },\r\n { key: \"Singaporean\", value: \"2\" },\r\n ];\r\n this.qs_master_clientNationality.required = true;\r\n this.qs_master_clientNationality.tabId = this.tabId;\r\n this.qs_master_clientNationality.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientGender = new QuestionEntity(\r\n \"qs_master_clientGender\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientGender.displayText = \"Gender\";\r\n this.qs_master_clientGender.options = [\r\n { key: \"Male\", value: \"1\" },\r\n { key: \"Female\", value: \"2\" },\r\n ];\r\n this.qs_master_clientGender.required = true;\r\n this.qs_master_clientGender.tabId = this.tabId;\r\n this.qs_master_clientGender.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientMaritalStatus = new QuestionEntity(\r\n \"qs_master_clientMaritalStatus\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientMaritalStatus.displayText = \"Marital Status\";\r\n this.qs_master_clientMaritalStatus.options = [\r\n { key: \"Single\", value: \"1\" },\r\n { key: \"Married\", value: \"2\" },\r\n { key: \"Widowed\", value: \"3\" },\r\n { key: \"Divorced\", value: \"4\" },\r\n { key: \"Separated\", value: \"5\" },\r\n ];\r\n this.qs_master_clientMaritalStatus.required = true;\r\n this.qs_master_clientMaritalStatus.tabId = this.tabId;\r\n this.qs_master_clientMaritalStatus.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredAddress_building = new QuestionEntity(\r\n \"qs_master_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_master_insuredAddress_building.required = false;\r\n this.qs_master_insuredAddress_building.tabId = this.tabId;\r\n this.qs_master_insuredAddress_building.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_master_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_master_insuredAddress_lotunit.required = false;\r\n this.qs_master_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_master_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress1 = new QuestionEntity(\r\n \"qs_master_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_master_insuredAddress1.readOnly = true;\r\n this.qs_master_insuredAddress1.required = true;\r\n this.qs_master_insuredAddress1.tabId = this.tabId;\r\n this.qs_master_insuredAddress1.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress2 = new QuestionEntity(\r\n \"qs_master_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_master_insuredAddress2.readOnly = true;\r\n this.qs_master_insuredAddress2.required = false;\r\n this.qs_master_insuredAddress2.tabId = this.tabId;\r\n this.qs_master_insuredAddress2.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredPostalCode = new QuestionEntity(\r\n \"qs_master_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_master_insuredPostalCode.readOnly = true;\r\n this.qs_master_insuredPostalCode.required = false;\r\n this.qs_master_insuredPostalCode.tabId = this.tabId;\r\n this.qs_master_insuredPostalCode.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCity = new QuestionEntity(\r\n \"qs_master_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_master_insuredCity.readOnly = true;\r\n this.qs_master_insuredCity.required = false;\r\n this.qs_master_insuredCity.tabId = this.tabId;\r\n this.qs_master_insuredCity.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredState = new QuestionEntity(\r\n \"qs_master_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredState.displayText = \"State\";\r\n this.qs_master_insuredState.readOnly = true;\r\n this.qs_master_insuredState.required = false;\r\n this.qs_master_insuredState.tabId = this.tabId;\r\n this.qs_master_insuredState.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCountry = new QuestionEntity(\r\n \"qs_master_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCountry.displayText = \"Country\";\r\n this.qs_master_insuredCountry.readOnly = true;\r\n this.qs_master_insuredCountry.answer = \"SG\";\r\n this.qs_master_insuredCountry.required = true;\r\n this.qs_master_insuredCountry.tabId = this.tabId;\r\n this.qs_master_insuredCountry.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_brokerEmail = new QuestionEntity(\r\n \"qs_pd_brokerEmail\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerEmail.displayText = \"Email Address\";\r\n this.qs_master_brokerEmail.required = true;\r\n this.qs_master_brokerEmail.tabId = this.tabId;\r\n this.qs_master_brokerEmail.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerPhoneNo = new QuestionEntity(\r\n \"qs_master_brokerPhoneNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerPhoneNo.displayText = \"Phone Number (Home)\";\r\n this.qs_master_brokerPhoneNo.required = false;\r\n this.qs_master_brokerPhoneNo.tabId = this.tabId;\r\n this.qs_master_brokerPhoneNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerMobileNo = new QuestionEntity(\r\n \"qs_master_brokerMobileNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerMobileNo.displayText = \"Mobile Number\";\r\n this.qs_master_brokerMobileNo.required = false;\r\n this.qs_master_brokerMobileNo.tabId = this.tabId;\r\n this.qs_master_brokerMobileNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerOfficeNo = new QuestionEntity(\r\n \"qs_master_brokerOfficeNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerOfficeNo.displayText = \"Phone Number (Office)\";\r\n this.qs_master_brokerOfficeNo.required = true;\r\n this.qs_master_brokerOfficeNo.tabId = this.tabId;\r\n this.qs_master_brokerOfficeNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerFaxNo = new QuestionEntity(\r\n \"qs_master_brokerFaxNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerFaxNo.displayText = \"Fax Number\";\r\n this.qs_master_brokerFaxNo.required = false;\r\n this.qs_master_brokerFaxNo.tabId = this.tabId;\r\n this.qs_master_brokerFaxNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerEmail = new QuestionEntity(\r\n \"qs_master_brokerEmail\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerEmail.displayText = \"Pager Number\";\r\n this.qs_master_brokerEmail.required = false;\r\n this.qs_master_brokerEmail.tabId = this.tabId;\r\n this.qs_master_brokerEmail.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_clientSalutation);\r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { Application } from \"../../../../../../../application\";\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireSGSectionSchema } from \"./../schemas/mf-sg-section-schema\";\r\nimport { MortgageFireSGTabSchema } from \"./../schemas/mf-sg-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"../../../../../../../services/master-data.service\";\r\n\r\nexport class MortgageFireSingaporeMasterQuestionSection extends QuestionSection {\r\n qs_master_brokerFirstName!: QuestionEntity | undefined;\r\n\r\n //Implementation Preferred Delivery Method\r\n qs_master_preferredDeliveryMethod!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_Email!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_MobileNo!: QuestionEntity | undefined;\r\n qs_master_preferredDeliveryMethod_CorrAddress!: QuestionEntity | undefined;\r\n\r\n qs_master_brokerLastName!: QuestionEntity | undefined;\r\n qs_master_brokerOrganizationName!: QuestionEntity | undefined;\r\n qs_master_borrowerCIN!: QuestionEntity | undefined;\r\n\r\n qs_master_buPcCode!: QuestionEntity | undefined;\r\n qs_master_uploadBuPcCode!: QuestionEntity | undefined;\r\n qs_master_rmName!: QuestionEntity | undefined;\r\n qs_master_rmContactNo!: QuestionEntity | undefined;\r\n qs_master_rmRemarks!: QuestionEntity | undefined;\r\n qs_master_insuredAddress!: QuestionEntity | undefined;\r\n\r\n qs_master_busReg2ndInsured!: QuestionEntity | undefined;\r\n qs_master_otherInsuredName!: QuestionEntity | undefined;\r\n qs_master_additionalInsured!: QuestionEntity | undefined;\r\n qs_master_insuredNo2!: QuestionEntity | undefined;\r\n qs_master_namesOtherInsured!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredAddress_building!: QuestionEntity | undefined;\r\n qs_master_insuredAddress_lotunit!: QuestionEntity | undefined;\r\n qs_master_insuredAddress1!: QuestionEntity | undefined;\r\n qs_master_insuredAddress2!: QuestionEntity | undefined;\r\n qs_master_insuredPostalCode!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredCity!: QuestionEntity | undefined;\r\n qs_master_insuredState!: QuestionEntity | undefined;\r\n qs_master_insuredCountry!: QuestionEntity | undefined;\r\n\r\n qs_master_insuredNo!: QuestionEntity | undefined;\r\n qs_master_insuredName!: QuestionEntity | undefined;\r\n qs_master_replacePolicyNo!: QuestionEntity | undefined;\r\n qs_master_masterPolicyNumber!: QuestionEntity | undefined;\r\n qs_master_planType!: QuestionEntity | undefined;\r\n qs_master_insuredNoNationality!: QuestionEntity | undefined;\r\n qs_master_insuredNo2Nationality!: QuestionEntity | undefined;\r\n qs_master_insuredNoDocType!: QuestionEntity | undefined;\r\n qs_master_insuredNo2DocType!: QuestionEntity | undefined;\r\n\r\n qs_master_poi_startDate!: QuestionEntity | undefined;\r\n qs_master_poi_endDate!: QuestionEntity | undefined;\r\n\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n qs_master_FreeIns_startDate!: QuestionEntity | undefined;\r\n qs_master_FreeIns_endDate!: QuestionEntity | undefined;\r\n\r\n qs_master_mobileNumber!: QuestionEntity | undefined;\r\n qs_master_emailID!: QuestionEntity | undefined;\r\n\r\n ////DBSEP-252 : Client Info Update\r\n qs_master_salutation!: QuestionEntity | undefined;\r\n qs_master_clientName!: QuestionEntity | undefined;\r\n qs_master_passport!: QuestionEntity | undefined;\r\n qs_master_nric!: QuestionEntity | undefined;\r\n qs_master_occupation!: QuestionEntity | undefined;\r\n qs_master_birthDate!: QuestionEntity | undefined;\r\n qs_master_race!: QuestionEntity | undefined;\r\n qs_master_nationality!: QuestionEntity | undefined;\r\n qs_master_gender!: QuestionEntity | undefined;\r\n qs_master_maritalStatus!: QuestionEntity | undefined;\r\n qs_master_phoneNoHome!: QuestionEntity | undefined;\r\n qs_master_phoneNoOffice!: QuestionEntity | undefined;\r\n qs_master_faxNumber!: QuestionEntity | undefined;\r\n qs_master_cin!: QuestionEntity | undefined;\r\n\r\n qs_master_financialBranch!: QuestionEntity | undefined;\r\n qs_master_bankReferNumber!: QuestionEntity | undefined;\r\n qs_master_assetClassCode!: QuestionEntity | undefined;\r\n qs_master_assetSerialNumber!: QuestionEntity | undefined;\r\n qs_master_effectiveDate!: QuestionEntity | undefined;\r\n qs_master_endorse_endorsementReason!: QuestionEntity | undefined;\r\n qs_master_cancellation_adjustmentAmount!: QuestionEntity | undefined;\r\n qs_master_cancellation_maximumAdjustmentAmount!: QuestionEntity | undefined;\r\n qs_master_refund!: QuestionEntity | undefined;\r\n qs_master_waiveMinimumPremium!: QuestionEntity | undefined;\r\n qs_master_cancellation_masterpiece!: QuestionEntity | undefined;\r\n qs_master_insuredIndustry!: QuestionEntity | undefined;\r\n qs_master_occupancyRate!: QuestionEntity | undefined;\r\n qs_master_miRate!: QuestionEntity | undefined;\r\n qs_master_insuredIndustry_desc!: QuestionEntity | undefined;\r\n qs_master_manualUnderwritting!: QuestionEntity | undefined;\r\n qs_location_occupation!: QuestionEntity | undefined;\r\n qs_location_riskAddress1!: QuestionEntity | undefined;\r\n qs_location_riskAddress2!: QuestionEntity | undefined;\r\n //questions: QuestionEntity[] = [];//no need anymore, since inherited from base\r\n\r\n qs_risk_floating!: QuestionEntity | undefined;\r\n qs_risk_sameAsAddress!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress_building!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress_lotunit!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress1!: QuestionEntity | undefined;\r\n qs_risk_insuredAddress2!: QuestionEntity | undefined;\r\n qs_risk_insuredPostalCode!: QuestionEntity | undefined;\r\n qs_risk_insuredCity!: QuestionEntity | undefined;\r\n qs_risk_insuredState!: QuestionEntity | undefined;\r\n qs_risk_insuredCountry!: QuestionEntity | undefined;\r\n qs_risk_uploadRiskAddress!: QuestionEntity | undefined;\r\n\r\n // qs_fire_situation! : QuestionEntity | undefined;\r\n qs_fire_occupied!: QuestionEntity | undefined;\r\n qs_fire_notes!: QuestionEntity | undefined;\r\n qs_fire_excess!: QuestionEntity | undefined;\r\n qs_fire_mcst!: QuestionEntity | undefined;\r\n qs_fire_replacement!: QuestionEntity | undefined;\r\n qs_fire_generalPage!: QuestionEntity | undefined;\r\n qs_fire_businessDesc!: QuestionEntity | undefined;\r\n qs_fire_interestedParties!: QuestionEntity | undefined;\r\n qs_fire_discussionNotes!: QuestionEntity | undefined;\r\n\r\n qs_fire_natureBusiness!: QuestionEntity | undefined;\r\n qs_fire_usagePremises!: QuestionEntity | undefined;\r\n qs_fire_typeProperty!: QuestionEntity | undefined;\r\n qs_fire_freeInsuranceFirstYear!: QuestionEntity | undefined;\r\n qs_fire_nameSolicitors!: QuestionEntity | undefined;\r\n qs_fire_equipment_description!: QuestionEntity | undefined;\r\n qs_fire_equipment_type!: QuestionEntity | undefined;\r\n qs_fire_equipment_financing!: QuestionEntity | undefined;\r\n qs_fire_sumOfInsured!: QuestionEntity | undefined;\r\n qs_master_busReg1stInsured!: QuestionEntity | undefined;\r\n qs_fire_building!: QuestionEntity | undefined;\r\n qs_fire_householdContents!: QuestionEntity | undefined;\r\n qs_machinery_equipment!: QuestionEntity | undefined;\r\n qs_master_lst!: QuestionEntity | undefined;\r\n qs_master_lstDetails!: QuestionEntity | undefined;\r\n\r\n // IBG\r\n qs_master_dateOfBirthOrIncorporation!: QuestionEntity | undefined;\r\n qs_master_clientContactPerson!: QuestionEntity | undefined;\r\n qs_master_clientContactPersonContactNo!: QuestionEntity | undefined;\r\n qs_machinery_uploadSumInsured!: QuestionEntity | undefined;\r\n qs_machinery_uploadTypeOfEquipment!: QuestionEntity | undefined;\r\n qs_machinery_uploadEquipmentDescription!: QuestionEntity | undefined;\r\n qs_machinery_uploadTypeOfFinancing!: QuestionEntity | undefined;\r\n qs_fire_freeInsuranceNoYear!: QuestionEntity | undefined;\r\n qs_master_uploadAdditionalInsured!: QuestionEntity | undefined;\r\n\r\n //Citibank\r\n qs_master_premiumPayment!: QuestionEntity | undefined;\r\n qs_master_customerType!: QuestionEntity | undefined;\r\n qs_master_collateralNumber: QuestionEntity | undefined;\r\n qs_master_discountCode!: QuestionEntity | undefined;\r\n qs_master_discountType!: QuestionEntity | undefined;\r\n qs_fire_outstandingLoanValue!: QuestionEntity | undefined;\r\n qs_fire_coverageValueType!: QuestionEntity | undefined;\r\n qs_master_customDiscountCode!: QuestionEntity | undefined;\r\n\r\n nationalityList!: any[];\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireSGTabSchema.master.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_brokerFirstName = new QuestionEntity(\r\n \"qs_master_brokerFirstName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerFirstName.displayText = \"First Name\";\r\n this.qs_master_brokerFirstName.maxLength = 100;\r\n this.qs_master_brokerFirstName.required = false;\r\n this.qs_master_brokerFirstName.tabId = this.tabId;\r\n this.qs_master_brokerFirstName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerLastName = new QuestionEntity(\r\n \"qs_master_brokerLastName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerLastName.displayText = \"Last Name\";\r\n this.qs_master_brokerLastName.maxLength = 100;\r\n this.qs_master_brokerLastName.required = true;\r\n this.qs_master_brokerLastName.tabId = this.tabId;\r\n this.qs_master_brokerLastName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_brokerOrganizationName = new QuestionEntity(\r\n \"qs_master_brokerOrganizationName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_brokerOrganizationName.displayText = \"Insured Name\";\r\n this.qs_master_brokerOrganizationName.maxLength = 100;\r\n this.qs_master_brokerOrganizationName.required = true;\r\n this.qs_master_brokerOrganizationName.tabId = this.tabId;\r\n this.qs_master_brokerOrganizationName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n // New IBG broker requirement\r\n this.qs_master_insuredAddress = new QuestionEntity(\r\n \"qs_master_insuredAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress.displayText =\r\n \"Uploaded correspondence address\";\r\n this.qs_master_insuredAddress.readOnly = true;\r\n this.qs_master_insuredAddress.required = false;\r\n this.qs_master_insuredAddress.tabId = this.tabId;\r\n this.qs_master_insuredAddress.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredAddress_building = new QuestionEntity(\r\n \"qs_master_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_master_insuredAddress_building.required = false;\r\n this.qs_master_insuredAddress_building.tabId = this.tabId;\r\n this.qs_master_insuredAddress_building.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_master_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_master_insuredAddress_lotunit.required = false;\r\n this.qs_master_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_master_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress1 = new QuestionEntity(\r\n \"qs_master_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_master_insuredAddress1.readOnly = true;\r\n this.qs_master_insuredAddress1.required = false;\r\n this.qs_master_insuredAddress1.tabId = this.tabId;\r\n this.qs_master_insuredAddress1.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredAddress2 = new QuestionEntity(\r\n \"qs_master_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_master_insuredAddress2.readOnly = true;\r\n this.qs_master_insuredAddress2.required = false;\r\n this.qs_master_insuredAddress2.tabId = this.tabId;\r\n this.qs_master_insuredAddress2.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredPostalCode = new QuestionEntity(\r\n \"qs_master_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_master_insuredPostalCode.readOnly = true;\r\n this.qs_master_insuredPostalCode.required = false;\r\n this.qs_master_insuredPostalCode.tabId = this.tabId;\r\n this.qs_master_insuredPostalCode.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCity = new QuestionEntity(\r\n \"qs_master_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_master_insuredCity.readOnly = true;\r\n this.qs_master_insuredCity.required = false;\r\n this.qs_master_insuredCity.tabId = this.tabId;\r\n this.qs_master_insuredCity.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredState = new QuestionEntity(\r\n \"qs_master_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredState.displayText = \"State\";\r\n this.qs_master_insuredState.readOnly = true;\r\n this.qs_master_insuredState.required = false;\r\n this.qs_master_insuredState.tabId = this.tabId;\r\n this.qs_master_insuredState.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredCountry = new QuestionEntity(\r\n \"qs_master_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredCountry.displayText = \"Country\";\r\n this.qs_master_insuredCountry.readOnly = true;\r\n this.qs_master_insuredCountry.required = true;\r\n\r\n this.qs_master_insuredCountry.tabId = this.tabId;\r\n this.qs_master_insuredCountry.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.masterDataService.getCountryList().subscribe((response) => {\r\n this.qs_master_insuredCountry!.options = response;\r\n this.qs_master_insuredCountry!.answer = \"SG\";\r\n });\r\n\r\n this.qs_master_buPcCode = new QuestionEntity(\r\n \"qs_master_buPcCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_buPcCode.displayText = \"BU PC Code\";\r\n this.qs_master_buPcCode.required = true;\r\n this.qs_master_buPcCode.tabId = this.tabId;\r\n this.qs_master_buPcCode.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_uploadBuPcCode = new QuestionEntity(\r\n \"qs_master_uploadBuPcCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_uploadBuPcCode.displayText = \"Uploaded BU PC Code\";\r\n this.qs_master_uploadBuPcCode.required = false;\r\n this.qs_master_uploadBuPcCode.readOnly = true;\r\n this.qs_master_uploadBuPcCode.tabId = this.tabId;\r\n this.qs_master_uploadBuPcCode.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmName = new QuestionEntity(\r\n \"qs_master_rmName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmName.displayText = \"Name\";\r\n this.qs_master_rmName.maxLength = 100;\r\n this.qs_master_rmName.required = false;\r\n this.qs_master_rmName.tabId = this.tabId;\r\n this.qs_master_rmName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmContactNo = new QuestionEntity(\r\n \"qs_master_rmContactNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmContactNo.displayText = \"Contact No\";\r\n this.qs_master_rmContactNo.required = false;\r\n this.qs_master_rmContactNo.tabId = this.tabId;\r\n this.qs_master_rmContactNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_rmRemarks = new QuestionEntity(\r\n \"qs_master_rmRemarks\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_rmRemarks.displayText = \"Remarks\";\r\n this.qs_master_rmRemarks.required = false;\r\n this.qs_master_rmRemarks.tabId = this.tabId;\r\n this.qs_master_rmRemarks.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n // End new IBG\r\n\r\n // New IBG Client Information\r\n this.qs_master_busReg1stInsured = new QuestionEntity(\r\n \"qs_master_busReg1stInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_busReg1stInsured.displayText =\r\n \"Business Registration No / NRIC No (1st Insured)\";\r\n this.qs_master_busReg1stInsured.required = false;\r\n this.qs_master_busReg1stInsured.tabId = this.tabId;\r\n this.qs_master_busReg1stInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_busReg2ndInsured = new QuestionEntity(\r\n \"qs_master_busReg2ndInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_busReg2ndInsured.displayText =\r\n \"Business Registration No / NRIC No (2nd Insured)\";\r\n this.qs_master_busReg2ndInsured.required = false;\r\n this.qs_master_busReg2ndInsured.tabId = this.tabId;\r\n this.qs_master_busReg2ndInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_otherInsuredName = new QuestionEntity(\r\n \"qs_master_otherInsuredName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_otherInsuredName.displayText = \"Other Insured Name\";\r\n this.qs_master_otherInsuredName.required = false;\r\n this.qs_master_otherInsuredName.tabId = this.tabId;\r\n this.qs_master_otherInsuredName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_additionalInsured = new QuestionEntity(\r\n \"qs_master_additionalInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_additionalInsured.displayText =\r\n \"Names other than Insured(if any)\";\r\n this.qs_master_additionalInsured.required = false;\r\n this.qs_master_additionalInsured.tabId = this.tabId;\r\n this.qs_master_additionalInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n // End IBG Client Information\r\n\r\n this.qs_master_insuredNo = new QuestionEntity(\r\n \"qs_master_insuredNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo.displayText = \"Client No\";\r\n this.qs_master_insuredNo.required = true;\r\n this.qs_master_insuredNo.readOnly = true;\r\n this.qs_master_insuredNo.tabId = this.tabId;\r\n this.qs_master_insuredNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNoNationality = new QuestionEntity(\r\n \"qs_master_insuredNoNationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNoNationality.displayText = \"Nationality\";\r\n this.qs_master_insuredNoNationality.required = false;\r\n this.qs_master_insuredNoNationality.readOnly = false;\r\n this.qs_master_insuredNoNationality.tabId = this.tabId;\r\n this.qs_master_insuredNoNationality.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNoDocType = new QuestionEntity(\r\n \"qs_master_insuredNoDocType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNoDocType.displayText = \"Document Type\";\r\n this.qs_master_insuredNoDocType.required = false;\r\n this.qs_master_insuredNoDocType.readOnly = false;\r\n this.qs_master_insuredNoDocType.tabId = this.tabId;\r\n this.qs_master_insuredNoDocType.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_insuredNoDocType.options = [\r\n { key: \"S - Singapore NRIC\", value: \"1\" },\r\n { key: \"S - Singapore PR\", value: \"2\" },\r\n { key: \"M - Malaysia IC\", value: \"3\" },\r\n { key: \"P - Foreign Passport\", value: \"4\" },\r\n ];\r\n\r\n this.qs_master_insuredName = new QuestionEntity(\r\n \"qs_master_insuredName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredName.displayText = \"Client Name\";\r\n this.qs_master_insuredName.readOnly = true;\r\n this.qs_master_insuredName.required = true;\r\n this.qs_master_insuredName.tabId = this.tabId;\r\n this.qs_master_insuredName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_replacePolicyNo = new QuestionEntity(\r\n \"qs_master_replacePolicyNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_replacePolicyNo.displayText = \"Replacing Policy No\";\r\n this.qs_master_replacePolicyNo.required = false;\r\n this.qs_master_replacePolicyNo.tabId = this.tabId;\r\n this.qs_master_replacePolicyNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_masterPolicyNumber = new QuestionEntity(\r\n \"qs_master_masterPolicyNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_masterPolicyNumber.displayText = \"Master Policy Number\";\r\n this.qs_master_masterPolicyNumber.required = false;\r\n this.qs_master_masterPolicyNumber.tabId = this.tabId;\r\n this.qs_master_masterPolicyNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_planType = new QuestionEntity(\r\n \"qs_master_planType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_planType.displayText = \"No Of Years\";\r\n this.qs_master_planType.required = false;\r\n this.qs_master_planType.tabId = this.tabId;\r\n this.qs_master_planType.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_financialBranch = new QuestionEntity(\r\n \"qs_master_financialBranch\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_financialBranch.displayText = \"Financial Institution Branch\";\r\n this.qs_master_financialBranch.required = true;\r\n this.qs_master_financialBranch.tabId = this.tabId;\r\n this.qs_master_financialBranch.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_bankReferNumber = new QuestionEntity(\r\n \"qs_master_bankReferNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_bankReferNumber.displayText = \"Bank/Cross Reference Number\";\r\n this.qs_master_bankReferNumber.required = true;\r\n this.qs_master_bankReferNumber.tabId = this.tabId;\r\n this.qs_master_bankReferNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_assetClassCode = new QuestionEntity(\r\n \"qs_master_assetClassCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_assetClassCode.displayText = \"Asset Class Code\";\r\n this.qs_master_assetClassCode.required = false;\r\n this.qs_master_assetClassCode.tabId = this.tabId;\r\n this.qs_master_assetClassCode.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_assetSerialNumber = new QuestionEntity(\r\n \"qs_master_assetSerialNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_assetSerialNumber.displayText = \"Asset Serial Number\";\r\n this.qs_master_assetSerialNumber.required = false;\r\n this.qs_master_assetSerialNumber.tabId = this.tabId;\r\n this.qs_master_assetSerialNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_poi_startDate = new QuestionEntity(\r\n \"qs_master_poi_startDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_poi_startDate.displayText = \"Policy Inception Date\";\r\n this.qs_master_poi_startDate.answer = new Date();\r\n // Set the minimum date to be selected to 30 days before the current Date\r\n // this.qs_master_poi_startDate.minValue =\r\n // new Date(new Date(this.qs_master_poi_startDate.answer).setDate(new Date(this.qs_master_poi_startDate.answer).getDate() - 30));\r\n this.qs_master_poi_startDate.required = true;\r\n this.qs_master_poi_startDate.tabId = this.tabId;\r\n this.qs_master_poi_startDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_effectiveDate = new QuestionEntity(\r\n \"qs_master_effectiveDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_effectiveDate.displayText = \"Effective Date\";\r\n this.qs_master_effectiveDate.answer = new Date();\r\n this.qs_master_effectiveDate.tabId = this.tabId;\r\n this.qs_master_effectiveDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_poi_endDate = new QuestionEntity(\r\n \"qs_master_poi_endDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_poi_endDate.displayText = \"Policy Expiry Date\";\r\n this.qs_master_poi_endDate.answer = new Date();\r\n this.qs_master_poi_endDate.readOnly = true;\r\n this.qs_master_poi_endDate.tabId = this.tabId;\r\n this.qs_master_poi_endDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n /// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.qs_master_FreeIns_startDate = new QuestionEntity(\r\n \"qs_master_FreeIns_startDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_FreeIns_startDate.displayText = \"Free Insurance Start Date\";\r\n this.qs_master_FreeIns_startDate.answer = new Date();\r\n this.qs_master_FreeIns_startDate.readOnly = true;\r\n this.qs_master_FreeIns_startDate.required = false;\r\n this.qs_master_FreeIns_startDate.tabId = this.tabId;\r\n this.qs_master_FreeIns_startDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_FreeIns_endDate = new QuestionEntity(\r\n \"qs_master_FreeIns_endDate\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_FreeIns_endDate.displayText = \"Free Insurance End Date\";\r\n this.qs_master_FreeIns_endDate.answer = new Date();\r\n this.qs_master_FreeIns_endDate.required = false;\r\n this.qs_master_FreeIns_endDate.readOnly = true;\r\n this.qs_master_FreeIns_endDate.tabId = this.tabId;\r\n this.qs_master_FreeIns_endDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n //Implemetaion Preferred Delivery method\r\n this.qs_master_preferredDeliveryMethod = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod.displayText =\r\n \"Preferred Delivery Method\";\r\n this.qs_master_preferredDeliveryMethod.required = true;\r\n this.qs_master_preferredDeliveryMethod.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod.readOnly = false;\r\n this.qs_master_preferredDeliveryMethod.answer = 5;\r\n this.qs_master_preferredDeliveryMethod.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_Email = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_Email\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_Email.displayText = \"Email\";\r\n this.qs_master_preferredDeliveryMethod_Email.required = false;\r\n this.qs_master_preferredDeliveryMethod_Email.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_Email.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_MobileNo = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_MobileNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_MobileNo.displayText =\r\n \"Mobile Number\";\r\n this.qs_master_preferredDeliveryMethod_MobileNo.required = false;\r\n this.qs_master_preferredDeliveryMethod_MobileNo.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_MobileNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_preferredDeliveryMethod_CorrAddress = new QuestionEntity(\r\n \"qs_master_preferredDeliveryMethod_CorrAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.displayText =\r\n \"Corresponding Address\";\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.required = false;\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.tabId = this.tabId;\r\n this.qs_master_preferredDeliveryMethod_CorrAddress.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n // End Of delivery Method Block\r\n\r\n /// 12/10/2018 : Chirag Added Code For Mobile/Email Address\r\n this.qs_master_mobileNumber = new QuestionEntity(\r\n \"qs_master_mobileNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_mobileNumber.displayText = \"Mobile Number\";\r\n this.qs_master_mobileNumber.required = false;\r\n this.qs_master_mobileNumber.tabId = this.tabId;\r\n this.qs_master_mobileNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_emailID = new QuestionEntity(\r\n \"qs_master_emailID\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_emailID.displayText = \"Email\";\r\n this.qs_master_emailID.required = false;\r\n this.qs_master_emailID.tabId = this.tabId;\r\n this.qs_master_emailID.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n ////DBSEP-252 : Client Info Update\r\n this.qs_master_salutation = new QuestionEntity(\r\n \"qs_master_salutation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_salutation.displayText = \"Salutation\";\r\n this.qs_master_salutation.required = false;\r\n this.qs_master_salutation.tabId = this.tabId;\r\n this.qs_master_salutation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientName = new QuestionEntity(\r\n \"qs_master_clientName\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientName.displayText = \"ClientName\";\r\n this.qs_master_clientName.required = false;\r\n this.qs_master_clientName.tabId = this.tabId;\r\n this.qs_master_clientName.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_passport = new QuestionEntity(\r\n \"qs_master_passport\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_passport.displayText = \"Passport\";\r\n this.qs_master_passport.required = false;\r\n this.qs_master_passport.tabId = this.tabId;\r\n this.qs_master_passport.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_nric = new QuestionEntity(\r\n \"qs_master_nric\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_nric.displayText = \"NRIC\";\r\n this.qs_master_nric.required = false;\r\n this.qs_master_nric.tabId = this.tabId;\r\n this.qs_master_nric.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_occupation = new QuestionEntity(\r\n \"qs_master_occupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_occupation.displayText = \"Occupation\";\r\n this.qs_master_occupation.required = false;\r\n this.qs_master_occupation.tabId = this.tabId;\r\n this.qs_master_occupation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_birthDate = new QuestionEntity(\r\n \"qs_master_birthDate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_birthDate.displayText = \"Birth Date\";\r\n this.qs_master_birthDate.required = false;\r\n this.qs_master_birthDate.tabId = this.tabId;\r\n this.qs_master_birthDate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_race = new QuestionEntity(\r\n \"qs_master_race\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_race.displayText = \"Race\";\r\n this.qs_master_race.required = false;\r\n this.qs_master_race.tabId = this.tabId;\r\n this.qs_master_race.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_nationality = new QuestionEntity(\r\n \"qs_master_nationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_nationality.displayText = \"Nationality\";\r\n this.qs_master_nationality.required = false;\r\n this.qs_master_nationality.tabId = this.tabId;\r\n this.qs_master_nationality.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_gender = new QuestionEntity(\r\n \"qs_master_gender\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_gender.displayText = \"Gender\";\r\n this.qs_master_gender.required = false;\r\n this.qs_master_gender.tabId = this.tabId;\r\n this.qs_master_gender.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_maritalStatus = new QuestionEntity(\r\n \"qs_master_maritalStatus\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_maritalStatus.displayText = \"Marital Status\";\r\n this.qs_master_maritalStatus.required = false;\r\n this.qs_master_maritalStatus.tabId = this.tabId;\r\n this.qs_master_maritalStatus.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_phoneNoHome = new QuestionEntity(\r\n \"qs_master_phoneNoHome\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_phoneNoHome.displayText = \"PhoneNo Home\";\r\n this.qs_master_phoneNoHome.required = false;\r\n this.qs_master_phoneNoHome.tabId = this.tabId;\r\n this.qs_master_phoneNoHome.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_phoneNoOffice = new QuestionEntity(\r\n \"qs_master_phoneNoOffice\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_phoneNoOffice.displayText = \"Office No\";\r\n this.qs_master_phoneNoOffice.required = false;\r\n this.qs_master_phoneNoOffice.tabId = this.tabId;\r\n this.qs_master_phoneNoOffice.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_faxNumber = new QuestionEntity(\r\n \"qs_master_faxNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_faxNumber.displayText = \"Fax Number\";\r\n this.qs_master_faxNumber.required = false;\r\n this.qs_master_faxNumber.tabId = this.tabId;\r\n this.qs_master_faxNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cin = new QuestionEntity(\r\n \"qs_master_cin\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_cin.displayText = \"CIN\";\r\n this.qs_master_cin.required = false;\r\n this.qs_master_cin.tabId = this.tabId;\r\n this.qs_master_cin.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_endorse_endorsementReason = new QuestionEntity(\r\n \"qs_master_endorse_endorsementReason\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_endorse_endorsementReason.displayText = \"Remarks\";\r\n this.qs_master_endorse_endorsementReason.required = false;\r\n this.qs_master_endorse_endorsementReason.tabId = this.tabId;\r\n this.qs_master_endorse_endorsementReason.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_refund = new QuestionEntity(\r\n \"qs_master_refund\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_refund.displayText = \"Remarks\";\r\n this.qs_master_refund.required = false;\r\n this.qs_master_refund.tabId = this.tabId;\r\n this.qs_master_refund.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_waiveMinimumPremium = new QuestionEntity(\r\n \"qs_master_waiveMinimumPremium\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_waiveMinimumPremium.displayText = \"WaiveMinimumPremium\";\r\n this.qs_master_waiveMinimumPremium.defaultAnswer = \"False\";\r\n this.qs_master_waiveMinimumPremium.answer = \"False\";\r\n this.qs_master_waiveMinimumPremium.required = false;\r\n this.qs_master_waiveMinimumPremium.isVisible = false;\r\n this.qs_master_waiveMinimumPremium.tabId = this.tabId;\r\n this.qs_master_waiveMinimumPremium.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cancellation_masterpiece = new QuestionEntity(\r\n \"qs_master_cancellation_masterpiece\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_cancellation_masterpiece.displayText =\r\n \"Masterpiece Issuance\";\r\n this.qs_master_cancellation_masterpiece.defaultAnswer = \"False\";\r\n this.qs_master_cancellation_masterpiece.answer = \"False\";\r\n this.qs_master_cancellation_masterpiece.required = false;\r\n this.qs_master_cancellation_masterpiece.isVisible = false;\r\n this.qs_master_cancellation_masterpiece.tabId = this.tabId;\r\n this.qs_master_cancellation_masterpiece.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_cancellation_adjustmentAmount = new QuestionEntity(\r\n \"qs_master_cancellation_adjustmentAmount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_cancellation_adjustmentAmount.displayText =\r\n \"Adjustment Amount\";\r\n this.qs_master_cancellation_adjustmentAmount.isVisible = false;\r\n this.qs_master_cancellation_adjustmentAmount.required = false;\r\n this.qs_master_cancellation_adjustmentAmount.readOnly = true;\r\n this.qs_master_cancellation_adjustmentAmount.tabId = this.tabId;\r\n this.qs_master_cancellation_adjustmentAmount.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_cancellation_adjustmentAmount.answer = 0;\r\n this.qs_master_cancellation_adjustmentAmount.decimals = 2;\r\n\r\n this.qs_master_cancellation_maximumAdjustmentAmount = new QuestionEntity(\r\n \"qs_master_cancellation_maximumAdjustmentAmount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_cancellation_maximumAdjustmentAmount.displayText =\r\n \"Maximum Adjustment Amount\";\r\n this.qs_master_cancellation_maximumAdjustmentAmount.isVisible = false;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.readOnly = true;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.required = false;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.tabId = this.tabId;\r\n this.qs_master_cancellation_maximumAdjustmentAmount.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredIndustry = new QuestionEntity(\r\n \"qs_master_insuredIndustry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredIndustry.displayText = \"NAICS\";\r\n this.qs_master_insuredIndustry.required = true;\r\n this.qs_master_insuredIndustry.tabId = this.tabId;\r\n this.qs_master_insuredIndustry.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_occupancyRate = new QuestionEntity(\r\n \"qs_master_occupancyRate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_occupancyRate.displayText = \"Occupancy Rates\";\r\n this.qs_master_occupancyRate.required = true;\r\n this.qs_master_occupancyRate.tabId = this.tabId;\r\n this.qs_master_occupancyRate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_miRate = new QuestionEntity(\r\n \"qs_master_miRate\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_miRate.displayText = \"Mi Rates\";\r\n this.qs_master_miRate.required = true;\r\n this.qs_master_miRate.tabId = this.tabId;\r\n this.qs_master_miRate.readOnly = true;\r\n this.qs_master_miRate.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_miRate.options = [\r\n { key: \"MI\", value: \"1\" },\r\n { key: \"Non-MI\", value: \"2\" },\r\n ];\r\n\r\n this.qs_location_occupation = new QuestionEntity(\r\n \"qs_location_occupation\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_occupation.displayText = \"Location Occupation\";\r\n this.qs_location_occupation.required = true;\r\n this.qs_location_occupation.tabId = this.tabId;\r\n this.qs_location_occupation.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_insuredIndustry_desc = new QuestionEntity(\r\n \"qs_master_insuredIndustry_desc\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredIndustry_desc.displayText = \"Occupation Description\";\r\n this.qs_master_insuredIndustry_desc.required = false;\r\n this.qs_master_insuredIndustry_desc.tabId = this.tabId;\r\n this.qs_master_insuredIndustry_desc.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_location_riskAddress1 = new QuestionEntity(\r\n \"qs_location_riskAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_riskAddress1.displayText = \"Location Address 1\";\r\n this.qs_location_riskAddress1.required = true;\r\n this.qs_location_riskAddress1.tabId = this.tabId;\r\n this.qs_location_riskAddress1.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_location_riskAddress2 = new QuestionEntity(\r\n \"qs_location_riskAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_location_riskAddress2.displayText = \"Location Address 2\";\r\n this.qs_location_riskAddress2.required = true;\r\n this.qs_location_riskAddress2.tabId = this.tabId;\r\n this.qs_location_riskAddress2.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_floating = new QuestionEntity(\r\n \"qs_risk_floating\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_floating.displayText = \"Floating\";\r\n this.qs_risk_floating.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_risk_floating.required = false;\r\n this.qs_risk_floating.tabId = this.tabId;\r\n this.qs_risk_floating.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_sameAsAddress = new QuestionEntity(\r\n \"qs_risk_sameAsAddress\",\r\n undefined,\r\n Enums.AnswerDataType.Boolean\r\n );\r\n this.qs_risk_sameAsAddress.displayText =\r\n \"Same as Client’s Contact Information\";\r\n this.qs_risk_sameAsAddress.required = false;\r\n this.qs_risk_sameAsAddress.tabId = this.tabId;\r\n this.qs_risk_sameAsAddress.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress_building = new QuestionEntity(\r\n \"qs_risk_insuredAddress_building\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress_building.displayText = \"Building Name\";\r\n this.qs_risk_insuredAddress_building.required = false;\r\n this.qs_risk_insuredAddress_building.readOnly = true;\r\n this.qs_risk_insuredAddress_building.tabId = this.tabId;\r\n this.qs_risk_insuredAddress_building.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress_lotunit = new QuestionEntity(\r\n \"qs_risk_insuredAddress_lotunit\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress_lotunit.displayText = \"Suite/Lot/Unit Number\";\r\n this.qs_risk_insuredAddress_lotunit.required = false;\r\n this.qs_risk_insuredAddress_lotunit.tabId = this.tabId;\r\n this.qs_risk_insuredAddress_lotunit.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress1 = new QuestionEntity(\r\n \"qs_risk_insuredAddress1\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress1.displayText = \"Address No 1\";\r\n this.qs_risk_insuredAddress1.readOnly = true;\r\n this.qs_risk_insuredAddress1.required = true;\r\n this.qs_risk_insuredAddress1.tabId = this.tabId;\r\n this.qs_risk_insuredAddress1.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredAddress2 = new QuestionEntity(\r\n \"qs_risk_insuredAddress2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredAddress2.displayText = \"Address No 2\";\r\n this.qs_risk_insuredAddress2.readOnly = true;\r\n this.qs_risk_insuredAddress2.required = false;\r\n this.qs_risk_insuredAddress2.tabId = this.tabId;\r\n this.qs_risk_insuredAddress2.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredPostalCode = new QuestionEntity(\r\n \"qs_risk_insuredPostalCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredPostalCode.displayText = \"PostCode\";\r\n this.qs_risk_insuredPostalCode.readOnly = true;\r\n this.qs_risk_insuredPostalCode.required = true;\r\n this.qs_risk_insuredPostalCode.tabId = this.tabId;\r\n this.qs_risk_insuredPostalCode.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredCity = new QuestionEntity(\r\n \"qs_risk_insuredCity\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredCity.displayText = \"City/Suburb\";\r\n this.qs_risk_insuredCity.readOnly = true;\r\n this.qs_risk_insuredCity.required = true;\r\n this.qs_risk_insuredCity.tabId = this.tabId;\r\n this.qs_risk_insuredCity.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredState = new QuestionEntity(\r\n \"qs_risk_insuredState\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredState.displayText = \"State\";\r\n this.qs_risk_insuredState.readOnly = true;\r\n this.qs_risk_insuredState.required = false;\r\n this.qs_risk_insuredState.tabId = this.tabId;\r\n this.qs_risk_insuredState.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_insuredCountry = new QuestionEntity(\r\n \"qs_risk_insuredCountry\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_insuredCountry.displayText = \"Country\";\r\n this.qs_risk_insuredCountry.readOnly = true;\r\n this.qs_risk_insuredCountry.required = true;\r\n this.qs_risk_insuredCountry.tabId = this.tabId;\r\n this.qs_risk_insuredCountry.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_risk_uploadRiskAddress = new QuestionEntity(\r\n \"qs_risk_uploadRiskAddress\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_risk_uploadRiskAddress.displayText = \"Uploaded risk address\";\r\n this.qs_risk_uploadRiskAddress.readOnly = true;\r\n this.qs_risk_uploadRiskAddress.required = false;\r\n this.qs_risk_uploadRiskAddress.tabId = this.tabId;\r\n this.qs_risk_uploadRiskAddress.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.masterDataService.getCountryList().subscribe((response) => {\r\n this.qs_risk_insuredCountry!.options = response;\r\n this.qs_risk_insuredCountry!.answer = \"SG\";\r\n });\r\n\r\n this.qs_fire_occupied = new QuestionEntity(\r\n \"qs_fire_occupied\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_occupied.displayText = \"Occupied as\";\r\n this.qs_fire_occupied.required = true;\r\n this.qs_fire_occupied.tabId = this.tabId;\r\n this.qs_fire_occupied.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n this.qs_master_manualUnderwritting = new QuestionEntity(\r\n \"qs_master_manualUnderwritting\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualUnderwritting.displayText = \"Manual Underwriting\";\r\n this.qs_master_manualUnderwritting.required = true;\r\n this.qs_master_manualUnderwritting.tabId = this.tabId;\r\n this.qs_master_manualUnderwritting.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_notes = new QuestionEntity(\r\n \"qs_fire_notes\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_notes.displayText = \"Additional Notes on occupancy\";\r\n this.qs_fire_notes.required = false;\r\n this.qs_fire_notes.tabId = this.tabId;\r\n this.qs_fire_notes.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_mcst = new QuestionEntity(\r\n \"qs_fire_mcst\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_mcst.displayText = \"MCST Number\";\r\n this.qs_fire_mcst.required = false;\r\n this.qs_fire_mcst.isVisible = false;\r\n this.qs_fire_mcst.tabId = this.tabId;\r\n this.qs_fire_mcst.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_replacement = new QuestionEntity(\r\n \"qs_fire_replacement\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_replacement.displayText =\r\n \"Fire Replacement Value / Sum Insured\";\r\n this.qs_fire_replacement.required = true;\r\n this.qs_fire_replacement.tabId = this.tabId;\r\n this.qs_fire_replacement.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_excess = new QuestionEntity(\r\n \"qs_fire_excess\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_excess.displayText = \"Excess\";\r\n this.qs_fire_excess.required = false;\r\n this.qs_fire_excess.tabId = this.tabId;\r\n this.qs_fire_excess.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_generalPage = new QuestionEntity(\r\n \"qs_fire_generalPage\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_generalPage.displayText = \"General Page\";\r\n this.qs_fire_generalPage.required = false;\r\n this.qs_fire_generalPage.tabId = this.tabId;\r\n this.qs_fire_generalPage.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_businessDesc = new QuestionEntity(\r\n \"qs_fire_businessDesc\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_businessDesc.displayText = \"Business Description\";\r\n this.qs_fire_businessDesc.required = false;\r\n this.qs_fire_businessDesc.tabId = this.tabId;\r\n this.qs_fire_businessDesc.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_interestedParties = new QuestionEntity(\r\n \"qs_fire_interestedParties\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_interestedParties.displayText = \"Interested Parties\";\r\n this.qs_fire_interestedParties.required = false;\r\n this.qs_fire_interestedParties.tabId = this.tabId;\r\n this.qs_fire_interestedParties.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_discussionNotes = new QuestionEntity(\r\n \"qs_fire_discussionNotes\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_discussionNotes.displayText = \"Discussion Note\";\r\n this.qs_fire_discussionNotes.required = false;\r\n this.qs_fire_discussionNotes.tabId = this.tabId;\r\n this.qs_fire_discussionNotes.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n // New IBG risk details\r\n this.qs_fire_natureBusiness = new QuestionEntity(\r\n \"qs_fire_natureBusiness\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_natureBusiness.displayText = \"Nature of Business\";\r\n this.qs_fire_natureBusiness.required = false;\r\n this.qs_fire_natureBusiness.tabId = this.tabId;\r\n this.qs_fire_natureBusiness.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_usagePremises = new QuestionEntity(\r\n \"qs_fire_usagePremises\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_usagePremises.displayText = \"Usage of Premises\";\r\n this.qs_fire_usagePremises.required = false;\r\n this.qs_fire_usagePremises.tabId = this.tabId;\r\n this.qs_fire_usagePremises.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_typeProperty = new QuestionEntity(\r\n \"qs_fire_typeProperty\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_typeProperty.displayText = \"Type Of Property\";\r\n this.qs_fire_typeProperty.required = true;\r\n this.qs_fire_typeProperty.tabId = this.tabId;\r\n this.qs_fire_typeProperty.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_freeInsuranceFirstYear = new QuestionEntity(\r\n \"qs_fire_freeInsuranceFirstYear\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_freeInsuranceFirstYear.displayText =\r\n \"Free Insurance for First Year\";\r\n this.qs_fire_freeInsuranceFirstYear.required = false;\r\n this.qs_fire_freeInsuranceFirstYear.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_fire_freeInsuranceFirstYear.tabId = this.tabId;\r\n this.qs_fire_freeInsuranceFirstYear.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_nameSolicitors = new QuestionEntity(\r\n \"qs_fire_nameSolicitors\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_nameSolicitors.displayText =\r\n \"Name of Solicitors (For HDB Shops only)\";\r\n this.qs_fire_nameSolicitors.required = false;\r\n this.qs_fire_nameSolicitors.tabId = this.tabId;\r\n this.qs_fire_nameSolicitors.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_machinery_equipment = new QuestionEntity(\r\n \"qs_machinery_equipment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_equipment.displayText = \"Equipment\";\r\n this.qs_machinery_equipment.required = true;\r\n this.qs_machinery_equipment.tabId = this.tabId;\r\n this.qs_machinery_equipment.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_lst = new QuestionEntity(\r\n \"qs_master_lst\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_lst.displayText = \"Local Surplus Treaty\";\r\n this.qs_master_lst.required = false;\r\n this.qs_master_lst.readOnly = true;\r\n this.qs_master_lst.options = [\r\n { key: \"Yes\", value: \"1\" },\r\n { key: \"No\", value: \"2\" },\r\n ];\r\n this.qs_master_lst.tabId = this.tabId;\r\n this.qs_master_lst.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_lstDetails = new QuestionEntity(\r\n \"qs_master_lstDetails\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_lstDetails.displayText = \"LST Details\";\r\n this.qs_master_lstDetails.required = false;\r\n this.qs_master_lstDetails.tabId = this.tabId;\r\n this.qs_master_lstDetails.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_equipment_description = new QuestionEntity(\r\n \"qs_fire_equipment_description\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_description.displayText = \"Description of Equipment\";\r\n this.qs_fire_equipment_description.required = false;\r\n this.qs_fire_equipment_description.tabId = this.tabId;\r\n this.qs_fire_equipment_description.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_equipment_type = new QuestionEntity(\r\n \"qs_fire_equipment_type\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_type.displayText = \"Type of Equipment\";\r\n this.qs_fire_equipment_type.required = false;\r\n this.qs_fire_equipment_type.tabId = this.tabId;\r\n this.qs_fire_equipment_type.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_equipment_financing = new QuestionEntity(\r\n \"qs_fire_equipment_financing\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_equipment_financing.displayText = \"Type of Financing\";\r\n this.qs_fire_equipment_financing.required = false;\r\n this.qs_fire_equipment_financing.tabId = this.tabId;\r\n this.qs_fire_equipment_financing.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_sumOfInsured = new QuestionEntity(\r\n \"qs_fire_sumOfInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_sumOfInsured.displayText = \"Sum Insured\";\r\n this.qs_fire_sumOfInsured.required = false;\r\n this.qs_fire_sumOfInsured.tabId = this.tabId;\r\n this.qs_fire_sumOfInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_building = new QuestionEntity(\r\n \"qs_fire_building\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_building.displayText = \"Building\";\r\n this.qs_fire_building.required = false;\r\n this.qs_fire_building.tabId = this.tabId;\r\n this.qs_fire_building.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_fire_householdContents = new QuestionEntity(\r\n \"qs_fire_householdContents\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_householdContents.displayText = \"Household contents\";\r\n this.qs_fire_householdContents.required = false;\r\n this.qs_fire_householdContents.readOnly = true;\r\n this.qs_fire_householdContents.tabId = this.tabId;\r\n this.qs_fire_householdContents.questionPanelId =\r\n MortgageFireSGSectionSchema.locationInsuredInfo.sectionId;\r\n\r\n this.qs_master_dateOfBirthOrIncorporation = new QuestionEntity(\r\n \"qs_master_dateOfBirthOrIncorporation\",\r\n undefined,\r\n Enums.AnswerDataType.Date\r\n );\r\n this.qs_master_dateOfBirthOrIncorporation.displayText = \"Date Of Birth\";\r\n this.qs_master_dateOfBirthOrIncorporation.required = true;\r\n this.qs_master_dateOfBirthOrIncorporation.readOnly = false;\r\n this.qs_master_dateOfBirthOrIncorporation.tabId = this.tabId;\r\n this.qs_master_dateOfBirthOrIncorporation.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_dateOfBirthOrIncorporation.maxValue = new Date();\r\n\r\n this.qs_master_clientContactPerson = new QuestionEntity(\r\n \"qs_master_clientContactPerson\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientContactPerson.displayText = \"Client Contact Person\";\r\n this.qs_master_clientContactPerson.required = false;\r\n this.qs_master_clientContactPerson.readOnly = false;\r\n this.qs_master_clientContactPerson.tabId = this.tabId;\r\n this.qs_master_clientContactPerson.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_clientContactPersonContactNo = new QuestionEntity(\r\n \"qs_master_clientContactPersonContactNo\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_clientContactPersonContactNo.displayText =\r\n \"Client Contact Person Contact No\";\r\n this.qs_master_clientContactPersonContactNo.required = false;\r\n this.qs_master_clientContactPersonContactNo.readOnly = false;\r\n this.qs_master_clientContactPersonContactNo.tabId = this.tabId;\r\n this.qs_master_clientContactPersonContactNo.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadSumInsured = new QuestionEntity(\r\n \"qs_machinery_uploadSumInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_machinery_uploadSumInsured.displayText = \"Uploaded Sum Insured\";\r\n this.qs_machinery_uploadSumInsured.required = false;\r\n this.qs_machinery_uploadSumInsured.readOnly = true;\r\n this.qs_machinery_uploadSumInsured.tabId = this.tabId;\r\n this.qs_machinery_uploadSumInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadTypeOfEquipment = new QuestionEntity(\r\n \"qs_machinery_uploadTypeOfEquipment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadTypeOfEquipment.displayText =\r\n \"Uploaded Type Of Equipment\";\r\n this.qs_machinery_uploadTypeOfEquipment.required = false;\r\n this.qs_machinery_uploadTypeOfEquipment.readOnly = true;\r\n this.qs_machinery_uploadTypeOfEquipment.tabId = this.tabId;\r\n this.qs_machinery_uploadTypeOfEquipment.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadEquipmentDescription = new QuestionEntity(\r\n \"qs_machinery_uploadEquipmentDescription\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadEquipmentDescription.displayText =\r\n \"Uploaded Equipment Description\";\r\n this.qs_machinery_uploadEquipmentDescription.required = false;\r\n this.qs_machinery_uploadEquipmentDescription.readOnly = true;\r\n this.qs_machinery_uploadEquipmentDescription.tabId = this.tabId;\r\n this.qs_machinery_uploadEquipmentDescription.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_machinery_uploadTypeOfFinancing = new QuestionEntity(\r\n \"qs_machinery_uploadTypeOfFinancing\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_machinery_uploadTypeOfFinancing.displayText =\r\n \"Uploaded Type Of Financing\";\r\n this.qs_machinery_uploadTypeOfFinancing.required = false;\r\n this.qs_machinery_uploadTypeOfFinancing.readOnly = true;\r\n this.qs_machinery_uploadTypeOfFinancing.tabId = this.tabId;\r\n this.qs_machinery_uploadTypeOfFinancing.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_uploadAdditionalInsured = new QuestionEntity(\r\n \"qs_master_uploadAdditionalInsured\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_uploadAdditionalInsured.displayText =\r\n \"Uploaded Additional Insured\";\r\n this.qs_master_uploadAdditionalInsured.required = false;\r\n this.qs_master_uploadAdditionalInsured.readOnly = true;\r\n this.qs_master_uploadAdditionalInsured.tabId = this.tabId;\r\n this.qs_master_uploadAdditionalInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_freeInsuranceNoYear = new QuestionEntity(\r\n \"qs_fire_freeInsuranceNoYear\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_fire_freeInsuranceNoYear.displayText =\r\n \"No. of Years – Free Insurance\";\r\n this.qs_fire_freeInsuranceNoYear.required = false;\r\n this.qs_fire_freeInsuranceNoYear.answer = 0;\r\n this.qs_fire_freeInsuranceNoYear.tabId = this.tabId;\r\n this.qs_fire_freeInsuranceNoYear.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2 = new QuestionEntity(\r\n \"qs_master_insuredNo2\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2.displayText =\r\n \"Business Registeration No / NRIC - 2nd Insured\";\r\n this.qs_master_insuredNo2.required = false;\r\n this.qs_master_insuredNo2.readOnly = true;\r\n this.qs_master_insuredNo2.tabId = this.tabId;\r\n this.qs_master_insuredNo2.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_insuredNo2.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2Nationality = new QuestionEntity(\r\n \"qs_master_insuredNo2Nationality\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2Nationality.displayText = \"Nationality\";\r\n this.qs_master_insuredNo2Nationality.required = false;\r\n this.qs_master_insuredNo2Nationality.readOnly = false;\r\n this.qs_master_insuredNo2Nationality.tabId = this.tabId;\r\n this.qs_master_insuredNo2Nationality.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_insuredNo2DocType = new QuestionEntity(\r\n \"qs_master_insuredNo2DocType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_insuredNo2DocType.displayText = \"Document Type\";\r\n this.qs_master_insuredNo2DocType.required = false;\r\n this.qs_master_insuredNo2DocType.readOnly = false;\r\n this.qs_master_insuredNo2DocType.tabId = this.tabId;\r\n this.qs_master_insuredNo2DocType.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_insuredNo2DocType.options = [\r\n { key: \"S - Singapore NRIC\", value: \"1\" },\r\n { key: \"S - Singapore PR\", value: \"2\" },\r\n { key: \"M - Malaysia IC\", value: \"3\" },\r\n { key: \"P - Foreign Passport\", value: \"4\" },\r\n ];\r\n\r\n this.qs_master_namesOtherInsured = new QuestionEntity(\r\n \"qs_master_namesOtherInsured\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_namesOtherInsured.displayText = \"Names other than Insured\";\r\n this.qs_master_namesOtherInsured.required = false;\r\n this.qs_master_namesOtherInsured.tabId = this.tabId;\r\n this.qs_master_namesOtherInsured.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_borrowerCIN = new QuestionEntity(\r\n \"qs_master_borrowerCIN\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_borrowerCIN.displayText = \"Borrower GCIN\";\r\n this.qs_master_borrowerCIN.required = false;\r\n this.qs_master_borrowerCIN.tabId = this.tabId;\r\n this.qs_master_borrowerCIN.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.masterDataService.getNationalityList().subscribe((response) => {\r\n this.nationalityList = response;\r\n this.qs_master_insuredNoNationality!.options = this.nationalityList;\r\n this.qs_master_insuredNo2Nationality!.options = this.nationalityList;\r\n });\r\n\r\n this.qs_master_premiumPayment = new QuestionEntity(\r\n \"qs_master_premiumPayment\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_premiumPayment.displayText = \"Premium Payment\";\r\n this.qs_master_premiumPayment.required = true;\r\n this.qs_master_premiumPayment.tabId = this.tabId;\r\n this.qs_master_premiumPayment.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_customerType = new QuestionEntity(\r\n \"qs_master_customerType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_customerType.displayText = \"Customer Type\";\r\n this.qs_master_customerType.required = true;\r\n this.qs_master_customerType.tabId = this.tabId;\r\n this.qs_master_customerType.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_collateralNumber = new QuestionEntity(\r\n \"qs_master_collateralNumber\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_collateralNumber.displayText = \"Collateral No\";\r\n this.qs_master_collateralNumber.required = true;\r\n this.qs_master_collateralNumber.tabId = this.tabId;\r\n this.qs_master_collateralNumber.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_discountCode = new QuestionEntity(\r\n \"qs_master_discountCode\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_discountCode.displayText = \"Code\";\r\n this.qs_master_discountCode.required = false;\r\n this.qs_master_discountCode.tabId = this.tabId;\r\n this.qs_master_discountCode.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_outstandingLoanValue = new QuestionEntity(\r\n \"qs_fire_outstandingLoanValue\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_outstandingLoanValue.displayText = \"Outstanding Loan Value\";\r\n this.qs_fire_outstandingLoanValue.required = false;\r\n this.qs_fire_outstandingLoanValue.tabId = this.tabId;\r\n this.qs_fire_outstandingLoanValue.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_fire_coverageValueType = new QuestionEntity(\r\n \"qs_fire_coverageValueType\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_fire_coverageValueType.displayText = \"Coverage Value Type\";\r\n this.qs_fire_coverageValueType.required = true;\r\n this.qs_fire_coverageValueType.tabId = this.tabId;\r\n this.qs_fire_coverageValueType.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_customDiscountCode = new QuestionEntity(\r\n \"qs_master_customDiscountCode\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_customDiscountCode.displayText = \"Custom Code\";\r\n this.qs_master_customDiscountCode.required = false;\r\n this.qs_master_customDiscountCode.tabId = this.tabId;\r\n this.qs_master_customDiscountCode.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_brokerFirstName!);\r\n this.questions.push(this.qs_master_brokerLastName!);\r\n this.questions.push(this.qs_master_brokerOrganizationName!);\r\n\r\n this.questions.push(this.qs_master_insuredNo!);\r\n this.questions.push(this.qs_master_insuredNoNationality!);\r\n this.questions.push(this.qs_master_insuredNoDocType!);\r\n this.questions.push(this.qs_master_insuredName!);\r\n this.questions.push(this.qs_master_replacePolicyNo!);\r\n this.questions.push(this.qs_master_masterPolicyNumber!);\r\n this.questions.push(this.qs_master_planType!);\r\n this.questions.push(this.qs_master_poi_startDate!);\r\n this.questions.push(this.qs_master_poi_endDate!);\r\n\r\n //// 12/10/2018 : Chirag Added Code For FreeInsurance Start/End Date\r\n this.questions.push(this.qs_master_FreeIns_startDate!);\r\n this.questions.push(this.qs_master_FreeIns_endDate!);\r\n\r\n this.questions.push(this.qs_master_financialBranch!);\r\n this.questions.push(this.qs_master_bankReferNumber!);\r\n this.questions.push(this.qs_master_assetClassCode!);\r\n this.questions.push(this.qs_master_assetSerialNumber!);\r\n this.questions.push(this.qs_master_effectiveDate!);\r\n\r\n this.questions.push(this.qs_location_occupation!);\r\n this.questions.push(this.qs_location_riskAddress1!);\r\n this.questions.push(this.qs_location_riskAddress2!);\r\n\r\n this.questions.push(this.qs_risk_floating!);\r\n this.questions.push(this.qs_risk_sameAsAddress!);\r\n this.questions.push(this.qs_risk_insuredAddress_building!);\r\n this.questions.push(this.qs_risk_insuredAddress_lotunit!);\r\n this.questions.push(this.qs_risk_insuredAddress1!);\r\n this.questions.push(this.qs_risk_insuredAddress2!);\r\n this.questions.push(this.qs_risk_insuredPostalCode!);\r\n this.questions.push(this.qs_risk_insuredCity!);\r\n this.questions.push(this.qs_risk_insuredState!);\r\n this.questions.push(this.qs_risk_insuredCountry!);\r\n\r\n //// 24/01/2019 : Chirag Added Code For Mobile/Email\r\n ////DBSEP-252 : Client Info Update\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_Email!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_MobileNo!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod_CorrAddress!);\r\n this.questions.push(this.qs_master_mobileNumber!);\r\n this.questions.push(this.qs_master_emailID!);\r\n this.questions.push(this.qs_master_salutation!);\r\n this.questions.push(this.qs_master_clientName!);\r\n this.questions.push(this.qs_master_passport!);\r\n this.questions.push(this.qs_master_nric!);\r\n this.questions.push(this.qs_master_occupation!);\r\n this.questions.push(this.qs_master_birthDate!);\r\n this.questions.push(this.qs_master_race!);\r\n this.questions.push(this.qs_master_nationality!);\r\n this.questions.push(this.qs_master_gender!);\r\n this.questions.push(this.qs_master_maritalStatus!);\r\n this.questions.push(this.qs_master_phoneNoHome!);\r\n this.questions.push(this.qs_master_phoneNoOffice!);\r\n this.questions.push(this.qs_master_faxNumber!);\r\n this.questions.push(this.qs_master_cin!);\r\n this.questions.push(this.qs_master_preferredDeliveryMethod!);\r\n this.questions.push(this.qs_master_insuredAddress_building!);\r\n this.questions.push(this.qs_master_insuredAddress_lotunit!);\r\n this.questions.push(this.qs_master_insuredAddress1!);\r\n this.questions.push(this.qs_master_insuredAddress2!);\r\n this.questions.push(this.qs_master_insuredPostalCode!);\r\n this.questions.push(this.qs_master_insuredCity!);\r\n this.questions.push(this.qs_master_insuredState!);\r\n this.questions.push(this.qs_master_insuredCountry!);\r\n\r\n // this.questions.push(this.qs_fire_situation);\r\n this.questions.push(this.qs_fire_occupied!);\r\n this.questions.push(this.qs_master_miRate!);\r\n this.questions.push(this.qs_fire_notes!);\r\n this.questions.push(this.qs_fire_excess!);\r\n this.questions.push(this.qs_fire_mcst!);\r\n this.questions.push(this.qs_fire_replacement!);\r\n this.questions.push(this.qs_fire_generalPage!);\r\n this.questions.push(this.qs_fire_businessDesc!);\r\n this.questions.push(this.qs_fire_interestedParties!);\r\n this.questions.push(this.qs_fire_discussionNotes!);\r\n\r\n // New IBG fields\r\n this.questions.push(this.qs_master_buPcCode!);\r\n this.questions.push(this.qs_master_uploadBuPcCode!);\r\n this.questions.push(this.qs_master_busReg1stInsured!);\r\n this.questions.push(this.qs_master_busReg2ndInsured!);\r\n this.questions.push(this.qs_master_additionalInsured!);\r\n this.questions.push(this.qs_master_otherInsuredName!);\r\n this.questions.push(this.qs_master_rmName!);\r\n this.questions.push(this.qs_master_rmContactNo!);\r\n this.questions.push(this.qs_master_rmRemarks!);\r\n this.questions.push(this.qs_master_insuredAddress!);\r\n this.questions.push(this.qs_master_insuredNo2!);\r\n this.questions.push(this.qs_master_insuredNo2Nationality!);\r\n this.questions.push(this.qs_master_insuredNo2DocType!);\r\n this.questions.push(this.qs_master_namesOtherInsured!);\r\n this.questions.push(this.qs_master_borrowerCIN!);\r\n\r\n this.questions.push(this.qs_fire_natureBusiness!);\r\n this.questions.push(this.qs_fire_usagePremises!);\r\n this.questions.push(this.qs_fire_typeProperty!);\r\n this.questions.push(this.qs_fire_freeInsuranceFirstYear!);\r\n this.questions.push(this.qs_fire_nameSolicitors!);\r\n this.questions.push(this.qs_fire_equipment_description!);\r\n this.questions.push(this.qs_fire_equipment_type!);\r\n this.questions.push(this.qs_fire_equipment_financing!);\r\n this.questions.push(this.qs_fire_sumOfInsured!);\r\n this.questions.push(this.qs_fire_building!);\r\n this.questions.push(this.qs_fire_householdContents!);\r\n this.questions.push(this.qs_machinery_equipment!);\r\n this.questions.push(this.qs_risk_uploadRiskAddress!);\r\n this.questions.push(this.qs_master_endorse_endorsementReason!);\r\n this.questions.push(this.qs_master_refund!);\r\n this.questions.push(this.qs_master_waiveMinimumPremium!);\r\n this.questions.push(this.qs_master_cancellation_masterpiece!);\r\n this.questions.push(this.qs_master_cancellation_maximumAdjustmentAmount!);\r\n this.questions.push(this.qs_master_cancellation_adjustmentAmount!);\r\n this.questions.push(this.qs_master_insuredIndustry!);\r\n this.questions.push(this.qs_master_occupancyRate!);\r\n this.questions.push(this.qs_master_insuredIndustry_desc!);\r\n\r\n this.questions.push(this.qs_master_dateOfBirthOrIncorporation!);\r\n this.questions.push(this.qs_master_clientContactPerson!);\r\n this.questions.push(this.qs_master_clientContactPersonContactNo!);\r\n this.questions.push(this.qs_machinery_uploadSumInsured!);\r\n this.questions.push(this.qs_machinery_uploadTypeOfEquipment!);\r\n this.questions.push(this.qs_machinery_uploadEquipmentDescription!);\r\n this.questions.push(this.qs_machinery_uploadTypeOfFinancing!);\r\n this.questions.push(this.qs_fire_freeInsuranceNoYear!);\r\n this.questions.push(this.qs_master_uploadAdditionalInsured!);\r\n\r\n this.questions.push(this.qs_master_lst!);\r\n this.questions.push(this.qs_master_lstDetails!);\r\n\r\n this.questions.push(this.qs_master_manualUnderwritting!);\r\n\r\n //Citi\r\n this.questions.push(this.qs_master_premiumPayment!);\r\n this.questions.push(this.qs_master_customerType!);\r\n this.questions.push(this.qs_master_collateralNumber!);\r\n this.questions.push(this.qs_master_discountCode!);\r\n this.questions.push(this.qs_fire_outstandingLoanValue!);\r\n this.questions.push(this.qs_fire_coverageValueType!);\r\n this.questions.push(this.qs_master_customDiscountCode!);\r\n }\r\n}\r\n","import * as Enums from \"../../../../../../../framework/enum.shared\";\r\n\r\nimport { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireSGSectionSchema } from \"../schemas/mf-sg-section-schema\";\r\nimport { MortgageFireSGTabSchema } from \"./../schemas/mf-sg-tab-schema\";\r\nimport { ProposalEntity } from \"./../../../../../base/proposal-entity.model\";\r\nimport { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { QuestionSection } from \"./../../../../../base/question-section\";\r\nimport { common } from \"./../../../../../../../framework/utils/common\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\n\r\nexport class MortgageFireSingaporePremiumSummaryQuestionSection extends QuestionSection {\r\n qs_master_brokerCommission!: QuestionEntity;\r\n qs_master_brokerCommissionRate!: QuestionEntity;\r\n qs_master_commission!: QuestionEntity;\r\n qs_master_commissionGst!: QuestionEntity;\r\n qs_master_commissionPayable!: QuestionEntity;\r\n\r\n // Premium summary\r\n qs_master_manualReferral!: QuestionEntity;\r\n qs_master_manualReferralReason!: QuestionEntity;\r\n\r\n //Citibank\r\n qs_master_netCommOffsetWithDiscount!: QuestionEntity;\r\n\r\n constructor(public override masterDataService: MasterDataService) {\r\n super(MortgageFireSGTabSchema.premiumSummary.index, masterDataService);\r\n }\r\n\r\n initializeQuestionSchema() {\r\n this.qs_master_brokerCommission = new QuestionEntity(\r\n \"qs_master_brokerCommission\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_brokerCommission.displayText = \"Commission\";\r\n this.qs_master_brokerCommission.readOnly = true;\r\n this.qs_master_brokerCommission.required = true;\r\n this.qs_master_brokerCommission.tabId = this.tabId;\r\n this.qs_master_brokerCommission.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_brokerCommissionRate = new QuestionEntity(\r\n \"qs_master_brokerCommissionRate\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_brokerCommissionRate.displayText = \"Commission Rate\";\r\n this.qs_master_brokerCommissionRate.readOnly = true;\r\n this.qs_master_brokerCommissionRate.required = true;\r\n this.qs_master_brokerCommissionRate.tabId = this.tabId;\r\n this.qs_master_brokerCommissionRate.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commission = new QuestionEntity(\r\n \"qs_master_commission\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commission.displayText = \"Commission Amount\";\r\n this.qs_master_commission.readOnly = true;\r\n this.qs_master_commission.required = true;\r\n this.qs_master_commission.tabId = this.tabId;\r\n this.qs_master_commission.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commissionGst = new QuestionEntity(\r\n \"qs_master_commissionGst\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commissionGst.displayText = \"GST on Commission\";\r\n this.qs_master_commissionGst.readOnly = true;\r\n this.qs_master_commissionGst.required = true;\r\n this.qs_master_commissionGst.tabId = this.tabId;\r\n this.qs_master_commissionGst.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_commissionPayable = new QuestionEntity(\r\n \"qs_master_commissionPayable \",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_commissionPayable.displayText = \"Commission Payable\";\r\n this.qs_master_commissionPayable.readOnly = true;\r\n this.qs_master_commissionPayable.required = true;\r\n this.qs_master_commissionPayable.tabId = this.tabId;\r\n this.qs_master_commissionPayable.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n\r\n this.qs_master_manualReferral = new QuestionEntity(\r\n \"qs_master_manualReferral\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualReferral.displayText =\r\n \"Would you like to manually refer to Underwriter?\";\r\n this.qs_master_manualReferral.required = true;\r\n this.qs_master_manualReferral.tabId = this.tabId;\r\n this.qs_master_manualReferral.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n this.qs_master_manualReferral.defaultAnswer = \"2\";\r\n this.qs_master_manualReferral.answer = \"2\";\r\n\r\n this.qs_master_manualReferralReason = new QuestionEntity(\r\n \"qs_master_manualReferralReason\",\r\n undefined,\r\n Enums.AnswerDataType.String\r\n );\r\n this.qs_master_manualReferralReason.displayText =\r\n \"Refer to underwriter reason\";\r\n this.qs_master_manualReferralReason.required = false;\r\n this.qs_master_manualReferralReason.tabId = this.tabId;\r\n this.qs_master_manualReferralReason.isVisible = false;\r\n this.qs_master_manualReferralReason.questionPanelId =\r\n MortgageFireSGSectionSchema.master.sectionId;\r\n\r\n this.qs_master_netCommOffsetWithDiscount = new QuestionEntity(\r\n \"qs_master_netCommOffsetWithDiscount\",\r\n undefined,\r\n Enums.AnswerDataType.Numeric\r\n );\r\n this.qs_master_netCommOffsetWithDiscount.displayText =\r\n \"Nett Comm Offset with Discount\";\r\n this.qs_master_netCommOffsetWithDiscount.readOnly = true;\r\n this.qs_master_netCommOffsetWithDiscount.required = true;\r\n this.qs_master_netCommOffsetWithDiscount.tabId = this.tabId;\r\n this.qs_master_netCommOffsetWithDiscount.questionPanelId =\r\n MortgageFireSGSectionSchema.premiumSummary.sectionId;\r\n }\r\n\r\n refreshQuestionsArray() {\r\n this.questions = [];\r\n this.questions.push(this.qs_master_brokerCommission);\r\n this.questions.push(this.qs_master_brokerCommissionRate);\r\n this.questions.push(this.qs_master_commission);\r\n this.questions.push(this.qs_master_manualReferral);\r\n this.questions.push(this.qs_master_manualReferralReason);\r\n this.questions.push(this.qs_master_commissionGst);\r\n this.questions.push(this.qs_master_netCommOffsetWithDiscount);\r\n this.questions.push(this.qs_master_commissionPayable);\r\n }\r\n}\r\n","import { QuestionEntity } from \"./../../../../../base/question-entity.model\";\r\nimport { Rule } from \"./../../../../../base/rule.model\";\r\nimport { MortgageFireSingaporeProposal } from \"./../mf-sg-proposal\";\r\n\r\nexport class MortgageFireSingaporeBusinessRuleSchema {\r\n manualRefer: Rule;\r\n ibgSI!: Rule;\r\n backDatedPOI: Rule;\r\n backDatedLoanRedemption: Rule;\r\n // changeOfSIEndorsementType: Rule;\r\n changeOfdAddressEndorsementType: Rule;\r\n cancellationRefer: Rule;\r\n makeRedundantRefer: Rule;\r\n cancellationReferBackdated: Rule;\r\n loanRedemptionReferBackdated: Rule;\r\n manualUnderwritingRefer: Rule;\r\n loanRedemptionReinstatementMessage: Rule;\r\n renewalYearPendingCheckerMessage: Rule;\r\n previousYearPendingCheckerMessage: Rule;\r\n ibgMACSI: Rule;\r\n\r\n constructor(private proposal: MortgageFireSingaporeProposal) {\r\n this.manualRefer = new Rule(\r\n \"REF01\",\r\n \"Manual Refer\",\r\n this.proposal.qsPremiumSummary.qs_master_manualReferral\r\n );\r\n this.ibgSI = new Rule(\r\n \"REF02\",\r\n \"Sum Insured greater than $3M\",\r\n this.proposal.qsMaster.qs_fire_replacement\r\n );\r\n this.backDatedPOI = new Rule(\r\n \"REF03\",\r\n \"Backdating insurance start date\",\r\n this.proposal.qsMaster.qs_master_poi_startDate\r\n );\r\n this.backDatedLoanRedemption = new Rule(\r\n \"REF13\",\r\n \"Loan Redemption backdating effective date\",\r\n this.proposal.qsMaster.qs_master_poi_startDate\r\n );\r\n // this.changeOfSIEndorsementType =\r\n // new Rule('REF04', 'Modify Sum Insured Endorsement', this.proposal.qsMaster.qs_master_endorse_endorsementReason);\r\n this.changeOfdAddressEndorsementType = new Rule(\r\n \"REF04\",\r\n \"Modify Correspondence Address Endorsement Requested\",\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason\r\n );\r\n this.cancellationRefer = new Rule(\r\n \"REF05\",\r\n \"Cancellation Adjustment Requested\",\r\n this.proposal.qsMaster.qs_master_cancellation_adjustmentAmount\r\n );\r\n\r\n this.makeRedundantRefer = new Rule(\r\n \"REF12\",\r\n \"Renewal Draft Redundant Requested\",\r\n this.proposal.qsMaster.qs_master_endorse_endorsementReason\r\n );\r\n\r\n this.cancellationReferBackdated = new Rule(\r\n \"REF06\",\r\n \"Cancellation backdating greater than 7 days\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.manualUnderwritingRefer = new Rule(\r\n \"REF07\",\r\n \"Manual Underwriting is selected\",\r\n this.proposal.qsMaster.qs_master_manualUnderwritting\r\n );\r\n\r\n this.loanRedemptionReferBackdated = new Rule(\r\n \"REF08\",\r\n \"Loan redemption backdating greater than 14 days\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.loanRedemptionReinstatementMessage = new Rule(\r\n \"REF09\",\r\n \"Previous year policy is currently being loan redeemed and is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.renewalYearPendingCheckerMessage = new Rule(\r\n \"REF10\",\r\n \"Previous year policy is currently is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n\r\n this.previousYearPendingCheckerMessage = new Rule(\r\n \"REF11\",\r\n \"Current year policy is currently is in Pending Checker status\",\r\n this.proposal.qsMaster.qs_master_effectiveDate\r\n );\r\n //DBSEP-2136\r\n this.ibgMACSI = new Rule(\r\n \"REF12\",\r\n \"Sum Insured greater than $3M\",\r\n this.proposal.qsMaster.qs_machinery_equipment\r\n );\r\n }\r\n}\r\n","import { GUID } from \"./../../../../../../../framework/domain-entity/guid\";\r\nimport { MortgageFireSGTabSchema } from \"./mf-sg-tab-schema\";\r\nimport { Section } from \"./../../../../../base/section.model\";\r\n\r\nclass MortgageFireSingaporeSectionSchema {\r\n sections!: Section[];\r\n master!: Section;\r\n locationInsuredInfo!: Section;\r\n materialDamage!: Section;\r\n businessInterruption!: Section;\r\n money!: Section;\r\n premiumSummary!: Section;\r\n\r\n constructor() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.master = new Section(\r\n \"Master\",\r\n new GUID(\"5C4BEC68-94B7-4D7F-B5D6-F7003D1748CF\"),\r\n MortgageFireSGTabSchema.master.index\r\n );\r\n\r\n this.locationInsuredInfo = new Section(\r\n \"Location Details\",\r\n new GUID(\"C3651266-87DE-44E5-97C0-8258137906A4\"),\r\n MortgageFireSGTabSchema.locations.index\r\n );\r\n this.materialDamage = new Section(\r\n \"Material Damage\",\r\n new GUID(\"95902C96-166B-4093-8DA2-D784E21628EA\"),\r\n MortgageFireSGTabSchema.locations.index\r\n );\r\n\r\n this.businessInterruption = new Section(\r\n \"Business Interruption\",\r\n new GUID(\"2D01A81C-B8E1-4057-8B96-3A66254CFA1A\"),\r\n MortgageFireSGTabSchema.businessInterruption.index\r\n );\r\n\r\n this.money = new Section(\r\n \"Money\",\r\n new GUID(\"B4A2ABDF-555A-48DE-8F0A-D68BAD994DE3\"),\r\n MortgageFireSGTabSchema.money.index\r\n );\r\n this.premiumSummary = new Section(\r\n \"Premium Summary\",\r\n new GUID(\"B4A2ABDF-555A-48DE-8F0A-D68BAD994DE3\"),\r\n MortgageFireSGTabSchema.premiumSummary.index\r\n );\r\n\r\n this.sections = [];\r\n this.sections.push(this.master);\r\n this.sections.push(this.locationInsuredInfo);\r\n this.sections.push(this.materialDamage);\r\n this.sections.push(this.businessInterruption);\r\n this.sections.push(this.money);\r\n this.sections.push(this.premiumSummary);\r\n }\r\n}\r\n\r\nexport const MortgageFireSGSectionSchema =\r\n new MortgageFireSingaporeSectionSchema();\r\n","import { SectionTab } from \"./../../../../../base/section-tab.model\";\r\n\r\nclass MortgageFireSingaporeTabSchema {\r\n tabs!: SectionTab[];\r\n master!: SectionTab;\r\n locations!: SectionTab;\r\n businessInterruption!: SectionTab;\r\n money!: SectionTab;\r\n premiumSummary!: SectionTab;\r\n\r\n constructor() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.master = new SectionTab(\"Master\", 0);\r\n this.locations = new SectionTab(\"Locations\", 2);\r\n this.businessInterruption = new SectionTab(\"Business Interruption\", 3);\r\n this.money = new SectionTab(\"Money\", 4);\r\n this.premiumSummary = new SectionTab(\"Premium Summary\", 1);\r\n\r\n this.tabs = [];\r\n this.tabs.push(this.master);\r\n this.tabs.push(this.locations);\r\n this.tabs.push(this.businessInterruption);\r\n this.tabs.push(this.money);\r\n this.tabs.push(this.premiumSummary);\r\n }\r\n}\r\n\r\nexport const MortgageFireSGTabSchema = new MortgageFireSingaporeTabSchema();\r\n","import { QuestionEntityValidator } from \"./../../../../../base/validator/question-entity.validator\";\r\nimport { Echos } from \"../../../../../base/echos.model\";\r\nimport { QuestionEntity } from \"../../../../../base/question-entity.model\";\r\n//import lodash = require('lodash');\r\nimport { concat } from \"lodash\";\r\nimport { proposalHelper } from \"../../../../../utils/proposal.helper\";\r\nimport { Echo } from \"../../../../../base/echo.model\";\r\nimport { SectionTab } from \"../../../../../base/section-tab.model\";\r\nimport { QuestionTheme } from \"../../../../../../../framework/enum.shared\";\r\n\r\nexport class MortgageFireSingaporeQuestionEntityValidator extends QuestionEntityValidator {\r\n constructor(\r\n private questionsSg: QuestionEntity[],\r\n private tabSchemasSg: SectionTab[]\r\n ) {\r\n super(questionsSg, tabSchemasSg);\r\n }\r\n\r\n override validate(callback?: (echosToAdd: Echos) => void) {\r\n let pValidationEchos = super.validate(callback);\r\n\r\n if (pValidationEchos === null) {\r\n pValidationEchos = Array>();\r\n }\r\n\r\n const postalCodeEchoArray: Array> =\r\n Array>();\r\n\r\n const echoRiskPostalCodeValidation = this.validateRiskPostalCode();\r\n if (echoRiskPostalCodeValidation) {\r\n postalCodeEchoArray.push(echoRiskPostalCodeValidation);\r\n }\r\n\r\n const results = this.convertToEchos(postalCodeEchoArray);\r\n\r\n if (pValidationEchos.length > 0) {\r\n for (let index = 0; index < pValidationEchos.length; index++) {\r\n const value = pValidationEchos[index];\r\n results.forEach((nValue, nIndex) => {\r\n if (nValue.title === value.title) {\r\n pValidationEchos[index].echos = concat(\r\n pValidationEchos[index].echos,\r\n results[nIndex].echos\r\n );\r\n } else {\r\n pValidationEchos.push(nValue);\r\n }\r\n });\r\n }\r\n } else {\r\n pValidationEchos = results;\r\n }\r\n\r\n if (pValidationEchos.length > 0) {\r\n return pValidationEchos;\r\n }\r\n\r\n return Array>();\r\n }\r\n\r\n validateRiskPostalCode = (): Echo | null => {\r\n const insuredPostalCode = this.questionsSg.filter((value) => {\r\n return value.key === \"qs_risk_insuredPostalCode\";\r\n });\r\n\r\n if (insuredPostalCode.length > 0) {\r\n return this.validateProposalPostalCodes(insuredPostalCode[0]);\r\n }\r\n\r\n return null;\r\n };\r\n\r\n validateProposalPostalCodes = (\r\n question: QuestionEntity\r\n ): Echo | null => {\r\n if (question.answer.length === 0) {\r\n return null;\r\n }\r\n\r\n const isValid = this.checkPostalCodeFormat(question.answer);\r\n if (!isValid) {\r\n question.theme = QuestionTheme.Danger;\r\n return proposalHelper.buildQuestionEntityEcho(\r\n \"Invalid \" + question.displayText + \" Format\",\r\n question\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n checkPostalCodeFormat = (postalCodes: string): boolean => {\r\n const reg = /(^(\\d{6}\\/)*(\\d{6})$)/;\r\n return reg.test(postalCodes);\r\n };\r\n}\r\n","import { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\n\r\nclass MortgageFireSingaporeSettings {\r\n hdbProductId = new GUID(\"2396885E-49F6-43F6-A314-47D727AB888F\");\r\n tpeProductId = new GUID(\"6FAF6BEE-F5FC-4DC2-9F75-37FE2D61611D\");\r\n mipProductId = new GUID(\"565E9075-9F73-45C0-BA5C-A78AC05BA837\");\r\n ibgMFProductId = new GUID(\"06CB09D3-6FE0-4695-92A8-A61DFB627C61\");\r\n ibgMacProductId = new GUID(\"8533FA05-F190-4A29-9613-3DB7F693DD32\");\r\n citiHdbProductId = new GUID(\"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\");\r\n citiMFPTEProductId = new GUID(\"1F7EE805-C8CE-416C-AF29-292E920878F8\");\r\n citiMFCondoProductID = new GUID(\"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\");\r\n\r\n workspace: string = \"library/module/new-product/sme/mortgage-fire/singapore\";\r\n\r\n MAR_ConstructionMachineryType = \"5372b784-9f92-4591-adfe-0ddffc1baa7f\";\r\n MAR_CranesMachineryType = \"9b25f776-4983-4014-bc04-1c9029e99911\";\r\n MAR_IndustrialMachineryType = \"abd448d1-7fa5-4e7c-bacf-0afb4c581805\";\r\n\r\n ARC_ConstructionMachineryType = \"3ca94a88-7792-4c71-9594-61d29f339317\";\r\n ARC_MedicalMachineryType = \"53d4868c-9b5a-4dd3-ac74-1cf4b95ff67d\";\r\n ARC_OfficeMachineryType = \"ef3e4f53-7dbc-46f3-8fa2-1f5017e2ee0d\";\r\n ARC_IndustrialMachineryType = \"ed4c42ef-dc3b-4959-808f-0be6c4946727\";\r\n}\r\n\r\nexport const mortgageFireSingaporeSettings: MortgageFireSingaporeSettings =\r\n new MortgageFireSingaporeSettings();\r\n","import * as MfEnum from \"./../../singapore/base/mf-sg-enums\";\r\n\r\nimport { ExceptionManager } from \"./../../../../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../../../../framework/domain-entity/guid\";\r\nimport { mortgageFireSingaporeSettings } from \"./../const/mf-sg-const\";\r\n\r\nclass MortgageFireSingaporeHelper {\r\n readProductType(productId: GUID) {\r\n switch (productId.toString()) {\r\n case mortgageFireSingaporeSettings.hdbProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.HDB;\r\n\r\n case mortgageFireSingaporeSettings.tpeProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.PTE;\r\n\r\n case mortgageFireSingaporeSettings.mipProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.MIP;\r\n\r\n case mortgageFireSingaporeSettings.ibgMFProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.IBGMF;\r\n\r\n case mortgageFireSingaporeSettings.ibgMacProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.IBGMAC;\r\n\r\n case mortgageFireSingaporeSettings.citiHdbProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.CTHDB;\r\n case mortgageFireSingaporeSettings.citiMFPTEProductId.toString():\r\n return MfEnum.MortgageFireSgProduct.CTMFPTE;\r\n case mortgageFireSingaporeSettings.citiMFCondoProductID.toString():\r\n return MfEnum.MortgageFireSgProduct.CTMFCONDO;\r\n default:\r\n ExceptionManager.error(\"Unhandled\");\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport const mortgageFireSingaporeHelper = new MortgageFireSingaporeHelper();\r\n","//import { Application } from './../../application';\r\nimport { KeyValue } from \"./../../../framework/domain-entity/key-value\";\r\nimport { pageLifeCycleNotifier } from \"./../notifier/page-life-cycle-notifier\";\r\n\r\nclass ComponentHelper {\r\n notifyPageLoaded(pageName: string, eventArgs: any) {\r\n //todo\r\n // $(document).ready(() => {\r\n // Application.angular_$timeout()(() => {\r\n // pageLifeCycleNotifier\r\n // .page_loaded_notifier$.next(new KeyValue(pageName, eventArgs));\r\n // }, 10);\r\n // });\r\n }\r\n\r\n notifyPageUnload(pageName: string, eventArgs: any) {\r\n //todo\r\n // $(document).ready(() => {\r\n // Application.angular_$timeout()(() => {\r\n // pageLifeCycleNotifier\r\n // .page_unload_notifier$.next(new KeyValue(pageName, eventArgs));\r\n // }, 10);\r\n // });\r\n }\r\n}\r\n\r\nexport const componentHelper = new ComponentHelper();\r\n","import * as Enums from \"./../../../framework/enum.shared\";\r\nimport * as lodash from \"lodash\";\r\n\r\nimport { Echo } from \"./../base/echo.model\";\r\nimport { Echos } from \"./../base/echos.model\";\r\nimport { ExceptionManager } from \"./../../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../../framework/domain-entity/guid\";\r\nimport { Proposal } from \"./../base/proposal.model\";\r\nimport { ProposalEntity } from \"./../base/proposal-entity.model\";\r\nimport { ProposalPackage } from \"../base/proposal-package-model\";\r\nimport { QuestionEntity } from \"./../base/question-entity.model\";\r\nimport { SectionTab } from \"./../base/section-tab.model\";\r\nimport { common } from \"./../../../framework/utils/common\";\r\nimport { proposalEntityFactory } from \"./../factory/proposal-entity.factory\";\r\n\r\nclass ProposalHelper {\r\n /** Method to extract and generate a new QuestionEntity array with only containing the question key and answer */\r\n formQuestionEntity(\r\n questions: QuestionEntity[],\r\n loadedProposalEntity: ProposalEntity\r\n ) {\r\n // console.log(loadedProposalEntity);\r\n const entities: QuestionEntity[] = [];\r\n\r\n if (common.isDefined(loadedProposalEntity.questionDictionary)) {\r\n questions.forEach((q) => {\r\n if (common.isDefined(loadedProposalEntity.getQuestion(q.key))) {\r\n const entity = new QuestionEntity(q.key, q.answer);\r\n entities.push(entity);\r\n } else {\r\n // console.log('[' + q.key + '] is not in loadedProposalEntity.questionDictionary');\r\n }\r\n });\r\n } else {\r\n ExceptionManager.error(\r\n \"loadedProposalEntity.questionDictionary is undefined\"\r\n );\r\n }\r\n\r\n return entities;\r\n }\r\n\r\n searchChildren(proposals: T[], proposalId: GUID): T {\r\n const found = lodash.find(proposals, (child) => {\r\n return child.proposalId!.toId() === proposalId.toId();\r\n });\r\n\r\n return found as T;\r\n }\r\n emailValidation = (value: string): boolean => {\r\n var reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n if (reg.test(value)) return true;\r\n else return false;\r\n };\r\n\r\n phoneValidation = (value: string): boolean => {\r\n var reg = /^\\+?[0-9]+$/;\r\n // const inputValue = parseInt(value.trim());\r\n if (\r\n value.length == 8 &&\r\n value !== \"\" &&\r\n reg.test(value) &&\r\n (value.toString()[0] == \"9\" || value.toString()[0] == \"8\")\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n phoneHkValidation = (value: string): boolean => {\r\n var reg = /^\\+?[0-9]+$/;\r\n // const inputValue = parseInt(value.trim());\r\n if (value !== \"\" && reg.test(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n convertToEchos(echos: Echo[]) {\r\n const result: Echos[] = [];\r\n const groups = lodash.chain(echos).groupBy(\"info\").value();\r\n\r\n for (const key in groups) {\r\n if (common.isDefined(key)) {\r\n const e = new Echos(\"\", groups[key] as Echo[]);\r\n e.info = key;\r\n result.push(e);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n convertTitleToTabIntoEchos(\r\n echos: Echos,\r\n tabSchemas: SectionTab[]\r\n ) {\r\n // Echos.title was assigned as question.tabId.toString();\r\n const tabId = parseInt(echos.info, 10);\r\n const foundTab = lodash.find(tabSchemas, (tab) => {\r\n return tab.index === tabId;\r\n });\r\n\r\n echos.title = foundTab!.displayText;\r\n return echos;\r\n }\r\n\r\n buildQuestionEntityEcho(\r\n message: string,\r\n question: QuestionEntity\r\n ): Echo {\r\n const echo = new Echo(message);\r\n echo.key = question.key;\r\n echo.entity = question;\r\n echo.title = \"\";\r\n echo.info = question.tabId;\r\n\r\n return echo;\r\n }\r\n\r\n constructProposalPackageEntityForServer(\r\n proposal: ProposalPackage,\r\n loadedProposalEntity: ProposalEntity,\r\n callback?: (proposalEntity: ProposalEntity) => void\r\n ): ProposalEntity {\r\n // extract policy level answers\r\n const returnProposalEntity = this.constructProposalEntityForServer(\r\n proposal,\r\n loadedProposalEntity,\r\n callback\r\n );\r\n\r\n // capture locations data\r\n if (common.isDefined(proposal.children) && proposal.children.length > 0) {\r\n returnProposalEntity.children = [];\r\n proposal.children.forEach((childProposal) => {\r\n const childProposalEntity = this.constructProposalEntityForServer(\r\n childProposal,\r\n loadedProposalEntity,\r\n callback\r\n );\r\n returnProposalEntity.children?.push(childProposalEntity);\r\n });\r\n }\r\n\r\n //HE-28\r\n if (common.isDefined(proposal.addtionalEndorsementType)) {\r\n returnProposalEntity.addtionalEndorsementType =\r\n proposal.addtionalEndorsementType;\r\n }\r\n\r\n if (common.isDefined(proposal.clausesDeductibles)) {\r\n returnProposalEntity.clausesDeductiblesTable =\r\n proposal.clausesDeductibles;\r\n }\r\n\r\n return returnProposalEntity;\r\n }\r\n\r\n constructProposalEntityForServer(\r\n proposal: Proposal,\r\n loadedProposalEntity: ProposalEntity,\r\n callback?: (proposalEntity: ProposalEntity) => void\r\n ): ProposalEntity {\r\n // extract policy level answers\r\n const questions = proposalHelper.formQuestionEntity(\r\n proposal.extractQuestionArray(),\r\n loadedProposalEntity\r\n );\r\n const returnProposalEntity = proposalEntityFactory.build(\r\n questions,\r\n proposal.productId,\r\n proposal.proposalId\r\n );\r\n\r\n if (common.isDefined(callback)) {\r\n callback!(returnProposalEntity);\r\n }\r\n\r\n return returnProposalEntity;\r\n }\r\n}\r\n\r\nexport const proposalHelper: ProposalHelper = new ProposalHelper();\r\n","class ReportHelper {\r\n getTaxInvoiceRow(\r\n referenceNumber: string,\r\n forAdMonth: string,\r\n reportExtractedDate: string,\r\n totalGrossPremium: number,\r\n totalGST: number,\r\n totalPremium: number,\r\n reportName: string,\r\n segment: string\r\n ): Array<{}> {\r\n // Sheet 3 - Tax Invoice\r\n const rows3: any = [];\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"CHUBB®\", bold: true, textAlign: \"left\", fontSize: 20 },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"Chubb Insurance Singapore Limited\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"Co Regn. No.: 199702449H\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"GST Registration no.: 199702449H\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"138 Market Street\",\r\n bold: false,\r\n fontFamily: \"Georgia\",\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"#11-01 CapitaGreen\",\r\n bold: false,\r\n fontFamily: \"Georgia\",\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"Singapore 048946\",\r\n bold: false,\r\n fontFamily: \"Georgia\",\r\n textAlign: \"left\",\r\n fontSize: 9,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"Summary of Tax Invoice\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 18,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n height: 25,\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"Reference Number:-\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\", fontSize: 11 },\r\n {\r\n value: referenceNumber,\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"DBS Bank Ltd\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"Date:-\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: reportExtractedDate,\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n },\r\n ],\r\n });\r\n\r\n var address1 = \"\";\r\n if (segment != \"CBG\") {\r\n address1 = \"IBG Ops - Corporate Loans\";\r\n } else {\r\n address1 = \"Credit Operations\";\r\n }\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: address1,\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"2 Changi Business Park Crescent\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n var address2 = \"\";\r\n if (segment != \"CBG\") {\r\n address2 = \"#04-06 DBS Asia Hub (Lobby B)\";\r\n } else {\r\n address2 = \"#07-03 DBS Asia Hub (Lobby A)\";\r\n }\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: address2,\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"Singapore 486029\",\r\n bold: false,\r\n fontFamily: \"Georgia\",\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n var attendTo = \"\";\r\n if (segment != \"CBG\") {\r\n attendTo = \"Attn : Zuraida\";\r\n } else {\r\n attendTo = \"Attn : Melcia Chen\";\r\n }\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: attendTo,\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n color: \"#ff0000\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n var description = \"\";\r\n description =\r\n reportName == \"AD\"\r\n ? \"Description of Payment – Auto Debit\"\r\n : reportName == \"FI\"\r\n ? \"Description of Payment – Free Insurance\"\r\n : \"\";\r\n rows3.push({\r\n cells: [\r\n {\r\n value: description,\r\n fontFamily: \"Georgia\",\r\n verticalAlign: \"center\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n borderTop: { color: \"#000000\", size: 3 },\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderTop: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderTop: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderTop: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderTop: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderRight: { color: \"#000000\", size: 3 },\r\n borderTop: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n height: 50,\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"For the month of:-\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: forAdMonth,\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n underline: true,\r\n },\r\n {\r\n value: \"(schedule as per attached)\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"Premium:-\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"S$\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: totalGrossPremium,\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"right\",\r\n fontSize: 11,\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"GST:-\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"S$\",\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: totalGST,\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"right\",\r\n fontSize: 11,\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n {\r\n value: \"Amount Due:-\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"S$\",\r\n bold: true,\r\n fontFamily: \"Georgia\",\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: totalPremium,\r\n fontFamily: \"Georgia\",\r\n bold: true,\r\n textAlign: \"right\",\r\n fontSize: 11,\r\n borderRight: { color: \"#000000\", size: 3 },\r\n borderTop: { color: \"#000000\", size: 3 },\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n borderLeft: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: false,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n },\r\n {\r\n value: \"\",\r\n bold: true,\r\n textAlign: \"left\",\r\n borderBottom: { color: \"#000000\", size: 3 },\r\n borderRight: { color: \"#000000\", size: 3 },\r\n },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"Note:-\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value:\r\n \"Payment should be arranged to the following bank account, quoting the reference number:-\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"BENEFICIARY'S NAME:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"CHUBB INSURANCE SINGAPORE LTD - SIF CD\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"BANK'S NAME:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"DBS Bank Ltd\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"BANK'S ADDRESS:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value:\r\n \"12 Marina Boulevard, DBS Asia Central, Marina Bay Financial Centre Tower 3, Singapore 018982\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"COUNTRY:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"SINGAPORE\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"BANK CODE:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"7171\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"BRANCH CODE:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"003\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"SGD ACCOUNT NO.:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"003-952178-2\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"SWIFT CODE:\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n {\r\n value: \"DBSSSGSG\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n { value: \"\", bold: true, textAlign: \"left\" },\r\n ],\r\n });\r\n\r\n rows3.push({\r\n cells: [\r\n {\r\n value: \"No official receipt will be issued\",\r\n fontFamily: \"Georgia\",\r\n bold: false,\r\n textAlign: \"left\",\r\n fontSize: 11,\r\n },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n { value: \"\", bold: false, textAlign: \"left\" },\r\n ],\r\n });\r\n return rows3;\r\n }\r\n}\r\n\r\nexport const reportHelper: ReportHelper = new ReportHelper();\r\n","import * as InterfaceProduct from \"../../framework/interface.product\";\r\nimport { Global } from \"../../shared/global\";\r\nimport { ProposalEntity } from \"../new-product/base/proposal-entity.model\";\r\n\r\n/** Base class of all mapper */\r\nexport abstract class BaseMapper\r\n implements InterfaceProduct.IProposalModelMapper\r\n{\r\n abstract map(TSource: TSource | ProposalEntity): TDestination;\r\n abstract reverseMap(\r\n TDestination: TDestination | InterfaceProduct.IProposalApiModel\r\n ): TSource;\r\n\r\n mapList(sourceList: Array): Array {\r\n if (Global.isUndefined(sourceList)) return new Array(); //undefined;\r\n\r\n let returnList: Array = new Array();\r\n sourceList.forEach((source) => {\r\n returnList.push(this.map(source));\r\n });\r\n\r\n return returnList;\r\n }\r\n\r\n reverseMapList(destinationList: Array): Array {\r\n if (Global.isUndefined(destinationList)) return new Array(); //undefined;\r\n\r\n let returnList: Array = new Array();\r\n destinationList.forEach((destination) => {\r\n returnList.push(this.reverseMap(destination));\r\n });\r\n\r\n return returnList;\r\n }\r\n}\r\n","import { CurrencyPipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"ausCurrency\",\r\n})\r\nexport class AusCurrencyPipe extends CurrencyPipe implements PipeTransform {\r\n override transform(value: any, decimal?: any, symbol?: any): any {\r\n /* https://angular.io/api/common/CurrencyPipe\r\n\r\n {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\r\n\r\n minIntegerDigits: The minimum number of integer digits before the decimal point. Default is 1.\r\n minFractionDigits: The minimum number of digits after the decimal point. Default is 2.\r\n maxFractionDigits: The maximum number of digits after the decimal point. Default is 2. If not provided, the number will be formatted with the proper amount of digits, depending on what the ISO 4217 specifies. For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\r\n Optional. Default is undefined.\r\n\r\n */\r\n let fractionSize = \"1.0-2\";\r\n if (decimal != undefined) {\r\n fractionSize = \"1.2-\" + decimal; //todo: check if works\r\n }\r\n let formatedByCurrencyPipe = super.transform(\r\n value !== \"\" ? value : 0,\r\n symbol,\r\n \"symbol\",\r\n fractionSize\r\n );\r\n return formatedByCurrencyPipe;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { common } from \"../framework/utils/common\";\r\n\r\n@Pipe({\r\n name: \"newLines\",\r\n})\r\nexport class NewLinesPipe implements PipeTransform {\r\n transform(value: any, ...args: unknown[]): unknown {\r\n if (value != null) {\r\n if (common.isDefined(value) && value.length > 0)\r\n return value.replace(/\\r\\n|\\r|\\n/gi, \"
\");\r\n\r\n return value;\r\n }\r\n return value;\r\n }\r\n}\r\n","import { DecimalPipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { Global } from \"../shared/global\";\r\n\r\n@Pipe({\r\n name: \"percentNoSymbol\",\r\n})\r\nexport class PercentNoSymbolPipe extends DecimalPipe implements PipeTransform {\r\n override transform(value: any, decimal?: any, symbol?: any): any {\r\n if (Global.isUndefined(value)) {\r\n value = 0;\r\n }\r\n\r\n let fractionSize = \"1.2-2\";\r\n if (decimal != undefined) {\r\n fractionSize = \"1.2-\" + decimal; //todo: check if works\r\n }\r\n let formatedByCurrencyPipe = super.transform(value, fractionSize);\r\n return formatedByCurrencyPipe;\r\n }\r\n}\r\n","import { DecimalPipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"percentage\",\r\n})\r\nexport class PercentagePipe extends DecimalPipe implements PipeTransform {\r\n override transform(value: any, decimal?: any, symbol?: any): any {\r\n /* https://angular.io/api/common/PercentPipe\r\n \r\n {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\r\n\r\n minIntegerDigits: The minimum number of integer digits before the decimal point. Default is 1.\r\n minFractionDigits: The minimum number of digits after the decimal point. Default is 0.\r\n maxFractionDigits: The maximum number of digits after the decimal point. Default is 0.\r\n Optional. Default is undefined.\r\n\r\n */\r\n let fractionSize = \"0.0-0\"; //\"1.2-2\";\r\n if (decimal) {\r\n fractionSize = \"1.2-\" + decimal; //todo: check if works\r\n }\r\n let formatedByCurrencyPipe = super.transform(value, fractionSize);\r\n return formatedByCurrencyPipe + \" %\";\r\n }\r\n}\r\n","export const locales = [\r\n {\r\n locale: 'English',\r\n localeId: 'en-US'\r\n },\r\n {\r\n locale: 'French',\r\n localeId: 'fr'\r\n },\r\n {\r\n locale: 'Spanish',\r\n localeId: 'es'\r\n }\r\n];\r\n","import { HttpClient, HttpHeaders, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { DialogWrapperService } from \"../dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"../error-handler/error-handler.service\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Observable } from \"rxjs\";\r\n//import { Identity } from \"../../extensions/user/identity\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { ApiService } from \"../dal/api.service\";\r\nimport { identity } from \"lodash\";\r\nimport { Router } from \"@angular/router\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthorizationService extends ApiService {\r\n private urltoken = \"token\";\r\n\r\n constructor(\r\n private identity: Identity,\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService,\r\n private router: Router\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n public GetUrlDetails(data: any, url: string) {\r\n return this.httpPostCallLogin(\r\n this.getHeaderForAuthentication(),\r\n this.constructEndPoint(url),\r\n data,\r\n encodeURIComponent(data)\r\n );\r\n }\r\n\r\n protected encodeURIComponent(obj: any) {\r\n var str = [];\r\n for (var p in obj)\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n return str.join(\"&\");\r\n }\r\n\r\n public login(loginData: any): Observable {\r\n // // broadcast login event\r\n // AuthenticationEvent.login();\r\n const data = {\r\n grant_type: \"password\",\r\n username: loginData.userName,\r\n password: loginData.password,\r\n client_id: environment.client,\r\n };\r\n\r\n let body = `grant_type=${\"password\"}&client_id=${\r\n environment.client\r\n }&username=${\"\" + loginData.userName + \"\"}&password=${\r\n \"\" + loginData.password + \"\"\r\n }`;\r\n let options = {\r\n headers: this.getHeaderForAuthentication(),\r\n };\r\n\r\n return this.httpClient.post(\r\n this.constructEndPoint(this.urltoken),\r\n body,\r\n options\r\n );\r\n\r\n // $http({\r\n // method: 'POST',\r\n // url: appSettings.apiBaseUri + \"token\",\r\n // headers: { 'Content-Type': 'multipart/form-data' },\r\n // data: { username: loginData.userName, password: loginData.password, grant_type: 'password', client_id: \"ams-localhost\" },\r\n // transformRequest: function (obj) {\r\n // var str = [];\r\n // for (var p in obj)\r\n // str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n // return str.join(\"&\");\r\n // }\r\n // }).success(function (response)\r\n // {\r\n // // populate authentication data to Identity\r\n // Identity.storeAuthData(response);\r\n\r\n // // //response2FA = response;\r\n // // // if session token is undefined, go to korea 2FA\r\n // // if (angular.isUndefined(response.sessionToken)) {\r\n // // if (!response.isKoreaVestpinTwoFA) {\r\n // // throw new error('Forbidden');\r\n // // }\r\n // // deferred.resolve(response);\r\n // // } else {\r\n\r\n // // // if user is trying to login as different user\r\n // // if (isDifferentUser) {\r\n // // // logout the current user without clearing _lastLoginUser object\r\n // // logout(true);\r\n\r\n // // if (angular.isDefined(fnNotSameAsPreviousUser)) {\r\n // // return fnNotSameAsPreviousUser();\r\n // // }\r\n // // }\r\n\r\n // // Debugger.log('logged in succeed')\r\n\r\n // // populating the current user\r\n // this.Identity.populateCurrentUser(true)\r\n // .then(function () {\r\n\r\n // // setup auto refresh token;\r\n // TokenRefresher.start();\r\n\r\n // // broadcast login success event\r\n // AuthenticationEvent.loginSuccess();\r\n\r\n // // ping server to indicate alive session\r\n // ping();\r\n\r\n // // resolve response\r\n // deferred.resolve(response);\r\n\r\n // }, function (err) {\r\n // deferred.reject(err);\r\n // });\r\n // }\r\n\r\n // }).error(function (err, status) {\r\n\r\n // Debugger.log('login failed')\r\n\r\n // // broadcast login failed event\r\n // AuthenticationEvent.loginFailed();\r\n\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n }\r\n}\r\n","import { formatDate } from \"@angular/common\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport {\r\n AllPoliciesDownloadEntity,\r\n SearchCriteria,\r\n} from \"../components/accounting/batch-invoice/models/batch-invoice-list.model\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class BatchInvoiceListService extends ApiService {\r\n SERVER_URL_BATCH_INVOICE_SEARCH: string = \"api/invoice/search\";\r\n SERVER_URL_BATCH_INVOICE_HISTORY = \"api/openitem/getOpenItemHistory/\";\r\n SERVER_URL_BATCH_INVOICE_EXPORT = \"api/openitem/export\";\r\n SERVER_URL_BATCH_INVOICE_DETAILS = \"api/openitem/get/\";\r\n SERVER_URL_BATCH_PROCESSING = \"api/invoice/doOpenItemBatchProcessing/\";\r\n SERVER_URL_BATCH_NUMBER_SEARCH = \"api/invoice/getOpenItemListByBatchNumber/\";\r\n SERVER_URL_BATCH_NUMBER_UPDATE =\r\n \"api/invoice/updateOpenItemInvoiceNumberByBatchId/\";\r\n SERVER_URL_BATCH_DOWNLOAD_ALL = \"api/invoice/downloadAll\";\r\n\r\n format: string = \"yyyy/MM/dd\";\r\n locale: string = \"en-US\";\r\n allPoliciesDownloadEntityList: any;\r\n\r\n headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n });\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n public searchBatchInvoiceListing(querystring: string) {\r\n return this.httpClient.post(\r\n environment.serviceBase + this.SERVER_URL_BATCH_INVOICE_SEARCH,\r\n querystring,\r\n {\r\n headers: this.headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n public getBatchInvoiceHistory(openItemId: string) {\r\n return this.httpClient.get(\r\n environment.serviceBase +\r\n this.SERVER_URL_BATCH_INVOICE_HISTORY +\r\n `${openItemId}`\r\n );\r\n }\r\n public getBatchInvoiceDetails(openItemId: string) {\r\n return this.httpClient.get(\r\n environment.serviceBase +\r\n this.SERVER_URL_BATCH_INVOICE_DETAILS +\r\n `${openItemId}`\r\n );\r\n }\r\n public exportBatchInvoiceListing(querystring: string) {\r\n return this.httpClient.post(\r\n environment.serviceBase + this.SERVER_URL_BATCH_INVOICE_EXPORT,\r\n querystring,\r\n {\r\n headers: this.headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n doBatchAndExportHandler(data: any) {\r\n return this.httpClient.put(\r\n environment.serviceBase + this.SERVER_URL_BATCH_PROCESSING,\r\n data\r\n );\r\n }\r\n\r\n doSearchInvoiceNumberHandler(data: any) {\r\n const params = {\r\n batchId: data,\r\n };\r\n return this.httpClient.get(\r\n environment.serviceBase + this.SERVER_URL_BATCH_NUMBER_SEARCH,\r\n { headers: this.headers, params: params }\r\n );\r\n }\r\n\r\n doUpdateInvoiceNumberHandler(batchId: any, invoiceNo: any) {\r\n const params = {\r\n batchId: batchId,\r\n invoiceNumber: invoiceNo,\r\n };\r\n return this.httpClient.put(\r\n environment.serviceBase + this.SERVER_URL_BATCH_NUMBER_UPDATE,\r\n \"\",\r\n { headers: this.headers, params: params }\r\n );\r\n }\r\n\r\n async doDownloadAllPoliciesHandler(\r\n data: SearchCriteria\r\n ): Promise {\r\n this.allPoliciesDownloadEntityList = [];\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n\r\n let postData: any = data;\r\n\r\n if (data.effectiveDateFrom === undefined) {\r\n postData.effectiveDateFrom = \"2199-12-31\";\r\n }\r\n if (data.effectiveDateTo === undefined) {\r\n postData.effectiveDateTo = \"2199-12-31\";\r\n }\r\n const params = {\r\n effectiveDateFrom: formatDate(\r\n postData.effectiveDateFrom,\r\n this.format,\r\n this.locale\r\n ),\r\n effectiveDateTo: formatDate(\r\n postData.effectiveDateTo,\r\n this.format,\r\n this.locale\r\n ),\r\n policyNo: postData.policyNo,\r\n batchId: postData.batchId,\r\n segments: postData.segments,\r\n statusIds: postData.statusIds,\r\n productIds: postData.productIds,\r\n policyeffectiveDateFrom: formatDate(\r\n postData.policyeffectiveDateFrom,\r\n this.format,\r\n this.locale\r\n ),\r\n policyeffectiveDateTo: formatDate(\r\n postData.policyeffectiveDateTo,\r\n this.format,\r\n this.locale\r\n ),\r\n };\r\n const response = await this.httpClient\r\n .post(\r\n environment.serviceBase + this.SERVER_URL_BATCH_DOWNLOAD_ALL,\r\n postData,\r\n { headers: headers }\r\n )\r\n .toPromise();\r\n if (response) this.allPoliciesDownloadEntityList = response.d.results;\r\n return this.allPoliciesDownloadEntityList;\r\n }\r\n}\r\n","// header.service.ts\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { Proposal } from \"../models/new-product/base/proposal.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class BroadcastService {\r\n onAutheticated = new Subject<{}>();\r\n onRoleSet = new Subject<{}>();\r\n onProposalFailedNotifier = new Subject<{ kv: KeyValue }>();\r\n\r\n constructor() {}\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ClausesDeductiblesService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n public searchClausesAndWarrantiesListing(\r\n querystring: string,\r\n lastPath = \"getHaseEndorsementList\"\r\n ) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n environment.serviceBase + \"api/product/haseClause/\" + lastPath, //this.url,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public getAllHaseList(querystring: string, lastPath = \"getHaseAllList\") {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n environment.serviceBase + \"api/product/haseClause/\" + lastPath, //this.url,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public createHaseEndorsementClause(querystring: string) {\r\n return this.searchClausesAndWarrantiesListing(\r\n querystring,\r\n \"createHaseEndorsementClause\"\r\n );\r\n }\r\n\r\n public updateHaseEndorsementClause(querystring: string) {\r\n return this.searchClausesAndWarrantiesListing(\r\n querystring,\r\n \"updateHaseEndorsementClause\"\r\n );\r\n }\r\n\r\n public deleteHaseEndorsementClause(querystring: string) {\r\n return this.searchClausesAndWarrantiesListing(\r\n querystring,\r\n \"deleteHaseEndorsementClause\"\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { DocumentService } from \"./document/document.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ClientTimelineService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService,\r\n public documentService: DocumentService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n getMessage(proposalId: any) {\r\n var uri = \"api/proposal/getMessage\";\r\n var params = {\r\n proposalId: proposalId,\r\n };\r\n var data = {};\r\n return this.get(uri, params, data);\r\n }\r\n\r\n saveMultiyearOption(serverModel: any) {\r\n return this.saveConsent(serverModel);\r\n }\r\n\r\n saveConsent(newMessage: any) {\r\n var uri = \"api/proposal/saveConsent\";\r\n var params = {};\r\n var data = {};\r\n return this.add(uri, params, newMessage);\r\n }\r\n}\r\n","import { EventEmitter, Injectable, Output } from '@angular/core';\r\nimport { MessageService } from '@progress/kendo-angular-l10n';\r\n\r\nimport { enComponentMessages, enCustomMessages } from '../messages/en-US';\r\nimport { esComponentMessages, esCustomMessages } from '../messages/es';\r\nimport { frComponentMessages, frCustomMessages } from '../messages/fr';\r\n\r\nconst componentMsgs: any = {\r\n ['en-US']: enComponentMessages,\r\n ['es']: esComponentMessages,\r\n ['fr']: frComponentMessages\r\n};\r\n\r\nconst customMsgs: any = {\r\n ['en-US']: enCustomMessages,\r\n ['es']: esCustomMessages,\r\n ['fr']: frCustomMessages\r\n};\r\n\r\n@Injectable()\r\nexport class CustomMessagesService extends MessageService {\r\n @Output() public localeChange = new EventEmitter();\r\n private localeId: string = 'en-US';\r\n\r\n public set language(value: string) {\r\n const locale = componentMsgs[value];\r\n if (locale) {\r\n this.localeId = value;\r\n this.localeChange.emit();\r\n this.notify();\r\n }\r\n }\r\n\r\n public get language(): string {\r\n return this.localeId;\r\n }\r\n\r\n private get messages(): any {\r\n const messages = componentMsgs[this.localeId];\r\n if (messages) {\r\n return messages;\r\n }\r\n }\r\n\r\n public override get(key: string): string {\r\n return this.messages[key];\r\n }\r\n\r\n // Translate custom messages\r\n public translate(word: string): string {\r\n const messages = customMsgs[this.localeId];\r\n return messages[word];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ApiService } from \"../dal/api.service\";\r\n// import { AppSettings } from './../appSettings';\r\n// import { Application } from './../application';\r\n// import { ClientAddressEntity } from './base/client-address-entity.model';\r\nimport { ClientEntity } from \"src/app/models/customer/base/client-entity.model\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { of } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\";\r\n// import { Global } from '../shared/global';\r\n// import { common } from './../framework/utils/common';\r\n// import { notifier } from '../framework/utils/notifier';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ClientService {\r\n clientDictionary: { [key: string]: ClientEntity };\r\n\r\n constructor(private apiService: ApiService, private httpClient: HttpClient) {\r\n this.clientDictionary = {};\r\n }\r\n\r\n //DBSEP-2063: Add new function to check existing policies of the client code\r\n FindExistingPoliciesForClient(clientId: number, clientCode: string) {\r\n const clientEntity: ClientEntity = new ClientEntity();\r\n clientEntity.clientId = clientId;\r\n clientEntity.clientCode = clientCode;\r\n const postData: string = JSON.stringify(clientEntity);\r\n\r\n // get from back end and cached\r\n\r\n const uri = \"api/client/FindExistingPoliciesForClient\";\r\n\r\n // generate post back model\r\n return this.apiService.add(uri, {}, postData).pipe(\r\n map(\r\n (response: any) => {\r\n // console.log(\"searchPersonCustomer response : \" + response);\r\n return response;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n create(client: any) {\r\n const postData: string = JSON.stringify(client);\r\n const uri = \"api/client/save\";\r\n // generate post back model\r\n return this.apiService.add(uri, {}, postData);\r\n }\r\n\r\n get(clientId: number, clientCode?: string) {\r\n const clientEntity: ClientEntity = new ClientEntity();\r\n clientEntity.clientId = clientId;\r\n clientEntity.clientCode = clientCode;\r\n const postData: string = JSON.stringify(clientEntity);\r\n\r\n if (\r\n common.isDefined(clientId) &&\r\n common.isDefined(this.clientDictionary[clientId.toString()])\r\n ) {\r\n return of(this.clientDictionary[clientId.toString()]);\r\n } else {\r\n // get from back end and cached\r\n const uri = \"api/client/get\";\r\n\r\n // generate post back model\r\n return this.apiService.add(uri, {}, postData).pipe(\r\n map(\r\n (response: any) => {\r\n let body = response?.body; //in new angular\r\n this.clientDictionary[body.clientId.toString()] = body;\r\n return this.clientDictionary[body.clientId.toString()];\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n }\r\n\r\n public search(querystring: string) {\r\n // get from back end and cached\r\n const uri = \"api/client/search\";\r\n\r\n // // generate post back model\r\n // return this.apiService.add(uri, {}, querystring).pipe(\r\n // map(\r\n // (response: any) => {\r\n // let body = response?.body; //in new angular\r\n // this.clientDictionary[body.clientId.toString()] = body;\r\n // return this.clientDictionary[body.clientId.toString()];\r\n // },\r\n // (error: any) => {\r\n // return error;\r\n // }\r\n // )\r\n // );\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + uri,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n}\r\n","// import { Application } from '../../application';\r\n// import * as Enum from '../../framework/enum.shared';\r\n//import * as Interface from \"../../extensions/framework/interface.shared\";\r\nimport * as Interface from \"../../framework/interface.shared\";\r\n// import { Global } from '../global';\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\";\r\n//import { common } from \"src/app/core/extensions/framework/utils/common\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ErrorHandlerService } from \"../error-handler/error-handler.service\";\r\nimport { DialogWrapperService } from \"../dialog/dialog-wrapper.service\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\n/*\r\n\r\n http://www.restapitutorial.com/lessons/httpmethods.html\r\n\r\n HTTP Verb\tEntire Collection (e.g. /customers)\tSpecific Item (e.g. /customers/{id})\r\n GET\t200 (OK), list of customers. Use pagination, sorting and filtering to navigate big lists.\t200 (OK),\r\n single customer. 404 (Not Found), if ID not found or invalid.\r\n PUT\t404 (Not Found), unless you want to update/replace every resource in the entire collection.\r\n 200 (OK) or 204 (No Content). 404 (Not Found), if ID not found or invalid.\r\n POST\t201 (Created), 'Location' header with link to /customers/{id} containing new ID.\t404 (Not Found).\r\n DELETE\t404 (Not Found), unless you want to delete the whole collection—not often desirable.\t200 (OK).\r\n 404 (Not Found), if ID not found or invalid.\r\n\r\n * */\r\n//const angular: ng.IAngularStatic = Application.angular;\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ApiService implements Interface.IApi {\r\n constructor(\r\n // private $q: ng.IQService,\r\n protected httpClient: HttpClient,\r\n // private $resource: ng.resource.IResourceService, // private $timeout: ng.ITimeoutService, // private Navigator: any, // private appSettings: Interface.IAppSettings, // private Debugger: any,\r\n protected errorHandlerService: ErrorHandlerService,\r\n // private AuthenticationEvent: any,\r\n //private localStorageService: LocalStorageService,\r\n protected dialog: DialogWrapperService\r\n ) {}\r\n\r\n // private static _instance: Interface.IApi;\r\n // private dialog: any;\r\n // private modalInstance: any;\r\n\r\n // static get instance(): Interface.IApi {\r\n // if (Global.isUndefined(this._instance)) {\r\n // if (Application.mode === Enum.ApplicationMode.browser) {\r\n // this._instance = Application.angularInjectionObject('Api');\r\n // } else {\r\n // throw new Error('not browser mode Api mock not implemented yet');\r\n // }\r\n // }\r\n\r\n // return this._instance;\r\n // }\r\n\r\n private errorHandling(error: any) {\r\n //todo\r\n //Global.closeProcessingOverlay();\r\n let errorMessage = \"\";\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n switch (error.status) {\r\n case 403:\r\n //todo: trigger dialog service\r\n // Application.angular_Identity().clearAuthData();\r\n // const State = Application.angular_$state();\r\n // this.dialog = Application.angularInjectionObject('Dialog');\r\n //todo: new dlg template\r\n this.dialog.modalMedium(\r\n \"shared/partials/mdSharedLogoutMessage/SharedLogoutMessage.html\",\r\n \"SharedLogoutMessageController\",\r\n errorMessage,\r\n this.modalLogout_OnClose,\r\n undefined,\r\n \"\",\r\n \"\",\r\n undefined,\r\n \"standardModal\"\r\n );\r\n break;\r\n default:\r\n throw error;\r\n }\r\n\r\n return throwError(() => {\r\n return errorMessage;\r\n });\r\n }\r\n\r\n // tslint:disable-next-line: variable-name\r\n private modalLogout_OnClose = () => {\r\n // do nothing\r\n };\r\n\r\n private responseHandling(response: any): T {\r\n // handling for web service end point consume\r\n if (environment.responseType.toLowerCase() === \"webserviceresultdata\") {\r\n if (response.s !== 200) {\r\n // not OK http status\r\n this.errorHandlerService.handle(response.e.m, true, response.e.t);\r\n return response as T;\r\n } else {\r\n return JSON.parse(response.d) as T;\r\n }\r\n } else {\r\n return response as T;\r\n }\r\n }\r\n\r\n // private httpResponseHandling(response: ng.IHttpPromiseCallbackArg, serviceUri: string): T {\r\n // const httpHeader = response.headers();\r\n\r\n // switch (response.status) {\r\n // case 200:\r\n // return response.data as T;\r\n\r\n // default:\r\n // console.log(httpHeader);\r\n // throw new Error('http response status: ' + response.data.toString());\r\n // }\r\n // }\r\n\r\n /** Concantenate server uri with end point */\r\n protected constructEndPoint(serviceUri: string): string {\r\n return environment.serviceBase + serviceUri; //this.appSettings.apiBaseUri + serviceUri;\r\n }\r\n\r\n /** Amend paramters before process */\r\n private processParams(parameters: any, cache: boolean = false) {\r\n if (common.isDefined(parameters)) {\r\n if (!cache) {\r\n // add a busting parameters to prevent $http cache issue\r\n parameters[\"cachekill\"] = new Date().getTime();\r\n }\r\n } else {\r\n if (!cache) {\r\n parameters = {\r\n cachekill: new Date().getTime(),\r\n };\r\n }\r\n }\r\n }\r\n\r\n getApiData(uri: string, cache: boolean = true): Observable {\r\n let serviceUri = this.constructEndPoint(uri);\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n });\r\n\r\n return this.httpGetCall(headers, serviceUri, { cache: cache }).pipe(\r\n catchError(this.errorHandling)\r\n );\r\n }\r\n\r\n /** Method for get object request by posting query string as input. GET method */\r\n get(\r\n serviceUri: string,\r\n parameters: any,\r\n postData: any,\r\n isServiceApiEndPoint: boolean = true,\r\n cache: boolean = false\r\n ): Observable {\r\n this.processParams(parameters, cache);\r\n if (isServiceApiEndPoint) {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n }\r\n\r\n return this.httpGetCall(\r\n //TODO: sosola\r\n //this.getHeaderAsJson(),\r\n this.getHeaderAsEncodedFormUrl(),\r\n\r\n serviceUri,\r\n parameters\r\n ).pipe(catchError(this.errorHandling));\r\n }\r\n\r\n // /** Method for add new item request by posting object as input. POST method */\r\n add(serviceUri: string, parameters: any, postData: any): Observable {\r\n return this.search(serviceUri, parameters, postData);\r\n }\r\n\r\n /** Method for search request by posting object as input. POST method */\r\n search(serviceUri: string, parameters: any, postData: any) {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n //https://www.freakyjolly.com/angular-promises-example-with-http-handler/\r\n return this.httpPostCall(this.getHeaderAsJson(), serviceUri, postData);\r\n\r\n // .toPromise();\r\n\r\n // return promise.then(\r\n // (response: any) => {\r\n // // Success callback\r\n // return this.responseHandling(response);\r\n // },\r\n // (error: any) => {\r\n // // Error callback\r\n // return this.errorHandling(error, serviceUri);\r\n // }\r\n // );\r\n }\r\n\r\n protected getHeaderAsEncodedFormUrl(): HttpHeaders {\r\n return new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n }\r\n\r\n protected getHeaderAsJson(): HttpHeaders {\r\n return new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n \"Content-Type\": \"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n }\r\n\r\n protected getHeaderForAuthentication(): HttpHeaders {\r\n return new HttpHeaders({\r\n // Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n // \"Content-Type\": \"multipart/form-data\",\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n }\r\n\r\n protected httpPostCall(\r\n headers: HttpHeaders,\r\n serviceUri: string,\r\n postData: any\r\n ): Observable {\r\n return this.httpClient\r\n .post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n serviceUri,\r\n postData,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n //observe: \"events\",\r\n observe: \"response\",\r\n }\r\n )\r\n .pipe(catchError(this.errorHandling));\r\n }\r\n\r\n protected httpPostCallLogin(\r\n headers: HttpHeaders,\r\n serviceUri: string,\r\n postData: any,\r\n transformRequest: string\r\n ) {\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n serviceUri,\r\n transformRequest,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n //observe: \"events\",\r\n observe: \"response\",\r\n }\r\n );\r\n }\r\n\r\n protected httpGetCall(\r\n headers: HttpHeaders,\r\n serviceUri: string,\r\n params?: any\r\n ) {\r\n return this.httpClient\r\n .get(serviceUri, {\r\n headers: headers, //,\r\n\r\n params: params,\r\n })\r\n .pipe(catchError(this.errorHandling));\r\n }\r\n protected httpDownloadCall(\r\n headers: HttpHeaders,\r\n serviceUri: string,\r\n params: any\r\n ) {\r\n return this.httpClient\r\n .get(serviceUri, {\r\n headers: headers, //,\r\n params: params,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n })\r\n .pipe(catchError(this.errorHandling));\r\n }\r\n\r\n update2(serviceUri: string, body: any) {\r\n const headers: HttpHeaders = this.getHeaderAsJson();\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n return this.httpClient\r\n .put(serviceUri, body, { headers })\r\n .pipe(catchError(this.errorHandling));\r\n }\r\n\r\n protected httpPutCall(headers: HttpHeaders, serviceUri: string, params: any) {\r\n return this.httpClient.put(serviceUri, {\r\n headers: headers,\r\n params: params,\r\n });\r\n }\r\n\r\n // /** Method for update data request by posting object as input. PUT method */\r\n update(serviceUri: string, parameters: any, postData: any): Observable {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n return this.httpPutCall(\r\n //soso: commented: this.getHeaderAsJson(),\r\n this.getHeaderAsEncodedFormUrl(),\r\n serviceUri,\r\n postData\r\n ).pipe(catchError(this.errorHandling));\r\n\r\n // return promise.then(\r\n // (response: any) => {\r\n // // Success callback\r\n // return this.responseHandling(response);\r\n // },\r\n // (error: any) => {\r\n // // Error callback\r\n // return this.errorHandling(error, serviceUri);\r\n // }\r\n // );\r\n }\r\n\r\n protected httpDeleteCall(\r\n headers: HttpHeaders,\r\n serviceUri: string,\r\n params: any\r\n ) {\r\n return this.httpClient.delete(serviceUri, {\r\n headers: headers,\r\n params: params,\r\n });\r\n }\r\n\r\n /** Method for delete data request by posting object as input. PUT method */\r\n delete(serviceUri: string, parameters: any, postData: any): Observable {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n\r\n return this.httpDeleteCall(\r\n this.getHeaderAsJson(),\r\n serviceUri,\r\n postData\r\n ).pipe(catchError(this.errorHandling));\r\n\r\n // return promise.then(\r\n // (response: any) => {\r\n // // Success callback\r\n // return this.responseHandling(response);\r\n // },\r\n // (error: any) => {\r\n // // Error callback\r\n // return this.errorHandling(error, serviceUri);\r\n // }\r\n // );\r\n }\r\n\r\n // /** Method for get object request by posting query string as input, return in Array. GET method */\r\n // query(serviceUri: string, parameters: any, postData: any):\r\n // angular.IPromise>> {\r\n\r\n // serviceUri = this.constructEndPoint(serviceUri);\r\n // const endpoint = this.$resource(serviceUri, parameters);\r\n\r\n // return endpoint.query(postData).$promise\r\n // .then((responseArray: angular.resource.IResourceArray>) => {\r\n // return responseArray;\r\n // }, (error) => {\r\n // return this.errorHandling(error, serviceUri);\r\n // });\r\n // }\r\n\r\n // /** Method for get object request by posting query string as input.\r\n // * Authorization token will be read from storage again.\r\n // * $http GET method\r\n // */\r\n // // CMWANX: This funciton currently only used in Proposal.getProductbyUser()\r\n // getWithAuth(serviceUri: string, parameters: any, postData: any): angular.IPromise {\r\n // serviceUri = this.constructEndPoint(serviceUri);\r\n // const authData: Interface.IAuthenticationData = this.localStorageService.get(Identity.AUTH_STORAGE_NAME);\r\n\r\n // const config = {\r\n // method: 'Get',\r\n // url: serviceUri,\r\n // headers: {\r\n // Accept: 'application/octet-stream;',\r\n // Authorization: 'Bearer ' + authData.token,\r\n // },\r\n // params: parameters\r\n // };\r\n\r\n // return this.$http(config)\r\n // .then((response: ng.IHttpPromiseCallbackArg) => {\r\n // return this.httpResponseHandling(response, serviceUri);\r\n // }, (error) => {\r\n // return this.errorHandling(error, serviceUri);\r\n // });\r\n // }\r\n\r\n //todo\r\n /** Method for get Blob request by posting query string as input.\r\n * Authorization token will be read from storage again.\r\n * Anchor element will be auto generated.\r\n * $http GET method\r\n */\r\n download(\r\n serviceUri: string,\r\n parameters?: any,\r\n postData?: any,\r\n isServiceApiEndPoint: boolean = true,\r\n cache: boolean = false\r\n ): Observable {\r\n //const deferred = this.$q.defer();\r\n //serviceUri = this.constructEndPoint(serviceUri);\r\n //const authData: Interface.IAuthenticationData = this.localStorageService.get(Identity.AUTH_STORAGE_NAME);\r\n\r\n //dun access token here, all done by interceptor\r\n // const config = {\r\n // method: 'Get',\r\n // url: serviceUri,\r\n // responseType: 'arraybuffer',\r\n // headers: {\r\n // Accept: 'application/octet-stream;',\r\n // Authorization: 'Bearer ' + authData.token,\r\n // },\r\n // params: parameters\r\n // };\r\n\r\n // this.$http(config)\r\n // .then((response: ng.IHttpPromiseCallbackArg) => {\r\n // const httpHeader = response.headers();\r\n\r\n // switch (response.status) {\r\n // case 200: // Success\r\n // deferred.resolve({\r\n // data: response.data,\r\n // headerFileName: httpHeader['x-filename']\r\n // });\r\n // break;\r\n\r\n // case 401: // Unauthorized\r\n // console.log(response.data);\r\n // throw new Error('Unauthorized document download');\r\n\r\n // default:\r\n // console.log(response.data);\r\n // throw new Error('Document download response with unexpected status: ' + response.status.toString());;\r\n // }\r\n // }, (error) => {\r\n // deferred.resolve(error);\r\n // throw new Error('document download error');\r\n // });\r\n\r\n // return deferred.promise;\r\n //return Promise.reject(new Error());\r\n this.processParams(parameters, cache);\r\n if (isServiceApiEndPoint) {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n }\r\n\r\n return this.httpDownloadCall(\r\n //TODO: sosola\r\n this.getHeaderAsJson(),\r\n serviceUri,\r\n parameters\r\n );\r\n }\r\n\r\n //todo\r\n // getExternal(serviceUri: string, parameters: any, postData: any, isServiceApiEndPoint: boolean = true): angular.IPromise {\r\n\r\n // if (isServiceApiEndPoint) {\r\n // serviceUri = this.constructEndPoint(serviceUri);\r\n // }\r\n // const endpoint = this.$resource(serviceUri);\r\n\r\n // // return this.$http({\r\n // // method : 'GET',\r\n // // url : serviceUri,\r\n // // transformResponse : function(data) {\r\n // // return $.parseXML(data);\r\n // // }\r\n // // });\r\n\r\n // return endpoint.get().$promise\r\n // .then((response) => {\r\n // return this.responseHandling(response);\r\n // }, (error) => {\r\n // return this.errorHandling(error, serviceUri);\r\n // });\r\n // }\r\n\r\n //sosola\r\n //Get broker list\r\n /** Method for get object request by posting query string as input. GET method */\r\n getBrokerList(\r\n serviceUri: string,\r\n parameters: any,\r\n postData: any,\r\n isServiceApiEndPoint: boolean = true,\r\n cache: boolean = false\r\n ): Observable {\r\n this.processParams(parameters, cache);\r\n if (isServiceApiEndPoint) {\r\n serviceUri = this.constructEndPoint(serviceUri);\r\n }\r\n\r\n return this.httpGetCall(\r\n //TODO: sosola\r\n //this.getHeaderAsJson(),\r\n this.getHeaderAsEncodedFormUrl(),\r\n\r\n serviceUri,\r\n parameters\r\n );\r\n }\r\n}\r\n","import { Overlay, ComponentType } from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { DialogRef } from \"./../../components/shared/partials/dialog/dialog-ref\";\r\nimport { DIALOG_DATA } from \"./../../components/shared/partials/dialog/dialog-tokens\";\r\n\r\nexport interface DialogConfig {\r\n data?: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CdkDialogService {\r\n constructor(private overlay: Overlay, private injector: Injector) {}\r\n\r\n /**\r\n * Open a custom component in an overlay\r\n */\r\n open(component: ComponentType, config?: DialogConfig): DialogRef {\r\n // Globally centered position strategy\r\n const positionStrategy = this.overlay\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n\r\n // Create the overlay with customizable options\r\n const overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: true,\r\n backdropClass: \"overlay-backdrop\",\r\n panelClass: \"overlay-panel\",\r\n });\r\n\r\n // Create dialogRef to return\r\n const dialogRef = new DialogRef(overlayRef);\r\n\r\n // Create injector to be able to reference the DialogRef from within the component\r\n const injector = Injector.create({\r\n parent: this.injector,\r\n providers: [\r\n { provide: DialogRef, useValue: dialogRef },\r\n { provide: DIALOG_DATA, useValue: config?.data },\r\n ],\r\n });\r\n\r\n // Attach component portal to the overlay\r\n const portal = new ComponentPortal(component, null, injector);\r\n overlayRef.attach(portal);\r\n\r\n return dialogRef;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n DialogAnimation,\r\n //DialogAnimation,//todo\r\n DialogCloseResult,\r\n DialogRef,\r\n DialogService,\r\n} from \"@progress/kendo-angular-dialog\";\r\nimport { Observable } from \"rxjs\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n//import { common } from \"src/app/core/extensions/framework/utils/common\";\r\n//import { ForceReferralComponent } from \"./components/force-referral/force-referral.component\";\r\n// import { Application } from '../../../../application';\r\n// import { Global } from '../../../../shared/global';\r\n\r\n// /// \r\n// /// \r\n\r\n// let angular: ng.IAngularStatic = Application.angular;\r\n\r\nenum E_ModalType {\r\n // template sliding modal\r\n sliding = 1,\r\n // bootstrap jquery stand modal\r\n standard = 2,\r\n}\r\n\r\nexport interface DialogModalOptions {\r\n size?: string;\r\n windowClass?: string;\r\n modalType?: string;\r\n keyboard?: boolean;\r\n backdrop?: any;\r\n}\r\n\r\nexport interface IDialog {\r\n confirm: (\r\n title: string,\r\n message: string,\r\n fnYes: Function,\r\n fnNo: Function\r\n ) => void;\r\n error: (header: string, message: string) => void;\r\n notify: (header: string, message: string) => void;\r\n modalLarge: (\r\n templateUrl: string,\r\n controllerName: string,\r\n data?: any,\r\n fnClose?: Function,\r\n fnError?: Function,\r\n size?: any,\r\n windowClass?: any,\r\n keyboard?: boolean,\r\n modalType?: string\r\n ) => any;\r\n modalMedium: (\r\n templateUrl: string,\r\n controllerName: string,\r\n data?: any,\r\n fnClose?: Function,\r\n fnError?: Function,\r\n size?: any,\r\n windowClass?: any,\r\n keyboard?: boolean,\r\n modalType?: string\r\n ) => any;\r\n modalSmall: (\r\n templateUrl: string,\r\n controllerName: string,\r\n data?: any,\r\n fnClose?: Function,\r\n fnError?: Function,\r\n size?: any,\r\n windowClass?: any,\r\n keyboard?: boolean,\r\n modalType?: string\r\n ) => any;\r\n close: (data?: any, modal_onClose?: (data?: any) => void) => void;\r\n}\r\n\r\nexport interface IDialogViewModel {\r\n header: string;\r\n msg: string;\r\n stack?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DialogWrapperService {\r\n constructor(private dialogService: DialogService) {}\r\n // private static _instance: DialogModal;\r\n\r\n // static get Instance(): DialogModal {\r\n // if (Global.isUndefined(this._instance)) {\r\n // // try get instance from AngularJS injector\r\n // this._instance = Application.angularInjectionObject(\"Dialog\");\r\n\r\n // if (Global.isUndefined(this._instance)) {\r\n // this._instance = new DialogModal(); // create own new instance\r\n // }\r\n // }\r\n\r\n // return this._instance;\r\n // }\r\n\r\n // // angularjs module injector\r\n // private _dialogs: any;\r\n\r\n // private get dialogs() {\r\n // return Application.angularInjectionObject(\"dialogs\");\r\n // }\r\n\r\n // right sliding\r\n private create(\r\n templateUrl: string,\r\n ComponentName: any,\r\n data?: any,\r\n fnClose?: Function,\r\n fnError?: Function,\r\n size?: any,\r\n windowClass?: any,\r\n keyboard?: boolean,\r\n modalType?: string\r\n ): Observable {\r\n let windowAnimation: boolean | DialogAnimation =\r\n this.getWindowAnimation(modalType);\r\n\r\n switch (size) {\r\n //todo\r\n //{\r\n //statements;\r\n case \"lg\":\r\n let dialog: DialogRef;\r\n if (typeof templateUrl != \"undefined\" && templateUrl && ComponentName) {\r\n dialog = this.dialogService.open({\r\n content: ComponentName,\r\n htmlAttributes: {\r\n class: \"flex-end-justified\",\r\n },\r\n width: 1080,\r\n minWidth: 500,\r\n animation: windowAnimation,\r\n });\r\n const userInfo = dialog.content.instance as typeof ComponentName;\r\n userInfo.data = data;\r\n } else {\r\n dialog = this.openDefaultDialog(\r\n windowAnimation,\r\n 1080,\r\n 500,\r\n data,\r\n modalType\r\n );\r\n }\r\n\r\n return dialog.result;\r\n break;\r\n //}\r\n case \"md\": //{\r\n //statements;\r\n //break;\r\n //}\r\n\r\n case \"sm\":\r\n default: {\r\n let dialog: DialogRef;\r\n if (templateUrl === \"forceReferral.html\") {\r\n dialog = this.dialogService.open({\r\n //content: ForceReferralComponent,//todo\r\n htmlAttributes: {\r\n class: \"force-referral-dlg\",\r\n },\r\n });\r\n //todo\r\n // const userInfo = dialog.content.instance as ForceReferralComponent;\r\n // userInfo.data = data;\r\n } else if (\r\n typeof templateUrl != \"undefined\" &&\r\n templateUrl &&\r\n ComponentName\r\n ) {\r\n dialog = this.dialogService.open({\r\n content: ComponentName,\r\n htmlAttributes: {\r\n // class: \"force-referral-dlg\",\r\n },\r\n width: 500,\r\n minWidth: 500,\r\n });\r\n const userInfo = dialog.content.instance as typeof ComponentName;\r\n userInfo.data = data;\r\n } else {\r\n dialog = this.openDefaultDialog(\r\n windowAnimation,\r\n 450,\r\n 250,\r\n data,\r\n modalType\r\n );\r\n }\r\n\r\n return dialog.result;\r\n }\r\n }\r\n }\r\n\r\n private openDefaultDialog(\r\n windowAnimation: boolean | DialogAnimation,\r\n width: number,\r\n minWidth: number,\r\n data?: any,\r\n modalType?: string\r\n ) {\r\n let dialog: DialogRef;\r\n dialog = this.dialogService.open({\r\n title: \"Confirmation\",\r\n content: data.message,\r\n actions: [\r\n { text: \"Yes\", confirmation: 1, modelActionGoData: data },\r\n { text: \"No\", confirmation: 0, modelActionGoData: data },\r\n ],\r\n width: width,\r\n //height: 200,//update by css\r\n minWidth: minWidth,\r\n animation: windowAnimation,\r\n htmlAttributes: {\r\n class: modalType === \"slidingModal\" ? \"flex-end-justified\" : \"centered\",\r\n },\r\n });\r\n\r\n return dialog;\r\n }\r\n\r\n private getWindowAnimation(modalType?: string) {\r\n let windowAnimation: boolean | DialogAnimation = {};\r\n\r\n if (modalType === \"slidingModal\") {\r\n windowAnimation = {\r\n duration: 300,\r\n type: \"slide\",\r\n direction: \"left\",\r\n };\r\n } else {\r\n windowAnimation = {\r\n type: \"fade\",\r\n };\r\n }\r\n\r\n return windowAnimation;\r\n }\r\n // private create(templateUrl: string, controllerName: string, data?: any,\r\n // fnClose?: Function, fnError?: Function,\r\n // size?: any, windowClass?: any, keyboard?: boolean, modalType?: string) {\r\n\r\n // let options: DialogModalOptions = {\r\n // size: size,\r\n // keyboard: (angular.isDefined(keyboard)) ? keyboard : true,\r\n // backdrop: \"static\",\r\n // windowClass: windowClass,\r\n // modalType: modalType\r\n // };\r\n\r\n // let dlg = this.dialogs\r\n // .create(templateUrl, controllerName, (angular.isDefined(data)) ? data : true, options);\r\n\r\n // /*to disable the scrollbar*/\r\n // $('html, body').css('overflow', 'hidden');\r\n // dlg.result\r\n // .then(function (result) {\r\n // /*to enable the scrollbar*/\r\n // $('html, body').css('overflow', 'auto');\r\n // if (fnClose) {\r\n\r\n // fnClose(result);\r\n // }\r\n // }, function () {\r\n // /*to enable the scrollbar*/\r\n // $('html, body').css('overflow', 'auto');\r\n // if (fnError) {\r\n\r\n // fnError();\r\n // }\r\n // });\r\n\r\n // return dlg;\r\n // };\r\n\r\n // confirm(title, message, fnYes, fnNo) {\r\n // let dlg = this._dialogs.confirm(title, message);\r\n // dlg.result.then(fnYes, fnNo);\r\n // }\r\n\r\n error(header: any, message: any) {\r\n let errorMessage = \"\";\r\n let errorStack = \"\";\r\n if (common.isDefined(message)) {\r\n if (common.isObject(message)) {\r\n if (common.isDefined(message.message)) {\r\n errorMessage = message.message;\r\n } else {\r\n if (common.isDefined(message.data)) {\r\n if (common.isObject(message.data)) {\r\n errorMessage = JSON.stringify(message, null, 4);\r\n } else {\r\n // server side html error page pattern when message.data is not object\r\n errorMessage = message.data;\r\n }\r\n } else {\r\n errorMessage = JSON.stringify(message, null, 4);\r\n }\r\n }\r\n\r\n if (common.isDefined(message.stack)) {\r\n errorStack = message.stack;\r\n }\r\n } else {\r\n errorMessage = message;\r\n }\r\n }\r\n\r\n //todo\r\n // let vm: IDialogViewModel = {\r\n // header: angular.copy(header),\r\n // msg: angular.copy(errorMessage),\r\n // stack: angular.copy(errorStack)\r\n // }\r\n\r\n // this.dialogs.create(\r\n // \"shared/uiControls/dialog/partials/customError.html\",\r\n // \"ErrorDialogController\",\r\n // vm,\r\n // {\r\n // size: 'lg',\r\n // keyboard: true,\r\n // modalType: \"standardModal\"\r\n // }\r\n // );\r\n }\r\n\r\n // notify(title, message) {\r\n // this._dialogs.notify(title, message);\r\n // }\r\n\r\n modalLarge(\r\n templateUrl: string,\r\n controllerName: any,\r\n data: any,\r\n fnClose: Function | undefined,\r\n fnError: Function | undefined,\r\n size: any,\r\n windowClass: any,\r\n keyboard: boolean | undefined,\r\n modalType: string | undefined\r\n ) {\r\n return this.create(\r\n templateUrl,\r\n controllerName,\r\n data,\r\n fnClose,\r\n fnError,\r\n \"lg\",\r\n windowClass,\r\n keyboard,\r\n modalType\r\n );\r\n }\r\n\r\n modalMedium(\r\n templateUrl: string,\r\n controllerName: any,\r\n data: any,\r\n fnClose: Function | undefined,\r\n fnError: Function | undefined,\r\n size: any,\r\n windowClass: any,\r\n keyboard: boolean | undefined,\r\n modalType: string | undefined\r\n ) {\r\n return this.create(\r\n templateUrl,\r\n controllerName,\r\n data,\r\n fnClose,\r\n fnError,\r\n \"md\",\r\n windowClass,\r\n keyboard,\r\n modalType\r\n );\r\n }\r\n\r\n modalSmall(\r\n templateUrl: string,\r\n controllerName: any,\r\n data: any,\r\n fnClose: Function | undefined,\r\n fnError: Function | undefined,\r\n size: any,\r\n windowClass: null,\r\n keyboard: boolean | undefined,\r\n modalType: string | undefined\r\n ) {\r\n return this.create(\r\n templateUrl,\r\n controllerName,\r\n data,\r\n fnClose,\r\n fnError,\r\n \"sm\",\r\n windowClass,\r\n keyboard,\r\n modalType\r\n );\r\n }\r\n}\r\n","import * as Interface from \"../../framework/interface.shared\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from \"../dal/api.service\";\r\nimport { HttpClient, HttpResponse } from \"@angular/common/http\";\r\nimport { ErrorHandlerService } from \"../error-handler/error-handler.service\";\r\nimport { DialogWrapperService } from \"../dialog/dialog-wrapper.service\";\r\nimport { saveAs } from \"@progress/kendo-file-saver\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DocumentService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n /** Method to verify if current browser is supported for download */\r\n private checkBrowserSupport(): boolean {\r\n var userAgent = window.navigator.userAgent;\r\n\r\n // If Internet Explorer, return version number, otherwise returns -1 for other browsers\r\n var msie = userAgent.indexOf(\"MSIE \");\r\n\r\n if (msie > 0) {\r\n alert(\"Current browser does not support file download.\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private generateAnchorAndTriggerDownload(\r\n fileData: Interface.IFileDownloadResponseModel\r\n ): void {\r\n // var anchor = angular.element('
');\r\n var file = new Blob([fileData.data], { type: \"application/octet-stream\" });\r\n\r\n //implement for IE usage\r\n const nav = window.navigator as any;\r\n if (nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileData.headerFileName);\r\n } else {\r\n let url = window.URL.createObjectURL(file);\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute(\"style\", \"display: none\");\r\n a.href = url;\r\n a.download = fileData.headerFileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n a.remove();\r\n }\r\n }\r\n\r\n downloadProposalDocument(parameters: any) {\r\n this.download(\"api/document/getProposalDocument\", parameters).subscribe(\r\n (response: HttpResponse) => {\r\n var conDis = response.headers.get(\"content-disposition\");\r\n if (conDis != null) {\r\n let fileName = conDis.split(\"filename=\")[1].split(\";\")[0];\r\n if (fileName) this.downLoadFile(response.body, fileName);\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n // downloadStaticDocument(parameters: any): ng.IPromise {\r\n // let deferred = this.$q.defer();\r\n\r\n // Api.instance.download('api/document/getStaticDocument', parameters)\r\n // .then((response: Interface.IFileDownloadResponseModel) => {\r\n\r\n // this.generateAnchorAndTriggerDownload(response);\r\n\r\n // deferred.resolve(true);\r\n // });\r\n\r\n // return deferred.promise;\r\n // }\r\n\r\n // downloadDocument(parameters: any): ng.IPromise {\r\n\r\n // // if(Global.isUnDefined(productId)){\r\n // // if (!this.checkBrowserSupport()) return;\r\n // // }\r\n // // else {\r\n // // if(productId.toLocaleLowerCase() !== Const.ProductID.PRODUCT_ID_AUS_BizPack.toLocaleLowerCase()){\r\n // // if (!this.checkBrowserSupport()) return;\r\n // // }\r\n // // }\r\n\r\n // let deferred = this.$q.defer();\r\n\r\n // this.Api.download('api/document/get', parameters)\r\n // .then((response: Interface.IFileDownloadResponseModel) => {\r\n\r\n // this.generateAnchorAndTriggerDownload(response);\r\n\r\n // deferred.resolve(true);\r\n // });\r\n\r\n // return deferred.promise;\r\n // }\r\n\r\n downloadDocument(parameters: any) {\r\n // this.download(\"api/document/get\", parameters).subscribe(\r\n // (response: Interface.IFileDownloadResponseModel) => {\r\n // this.generateAnchorAndTriggerDownload(response);\r\n // }\r\n // );\r\n this.download(\"api/document/get\", parameters).subscribe(\r\n (response: HttpResponse) => {\r\n var conDis = response.headers.get(\"content-disposition\");\r\n if (conDis != null) {\r\n let fileName = conDis.split(\"filename=\")[1].split(\";\")[0];\r\n if (fileName) this.downLoadFile(response.body, fileName);\r\n }\r\n }\r\n );\r\n }\r\n\r\n private downLoadFile(data: any, fileName: string) {\r\n let blob = new Blob([data]);\r\n let url = window.URL.createObjectURL(blob);\r\n saveAs(url, fileName);\r\n }\r\n}\r\n","import { ErrorHandler, Injectable } from \"@angular/core\";\r\nimport { DialogRef, DialogService } from \"@progress/kendo-angular-dialog\";\r\nimport { CustomErrorComponent } from \"src/app/components/shared/partials/custom-error/custom-error.component\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n//import { common } from \"src/app/core/extensions/framework/utils/common\";\r\nimport { DialogWrapperService } from \"../dialog/dialog-wrapper.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ErrorHandlerService implements ErrorHandler {\r\n constructor(\r\n protected dialog: DialogWrapperService, //Debugger, appSettings\r\n private dialogService: DialogService\r\n ) {}\r\n\r\n handleError(error: any): void {\r\n // const dialogRef: DialogRef = this.dialogService.open({\r\n // title: \"Error thrown\",\r\n // // Show component\r\n // content: CustomErrorComponent,\r\n // actions: [{ text: \"Ok\", themeColor: \"primary\" }],\r\n // width: 650,\r\n // height: 400,\r\n // });\r\n // const err = dialogRef.content.instance as CustomErrorComponent;\r\n // err.error = error;\r\n }\r\n\r\n handle(\r\n error: {\r\n toString?: any;\r\n status?: any;\r\n data?: any;\r\n fromErrorHandler?: any;\r\n config?: { headers: { Authorization: string } };\r\n },\r\n isShow: boolean,\r\n errorTitle: any\r\n ) {\r\n // if error message is error page\r\n if (\r\n common.isDefined(error) &&\r\n !common.isObject(error) &&\r\n error.toString().toLowerCase().indexOf(\"\") == 0\r\n ) {\r\n this.dialog.error(errorTitle, error);\r\n }\r\n // error\r\n else {\r\n this.removeAuthorizationHeader(error);\r\n }\r\n\r\n var showErrDialog = true;\r\n if (common.isDefined(isShow)) {\r\n showErrDialog = isShow;\r\n }\r\n\r\n // bad request\r\n if (error.status == 400) {\r\n if (common.isDefined(error.data)) error = error.data;\r\n }\r\n\r\n if (showErrDialog) {\r\n if (/* environment.releaseMode */ true)\r\n //todo\r\n this.dialog.error(\r\n errorTitle,\r\n \"An error occurred while processing your request.Support staff have been notified.\"\r\n );\r\n else this.dialog.error(errorTitle, error);\r\n }\r\n\r\n error.fromErrorHandler = true;\r\n\r\n // throw error here for $exceptionHandler to capture\r\n throw error;\r\n }\r\n\r\n removeAuthorizationHeader(error: any) {\r\n if (\r\n common.isDefined(error) &&\r\n common.isObject(error) &&\r\n common.isDefined(error.config) &&\r\n common.isDefined(error.config.headers)\r\n ) {\r\n error.config.headers.Authorization = \"\";\r\n }\r\n\r\n return error;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport {\r\n Workbook,\r\n WorkbookSheetColumn,\r\n WorkbookSheetRow,\r\n WorkbookSheetRowCell,\r\n WorkbookSheet,\r\n} from \"@progress/kendo-ooxml\";\r\nimport { saveAs } from \"@progress/kendo-file-saver\";\r\nimport { OpenItemStatus } from \"../finance/finance-enums\";\r\nimport { ReconcilePoliciesDownloadEntity } from \"../components/accounting/reconcile/models/reconcile-list.model\";\r\nimport { OpenItemListingEntity } from \"../components/accounting/open-item/OpenItemListingEntity\";\r\nimport { PolicyWordingEntity } from \"../components/product/policyWordingSetUp/policy-wording.entity\";\r\nimport { reportHelper } from \"./../../../src/app/models/new-product/utils/report.helper\";\r\n\r\nimport {\r\n AutoUpdateEntity,\r\n BankTransEntity,\r\n CbgDailyDownloadEntity,\r\n IBGRenewalEntity,\r\n LoanRedemptionFailureEntity,\r\n LoanRedemptionSuccessEntity,\r\n LSTEntity,\r\n ManualPaidAutoDebitEntity,\r\n PrintDocumentEntity,\r\n RenewalDraftDeletionEntity,\r\n RenewalEntity,\r\n SummaryInvoiceAutoDebitEntity,\r\n} from \"../components/new-product/home/preset-report/preset-report.model\";\r\nimport { openItemDisplayStatus } from \"../finance/finance-constant\";\r\nimport * as HomeConstant from \"./../components/new-product/home/home-constant\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ExcelTemplateService {\r\n constructor() {}\r\n public downloadTemplate(\r\n columns: string[],\r\n title: string,\r\n fileName: string\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.getFirstRowHeaders(columns),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n public downloadReconcilePolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: ReconcilePoliciesDownloadEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructReconcileRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n\r\n public downloadHaseReconcilePolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: ReconcilePoliciesDownloadEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructHaseReconcileRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n\r\n public downloadHaseOpenItemPolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: OpenItemListingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructOiHaseRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n\r\n public downloadDbsOpenItemPolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: OpenItemListingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructOiDbsRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n public downloadCitiOpenItemPolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: OpenItemListingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructOiCitiRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n public downloadPolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: PolicyWordingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructPolicyRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download autoDebitExtractionReport\r\n public downloadautoDebitExtractionReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: SummaryInvoiceAutoDebitEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructautoDebitExtractionReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download autoUpdateExtractionReport\r\n public downloadautoUpdateExtractionReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: AutoUpdateEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructautoUpdateExtractionReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download banktrans-dbs report\r\n public downloadBankTransDBSReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: BankTransEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructBankTransDBSReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download banktrans-citi report\r\n public downloadBankTransCITIReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: BankTransEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructBankTransCITIReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download CitiMonthlyNewBusiness report\r\n public downloadCitiMonthlyNewBusinessReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: BankTransEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructCitiMonthlyNewBusinessReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download CitiMonthlyActive report\r\n public downloadCitiMonthlyActiveReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: BankTransEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructCitiMonthlyActiveReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download CitiMonthlyCancellation report\r\n public downloadCitiMonthlyCancellationReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: BankTransEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructCitiMonthlyCancellationReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //download dailycbgdownload report\r\n public downloadDailyCbgDownloadReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: CbgDailyDownloadEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDailyCbgDownloadReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadPrintDocumentReport\r\n public downloadPrintDocumentReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: PrintDocumentEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructPrintDocumentReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadDataPostPrintReport\r\n public downloadDataPostPrintReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: PrintDocumentEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDataPostPrintReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadlstReport\r\n public downloadlstReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LSTEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructlstReportReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadIBGRenewalReport\r\n public downloadIBGRenewalReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: IBGRenewalEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructIBGRenewalReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadCitiLoanRedemptionSuccessReport\r\n public downloadCitiLoanRedemptionSuccessReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionSuccessEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructCitiLoanRedemptionSuccessReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadCitiLoanRedemptionFailureReport\r\n public downloadCitiLoanRedemptionFailureReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionFailureEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructCitiLoanRedemptionFailureReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadDbsCbgLoanRedemptionSuccessReport\r\n public downloadDbsCbgLoanRedemptionSuccessReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionSuccessEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDbsCbgLoanRedemptionSuccessReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadDbsCbgLoanRedemptionFailureReport\r\n public downloadDbsCbgLoanRedemptionFailureReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionFailureEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDbsCbgLoanRedemptionFailureReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadDbsIbgLoanRedemptionSuccessReport\r\n public downloadDbsIbgLoanRedemptionSuccessReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionSuccessEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDbsIbgLoanRedemptionSuccessReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadDbsIbgLoanRedemptionFailureReport\r\n public downloadDbsIbgLoanRedemptionFailureReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: LoanRedemptionFailureEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructDbsIbgLoanRedemptionFailureReportRows(\r\n columns,\r\n data\r\n ),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadManualPaidAutoDebitReport\r\n public downloadManualPaidAutoDebitReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: ManualPaidAutoDebitEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructManualPaidAutoDebitReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadRenewalDraftReport\r\n public downloadRenewalDraftReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: RenewalDraftDeletionEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructRenewalDraftReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //downloadRenewalReport\r\n public downloadRenewalReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: RenewalEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructRenewalReportRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n // creating and returning first row of the sheet\r\n private getFirstRowHeaders(columns: string[]): WorkbookSheetRow[] {\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n return [\r\n {\r\n cells: headerRowcell,\r\n },\r\n ];\r\n }\r\n // Column settings (width)\r\n private getColSetting(colLenght: number): WorkbookSheetColumn[] {\r\n let col: WorkbookSheetColumn[] = [];\r\n for (let i = 0; i < colLenght; i++) col.push({ autoWidth: true });\r\n return col;\r\n }\r\n\r\n private constructHaseReconcileRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNumber },\r\n { value: data[i].action },\r\n //{ value: data[i].meridianOpenItemSequenceNo },\r\n { value: data[i].policyCertificateNumber },\r\n { value: data[i].total },\r\n { value: data[i].gst },\r\n { value: OpenItemStatus[data[i].status] },\r\n //{ value: data[i].invoiceNo },\r\n { value: data[i].savedBy },\r\n { value: data[i].Id },\r\n { value: data[i].status },\r\n { value: data[i].paidBy },\r\n { value: data[i].remark },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n //reconcile-construct rows\r\n private constructReconcileRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNumber },\r\n { value: data[i].action },\r\n { value: data[i].meridianOpenItemSequenceNo },\r\n { value: data[i].policyCertificateNumber },\r\n { value: data[i].total },\r\n { value: data[i].gst },\r\n { value: OpenItemStatus[data[i].status] },\r\n { value: data[i].invoiceNo },\r\n { value: data[i].savedBy },\r\n { value: data[i].Id },\r\n { value: data[i].status },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //open-item-DBS-construct rows\r\n private constructOiDbsRows(columns: string[], data: any): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].meridianOpenItemSequenceNo },\r\n { value: data[i].policyCertificateNumber },\r\n { value: data[i].masterPolicy },\r\n { value: data[i].policyNo },\r\n {\r\n value: new DatePipe(\"en-US\").transform(data[i].dateEntry, \"short\"),\r\n },\r\n { value: data[i].amount },\r\n { value: data[i].amountGst },\r\n { value: openItemDisplayStatus[data[i].statusId] },\r\n { value: data[i].invoiceNo },\r\n { value: data[i].lastUpdatedByUserName },\r\n { value: data[i].policyHolder },\r\n { value: data[i].correspondenceAddress },\r\n { value: data[i].inactiveAddressChanged },\r\n { value: data[i].grossPremium },\r\n { value: data[i].BUPC },\r\n { value: data[i].bankReference },\r\n { value: data[i].insuredName },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].additionalInsured },\r\n { value: data[i].AutoDebitMonth },\r\n { value: data[i].CancellationType },\r\n ],\r\n });\r\n }\r\n if (data.length > 0) {\r\n rows.push({\r\n cells: [{ value: \" \" }],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Summary of Open-Item\",\r\n bold: true,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Items: \",\r\n },\r\n { value: data[0].totalOpenItemPolicy },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n { value: \"Total Gross Premium excl. GST:\" },\r\n { value: data[0].totalGrossPremium },\r\n ],\r\n });\r\n rows.push({\r\n cells: [{ value: \"GST on Gross Premium:\" }, { value: data[0].GST }],\r\n });\r\n rows.push({\r\n cells: [{ value: \"Total Premium:\" }, { value: data[0].totalPremium }],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n //open-item-Hase-construct rows\r\n private constructOiHaseRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].product },\r\n { value: data[i].policyCertificateNumber },\r\n //{ value: data[i].masterPolicy },\r\n { value: data[i].policyNo },\r\n {\r\n value: new DatePipe(\"en-US\").transform(data[i].dateEntry, \"short\"),\r\n },\r\n { value: data[i].amount },\r\n { value: data[i].amountGst },\r\n { value: openItemDisplayStatus[data[i].statusId] },\r\n //{ value: data[i].invoiceNo },\r\n { value: data[i].lastUpdatedByUserName },\r\n { value: data[i].policyHolder },\r\n { value: data[i].correspondenceAddress },\r\n //{ value: data[i].inactiveAddressChanged },\r\n { value: data[i].grossPremium },\r\n //{ value: data[i].BUPC },\r\n //{ value: data[i].bankReference },\r\n { value: data[i].insuredName },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n //{ value: data[i].insuredNRIC },\r\n //{ value: data[i].additionalInsured },\r\n { value: data[i].AutoDebitDate },\r\n //{ value: data[i].CancellationType },\r\n { value: data[i].paidBy },\r\n { value: data[i].remark },\r\n ],\r\n });\r\n }\r\n if (data.length > 0) {\r\n rows.push({\r\n cells: [{ value: \" \" }],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Summary of Open-Item\",\r\n bold: true,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Items: \",\r\n },\r\n { value: data[0].totalOpenItemPolicy },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n { value: \"Total Gross Premium excl. Levy:\" },\r\n { value: data[0].totalGrossPremium },\r\n ],\r\n });\r\n rows.push({\r\n cells: [{ value: \"Levy on Gross Premium:\" }, { value: data[0].GST }],\r\n });\r\n rows.push({\r\n cells: [{ value: \"Total Premium:\" }, { value: data[0].totalPremium }],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n public downloadBatchInvoices(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: OpenItemListingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructOiBatchInvoiceRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n\r\n public downloadAllPolicies(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: OpenItemListingEntity[]\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns?.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructOiDownloadAllPoliciesRows(columns, data),\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n\r\n //open-item-citi-construct rows\r\n private constructOiCitiRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].meridianOpenItemSequenceNo },\r\n { value: data[i].policyCertificateNumber },\r\n { value: data[i].masterPolicy },\r\n { value: data[i].policyNo },\r\n {\r\n value: new DatePipe(\"en-US\").transform(data[i].dateEntry, \"short\"),\r\n },\r\n { value: data[i].amount },\r\n { value: data[i].amountGst },\r\n { value: data[i].premiumToBeCollectedFromCustomer },\r\n { value: data[i].netCommissionOffsetWithDiscount },\r\n { value: data[i].statusDisplayText },\r\n { value: data[i].invoiceNo },\r\n { value: data[i].lastUpdatedByUserName },\r\n { value: data[i].policyHolder },\r\n { value: data[i].correspondenceAddress },\r\n { value: data[i].inactiveAddressChanged },\r\n { value: data[i].customerType },\r\n { value: data[i].collateralNumber },\r\n { value: data[i].insuredName },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].additionalInsured },\r\n { value: data[i].AutoDebitWeek },\r\n { value: data[i].CancellationType },\r\n ],\r\n });\r\n }\r\n\r\n if (data.length > 0) {\r\n rows.push({\r\n cells: [{ value: \" \" }],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Summary of Open-Item\",\r\n bold: true,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Items: \",\r\n },\r\n { value: data[0].totalOpenItemPolicy },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n { value: \"Total Gross Premium excl. GST:\" },\r\n { value: data[0].totalGrossPremium },\r\n ],\r\n });\r\n rows.push({\r\n cells: [{ value: \"GST on Gross Premium:\" }, { value: data[0].GST }],\r\n });\r\n rows.push({\r\n cells: [{ value: \"Total Premium:\" }, { value: data[0].totalPremium }],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n private constructOiBatchInvoiceRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({\r\n value: col,\r\n bold: true,\r\n textAlign: \"center\",\r\n });\r\n }\r\n rows.push({\r\n cells: headerRowcell,\r\n });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n {\r\n value: data[i].batchId,\r\n },\r\n {\r\n value: data[i].financialCode,\r\n },\r\n {\r\n value: data[i].bankReferenceNumber,\r\n },\r\n {\r\n value: data[i].meridianMasterPolicy,\r\n },\r\n {\r\n value: data[i].policyType,\r\n },\r\n {\r\n value: data[i].policyNumber,\r\n },\r\n {\r\n value: data[i].mainInsuredName,\r\n },\r\n {\r\n value: data[i].insuredCorrespondenceAddress,\r\n },\r\n {\r\n value: data[i].riskAddress,\r\n },\r\n {\r\n value: data[i].originalInceptionDate,\r\n },\r\n {\r\n value: data[i].policyInceptionDate,\r\n },\r\n {\r\n value: data[i].policyExpiryDate,\r\n },\r\n {\r\n value: data[i].endorsementEffectiveDate,\r\n },\r\n {\r\n value: data[i].totalSumInsured,\r\n },\r\n {\r\n value: data[i].grossPremiumExclGST,\r\n },\r\n {\r\n value: data[i].gstOnGrossPremium,\r\n },\r\n {\r\n value: data[i].commissionExclGST,\r\n },\r\n {\r\n value: data[i].gstOnCommission,\r\n },\r\n {\r\n value: data[i].premiumNetOffComm,\r\n },\r\n {\r\n value: data[i].gstOnPremiumNetOffComm,\r\n },\r\n {\r\n value: data[i].transactionCode,\r\n },\r\n {\r\n value: data[i].totalPremium,\r\n },\r\n ],\r\n });\r\n }\r\n if (data.length > 0) {\r\n rows.push({\r\n cells: [\r\n {\r\n value: \" \",\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Summary of Batch-Item\",\r\n bold: true,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Items:\",\r\n },\r\n {\r\n value: data[0].totalBatchItemPolicy,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Gross Premium excl. GST:\",\r\n },\r\n {\r\n value: data[0].totalGrossPremium,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"GST on Gross Premium:\",\r\n },\r\n {\r\n value: data[0].GST,\r\n },\r\n ],\r\n });\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Premium:\",\r\n },\r\n {\r\n value: data[0].sumOfTotalPremium,\r\n },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n private constructOiDownloadAllPoliciesRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({\r\n value: col,\r\n bold: true,\r\n textAlign: \"center\",\r\n });\r\n }\r\n rows.push({\r\n cells: headerRowcell,\r\n });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].policyNo },\r\n { value: data[i].amount },\r\n { value: data[i].amountGst },\r\n { value: data[i].batchId },\r\n { value: openItemDisplayStatus[data[i].statusId] },\r\n { value: data[i].lastUpdatedByUserName },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n //policy-wording-construct rows\r\n private constructPolicyRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].PolicyCertificateNumber },\r\n { value: data[i].ProductType },\r\n { value: data[i].PolicyType },\r\n { value: data[i].PolicyNumber },\r\n { value: data[i].EffectiveDate },\r\n { value: data[i].PolicyBoundDate },\r\n { value: data[i].ExpiryDate },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //autoDebitExtractionReport-construct rows\r\n private constructautoDebitExtractionReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n var totalItem = 0;\r\n var totalGrossPremium = 0;\r\n var totalGST = 0;\r\n var totalPremium = 0;\r\n var referenceNumber = \"\";\r\n var forAdMonth = \"\";\r\n var reportExtractedDate = \"\";\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n /// CHNAGE COLUMN\r\n\r\n if (i == 0) {\r\n referenceNumber = data[i].referenceNumber;\r\n forAdMonth = data[i].forMonth;\r\n reportExtractedDate = data[i].reportDate;\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].meridianSequenceNo },\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].policyNo },\r\n { value: data[i].entryDate },\r\n { value: data[i].grossPremium },\r\n { value: data[i].gST },\r\n { value: data[i].totalPremium },\r\n { value: data[i].status },\r\n { value: data[i].invoiceNo },\r\n { value: data[i].savedBy },\r\n { value: data[i].bUPCCode },\r\n { value: data[i].bankRef },\r\n { value: data[i].insuredName },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].transactionType },\r\n { value: data[i].product },\r\n { value: data[i].contractType },\r\n { value: data[i].policyStatus },\r\n { value: data[i].transactionDate },\r\n ],\r\n });\r\n\r\n totalItem++;\r\n totalGrossPremium += parseFloat(data[i].grossPremium);\r\n totalGST += parseFloat(data[i].gST);\r\n totalPremium += parseFloat(data[i].totalPremium);\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: totalGrossPremium, bold: true },\r\n { value: totalGST, bold: true },\r\n { value: totalPremium, bold: true },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n ],\r\n });\r\n return rows;\r\n }\r\n //autoUpdateExtractionReport-construct rows\r\n private constructautoUpdateExtractionReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n var totalItem = 0;\r\n var totalGrossPremium = 0;\r\n var totalGST = 0;\r\n var totalPremium = 0;\r\n var referenceNumber = \"\";\r\n var forAdMonth = \"\";\r\n var reportExtractedDate = \"\";\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n /// CHNAGE COLUMN\r\n\r\n if (i == 0) {\r\n // referenceNumber = data[i].referenceNumber;\r\n forAdMonth = data[i].forMonth;\r\n reportExtractedDate = data[i].reportDate;\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].policyNo },\r\n { value: data[i].batchid },\r\n { value: data[i].bupcode },\r\n { value: data[i].bankreferencenumber },\r\n { value: data[i].meridianmasterpolicyNumber },\r\n { value: data[i].policytype },\r\n { value: data[i].maininsuredname },\r\n { value: data[i].riskaddress },\r\n { value: data[i].startDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].basePremium },\r\n { value: data[i].gst },\r\n { value: data[i].totalPremium },\r\n { value: data[i].transtype },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructBankTransDBSReportRows-construct rows\r\n private constructBankTransDBSReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNo },\r\n { value: data[i].financialBranch },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].agentNo },\r\n { value: data[i].agentName },\r\n { value: data[i].contractType },\r\n { value: data[i].contractNo },\r\n { value: data[i].referenceNo },\r\n { value: data[i].originalInceptionDate },\r\n { value: data[i].contractCommenceDate },\r\n { value: data[i].renewalDate },\r\n { value: data[i].clientNo },\r\n { value: data[i].clientSurname },\r\n { value: data[i].clientGivenName },\r\n { value: data[i].clientIndentificationNo },\r\n { value: data[i].clientAddress },\r\n { value: data[i].riskNo },\r\n { value: data[i].locationOfRisk },\r\n { value: data[i].totalSumInsured },\r\n /*New- Gross premium*/ { value: data[i].grossPremium },\r\n /*Ex*/ { value: data[i].gstAmount },\r\n /*Ex- Total gross premium*/ { value: data[i].totalGrossPremium },\r\n /*New- Commission Rate*/ { value: data[i].commissiOnRate },\r\n /*Ex- commissionAmount ex .gst*/ { value: data[i].commissionAmount },\r\n /*New- GST On Commission*/ { value: data[i].gstOnCommission },\r\n /*New- Premium Net Off Commission*/ {\r\n value: data[i].premiumNetOffCommission,\r\n },\r\n /*New- GST On Premium Net Off Commission*/ {\r\n value: data[i].gstOnPremiumNetOffCommission,\r\n },\r\n { value: data[i].discountAmount },\r\n { value: data[i].netPremium },\r\n { value: data[i].transactionCode },\r\n { value: data[i].transactionCodeDesc },\r\n { value: data[i].meridianSequenceNo },\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].quoteNo },\r\n { value: data[i].MSIGNumber },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].entryDate },\r\n { value: data[i].endorsementEffectiveDate },\r\n { value: data[i].status },\r\n { value: data[i].savedBy },\r\n { value: data[i].chequeIssuanceBank },\r\n { value: data[i].chequeNo },\r\n { value: data[i].paymentMode },\r\n { value: data[i].freeInsurance },\r\n { value: data[i].noOfYearsFree },\r\n { value: data[i].machineryType },\r\n { value: data[i].propertyType },\r\n { value: data[i].remarks },\r\n { value: data[i].occupancy },\r\n { value: data[i].makersID },\r\n { value: data[i].makersDateTime },\r\n { value: data[i].checkersID },\r\n { value: data[i].checkersDateTime },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructBankTransCITIReportRows-construct rows\r\n private constructBankTransCITIReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNumber },\r\n { value: data[i].customerType },\r\n { value: data[i].masterPolicyNumber },\r\n { value: data[i].contractType },\r\n { value: data[i].premiumPayment },\r\n { value: data[i].policyNumber },\r\n { value: data[i].planType },\r\n { value: data[i].collateralNumber },\r\n { value: data[i].clientNumber },\r\n { value: data[i].clientSurname },\r\n { value: data[i].clientGivenName },\r\n { value: data[i].clientIdentificationNumber },\r\n { value: data[i].clientAddress },\r\n { value: data[i].mobileNumber },\r\n { value: data[i].emailAddress },\r\n { value: data[i].additionalClientName },\r\n { value: data[i].additionalClientNRIC },\r\n { value: data[i].preferredDeliveryMode },\r\n { value: data[i].preferredDeliveryDetails },\r\n { value: data[i].coverageType },\r\n { value: data[i].coverageValue },\r\n { value: data[i].code },\r\n { value: data[i].originalInceptionDate },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].transactionType },\r\n { value: data[i].propertyType },\r\n { value: data[i].remarks },\r\n { value: data[i].dwellingOccupancy },\r\n { value: data[i].policyStatus },\r\n { value: data[i].transactionDate },\r\n { value: data[i].transactedBy },\r\n { value: data[i].paymentHistoryStatus },\r\n { value: data[i].aDWeek },\r\n { value: data[i].openAuditNumber },\r\n { value: data[i].grossPremium },\r\n { value: data[i].discountOfferedByCiti },\r\n { value: data[i].premiumDiscountByCiti },\r\n { value: data[i].nettPremiumBilledToCustomer },\r\n { value: data[i].gSTonPremium },\r\n { value: data[i].premiumToBeCollectedFromCustomer },\r\n { value: data[i].commissionRate },\r\n { value: data[i].commissionAmount },\r\n { value: data[i].nettCommOffsetWithDiscount },\r\n { value: data[i].gSTonCommission },\r\n { value: data[i].commissionPayable },\r\n { value: data[i].amtDuetoChubb },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructCitiMonthlyNewBusinessReportRows-construct rows\r\n private constructCitiMonthlyNewBusinessReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].productName },\r\n { value: data[i].customerType },\r\n { value: data[i].clientName },\r\n { value: data[i].policyNumber },\r\n\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].policyBoundDate },\r\n { value: data[i].collateralNumber },\r\n\r\n { value: data[i].masterPolicyNumber },\r\n { value: data[i].transactedBy },\r\n { value: data[i].occupiedAs },\r\n { value: data[i].coverageValue },\r\n { value: data[i].transactionType },\r\n { value: data[i].planType },\r\n { value: data[i].premiumPayment },\r\n\r\n { value: data[i].riskAddressBuildingName },\r\n { value: data[i].riskAddressUnitNumber },\r\n { value: data[i].riskAddressAddressLine1 },\r\n { value: data[i].riskAddressAddressLine2 },\r\n { value: data[i].riskAddressCity },\r\n { value: data[i].riskAddressCountry },\r\n { value: data[i].riskAddressPostCode },\r\n\r\n { value: data[i].grossPremium },\r\n { value: data[i].gSTonPremium },\r\n { value: data[i].premiumToBeCollectedFromCustomer },\r\n { value: data[i].sumInsured },\r\n { value: data[i].premiumDiscountByCiti },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructCitiMonthlyActiveReportRows-construct rows\r\n private constructCitiMonthlyActiveReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].productName },\r\n { value: data[i].customerType },\r\n { value: data[i].clientName },\r\n { value: data[i].policyNumber },\r\n\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].policyBoundDate },\r\n { value: data[i].policyStatus },\r\n { value: data[i].collateralNumber },\r\n\r\n { value: data[i].riskAddressBuildingName },\r\n { value: data[i].riskAddressUnitNumber },\r\n { value: data[i].riskAddressAddressLine1 },\r\n { value: data[i].riskAddressAddressLine2 },\r\n { value: data[i].riskAddressCity },\r\n { value: data[i].riskAddressCountry },\r\n { value: data[i].riskAddressPostCode },\r\n\r\n { value: data[i].grossPremium },\r\n { value: data[i].gSTonPremium },\r\n { value: data[i].premiumToBeCollectedFromCustomer },\r\n { value: data[i].sumInsured },\r\n { value: data[i].premiumDiscountByCiti },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructCitiMonthlyCancellationReportRows-construct rows\r\n private constructCitiMonthlyCancellationReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].productName },\r\n { value: data[i].customerType },\r\n { value: data[i].clientName },\r\n { value: data[i].policyNumber },\r\n\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].policyBoundDate },\r\n { value: data[i].cancellationDate },\r\n { value: data[i].collateralNumber },\r\n\r\n { value: data[i].masterPolicyNumber },\r\n { value: data[i].transactedBy },\r\n { value: data[i].occupiedAs },\r\n { value: data[i].coverageValue },\r\n { value: data[i].remarks },\r\n { value: data[i].transactionType },\r\n { value: data[i].planType },\r\n { value: data[i].premiumPayment },\r\n\r\n { value: data[i].riskAddressBuildingName },\r\n { value: data[i].riskAddressUnitNumber },\r\n { value: data[i].riskAddressAddressLine1 },\r\n { value: data[i].riskAddressAddressLine2 },\r\n { value: data[i].riskAddressCity },\r\n { value: data[i].riskAddressCountry },\r\n { value: data[i].riskAddressPostCode },\r\n\r\n { value: data[i].grossPremium },\r\n { value: data[i].gSTonPremium },\r\n { value: data[i].premiumToBeCollectedFromCustomer },\r\n { value: data[i].sumInsured },\r\n { value: data[i].premiumDiscountByCiti },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructDailyCbgDownloadReportRows\r\n private constructDailyCbgDownloadReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n const statusDisplayText = HomeConstant.proposalStatus[data[i].status];\r\n\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNo },\r\n { value: data[i].financialBranch },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].productType },\r\n { value: data[i].policyNo },\r\n { value: data[i].contractNo },\r\n { value: data[i].quoteNo },\r\n { value: statusDisplayText },\r\n { value: data[i].insuredName },\r\n { value: data[i].nric },\r\n { value: data[i].situation },\r\n { value: data[i].city },\r\n { value: data[i].country },\r\n { value: data[i].postalCode },\r\n { value: data[i].sumInsured },\r\n { value: data[i].grossPremium },\r\n { value: data[i].gst },\r\n { value: data[i].totalPremium },\r\n { value: data[i].bankReference },\r\n { value: data[i].boundDate },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].inceptionDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].makerUserName },\r\n { value: data[i].submittedDateTime },\r\n { value: data[i].checkerUserName },\r\n { value: data[i].checkedDateTime },\r\n { value: data[i].policyStatus },\r\n { value: data[i].remarks },\r\n { value: data[i].refundStatus },\r\n { value: data[i].transCodeDesc },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructPrintDocumentReportRows\r\n private constructPrintDocumentReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell, height: 50 });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].product },\r\n { value: data[i].policyNo },\r\n { value: data[i].documentType },\r\n { value: data[i].transactionBoundDate },\r\n { value: data[i].transUserName },\r\n { value: data[i].savedByOrg },\r\n { value: data[i].channelOfDoc, wrap: true },\r\n { value: data[i].correspondenceAddress },\r\n { value: data[i].printType },\r\n { value: data[i].dateToDDS },\r\n { value: data[i].correspondenceEmail },\r\n { value: data[i].correspondenceSMS },\r\n { value: data[i].dDSIsSuccess },\r\n { value: data[i].dDSInterfaceStatus },\r\n { value: data[i].dDSIsLive },\r\n ],\r\n height: 50,\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructDataPostPrintReportRows\\\r\n private constructDataPostPrintReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].type },\r\n { value: data[i].nameOfFolder },\r\n { value: data[i].link },\r\n { value: data[i].noOfPages },\r\n { value: data[i].combinePDFName },\r\n { value: data[i].product },\r\n { value: data[i].policyNo },\r\n { value: data[i].documentType },\r\n { value: data[i].transactionBoundDate },\r\n { value: data[i].transactedByUserName },\r\n { value: data[i].savedByOrganisation },\r\n { value: data[i].channelOfDoc },\r\n { value: data[i].correspondenceAddress },\r\n ],\r\n });\r\n }\r\n\r\n if (data.length > 0) {\r\n //Add summary\r\n rows.push({\r\n cells: [{ value: \" \" }],\r\n });\r\n\r\n rows.push({\r\n cells: [\r\n { value: \" \" },\r\n { value: \" \" },\r\n { value: \"Summary\", bold: true },\r\n { value: data[0].sumNoOfPages },\r\n { value: data[0].uniquePDFCount },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //format date\r\n private formatDecimal(numberToFormat: number): string {\r\n if (\r\n numberToFormat != null &&\r\n numberToFormat.toString().split(\".\").length === 1\r\n ) {\r\n return numberToFormat.toString() + \".00\";\r\n }\r\n const sign = numberToFormat >= 0 ? 1 : -1;\r\n return (\r\n Math.round(numberToFormat * Math.pow(10, 2) + sign * 0.001) /\r\n Math.pow(10, 2)\r\n ).toFixed(2);\r\n }\r\n //constructlstReportReportRows\r\n private constructlstReportReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: data[i].PolicyNumber },\r\n { value: data[i].DeclarationReference },\r\n { value: data[i].EPLPolicyNumber },\r\n { value: data[i].Currency },\r\n { value: data[i].TransCode },\r\n { value: data[i].EndorsementCount },\r\n { value: this.formatDecimal(data[i].GrossTSI) },\r\n { value: this.formatDecimal(data[i].GrossPrem) },\r\n { value: data[i].RICOAccount },\r\n { value: data[i].Reference },\r\n { value: this.formatDecimal(data[i].CededPremiumPercentage) },\r\n { value: this.formatDecimal(data[i].CededPremiumAmount) },\r\n { value: this.formatDecimal(data[i].LSTPrem) },\r\n { value: this.formatDecimal(data[i].PercentageCededToSurplus) },\r\n { value: data[i].NetTSI.toString() === \"0\" ? \"\" : data[i].NetTSI },\r\n { value: this.formatDecimal(data[i].NetPremium) },\r\n { value: data[i].TransactionDate },\r\n { value: data[i].InceptionDate },\r\n { value: data[i].EffectiveDate },\r\n { value: data[i].ExpiryDate },\r\n { value: data[i].NAICSOccupation },\r\n { value: data[i].SSICOccupation },\r\n { value: data[i].Occupancy },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].InsuredName },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructIBGRenewalReportRows\r\n private constructIBGRenewalReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n ///CHNAGE COLUMN\r\n rows.push({\r\n cells: [\r\n { value: data[i].SrNo },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].MSIGPolicyNo },\r\n { value: data[i].RMName },\r\n { value: data[i].BUPCCode },\r\n { value: data[i].BankReferenceNo },\r\n { value: data[i].BorrowerCIN },\r\n { value: data[i].NameOfInsured },\r\n { value: data[i].AdditionalInsureds },\r\n { value: data[i].CorrespondenceAddress },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].PolicyInceptionDate },\r\n { value: data[i].PolicyExpiryDate },\r\n { value: data[i].NoOfFreeYears },\r\n { value: data[i].SumInsured },\r\n { value: data[i].GrossPremium },\r\n { value: data[i].GST },\r\n { value: data[i].TotalPremium },\r\n { value: data[i].TransactionType },\r\n { value: data[i].TransactionDate },\r\n { value: data[i].RenewableMethod },\r\n { value: data[i].Occupation },\r\n { value: data[i].OccupancyRates },\r\n { value: data[i].OccupiedAs },\r\n { value: data[i].NatureOfBusiness },\r\n { value: data[i].UsageOfPremises },\r\n { value: data[i].TypeOfProperty },\r\n { value: data[i].TypeOfEquipment },\r\n { value: data[i].CommissionPerc },\r\n { value: data[i].Commission },\r\n { value: data[i].GSTOnCommission },\r\n { value: data[i].PremiumRates },\r\n { value: data[i].OpenItemStatus },\r\n { value: data[i].Remarks },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructCitiLoanRedemptionSuccessReportRows\r\n private constructCitiLoanRedemptionSuccessReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].PolicyStatus },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].BankRefNo },\r\n { value: data[i].InsuredName },\r\n { value: data[i].MITDDate },\r\n { value: data[i].RefundPremium },\r\n { value: data[i].Remarks },\r\n { value: data[i].TransactionBoundDate },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructDbsCbgLoanRedemptionSuccessReportRows\r\n private constructDbsCbgLoanRedemptionSuccessReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].PolicyStatus },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].InsuredName },\r\n { value: data[i].MITDDate },\r\n { value: data[i].RefundPremium },\r\n { value: data[i].Remarks },\r\n { value: data[i].TransactionBoundDate },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructDbsCbgLoanRedemptionFailureReportRows\r\n private constructDbsCbgLoanRedemptionFailureReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].MITDDate },\r\n { value: data[i].InsuranceAction },\r\n { value: data[i].Remarks },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructDbsIbgLoanRedemptionSuccessReportRows\r\n private constructDbsIbgLoanRedemptionSuccessReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].BankRefNo },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].PolicyStatus },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].InsuredName },\r\n { value: data[i].MITDDate },\r\n { value: data[i].RefundPremium },\r\n { value: data[i].Remarks },\r\n { value: data[i].TransactionBoundDate },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructDbsIbgLoanRedemptionFailureReportRows\r\n private constructDbsIbgLoanRedemptionFailureReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].BankRefNo },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].MITDDate },\r\n { value: data[i].InsuranceAction },\r\n { value: data[i].Remarks },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructCitiLoanRedemptionFailureReportRows\r\n private constructCitiLoanRedemptionFailureReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].PolicyNo },\r\n { value: data[i].BankRefNo },\r\n { value: data[i].InsuredName },\r\n { value: data[i].RiskAddress },\r\n { value: data[i].MITDDate },\r\n { value: data[i].Remarks },\r\n { value: data[i].MSBRDateReceived },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructManualPaidAutoDebitReportRows\r\n private constructManualPaidAutoDebitReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data?.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].serialNo },\r\n { value: data[i].policyNo },\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].chequeIssuanceBank },\r\n { value: data[i].chequeNo },\r\n { value: data[i].payerName },\r\n { value: data[i].amount },\r\n { value: data[i].gstAmount },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //constructRenewalDraftReportRows\r\n private constructRenewalDraftReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n rows.push({\r\n cells: [\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].policyNo },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].grossRenewalPremium },\r\n { value: data[i].gstAmount },\r\n { value: data[i].totalRenewalPremium },\r\n { value: data[i].freeOrPaidRenewal },\r\n { value: data[i].draftCreationDate },\r\n { value: data[i].status },\r\n { value: data[i].draftDeletionDate },\r\n { value: data[i].transactionType },\r\n { value: data[i].insuredName },\r\n { value: data[i].draftSumInsured },\r\n { value: data[i].currentSumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].bankReference },\r\n ],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n //constructRenewalReportRows\r\n private constructRenewalReportRows(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n /// CHNAGE COLUMN\r\n rows.push({\r\n cells: [\r\n { value: data[i].meridianSequenceNo },\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].policyNo },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].grossRenewalPremium },\r\n { value: data[i].gST },\r\n { value: data[i].totalRenewalPremium },\r\n { value: data[i].commissionPerc },\r\n { value: data[i].commission },\r\n { value: data[i].gSTOnCommission },\r\n { value: data[i].noOfFreeYears },\r\n { value: data[i].freeOrPaidRenewal },\r\n { value: data[i].renewalBoundDate },\r\n { value: data[i].renewalDocsGeneratedDate },\r\n { value: data[i].aDFileMonth },\r\n { value: data[i].status },\r\n { value: data[i].savedBy },\r\n { value: data[i].rMName },\r\n { value: data[i].bUPCCode },\r\n { value: data[i].bankRef },\r\n { value: data[i].insuredName },\r\n { value: data[i].additionalInsureds },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].correspondenceAddress },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].borrowerCIN },\r\n { value: data[i].occupation },\r\n { value: data[i].occupationRates },\r\n { value: data[i].occupiedAs },\r\n { value: data[i].natureOfBusiness },\r\n { value: data[i].usageOfPremises },\r\n { value: data[i].typeOfProperty },\r\n { value: data[i].typeOfEquipment },\r\n ],\r\n });\r\n }\r\n\r\n if (data.length > 0) {\r\n //Add summary\r\n rows.push({\r\n cells: [{ value: \" \" }],\r\n });\r\n\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Summary of Renewal\",\r\n bold: true,\r\n },\r\n { value: \"Count\", bold: true },\r\n { value: \"Premium with GST\", bold: true },\r\n ],\r\n });\r\n\r\n rows.push({\r\n cells: [\r\n {\r\n value: \"Total Due Renewal Sent:\",\r\n },\r\n { value: data[0].totalRenewalPolicy },\r\n { value: data[0].totalRenewalPolicyPremium },\r\n ],\r\n });\r\n\r\n rows.push({\r\n cells: [\r\n { value: \"Total Pending Renewal in EPL:\" },\r\n { value: data[0].totalPendingRenewalPolicy },\r\n { value: data[0].totalPendingRenewalPremium },\r\n ],\r\n });\r\n\r\n rows.push({\r\n cells: [\r\n { value: \"Total Auto/Manual Renewal Bound in EPL:\" },\r\n { value: data[0].totalRenewalBoundPolicy },\r\n { value: data[0].totalRenewalBoundPremium },\r\n ],\r\n });\r\n }\r\n return rows;\r\n }\r\n //downloadsummaryInvoiceAutoDebitReport\r\n public downloadsummaryInvoiceAutoDebitReport(\r\n columns: string[],\r\n title: string,\r\n fileName: string,\r\n data?: SummaryInvoiceAutoDebitEntity[],\r\n segmentDetails?: string\r\n ): void {\r\n const workbook = new Workbook({\r\n sheets: [\r\n {\r\n // Column settings (width)\r\n columns: this.getColSetting(columns.length),\r\n // Title of the sheet\r\n name: title,\r\n // Rows of the sheet\r\n rows: this.constructsummaryInvoiceAutoDebitReportRows1(columns, data),\r\n },\r\n {\r\n // Column settings (width)\r\n columns: [\r\n { autoWidth: true },\r\n { autoWidth: true },\r\n { autoWidth: true },\r\n ],\r\n // Title of the sheet\r\n name: \"Summary by BUPC\",\r\n // Rows of the sheet\r\n rows: this.constructsummaryInvoiceAutoDebitReportRows2(data),\r\n },\r\n {\r\n // Title of the sheet\r\n name: \"Summary by Tax Invoice\",\r\n // mergedCells: [\"A9:B9\",\"A21:F21\", \"A32:C32\", \"B34:C34\", \"B36:C36\", \"A44:B44\", \"E11:F11\", \"E12:F12\"],\r\n // Rows of the sheet\r\n rows: reportHelper.getTaxInvoiceRow(\r\n this.taxInvoiceInput.referenceNumber,\r\n this.taxInvoiceInput.forAdMonth,\r\n this.taxInvoiceInput.reportExtractedDate,\r\n this.taxInvoiceInput.totalGrossPremium,\r\n this.taxInvoiceInput.totalGST,\r\n this.taxInvoiceInput.totalPremium,\r\n \"AD\",\r\n segmentDetails ? segmentDetails : \"\"\r\n ),\r\n // Column settings (width)\r\n columns: [\r\n { autoWidth: false, width: 200 },\r\n { autoWidth: false, width: 300 },\r\n { autoWidth: false, width: 275 },\r\n { autoWidth: false, width: 200 },\r\n { autoWidth: false, width: 25 },\r\n { autoWidth: false, width: 100 },\r\n ],\r\n },\r\n ],\r\n });\r\n workbook.toDataURL().then((dataUrl) => {\r\n saveAs(dataUrl, fileName + \".xlsx\");\r\n });\r\n }\r\n //constructsummaryInvoiceAutoDebitReportRows\r\n private constructsummaryInvoiceAutoDebitReportRows1(\r\n columns: string[],\r\n data: any\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n let headerRowcell: WorkbookSheetRowCell[] = [];\r\n for (let col of columns) {\r\n headerRowcell.push({ value: col, bold: true, textAlign: \"center\" });\r\n }\r\n rows.push({ cells: headerRowcell });\r\n var totalItem = 0;\r\n var totalGrossPremium = 0;\r\n var totalGST = 0;\r\n var totalPremium = 0;\r\n var referenceNumber = \"\";\r\n var forAdMonth = \"\";\r\n var reportExtractedDate = \"\";\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n // push single row for every record\r\n /// CHNAGE COLUMN\r\n\r\n if (i == 0) {\r\n referenceNumber = data[i].referenceNumber;\r\n forAdMonth = data[i].forMonth;\r\n reportExtractedDate = data[i].reportDate;\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: data[i].meridianSequenceNo },\r\n { value: data[i].policyCertificateNo },\r\n { value: data[i].masterPolicyNo },\r\n { value: data[i].policyNo },\r\n { value: data[i].entryDate },\r\n { value: data[i].grossPremium },\r\n { value: data[i].gST },\r\n { value: data[i].totalPremium },\r\n { value: data[i].status },\r\n { value: data[i].invoiceNo },\r\n { value: data[i].savedBy },\r\n { value: data[i].bUPCCode },\r\n { value: data[i].bankRef },\r\n { value: data[i].insuredName },\r\n { value: data[i].effectiveDate },\r\n { value: data[i].expiryDate },\r\n { value: data[i].sumInsured },\r\n { value: data[i].riskAddress },\r\n { value: data[i].insuredNRIC },\r\n { value: data[i].transactionType },\r\n { value: data[i].product },\r\n { value: data[i].contractType },\r\n { value: data[i].policyStatus },\r\n { value: data[i].transactionDate },\r\n ],\r\n });\r\n\r\n totalItem++;\r\n totalGrossPremium += parseFloat(data[i].grossPremium);\r\n totalGST += parseFloat(data[i].gST);\r\n totalPremium += parseFloat(data[i].totalPremium);\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: totalGrossPremium, bold: true },\r\n { value: totalGST, bold: true },\r\n { value: totalPremium, bold: true },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n { value: \"\" },\r\n ],\r\n });\r\n this.taxInvoiceInput.referenceNumber = referenceNumber;\r\n this.taxInvoiceInput.forAdMonth = forAdMonth;\r\n this.taxInvoiceInput.reportExtractedDate = reportExtractedDate;\r\n this.taxInvoiceInput.totalGrossPremium = totalGrossPremium;\r\n this.taxInvoiceInput.totalGST = totalGST;\r\n\r\n return rows;\r\n }\r\n //constructsummaryInvoiceAutoDebitReportRows2\r\n private constructsummaryInvoiceAutoDebitReportRows2(\r\n data?: SummaryInvoiceAutoDebitEntity[]\r\n ): WorkbookSheetRow[] {\r\n var rows: WorkbookSheetRow[] = [];\r\n rows.push({\r\n cells: [\r\n { value: \"SI No\", bold: true, textAlign: \"center\" },\r\n { value: \"BUPC Code\", bold: true, textAlign: \"center\" },\r\n { value: \"Total Premium\", bold: true, textAlign: \"center\" },\r\n ],\r\n });\r\n var data2 = null;\r\n var result: any[] = [];\r\n data2 = data?.reduce(function (res: any, value) {\r\n if (!res[value.bUPCCode]) {\r\n res[value.bUPCCode] = { id: value.bUPCCode, totalPremium: 0 };\r\n result.push(res[value.bUPCCode]);\r\n }\r\n res[value.bUPCCode].totalPremium += value.totalPremium;\r\n return res;\r\n }, {});\r\n\r\n var totalPremium = 0;\r\n\r\n for (let i = 0; i < result.length; i++) {\r\n rows.push({\r\n cells: [\r\n { value: i + 1 },\r\n { value: result[i].id },\r\n { value: result[i].totalPremium },\r\n ],\r\n });\r\n\r\n totalPremium += result[i].totalPremium;\r\n }\r\n\r\n rows.push({\r\n cells: [\r\n { value: \"\" },\r\n { value: \"Total\" },\r\n { value: totalPremium, bold: true },\r\n ],\r\n });\r\n this.taxInvoiceInput.totalPremium = totalPremium;\r\n\r\n return rows;\r\n }\r\n taxInvoiceInput: any = {};\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Workbook, Worksheet } from \"exceljs\";\r\nimport * as fs from \"file-saver\";\r\nimport { ExportListEntity } from \"../components/new-product/home/export-list/ExportListEntity\";\r\nimport { IBGBouncedMailPolicyEntity } from \"../components/product/bounced-mail-policy/bounced-mail-policy.component\";\r\nimport {\r\n IBGLoanRedemptionFailureEntity,\r\n IBGLoanRedemptionSuccessEntity,\r\n} from \"./upload-excel.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ExcelService {\r\n constructor() {}\r\n\r\n constructWorkbookFailure(\r\n data: Array,\r\n SegmentType: string,\r\n reportTitle: string\r\n ) {\r\n if (SegmentType === \"IBG\") {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Bank Reference Number\",\r\n \"Policy Number\",\r\n \"MITD Date (DD/MM/YYYY)\",\r\n \"Insurance Action\",\r\n \"Remarks\",\r\n \"MSBR Date Received (DD/MM/YYYY)\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"BankRefNo\",\r\n \"PolicyNo\",\r\n \"MITDDate\",\r\n \"InsuranceAction\",\r\n \"Remarks\",\r\n \"MSBRDateReceived\",\r\n ];\r\n\r\n this.generateExcel(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n jsonTableHeader\r\n );\r\n } else if (SegmentType === \"Citi\") {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Collateral Number\",\r\n \"Borrower/Property Owner\",\r\n \"Risk/Property Address\",\r\n \"Effective Date (DD/MM/YYYY)\",\r\n \"Remarks\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"PolicyNo\",\r\n \"BankRefNo\",\r\n \"InsuredName\",\r\n \"RiskAddress\",\r\n \"MITDDate\",\r\n \"Remarks\",\r\n ];\r\n\r\n this.generateExcel(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n jsonTableHeader\r\n );\r\n } else {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Risk Address\",\r\n \"Effective Date (DD/MM/YYYY)\",\r\n \"Insurance Action\",\r\n \"Remarks\",\r\n \"MSBR Date Received (DD/MM/YYYY)\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"PolicyNo\",\r\n \"RiskAddress\",\r\n \"MITDDate\",\r\n \"InsuranceAction\",\r\n \"Remarks\",\r\n \"MSBRDateReceived\",\r\n ];\r\n\r\n this.generateExcel(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n jsonTableHeader\r\n );\r\n }\r\n }\r\n\r\n private constructSummaryExcelRow(\r\n tempData: any,\r\n worksheet: Worksheet,\r\n SegmentType: string\r\n ): any {\r\n // push 5 row for every record\r\n for (let i = 0; i < 5; i++) {\r\n worksheet.addRow([]);\r\n }\r\n\r\n var total = 0;\r\n var successTotal = 0;\r\n if (SegmentType === \"Citi\") {\r\n total =\r\n tempData.citiExceptionTable.length + tempData.citiSuccessTable.length;\r\n successTotal = tempData.citiSuccessTable.length;\r\n } else {\r\n total =\r\n tempData.cBGExceptionTable.length +\r\n tempData.cBGSuccessTable.length +\r\n tempData.iBGExceptionTable.length +\r\n tempData.iBGSuccessTable.length;\r\n successTotal =\r\n SegmentType === \"CBG\"\r\n ? tempData.cBGSuccessTable.length\r\n : tempData.iBGSuccessTable.length;\r\n }\r\n\r\n let summaryRow = worksheet.addRow([\"SUMMARY\", \"NO. OF CASES\"]);\r\n summaryRow.font = { bold: true };\r\n\r\n if (SegmentType === \"Citi\") {\r\n let summaryHeaderRow = worksheet.addRow([\r\n \"TOTAL NUMBER OF RECORDS IN DSG FILE PROVIDED BY Citibank:\",\r\n total,\r\n ]);\r\n summaryHeaderRow.font = { bold: true };\r\n\r\n let summarySuccessRow = worksheet.addRow([\r\n \"SUCCESSFULLY PROCESSED:\",\r\n successTotal,\r\n ]);\r\n summarySuccessRow.font = { bold: true };\r\n\r\n let summaryExceptionRow = worksheet.addRow([\r\n \"EXCEPTIONS:\",\r\n tempData.citiExceptionTable.length,\r\n ]);\r\n summaryExceptionRow.font = { bold: true };\r\n } else {\r\n let summaryHeaderRow = worksheet.addRow([\r\n \"TOTAL NUMBER OF RECORDS IN DSG FILE PROVIDED BY DBS:\",\r\n total,\r\n ]);\r\n summaryHeaderRow.font = { bold: true };\r\n\r\n let summarySuccessRow = worksheet.addRow([\r\n \"SUCCESSFULLY PROCESSED:\",\r\n successTotal,\r\n ]);\r\n summarySuccessRow.font = { bold: true };\r\n\r\n var exceptionCount =\r\n SegmentType === \"CBG\"\r\n ? tempData.cBGExceptionTable.length\r\n : tempData.iBGExceptionTable.length;\r\n var exceptionCountCBG_IBG =\r\n SegmentType === \"CBG\"\r\n ? tempData.iBGExceptionTable.length\r\n : tempData.cBGExceptionTable.length;\r\n\r\n let summaryExceptionRow = worksheet.addRow([\r\n \"EXCEPTIONS:\",\r\n exceptionCount,\r\n ]);\r\n summaryExceptionRow.font = { bold: true };\r\n\r\n var exceptionType =\r\n (SegmentType === \"CBG\" ? \"IBG\" : \"CBG\") + \" EXCEPTIONS:\";\r\n\r\n let summaryExceptionTypeRow = worksheet.addRow([\r\n exceptionType,\r\n exceptionCountCBG_IBG,\r\n ]);\r\n summaryExceptionTypeRow.font = { bold: true };\r\n }\r\n }\r\n\r\n constructWorkbookSuccess(\r\n tempData: any,\r\n data: Array,\r\n SegmentType: string,\r\n reportTitle: string\r\n ) {\r\n if (SegmentType === \"IBG\") {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Bank Reference Number\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"MSBR Date Received\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"BankRefNo\",\r\n \"PolicyNo\",\r\n \"PolicyStatus\",\r\n \"RiskAddress\",\r\n \"InsuredName\",\r\n \"MITDDate\",\r\n \"RefundPremium\",\r\n \"Remarks\",\r\n \"MSBRDate\",\r\n \"MSBRDateReceived\",\r\n ];\r\n\r\n this.generateExcelWithSummary(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n tempData,\r\n SegmentType,\r\n jsonTableHeader\r\n );\r\n } else if (SegmentType === \"Citi\") {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Collateral Number\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"Email Date Received\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"PolicyNo\",\r\n \"PolicyStatus\",\r\n \"BankRefNo\",\r\n \"RiskAddress\",\r\n \"InsuredName\",\r\n \"MITDDate\",\r\n \"RefundPremium\",\r\n \"Remarks\",\r\n \"MSBRDateReceived\",\r\n \"MSBRDate\",\r\n ];\r\n\r\n this.generateExcelWithSummary(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n tempData,\r\n SegmentType,\r\n jsonTableHeader\r\n );\r\n } else {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"SI No\",\r\n \"Policy Number\",\r\n \"Policy Status\",\r\n \"Risk Address\",\r\n \"Insured Name\",\r\n \"Cancellation/Endorsement Effective Date\",\r\n \"Refund Premium\",\r\n \"Remarks\",\r\n \"Transaction Bound Date/Upload Date\",\r\n \"MSBR Date Received\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"PolicyNo\",\r\n \"PolicyStatus\",\r\n \"RiskAddress\",\r\n \"InsuredName\",\r\n \"MITDDate\",\r\n \"RefundPremium\",\r\n \"Remarks\",\r\n \"MSBRDate\",\r\n \"MSBRDateReceived\",\r\n ];\r\n\r\n this.generateExcelWithSummary(\r\n \"Loan Redemption Report\",\r\n headerDescription,\r\n data,\r\n reportTitle,\r\n ColumnState.GenerateIndexAndUseGivenRows,\r\n tempData,\r\n SegmentType,\r\n jsonTableHeader\r\n );\r\n }\r\n }\r\n\r\n generateBouncedMailPolicyExcel(\r\n data: any[] = Array()\r\n ) {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"No\",\r\n \"Policy Number\",\r\n \"Customer ID\",\r\n \"Insured Name\",\r\n \"DOB(DD/MM/YY)\",\r\n \"Mobile Phone\",\r\n \"Email\",\r\n \"Correspondence Address\",\r\n \"System Last endorsement effective date\",\r\n \"Channel\",\r\n \"Status\",\r\n \"Prefered Delivery Method\",\r\n \"EPL Download Date\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"PolicyNo\",\r\n \"ClientCode\",\r\n \"InsuredName\",\r\n \"DOB\",\r\n \"MobileNo\",\r\n \"Email\",\r\n \"CorrespondenceAddress\",\r\n \"EndorsementEffectiveDate\",\r\n \"PolicyType\",\r\n \"PolicyStatus\",\r\n \"PreferedDeliveryMethod\",\r\n \"EplDownloadDate\",\r\n ];\r\n\r\n //Create workbook and worksheet\r\n let workbook = new Workbook();\r\n let worksheet = workbook.addWorksheet(\"Bounced Mail Policy\");\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(headerDescription);\r\n headerRow.font = { bold: true };\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.border = {\r\n top: { style: \"thin\" },\r\n left: { style: \"thin\" },\r\n bottom: { style: \"thin\" },\r\n right: { style: \"thin\" },\r\n };\r\n });\r\n\r\n let filteredData = this.generateRowIndexAndGivenColumnsForBouncedMail(\r\n data,\r\n jsonTableHeader\r\n );\r\n\r\n // Add Data and Conditional Formatting\r\n filteredData.forEach((d: any) => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((filteredData) => {\r\n let blob = new Blob([filteredData], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n fs.saveAs(blob, \"Bounced Mail Policy.xlsx\");\r\n });\r\n }\r\n\r\n public generateExportList(data: any[] = Array()) {\r\n //Excel Title, Header, Data\r\n const headerDescription = [\r\n \"S/N\",\r\n \"Financial Institution Branch\",\r\n \"Master Policy No\",\r\n \"Product Type\",\r\n \"Policy No\",\r\n \"MSIG Policy No\",\r\n \"Quote No\",\r\n \"Status\",\r\n \"Insured Name\",\r\n \"CIN\",\r\n \"Risk Address\",\r\n \"City / Suburb\",\r\n \"Country\",\r\n \"Postal Code\",\r\n \"Sum Insured\",\r\n \"Bank Reference\",\r\n \"Bound Date\",\r\n \"Inception Date\",\r\n \"Expiry Date\",\r\n \"Maker's ID\",\r\n \"Date / Time\",\r\n \"Checker's ID\",\r\n \"Date / Time\",\r\n ];\r\n\r\n const jsonTableHeader = [\r\n \"serialNo\",\r\n \"buPcCode\",\r\n \"masterPolicyNo\",\r\n \"productType\",\r\n \"policyNo\",\r\n \"MSIGPolicyNo\",\r\n \"quoteNo\",\r\n \"status\",\r\n \"insuredName\",\r\n \"cin\",\r\n \"riskAddress\",\r\n \"city\",\r\n \"country\",\r\n \"riskAddressPostCode\",\r\n \"sumInsured\",\r\n \"bankReference\",\r\n \"boundDate\",\r\n \"inceptionDate\",\r\n \"expiryDate\",\r\n \"makerUserName\",\r\n \"submittedDateTime\",\r\n \"checkerUserName\",\r\n \"checkedDateTime\",\r\n ];\r\n\r\n this.generateExcel(\r\n \"Export Report\",\r\n headerDescription,\r\n data,\r\n \"Export Report.xlsx\",\r\n ColumnState.UseGivenRows,\r\n jsonTableHeader\r\n );\r\n }\r\n\r\n private generateExcel(\r\n worksheetTitle: string,\r\n headerDescription: string[],\r\n data: any[],\r\n excelFileName: string,\r\n columnState: ColumnState = ColumnState.AsItIs,\r\n jsonColumnHeader: string[] = [],\r\n columnsToSkip: number = 0\r\n ) {\r\n //Create workbook and worksheet\r\n let workbook = new Workbook();\r\n let worksheet = workbook.addWorksheet(worksheetTitle);\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(headerDescription);\r\n headerRow.font = { bold: true };\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.border = {\r\n top: { style: \"thin\" },\r\n left: { style: \"thin\" },\r\n bottom: { style: \"thin\" },\r\n right: { style: \"thin\" },\r\n };\r\n });\r\n\r\n let filteredData = [];\r\n\r\n switch (columnState) {\r\n case ColumnState.AsItIs:\r\n filteredData = this.generateRowsAsItIs(data);\r\n break;\r\n case ColumnState.UseGivenRows:\r\n filteredData = this.generateRowsWithGivenColumns(\r\n data,\r\n jsonColumnHeader\r\n );\r\n break;\r\n case ColumnState.GenerateIndexAndUseGivenRows:\r\n filteredData = this.generateRowIndexAndGivenColumns(\r\n data,\r\n jsonColumnHeader\r\n );\r\n break;\r\n default:\r\n //\r\n break;\r\n }\r\n\r\n // Add Data and Conditional Formatting\r\n filteredData.forEach((d: any) => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((filteredData) => {\r\n let blob = new Blob([filteredData], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n fs.saveAs(blob, excelFileName);\r\n });\r\n }\r\n\r\n private generateExcelWithSummary(\r\n worksheetTitle: string,\r\n headerDescription: string[],\r\n data: any[],\r\n excelFileName: string,\r\n columnState: ColumnState = ColumnState.AsItIs,\r\n tempData: any,\r\n SegmentType: string,\r\n jsonColumnHeader: string[] = [],\r\n columnsToSkip: number = 0\r\n ) {\r\n //Create workbook and worksheet\r\n let workbook = new Workbook();\r\n let worksheet = workbook.addWorksheet(worksheetTitle);\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(headerDescription);\r\n headerRow.font = { bold: true };\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.border = {\r\n top: { style: \"thin\" },\r\n left: { style: \"thin\" },\r\n bottom: { style: \"thin\" },\r\n right: { style: \"thin\" },\r\n };\r\n });\r\n\r\n let filteredData = [];\r\n\r\n switch (columnState) {\r\n case ColumnState.AsItIs:\r\n filteredData = this.generateRowsAsItIs(data);\r\n break;\r\n case ColumnState.UseGivenRows:\r\n filteredData = this.generateRowsWithGivenColumns(\r\n data,\r\n jsonColumnHeader\r\n );\r\n break;\r\n case ColumnState.GenerateIndexAndUseGivenRows:\r\n filteredData = this.generateRowIndexAndGivenColumns(\r\n data,\r\n jsonColumnHeader\r\n );\r\n break;\r\n default:\r\n //\r\n break;\r\n }\r\n\r\n // Add Data and Conditional Formatting\r\n filteredData.forEach((d: any) => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n this.constructSummaryExcelRow(tempData, worksheet, SegmentType);\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((filteredData) => {\r\n let blob = new Blob([filteredData], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n fs.saveAs(blob, excelFileName);\r\n });\r\n }\r\n\r\n private generateRowIndexAndGivenColumns(\r\n data: any[],\r\n columns: string[]\r\n ): any[] {\r\n //let filteredData = data.reduce((acc, obj) => [...acc, Object.values(obj).map(y => y)], []);\r\n let filteredData = [];\r\n let rowId = 1;\r\n for (let i in data) {\r\n let temp = [];\r\n\r\n for (let j = 0; j < columns.length; j++) {\r\n temp.push(data[i][columns[j]]);\r\n }\r\n temp.unshift(rowId); //push the rowId to first\r\n rowId++;\r\n filteredData.push(temp);\r\n }\r\n\r\n return filteredData;\r\n }\r\n\r\n private generateRowsWithGivenColumns(data: any[], columns: string[]): any[] {\r\n //let filteredData = data.reduce((acc, obj) => [...acc, Object.values(obj).map(y => y)], []);\r\n let filteredData = [];\r\n for (let i in data) {\r\n let temp = [];\r\n\r\n for (let j = 0; j < columns.length; j++) {\r\n temp.push(data[i][columns[j]]);\r\n }\r\n filteredData.push(temp);\r\n }\r\n\r\n return filteredData;\r\n }\r\n\r\n private generateRowsAsItIs(data: any[]): any[] {\r\n //let filteredData = data.reduce((acc, obj) => [...acc, Object.values(obj).map(y => y)], []);\r\n let filteredData = [];\r\n for (let i in data) {\r\n let temp = [];\r\n let counter = 0;\r\n for (let j in data[i]) {\r\n temp.push(data[i][j]);\r\n counter++;\r\n }\r\n filteredData.push(temp);\r\n }\r\n\r\n return filteredData;\r\n }\r\n\r\n private generateRowIndexAndGivenColumnsForBouncedMail(\r\n data: any[],\r\n columns: string[]\r\n ): any[] {\r\n //let filteredData = data.reduce((acc, obj) => [...acc, Object.values(obj).map(y => y)], []);\r\n let filteredData = [];\r\n let rowId = 1;\r\n for (let i in data) {\r\n for (let j in data[i].Transactions) {\r\n let temp = [];\r\n temp.push(rowId); //push the rowId to first\r\n for (let k = 0; k < columns.length; k++) {\r\n temp.push(data[i].Transactions[j][columns[k]]);\r\n }\r\n rowId++;\r\n filteredData.push(temp);\r\n }\r\n }\r\n\r\n return filteredData;\r\n }\r\n}\r\n\r\nexport enum ColumnState {\r\n AsItIs,\r\n UseGivenRows,\r\n GenerateIndexAndUseGivenRows,\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { UploadExcelService } from \"./upload-excel.service\";\r\nimport { environment } from \"./../../environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class FileUploadService extends UploadExcelService {\r\n SERVER_URL_UPLOADDOCUMENT: string = \"api/document/uploadFile\";\r\n\r\n constructor(public override httpClient: HttpClient) {\r\n super(httpClient);\r\n }\r\n\r\n public save(formData: any) {\r\n return this.uploadAsResponse(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_UPLOADDOCUMENT\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { Identity } from \"src/app/shared/user/identity\";\r\nimport { IdentityRole } from \"src/app/shared/user/identity-role\";\r\nimport * as Enum from \"src/app/framework/enum.shared\";\r\nimport { IIdentity } from \"../framework/interface.shared\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { SessionStorageService } from \"./storages/session-storage.service\";\r\nimport { BroadcastService } from \"./broadcast.service\";\r\n//import { NGXLogger } from \"ngx-logger\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class IdentityRolesService {\r\n public isSuperAdmin: boolean = false;\r\n public identityRole!: IdentityRole;\r\n public isUnderwriter: boolean = false;\r\n public isOperationUnderwriter: boolean = false;\r\n public isMarketer: boolean = false;\r\n public isChecker: boolean = false;\r\n public isMaker: boolean = false;\r\n\r\n public isBroker: boolean = false;\r\n public isAdmin: boolean = false;\r\n public hasProductReadWriteRoles: boolean = false;\r\n public hasProductTransactRoles: boolean = false;\r\n public hasFinanceAccountingRoles: boolean = false;\r\n\r\n public isClaimant: boolean = false;\r\n public isInternalUser: boolean = false;\r\n public isPrimaryInternalUser: boolean = false;\r\n public isFinanceAccounting: boolean = false;\r\n public isProductReadOnly: boolean = false;\r\n public isReporter: boolean = false;\r\n public isExportReporter: boolean = false;\r\n public IsCbsOps: boolean = false;\r\n public IsCSCBGSG: boolean = false;\r\n public IsHASEUser: boolean = false;\r\n\r\n public showIntermedairy: boolean = false;\r\n public showUserProfile: boolean = false;\r\n public showDashboard: boolean = false;\r\n public showSOA: boolean = false;\r\n public showMyAMS: boolean = false;\r\n public showCampaigns: boolean = false;\r\n public showFlexiguard: boolean = false;\r\n public showSalesMgmt: boolean = false;\r\n public showRulesExtension: boolean = false;\r\n public showRenewalListing: boolean = false;\r\n public showSPE: boolean = false;\r\n public showReports: boolean = false;\r\n public showRecruitment: boolean = false;\r\n public showVisitation: boolean = false;\r\n public showInterfaceMaintenance: boolean = false;\r\n public visitURL: string = \"\";\r\n public showSingleSignOn: boolean = false;\r\n public showACRS: boolean = false;\r\n public showIPAFrontEnd: boolean = false;\r\n public isThailandUser: boolean = false;\r\n public isHongkongUser: boolean = false;\r\n // set url for visitation\r\n public showPaymentGatewayTransaction: boolean = false;\r\n public showCCPaymentDetails: boolean = false;\r\n public showAdminTab: boolean = false;\r\n public showMiscTab: boolean = false;\r\n public isManager: boolean = false;\r\n public showTraining: boolean = false;\r\n public showPlanningTab: boolean = false;\r\n public showReportTab: boolean = false;\r\n public showStaticDocTab: boolean = false;\r\n public isIBGProductTab: boolean = false;\r\n public isCitiProductTab: boolean = false;\r\n public productListing: any;\r\n\r\n constructor(\r\n private Identity: Identity,\r\n private msalService: MsalService,\r\n private sessionStorageService: SessionStorageService,\r\n private broadcastService: BroadcastService\r\n ) //private logger: NGXLogger\r\n {\r\n //when log-in, the sessionStorageService might not yet init-ed, hence needs to sub to a broadcast\r\n this.broadcastService.onAutheticated.subscribe((msg: any) => {\r\n // reset flag for all user type\r\n this.resetValues();\r\n this.SetRoles();\r\n });\r\n }\r\n\r\n private SetRoles() {\r\n if (!common.isUndefinedOrNull(this.Identity)) {\r\n if (this.Identity.isInUserRole(\"SuperAdmin_Role\")) {\r\n this.isSuperAdmin = true;\r\n }\r\n //from old angularjs: ~\\library\\module\\application\\core\\components\\menu\\horizontal-menu\\horizontal-menu-component.ts\r\n //and : ~\\library\\module\\shared\\user\\identity-role.ts\r\n /*check is underwriter*/\r\n let userType = this.Identity.currentUser().userType;\r\n\r\n switch (userType) {\r\n case Enum.UserType.Underwriter:\r\n this.isUnderwriter = true;\r\n break;\r\n case Enum.UserType.Broker:\r\n this.isBroker = true;\r\n break;\r\n\r\n case Enum.UserType.Admin:\r\n this.isAdmin = true;\r\n if (this.Identity.currentUser().roles[\"SuperAdmin_Role\"]) {\r\n this.isSuperAdmin = true;\r\n }\r\n break;\r\n\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n /*check is marketer*/\r\n this.isMarketer =\r\n this.Identity.currentUser().userType === Enum.UserType.Marketer;\r\n /*check is checker*/\r\n if (this.Identity.isInUserRole(\"PolicySubmissionChecker\")) {\r\n this.isChecker = true;\r\n }\r\n /*check is maker*/\r\n if (this.Identity.isInUserRole(\"PolicySubmissionMaker\")) {\r\n this.isMaker = true;\r\n }\r\n\r\n /*chec is operationUnderwtiter*/\r\n if (this.Identity.isInUserRole(\"OperationUnderwriter\")) {\r\n this.isOperationUnderwriter = true;\r\n }\r\n this.identityRole = this.Identity.role;\r\n\r\n if (this.Identity.isInUserRole(\"PolicyClaims\")) {\r\n this.isClaimant = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"InternalUser\")) {\r\n this.isInternalUser = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"PrimaryInternalUser\")) {\r\n this.isPrimaryInternalUser = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"FinanceAccounting\")) {\r\n this.isFinanceAccounting = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"Reports\")) {\r\n this.isReporter = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"ExportReports\")) {\r\n this.isExportReporter = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"ProductReadOnly\")) {\r\n this.isProductReadOnly = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"CustomerService_Operations\")) {\r\n this.isProductReadOnly = true;\r\n this.IsCbsOps = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"OperationUnderwriter\")) {\r\n this.isOperationUnderwriter = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"CustomerService_CBS_SG\")) {\r\n this.isProductReadOnly = true;\r\n this.IsCSCBGSG = true;\r\n }\r\n\r\n if (this.Identity.isInUserRole(\"HASE_User\")) {\r\n this.IsHASEUser = true;\r\n }\r\n\r\n /*check is underwriter*/\r\n if (\r\n this.isChecker ||\r\n this.isMaker ||\r\n this.isUnderwriter ||\r\n this.isClaimant ||\r\n this.IsCbsOps ||\r\n this.isProductReadOnly ||\r\n this.IsCSCBGSG ||\r\n this.IsHASEUser\r\n ) {\r\n this.hasProductReadWriteRoles = true;\r\n }\r\n\r\n if (this.isMaker || this.isUnderwriter || this.IsHASEUser) {\r\n this.hasProductTransactRoles = true;\r\n }\r\n\r\n // Access Control Specifications\r\n this.showIntermedairy = this.Identity.isInRole(\"Intermediary_View\");\r\n this.showUserProfile = this.Identity.isInRole(\"UserProfile_View\");\r\n this.showDashboard = this.Identity.isInRole(\"Dashboard_View\");\r\n this.showSOA = this.Identity.isInRole(\"SOA_View\");\r\n this.showMyAMS = this.Identity.isInRole(\"MyAMS_View\");\r\n this.showCampaigns = this.Identity.isInRole(\"Campaigns_View\");\r\n this.showFlexiguard = this.Identity.isInRole(\"FlexiGuard_View\");\r\n this.showSalesMgmt = this.Identity.isInRole(\"SalesManagement_View\");\r\n this.showRulesExtension = this.Identity.isInRole(\"RulesExtension_View\");\r\n this.showRenewalListing = this.Identity.isInRole(\"Underwriter_Role\");\r\n this.showSPE = this.Identity.isInRole(\"SalesPlanAcess_View\");\r\n this.showReports = this.Identity.isInRole(\"Underwriter_Role\");\r\n this.showRecruitment = this.Identity.isInRole(\"Recruitment_View\");\r\n this.showVisitation = this.Identity.isInRole(\"Visitation_View\");\r\n this.visitURL = \"agencyvisitation.management\";\r\n this.showSingleSignOn = this.Identity.isInRole(\"SingleSignOn_View\");\r\n this.showACRS = this.Identity.isInRole(\"ACRS_View\");\r\n this.showIPAFrontEnd = this.Identity.isInRole(\"IPAFrontEnd_View\");\r\n this.isThailandUser = false;\r\n if (this.Identity.currentUser().CountryISO === \"TH\") {\r\n this.isThailandUser = true;\r\n } else if (this.Identity.currentUser().CountryISO === \"HK\") {\r\n this.isHongkongUser = true;\r\n }\r\n\r\n // set url for visitation\r\n this.showPaymentGatewayTransaction = true;\r\n this.showCCPaymentDetails = true;\r\n\r\n this.showInterfaceMaintenance = false;\r\n this.showAdminTab = this.Identity.isInRole(\"AdminTab_View\");\r\n this.showTraining = this.Identity.isInRole(\"TrainingTab_View\");\r\n this.showReportTab = this.Identity.isInRole(\"ReportsTab_View\");\r\n this.showPlanningTab = this.Identity.isInRole(\"PlanningTab_View\");\r\n this.showStaticDocTab = this.Identity.isInRole(\"StaticDocTab_View\");\r\n\r\n if (this.Identity.currentUser().id === 1) {\r\n this.showInterfaceMaintenance = true;\r\n }\r\n\r\n if (\r\n this.Identity.currentUser().underwriterControlGroupId === 7 ||\r\n this.Identity.currentUser().underwriterControlGroupId === 8 ||\r\n this.Identity.currentUser().underwriterControlGroupId === 9\r\n ) {\r\n this.isManager = true;\r\n this.showDashboard = false;\r\n //this.NavLeftMenu.dashboard = false;\r\n this.showTraining = true;\r\n this.showSOA = true;\r\n this.showPlanningTab = true;\r\n this.showMiscTab = true;\r\n this.showReportTab = false;\r\n this.showStaticDocTab = false;\r\n } else {\r\n this.isManager = false;\r\n }\r\n\r\n // product tab checking\r\n this.productListing =\r\n this.Identity.currentUser().products !== undefined\r\n ? this.Identity.currentUser().products\r\n : \"\";\r\n\r\n if (common.isDefined(this.productListing)) {\r\n this.productListing.forEach((element: { pdid: string }) => {\r\n if (\r\n element.pdid.toLowerCase() ===\r\n \"06cb09d3-6fe0-4695-92a8-a61dfb627c61\" ||\r\n element.pdid.toLowerCase() ===\r\n \"8533fa05-f190-4a29-9613-3db7f693dd32\"\r\n ) {\r\n this.isIBGProductTab = true;\r\n }\r\n\r\n if (\r\n element.pdid.toUpperCase() ===\r\n \"A8CDAC65-3EC4-4138-974A-D18C3EF8536C\" ||\r\n element.pdid.toUpperCase() ===\r\n \"1F7EE805-C8CE-416C-AF29-292E920878F8\" ||\r\n element.pdid.toUpperCase() ===\r\n \"B8A348CA-491C-48DA-988A-FCC52F7FC5C5\"\r\n ) {\r\n this.isCitiProductTab = true;\r\n }\r\n });\r\n }\r\n\r\n this.broadcastService.onRoleSet.next({ roleSetStatus: true });\r\n }\r\n }\r\n\r\n refreshCurrentUser() {\r\n //this.logger.log(\"refreshCurrentUser()\");\r\n //this is when browser reload\r\n this.Identity.populateCurrentUser(true);\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n logOut() {\r\n if (this.isLoggedIn()) {\r\n this.sessionStorageService.clear(); //clear sessionStorage\r\n this.clearAuthData(); //clear Identity\r\n this.msalService.instance.logout();\r\n }\r\n }\r\n\r\n public clearAuthData() {\r\n this.Identity.clearAuthData();\r\n }\r\n\r\n getIdentity(): IIdentity {\r\n return this.Identity;\r\n }\r\n\r\n resetValues() {\r\n this.isSuperAdmin = false;\r\n this.isUnderwriter = false;\r\n this.isOperationUnderwriter = false;\r\n this.isMarketer = false;\r\n this.isChecker = false;\r\n this.isMaker = false;\r\n\r\n this.isBroker = false;\r\n this.isAdmin = false;\r\n this.hasProductReadWriteRoles = false;\r\n this.hasProductTransactRoles = false;\r\n this.hasFinanceAccountingRoles = false;\r\n\r\n this.isClaimant = false;\r\n this.isInternalUser = false;\r\n this.isPrimaryInternalUser = false;\r\n this.isFinanceAccounting = false;\r\n this.isProductReadOnly = false;\r\n this.isReporter = false;\r\n this.isExportReporter = false;\r\n this.IsCbsOps = false;\r\n this.IsCSCBGSG = false;\r\n this.IsHASEUser = false;\r\n\r\n this.showIntermedairy = false;\r\n this.showUserProfile = false;\r\n this.showDashboard = false;\r\n this.showSOA = false;\r\n this.showMyAMS = false;\r\n this.showCampaigns = false;\r\n this.showFlexiguard = false;\r\n this.showSalesMgmt = false;\r\n this.showRulesExtension = false;\r\n this.showRenewalListing = false;\r\n this.showSPE = false;\r\n this.showReports = false;\r\n this.showRecruitment = false;\r\n this.showVisitation = false;\r\n this.showInterfaceMaintenance = false;\r\n this.showSingleSignOn = false;\r\n this.showACRS = false;\r\n this.showIPAFrontEnd = false;\r\n this.isThailandUser = false;\r\n // set url for visitation\r\n this.showPaymentGatewayTransaction = false;\r\n this.showCCPaymentDetails = false;\r\n this.showAdminTab = false;\r\n this.showMiscTab = false;\r\n this.isManager = false;\r\n this.showTraining = false;\r\n this.showPlanningTab = false;\r\n this.showReportTab = false;\r\n this.showStaticDocTab = false;\r\n this.isIBGProductTab = false;\r\n this.isCitiProductTab = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, merge, fromEvent, timer, Subscription } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdleTimerService {\r\n\r\n constructor() { }\r\n\r\n private _timerReset$: Subject = new Subject();\r\n private _timer$!: Subscription;\r\n private _idleSubscription$!: Subscription;\r\n private _idle!: Observable;\r\n private _timeoutMilliseconds!: number;\r\n private _storageKey = '_expiredTime';\r\n\r\n public expired$: Subject = new Subject();\r\n\r\n private startTimer(): void {\r\n const time = Date.now() + this._timeoutMilliseconds;\r\n localStorage.setItem(this._storageKey, time.toString());\r\n\r\n this._timer$ = timer(this._timeoutMilliseconds, this._timeoutMilliseconds).subscribe((res) => {\r\n this.expired$.next(true);\r\n });\r\n }\r\n\r\n public startWatching(timeoutInSecounds: number): Observable {\r\n this._idle = merge(\r\n fromEvent(document, 'mousemove'),\r\n fromEvent(document, 'mousedown'),\r\n fromEvent(document, 'mousewheel'),\r\n fromEvent(document, 'click'),\r\n fromEvent(document, 'keypress'),\r\n fromEvent(document, 'touchmove'),\r\n fromEvent(document, 'DOMMouseScroll'),\r\n fromEvent(document, 'MSPointerMove'),\r\n fromEvent(window, 'mousemove'),\r\n fromEvent(window, 'resize'),\r\n fromEvent(window, 'storage')\r\n );\r\n\r\n this._timeoutMilliseconds = timeoutInSecounds * 1000;\r\n\r\n this._idleSubscription$ = this._idle.subscribe((res: any) => {\r\n this.resetTimer();\r\n });\r\n\r\n this.startTimer();\r\n\r\n return this.expired$;\r\n }\r\n\r\n public timerIsReset(): Observable {\r\n return this._timerReset$;\r\n }\r\n\r\n public resetTimer(): void {\r\n this._timer$.unsubscribe();\r\n this._timerReset$.next(true);\r\n this.startTimer();\r\n }\r\n\r\n public stopTimer(): void {\r\n this.expired$.unsubscribe();\r\n this._timerReset$.unsubscribe();\r\n this._timer$.unsubscribe();\r\n this._idleSubscription$.unsubscribe();\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\nimport { IdleWarningStates } from \"src/app/components/shared/idle/enums/idle-warning.states.enum\";\r\nimport { IdleTimerService } from \"./idle-timer.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class IdleService {\r\n constructor(private _idleTimerService: IdleTimerService) {}\r\n\r\n private _currentIdleWarningState: Subject = new Subject();\r\n private _timerStopped: Subject = new Subject();\r\n private _allowedIdleTime!: number;\r\n private _idleWarningTime!: number;\r\n\r\n get allowedIdleTime(): number {\r\n return this._allowedIdleTime;\r\n }\r\n\r\n set allowedIdleTime(value: number) {\r\n this._allowedIdleTime = value;\r\n }\r\n\r\n get idleWarningTime(): number {\r\n return this._idleWarningTime;\r\n }\r\n\r\n set idleWarningTime(value: number) {\r\n this._idleWarningTime = value;\r\n }\r\n\r\n set currentIdleWarningState(value: IdleWarningStates) {\r\n this._currentIdleWarningState.next(value);\r\n }\r\n\r\n startWatching(): Observable {\r\n return this._idleTimerService.startWatching(this.allowedIdleTime);\r\n }\r\n\r\n idleStateChanged(): Observable {\r\n return this._currentIdleWarningState;\r\n }\r\n\r\n timerStopped(): Observable {\r\n return this._timerStopped;\r\n }\r\n\r\n timerResetOccoured(): Observable {\r\n return this._idleTimerService.timerIsReset();\r\n }\r\n\r\n resetTimer(): void {\r\n this._idleTimerService.resetTimer();\r\n }\r\n\r\n stopTimer(): void {\r\n this._idleTimerService.stopTimer();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { merge } from \"rxjs\";\r\n\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ModalService {\r\n private modals: any[] = [];\r\n\r\n add(modal: any): void {\r\n this.modals.push(modal);\r\n }\r\n\r\n remove(id: string): void {\r\n this.modals = this.modals.filter((x) => x.id !== id);\r\n }\r\n\r\n open(id: string): void {\r\n const modal = this.modals.find((x) => x.id === id);\r\n modal.open();\r\n }\r\n\r\n close(id: string): void {\r\n const modal = this.modals.find((x) => x.id === id);\r\n modal.close();\r\n }\r\n\r\n afterClosed(): Observable {\r\n const closedModals = merge(this.modals.filter((x) => x.afterClosed));\r\n return closedModals;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n//import { environment } from \"../environments/environment\";\r\nimport { environment } from \"../../../src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport { LstRateEntity } from \"../components/product/lst-rate/lstRateEntity\";\r\nimport { RmScreenListingEntity } from \"../components/product/rm-screen/RmScreenListingEntity\";\r\nimport { common } from \"../framework/utils/common\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LstRateService extends ApiService {\r\n private lstRateData!: LstRateEntity[];\r\n SERVER_URL_LST_RATE_DETAILS: string = \"api/LstriCodeDetails/\";\r\n SERVER_URL_LST_RATE_UPDATE: string =\r\n \"api/LstriCodeDetails/BulkUpdateLstriCodeDetails/\";\r\n allPoliciesDownloadEntityList: any;\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n async getLstRates(): Promise {\r\n this.lstRateData = [];\r\n const uri = environment.serviceBase + this.SERVER_URL_LST_RATE_DETAILS;\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n\r\n if (common.isDefined(this.lstRateData) && this.lstRateData.length > 0) {\r\n //todo\r\n } else {\r\n this.lstRateData = [];\r\n\r\n const response = await this.httpClient\r\n .get(uri, { headers: headers })\r\n .toPromise();\r\n\r\n this.lstRateData = response;\r\n }\r\n\r\n return this.lstRateData;\r\n }\r\n\r\n async updateLstRates(lstRateEntity: LstRateEntity[]) {\r\n //has to be first item, if json array will not work\r\n let lstEntities: LstRateEntity[] = [];\r\n lstRateEntity.forEach((lstRateEntity, index) => {\r\n let lstEntity = {\r\n ID: lstRateEntity.ID,\r\n LSTRICode: lstRateEntity.LSTRICode.Value,\r\n ReferencePercentage: lstRateEntity.ReferencePercentage.Value,\r\n RICommissionPercentage: lstRateEntity.RICommissionPercentage.Value,\r\n EffectiveStartDate:\r\n lstRateEntity.EffectiveStartDate.Value.toLocaleString(),\r\n EffectiveEndDate: lstRateEntity.EffectiveEndDate.toLocaleString(),\r\n SortOrder: lstRateEntity.SortOrder,\r\n CreatedBY: lstRateEntity.CreatedBY,\r\n Remarks: lstRateEntity.Remarks,\r\n IsExternalParty: lstRateEntity.IsExternalParty,\r\n };\r\n lstEntities.push(lstEntity);\r\n });\r\n\r\n const postData = JSON.stringify(lstEntities);\r\n\r\n // return this.httpClient.put(\r\n // environment.serviceBase + this.SERVER_URL_LST_RATE_UPDATE,\r\n // postData\r\n // );\r\n // const headers = new HttpHeaders({\r\n // Accept: \"application/octet-stream;\",\r\n // \"Content-Type\": \"application/json\",\r\n // });\r\n\r\n // const response = await this.httpClient\r\n // .post(\r\n // environment.serviceBase + this.SERVER_URL_LST_RATE_UPDATE,\r\n // postData,\r\n // { headers: headers }\r\n // )\r\n // .toPromise();\r\n // if (response) this.allPoliciesDownloadEntityList = response.d.results;\r\n // return this.allPoliciesDownloadEntityList;\r\n\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(this.SERVER_URL_LST_RATE_UPDATE),\r\n postData\r\n );\r\n }\r\n\r\n public mapToLstRateEntity(dao: any): LstRateEntity {\r\n const lstRateEntity = new LstRateEntity(\r\n dao.ID,\r\n dao.LSTRICode,\r\n dao.ReferencePercentage,\r\n dao.RICommissionPercentage,\r\n new Date(dao.EffectiveStartDate),\r\n new Date(dao.EffectiveEndDate),\r\n dao.SortOrder,\r\n dao.CreatedBY,\r\n dao.Remarks,\r\n dao.IsExternalParty\r\n );\r\n\r\n return lstRateEntity;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport * as lodash from \"lodash\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { KeyValue } from \"../framework/domain-entity/key-value\";\r\nimport { common } from \"../framework/utils/common\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MasterDataService extends ApiService {\r\n SERVER_URL_MAKERUSERLIST: string = \"api/master/getMakerUserList\";\r\n SERVER_URL_HASEUSERLIST: string = \"api/master/getHaseUserList\";\r\n SERVER_URL_UNDERWRITERMAKERUSERLIST: string =\r\n \"api/master/getUnderwriterMakerUserList\";\r\n SERVER_URL_HASE_UNDERWRITERUSERLIST: string =\r\n \"api/master/getHaseUnderwriterUserList\";\r\n SERVER_URL_COUNTRYLIST: string = \"api/master/getCountryList\";\r\n SERVER_URL_HKDISTRICTCODES: string = \"api/master/getHkDistrictCodes\";\r\n SERVER_URL_UNIQUENATIONALITYLIST: string =\r\n \"api/master/getUniqueNationalityList\";\r\n SERVER_URL_NATIONALITYLIST: string = \"api/master/getNationalityList\";\r\n SERVER_URL_SGIBGOCCUPANCYRATE: string = \"api/master/getSgIbgOccupancyRate\";\r\n SERVER_URL_SGIBGMACHINERYTYPELIST: string =\r\n \"api/master/getSGIBGMachineryTypeList\";\r\n SERVER_URL_FINANCIALINSTBRANCHES: string =\r\n \"api/master/getFinancialInstitutionBranches\";\r\n SERVER_URL_UNDERWRITERREPORTLIST: string =\r\n \"api/master/getUnderwriterReports\";\r\n\r\n country_list: KeyValue[] = [];\r\n hkDistrict_codes: KeyValue[] = [];\r\n nationality_list: KeyValue[] = [];\r\n nationalityAll_list: KeyValue[] = [];\r\n financialInstitutionBranchesDictionary!: {\r\n [key: string]: KeyValue[];\r\n } | null;\r\n financialInstitutionBranchesList: KeyValue[] = [];\r\n sgIBGOccupanyRate_list: KeyValue[] = [];\r\n sgIBGMachineryType_list: KeyValue[] = [];\r\n sgIOccupation_list: KeyValue[] = [];\r\n makerUser_list: KeyValue[] = [];\r\n haseUser_list: KeyValue[] = [];\r\n makerCheckerUser_list: KeyValue[] = [];\r\n underwriterUser_list!: KeyValue[];\r\n haseUnderwriterUser_list!: KeyValue[];\r\n financialInstitutionBranchesfullList: any[] = [];\r\n underwriterReport_list!: KeyValue[];\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n getCountryList = (): Observable[]> => {\r\n if (common.isDefined(this.country_list) && this.country_list.length > 0) {\r\n return of(this.country_list);\r\n } else {\r\n //const url = 'http://localhost:19442/api/master/getCountryList?v=' + AppSettings.appSettings.jsonVersion;\r\n return this.getApiData[]>(\r\n this.SERVER_URL_COUNTRYLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.country_list = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.country_list.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n this.country_list = lodash.orderBy(\r\n this.country_list,\r\n [\"value\"],\r\n [\"asc\"]\r\n );\r\n\r\n return this.country_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getHkDistrictCodes = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.hkDistrict_codes) &&\r\n this.hkDistrict_codes.length > 0\r\n ) {\r\n return of(this.hkDistrict_codes);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_HKDISTRICTCODES\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.hkDistrict_codes = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.hkDistrict_codes.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n this.hkDistrict_codes = lodash.orderBy(\r\n this.hkDistrict_codes,\r\n [\"key\"],\r\n [\"asc\"]\r\n );\r\n\r\n return this.hkDistrict_codes;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getNationalityList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.nationality_list) &&\r\n this.nationality_list.length > 0\r\n ) {\r\n return of(this.nationality_list);\r\n } else {\r\n //const url = 'http://localhost:19442/api/master/getUniqueNationalityList?v=' + AppSettings.appSettings.jsonVersion;\r\n return this.getApiData[]>(\r\n this.SERVER_URL_UNIQUENATIONALITYLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.nationality_list = response.d;\r\n\r\n this.nationality_list = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.nationality_list.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n this.nationality_list = lodash.orderBy(\r\n this.nationality_list,\r\n [\"value\"],\r\n [\"asc\"]\r\n );\r\n\r\n return this.nationality_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getAllNationalityList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.nationalityAll_list) &&\r\n this.nationalityAll_list.length > 0\r\n ) {\r\n return of(this.nationalityAll_list);\r\n } else {\r\n //const url = 'http://localhost:19442/api/api/master/getNationalityList?v=' + AppSettings.appSettings.jsonVersion;\r\n return this.getApiData[]>(\r\n this.SERVER_URL_NATIONALITYLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.nationalityAll_list = response.d;\r\n\r\n this.nationalityAll_list = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.nationalityAll_list.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n this.nationalityAll_list = lodash.orderBy(\r\n this.nationalityAll_list,\r\n [\"value\"],\r\n [\"asc\"]\r\n );\r\n return this.nationality_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n // /** Method to retrieved financial institution branches\r\n // * CBG: [FIB]\r\n // * IBG: [BUPC]\r\n // * Both: ['']\r\n // */\r\n\r\n clearFinancialInstitutionBranches() {\r\n this.financialInstitutionBranchesDictionary = null;\r\n }\r\n\r\n getFinancialInstitutionBranches = (category: string): Observable => {\r\n this.financialInstitutionBranchesDictionary = {};\r\n this.financialInstitutionBranchesList = [];\r\n this.financialInstitutionBranchesfullList = [];\r\n\r\n return this.get(this.SERVER_URL_FINANCIALINSTBRANCHES, {}, {}).pipe(\r\n map(\r\n (response: any) => {\r\n response.d.forEach(\r\n (i: {\r\n isActive: string;\r\n category: string;\r\n value: string;\r\n key: any;\r\n }) => {\r\n if (i.isActive === \"True\") {\r\n const rCategory = i.category.trim().toUpperCase();\r\n if (\r\n common.isUndefinedOrNull(\r\n this.financialInstitutionBranchesDictionary![rCategory]\r\n )\r\n ) {\r\n this.financialInstitutionBranchesDictionary![rCategory] = [];\r\n }\r\n\r\n this.financialInstitutionBranchesList.push(\r\n new KeyValue(i.value, i.key)\r\n );\r\n this.financialInstitutionBranchesDictionary![rCategory].push(\r\n new KeyValue(i.value, i.key)\r\n );\r\n }\r\n this.financialInstitutionBranchesfullList.push({\r\n value: i.value,\r\n key: i.key,\r\n isActive: i.isActive,\r\n });\r\n }\r\n );\r\n\r\n if (common.isStringNullOrEmpty(category)) {\r\n return this.financialInstitutionBranchesList;\r\n } else {\r\n return this.financialInstitutionBranchesDictionary![\r\n category.trim().toUpperCase()\r\n ];\r\n }\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n };\r\n\r\n getSgIbgOccupancyRateList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.sgIBGOccupanyRate_list) &&\r\n this.sgIBGOccupanyRate_list.length > 0\r\n ) {\r\n return of(this.sgIBGOccupanyRate_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_SGIBGOCCUPANCYRATE\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.sgIBGOccupanyRate_list = response.d;\r\n\r\n this.sgIBGOccupanyRate_list = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.sgIBGOccupanyRate_list.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n return this.sgIBGOccupanyRate_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getSGIBGMachineryTypeList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.sgIBGMachineryType_list) &&\r\n this.sgIBGMachineryType_list.length > 0\r\n ) {\r\n return of(this.sgIBGMachineryType_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_SGIBGMACHINERYTYPELIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.sgIBGMachineryType_list = response.d;\r\n\r\n this.sgIBGMachineryType_list = [];\r\n response.d.forEach((i: { value: string; key: any }) => {\r\n this.sgIBGMachineryType_list.push(new KeyValue(i.value, i.key));\r\n });\r\n\r\n return this.sgIBGMachineryType_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getMakerUserList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.makerUser_list) &&\r\n this.makerUser_list.length > 0\r\n ) {\r\n return of(this.makerUser_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_MAKERUSERLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.makerUser_list = [];\r\n response.d.forEach((i: { key: string; value: any }) => {\r\n this.makerUser_list.push(new KeyValue(i.key, i.value));\r\n });\r\n\r\n return this.makerUser_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getHaseUserList = (): Observable[]> => {\r\n if (common.isDefined(this.haseUser_list) && this.haseUser_list.length > 0) {\r\n return of(this.haseUser_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_HASEUSERLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.haseUser_list = [];\r\n response.d.forEach((i: { key: string; value: any }) => {\r\n this.haseUser_list.push(new KeyValue(i.key, i.value));\r\n });\r\n\r\n return this.haseUser_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getUnderwriterMakerUserList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.underwriterUser_list) &&\r\n this.underwriterUser_list.length > 0\r\n ) {\r\n return of(this.underwriterUser_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_UNDERWRITERMAKERUSERLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.underwriterUser_list = [];\r\n response.d.forEach((i: { key: string; value: any }) => {\r\n this.underwriterUser_list.push(new KeyValue(i.key, i.value));\r\n });\r\n\r\n return this.underwriterUser_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getHaseUnderwriterUserList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.haseUnderwriterUser_list) &&\r\n this.haseUnderwriterUser_list.length > 0\r\n ) {\r\n return of(this.haseUnderwriterUser_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_HASE_UNDERWRITERUSERLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.haseUnderwriterUser_list = [];\r\n response.d.forEach((i: { key: string; value: any }) => {\r\n this.haseUnderwriterUser_list.push(new KeyValue(i.key, i.value));\r\n });\r\n\r\n return this.haseUnderwriterUser_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getSGIOccupationList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.sgIOccupation_list) &&\r\n this.sgIOccupation_list.length > 0\r\n ) {\r\n return of(this.sgIOccupation_list);\r\n } else {\r\n //const url = 'library/module/new-product/sme/data/getMasterData.json?v=' + AppSettings.appSettings.jsonVersion;\r\n //move to assets folder for security\r\n const url =\r\n \"assets/new-product/sme/data/getMasterData.json?v=\" +\r\n environment.jsonVersion;\r\n\r\n //todo: cache\r\n //this.get[]>(url, {}, {}, false, true)\r\n return this.httpClient.get(url).pipe(\r\n map(\r\n (response: any) => {\r\n this.sgIOccupation_list = response;\r\n this.sgIOccupation_list = [];\r\n\r\n if (common.isDefined(response.ind)) {\r\n response.ind.forEach((industry: { ic: string; dn: any }) => {\r\n this.sgIOccupation_list.push(\r\n new KeyValue(industry.ic, industry.dn)\r\n );\r\n });\r\n }\r\n\r\n return this.sgIOccupation_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n\r\n getUnderwriterReportList = (): Observable[]> => {\r\n if (\r\n common.isDefined(this.underwriterReport_list) &&\r\n this.underwriterReport_list.length > 0\r\n ) {\r\n return of(this.underwriterReport_list);\r\n } else {\r\n return this.getApiData[]>(\r\n this.SERVER_URL_UNDERWRITERREPORTLIST\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n this.underwriterReport_list = [];\r\n response.d.forEach((i: { key: string; value: any }) => {\r\n this.underwriterReport_list.push(new KeyValue(i.key, i.value));\r\n });\r\n\r\n return this.underwriterReport_list;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n };\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { GUID } from \"../framework/domain-entity/guid\";\r\nimport { Global } from \"../shared/global\";\r\nimport { IUser } from \"../framework/interface.shared\";\r\nimport { common } from \"../framework/utils/common\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nexport class MasterPolicyEntity {\r\n id!: string;\r\n masterPolicyNumber!: string;\r\n policyNumber!: string;\r\n description!: string;\r\n commissionRate!: number;\r\n noOfFreeInsuranceYear!: number;\r\n policyType!: string;\r\n typeDescription!: string;\r\n productType!: string;\r\n homeContentSumInsuredAmount!: number;\r\n productName!: string;\r\n isMI!: boolean;\r\n active!: boolean;\r\n productId!: string;\r\n country!: string;\r\n meridianMasterPolicyNumber!: string;\r\n paymentType!: number;\r\n endEffectiveDate!: Date;\r\n startEffectiveDate!: Date;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MasterPolicyService extends ApiService {\r\n private url =\r\n \"api/product/policy/getMasterPolicies?v=\" + environment.jsonVersion;\r\n private masterPolicyList!: MasterPolicyEntity[];\r\n private masterPolicyData!: MasterPolicyEntity[];\r\n private masterPolicyDictionary!: { [key: string]: MasterPolicyEntity };\r\n private productMasterPolicyListDictionary!: {\r\n [key: string]: MasterPolicyEntity[];\r\n };\r\n private productListing: any;\r\n private userMasterPolicyData!: MasterPolicyEntity[];\r\n //private Identity: Identity;\r\n\r\n SERVER_URL_TODOSEARCH: string = \"api/product/home/todo/search\";\r\n SERVER_URL_HASE_TODOSEARCH: string = \"api/product/home/todo/haseSearch\";\r\n SERVER_URL_POLICYSEARCH: string = \"api/product/home/policy/search\";\r\n SERVER_URL_HASE_POLICYSEARCH: string = \"api/product/home/policy/haseSearch\";\r\n SERVER_URL_EXPORTSEARCH: string = \"api/product/home/export/search\";\r\n SERVER_URL_EXPORTEXPORT: string = \"api/product/home/export/export\";\r\n SERVER_URL_GETPROPOSALDATESUBMITTED: string =\r\n \"api/proposal/getProposalDateSubmitted\";\r\n SERVER_URL_HASE_REPORT: string = \"api/product/home/report/export\";\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n getbyMasterPolicyId(masterPolicyId: GUID) {\r\n if (common.isDefined(this.masterPolicyDictionary)) {\r\n return this.masterPolicyDictionary[masterPolicyId.toString()];\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n getProposalDateSubmitted(proposalId: string): Observable {\r\n return this.add(\r\n this.SERVER_URL_GETPROPOSALDATESUBMITTED,\r\n {},\r\n { proposalId: proposalId }\r\n ).pipe(\r\n map(\r\n (response: any) => {\r\n //return response.result;\r\n return response.body.result; //it's in body.result in new angular\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n getListByProduct(\r\n productId: GUID,\r\n submittedDate: string | number | Date,\r\n notAppendPolicy?: boolean\r\n ): Observable {\r\n if (common.isDefined(this.productMasterPolicyListDictionary)) {\r\n return of(this.productMasterPolicyListDictionary[productId.toString()]);\r\n } else {\r\n this.productMasterPolicyListDictionary = {};\r\n this.masterPolicyData = [];\r\n return this.getApiData(this.url).pipe(\r\n map(\r\n (response: any) => {\r\n const masterPolicyList = response.d;\r\n // filtering the master policy data based on the dates\r\n if (Global.isDefined(masterPolicyList)) {\r\n masterPolicyList.forEach(\r\n (list: {\r\n startEffectiveDate: string | number | Date;\r\n endEffectiveDate: string | number | Date;\r\n active: any;\r\n commissionRate: any;\r\n country: any;\r\n description: any;\r\n homeContentSumInsuredAmount: any;\r\n id: any;\r\n isMI: any;\r\n masterPolicyNumber: any;\r\n meridianMasterPolicyNumber: any;\r\n noOfFreeInsuranceYear: any;\r\n paymentType: any;\r\n policyNumber: any;\r\n policyType: any;\r\n productId: any;\r\n productName: any;\r\n productType: any;\r\n typeDescription: any;\r\n }) => {\r\n if (\r\n new Date(submittedDate) >\r\n new Date(list.startEffectiveDate) &&\r\n new Date(list.endEffectiveDate) >= new Date(submittedDate)\r\n ) {\r\n this.masterPolicyData.push({\r\n active: list.active,\r\n commissionRate: list.commissionRate,\r\n country: list.country,\r\n description: list.description,\r\n endEffectiveDate: new Date(list.endEffectiveDate),\r\n homeContentSumInsuredAmount:\r\n list.homeContentSumInsuredAmount,\r\n id: list.id,\r\n isMI: list.isMI,\r\n masterPolicyNumber: list.masterPolicyNumber,\r\n meridianMasterPolicyNumber:\r\n list.meridianMasterPolicyNumber,\r\n noOfFreeInsuranceYear: list.noOfFreeInsuranceYear,\r\n paymentType: list.paymentType,\r\n policyNumber: list.policyNumber,\r\n policyType: list.policyType,\r\n productId: list.productId,\r\n productName: list.productName,\r\n productType: list.productType,\r\n startEffectiveDate: new Date(list.startEffectiveDate),\r\n typeDescription: list.typeDescription,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n this.masterPolicyData.forEach((mp) => {\r\n let displayText =\r\n mp.policyType +\r\n \" - \" +\r\n mp.description +\r\n \" - \" +\r\n mp.meridianMasterPolicyNumber;\r\n if (!common.isDefined(notAppendPolicy)) {\r\n displayText += \" (MSIG: \" + mp.policyNumber + \")\";\r\n }\r\n mp.description = displayText;\r\n });\r\n\r\n this.masterPolicyData.forEach((mp: MasterPolicyEntity) => {\r\n const productIdText = mp.productId.trim().toUpperCase();\r\n if (\r\n common.isUndefinedOrNull(\r\n this.productMasterPolicyListDictionary[productIdText]\r\n )\r\n ) {\r\n this.productMasterPolicyListDictionary[productIdText] = [];\r\n }\r\n\r\n // Only include active master policy\r\n if (mp.active) {\r\n this.productMasterPolicyListDictionary[productIdText].push(mp);\r\n }\r\n });\r\n\r\n return this.productMasterPolicyListDictionary[productId.toString()];\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n }\r\n\r\n public searchTodoPolicyListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_TODOSEARCH,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public searchHaseTodoPolicyListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_HASE_TODOSEARCH,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public searchPolicyListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_POLICYSEARCH,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public searchHasePolicyListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_HASE_POLICYSEARCH,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n public searchExportListing(\r\n querystring: string,\r\n exportExcel: boolean = false\r\n ) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase +\r\n (!exportExcel\r\n ? this.SERVER_URL_EXPORTSEARCH\r\n : this.SERVER_URL_EXPORTEXPORT),\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n\r\n getList(\r\n currentUser: IUser,\r\n productId: GUID = new GUID(),\r\n active: boolean = true\r\n ): Observable {\r\n if (\r\n common.isDefined(this.masterPolicyData) &&\r\n this.masterPolicyData.length > 0\r\n ) {\r\n this.masterPolicyDictionary = {};\r\n this.userMasterPolicyData = [];\r\n this.productListing =\r\n currentUser?.products !== undefined ? currentUser.products : [];\r\n\r\n this.masterPolicyData.forEach((mp: MasterPolicyEntity) => {\r\n this.productListing?.forEach((product: { pdid: string }) => {\r\n if (\r\n product.pdid.toUpperCase() ===\r\n mp.productId.toString().trim().toUpperCase()\r\n ) {\r\n this.masterPolicyDictionary[\r\n mp.id.toString().trim().replace(\" \", \"\")\r\n ] = mp;\r\n this.userMasterPolicyData.push(mp);\r\n }\r\n });\r\n });\r\n\r\n return of(this.userMasterPolicyData);\r\n } else {\r\n this.masterPolicyDictionary = {};\r\n this.masterPolicyData = [];\r\n this.userMasterPolicyData = [];\r\n return this.getApiData(this.url).pipe(\r\n map(\r\n (response: any) => {\r\n this.masterPolicyList = response.d;\r\n if (Global.isDefined(this.masterPolicyList)) {\r\n this.masterPolicyList.forEach((list) => {\r\n if (\r\n new Date() < new Date(list.endEffectiveDate) &&\r\n new Date(list.startEffectiveDate) < new Date()\r\n ) {\r\n this.masterPolicyData.push({\r\n active: list.active,\r\n commissionRate: list.commissionRate,\r\n country: list.country,\r\n description: list.description,\r\n endEffectiveDate: list.endEffectiveDate,\r\n homeContentSumInsuredAmount:\r\n list.homeContentSumInsuredAmount,\r\n id: list.id,\r\n isMI: list.isMI,\r\n masterPolicyNumber: list.masterPolicyNumber,\r\n meridianMasterPolicyNumber: list.meridianMasterPolicyNumber,\r\n noOfFreeInsuranceYear: list.noOfFreeInsuranceYear,\r\n paymentType: list.paymentType,\r\n policyNumber: list.policyNumber,\r\n policyType: list.policyType,\r\n productId: list.productId,\r\n productName: list.productName,\r\n productType: list.productType,\r\n startEffectiveDate: list.startEffectiveDate,\r\n typeDescription: list.typeDescription,\r\n });\r\n }\r\n });\r\n }\r\n this.productListing =\r\n currentUser?.products !== undefined ? currentUser.products : [];\r\n\r\n if (\r\n common.isDefined(this.userMasterPolicyData) &&\r\n this.userMasterPolicyData.length == 0\r\n ) {\r\n this.masterPolicyData.forEach((mp: MasterPolicyEntity) => {\r\n this.productListing?.forEach((product: { pdid: string }) => {\r\n if (\r\n product.pdid.toUpperCase() ===\r\n mp.productId.toString().trim().toUpperCase()\r\n ) {\r\n this.masterPolicyDictionary[\r\n mp.id.toString().trim().replace(\" \", \"\")\r\n ] = mp;\r\n this.userMasterPolicyData.push(mp);\r\n }\r\n });\r\n });\r\n }\r\n\r\n return this.userMasterPolicyData;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n }\r\n\r\n public async exportReport(reportId: string\r\n ): Promise {\r\n const uri = environment.serviceBase + this.SERVER_URL_HASE_REPORT;\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\", \r\n });\r\n const response = await this.httpClient\r\n .post(uri,reportId, { headers: headers })\r\n .toPromise();\r\n if (response)\r\n return response.d;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { DocumentService } from \"./document/document.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MessageBoardService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService,\r\n public documentService: DocumentService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n getMessage(proposalId: any) {\r\n var uri = \"api/proposal/getMessage\";\r\n var params = {\r\n proposalId: proposalId,\r\n };\r\n var data = {};\r\n return this.get(uri, params, data);\r\n }\r\n\r\n getInternalUnderwriterComment(proposalId: any) {\r\n var uri = \"api/proposal/getInternalUnderwriterComment\";\r\n var params = {\r\n proposalId: proposalId,\r\n };\r\n var data = {};\r\n return this.get(uri, params, data);\r\n }\r\n\r\n saveMessage(serverModel: any) {\r\n return this.save(serverModel).pipe(\r\n map(\r\n (data: any) => {\r\n return data;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n saveEmail = function (serverModel: any) {\r\n // var deferred = $q.defer();\r\n // saveAndSendEmail(serverModel)\r\n // .then(function (data) {\r\n // deferred.resolve(data);\r\n // }, function (err) {\r\n // deferred.reject(err);\r\n // })\r\n // return deferred.promise;\r\n };\r\n\r\n save(newMessage: any) {\r\n var uri = \"api/proposal/saveMessage\";\r\n var params = {};\r\n var data = {};\r\n return this.add(uri, params, newMessage);\r\n }\r\n\r\n getFile(params: any) {\r\n this.documentService.downloadDocument(params);\r\n }\r\n\r\n upload(newMessage: any) {\r\n var uri = \"api/document/upload\";\r\n var params = {};\r\n var data = {};\r\n return this.add(uri, params, newMessage);\r\n }\r\n\r\n saveAndSendEmail(newMessage: any) {\r\n var uri = \"api/proposal/sendEmailSaveMessage\";\r\n var params = {};\r\n var data = {};\r\n return this.add(uri, params, newMessage);\r\n }\r\n\r\n getMessageBoardCategory(callback: (arg0: any[]) => void) {\r\n var uri = \"products/messageBoard/data/messageBoardCategory.json?v=1\";\r\n return this.get(uri, {}, {}, false, true).subscribe(function (result: any) {\r\n var model = result;\r\n var folderType: Array<{ id: any; name: any }> = new Array<{\r\n id: any;\r\n name: any;\r\n }>();\r\n model.folderType.forEach(function (type: { id: any; name: any }) {\r\n folderType.push({\r\n id: type.id,\r\n name: type.name,\r\n });\r\n });\r\n callback(folderType);\r\n });\r\n }\r\n\r\n savePrintOptions(proposalEntity: any): Observable {\r\n var uri = \"api/proposal/SendPrintOptions\";\r\n var fileModelsJson = \"\";\r\n if (\r\n proposalEntity.fileModels != undefined &&\r\n proposalEntity.fileModels.length > 0\r\n ) {\r\n fileModelsJson = JSON.stringify(proposalEntity.fileModels);\r\n } else {\r\n fileModelsJson = \"\";\r\n }\r\n const postData = {\r\n proposalId: proposalEntity.proposalId.toString(),\r\n printType: proposalEntity.printType,\r\n messageId:\r\n proposalEntity.messageId == undefined ? 0 : proposalEntity.messageId,\r\n printCorrespondence: proposalEntity.printCorrespondence,\r\n isReprint: proposalEntity.isReprint,\r\n isSummary: proposalEntity.isSummary,\r\n isManual: proposalEntity.isManual,\r\n isPasswordProtected: proposalEntity.isPasswordProtected,\r\n fileIdsJsonString: fileModelsJson,\r\n };\r\n\r\n return this.add(uri, {}, postData).pipe(\r\n map(\r\n (response: any) => {\r\n return response;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as MfEnum from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as MfEnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as EnumHK from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { HaseProductFactory } from \"src/app/models/new-product/abstract-factory/factory/hase-product-factory\";\r\nimport { DbsProductFactory } from \"src/app/models/new-product/abstract-factory/factory/dbs-product-factory\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\n\r\nconst productFactory = () => {\r\n return new ProductService();\r\n};\r\n\r\nexport { productFactory };\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ProductService {\r\n constructor() {}\r\n\r\n getProductBase(productType: MfEnum.MortgageFireSgProduct) {\r\n switch (productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO: {\r\n return EnumSG.ProductBase.Citi;\r\n }\r\n case EnumSG.MortgageFireSgProduct.HSWPB:\r\n case EnumSG.MortgageFireSgProduct.HSCMB: {\r\n return EnumSG.ProductBase.HASE;\r\n }\r\n default: {\r\n return EnumSG.ProductBase.DBS;\r\n }\r\n }\r\n }\r\n\r\n getProductFactory(productType: MfEnum.MortgageFireSgProduct) {\r\n switch (productType) {\r\n case EnumSG.MortgageFireSgProduct.CTHDB:\r\n case EnumSG.MortgageFireSgProduct.CTMFPTE:\r\n case EnumSG.MortgageFireSgProduct.CTMFCONDO: {\r\n return new DbsProductFactory();\r\n }\r\n case EnumSG.MortgageFireSgProduct.HSWPB:\r\n case EnumSG.MortgageFireSgProduct.HSCMB: {\r\n return new HaseProductFactory();\r\n }\r\n default: {\r\n return new DbsProductFactory();\r\n }\r\n }\r\n }\r\n\r\n getHKProductFactory(productType: MfEnumHK.MortgageFireHKProduct) {\r\n switch (productType) {\r\n case EnumHK.MortgageFireHKProduct.HSWPB:\r\n case EnumHK.MortgageFireHKProduct.HSCMB: {\r\n return new HaseProductFactory();\r\n }\r\n default: {\r\n return new DbsProductFactory();\r\n }\r\n }\r\n }\r\n\r\n getProductFactoryByProductId(productId: GUID) {\r\n switch (productId.toString()) {\r\n case Const.ProductID.PRODUCT_ID_DBS_MORTGAGEINTERESTPLUS:\r\n case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSPTE:\r\n case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSHDB: {\r\n return new DbsProductFactory();\r\n }\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING: {\r\n return new HaseProductFactory();\r\n }\r\n default: {\r\n return new DbsProductFactory();\r\n }\r\n }\r\n }\r\n\r\n getCountryByProductId(productId: string) {\r\n switch (productId.toUpperCase()) {\r\n case Const.ProductID.PRODUCT_ID_DBS_MORTGAGEINTERESTPLUS:\r\n case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSPTE:\r\n case Const.ProductID.PRODUCT_ID_DBS_HOUSEOWNERPLUSHDB: {\r\n return \"SG\";\r\n }\r\n case Const.ProductID.PRODUCT_ID_HASE_WEALTHPERSONALBANKING:\r\n case Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING: {\r\n return \"HK\";\r\n }\r\n default: {\r\n return \"SG\";\r\n }\r\n }\r\n }\r\n}\r\n","import * as Const from \"./../../../../framework/const.shared\";\r\nimport * as Enums from \"./../../../../framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"./../../../../framework/utils/exception-manager\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport { common } from \"./../../../../framework/utils/common\";\r\nimport { instanceFactory } from \"./../../../../framework/utils/instance-factory\";\r\nimport { IdentityRolesService } from \"../../../identity-roles.service\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { AbstractProductFactory } from \"src/app/models/new-product/abstract-factory/factory/abstract-product-factory\";\r\nimport { ProductService } from \"../product.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ProposalAvailableActionHelperService {\r\n constructor(\r\n private identityRolesService: IdentityRolesService,\r\n public productService: ProductService\r\n ) {}\r\n\r\n getAvailableActions(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n actions.push(Enums.ProposalCommandAction.Exit);\r\n actions.push(Enums.ProposalCommandAction.Copy);\r\n\r\n /** Current login user is transaction read only user\r\n * It could be [Claims] or whatever read only user type\r\n */\r\n if (\r\n this.identityRolesService.getIdentity().isProposalTransactionReadOnly ===\r\n true\r\n ) {\r\n // no other available action\r\n } else {\r\n switch (proposal.proposalStatus) {\r\n case Enums.ProposalStatus.Endorsed:\r\n case Enums.ProposalStatus.Cancelled:\r\n // do nothing\r\n break;\r\n case Enums.ProposalStatus.Renewed:\r\n const renewed = this.renewed(proposal);\r\n renewed.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n case Enums.ProposalStatus.Accepted:\r\n const accepted = this.accepted(proposal);\r\n accepted.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n case Enums.ProposalStatus.Referred:\r\n const referred = this.referred(proposal);\r\n referred.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n // draft\r\n case Enums.ProposalStatus.None:\r\n case Enums.ProposalStatus.Incomplete:\r\n const draft = this.incomplete(proposal);\r\n draft.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n case Enums.ProposalStatus.PendingChecker:\r\n const PendingChecker = this.pendingChecker(proposal);\r\n PendingChecker.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n // draft\r\n case Enums.ProposalStatus.Declined:\r\n const declined = this.declined(proposal);\r\n declined.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n case Enums.ProposalStatus.Approved:\r\n let productFactory!: AbstractProductFactory;\r\n productFactory = this.productService.getProductFactoryByProductId(\r\n proposal!.productId!\r\n );\r\n\r\n if (productFactory.buttonPanel().ProductAllowApproved(proposal)) {\r\n const approved = this.approved(proposal);\r\n approved.forEach((action) => {\r\n actions.push(action);\r\n });\r\n } else {\r\n ExceptionManager.error(\r\n \"Not to be expected to in [Approved] status\"\r\n );\r\n }\r\n break;\r\n\r\n case Enums.ProposalStatus.Replaced:\r\n const madeRedundant = this.madeRedundant(proposal);\r\n madeRedundant.forEach((action) => {\r\n actions.push(action);\r\n });\r\n break;\r\n\r\n case Enums.ProposalStatus.Lapsed:\r\n break;\r\n\r\n default:\r\n ExceptionManager.error(\"Unexpected ProposalStatus\");\r\n }\r\n }\r\n return actions;\r\n }\r\n\r\n getAvailableActionsforCbsOps(\r\n proposal: ProposalEntity\r\n ): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n const isIBG =\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG;\r\n // This code is CBG specific - CbsOps has access only to the ChangeOfClientInfo & ChangeOfCorrespondenceAddress\r\n if (\r\n !isIBG &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n (proposal.endorsementType === Enums.EndorsementType.ChangeOfClientInfo ||\r\n proposal.endorsementType ===\r\n Enums.EndorsementType.ChangeOfCorrespondenceAddress)\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n }\r\n\r\n // This code is IBG specific - CbsOps has access only to GeneralEndorsement\r\n if (\r\n proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n proposal.endorsementType === Enums.EndorsementType.GeneralEndorsement &&\r\n isIBG\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Accept);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n getAvailableActionforCSCBGSG(\r\n proposal: ProposalEntity\r\n ): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n const isCBG =\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG;\r\n\r\n if (\r\n isCBG &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Incomplete &&\r\n proposal.endorsementType === Enums.EndorsementType.ChangeOfClientInfo\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n // a and b are javascript Date objects\r\n private dateBeforeDiffInDays(\r\n todaysDate: {\r\n getFullYear: () => number;\r\n getMonth: () => number;\r\n getDate: () => number | undefined;\r\n },\r\n policyExpiryDate: {\r\n getFullYear: () => number;\r\n getMonth: () => number;\r\n getDate: () => number | undefined;\r\n }\r\n ) {\r\n const _MS_PER_DAY = 1000 * 60 * 60 * 24;\r\n // Discard the time and time-zone information.\r\n const utc1 = Date.UTC(\r\n todaysDate.getFullYear(),\r\n todaysDate.getMonth(),\r\n todaysDate.getDate()\r\n );\r\n const utc2 = Date.UTC(\r\n policyExpiryDate.getFullYear(),\r\n policyExpiryDate.getMonth(),\r\n policyExpiryDate.getDate()\r\n );\r\n\r\n return Math.floor((utc2 - utc1) / _MS_PER_DAY);\r\n }\r\n\r\n // a and b are javascript Date objects\r\n private dateAfterDiffInDays(\r\n todaysDate: {\r\n getFullYear: () => number;\r\n getMonth: () => number;\r\n getDate: () => number | undefined;\r\n },\r\n policyExpiryDate: {\r\n getFullYear: () => number;\r\n getMonth: () => number;\r\n getDate: () => number | undefined;\r\n }\r\n ) {\r\n const _MS_PER_DAY = 1000 * 60 * 60 * 24;\r\n // Discard the time and time-zone information.\r\n const utc1 = Date.UTC(\r\n todaysDate.getFullYear(),\r\n todaysDate.getMonth(),\r\n todaysDate.getDate()\r\n );\r\n const utc2 = Date.UTC(\r\n policyExpiryDate.getFullYear(),\r\n policyExpiryDate.getMonth(),\r\n policyExpiryDate.getDate()\r\n );\r\n\r\n return Math.floor((utc1 - utc2) / _MS_PER_DAY);\r\n }\r\n\r\n private renewed(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n if (\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated &&\r\n proposal.auxiliary.ReInstateDisplayFlag\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n // renewal\r\n if (\r\n (proposal.transType === Enums.TransType.NEW ||\r\n proposal.transType === Enums.TransType.END) &&\r\n proposal.proposalType === Enums.ProposalType.Policy &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n !proposal.auxiliary.IsPreviousYearTerminated\r\n ) {\r\n // 30 days before & 30 days after for HDB & PTE - CBG\r\n // 19 days before & 30 days after for MIP - CBG\r\n // 88 days before & 30 days after for MAR & FIRE - IBG\r\n if (proposal.auxiliary.allowRenewal) {\r\n actions.push(Enums.ProposalCommandAction.Renew);\r\n }\r\n }\r\n // reinstate year2 cancellation\r\n if (\r\n proposal.auxiliary.IsPreviousYearTerminated &&\r\n proposal.proposalStatus === Enums.ProposalStatus.Accepted &&\r\n proposal.pendingTransaction == null &&\r\n proposal.transType !== Enums.TransType.CAN\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n break;\r\n case Enums.UserType.Broker:\r\n if (\r\n this.identityRolesService.isMaker &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n actions.push(Enums.ProposalCommandAction.Cancel);\r\n }\r\n if (\r\n this.identityRolesService.IsCbsOps &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n }\r\n\r\n if (\r\n this.identityRolesService.IsCSCBGSG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG &&\r\n proposal.transType !== Enums.TransType.CAN &&\r\n proposal.pendingTransaction == null\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Endorse);\r\n }\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n private accepted(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n let productFactory!: AbstractProductFactory;\r\n productFactory = this.productService.getProductFactoryByProductId(\r\n proposal!.productId!\r\n );\r\n return productFactory\r\n .buttonPanel()\r\n .GetApprovedActions(this.identityRolesService, proposal);\r\n }\r\n\r\n private referred(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Underwriter:\r\n // DBSEP-2136: Check ProuctType IBG with role Operation underwriter\r\n // Any UW for CBG\r\n if (\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Accept);\r\n actions.push(Enums.ProposalCommandAction.Decline);\r\n }\r\n // Non Operator UW for IBG\r\n if (\r\n !this.identityRolesService.getIdentity().role\r\n .isOperationUnderwriter &&\r\n (proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG)\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.Save);\r\n actions.push(Enums.ProposalCommandAction.Accept);\r\n actions.push(Enums.ProposalCommandAction.Decline);\r\n }\r\n\r\n // Operator UW for IGB has no access to these buttons\r\n\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n private approved(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Broker:\r\n case Enums.UserType.Underwriter:\r\n if (\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_HASE_COMMERCIALBANKING\r\n ) {\r\n actions.push(Enums.ProposalCommandAction.EditQuotation);\r\n }\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.MakeRedundant);\r\n break;\r\n }\r\n return actions;\r\n }\r\n private incomplete(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n let productFactory!: AbstractProductFactory;\r\n productFactory = this.productService.getProductFactoryByProductId(\r\n proposal!.productId!\r\n );\r\n return productFactory\r\n .buttonPanel()\r\n .GetIncompleteActions(this.identityRolesService, proposal);\r\n }\r\n\r\n private pendingChecker(\r\n proposal: ProposalEntity\r\n ): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n\r\n // if is [Checker] and it's not the same person with the proposal [MakerUserId]\r\n if (\r\n this.identityRolesService.isChecker &&\r\n this.identityRolesService.getIdentity().currentUser().id !==\r\n proposal.makerUserId &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n // Allow [Checked] and [Return For Revise]\r\n actions.push(Enums.ProposalCommandAction.Submit);\r\n actions.push(Enums.ProposalCommandAction.ReturnForRevise);\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n private declined(proposal: ProposalEntity): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n switch (this.identityRolesService.getIdentity().currentUser().userType) {\r\n case Enums.UserType.Broker:\r\n if (\r\n this.identityRolesService.isMaker &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG &&\r\n proposal.productId?.toString().toUpperCase() !==\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG\r\n ) {\r\n // Allow [Edit Declined]\r\n actions.push(Enums.ProposalCommandAction.EditDeclinedProposal);\r\n }\r\n break;\r\n // DBSEP-2136\r\n case Enums.UserType.Underwriter:\r\n if (\r\n this.identityRolesService.getIdentity().role.isOperationUnderwriter &&\r\n (proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MF_IBG ||\r\n proposal.productId?.toString().toUpperCase() ===\r\n Const.ProductID.PRODUCT_ID_DBS_MACH_IBG)\r\n ) {\r\n // Allow [Edit Declined]\r\n actions.push(Enums.ProposalCommandAction.EditDeclinedProposal);\r\n }\r\n break;\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n private madeRedundant(\r\n proposal: ProposalEntity\r\n ): Enums.ProposalCommandAction[] {\r\n const actions = new Array();\r\n return actions;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport * as Enums from \"./../../././framework/enum.shared\";\r\n\r\nimport { ExceptionManager } from \"./../../framework/utils/exception-manager\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/** Service to track user current proposal activity */\r\nexport class ProposalActivityService {\r\n proposalId?: string;\r\n productId?: string;\r\n action?: string;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.route.queryParams.subscribe((params) => {\r\n this.proposalId = params[\"pid\"];\r\n this.productId = params[\"pdid\"];\r\n this.action = params[\"action\"];\r\n });\r\n }\r\n\r\n readProposalId(): string | null {\r\n return this.proposalId!; //this.route.snapshot.paramMap.get(\"pid\") ?\r\n }\r\n\r\n readProductId(): string | null {\r\n return this.productId!; //this.route.snapshot.paramMap.get(\"pdid\");\r\n }\r\n\r\n readCommandAction(): Enums.ProposalCommandAction | undefined {\r\n //const actionId = Number(this.route.snapshot.paramMap.get(\"action\"));\r\n const actionId = Number(this.action!);\r\n switch (actionId) {\r\n case 1:\r\n return Enums.ProposalCommandAction.CreateOrEdit;\r\n\r\n case 8:\r\n return Enums.ProposalCommandAction.Open;\r\n\r\n default:\r\n ExceptionManager.error(\"unhandled command action\");\r\n return undefined;\r\n }\r\n }\r\n}\r\n","import * as Enums from \"./../../framework/enum.shared\";\r\nimport * as InterfaceProduct from \"./../../framework/interface.product\";\r\nimport { ExceptionManager } from \"./../../framework/utils/exception-manager\";\r\nimport { GUID } from \"./../../framework/domain-entity/guid\";\r\nimport { KeyValue } from \"./../../framework/domain-entity/key-value\";\r\nimport { Injectable, ViewContainerRef } from \"@angular/core\";\r\nimport { ApiService } from \"../dal/api.service\";\r\nimport { Proposal } from \"./../../models/new-product/base/proposal.model\";\r\nimport { ProposalEntity } from \"./../../models/new-product/base/proposal-entity.model\";\r\nimport { ProposalEntityMapper } from \"./../../models/new-product/mapper/proposal-entity.mapper\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { apiActionNotifier } from \"./../../models/new-product/notifier/api-action-notifier\";\r\nimport { apiMapperNotifier } from \"./../../models/new-product/notifier/api-mapper-notifier\";\r\nimport { ProposalEditableHelperService } from \"./../../models/new-product/base/utils/proposal-editable-helper.service\";\r\nimport { IdentityRolesService } from \"../identity-roles.service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { NotifierService } from \"../notifier.service\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\nimport { httpNotifier } from \"src/app/interceptor/http-notifier\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ProposalService {\r\n loadedProposalEntity!: ProposalEntity;\r\n currentProposal!: Proposal | undefined;\r\n\r\n private proposalEntityMapper: ProposalEntityMapper;\r\n private proposalActionUri: string =\r\n environment.services.epProposal + \"action\";\r\n\r\n constructor(\r\n private apiService: ApiService,\r\n private identityRolesService: IdentityRolesService,\r\n private proposalEditableHelperService: ProposalEditableHelperService,\r\n private notifier: NotifierService\r\n ) {\r\n this.proposalEntityMapper = new ProposalEntityMapper();\r\n }\r\n\r\n //#region migrate from old angularjs\r\n create(productId: GUID): Observable {\r\n // refresh the [loadedProposalEntity] & [currentProposal] field because we are trying to load another new proposal\r\n this.loadedProposalEntity = new ProposalEntity(\r\n new GUID(common.DEFAULT_GUID)\r\n );\r\n this.currentProposal = undefined;\r\n this.loadedProposalEntity.productId = productId;\r\n\r\n return this.action(\r\n Enums.ProposalCommandAction.CreateOrEdit,\r\n this.loadedProposalEntity\r\n );\r\n }\r\n\r\n safeGuardCommand(\r\n command: Enums.ProposalCommandAction\r\n ): Enums.ProposalCommandAction {\r\n if (\r\n (this.identityRolesService.getIdentity().role.isClaimant ||\r\n this.identityRolesService.getIdentity().role.isProductReadOnly) &&\r\n !this.identityRolesService.getIdentity().role.IsCbsOps &&\r\n !this.identityRolesService.getIdentity().role.IsCSCBGSG\r\n ) {\r\n // Open only\r\n return Enums.ProposalCommandAction.Open;\r\n }\r\n\r\n return command;\r\n }\r\n\r\n edit(proposalId: GUID): Observable {\r\n // refresh the [loadedProposalEntity] & [currentProposal] field because we are trying to load another new proposal\r\n this.loadedProposalEntity = new ProposalEntity(proposalId);\r\n this.currentProposal = undefined;\r\n this.loadedProposalEntity.productId = common.DEFAULT_GUID_OBJ;\r\n\r\n return this.action(\r\n Enums.ProposalCommandAction.CreateOrEdit,\r\n this.loadedProposalEntity\r\n );\r\n }\r\n\r\n action(\r\n commandAction: Enums.ProposalCommandAction,\r\n proposalEntity: ProposalEntity,\r\n isNotificationRequired: boolean = true\r\n ): Observable {\r\n var command = this.safeGuardCommand(commandAction);\r\n\r\n /** Current login user is transaction read only user\r\n * It could be [Claims] or whatever read only user type\r\n */\r\n if (\r\n this.identityRolesService.getIdentity().isProposalTransactionReadOnly ===\r\n true\r\n ) {\r\n // read only user is only allowed to be View\r\n if (command !== Enums.ProposalCommandAction.Open) {\r\n ExceptionManager.error(\"Current user is in read only roles\");\r\n }\r\n }\r\n\r\n const subject = new Subject();\r\n\r\n apiMapperNotifier.before_entity_to_api_map_notifier$.next({\r\n proposalEntity: proposalEntity,\r\n proposalApiModel: undefined,\r\n });\r\n\r\n const apiModel = this.proposalEntityMapper.map(proposalEntity);\r\n\r\n apiMapperNotifier.after_entity_to_api_map_notifier$.next({\r\n proposalEntity: proposalEntity,\r\n proposalApiModel: apiModel,\r\n });\r\n\r\n const postData: InterfaceProduct.IWebServicePostData = {\r\n jd: JSON.stringify(apiModel),\r\n c: command,\r\n };\r\n\r\n //todo\r\n // const sessionId = Application.angular_$state().params['sid'];\r\n // if (sessionId != null) {\r\n // postData.sid = sessionId;\r\n // }\r\n\r\n // const readonly = Application.angular_$state().params['ro'];\r\n // if (readonly != null) {\r\n // postData.ro = readonly;\r\n // }\r\n httpNotifier.request_notifier$.next(new KeyValue(\"\", \"\"));\r\n apiActionNotifier.before_notifier$.next(\r\n new KeyValue(proposalEntity.proposalId!.toString(), proposalEntity)\r\n );\r\n\r\n this.apiService\r\n .update2(\r\n this.proposalActionUri,\r\n //{},\r\n postData\r\n )\r\n .subscribe(\r\n (result: any) => {\r\n if (result) {\r\n const entity = this.proposalEntityMapper.reverseMap(result);\r\n\r\n this.editable(command, entity);\r\n\r\n apiMapperNotifier.after_api_to_entity_map_notifier$.next({\r\n proposalEntity: entity,\r\n proposalApiModel: result,\r\n });\r\n\r\n this.loadedProposalEntity = entity;\r\n\r\n subject.next(entity);\r\n subject.complete();\r\n\r\n apiActionNotifier.success_notifier$.next(\r\n new KeyValue(entity.proposalId!.toString(), entity)\r\n );\r\n httpNotifier.response_notifier$.next(new KeyValue(\"\", \"\")); \r\n if (isNotificationRequired) {\r\n this.notify(postData.c!, entity);\r\n }\r\n }\r\n },\r\n (rejection) => {\r\n subject.error(rejection);\r\n httpNotifier.response_error_notifier$.next(new KeyValue(\"\", \"\"));\r\n apiActionNotifier.failure_notifier$.next(\r\n new KeyValue(proposalEntity.proposalId!.toString(), rejection)\r\n );\r\n\r\n this.notifier.error(\"Error Occurred!\", this.getVCR());\r\n }\r\n );\r\n\r\n return subject;\r\n }\r\n\r\n editable(\r\n command: Enums.ProposalCommandAction,\r\n proposalEntity: ProposalEntity\r\n ) {\r\n // [Open] or isReadOnly() is none editable\r\n let readOnly =\r\n command === Enums.ProposalCommandAction.Open ||\r\n this.proposalEditableHelperService.isReadOnly(proposalEntity);\r\n\r\n // Renewal check : it should be view only for checker and maker\r\n if (\r\n command === Enums.ProposalCommandAction.CreateOrEdit &&\r\n proposalEntity.transType === Enums.TransType.REN &&\r\n this.identityRolesService.getIdentity().currentUser().userType ===\r\n Enums.UserType.Broker\r\n ) {\r\n readOnly = true;\r\n }\r\n\r\n proposalEntity.proposalReadOnly = readOnly;\r\n\r\n if (readOnly) {\r\n // set all questions to read only\r\n proposalEntity.questions?.forEach((q) => (q.readOnly = true));\r\n }\r\n }\r\n\r\n notify(command: Enums.ProposalCommandAction, entity: ProposalEntity) {\r\n switch (command) {\r\n case Enums.ProposalCommandAction.Save:\r\n this.notifier.success(\"Saved\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n this.notifier.success(\"Sent\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n this.notifier.success(\"Returned\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.Submit:\r\n switch (entity.proposalStatus) {\r\n case Enums.ProposalStatus.Referred:\r\n this.notifier.success(\"Referred\", this.getVCR());\r\n break;\r\n case Enums.ProposalStatus.Accepted:\r\n this.notifier.success(\"Policy Bound Successfully\", this.getVCR());\r\n break;\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.Copy:\r\n this.notifier.success(\"Editing Copied Proposal\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.Decline:\r\n this.notifier.success(\"Declined\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n this.notifier.success(\"Editing Declined Proposal\", this.getVCR());\r\n break;\r\n case Enums.ProposalCommandAction.Accept:\r\n this.notifier.success(\"Policy Bound Successfully\", this.getVCR());\r\n break;\r\n }\r\n }\r\n //#endregion\r\n\r\n serviceViewContainerRef!: ViewContainerRef;\r\n\r\n getVCR(): ViewContainerRef {\r\n return this.serviceViewContainerRef;\r\n }\r\n\r\n setVCR(value: ViewContainerRef) {\r\n this.serviceViewContainerRef = value;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { pairwise, startWith, map } from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CoverageTypeService {\r\n private valueSubject = new BehaviorSubject(\"\");\r\n\r\n value$: Observable = this.valueSubject.asObservable().pipe(\r\n startWith(\"\"),\r\n pairwise(),\r\n map(([previousValue, currentValue]) => currentValue)\r\n );\r\n\r\n //value$ = this.valueSubject.asObservable();\r\n\r\n updateValue(newValue: string) {\r\n this.valueSubject.next(newValue);\r\n }\r\n\r\n clearSelectedValue() {\r\n this.valueSubject.next(\"\");\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class MfHkMessageService {\r\n private subject = new Subject();\r\n\r\n sendMessage(message: string) {\r\n this.subject.next({ text: message });\r\n }\r\n\r\n clearMessages() {\r\n this.subject.next();\r\n }\r\n\r\n getMessage(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { ApiService } from \"src/app/services/dal/api.service\";\r\nimport * as Enums from \"./../../../../../framework/enum.shared\";\r\n\r\nexport class PrintTypeModel {\r\n printTypeId!: number;\r\n printTypeValue!: string;\r\n description!: string;\r\n showEmail!: boolean;\r\n}\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MortgageFireHongKongProposalPrintService {\r\n constructor(private apiService: ApiService) {}\r\n\r\n postPrintOptions(\r\n proposalEntity: MortgageFireHongKongProposal\r\n ): Observable {\r\n if (\r\n proposalEntity.transType === Enums.TransType.CAN &&\r\n proposalEntity.endorsementType === 3\r\n ) {\r\n //Endorsement Type 3 = Edit Correspondance address\r\n return of(true);\r\n }\r\n var uri = \"api/proposal/sendPrintOptions\";\r\n const postData = {\r\n proposalId: proposalEntity.proposalId!.toString(),\r\n printType: proposalEntity.printType,\r\n messageId:\r\n proposalEntity.messageId == undefined ? 0 : proposalEntity.messageId,\r\n printCorrespondence: proposalEntity.printCorrespondence,\r\n isReprint: proposalEntity.isReprint,\r\n isSummary: proposalEntity.isSummary,\r\n isManual: proposalEntity.isManual,\r\n isPasswordProtected: proposalEntity.isPasswordProtected,\r\n fileIdsJsonString: null,\r\n };\r\n return this.apiService.search(uri, {}, postData).pipe(\r\n map(\r\n (response: any) => {\r\n return response!;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n // getPrintTypeModel(): ng.IPromise {\r\n // const deffer = this.$q.defer();\r\n // var uri = 'api/proposal/getPrintTypeModels';\r\n // this.api.getApiData(uri)\r\n // .then((response) => {\r\n // deffer.resolve(response);\r\n // }, (error) => {\r\n // deffer.reject(error);\r\n // });\r\n // return deffer.promise;\r\n // }\r\n}\r\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-enums\";\r\nimport * as Enums from \"./../../../../../framework/enum.shared\";\r\nimport { MortgageFireHongKongAnswerChangeManager } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-answer-change.manager\";\r\nimport { MortgageFireHongKongBusinessRulesManager } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-business-rules.manager\";\r\nimport { MortgageFireHongKongFieldValidationManager } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-field-validation.manager\";\r\nimport { MortgageFireHongKongProposal } from \"src/app/models/new-product/sme/mortgage-fire/hong-kong/base/mf-hk-proposal\";\r\nimport { MfHkClausesAndDeductiblesComponent } from \"src/app/components/new-product/sme/mortgage-fire/hong-kong/components/mf-hk-clauses-and-deductibles/mf-hk-clauses-and-deductibles.component\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ProposalActivityService } from \"src/app/services/new-product/proposal-activity.service\";\r\nimport { ProposalService } from \"src/app/services/new-product/proposal.service\";\r\nimport { buttonNotifier } from \"src/app/components/shared/notifier/button-notifier\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport { cloner } from \"src/app/framework/utils/cloner\";\r\nimport { proposalServiceNotifier } from \"src/app/models/new-product/notifier/proposal-service-notifier\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { apiMapperNotifier } from \"src/app/models/new-product/notifier/api-mapper-notifier\";\r\nimport { apiActionNotifier } from \"src/app/models/new-product/notifier/api-action-notifier\";\r\nimport { ApiMapperNotifierModel } from \"src/app/models/new-product/notifier/api-mapper-notifier.model\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { proposalHelper } from \"src/app/models/new-product/utils/proposal.helper\";\r\nimport { MortgageFireHongKongProposalPrintService } from \"./mf-hk-proposal-print.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\nimport { questionNotifier } from \"src/app/models/new-product/notifier/question-notifier\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MdConfirmationMessageWithReasonAttachmentComponent } from \"src/app/components/shared/partials/md-confirmation-message-with-reason-attachment/md-confirmation-message-with-reason-attachment.component\";\r\nimport { HaseProposal } from \"src/app/models/new-product/abstract-factory/proposal/hase-proposal\";\r\nimport { QuestionEntity } from \"src/app/models/new-product/base/question-entity.model\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { Proposal } from \"src/app/models/new-product/base/proposal.model\";\r\nimport { Echo } from \"src/app/models/new-product/base/echo.model\";\r\nimport { Echos } from \"src/app/models/new-product/base/echos.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MfHKProposalService {\r\n currentAction!: number;\r\n pageMode!: Enums.ProposalPageMode;\r\n proposal!: MortgageFireHongKongProposal;\r\n /** Version of [ProposalEntity] upon page loaded. It's a clone version */\r\n pageLoadedProposalEntity!: ProposalEntity;\r\n /** Version of current [ProposalEntity]. It's a clone version */\r\n proposalEntity!: ProposalEntity;\r\n /** Version of [ProposalEntity] before any proposal command action. It's a clone version */\r\n lastPostBackProposalEntity!: ProposalEntity;\r\n fieldValidationManager!: MortgageFireHongKongFieldValidationManager;\r\n clausesAndDeductibles!: MfHkClausesAndDeductiblesComponent;\r\n answerChangeManager!: MortgageFireHongKongAnswerChangeManager;\r\n businessRulesManager!: MortgageFireHongKongBusinessRulesManager;\r\n showFieldBlankValidationEchos!: Echos[];\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n private proposalActivityService: ProposalActivityService,\r\n private proposalService: ProposalService,\r\n private masterDataService: MasterDataService,\r\n private router: Router,\r\n private proposalPrintService: MortgageFireHongKongProposalPrintService,\r\n private cdkDialogService: CdkDialogService,\r\n private broadcastService: BroadcastService\r\n ) {\r\n apiMapperNotifier.before_entity_to_api_map_notifier$.subscribe(\r\n this.beforeApiMap\r\n );\r\n apiActionNotifier.success_notifier$.subscribe(\r\n this.apiActionSuccessNotified\r\n );\r\n // this.proposalPrintService = Application.angularInjectionObject('MortgageFireHongKongProposalPrintService');\r\n }\r\n\r\n //#region migrate from old angularjs\r\n /** Method to initialize */\r\n initialize(proposal: MortgageFireHongKongProposal) {\r\n this.proposal = proposal;\r\n this.fieldValidationManager =\r\n new MortgageFireHongKongFieldValidationManager(this.proposal);\r\n this.businessRulesManager = new MortgageFireHongKongBusinessRulesManager(\r\n this.proposal,\r\n this.identityRolesService\r\n );\r\n this.answerChangeManager = new MortgageFireHongKongAnswerChangeManager(\r\n this.proposal,\r\n this.fieldValidationManager,\r\n this.businessRulesManager\r\n );\r\n this.showFieldBlankValidationEchos = [];\r\n }\r\n // /** Instantiate proposal instance */\r\n createOrEdit() {\r\n const proposalIdText = this.proposalActivityService.readProposalId();\r\n const productIdText = this.proposalActivityService.readProductId();\r\n const productId = new GUID(productIdText!);\r\n let proposalId: GUID;\r\n if (common.isStringNullOrEmpty(proposalIdText!)) {\r\n proposalId = new GUID();\r\n } else {\r\n proposalId = new GUID(proposalIdText!);\r\n }\r\n if (proposalId.toString() === common.DEFAULT_GUID) {\r\n this.pageMode = Enums.ProposalPageMode.Create;\r\n this.proposalService.create(productId).subscribe(this.loaded);\r\n } else {\r\n this.pageMode = Enums.ProposalPageMode.Edit;\r\n this.proposalService.edit(proposalId).subscribe(this.loaded);\r\n }\r\n }\r\n\r\n //DBSEP-2136\r\n ReferValidate(command: Enums.ProposalCommandAction, buttonId: number = 0) {\r\n var result = true;\r\n switch (command) {\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Renew:\r\n /** If the mandatory validation fails, raise a failure notification\r\n else proceed to call action */\r\n if (\r\n command === Enums.ProposalCommandAction.Endorse ||\r\n command === Enums.ProposalCommandAction.Cancel\r\n ) {\r\n this.fieldValidationManager.echos = [];\r\n } else {\r\n const echos = this.fieldValidationManager.validate();\r\n }\r\n if (this.fieldValidationManager.echos.length <= 0) {\r\n this.notifyProposalSaved();\r\n result = true;\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(\r\n this.proposal.proposalId!.toString(),\r\n this.proposal as Proposal //this.fieldValidationManager.echos //HE-173 : is this wrong all this while\r\n )\r\n );\r\n\r\n //HE-173: somehow proposalServiceNotifier.failed_notifier$ is dead after save-with-client>Refer (maybe dispose? typecast error?),\r\n //hence use broadcastService.onFailedNotifier\r\n let kv = new KeyValue(\r\n this.proposal.proposalId!.toString(),\r\n this.proposal as Proposal\r\n );\r\n this.broadcastService.onProposalFailedNotifier.next({ kv });\r\n result = false;\r\n }\r\n break;\r\n default:\r\n }\r\n return result;\r\n }\r\n\r\n referAction(\r\n command: Enums.ProposalCommandAction,\r\n buttonId: number = 0,\r\n msg: string\r\n ) {\r\n if (command === Enums.ProposalCommandAction.Submit) {\r\n /** For saving the proposal-\r\n * [Client Name] is mandatory\r\n * If the mandatory validation fails, raise a failure notification\r\n * else proceed to call action */\r\n const validateSave = this.fieldValidationManager.validateSave();\r\n if (validateSave.length <= 0) {\r\n this.doReferAction(command, msg);\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), validateSave)\r\n );\r\n }\r\n }\r\n }\r\n\r\n action(command: Enums.ProposalCommandAction, buttonId: number = 0) {\r\n switch (command) {\r\n case Enums.ProposalCommandAction.Save:\r\n case Enums.ProposalCommandAction.Recalculate:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress: \r\n case Enums.ProposalCommandAction.EditQuotation:\r\n if (command === Enums.ProposalCommandAction.Save) {\r\n /** For saving the proposal-\r\n * [Client Name] is mandatory\r\n * If the mandatory validation fails, raise a failure notification\r\n * else proceed to call action */\r\n const validateSave = this.fieldValidationManager.validateSave();\r\n if (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete) {\r\n const echosDeliveryMethod =\r\n this.fieldValidationManager.validateDeliverMethod();\r\n }\r\n this.showFieldBlankValidationEchos = [];\r\n if(this.proposal.endorsementType == Enums.EndorsementType.LoanRedemption)\r\n this.validateLRMortgageLoanAcc(command);\r\n if (this.fieldValidationManager.echos.length <= 0 && this.showFieldBlankValidationEchos.length <= 0) {\r\n this.doAction(command);\r\n } else {\r\n const echoMessage = validateSave.length > 0 ? this.fieldValidationManager.echos : this.showFieldBlankValidationEchos;\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), echoMessage)\r\n );\r\n }\r\n } //HE-2277: Fix alert message prompt when copy from LR policy\r\n else if(command === Enums.ProposalCommandAction.Copy){\r\n this.showFieldBlankValidationEchos = [];\r\n if(this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum2 != null && this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum3 != null){\r\n this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum2.theme = Enums.QuestionTheme.Normal;\r\n this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum3.theme = Enums.QuestionTheme.Normal;\r\n } \r\n this.doAction(command);\r\n } else { \r\n this.doAction(command);\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Renew:\r\n /** If the mandatory validation fails, raise a failure notification\r\n else proceed to call action */\r\n if (\r\n command === Enums.ProposalCommandAction.Endorse ||\r\n command === Enums.ProposalCommandAction.Cancel\r\n ) {\r\n this.fieldValidationManager.echos = [];\r\n } else {\r\n const echos = this.fieldValidationManager.validate();\r\n }\r\n if (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete) {\r\n const echosDeliveryMethod =\r\n this.fieldValidationManager.validateDeliverMethod();\r\n }\r\n if (\r\n (this.proposal.productType === EnumSG.MortgageFireHKProduct.HSCMB ||\r\n this.proposal.productType === EnumSG.MortgageFireHKProduct.HSWPB) &&\r\n (this.proposal.isUnderwriter || this.proposal.isBroker) &&\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n const premiumSummaryEchos =\r\n this.fieldValidationManager.validateCBGTotalChargeAgainstGrossAndGST();\r\n }\r\n ///*2022-08-30 dagoh0: APACDM-363 : validate change plan type endorsement selected plan type cannot be same as existing proposal's plan type*/\r\n //if ((this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP) &&\r\n // this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPlanType) {\r\n // const planTypeEchos = this.fieldValidationManager.validateCBGSelectedPlanType(this.pageLoadedProposalEntity.getQuestion('qs_master_planType').answer);\r\n //}\r\n this.showFieldBlankValidationEchos = [];\r\n if(this.proposal.endorsementType == Enums.EndorsementType.LoanRedemption && command == Enums.ProposalCommandAction.Submit)\r\n this.validateLRMortgageLoanAcc(command);\r\n if (this.fieldValidationManager.echos.length <= 0 && this.showFieldBlankValidationEchos.length <= 0) {\r\n this.doAction(command);\r\n } else {\r\n const echoMessage = this.fieldValidationManager.echos.length > 0 ? this.fieldValidationManager.echos : this.showFieldBlankValidationEchos;\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(\r\n this.proposal.proposalId!.toString(),\r\n echoMessage\r\n )\r\n );\r\n }\r\n break;\r\n default:\r\n }\r\n // notify to update rules\r\n this.notifyProposalSaved();\r\n }\r\n\r\n validateLRMortgageLoanAcc(command: Enums.ProposalCommandAction){\r\n const questions = this.proposal\r\n .extractQuestionArray()\r\n .filter(\r\n (x) =>\r\n x.key === \"qs_otherinfo_MortgLoanAcctNum2\" ||\r\n x.key === \"qs_otherinfo_MortgLoanAcctNum3\" \r\n );\r\n const echos: Echo[] = [];\r\n \r\n var q2 = questions.filter(\r\n (x) => x.key === \"qs_otherinfo_MortgLoanAcctNum2\"\r\n )[0];\r\n var q3 = questions.filter(\r\n (x) => x.key === \"qs_otherinfo_MortgLoanAcctNum3\"\r\n )[0];\r\n \r\n q2.theme = common.isStringNullOrEmpty(this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum2?.answer) ? Enums.QuestionTheme.Normal : Enums.QuestionTheme.Danger;\r\n q3.theme = common.isStringNullOrEmpty(this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum3?.answer) ? Enums.QuestionTheme.Normal : Enums.QuestionTheme.Danger;\r\n\r\n if(!common.isStringNullOrEmpty(this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum2?.answer)){\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Please remove Mortgage Loan Account Numbers 2 and 3 to proceed with the Loan Redemption.\",\r\n q2\r\n )\r\n );\r\n }else if(!common.isStringNullOrEmpty(this.proposal.qsMaster.qs_otherinfo_MortgLoanAcctNum3?.answer)){\r\n echos.push(\r\n proposalHelper.buildQuestionEntityEcho(\r\n \"Please remove Mortgage Loan Account Numbers 2 and 3 to proceed with the Loan Redemption.\",\r\n q3\r\n )\r\n );\r\n }\r\n if(echos.length > 0)\r\n this.showFieldBlankValidationEchos.push(new Echos(\"\", echos));\r\n }\r\n\r\n doReferAction(command: Enums.ProposalCommandAction, msg: any) {\r\n const proposalEntity = this.constructProposalEntityForServer();\r\n //HE-28\r\n proposalEntity.addtionalEndorsementType = 2;\r\n //todo: check if this still needed\r\n //const deffer = this.$q.defer();\r\n this.proposalService\r\n .action(Enums.ProposalCommandAction.Save, proposalEntity, false)\r\n .subscribe((returnEntity) => {\r\n this.proposal.proposalId = returnEntity.proposalId;\r\n //HE-28\r\n this.proposal.addtionalEndorsementType =\r\n returnEntity.addtionalEndorsementType;\r\n var formData = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n isUnderwriterInternalComment: false,\r\n productId: this.proposal.productId.toString(),\r\n printCorrespondence: \"\",\r\n message: msg,\r\n tabClicked: command,\r\n selectedPrintType: {\r\n label: \"Mail\",\r\n value: \"1\",\r\n },\r\n isPasswordProtected: false,\r\n preferredDeliveryMethod:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer,\r\n emailId:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!\r\n .answer,\r\n mobileNo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer,\r\n contactInfo:\r\n this.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod_CorrAddress!.answer,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageWithReasonAttachmentComponent,\r\n {\r\n data: formData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n confirmationModalCloseForActions = (result: any): void => {\r\n if (result.status === \"yes\") {\r\n if (\r\n result.data.tabClicked == Enums.ProposalCommandAction.Submit ||\r\n result.data.tabClicked == Enums.ProposalCommandAction.Approve\r\n ) {\r\n this.proposal.printType = result.data.selectedPrintType;\r\n this.proposal.printCorrespondence = result.data.printCorrespondence;\r\n this.proposal.isPasswordProtected = result.data.isPasswordProtected;\r\n this.proposal.isReprint = false;\r\n this.proposal.isSummary = false;\r\n this.proposal.isManual = false;\r\n this.doAction(result.data.tabClicked);\r\n }\r\n }\r\n };\r\n\r\n doAction(command: Enums.ProposalCommandAction) {\r\n //HES-64-To revert the Disable the Button fix\r\n const proposalEntity = this.constructProposalEntityForServer();\r\n //todo: check if this still needed\r\n //const deffer = this.$q.defer();\r\n this.proposalService\r\n .action(command, proposalEntity)\r\n .subscribe((returnEntity) => {\r\n this.proposal.proposalId = returnEntity.proposalId;\r\n if (\r\n (returnEntity.validationsMessages == undefined ||\r\n returnEntity.validationsMessages.length == 0) &&\r\n this.proposal.printType != undefined &&\r\n (returnEntity.proposalStatus == Enums.ProposalStatus.Accepted ||\r\n returnEntity.proposalStatus == Enums.ProposalStatus.Approved ||\r\n returnEntity.proposalStatus == Enums.ProposalStatus.Renewed)\r\n ) {\r\n this.sendPrintOptions(command).subscribe(\r\n (response: any) => {\r\n //deffer.resolve(response);\r\n this.saved(returnEntity);\r\n },\r\n function (error: any) {\r\n //deffer.reject(error);\r\n }\r\n );\r\n } else {\r\n this.saved(returnEntity);\r\n }\r\n if (command == Enums.ProposalCommandAction.Copy) {\r\n this.updateFinancialData(true);\r\n }\r\n this.resetPrintType();\r\n //return deffer.promise;\r\n //HE-1058 make clauses and deductibles flag as true on save\r\n this.proposal.qsMaster.qs_master_clausesflag!.answer = \"true\";\r\n });\r\n }\r\n\r\n sendPrintOptions(command: Enums.ProposalCommandAction): Observable {\r\n if (\r\n command === Enums.ProposalCommandAction.Submit ||\r\n command === Enums.ProposalCommandAction.Approve ||\r\n command === Enums.ProposalCommandAction.Accept\r\n ) {\r\n return this.proposalPrintService.postPrintOptions(this.proposal);\r\n }\r\n return of(true);\r\n }\r\n\r\n exit() {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n }\r\n\r\n constructProposalEntityForServer(): ProposalEntity {\r\n // extract policy level answers\r\n this.lastPostBackProposalEntity =\r\n proposalHelper.constructProposalPackageEntityForServer(\r\n this.proposal,\r\n this.proposalService.loadedProposalEntity,\r\n (postBackData: ProposalEntity) => {\r\n // no implementations yet\r\n }\r\n );\r\n return this.lastPostBackProposalEntity;\r\n }\r\n\r\n /** Method to refresh all necessary entities/items that returned from back end upon page load */\r\n private loaded = (response: ProposalEntity) => {\r\n // keep the original version of loaded proposalEntity\r\n this.pageLoadedProposalEntity = cloner.cloneDeep(response);\r\n // refresh answer that retrieved from back end\r\n this.proposal.refreshQuestions(response);\r\n this.saved(response, false);\r\n this.proposal.refreshQuestionsReadOnlyForcbsOps(response);\r\n this.fieldValidationManager =\r\n new MortgageFireHongKongFieldValidationManager(this.proposal);\r\n this.businessRulesManager = new MortgageFireHongKongBusinessRulesManager(\r\n this.proposal,\r\n this.identityRolesService\r\n );\r\n this.updateFinancialData(false);\r\n this.notifyProposalLoaded();\r\n };\r\n\r\n private updateFinancialData(isCopy: boolean) {\r\n let isAdded = false;\r\n let option: any = [];\r\n if (isCopy != true) {\r\n this.proposal.qsMaster.qs_master_financialBranch!.options.forEach(\r\n (x: any) => {\r\n if (\r\n x.value === this.proposal.qsMaster.qs_master_financialBranch!.answer\r\n ) {\r\n isAdded = true;\r\n }\r\n }\r\n );\r\n }\r\n else{\r\n this.proposal.checkDiscountEligibility('Copy');\r\n }\r\n if (!isAdded) {\r\n this.masterDataService.financialInstitutionBranchesfullList.forEach(\r\n (i) => {\r\n if (i.isActive === \"True\") {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n if (\r\n i.isActive != \"True\" &&\r\n i.key ===\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer &&\r\n isCopy != true\r\n ) {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n }\r\n );\r\n this.proposal.qsMaster.qs_master_financialBranch!.options = option; \r\n }\r\n }\r\n\r\n private saved = (response: ProposalEntity, notifySaved: boolean = true) => {\r\n // set current version of [ProposalEntity]\r\n this.proposalEntity = response;\r\n // refresh proposal header data\r\n this.proposal.refreshHeader(response);\r\n // refresh answer that might potentially changed by back-end\r\n this.proposal.refreshPotentiallyChangedQuestions(response);\r\n // refresh calculated premium summary\r\n this.proposal.refreshPremiumSummary(response);\r\n // initialize custom mandatory field\r\n this.fieldValidationManager.initializeMandatoryFields();\r\n // high level of setting read only to questions\r\n this.proposal.refreshQuestionsReadOnly(response);\r\n // custom readonly\r\n this.proposal.refreshCustomQuestionsReadOnly(response);\r\n // refresh validation message\r\n this.proposal.refreshValidationMessage(response);\r\n\r\n // TODO: custom readonly if available\r\n if (notifySaved) {\r\n this.notifyProposalSaved();\r\n }\r\n };\r\n\r\n private resetPrintType = (): void => {\r\n this.proposal.printType = undefined;\r\n this.proposal.printCorrespondence = undefined;\r\n this.proposal.isReprint = undefined;\r\n this.proposal.isSummary = undefined;\r\n this.proposal.isManual = undefined;\r\n this.proposal.isPasswordProtected = undefined;\r\n };\r\n\r\n private apiActionSuccessNotified = (response: KeyValue) => {\r\n //has to filter by country's products now\r\n if (new HaseProposal().isKeyValueProposalEntityAssignable(response)) {\r\n const responseEntity = response.value;\r\n if (responseEntity.proposalStatus === Enums.ProposalStatus.Replaced) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n } else {\r\n this.update(response.value);\r\n }\r\n }\r\n };\r\n\r\n private notifyProposalLoaded() {\r\n proposalServiceNotifier.loaded_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n }\r\n\r\n public notifyProposalSaved() {\r\n proposalServiceNotifier.saved_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n }\r\n\r\n private update(proposalEntity: ProposalEntity) {\r\n this.proposal.refreshPremiumSummary(proposalEntity);\r\n }\r\n private beforeApiMap = (event: ApiMapperNotifierModel) => {\r\n //has to filter by country's products now\r\n if (new HaseProposal().isApiMapperNotifierModelAssignable(event)) {\r\n event.proposalEntity.customerMappingID = this.proposal.customerMappingId;\r\n event.proposalEntity.customerMappingAddressID =\r\n this.proposal.customerMappingAddressID;\r\n event.proposalEntity.endorsementType = this.proposal.endorsementType;\r\n event.proposalEntity.auxiliary = this.proposal.auxiliary;\r\n event.proposalEntity.originalInceptionDate =\r\n this.proposal.originalInceptionDate;\r\n event.proposalEntity.lastSubmittedDate = this.proposal.lastSubmittedDate;\r\n event.proposalEntity.clausesDeductiblesTable =\r\n this.proposal.clausesDeductibles;\r\n }\r\n };\r\n //#endregion\r\n\r\n isFinancialEndorsementOrNbOrCan() {\r\n return this.businessRulesManager.isFinancialEndorsementOrNbOrCan();\r\n }\r\n\r\n isOnlyFinancialEndorsement() {\r\n return this.businessRulesManager.isOnlyFinancialEndorsement();\r\n }\r\n\r\n compareQuestionAnswer(ques: QuestionEntity) {\r\n return this.businessRulesManager.compareQuestionAnswer(ques);\r\n }\r\n\r\n getVCR(): ViewContainerRef {\r\n return this.proposalService.getVCR();\r\n }\r\n\r\n setVCR(value: ViewContainerRef) {\r\n this.proposalService.setVCR(value);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MfHkTabchangeService {\r\n private emitSource = new BehaviorSubject(0);\r\n emit$ = this.emitSource.asObservable();\r\n\r\n emitNumber(value: number) {\r\n this.emitSource.next(value);\r\n }\r\n\r\n clearMessages() {\r\n this.emitSource.next(0);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { ApiService } from \"src/app/services/dal/api.service\";\r\nimport * as Enums from \"./../../../../../framework/enum.shared\";\r\n\r\nexport class PrintTypeModel {\r\n printTypeId!: number;\r\n printTypeValue!: string;\r\n description!: string;\r\n showEmail!: boolean;\r\n}\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MortgageFireSingaporeProposalPrintService {\r\n constructor(private apiService: ApiService) {}\r\n\r\n postPrintOptions(\r\n proposalEntity: MortgageFireSingaporeProposal\r\n ): Observable {\r\n if (\r\n proposalEntity.transType === Enums.TransType.CAN &&\r\n proposalEntity.endorsementType === 3\r\n ) {\r\n //Endorsement Type 3 = Edit Correspondance address\r\n return of(true);\r\n }\r\n var uri = \"api/proposal/sendPrintOptions\";\r\n const postData = {\r\n proposalId: proposalEntity.proposalId!.toString(),\r\n printType: proposalEntity.printType,\r\n messageId:\r\n proposalEntity.messageId == undefined ? 0 : proposalEntity.messageId,\r\n printCorrespondence: proposalEntity.printCorrespondence,\r\n isReprint: proposalEntity.isReprint,\r\n isSummary: proposalEntity.isSummary,\r\n isManual: proposalEntity.isManual,\r\n isPasswordProtected: proposalEntity.isPasswordProtected,\r\n fileIdsJsonString: null,\r\n };\r\n return this.apiService.search(uri, {}, postData).pipe(\r\n map(\r\n (response: any) => {\r\n return response!;\r\n },\r\n (error: any) => {\r\n return error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n // getPrintTypeModel(): ng.IPromise {\r\n // const deffer = this.$q.defer();\r\n // var uri = 'api/proposal/getPrintTypeModels';\r\n // this.api.getApiData(uri)\r\n // .then((response) => {\r\n // deffer.resolve(response);\r\n // }, (error) => {\r\n // deffer.reject(error);\r\n // });\r\n // return deffer.promise;\r\n // }\r\n}\r\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\r\nimport * as EnumSG from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-enums\";\r\nimport * as Enums from \"./../../../../../framework/enum.shared\";\r\nimport { MortgageFireSingaporeAnswerChangeManager } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-answer-change.manager\";\r\nimport { MortgageFireSingaporeBusinessRulesManager } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-business-rules.manager\";\r\nimport { MortgageFireSingaporeFieldValidationManager } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-field-validation.manager\";\r\nimport { MortgageFireSingaporeProposal } from \"src/app/models/new-product/sme/mortgage-fire/singapore/base/mf-sg-proposal\";\r\nimport { IdentityRolesService } from \"src/app/services/identity-roles.service\";\r\nimport { ProposalActivityService } from \"src/app/services/new-product/proposal-activity.service\";\r\nimport { ProposalService } from \"src/app/services/new-product/proposal.service\";\r\nimport { buttonNotifier } from \"src/app/components/shared/notifier/button-notifier\";\r\nimport { MasterDataService } from \"src/app/services/master-data.service\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\nimport { ProposalEntity } from \"src/app/models/new-product/base/proposal-entity.model\";\r\nimport { cloner } from \"src/app/framework/utils/cloner\";\r\nimport { proposalServiceNotifier } from \"src/app/models/new-product/notifier/proposal-service-notifier\";\r\nimport { KeyValue } from \"src/app/framework/domain-entity/key-value\";\r\nimport { apiMapperNotifier } from \"src/app/models/new-product/notifier/api-mapper-notifier\";\r\nimport { apiActionNotifier } from \"src/app/models/new-product/notifier/api-action-notifier\";\r\nimport { ApiMapperNotifierModel } from \"src/app/models/new-product/notifier/api-mapper-notifier.model\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ROUTE_HOME } from \"src/app/app.module\";\r\nimport { proposalHelper } from \"src/app/models/new-product/utils/proposal.helper\";\r\nimport { MortgageFireSingaporeProposalPrintService } from \"./mf-sg-proposal-print.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport * as Const from \"src/app/framework/const.shared\";\r\nimport { questionNotifier } from \"src/app/models/new-product/notifier/question-notifier\";\r\nimport { CdkDialogService } from \"src/app/services/dialog/cdk-dialog.service\";\r\nimport { MdConfirmationMessageWithReasonAttachmentComponent } from \"src/app/components/shared/partials/md-confirmation-message-with-reason-attachment/md-confirmation-message-with-reason-attachment.component\";\r\nimport { DbsProposal } from \"src/app/models/new-product/abstract-factory/proposal/dbs-proposal\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MfSgProposalService {\r\n currentAction!: number;\r\n pageMode!: Enums.ProposalPageMode;\r\n proposal!: MortgageFireSingaporeProposal;\r\n /** Version of [ProposalEntity] upon page loaded. It's a clone version */\r\n pageLoadedProposalEntity!: ProposalEntity;\r\n /** Version of current [ProposalEntity]. It's a clone version */\r\n proposalEntity!: ProposalEntity;\r\n /** Version of [ProposalEntity] before any proposal command action. It's a clone version */\r\n lastPostBackProposalEntity!: ProposalEntity;\r\n fieldValidationManager!: MortgageFireSingaporeFieldValidationManager;\r\n answerChangeManager!: MortgageFireSingaporeAnswerChangeManager;\r\n businessRulesManager!: MortgageFireSingaporeBusinessRulesManager;\r\n\r\n constructor(\r\n public identityRolesService: IdentityRolesService,\r\n private proposalActivityService: ProposalActivityService,\r\n private proposalService: ProposalService,\r\n private masterDataService: MasterDataService,\r\n private router: Router,\r\n private proposalPrintService: MortgageFireSingaporeProposalPrintService,\r\n private cdkDialogService: CdkDialogService\r\n ) {\r\n apiMapperNotifier.before_entity_to_api_map_notifier$.subscribe(\r\n this.beforeApiMap\r\n );\r\n apiActionNotifier.success_notifier$.subscribe(\r\n this.apiActionSuccessNotified\r\n );\r\n // this.proposalPrintService = Application.angularInjectionObject('MortgageFireSingaporeProposalPrintService');\r\n }\r\n\r\n //#region migrate from old angularjs\r\n /** Method to initialize */\r\n initialize(proposal: MortgageFireSingaporeProposal) {\r\n this.proposal = proposal;\r\n this.fieldValidationManager =\r\n new MortgageFireSingaporeFieldValidationManager(this.proposal);\r\n this.businessRulesManager = new MortgageFireSingaporeBusinessRulesManager(\r\n this.proposal,\r\n this.identityRolesService\r\n );\r\n this.answerChangeManager = new MortgageFireSingaporeAnswerChangeManager(\r\n this.proposal,\r\n this.fieldValidationManager,\r\n this.businessRulesManager\r\n );\r\n }\r\n // /** Instantiate proposal instance */\r\n createOrEdit() {\r\n const proposalIdText = this.proposalActivityService.readProposalId();\r\n const productIdText = this.proposalActivityService.readProductId();\r\n const productId = new GUID(productIdText!);\r\n let proposalId: GUID;\r\n if (common.isStringNullOrEmpty(proposalIdText!)) {\r\n proposalId = new GUID();\r\n } else {\r\n proposalId = new GUID(proposalIdText!);\r\n }\r\n if (proposalId.toString() === common.DEFAULT_GUID) {\r\n this.pageMode = Enums.ProposalPageMode.Create;\r\n this.proposalService.create(productId).subscribe(this.loaded);\r\n } else {\r\n this.pageMode = Enums.ProposalPageMode.Edit;\r\n this.proposalService.edit(proposalId).subscribe(this.loaded);\r\n }\r\n }\r\n\r\n //DBSEP-2136\r\n IBGValidate(command: Enums.ProposalCommandAction, buttonId: number = 0) {\r\n var result = true;\r\n switch (command) {\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Renew:\r\n /** If the mandatory validation fails, raise a failure notification\r\n else proceed to call action */\r\n if (\r\n command === Enums.ProposalCommandAction.Endorse ||\r\n command === Enums.ProposalCommandAction.Cancel\r\n ) {\r\n this.fieldValidationManager.echos = [];\r\n } else {\r\n const echos = this.fieldValidationManager.validate();\r\n }\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC &&\r\n this.proposal.transType !== Enums.TransType.CAN\r\n ) {\r\n const equipmentEchos =\r\n this.fieldValidationManager.validateEquipmentsSI();\r\n }\r\n if (\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType ===\r\n EnumSG.MortgageFireSgProduct.IBGMAC) &&\r\n this.proposal.isUnderwriter &&\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n const premiumSummaryEchos =\r\n this.fieldValidationManager.validateTotalChargeAgainstGrossAndGST();\r\n }\r\n if (this.fieldValidationManager.echos.length <= 0) {\r\n this.notifyProposalSaved();\r\n result = true;\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(\r\n this.proposal.proposalId!.toString(),\r\n this.fieldValidationManager.echos\r\n )\r\n );\r\n result = false;\r\n }\r\n break;\r\n default:\r\n }\r\n return result;\r\n }\r\n\r\n referAction(\r\n command: Enums.ProposalCommandAction,\r\n buttonId: number = 0,\r\n msg: string\r\n ) {\r\n if (command === Enums.ProposalCommandAction.Submit) {\r\n /** For saving the proposal-\r\n * [Client Name] is mandatory\r\n * If the mandatory validation fails, raise a failure notification\r\n * else proceed to call action */\r\n const validateSave = this.fieldValidationManager.validateSave();\r\n if (validateSave.length <= 0) {\r\n this.doReferAction(command, msg);\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), validateSave)\r\n );\r\n }\r\n }\r\n }\r\n\r\n action(command: Enums.ProposalCommandAction, buttonId: number = 0) {\r\n switch (command) {\r\n case Enums.ProposalCommandAction.Save:\r\n case Enums.ProposalCommandAction.Recalculate:\r\n case Enums.ProposalCommandAction.ReturnForRevise:\r\n case Enums.ProposalCommandAction.Decline:\r\n case Enums.ProposalCommandAction.MakeRedundant:\r\n case Enums.ProposalCommandAction.Copy:\r\n case Enums.ProposalCommandAction.CancellationAdjustment:\r\n case Enums.ProposalCommandAction.EditDeclinedProposal:\r\n case Enums.ProposalCommandAction.ChangeOfCorrespondenceAddress:\r\n if (command === Enums.ProposalCommandAction.Save) {\r\n /** For saving the proposal-\r\n * [Client Name] is mandatory\r\n * If the mandatory validation fails, raise a failure notification\r\n * else proceed to call action */\r\n const validateSave = this.fieldValidationManager.validateSave();\r\n if (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete) {\r\n const echosDeliveryMethod =\r\n this.fieldValidationManager.validateDeliverMethod();\r\n }\r\n if (this.fieldValidationManager.echos.length <= 0) {\r\n this.doAction(command);\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), validateSave)\r\n );\r\n }\r\n } else {\r\n this.doAction(command);\r\n }\r\n break;\r\n case Enums.ProposalCommandAction.SendToChecker:\r\n case Enums.ProposalCommandAction.Submit:\r\n case Enums.ProposalCommandAction.Approve:\r\n case Enums.ProposalCommandAction.Accept:\r\n case Enums.ProposalCommandAction.Endorse:\r\n case Enums.ProposalCommandAction.Cancel:\r\n case Enums.ProposalCommandAction.Renew:\r\n /** If the mandatory validation fails, raise a failure notification\r\n else proceed to call action */\r\n if (\r\n command === Enums.ProposalCommandAction.Endorse ||\r\n command === Enums.ProposalCommandAction.Cancel\r\n ) {\r\n this.fieldValidationManager.echos = [];\r\n } else {\r\n const echos = this.fieldValidationManager.validate();\r\n }\r\n if (this.proposal.proposalStatus == Enums.ProposalStatus.Incomplete) {\r\n const echosDeliveryMethod =\r\n this.fieldValidationManager.validateDeliverMethod();\r\n }\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC &&\r\n this.proposal.transType !== Enums.TransType.CAN\r\n ) {\r\n const equipmentEchos =\r\n this.fieldValidationManager.validateEquipmentsSI();\r\n }\r\n if (\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType ===\r\n EnumSG.MortgageFireSgProduct.IBGMAC) &&\r\n this.proposal.isUnderwriter &&\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n const premiumSummaryEchos =\r\n this.fieldValidationManager.validateTotalChargeAgainstGrossAndGST();\r\n }\r\n if (\r\n (this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP) &&\r\n this.proposal.isUnderwriter &&\r\n this.proposal.auxiliary[\"isPremiumManualOverridden\"] &&\r\n (this.proposal.proposalStatus === Enums.ProposalStatus.Incomplete ||\r\n this.proposal.proposalStatus === Enums.ProposalStatus.Referred)\r\n ) {\r\n const premiumSummaryEchos =\r\n this.fieldValidationManager.validateCBGTotalChargeAgainstGrossAndGST();\r\n }\r\n ///*2022-08-30 dagoh0: APACDM-363 : validate change plan type endorsement selected plan type cannot be same as existing proposal's plan type*/\r\n //if ((this.proposal.productType === EnumSG.MortgageFireSgProduct.HDB ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.PTE ||\r\n // this.proposal.productType === EnumSG.MortgageFireSgProduct.MIP) &&\r\n // this.proposal.endorsementType === Enums.EndorsementType.ChangeOfPlanType) {\r\n // const planTypeEchos = this.fieldValidationManager.validateCBGSelectedPlanType(this.pageLoadedProposalEntity.getQuestion('qs_master_planType').answer);\r\n //}\r\n if (this.fieldValidationManager.echos.length <= 0) {\r\n this.doAction(command);\r\n } else {\r\n if (buttonId > 0) {\r\n // notify button end event\r\n buttonNotifier.end_notifier$.next(\r\n new KeyValue(buttonId.toString(), \"end\")\r\n );\r\n }\r\n proposalServiceNotifier.failed_notifier$.next(\r\n new KeyValue(\r\n this.proposal.proposalId!.toString(),\r\n this.fieldValidationManager.echos\r\n )\r\n );\r\n }\r\n break;\r\n default:\r\n }\r\n // notify to update rules\r\n this.notifyProposalSaved();\r\n }\r\n\r\n doReferAction(command: Enums.ProposalCommandAction, msg: any) {\r\n const proposalEntity = this.constructProposalEntityForServer();\r\n //todo: check if this still needed\r\n //const deffer = this.$q.defer();\r\n this.proposalService\r\n .action(Enums.ProposalCommandAction.Save, proposalEntity, false)\r\n .subscribe((returnEntity) => {\r\n this.proposal.proposalId = returnEntity.proposalId;\r\n var formData = {\r\n proposalId: this.proposal.proposalId!.toString(),\r\n isUnderwriterInternalComment: false,\r\n productId: this.proposal.productId.toString(),\r\n printCorrespondence: \"\",\r\n message: msg,\r\n tabClicked: command,\r\n selectedPrintType: {\r\n label: \"Mail\",\r\n value: \"1\",\r\n },\r\n isPasswordProtected: false,\r\n preferredDeliveryMethod:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod!.answer,\r\n emailId:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_Email!\r\n .answer,\r\n mobileNo:\r\n this.proposal.qsMaster.qs_master_preferredDeliveryMethod_MobileNo!\r\n .answer,\r\n contactInfo:\r\n this.proposal.qsMaster\r\n .qs_master_preferredDeliveryMethod_CorrAddress!.answer,\r\n };\r\n\r\n const v1DialogRef = this.cdkDialogService.open(\r\n MdConfirmationMessageWithReasonAttachmentComponent,\r\n {\r\n data: formData,\r\n }\r\n );\r\n\r\n v1DialogRef.afterClosed().subscribe((result: any) => {\r\n // Subscription runs after the dialog closes\r\n if (result) {\r\n this.confirmationModalCloseForActions(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n confirmationModalCloseForActions = (result: any): void => {\r\n if (result.status === \"yes\") {\r\n if (result.data.tabClicked == Enums.ProposalCommandAction.Submit) {\r\n this.proposal.printType = result.data.selectedPrintType;\r\n this.proposal.printCorrespondence = result.data.printCorrespondence;\r\n this.proposal.isPasswordProtected = result.data.isPasswordProtected;\r\n this.proposal.isReprint = false;\r\n this.proposal.isSummary = false;\r\n this.proposal.isManual = false;\r\n this.doAction(result.data.tabClicked);\r\n }\r\n }\r\n };\r\n\r\n doAction(command: Enums.ProposalCommandAction) {\r\n const proposalEntity = this.constructProposalEntityForServer();\r\n //todo: check if this still needed\r\n //const deffer = this.$q.defer();\r\n this.proposalService\r\n .action(command, proposalEntity)\r\n .subscribe((returnEntity) => {\r\n this.proposal.proposalId = returnEntity.proposalId;\r\n if (\r\n (returnEntity.validationsMessages == undefined ||\r\n returnEntity.validationsMessages.length == 0) &&\r\n this.proposal.printType != undefined &&\r\n (returnEntity.proposalStatus == Enums.ProposalStatus.Accepted ||\r\n returnEntity.proposalStatus == Enums.ProposalStatus.Renewed)\r\n ) {\r\n this.sendPrintOptions(command).subscribe(\r\n (response: any) => {\r\n //deffer.resolve(response);\r\n this.saved(returnEntity);\r\n },\r\n function (error: any) {\r\n //deffer.reject(error);\r\n }\r\n );\r\n } else {\r\n this.saved(returnEntity);\r\n }\r\n if (command == Enums.ProposalCommandAction.Copy) {\r\n this.updateFinancialData(true);\r\n }\r\n this.resetPrintType();\r\n //return deffer.promise;\r\n });\r\n }\r\n\r\n sendPrintOptions(command: Enums.ProposalCommandAction): Observable {\r\n if (\r\n command === Enums.ProposalCommandAction.Submit ||\r\n command === Enums.ProposalCommandAction.Accept\r\n ) {\r\n return this.proposalPrintService.postPrintOptions(this.proposal);\r\n }\r\n return of(true);\r\n }\r\n\r\n exit() {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n }\r\n\r\n constructProposalEntityForServer(): ProposalEntity {\r\n // extract policy level answers\r\n this.lastPostBackProposalEntity =\r\n proposalHelper.constructProposalPackageEntityForServer(\r\n this.proposal,\r\n this.proposalService.loadedProposalEntity,\r\n (postBackData: ProposalEntity) => {\r\n // no implementations yet\r\n }\r\n );\r\n return this.lastPostBackProposalEntity;\r\n }\r\n\r\n /** Method to refresh all necessary entities/items that returned from back end upon page load */\r\n private loaded = (response: ProposalEntity) => {\r\n // keep the original version of loaded proposalEntity\r\n this.pageLoadedProposalEntity = cloner.cloneDeep(response);\r\n // refresh answer that retrieved from back end\r\n this.proposal.refreshQuestions(response);\r\n this.saved(response, false);\r\n this.proposal.refreshQuestionsReadOnlyForcbsOps(response);\r\n this.fieldValidationManager =\r\n new MortgageFireSingaporeFieldValidationManager(this.proposal);\r\n this.businessRulesManager = new MortgageFireSingaporeBusinessRulesManager(\r\n this.proposal,\r\n this.identityRolesService\r\n );\r\n this.updateFinancialData(false);\r\n this.notifyProposalLoaded();\r\n };\r\n\r\n private updateFinancialData(isCopy: boolean) {\r\n let isAdded = false;\r\n let option: any = [];\r\n if (\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMF ||\r\n this.proposal.productType === EnumSG.MortgageFireSgProduct.IBGMAC\r\n ) {\r\n if (isCopy != true) {\r\n this.proposal.qsMaster.qs_master_buPcCode!.options.forEach((x) => {\r\n if (x.value === this.proposal.qsMaster.qs_master_buPcCode!.answer) {\r\n isAdded = true;\r\n }\r\n });\r\n }\r\n if (!isAdded) {\r\n this.masterDataService.financialInstitutionBranchesfullList.forEach(\r\n (i) => {\r\n if (i.isActive === \"True\") {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n if (\r\n i.isActive != \"True\" &&\r\n i.key === this.proposal.qsMaster.qs_master_buPcCode!.answer &&\r\n isCopy != true\r\n ) {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n }\r\n );\r\n this.proposal.qsMaster.qs_master_buPcCode!.options = option;\r\n }\r\n } else {\r\n if (isCopy != true) {\r\n this.proposal.qsMaster.qs_master_financialBranch!.options.forEach(\r\n (x) => {\r\n if (\r\n x.value ===\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer\r\n ) {\r\n isAdded = true;\r\n }\r\n }\r\n );\r\n }\r\n if (!isAdded) {\r\n this.masterDataService.financialInstitutionBranchesfullList.forEach(\r\n (i) => {\r\n if (i.isActive === \"True\") {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n if (\r\n i.isActive != \"True\" &&\r\n i.key ===\r\n this.proposal.qsMaster.qs_master_financialBranch!.answer &&\r\n isCopy != true\r\n ) {\r\n option.push(new KeyValue(i.value, i.key));\r\n }\r\n }\r\n );\r\n this.proposal.qsMaster.qs_master_financialBranch!.options = option;\r\n }\r\n }\r\n }\r\n\r\n private saved = (response: ProposalEntity, notifySaved: boolean = true) => {\r\n // set current version of [ProposalEntity]\r\n this.proposalEntity = response;\r\n // refresh proposal header data\r\n this.proposal.refreshHeader(response);\r\n // refresh answer that might potentially changed by back-end\r\n this.proposal.refreshPotentiallyChangedQuestions(response);\r\n // refresh calculated premium summary\r\n this.proposal.refreshPremiumSummary(response);\r\n // initialize custom mandatory field\r\n this.fieldValidationManager.initializeMandatoryFields();\r\n // high level of setting read only to questions\r\n this.proposal.refreshQuestionsReadOnly(response);\r\n // custom readonly\r\n this.proposal.refreshCustomQuestionsReadOnly(response);\r\n // refresh validation message\r\n this.proposal.refreshValidationMessage(response);\r\n\r\n // TODO: custom readonly if available\r\n if (notifySaved) {\r\n this.notifyProposalSaved();\r\n }\r\n };\r\n\r\n private resetPrintType = (): void => {\r\n this.proposal.printType = undefined;\r\n this.proposal.printCorrespondence = undefined;\r\n this.proposal.isReprint = undefined;\r\n this.proposal.isSummary = undefined;\r\n this.proposal.isManual = undefined;\r\n this.proposal.isPasswordProtected = undefined;\r\n };\r\n\r\n private apiActionSuccessNotified = (response: KeyValue) => {\r\n //has to filter by country's products now\r\n if (new DbsProposal().isKeyValueProposalEntityAssignable(response)) {\r\n const responseEntity = response.value;\r\n if (responseEntity.proposalStatus === Enums.ProposalStatus.Replaced) {\r\n this.router.navigate([\"/\" + ROUTE_HOME]);\r\n } else {\r\n this.update(response.value);\r\n }\r\n }\r\n };\r\n\r\n private notifyProposalLoaded() {\r\n proposalServiceNotifier.loaded_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n }\r\n\r\n public notifyProposalSaved() {\r\n proposalServiceNotifier.saved_notifier$.next(\r\n new KeyValue(this.proposal.proposalId!.toString(), this.proposal)\r\n );\r\n }\r\n\r\n private update(proposalEntity: ProposalEntity) {\r\n this.proposal.refreshPremiumSummary(proposalEntity);\r\n }\r\n private beforeApiMap = (event: ApiMapperNotifierModel) => {\r\n //has to filter by country's products now\r\n if (new DbsProposal().isApiMapperNotifierModelAssignable(event)) {\r\n event.proposalEntity.customerMappingID = this.proposal.customerMappingId;\r\n event.proposalEntity.customerMappingAddressID =\r\n this.proposal.customerMappingAddressID;\r\n event.proposalEntity.endorsementType = this.proposal.endorsementType;\r\n event.proposalEntity.auxiliary = this.proposal.auxiliary;\r\n event.proposalEntity.originalInceptionDate =\r\n this.proposal.originalInceptionDate;\r\n }\r\n };\r\n //#endregion\r\n\r\n getVCR(): ViewContainerRef {\r\n return this.proposalService.getVCR();\r\n }\r\n\r\n setVCR(value: ViewContainerRef) {\r\n this.proposalService.setVCR(value);\r\n }\r\n}\r\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\r\nimport { NotificationService } from \"@progress/kendo-angular-notification\";\r\n\r\ntype HorizontalPosition = \"left\" | \"center\" | \"right\";\r\ntype VerticalPosition = \"top\" | \"bottom\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class NotifierService {\r\n constructor(private notificationService: NotificationService) {}\r\n\r\n public horizontalPos: HorizontalPosition = \"right\";\r\n public verticalPos: VerticalPosition = \"bottom\";\r\n\r\n success(text: string, appendToVCR: ViewContainerRef) {\r\n this.notificationService.show({\r\n appendTo: appendToVCR,\r\n content: text,\r\n hideAfter: 1000,\r\n position: { horizontal: this.horizontalPos, vertical: this.verticalPos },\r\n animation: { type: \"fade\", duration: 400 },\r\n type: { style: \"success\", icon: true },\r\n });\r\n }\r\n\r\n info(text: string, appendToVCR: ViewContainerRef) {\r\n this.notificationService.show({\r\n appendTo: appendToVCR,\r\n content: text,\r\n hideAfter: 1000,\r\n position: { horizontal: this.horizontalPos, vertical: this.verticalPos },\r\n animation: { type: \"fade\", duration: 400 },\r\n type: { style: \"info\", icon: true },\r\n });\r\n }\r\n\r\n error(text: string, appendToVCR: ViewContainerRef) {\r\n this.notificationService.show({\r\n appendTo: appendToVCR,\r\n content: text,\r\n hideAfter: 1000,\r\n position: { horizontal: this.horizontalPos, vertical: this.verticalPos },\r\n animation: { type: \"fade\", duration: 400 },\r\n type: { style: \"error\", icon: true },\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { environment } from \"src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport { OpenItemEntity } from \"../components/accounting/open-item/models/open-item-list.model\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class OpenItemListService extends ApiService {\r\n SERVER_URL_OPENITEMSEARCH: string = \"api/openitem/search\";\r\n SERVER_URL_OPENITEMSHISTORY = \"api/openitem/getOpenItemHistory/\";\r\n SERVER_URL_OPENITEMSEXPORT = \"api/openitem/export\";\r\n SERVER_URL_OPENITEMDETAILS = \"api/openitem/get/\";\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n public searchOpenItemListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_OPENITEMSEARCH,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n getOpenItem(openItemId: string): Observable {\r\n const uri = \"api/openitem/get/\";\r\n return this.httpClient.get(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + uri + `${openItemId}`\r\n );\r\n }\r\n public getOpenItemHistory(openItemId: string) {\r\n return this.httpClient.get(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase +\r\n this.SERVER_URL_OPENITEMSHISTORY +\r\n `${openItemId}`\r\n );\r\n }\r\n public getOpenItemDetails(openItemId: string) {\r\n return this.httpClient.get(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase +\r\n this.SERVER_URL_OPENITEMDETAILS +\r\n `${openItemId}`\r\n );\r\n }\r\n public exportOpenItemListing(querystring: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/x-www-form-urlencoded\", //\"application/json\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(\r\n /*AppSettings.appSettings.apiBaseUri*/\r\n environment.serviceBase + this.SERVER_URL_OPENITEMSEXPORT,\r\n querystring,\r\n {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n }\r\n );\r\n }\r\n doManualPay(data: any) {\r\n const url = \"api/openitem/manualPay/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n\r\n doHaseManualPay(data: any) {\r\n const url = \"api/openitem/manualPayHase/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n\r\n doRefundReview(data: any) {\r\n const url = \"api/openitem/refundReview/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n\r\n doHaseRefund(data: any) {\r\n const url = \"api/openitem/refundHase/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n\r\n doRefund(data: any) {\r\n const url = \"api/openitem/refund/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n doBounceCheque(data: any) {\r\n const url = \"api/openitem/doBounceCheque/\";\r\n const postData = JSON.stringify(data);\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport * as saveAs from \"file-saver\";\r\nimport { environment } from \"../../environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PolicyCustomerLoginService extends ApiService {\r\n private otpStatus: string | undefined;\r\n SERVER_URL_GET_OTP: string = \"api/publicFacingCustomer/getOtp\";\r\n SERVER_URL_VALIDATE_OTP: string = \"api/publicFacingCustomer/validateOtp\";\r\n SERVER_URL_CALCULATE_PREMIUM: string =\r\n \"api/publicFacingCustomer/calculatePremium\";\r\n SERVER_URL_ACCEPT_REJECT_OFFER: string =\r\n \"api/publicFacingCustomer/acceptRejectOffer\";\r\n SERVER_URL_GET_FAQS: string = \"api/publicFacingCustomer/getFaqs\";\r\n\r\n allPoliciesDownloadEntityList: any;\r\n premiumDetail: any;\r\n offerDetail: any;\r\n isCustomerLogin: boolean = false;\r\n isCustomerOTP: boolean = false;\r\n isCustomerOffer: boolean = false;\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n async getOTP(\r\n userEmailMobile: string,\r\n dob: string,\r\n last4UniqueId: string\r\n ): Promise {\r\n const postData = {\r\n userEmailOrMobile: userEmailMobile,\r\n dobInDDMMYY: dob,\r\n last4UniqueId: last4UniqueId,\r\n };\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n const response = await this.httpClient\r\n .post(environment.serviceBase + this.SERVER_URL_GET_OTP, postData, {\r\n headers: headers,\r\n })\r\n .toPromise();\r\n if (response) this.otpStatus = response;\r\n return this.otpStatus;\r\n }\r\n\r\n async validateOtpWithDds(enc: string, otp: string): Promise {\r\n const postData = {\r\n enc: enc,\r\n otp: otp,\r\n };\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n const response = await this.httpClient\r\n .post(\r\n environment.serviceBase + this.SERVER_URL_VALIDATE_OTP,\r\n postData,\r\n {\r\n headers: headers,\r\n }\r\n )\r\n .toPromise();\r\n if (response) this.otpStatus = response;\r\n return this.otpStatus;\r\n }\r\n\r\n async calculatePremium(\r\n enc: string,\r\n encProposalId: string,\r\n encExpiryDate: string\r\n ): Promise {\r\n const postData = {\r\n enc: enc,\r\n encProposalId: encProposalId,\r\n transType: 4,\r\n encExpiryDate: encExpiryDate,\r\n };\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n const response = await this.httpClient\r\n .post(\r\n environment.serviceBase + this.SERVER_URL_CALCULATE_PREMIUM,\r\n postData,\r\n {\r\n headers: headers,\r\n }\r\n )\r\n .toPromise();\r\n if (response) this.premiumDetail = response;\r\n return this.premiumDetail;\r\n }\r\n\r\n async acceptReject(\r\n enc: string,\r\n encProposalId: string,\r\n policyNumber: string,\r\n acceptOrReject: string\r\n ): Promise {\r\n const postData = {\r\n enc: enc,\r\n encProposalId: encProposalId,\r\n policyNumber: policyNumber,\r\n acceptOrReject: acceptOrReject,\r\n };\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n const response = await this.httpClient\r\n .post(\r\n environment.serviceBase + this.SERVER_URL_ACCEPT_REJECT_OFFER,\r\n postData,\r\n {\r\n headers: headers,\r\n }\r\n )\r\n .toPromise();\r\n if (response) this.offerDetail = response;\r\n return this.offerDetail;\r\n }\r\n\r\n downloadFaqs = () => {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/pdf\",\r\n });\r\n const params = {};\r\n\r\n return this.httpClient\r\n .get(environment.serviceBase + this.SERVER_URL_GET_FAQS, {\r\n headers: headers,\r\n params: params,\r\n responseType: \"arraybuffer\",\r\n observe: \"response\",\r\n })\r\n .subscribe(\r\n (result: any) => {\r\n const fileName: string = \"FAQs.pdf\";\r\n const file = new Blob([result.body], { type: \"application/pdf\" });\r\n const url = window.URL.createObjectURL(file);\r\n saveAs(url, fileName);\r\n },\r\n (error: any) => {}\r\n );\r\n };\r\n}\r\n","import { HttpClient, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport {\r\n PolicyTypeEntity,\r\n PolicyWordingEntity,\r\n} from \"../components/product/policyWordingSetUp/policy-wording.entity\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PolicyWordingSetupService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n public getPolicyTypeList(): Observable {\r\n const url = \"api/policyWordingSetUp/getPolicyTypeList\";\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url)\r\n );\r\n }\r\n public getDocumentTitleList(): Observable {\r\n const url = \"api/policyWordingSetUp/getDocumentTitleList\";\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url)\r\n );\r\n }\r\n public downloadDocument(id: string) {\r\n let params = new HttpParams();\r\n params = params.append(\"id\", id);\r\n this.download(\"api/policyWordingSetUp/getDocument\", params).subscribe(\r\n (response: HttpResponse) => {\r\n if (response && response.body) {\r\n var file = new Blob([response.body], { type: \"application/pdf\" });\r\n var fileURL = URL.createObjectURL(file);\r\n window.open(fileURL, \"_blank\");\r\n }\r\n }\r\n );\r\n }\r\n public getPolicyWordingSetUpList(\r\n policyType: any,\r\n productType: any\r\n ): Observable {\r\n const url = \"api/policyWordingSetUp/getPolicyWordingSetUpList\";\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"policyType\", policyType);\r\n params = params.append(\"productType\", productType);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n params\r\n );\r\n }\r\n public getPolicyListOfWordingSetUp(\r\n id: string\r\n ): Observable {\r\n const url = \"api/policyWordingSetUp/getPolicyListOfWordingSetUp\";\r\n let params = new HttpParams();\r\n params = params.append(\"id\", id);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n params\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpParams, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\nimport { saveAs, encodeBase64 } from \"@progress/kendo-file-saver\";\r\nimport {\r\n AutoUpdateEntity,\r\n BankTransCitiEntity,\r\n BankTransEntity,\r\n CbgDailyDownloadEntity,\r\n IBGRenewalEntity,\r\n LoanRedemptionFailureEntity,\r\n LoanRedemptionSuccessEntity,\r\n LSTEntity,\r\n ManualPaidAutoDebitEntity,\r\n MonthlyReportCitiEntity,\r\n PrintDocumentEntity,\r\n RenewalDraftDeletionEntity,\r\n RenewalEntity,\r\n SummaryInvoiceAutoDebitEntity,\r\n} from \"../components/new-product/home/preset-report/preset-report.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PresetExportService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n public downloadDocument(\r\n month: number,\r\n year: number,\r\n segmentDetails?: string\r\n ) {\r\n let params = new HttpParams();\r\n params = params.append(\"month\", month);\r\n params = params.append(\"year\", year);\r\n this.download(\r\n \"api/product/home/presetExport/autoDebitDownload\",\r\n params\r\n ).subscribe((response: HttpResponse) => {\r\n const httpHeader = response.headers;\r\n let fileName = httpHeader.get(\"x-filename\");\r\n if (fileName) this.downLoadFile(response.body, fileName);\r\n });\r\n }\r\n private downLoadFile(data: any, fileName: string) {\r\n let blob = new Blob([data]);\r\n let url = window.URL.createObjectURL(blob);\r\n saveAs(url, fileName);\r\n }\r\n public summaryInvoiceAutoDebit(\r\n month: number,\r\n year: number,\r\n segmentDetails: string\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/summaryInvoiceAutoDebitDownload\";\r\n const postData = {\r\n month: month,\r\n year: year,\r\n segmentDetails: segmentDetails,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public autoUpdateDownload(\r\n month: number,\r\n year: number,\r\n segmentDetails: string\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/autoUpdateDownload\";\r\n\r\n const postData = {\r\n month: month,\r\n year: year,\r\n segmentDetails: segmentDetails,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n bankTransaction(\r\n dateFrom: Date,\r\n dateTo: Date,\r\n segments: Array,\r\n products: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/bankTransaction\";\r\n const postData = {\r\n dateFrom: dateFrom,\r\n dateTo: dateTo,\r\n segments: segments,\r\n products: products,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n\r\n bankTransactionCiti(\r\n dateFrom?: Date,\r\n dateTo?: Date,\r\n products?: Array,\r\n productRadio?: string,\r\n effectiveDateFrom?: Date,\r\n effectiveDateTo?: Date,\r\n transactionType?: Array,\r\n customerType?: Array,\r\n policyStatus?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/bankTransactionCiti\";\r\n const postData = {\r\n customerType: customerType,\r\n transactionType: transactionType,\r\n transactionDateFrom: dateFrom,\r\n transactionDateTo: dateTo,\r\n effectiveDateFrom: effectiveDateFrom,\r\n effectiveDateTo: effectiveDateTo,\r\n products: products,\r\n policyStatus: policyStatus,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public monthlyReportCiti(\r\n dateFrom?: Date,\r\n dateTo?: Date,\r\n products?: Array,\r\n transactionType?: string,\r\n customerType?: Array,\r\n policyStatus?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/monthlyReportCiti\";\r\n const postData = {\r\n customerType: customerType,\r\n transactionType: transactionType,\r\n transactionDateFrom: dateFrom,\r\n transactionDateTo: dateTo,\r\n products: products,\r\n policyStatus: policyStatus,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public citiWeeklyInvoiceReport(ADweek: Date, transactionType: number) {\r\n const uri = \"api/product/home/presetExport/citiWeeklyInvoiceReportDownload\";\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"ADWeek\", ADweek.toDateString());\r\n params = params.append(\"transactionType\", transactionType);\r\n this.download(uri, params).subscribe((response: HttpResponse) => {\r\n const httpHeader = response.headers;\r\n let fileName = httpHeader.get(\"x-filename\");\r\n if (fileName) this.downLoadFile(response.body, fileName);\r\n });\r\n }\r\n public newBusinessCBGDailyDownload(\r\n dateFrom?: Date,\r\n dateTo?: Date,\r\n segments?: Array,\r\n userTeams?: Array,\r\n productIds?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/newBusinessCBGDailyDownload\";\r\n const postData = {\r\n dateFrom: dateFrom,\r\n dateTo: dateTo,\r\n segments: segments,\r\n userTeams: userTeams,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public endorsementCBGDailyDownload(\r\n dateFrom?: Date,\r\n dateTo?: Date,\r\n segments?: Array,\r\n userTeams?: Array,\r\n productIds?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/endorsementCBGDailyDownload\";\r\n const postData = {\r\n dateFrom: dateFrom,\r\n dateTo: dateTo,\r\n segments: segments,\r\n userTeams: userTeams,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public cancellationCBGDailyDownload(\r\n dateFrom?: Date,\r\n dateTo?: Date,\r\n segments?: Array,\r\n userTeams?: Array,\r\n productIds?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/cancellationCBGDailyDownload\";\r\n const postData = {\r\n dateFrom: dateFrom,\r\n dateTo: dateTo,\r\n segments: segments,\r\n userTeams: userTeams,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public printDocumentReportSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/printDocument/printDocumentReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n public printDocumentReport(\r\n productRadio: string,\r\n channelTypeID: number,\r\n boundDateFrom?: Date,\r\n boundDateTo?: Date,\r\n policyNo?: string,\r\n insuredName?: string,\r\n productIds?: Array\r\n ): Observable {\r\n //Change\r\n const uri = \"api/product/home/presetExport/printDocumentReportDownload\";\r\n const postData = {\r\n productRadio: productRadio,\r\n channelTypeID: channelTypeID,\r\n boundDateFrom: boundDateFrom,\r\n boundDateTo: boundDateTo,\r\n policyNo: policyNo,\r\n insuredName: insuredName,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n public printDatapostReportSearch(querystring: string): Observable {\r\n const uri =\r\n \"api/product/home/printDocument/dataPostPrintDocumentReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n public printDatapostReport(\r\n productRadio: string,\r\n boundDateFrom?: Date,\r\n boundDateTo?: Date,\r\n policyNo?: string,\r\n insuredName?: string,\r\n productIds?: Array\r\n ): Observable {\r\n //Change\r\n const uri =\r\n \"api/product/home/presetExport/dataPostPrintDocumentReportDownload\";\r\n const postData = {\r\n productRadio: productRadio,\r\n boundDateFrom: boundDateFrom,\r\n boundDateTo: boundDateTo,\r\n policyNo: policyNo,\r\n insuredName: insuredName,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n //lstReportSearch\r\n public lstReportSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/lstReport/LSTReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n public lstReport(\r\n lstEffectiveDateFrom?: Date,\r\n lstEffectiveDateTo?: Date,\r\n lstBoundDateFrom?: Date,\r\n lstBoundDateTo?: Date,\r\n lstPolicyStartDateFrom?: Date,\r\n lstPolicyStartDateTo?: Date,\r\n lstPolicyEndDateFrom?: Date,\r\n lstPolicyEndDateTo?: Date,\r\n lstPolicyNumber?: string,\r\n lstInsuredName?: string,\r\n lstTransactionType?: Array,\r\n lstProduct?: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/lSTDownload\";\r\n const postData = {\r\n effectiveDateFrom: lstEffectiveDateFrom,\r\n effectiveDateTo: lstEffectiveDateTo,\r\n boundDateFrom: lstBoundDateFrom,\r\n boundDateTo: lstBoundDateTo,\r\n startDateFrom: lstPolicyStartDateFrom,\r\n startDateTo: lstPolicyStartDateTo,\r\n expiryDateFrom: lstPolicyEndDateFrom,\r\n expiryDateTo: lstPolicyEndDateTo,\r\n policyNo: lstPolicyNumber,\r\n insuredName: lstInsuredName,\r\n transType: lstTransactionType,\r\n productIds: lstProduct,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n //ibg renewal\r\n public ibgRenewalReport(\r\n policyNo: string,\r\n CIN: string,\r\n insuredName: string,\r\n startDateFrom?: Date,\r\n startDateTo?: Date,\r\n expiryDateFrom?: Date,\r\n expiryDateTo?: Date,\r\n boundDateFrom?: Date,\r\n boundDateTo?: Date,\r\n effectiveDateFrom?: Date,\r\n effectiveDateTo?: Date,\r\n bankReferenceNo?: string,\r\n segment?: Array,\r\n transType?: Array,\r\n policyStatus?: Array,\r\n proposalStatus?: Array,\r\n productId?: Array,\r\n postalCode?: string,\r\n MSIGNo?: string\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/iBGRenewalReportDownload\";\r\n const postData = {\r\n policyNo: policyNo,\r\n CIN: CIN,\r\n insuredName: insuredName,\r\n startDateFrom: startDateFrom,\r\n startDateTo: startDateTo,\r\n expiryDateFrom: expiryDateFrom,\r\n expiryDateTo: expiryDateTo,\r\n boundDateFrom: boundDateFrom,\r\n boundDateTo: boundDateTo,\r\n effectiveDateFrom: effectiveDateFrom,\r\n effectiveDateTo: effectiveDateTo,\r\n bankReferenceNo: bankReferenceNo,\r\n segment: segment,\r\n transType: transType,\r\n policyStatus: policyStatus,\r\n proposalStatus: proposalStatus,\r\n productId: productId,\r\n postalCode: postalCode,\r\n MSIGNo: MSIGNo,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n //ingrenewalReportSearch\r\n public ibgRenewalReportSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/renewalReport/IBGRenewalReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n //loan-redemption report search\r\n public loanRedemptionReportSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/LoanRedemption/generateReport\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n loanRedemptionSuccess(\r\n dateSearchType: string,\r\n effectiveDateFrom?: Date,\r\n effectiveDateTo?: Date,\r\n segmentDetails?: string,\r\n reportType?: string,\r\n productID?: string[],\r\n productRadio?: string\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/LoanRedemptionSuccessDownload\";\r\n\r\n const postData = {\r\n dateSearchType: dateSearchType,\r\n effectiveDateFrom: effectiveDateFrom,\r\n effectiveDateTo: effectiveDateTo,\r\n segmentDetails: segmentDetails,\r\n reportType: reportType,\r\n productID: productID,\r\n productRadio: productRadio,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n loanRedemptionFailure(\r\n dateSearchType: string,\r\n effectiveDateFrom?: Date,\r\n effectiveDateTo?: Date,\r\n segmentDetails?: string,\r\n reportType?: string,\r\n productID?: string[],\r\n productRadio?: string\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/LoanRedemptionFailureDownload\";\r\n\r\n const postData = {\r\n dateSearchType: dateSearchType,\r\n effectiveDateFrom: effectiveDateFrom,\r\n effectiveDateTo: effectiveDateTo,\r\n segmentDetails: segmentDetails,\r\n reportType: reportType,\r\n productID: productID,\r\n productRadio: productRadio,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n manualPaidAutoDebit(\r\n month: number,\r\n year: number\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/manualPaidAutoDebit\";\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"month\", month);\r\n params = params.append(\"year\", year);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n params\r\n );\r\n }\r\n //renewalDraftReportSearch\r\n public renewalDraftReportSearch(querystring: string): Observable {\r\n const uri =\r\n \"api/product/home/renewalReport/renewalDraftDeletionReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n public renewalReportSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/renewalReport/renewalReportSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n renewalDraftDeletionReport(\r\n month: number,\r\n year: number,\r\n segments: Array,\r\n productIds: Array\r\n ): Observable {\r\n const uri = \"api/product/home/presetExport/renewalDraftDeletionReport\";\r\n const postData = {\r\n month: month,\r\n year: year,\r\n segments: segments,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n renewalReport(\r\n month: number,\r\n year: number,\r\n segments: Array,\r\n productIds: Array\r\n ): Observable {\r\n /// CHNAGE CONTROLER PATH\r\n const uri = \"api/product/home/presetExport/renewalReportDownload\";\r\n const postData = {\r\n month: month,\r\n year: year,\r\n segments: segments,\r\n productIds: productIds,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n //summaryInvoiceAutoDebitSearch\r\n public summaryInvoiceAutoDebitSearch(querystring: string): Observable {\r\n const uri = \"api/product/home/summaryInvoice/autoDebitSearch\";\r\n return this.httpClient.post(this.constructEndPoint(uri), querystring, {\r\n headers: this.getHeaderAsEncodedFormUrl(),\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport {\r\n ReconcilePoliciesDownloadEntity,\r\n SearchCriteria,\r\n} from \"../components/accounting/reconcile/models/reconcile-list.model\";\r\nimport { common } from \"../framework/utils/common\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ReconcileListService extends ApiService {\r\n private reconcilePoliciesDownloadEntityList!: ReconcilePoliciesDownloadEntity[];\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n async searchReconcilePolicies(\r\n data: SearchCriteria\r\n ): Promise {\r\n const uri = environment.serviceBase + \"api/reconcile/export\";\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/json\",\r\n });\r\n const response = await this.httpClient\r\n .post(uri, data, { headers: headers })\r\n .toPromise();\r\n if (response)\r\n return response.d;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n//import { environment } from \"../environments/environment\";\r\nimport { environment } from \"src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\nimport { RmScreenListingEntity } from \"../components/product/rm-screen/RmScreenListingEntity\";\r\nimport { common } from \"../framework/utils/common\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class RmScreenService extends ApiService {\r\n private rmScreenListingData!: RmScreenListingEntity[];\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n async getRmdetails(): Promise {\r\n this.rmScreenListingData = [];\r\n const uri = environment.serviceBase + \"api/RMDetails/getRMDetails\";\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n \"Content-Type\": \"application/json\", //\"application/x-www-form-urlencoded\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n // Session: \"d5990a3b-ad1d-4aea-93e5-9b0da35da17e\", //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n\r\n if (\r\n common.isDefined(this.rmScreenListingData) &&\r\n this.rmScreenListingData.length > 0\r\n ) {\r\n //todo\r\n } else {\r\n this.rmScreenListingData = [];\r\n\r\n const response = await this.httpClient\r\n .get(uri, { headers: headers })\r\n .toPromise();\r\n\r\n this.rmScreenListingData = response;\r\n }\r\n\r\n return this.rmScreenListingData;\r\n }\r\n\r\n save(data: any[], isNewRm: boolean) {\r\n const url = \"api/RMDetails/saveRMDetails/\";\r\n const postData = JSON.stringify(data[0]); //has to be first item, if json array will not work\r\n\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n\r\n deleteRM(data: string) {\r\n const url = \"api/RMDetails/removeRMDetails/\";\r\n\r\n const postData = { id: data };\r\n\r\n //it's a delete call, not post\r\n return this.httpDeleteCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(url),\r\n postData\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SessionStorageService {\r\n //todo: migrate all from old code at src\\assets\\js\\libs\\angular-local-storage.js\r\n get(key: string) {\r\n const item = sessionStorage.getItem(key);\r\n return item ? JSON.parse(item) : null;\r\n }\r\n\r\n set(key: string, value: any): void {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n remove(key: string): void {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n clear() {\r\n sessionStorage.clear();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\"; //use the new one in src folder, old one mainly for guid.ts only\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class UploadExcelService {\r\n SERVER_URL_BOUNCEDMAILPOLICY: string =\r\n \"api/product/home/bouncedMailPolicy/uploadExcel\";\r\n SERVER_URL_LOANREDEMPTION: string =\r\n \"api/product/home/LoanRedemption/uploadExcel\";\r\n SERVER_URL_IBGPROPOSALUPLOAD: string = \"api/IBGProposal/uploadExcel\";\r\n SERVER_URL_REVIEWREFUNDUPLOAD: string =\r\n \"api/reviewrefundupload/uploadReviewRefundItems\";\r\n SERVER_URL_REVIEWUPLOAD: string = \"api/refundupload/uploadRefundItems\";\r\n SERVER_URL_GSTADJUSTMENTUPLOAD: string =\r\n \"api/gstadjustment/uploadGSTAdjustment\";\r\n SERVER_URL_UPLOADRECONCILE: string = \"api/reconcile/uploadAndReconcile\";\r\n SERVER_URL_UPLOAD_MULTI_YEAR_AUTO_DEBIT: string =\r\n \"api/product/home/MultiyearAutoDebit/uploadExcel\";\r\n SERVER_URL_UPLOADPOLICYWORDING: string =\r\n \"api/policyWordingSetUp/uploadPolicyWording\";\r\n\r\n constructor(protected httpClient: HttpClient) {}\r\n\r\n protected upload(formData: any, url: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/48749008/request-content-ismimemultipartcontent-fails\r\n //'Content-Type': 'multipart/form-data',\r\n //Session: \"27b87e1c-0478-4637-9ced-d531b8191092\", //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(url, formData, {\r\n headers: headers,\r\n reportProgress: true,\r\n observe: \"events\",\r\n });\r\n }\r\n\r\n protected uploadAsResponse(formData: any, url: string) {\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/48749008/request-content-ismimemultipartcontent-fails\r\n //'Content-Type': 'multipart/form-data',\r\n //Session: \"27b87e1c-0478-4637-9ced-d531b8191092\", //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n return this.httpClient.post(url, formData, {\r\n headers: headers,\r\n reportProgress: true,\r\n //observe: \"events\",\r\n observe: \"response\",\r\n });\r\n }\r\n\r\n public uploadBouncedMailPolicy(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_BOUNCEDMAILPOLICY\r\n );\r\n }\r\n\r\n public uploadAutoLoanRedemption(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_LOANREDEMPTION\r\n );\r\n }\r\n\r\n public uploadIbgProposal(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_IBGPROPOSALUPLOAD\r\n );\r\n }\r\n\r\n public uploadReviewRefund(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_REVIEWREFUNDUPLOAD\r\n );\r\n }\r\n\r\n public uploadRefund(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_REVIEWUPLOAD\r\n );\r\n }\r\n\r\n public uploadGSTAdjustment(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_GSTADJUSTMENTUPLOAD\r\n );\r\n }\r\n\r\n generateGSTAdjustmentReport(reportType: string) {\r\n var url = \"api/gstadjustment/generateGSTAdjustmentReport\";\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n });\r\n const params = {\r\n reportType: reportType,\r\n };\r\n\r\n return this.httpClient.get(environment.serviceBase + url, {\r\n headers: headers,\r\n params: params,\r\n responseType: \"arraybuffer\",\r\n observe: \"response\",\r\n });\r\n }\r\n\r\n public generateAnchorAndTriggerDownload(data: any, fileName: any): void {\r\n const file = new Blob([data], { type: \"application/octet-stream\" });\r\n\r\n const nav = window.navigator as any;\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileName);\r\n } else {\r\n const url = window.URL.createObjectURL(file);\r\n const a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute(\"style\", \"display: none\");\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n a.remove();\r\n }\r\n }\r\n\r\n public uploadReconcile(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_UPLOADRECONCILE\r\n );\r\n }\r\n public uploadMultiYearAutoDebit(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_UPLOAD_MULTI_YEAR_AUTO_DEBIT\r\n );\r\n }\r\n public uploadPolicyWording(formData: any) {\r\n return this.upload(\r\n formData,\r\n environment.serviceBase + this.SERVER_URL_UPLOADPOLICYWORDING\r\n );\r\n }\r\n\r\n public async doBulkAction(bulkActionModel: any): Promise {\r\n const putData = JSON.stringify(bulkActionModel);\r\n\r\n const headers = new HttpHeaders({\r\n Accept: \"application/octet-stream;\",\r\n //Authorization: \"Bearer \" + this.BEARER, //authData.token,\r\n //https://stackoverflow.com/questions/23118249/whats-the-difference-between-request-payload-vs-form-data-as-seen-in-chrome\r\n //In Chrome, request with 'Content-Type:application/json' shows as Request PayedLoad and sends data as json object.\r\n //But request with 'Content-Type:application/x-www-form-urlencoded' shows Form Data and sends data as Key:Value Pair\r\n \"Content-Type\": \"application/json\", //\"application/x-www-form-urlencoded\",\r\n //Session: this.SESSION_TOKEN, //see request() in: ~\\app\\library\\module\\interceptor\\http-interceptor.ts\r\n });\r\n\r\n // User AuthData required in HTTP POST\r\n //const authData: Interface.IAuthenticationData = this.localStorageService.get(Identity.AUTH_STORAGE_NAME);\r\n\r\n var url = \"api/proposalBulkAction/BulkAction\";\r\n\r\n const response = await this.httpClient\r\n .put(environment.serviceBase + url, putData, {\r\n headers: headers,\r\n })\r\n .toPromise();\r\n return response;\r\n }\r\n}\r\n\r\ninterface BulkActionResponse {\r\n Status: boolean;\r\n ValidationMessage: string;\r\n}\r\n\r\nexport class IBGLoanRedemptionFailureEntity {\r\n rowIndex!: string;\r\n BankRefNo!: string;\r\n PolicyNo!: string;\r\n RiskAddress!: string;\r\n MITDDate!: string;\r\n InsuranceAction!: string;\r\n Remarks!: string;\r\n MSBRDateReceived!: string;\r\n InsuredName!: string; //citi\r\n //citi\r\n}\r\nexport class IBGLoanRedemptionSuccessEntity {\r\n rowIndex!: string;\r\n BankRefNo!: string;\r\n PolicyNo!: string;\r\n RiskAddress!: string;\r\n PolicyStatus!: string;\r\n InsuredName!: string;\r\n MITDDate!: string;\r\n RefundPremium!: string;\r\n MSBRDateReceived!: string;\r\n Remarks!: string;\r\n MSBRDate!: string;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class UrlService {\r\n constructor() {}\r\n\r\n GetFullUrlWithSubDirectory(originalLastSegment: string) {\r\n const path = window.location.pathname.toLocaleLowerCase();\r\n /*\r\n const lastSegment = path.slice(path.lastIndexOf(\"/\"), path.length); //some env is sub-folder\r\n let iisSubDirectory = path.replace(lastSegment, \"\");\r\n */\r\n const iisSubDirectory = path.slice(0, path.lastIndexOf(\"/\"));\r\n\r\n let fullUrlWithSubDirectory = window.location.origin + iisSubDirectory;\r\n\r\n return fullUrlWithSubDirectory + \"/\" + originalLastSegment;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n//import { promises, resolve } from 'dns';\r\nimport { reject } from \"lodash\";\r\nimport { Observable, Subject, of } from \"rxjs\";\r\nimport { map, switchMap } from \"rxjs/operators\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\n//import { SharedLogoutMessageComponent } from \"./dialog/components/shared-logout-message/shared-logout-message.component\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class UserListService {\r\n dictUserList = {};\r\n\r\n constructor(\r\n private apiService: ApiService,\r\n private dialog: DialogWrapperService\r\n ) {}\r\n\r\n subject = new Subject();\r\n dictBrokerList = new Map();\r\n\r\n fetchBrokerList(userID: number, productID: string): Observable {\r\n //var deferred = $q.defer();\r\n\r\n /** BrokerList is cached as UserID_productID */\r\n //TODO:\r\n // if (this.dictBrokerList[userId+\"_\"+productId] ?? false ) {\r\n // this.dictBrokerList[userId+\"_\"+productId];\r\n // } else {\r\n var uri = \"api/user/getUserMappedOrgnisations\";\r\n // Api.get(uri,undefined,'')\r\n // .then(function (result){\r\n // this.dictBrokerList[userId+\"_\"+productId] = result;\r\n // deferred.resolve(result);\r\n // },function (error){\r\n // deferred.reject(error);\r\n // });\r\n\r\n if (\r\n this.dictBrokerList != undefined &&\r\n this.dictBrokerList.has(userID + \"_\" + productID)\r\n ) {\r\n const result = this.dictBrokerList.get(userID + \"_\" + productID);\r\n this.subject.next(result);\r\n } else {\r\n this.apiService.getBrokerList(uri, {}, {}).subscribe((result) => {\r\n this.dictBrokerList.set(userID + \"_\" + productID, result);\r\n this.subject.next(result);\r\n });\r\n }\r\n //TODO: sosola\r\n // .then(function (result){\r\n // this.dictBrokerList[userId+\"_\"+productId] = result;\r\n // deferred.resolve(result);\r\n // },function (error){\r\n // // deferred.reject(error);\r\n // });\r\n\r\n return this.subject;\r\n // }\r\n // return deferred.promise;\r\n }\r\n\r\n fetchUserList(organisationID: any, productID: any) {\r\n var uri = `api/user/getProposalReassignableOrganisationUsers/${organisationID}/${productID}`;\r\n\r\n return this.apiService\r\n .get(uri, {}, {})\r\n .pipe(map((response: any) => response.d));\r\n // .subscribe((result) => {\r\n //sosola: TODO\r\n // this.dictUserList[organisationID] = result.d;\r\n // deferred.resolve(result);\r\n // return result.d;\r\n // }\r\n }\r\n showErrorMessagePopup(error: any) {\r\n this.dialog.modalLarge(\r\n \"SharedLogoutMessage\",\r\n \"\",\r\n error,\r\n undefined,\r\n undefined,\r\n \"\",\r\n \"\",\r\n undefined,\r\n \"standardModal\"\r\n );\r\n }\r\n\r\n getUser(): Observable {\r\n var uri = \"api/user/get\";\r\n\r\n return this.apiService.get(uri, {}, {}).pipe(\r\n map((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n // return{\r\n // fetchBrokerList : fetchBrokerList,\r\n // fetchUserList : fetchUserList\r\n // }\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n//import { promises, resolve } from 'dns';\r\nimport { reject } from \"lodash\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { UserProfileModel } from \"../components/admin/user-profile/user-profile.model\";\r\nimport { ApiService } from \"./dal/api.service\";\r\nimport { DialogWrapperService } from \"./dialog/dialog-wrapper.service\";\r\nimport { ErrorHandlerService } from \"./error-handler/error-handler.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class UserProfileService extends ApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n errorHandlerService: ErrorHandlerService,\r\n dialog: DialogWrapperService\r\n ) {\r\n super(httpClient, errorHandlerService, dialog);\r\n }\r\n\r\n // var getOrganisationByGroupType = function (orgGroupType) {\r\n // // pageType 1 - from userprofile, pageType 0 - from IntermediaryProfile\r\n // // Considered this pageType as optional paramerter in server side code. So from intermediary profile page, no need to pass this as this is an optional field it will take zero.\r\n // // From userprofile page, this should be passed with 1\r\n // var uri = 'api/organisation/getOrganisationByGroupType/:type';\r\n // var params = {\r\n // type: orgGroupType,\r\n // pageType: 1\r\n // };\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var getOrganisationByGroupTypeRetrieveByCountry = function (orgGroupType, countryId) {\r\n // // pageType 1 - from userprofile, pageType 0 - from IntermediaryProfile\r\n // // Considered this pageType as optional paramerter in server side code. So from intermediary profile page, no need to pass this as this is an optional field it will take zero.\r\n // // From userprofile page, this should be passed with 1\r\n // var uri = 'api/organisation/getOrganisationByGroupTypeAndCountry/:type';\r\n // var params = {\r\n // type: orgGroupType,\r\n // pageType: 1,\r\n // countryId: countryId\r\n // };\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var getOrganisationById = function (organisationId) {\r\n\r\n // var uri = 'api/organisation/get/:organisationId';\r\n // var params = {\r\n // organisationId: organisationId\r\n // };\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var getProductsByOrganisation = function (organisationId,countryId) {\r\n // var uri = 'api/userProfile/getProductsByOrganisation/:organisationId';\r\n // var params = {\r\n // organisationId: organisationId\r\n // };\r\n\r\n // var data = {};\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // //DBS Admin Screen Enable Changes\r\n // //Products By Country And Organisation\r\n // var getProductsByOrganisationAndCountry = function (organisationId,countryId) {\r\n\r\n // var params = 'organisationId=' + organisationId + '&countryID=' + countryId;\r\n // var uri = 'api/userProfile/getProductsByOrganisationAndCountry?'+params;\r\n // params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // //DBS Admin Screen Enable Changes\r\n // //Roles API Call\r\n // var getRoles = function (selectedProducts,selectedUserType) {\r\n // var params = 'selectedProducts=' + selectedProducts +'&userType=' + selectedUserType;\r\n // var uri = 'api/userProfile/getRoles?'+params;\r\n // params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var populateOrganisation = function (orgGroupType, countryId) {\r\n // var deferred = $q.defer();\r\n\r\n // getOrganisationByGroupType(orgGroupType, countryId)\r\n // .then(function (result) {\r\n // var data = [];\r\n // angular.forEach(result.items, function (item) {\r\n // if(item.i != '1')//FP007222 Additional Work - Restrict Super Admin Organisation Selection For System Maintenance User\r\n // {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // }\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var populateOrganisationRetrieveByCountry = function (orgGroupType, countryId) {\r\n // var deferred = $q.defer();\r\n\r\n // getOrganisationByGroupTypeRetrieveByCountry(orgGroupType, countryId)\r\n // .then(function (result) {\r\n // var data = [];\r\n // angular.forEach(result.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var populateOrganisationById = function (orgId) {\r\n\r\n // var deferred = $q.defer();\r\n\r\n // getOrganisationById(orgId)\r\n // .then(function (orgType) {\r\n // var data = {\r\n // orgName: orgType.OrganisationDescription,\r\n // orgId: orgType.OrganisationID,\r\n // orgGroupId: orgType.OrganisationGroupID\r\n // }\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var populateProductsByOrganisation = function (orgId,countryId) {\r\n // var deferred = $q.defer();\r\n // getProductsByOrganisation(orgId,countryId)\r\n // .then(function (products) {\r\n // var data = [];\r\n // angular.forEach(products.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n // //DBS Admin Screen Enable Changes\r\n // //Promise To Call Products By Country And Organisation API\r\n // var populateProductsByOrganisationAndCountry = function (orgId,countryId) {\r\n // var deferred = $q.defer();\r\n // getProductsByOrganisationAndCountry(orgId,countryId)\r\n // .then(function (products) {\r\n // var data = [];\r\n // angular.forEach(products.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n // //DBS Admin Screen Enable Changes\r\n // //Promise To Call Roles API\r\n // var populateRoles = function (selectedProducts,selectedUserType) {\r\n // var deferred = $q.defer();\r\n // getRoles(selectedProducts,selectedUserType)\r\n // .then(function (roles) {\r\n // var data = [];\r\n // angular.forEach(roles.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // //FP007222 start\r\n // //TeamId Changes\r\n // //Promise To Call UserTeams API\r\n // var populateUserTeam = function () {\r\n // var deferred = $q.defer();\r\n // getUserTeam()\r\n // .then(function (teams) {\r\n // var data = [];\r\n // angular.forEach(teams.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // //TeamId Changes\r\n // //UserTeams API Call\r\n // var getUserTeam = function () {\r\n // var params = '';\r\n // var uri = 'api/userProfile/getUserTeam';\r\n // params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n // //FP007222 end\r\n\r\n // var saveUser = function (userModel) {\r\n // var deferred = $q.defer();\r\n // saveUserDetails(userModel)\r\n // .then(function (data) {\r\n // // var data = [];\r\n // //angular.forEach(products.items, function (item) {\r\n // // data.push({\r\n // // value: item.i,\r\n // // text: item.o\r\n // // })\r\n // // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // var saveUserDetails = function (model) {\r\n // var uri = 'api/userProfile/add/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, model);\r\n // }\r\n\r\n // var getMarketerTeamDetails = function () {\r\n\r\n // var uri = 'api/userProfile/getMarketerTeamList/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var populateMarketerTeamDetails = function () {\r\n // var deferred = $q.defer();\r\n\r\n // getMarketerTeamDetails()\r\n // .then(function (data) {\r\n // //var data = [];\r\n // //angular.forEach(data.MarketerTeamModel, function (item) {\r\n // // data.push({\r\n // // value: item.MarketerTeamId,\r\n // // text: item.TeamDescriptions\r\n // // })\r\n // //});\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var getAllProductList = function () {\r\n\r\n // var uri = 'api/misc/getItems/:type';\r\n // var params = {\r\n // type: Enums.multiOptions.PRODUCTS_ALL_LIST\r\n // };\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // };\r\n\r\n // var populateAllProducts = function () {\r\n // var deferred = $q.defer();\r\n\r\n // getAllProductList()\r\n // .then(function (model) {\r\n // var data = [];\r\n // angular.forEach(model.items, function (item) {\r\n // data.push({\r\n // value: item.ProductId,\r\n // text: item.ProductDescription\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var getAllOrganisationsByProducts = function (productsByOrganisation) {\r\n\r\n // //var uri = 'api/organisation/getAllOrganisationsByProducts/:products';\r\n // var uri = 'api/organisation/getAllOrganisationsByProducts/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, productsByOrganisation);\r\n // };\r\n\r\n // var populateOrganisationByProducts = function (productList) {\r\n // var deferred = $q.defer();\r\n\r\n // var productsByOrganisation = [];\r\n // angular.forEach(productList, function (item) {\r\n // productsByOrganisation.push({\r\n // value: item.value,\r\n // text: item.text\r\n // })\r\n // });\r\n\r\n // getAllOrganisationsByProducts(productsByOrganisation)\r\n // .then(function (model) {\r\n // var data = [];\r\n // angular.forEach(model.items, function (item) {\r\n // data.push({\r\n // value: item.i,\r\n // text: item.o\r\n // })\r\n // });\r\n\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n\r\n // return deferred.promise;\r\n // };\r\n\r\n // var saveDetails = function (model) {\r\n // var uri = 'api/userProfile/saveProfileDetails/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, model);\r\n // }\r\n // var saveProfileDetails = function (detailsModel) {\r\n // var deferred = $q.defer();\r\n // saveDetails(detailsModel)\r\n // .then(function (data) {\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // var getDetails = function () {\r\n // var uri = 'api/userProfile/getUserProfileDetails';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // }\r\n // var getProfileDetailsByUserId = function () {\r\n // var deferred = $q.defer();\r\n // getDetails()\r\n // .then(function (data) {\r\n // deferred.resolve(data);\r\n\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // var getAllOrganisationByBranch = function (organisationByBranch) {\r\n\r\n // //var uri = 'api/organisation/getAllOrganisationsByProducts/:products';\r\n // var uri = 'api/organisation/getAllOrganisationsByBranch/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, organisationByBranch);\r\n // };\r\n\r\n // var resetPasswordApi = function (resetPasswordModel) {\r\n // var uri = 'api/login/resetPassword/';\r\n // var params = {};\r\n // return Api.search(uri, params, resetPasswordModel);\r\n // }\r\n // var resetPassword = function (resetPasswordModel) {\r\n // var deferred = $q.defer();\r\n\r\n // resetPasswordApi(resetPasswordModel)\r\n // .then(function (data) {\r\n // deferred.resolve(data);\r\n // }, function (err) {\r\n // console.log(err);\r\n // deferred.reject(err);\r\n // });\r\n // return deferred.promise;\r\n // };\r\n\r\n // return {\r\n\r\n // getOrganisationByGroupType: getOrganisationByGroupType,\r\n // getOrganisationByGroupTypeRetrieveByCountry: getOrganisationByGroupTypeRetrieveByCountry,\r\n // populateOrganisation: populateOrganisation,\r\n // populateOrganisationById: populateOrganisationById,\r\n // populateOrganisationRetrieveByCountry: populateOrganisationRetrieveByCountry,\r\n // getOrganisationById: getOrganisationById,\r\n // populateProductsByOrganisation: populateProductsByOrganisation,\r\n // getProductsByOrganisation: getProductsByOrganisation,\r\n // populateProductsByOrganisationAndCountry: populateProductsByOrganisationAndCountry,//DBS Admin Screen Enable Changes\r\n // getProductsByOrganisationAndCountry: getProductsByOrganisationAndCountry,\r\n // populateRoles: populateRoles,//END\r\n // populateUserTeam:populateUserTeam,//FP007222 Changes\r\n // saveUserDetails: saveUserDetails,\r\n // saveUser: saveUser,\r\n // populateMarketerTeamDetails: populateMarketerTeamDetails,\r\n // getMarketerTeamDetails: getMarketerTeamDetails,\r\n // getAllProductList: getAllProductList,\r\n // populateAllProducts: populateAllProducts,\r\n // getAllOrganisationsByProducts: getAllOrganisationsByProducts,\r\n // populateOrganisationByProducts: populateOrganisationByProducts,\r\n // saveProfileDetails: saveProfileDetails,\r\n // getProfileDetailsByUserId: getProfileDetailsByUserId,\r\n // getAllOrganisationByBranch: getAllOrganisationByBranch,\r\n // resetPassword : resetPassword,\r\n\r\n // checkUserLogin: function (userLogin) {\r\n\r\n // var uri = 'api/userProfile/checkUserLogin/';\r\n // var params = {};\r\n // var data = {\r\n // userName: userLogin\r\n // };\r\n\r\n // return Api.search(uri, params, data);\r\n // },\r\n // getMarketerTeam: function () {\r\n\r\n // var uri = 'api/userProfile/getMarketerTeamList/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // saveMarketer: function (marketerModel) {\r\n // var uri = 'api/marketer/saveMarketer/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.add(uri, params, data);\r\n // },\r\n\r\n // searchUserList: function (searchText) {\r\n // var uri = 'api/userProfile/searchUsers/';\r\n // var params = {};\r\n // var data = {\r\n // searchText: searchText\r\n // };\r\n\r\n // return Api.search(uri, params, data);\r\n // },\r\n\r\n // searchUserProfileByUserId: function (userId) {\r\n // var uri = 'api/userProfile/searchUserProfileByUserId/';\r\n // var params = {};\r\n // var data = {\r\n // userId: userId\r\n // };\r\n\r\n // return Api.search(uri, params, data);\r\n // },\r\n\r\n // getAllCountryISO2s: function () {\r\n\r\n // var uri = 'api/userProfile/getAllCountryISO2s';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // getAllMarketerTeamManagers: function () {\r\n // var uri = 'api/userProfile/getAllMarketerTeamManagers';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // addNewMarketerTeam: function (model) {\r\n // var uri = 'api/marketer/addNewMarketerTeam/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, model);\r\n // },\r\n\r\n // getAllUnderwriterControlGroups: function () {\r\n\r\n // var uri = 'api/userProfile/getUnderwriterControlGroups';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // getAllUnderwriterControlGroupsByCountry: function (country) {\r\n\r\n // var uri = 'api/userProfile/getUnderwriterControlGroupsByCountry/:country';\r\n // var params = {\r\n // country: country\r\n // };\r\n // var data = {};\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // getGroupDetails: function (groupId) {\r\n\r\n // var uri = 'api/userProfile/getUnderwriterControlGroupDetails/:groupId';\r\n // var params = {\r\n // groupId: groupId\r\n // };\r\n // var data = {}\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n // //DBS Admin Screen Enable Changes\r\n // //Added This Code To Unlock The User\r\n // unlockUser: function (userId) {\r\n\r\n // var uri = 'api/userProfile/unlockUser/:userId';\r\n // var params = { userId: userId };\r\n // var data = {}\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n // getAccessControlGroups: function () {\r\n // var uri = 'api/userProfile/getAccessControlGroups';\r\n // var params = {};\r\n // var data = {}\r\n\r\n // return Api.get(uri, params, data);\r\n // },\r\n\r\n // overwriteUnderwriterGroupLimits: function (model) {\r\n // var uri = 'api/userProfile/updateLimitDetails/';\r\n // var params = {};\r\n // var data = {};\r\n\r\n // return Api.search(uri, params, model);\r\n // },\r\n\r\n // //ADB2C\r\n // CheckUniqueEmailIDPhoneNumber: function (userEmailID,usemobileNumber,userOrganisationGroupID,userOrganisationID,isEmail,countryISO) {\r\n\r\n // var uri = 'api/userProfile/CheckUniqueEmailIDPhoneNumber/';\r\n // var params = {};\r\n // var data = { userEmailID: userEmailID,userMobileNumber: usemobileNumber,userOrganisationGroupID:userOrganisationGroupID,userOrganisationID:userOrganisationID,isEmail: isEmail,countryISO:countryISO};\r\n\r\n // return Api.search(uri, params, data);\r\n // },\r\n\r\n // CheckEmailIDInADB2C: function (userEmailID,B2CACCESS_TOKEN) {\r\n\r\n // var uri = 'api/userProfile/CheckEmailIDInADB2C/';\r\n // var params = {};\r\n // var data = { userEmailID: userEmailID,b2cToken: B2CACCESS_TOKEN};\r\n\r\n // return Api.search(uri, params, data);\r\n // },\r\n\r\n GenerateUserIdToken(userEmailID: any) {\r\n var uri = \"api/userProfile/GenerateUserGuid/\";\r\n var params = {};\r\n var data = { userId: userEmailID };\r\n\r\n return this.search(uri, params, data);\r\n }\r\n\r\n GetUserRolesByEmail(userEmailID: any) {\r\n var uri = \"api/userProfile/GetUserRolesByEmail/\";\r\n var params = {};\r\n var data = { userEmailID: userEmailID };\r\n\r\n return this.search(uri, params, data);\r\n }\r\n\r\n SetDefaultUserRoles(userLogin: any) {\r\n var uri = \"api/userProfile/SetDefaultUserRoles/\";\r\n var params = {};\r\n var data = { userLogin: userLogin };\r\n\r\n return this.search(uri, params, data);\r\n }\r\n searchUserList(searchText: any) {\r\n var uri = \"api/userProfile/searchUsers/\";\r\n var params = {};\r\n var data = {\r\n searchText: searchText,\r\n };\r\n\r\n return this.search(uri, params, data);\r\n }\r\n searchUserProfileByUserId(userId: any) {\r\n var uri = \"api/userProfile/searchUserProfileByUserId/\";\r\n var params = {};\r\n var data = {\r\n userId: userId,\r\n };\r\n return this.search(uri, params, data);\r\n }\r\n //TeamId Changes\r\n //UserTeams API Call\r\n getUserTeam() {\r\n let uri = \"api/userProfile/getUserTeam\";\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri)\r\n );\r\n }\r\n getAccessControlGroups() {\r\n let uri = \"api/userProfile/getAccessControlGroups\";\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri)\r\n );\r\n }\r\n getProductsByOrganisationAndCountry(organisationId: any, countryId: any) {\r\n let uri = \"api/userProfile/getProductsByOrganisationAndCountry\";\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"organisationId\", organisationId);\r\n params = params.append(\"countryID\", countryId);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n params\r\n );\r\n }\r\n getRoles(selectedProducts: any, selectedUserType: any) {\r\n let uri = \"api/userProfile/getRoles\";\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"selectedProducts\", selectedProducts);\r\n params = params.append(\"userType\", selectedUserType);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n params\r\n );\r\n }\r\n saveUserDetails(model: UserProfileModel) {\r\n const postData = {\r\n userDetails: model.userDetails,\r\n person: model.person,\r\n subUser: model.subUser,\r\n userType: model.userType,\r\n };\r\n let uri = \"api/userProfile/add\";\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n checkUserLogin(userLogin: string) {\r\n var uri = \"api/userProfile/checkUserLogin\";\r\n const postData = {\r\n userName: userLogin,\r\n };\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n CheckEmailIDInADB2C(userEmailID: any, B2CACCESS_TOKEN: any) {\r\n const postData = {\r\n userEmailID: userEmailID,\r\n b2cToken: B2CACCESS_TOKEN,\r\n };\r\n let uri = \"api/userProfile/CheckEmailIDInADB2C\";\r\n return this.httpPostCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n postData\r\n );\r\n }\r\n getOrganisationByGroupType(orgGroupType: any) {\r\n var uri = \"api/organisation/getOrganisationByGroupType/\" + orgGroupType;\r\n let params = new HttpParams();\r\n // Begin assigning parameters\r\n params = params.append(\"type\", orgGroupType);\r\n params = params.append(\"pageType\", 1);\r\n return this.httpGetCall(\r\n this.getHeaderAsJson(),\r\n this.constructEndPoint(uri),\r\n params\r\n );\r\n }\r\n\r\n // //DBS Admin Screen Enable Changes\r\n // //Different Implementation Tried For Roles API\r\n // // getRoles: function () {\r\n // // var uri = 'api/userProfile/getRoles';\r\n // // var params = {};\r\n // // var data = {};\r\n\r\n // // return Api.get(uri, params, data);\r\n // // },\r\n\r\n // }\r\n}\r\n","export enum Culture {\r\n enSg\r\n}\r\n\r\nclass DateFormatter {\r\n format(value: Date, culture: Culture): string {\r\n const mm = value.getMonth() + 1; // getMonth() is zero-based\r\n const dd = value.getDate();\r\n const yyyy = value.getFullYear();\r\n\r\n switch (culture) {\r\n case Culture.enSg:\r\n return dd + '/' + mm + '/' + yyyy;\r\n\r\n default:\r\n throw Error('date culture unhandled');\r\n }\r\n }\r\n}\r\n\r\nexport const dateFormatter = new DateFormatter();\r\n","/** Common function for data type conversion */\r\n\r\ninterface Object {\r\n toNumber(): number;\r\n toBoolean(): boolean;\r\n /** Covert value to API recognized string value */\r\n toApiValue(): string;\r\n /** Check if is Date data type */\r\n isDate(): boolean;\r\n}\r\n\r\ninterface String {\r\n toNumber(): number;\r\n toBoolean(): boolean;\r\n /** Covert value to API recognized string value */\r\n toApiValue(): string;\r\n endsWith(suffix: string): boolean;\r\n}\r\n\r\ninterface Number {\r\n /** Covert value to API recognized string value */\r\n toApiValue(): string;\r\n toNumber(): number;\r\n}\r\n\r\ninterface Boolean {\r\n /** Covert value to API recognized string value */\r\n toApiValue(): string;\r\n}\r\n\r\ninterface Date {\r\n /** Covert value to API recognized string value */\r\n toApiValue(): string;\r\n}\r\n\r\nif (typeof String.prototype.endsWith !== \"function\") {\r\n String.prototype.endsWith = function (suffix) {\r\n return this.indexOf(suffix, this.length - suffix.length) !== -1;\r\n };\r\n}\r\n\r\nString.prototype.toNumber = function () {\r\n if (typeof this === \"undefined\" || this === null) {\r\n return 0;\r\n }\r\n\r\n let value = (this).replace(/[^0-9\\.-]+/g, \"\");\r\n\r\n if (value.length === 0) return 0;\r\n\r\n return parseFloat(value);\r\n};\r\n\r\n// Number.prototype.toNumber = function () {\r\n// return this;\r\n// };\r\n\r\nString.prototype.toBoolean = function () {\r\n if (typeof this === \"undefined\" || this === null) {\r\n return false;\r\n }\r\n\r\n let value = (this).trim().toLowerCase();\r\n\r\n if (value.length === 0) return false;\r\n if (value === \"1\") return true;\r\n if (value === \"0\") return false;\r\n if (value === \"true\") return true;\r\n if (value === \"false\") return false;\r\n\r\n throw \"value not convertible to boolean\";\r\n};\r\n\r\nBoolean.prototype.toApiValue = function (): string {\r\n return this ? \"true\" : \"false\";\r\n};\r\n\r\nNumber.prototype.toApiValue = function (): string {\r\n return this.toString();\r\n};\r\n\r\nDate.prototype.toApiValue = function (): string {\r\n let date = this;\r\n let year = date.getFullYear();\r\n let month = date.getMonth() + 1;\r\n let day = date.getDate();\r\n return `${year}-${month}-${day} 12:00:00 AM`;\r\n};\r\n\r\n//todo: this might cause issue to node_modules/@progress/kendo-date-math/dist/npm/tz/zoned-date.d.ts\r\n/** Native type prototype extends */\r\n// interface Date {\r\n// serverUiControlDateFormat(): string;\r\n// utcToLocal(): Date;\r\n// ToLocalDateText(): number;\r\n// toSystemDateFormat(): string;\r\n// }\r\n\r\n// Date.prototype.serverUiControlDateFormat = function () {\r\n// var str =\r\n// this.getFullYear() +\r\n// \"-\" +\r\n// (this.getMonth() + 1) +\r\n// \"-\" +\r\n// this.getDate() +\r\n// \" 12:00:00 AM\";\r\n// return str;\r\n// };\r\n\r\n// Date.prototype.utcToLocal = function () {\r\n// var newDate = new Date(this.getTime() + this.getTimezoneOffset() * 60 * 1000);\r\n\r\n// var offset = this.getTimezoneOffset() / 60;\r\n// var hours = this.getHours();\r\n\r\n// newDate.setHours(hours - offset);\r\n\r\n// return newDate;\r\n// };\r\n\r\n// Date.prototype.ToLocalDateText = function () {\r\n// var str = Date.UTC(\r\n// this.getFullYear(),\r\n// this.getMonth(),\r\n// this.getDate(),\r\n// this.getHours(),\r\n// this.getMinutes(),\r\n// this.getSeconds(),\r\n// this.getMilliseconds()\r\n// );\r\n// return str;\r\n// };\r\n\r\n// Date.prototype.toSystemDateFormat = function () {\r\n// return (\r\n// this.getFullYear() + \"-\" + (this.getMonth() + 1) + \"-\" + this.getDate()\r\n// );\r\n// };\r\n\r\nif (typeof String.prototype.trim !== \"function\") {\r\n String.prototype.trim = function () {\r\n return this.replace(/^\\s+|\\s+$/g, \"\");\r\n };\r\n}\r\n\r\n/** cmwanx: temporary put angular bootstrap here.\r\n * because this is the last file of ams script bundler load\r\n */\r\n//angular.bootstrap(document.documentElement, ['app']);\r\n","// 'use strict';\r\n\r\nimport { IIdentity } from \"../framework/interface.shared\";\r\n\r\n// import * as Dialog from '../application/core/components/dialog/dialog';\r\n\r\n// import { AppSettings } from '../appSettings';\r\n// import { Application } from '../application';\r\nimport \"../shared/ext/extensions\";\r\n// let angular: ng.IAngularStatic = Application.angular;\r\n\r\nclass Global {\r\n public static readonly DEFAULT_GUID: string =\r\n \"00000000-0000-0000-0000-000000000000\";\r\n\r\n // /** Variable to stored dialog */\r\n // private _dialog: Dialog.IDialog;\r\n\r\n // /** Running number pool, for unique id generation purposes */\r\n // private static _numPool: number = 0;\r\n\r\n // detectBrowserMode(): void {\r\n // return window[\"myapp\"].detectBrowserMode();\r\n // }\r\n\r\n // static validateIE11() {\r\n // return (!!navigator.userAgent.match(/Trident\\/7\\./));\r\n // }\r\n\r\n // /** Open Processing modal window to block user from interact with the UI */\r\n // openProcessingModal(processingMsg?: string): void {\r\n // if (!angular.isDefined(processingMsg))\r\n // processingMsg = 'Processing...';\r\n\r\n // let data = { msg: \"\" };\r\n // data.msg = processingMsg;\r\n // this._dialog = Dialog.DialogModal.Instance.modalMedium(\r\n // 'shared/uiControls/dialog/partials/customModal.html',\r\n // 'CustomModalController',\r\n // data, undefined, undefined, undefined, undefined, false, 'standardModal');\r\n\r\n // };\r\n\r\n // public static session: { [key: string]: any; } = {};\r\n\r\n // static isReleaseMode(): boolean {\r\n // const key: string = \"IsReleaseMode\";\r\n // if (Global.isDefined(this.session[key])) {\r\n // return this.session[key];\r\n // }\r\n\r\n // this.session[key] = AppSettings.appSettings.environment.toLowerCase() === 'release';\r\n // return this.session[key];\r\n // }\r\n\r\n // static openProcessingOverlay(): void {\r\n // $(\".overlay\").show();\r\n // /*to disable the scrollbar*/\r\n // $('html, body').css('overflow', 'hidden');\r\n // }\r\n\r\n // static closeProcessingOverlay(): void {\r\n // /*to enable the scrollbar*/\r\n // $('html, body').css('overflow', 'auto');\r\n // $(\".overlay\").hide();\r\n // }\r\n\r\n // /** Close opened Processing modal window */\r\n // closeProcessingModal(): void {\r\n\r\n // if (angular.isDefined(this._dialog)) {\r\n // this._dialog.close('processing done');\r\n // this._dialog = undefined;\r\n // }\r\n // }\r\n\r\n // static getQueryStringValue(key) {\r\n // return decodeURIComponent(window.location.search.replace(new RegExp(\"^(?:.*[&\\\\?]\" + encodeURIComponent(key).replace(/[\\.\\+\\*]/g, \"\\\\$&\") + \"(?:\\\\=([^&]*))?)?.*$\", \"i\"), \"$1\"));\r\n // }\r\n\r\n // static formatDateToString(date): string {\r\n // // 01, 02, 03, ... 29, 30, 31\r\n // let dd = (new Date(date).getDate() < 10 ? '0' : '') + new Date(date).getDate();\r\n // // 01, 02, 03, ... 10, 11, 12\r\n // let MM = ((new Date(date).getMonth() + 1) < 10 ? '0' : '') + (new Date(date).getMonth() + 1);\r\n // // 1970, 1971, ... 2015, 2016, ...\r\n // let yyyy = new Date(date).getFullYear();\r\n\r\n // // create the format you want\r\n // return (yyyy + \"-\" + MM + \"-\" + dd);\r\n // }\r\n\r\n // static convertDateToDDMMYYYY(date): string {\r\n // // 01, 02, 03, ... 29, 30, 31\r\n // let dateSplit = date.split('-');\r\n // return dateSplit[2] + '-' + dateSplit[1] + '-' + dateSplit[0];\r\n // }\r\n\r\n // static generateUniqueId(): number {\r\n // this._numPool++;\r\n // return this._numPool;\r\n // }\r\n\r\n // /** Method to deep clone an object */\r\n // static objClone(objectToClone) {\r\n\r\n // if (!this.isDefined(objectToClone)\r\n // && !this.isObject(objectToClone)) {\r\n // return objectToClone;\r\n // }\r\n\r\n // let clone = {};\r\n // Application.angular.copy(objectToClone, clone);\r\n\r\n // return clone;\r\n // };\r\n\r\n // /** Method to deep clone an object */\r\n // static arrayClone(arrayToClone) {\r\n\r\n // if (!this.isDefined(arrayToClone)\r\n // && !Application.angular.isArray(arrayToClone)) {\r\n // return arrayToClone;\r\n // }\r\n\r\n // let clone = [];\r\n // Application.angular.copy(arrayToClone, clone);\r\n\r\n // return clone;\r\n // };\r\n\r\n // /** Trim text */\r\n // static trim(text): string {\r\n // if (!angular.isDefined(text))\r\n // return '';\r\n // var trimText = text.toString();\r\n // return trimText.replace(/^\\s+|\\s+$/g, '');\r\n // };\r\n\r\n // public trim(text): string {\r\n // if (!angular.isDefined(text))\r\n // return '';\r\n // var trimText = text.toString();\r\n // return trimText.replace(/^\\s+|\\s+$/g, '');\r\n // };\r\n\r\n /** Check if is Date data type */\r\n static isDate(value: number | Object): boolean {\r\n return value instanceof Date && !isNaN(value.valueOf());\r\n }\r\n\r\n /** Check if is Object data type */\r\n static isObject(value: null): boolean {\r\n // http://jsperf.com/isobject4\r\n return value !== null && typeof value === \"object\";\r\n }\r\n\r\n // /** Check if is string type */\r\n // static isString(value): boolean {\r\n // // http://jsperf.com/isobject4\r\n // return value !== null && typeof value === 'string';\r\n // };\r\n\r\n // /** Convert object to \"\" if undefined/null, otherwise to normal string */\r\n // static toNullString(value: any): string {\r\n // if (this.isUndefined(value)) return \"\";\r\n // return value.toString();\r\n // };\r\n\r\n /** Map between string \"1\" and \"0\" TO true and false */\r\n static toBoolean(value: string): boolean {\r\n if (Global.isDefined(value)) return value.toBoolean();\r\n return false;\r\n }\r\n\r\n // /** check if value is json string */\r\n // static isJSON(str: any): boolean {\r\n // try {\r\n // JSON.parse(str);\r\n // if (!isNaN(parseInt(JSON.parse(str)))) {\r\n // return false;\r\n // }\r\n // } catch (e) {\r\n // return false;\r\n // }\r\n // return true;\r\n // }\r\n\r\n /** Function to serialize object to string */\r\n static objectToJson(value: any): string {\r\n if (Global.isObject(value)) {\r\n return JSON.stringify(value);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n // /** Function to json string to object */\r\n // static jsonToOBject(value: any): T {\r\n // if (Global.isUndefined(value)) {\r\n // return value;\r\n // }\r\n // return JSON.parse(value);\r\n // }\r\n\r\n static convertToApiStandardValue(value: Object): string {\r\n let typeOf: string = typeof value;\r\n\r\n if (this.isDate(value)) {\r\n typeOf = \"date\";\r\n }\r\n\r\n switch (typeOf) {\r\n case \"string\":\r\n return value.toString();\r\n\r\n case \"number\":\r\n return (value).toApiValue();\r\n\r\n case \"boolean\":\r\n return (value).toApiValue();\r\n\r\n case \"date\":\r\n return (value).toApiValue();\r\n\r\n case \"object\":\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n return Global.objectToJson(value);\r\n }\r\n\r\n static isDefined(valueToCheck: any | null): boolean {\r\n if (typeof valueToCheck !== \"undefined\" && valueToCheck !== null)\r\n return true;\r\n else return false;\r\n }\r\n\r\n static isUndefined(valueToCheck: any | null): boolean {\r\n return !Global.isDefined(valueToCheck);\r\n }\r\n\r\n // static isFunction(valueToCheck): boolean {\r\n // if (angular.isFunction(valueToCheck))\r\n // return true;\r\n // else return false;\r\n // }\r\n\r\n // static groupBy(list: Array, groupByProperty: any) {\r\n // let groups = Array;\r\n // list.forEach((o) => {\r\n\r\n // let groupValue = o[groupByProperty];\r\n // if (Global.isDefined(groupValue) && groupValue != \"\") {\r\n // groups[groupValue] = groups[groupValue] || [];\r\n // if (groups[groupValue].length >= 0) {\r\n // return;\r\n // } else {\r\n // groups[groupValue].push(o[groupByProperty]);\r\n // }\r\n // }\r\n\r\n // });\r\n // return Object.keys(groups).map(function (group) {\r\n\r\n // return groups[group];\r\n // })\r\n // }\r\n\r\n // static arraySortAscending(value: number[]) {\r\n // value.sort((n1, n2) => {\r\n // if (n1 > n2) {\r\n // return 1;\r\n // }\r\n\r\n // if (n1 < n2) {\r\n // return -1;\r\n // }\r\n\r\n // return 0;\r\n // });\r\n // }\r\n\r\n // /** Method to destroy on screen KendoUi component */\r\n // static kendoUiDestroy() {\r\n // let kendoDropDownList = $('[controlType=\"kendoDropDownList\"]').data('kendoDropDownList');\r\n // if (kendoDropDownList) {\r\n // kendoDropDownList.destroy();\r\n // kendo.destroy(kendoDropDownList.wrapper);\r\n // kendoDropDownList.wrapper.remove();\r\n // }\r\n\r\n // let kendoNumericTextBox = $('[controlType=\"kendoNumericTextBox\"]').data('kendoNumericTextBox');\r\n // if (kendoNumericTextBox) {\r\n // kendoNumericTextBox.destroy();\r\n // kendo.destroy(kendoNumericTextBox.wrapper);\r\n // kendoNumericTextBox.wrapper.remove();\r\n // }\r\n // }\r\n}\r\n\r\nexport { Global };\r\n","/**\r\n * LinQ to TypeScript\r\n *\r\n * Documentation from LinQ .NET specification (https://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspx)\r\n *\r\n * Created by Flavio Corpa (@kutyel)\r\n * Copyright © 2016 Flavio Corpa. All rights reserved.\r\n *\r\n */\r\nexport class List {\r\n protected _elements: T[];\r\n\r\n /**\r\n * Defaults the elements of the list\r\n */\r\n constructor(elements: T[] = []) {\r\n this._elements = elements;\r\n }\r\n\r\n /**\r\n * Adds an object to the end of the List.\r\n */\r\n public Add(element: T): void {\r\n this._elements.push(element);\r\n }\r\n\r\n /**\r\n * Adds the elements of the specified collection to the end of the List.\r\n */\r\n public AddRange(elements: T[]): void {\r\n this._elements.push(...elements);\r\n }\r\n\r\n // /**\r\n // * Applies an accumulator function over a sequence.\r\n // */\r\n // public Aggregate(\r\n // accumulator: (accum: U, value?: T, index?: number, list?: T[]) => any,\r\n // initialValue?: U\r\n // ): any {\r\n // return this._elements.reduce(accumulator, initialValue);\r\n // }\r\n\r\n /**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n */\r\n public All(\r\n predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n ): boolean {\r\n return this._elements.every(predicate);\r\n }\r\n\r\n /**\r\n * Determines whether a sequence contains any elements.\r\n */\r\n public Any(): boolean;\r\n public Any(\r\n predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n ): boolean;\r\n public Any(\r\n predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n ): boolean {\r\n return predicate\r\n ? this._elements.some(predicate)\r\n : this._elements.length > 0;\r\n }\r\n\r\n // /**\r\n // * Computes the average of a sequence of number values that are obtained by invoking\r\n // * a transform function on each element of the input sequence.\r\n // */\r\n // public Average(): number;\r\n // public Average(\r\n // transform: (value?: T, index?: number, list?: T[]) => any\r\n // ): number;\r\n // public Average(\r\n // transform?: (value?: T, index?: number, list?: T[]) => any\r\n // ): number {\r\n // return this.Sum(transform) / this.Count(transform);\r\n // }\r\n\r\n /**\r\n * Casts the elements of a sequence to the specified type.\r\n */\r\n public Cast(): List {\r\n return new List(this._elements as any);\r\n }\r\n\r\n /**\r\n * Concatenates two sequences.\r\n */\r\n public Concat(list: List): List {\r\n return new List(this._elements.concat(list.ToArray()));\r\n }\r\n\r\n /**\r\n * Determines whether an element is in the List.\r\n */\r\n public Contains(element: T): boolean {\r\n return this._elements.some((x) => x === element);\r\n }\r\n\r\n /**\r\n * Returns the number of elements in a sequence.\r\n */\r\n public Count(): number;\r\n public Count(\r\n predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n ): number;\r\n public Count(\r\n predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n ): number {\r\n return predicate ? this.Where(predicate).Count() : this._elements.length;\r\n }\r\n\r\n // /**\r\n // * Returns the elements of the specified sequence or the type parameter's default value\r\n // * in a singleton collection if the sequence is empty.\r\n // */\r\n // public DefaultIfEmpty(defaultValue?: T): List {\r\n // return this.Count() ? this : new List([defaultValue]);\r\n // }\r\n\r\n // /**\r\n // * Returns distinct elements from a sequence by using the default equality comparer to compare values.\r\n // */\r\n // public Distinct(): List {\r\n // return this.Where((value, index, iter) => iter?.indexOf(value) === index);\r\n // }\r\n\r\n // /**\r\n // * Returns distinct elements from a sequence according to specified key selector.\r\n // */\r\n // public DistinctBy(keySelector: (key: T) => any): List {\r\n // const groups = this.GroupBy(keySelector, obj => obj);\r\n // const results = new List();\r\n // for (const index in groups) {\r\n // if (groups.hasOwnProperty(index)) {\r\n // results.Add(groups[index][0]);\r\n // }\r\n // }\r\n // return results;\r\n // }\r\n\r\n /**\r\n * Returns the element at a specified index in a sequence.\r\n */\r\n public ElementAt(index: number): T {\r\n if (index < this.Count()) {\r\n return this._elements[index];\r\n } else {\r\n const MSG =\r\n \"ArgumentOutOfRangeException: index is less than 0 or greater than or equal to the number of elements in source.\";\r\n throw new Error(MSG);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the element at a specified index in a sequence or a default value if the index is out of range.\r\n */\r\n public ElementAtOrDefault(index: number): T | undefined {\r\n return this.ElementAt(index) || undefined;\r\n }\r\n\r\n /**\r\n * Produces the set difference of two sequences by using the default equality comparer to compare values.\r\n */\r\n public Except(source: List): List {\r\n return this.Where((x) => !source.Contains(x));\r\n }\r\n\r\n /**\r\n * Returns the first element of a sequence.\r\n */\r\n public First(): T;\r\n public First(\r\n predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n ): T;\r\n public First(\r\n predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n ): T {\r\n if (this.Count()) {\r\n return predicate ? this.Where(predicate).First() : this._elements[0];\r\n } else {\r\n throw new Error(\r\n \"InvalidOperationException: The source sequence is empty.\"\r\n );\r\n }\r\n }\r\n\r\n // /**\r\n // * Returns the first element of a sequence, or a default value if the sequence contains no elements.\r\n // */\r\n // public FirstOrDefault(): T;\r\n // public FirstOrDefault(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T;\r\n // public FirstOrDefault(\r\n // predicate? : (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T | undefined{\r\n // return this.Count(predicate) ? this.First(predicate) : undefined;\r\n // }\r\n\r\n /**\r\n * Performs the specified action on each element of the List.\r\n */\r\n public ForEach(action: (value?: T, index?: number, list?: T[]) => any): void {\r\n return this._elements.forEach(action);\r\n }\r\n\r\n // /**\r\n // * Groups the elements of a sequence according to a specified key selector function.\r\n // */\r\n // public GroupBy(grouper: (key: T | undefined) => any, mapper: (element: T) => any): any {\r\n // return this.Aggregate(\r\n // (ac, v) => (\r\n // (ac as any)[grouper(v)]\r\n // ? (ac as any)[grouper(v)].push(mapper(v))\r\n // : ((ac as any)[grouper(v)] = [mapper(v)]),\r\n // ac\r\n // ),\r\n // {}\r\n // );\r\n // }\r\n\r\n // /**\r\n // * Correlates the elements of two sequences based on equality of keys and groups the results.\r\n // * The default equality comparer is used to compare keys.\r\n // */\r\n // public GroupJoin(\r\n // list: List,\r\n // key1: (k: T) => any,\r\n // key2: (k: U) => any,\r\n // result: (first: T, second: List) => any\r\n // ): List {\r\n // return this.Select((x, y) =>\r\n // result(x, list.Where(z => key1(x) === key2(z)))\r\n // );\r\n // }\r\n\r\n /**\r\n * Returns the index of the first occurence of an element in the List.\r\n */\r\n public IndexOf(element: T): number {\r\n return this._elements.indexOf(element);\r\n }\r\n\r\n /**\r\n * Inserts an element into the List at the specified index.\r\n */\r\n public Insert(index: number, element: T): void | Error {\r\n if (index < 0 || index > this._elements.length) {\r\n throw new Error(\"Index is out of range.\");\r\n }\r\n\r\n this._elements.splice(index, 0, element);\r\n }\r\n\r\n // /**\r\n // * Produces the set intersection of two sequences by using the default equality comparer to compare values.\r\n // */\r\n // public Intersect(source: List): List {\r\n // return this.Where(x => source.Contains(x));\r\n // }\r\n\r\n // /**\r\n // * Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.\r\n // */\r\n // public Join(\r\n // list: List,\r\n // key1: (key: T) => any,\r\n // key2: (key: U) => any,\r\n // result: (first: T, second: U) => any\r\n // ): List {\r\n // return this.SelectMany(x =>\r\n // list.Where(y => key2(y) === key1(x)).Select(z => result(x, z))\r\n // );\r\n // }\r\n\r\n /**\r\n * Returns the last element of a sequence.\r\n */\r\n public Last(): T;\r\n public Last(predicate: (value?: T, index?: number, list?: T[]) => boolean): T;\r\n public Last(\r\n predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n ): T {\r\n if (this.Count()) {\r\n return predicate\r\n ? this.Where(predicate).Last()\r\n : this._elements[this.Count() - 1];\r\n } else {\r\n throw Error(\"InvalidOperationException: The source sequence is empty.\");\r\n }\r\n }\r\n\r\n // /**\r\n // * Returns the last element of a sequence, or a default value if the sequence contains no elements.\r\n // */\r\n // public LastOrDefault(): T;\r\n // public LastOrDefault(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T;\r\n // public LastOrDefault(\r\n // predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T {\r\n // return this.Count(predicate) ? this.Last(predicate) : undefined;\r\n // }\r\n\r\n // /**\r\n // * Returns the maximum value in a generic sequence.\r\n // */\r\n // public Max(): T {\r\n // return this.Aggregate((x, y) => (x > y ? x : y));\r\n // }\r\n\r\n // /**\r\n // * Returns the minimum value in a generic sequence.\r\n // */\r\n // public Min(): T {\r\n // return this.Aggregate((x, y) => (x < y ? x : y));\r\n // }\r\n\r\n /**\r\n * Filters the elements of a sequence based on a specified type.\r\n */\r\n public OfType(type: any): List {\r\n let typeName: any;\r\n switch (type) {\r\n case Number:\r\n typeName = typeof 0;\r\n break;\r\n case String:\r\n typeName = typeof \"\";\r\n break;\r\n case Boolean:\r\n typeName = typeof true;\r\n break;\r\n case Function:\r\n typeName = typeof function () {}; // tslint:disable-line no-empty\r\n break;\r\n default:\r\n typeName = null;\r\n break;\r\n }\r\n return typeName === null\r\n ? this.Where((x) => x instanceof type).Cast()\r\n : this.Where((x) => typeof x === typeName).Cast();\r\n }\r\n\r\n /**\r\n * Sorts the elements of a sequence in ascending order according to a key.\r\n */\r\n public OrderBy(keySelector: (key: T) => any): List {\r\n return new OrderedList(\r\n this._elements,\r\n ComparerHelper.ComparerForKey(keySelector, false)\r\n );\r\n }\r\n\r\n /**\r\n * Sorts the elements of a sequence in descending order according to a key.\r\n */\r\n public OrderByDescending(keySelector: (key: T) => any): List {\r\n return new OrderedList(\r\n this._elements,\r\n ComparerHelper.ComparerForKey(keySelector, true)\r\n );\r\n }\r\n\r\n /**\r\n * Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.\r\n */\r\n public ThenBy(keySelector: (key: T) => any): List {\r\n return this.OrderBy(keySelector);\r\n }\r\n\r\n /**\r\n * Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.\r\n */\r\n public ThenByDescending(keySelector: (key: T) => any): List {\r\n return this.OrderByDescending(keySelector);\r\n }\r\n\r\n /**\r\n * Removes the first occurrence of a specific object from the List.\r\n */\r\n public Remove(element: T): boolean {\r\n return this.IndexOf(element) !== -1\r\n ? (this.RemoveAt(this.IndexOf(element)), true)\r\n : false;\r\n }\r\n\r\n // /**\r\n // * Removes all the elements that match the conditions defined by the specified predicate.\r\n // */\r\n // public RemoveAll(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): List {\r\n // return this.Where(this._negate(predicate));\r\n // }\r\n\r\n /**\r\n * Removes the element at the specified index of the List.\r\n */\r\n public RemoveAt(index: number): void {\r\n this._elements.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Reverses the order of the elements in the entire List.\r\n */\r\n public Reverse(): List {\r\n return new List(this._elements.reverse());\r\n }\r\n\r\n /**\r\n * Projects each element of a sequence into a new form.\r\n */\r\n public Select(\r\n mapper: (value?: T, index?: number, list?: T[]) => TOut\r\n ): List {\r\n return new List(this._elements.map(mapper));\r\n }\r\n\r\n // /**\r\n // * Projects each element of a sequence to a List and flattens the resulting sequences into one sequence.\r\n // */\r\n // public SelectMany>(\r\n // mapper: (value?: T, index?: number, list?: T[]) => TOut\r\n // ): TOut {\r\n // return this.Aggregate(\r\n // (ac, v, i) => (\r\n // ac.AddRange(\r\n // this.Select(mapper)\r\n // .ElementAt(i)\r\n // .ToArray()\r\n // ),\r\n // ac\r\n // ),\r\n // new List()\r\n // );\r\n // }\r\n\r\n // /**\r\n // * Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.\r\n // */\r\n // public SequenceEqual(list: List): boolean {\r\n // return !!this._elements.reduce(\r\n // (x, y, z) => (list._elements[z] === y ? x : undefined)\r\n // );\r\n // }\r\n\r\n // /**\r\n // * Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.\r\n // */\r\n // public Single(\r\n // predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T {\r\n // if (this.Count(predicate) !== 1) {\r\n // throw new Error('The collection does not contain exactly one element.');\r\n // } else {\r\n // return this.First(predicate);\r\n // }\r\n // }\r\n\r\n // /**\r\n // * Returns the only element of a sequence, or a default value if the sequence is empty;\r\n // * this method throws an exception if there is more than one element in the sequence.\r\n // */\r\n // public SingleOrDefault(\r\n // predicate?: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): T {\r\n // return this.Count(predicate) ? this.Single(predicate) : undefined;\r\n // }\r\n\r\n /**\r\n * Bypasses a specified number of elements in a sequence and then returns the remaining elements.\r\n */\r\n public Skip(amount: number): List {\r\n return new List(this._elements.slice(Math.max(0, amount)));\r\n }\r\n\r\n // /**\r\n // * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n // */\r\n // public SkipWhile(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): List {\r\n // return this.Skip(\r\n // this.Aggregate(\r\n // (ac, val) => (predicate(this.ElementAt(ac)) ? ++ac : ac),\r\n // 0\r\n // )\r\n // );\r\n // }\r\n\r\n // /**\r\n // * Computes the sum of the sequence of number values that are obtained by invoking\r\n // * a transform function on each element of the input sequence.\r\n // */\r\n // public Sum(): number;\r\n // public Sum(\r\n // transform: (value?: T, index?: number, list?: T[]) => number\r\n // ): number;\r\n // public Sum(\r\n // transform?: (value?: T, index?: number, list?: T[]) => number\r\n // ): number {\r\n // return transform\r\n // ? this.Select(transform).Sum()\r\n // : this.Aggregate((ac, v) => (ac += +v), 0);\r\n // }\r\n\r\n /**\r\n * Returns a specified number of contiguous elements from the start of a sequence.\r\n */\r\n public Take(amount: number): List {\r\n return new List(this._elements.slice(0, Math.max(0, amount)));\r\n }\r\n\r\n // /**\r\n // * Returns elements from a sequence as long as a specified condition is true.\r\n // */\r\n // public TakeWhile(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): List {\r\n // return this.Take(\r\n // this.Aggregate(\r\n // (ac, val) => (predicate(this.ElementAt(ac)) ? ++ac : ac),\r\n // 0\r\n // )\r\n // );\r\n // }\r\n\r\n /**\r\n * Copies the elements of the List to a new array.\r\n */\r\n public ToArray(): T[] {\r\n return this._elements;\r\n }\r\n\r\n // /**\r\n // * Creates a Dictionary from a List according to a specified key selector function.\r\n // */\r\n // public ToDictionary(key: (key: T) => TKey): { [id: string]: T };\r\n // public ToDictionary(\r\n // key: (key: T) => TKey,\r\n // value: (value: T) => TValue\r\n // ): { [id: string]: TValue };\r\n // public ToDictionary(\r\n // key: (key: T) => TKey,\r\n // value?: (value: T) => TValue\r\n // ): { [id: string]: TValue | T } {\r\n // return this.Aggregate(\r\n // (o, v, i) => (\r\n // ((o as any)[\r\n // this.Select(key)\r\n // .ElementAt(i)\r\n // .toString()\r\n // ] = value ? this.Select(value).ElementAt(i) : v),\r\n // o\r\n // ),\r\n // {}\r\n // );\r\n // }\r\n\r\n /**\r\n * Creates a List from an Enumerable.List.\r\n */\r\n public ToList(): List {\r\n return this;\r\n }\r\n\r\n // /**\r\n // * Creates a Lookup from an IEnumerable according to specified key selector and element selector functions.\r\n // */\r\n // public ToLookup(\r\n // keySelector: (key: T) => any,\r\n // elementSelector: (element: T) => any\r\n // ): any {\r\n // return this.GroupBy(keySelector, elementSelector);\r\n // }\r\n\r\n // /**\r\n // * Produces the set union of two sequences by using the default equality comparer.\r\n // */\r\n // public Union(list: List): List {\r\n // return this.Concat(list).Distinct();\r\n // }\r\n\r\n /**\r\n * Filters a sequence of values based on a predicate.\r\n */\r\n public Where(\r\n predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n ): List {\r\n return new List(this._elements.filter(predicate));\r\n }\r\n\r\n // /**\r\n // * Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.\r\n // */\r\n // public Zip(\r\n // list: List,\r\n // result: (first: T, second: U) => TOut\r\n // ): List {\r\n // return list.Count() < this.Count()\r\n // ? list.Select((x, y) => result(this.ElementAt(y), x))\r\n // : this.Select((x, y) => result(x, list.ElementAt(y)));\r\n // }\r\n\r\n // /**\r\n // * Creates a function that negates the result of the predicate\r\n // */\r\n // private _negate(\r\n // predicate: (value?: T, index?: number, list?: T[]) => boolean\r\n // ): () => any {\r\n // return function (): any {\r\n // return !predicate.apply(this, arguments);\r\n // };\r\n // }\r\n}\r\n\r\nclass ComparerHelper {\r\n public static ComparerForKey(\r\n _keySelector: (key: T) => any,\r\n descending?: boolean\r\n ): (a: T, b: T) => number {\r\n return (a: T, b: T) => {\r\n return ComparerHelper.Compare(a, b, _keySelector, descending);\r\n };\r\n }\r\n\r\n public static Compare(\r\n a: T,\r\n b: T,\r\n _keySelector: (key: T) => any,\r\n descending?: boolean\r\n ): number {\r\n const sortKeyA = _keySelector(a);\r\n const sortKeyB = _keySelector(b);\r\n if (sortKeyA > sortKeyB) {\r\n if (!descending) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n } else if (sortKeyA < sortKeyB) {\r\n if (!descending) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n public static ComposeComparers(\r\n previousComparer: (a: T, b: T) => number,\r\n currentComparer: (a: T, b: T) => number\r\n ): (a: T, b: T) => number {\r\n return (a: T, b: T) => {\r\n const resultOfPreviousComparer = previousComparer(a, b);\r\n if (!resultOfPreviousComparer) {\r\n return currentComparer(a, b);\r\n } else {\r\n return resultOfPreviousComparer;\r\n }\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Represents a sorted sequence. The methods of this class are implemented by using deferred execution.\r\n * The immediate return value is an object that stores all the information that is required to perform the action.\r\n * The query represented by this method is not executed until the object is enumerated either by\r\n * calling its ToDictionary, ToLookup, ToList or ToArray methods\r\n */\r\nclass OrderedList extends List {\r\n constructor(elements: T[], private _comparer: (a: T, b: T) => number) {\r\n super(elements);\r\n this._elements.sort(this._comparer);\r\n }\r\n\r\n /**\r\n * Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.\r\n * @override\r\n */\r\n public override ThenBy(keySelector: (key: T) => any): List {\r\n return new OrderedList(\r\n this._elements,\r\n ComparerHelper.ComposeComparers(\r\n this._comparer,\r\n ComparerHelper.ComparerForKey(keySelector, false)\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.\r\n * @override\r\n */\r\n public override ThenByDescending(keySelector: (key: T) => any): List {\r\n return new OrderedList(\r\n this._elements,\r\n ComparerHelper.ComposeComparers(\r\n this._comparer,\r\n ComparerHelper.ComparerForKey(keySelector, true)\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport class Enumerable {\r\n /**\r\n * Generates a sequence of integral numbers within a specified range.\r\n */\r\n public static Range(start: number, count: number): List {\r\n const result = new List();\r\n while (count--) {\r\n result.Add(start++);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Generates a sequence that contains one repeated value.\r\n */\r\n public static Repeat(element: T, count: number): List {\r\n const result = new List();\r\n while (count--) {\r\n result.Add(element);\r\n }\r\n return result;\r\n }\r\n}\r\n","import { Identity } from \"./identity\";\r\nimport { UserType } from \"./../../framework/enum.shared\";\r\n\r\nexport class IdentityRole {\r\n public isUnderwriter: boolean = false;\r\n public isBroker: boolean = false;\r\n public isAdmin: boolean = false;\r\n public hasProductReadWriteRoles: boolean = false;\r\n public hasProductTransactRoles: boolean = false;\r\n public hasFinanceAccountingRoles: boolean = false;\r\n\r\n public isMaker: boolean = false;\r\n public isChecker: boolean = false;\r\n public isClaimant: boolean = false;\r\n public isInternalUser: boolean = false;\r\n public isPrimaryInternalUser: boolean = false;\r\n public isFinanceAccounting: boolean = false;\r\n public isProductReadOnly: boolean = false;\r\n public isReporter: boolean = false;\r\n public isExportReporter: boolean = false;\r\n public isOperationUnderwriter: boolean = false;\r\n public IsCbsOps: boolean = false;\r\n public IsCSCBGSG: boolean = false;\r\n public IsHASEUser: boolean = false;\r\n\r\n private userType?: UserType;\r\n\r\n constructor(private identity: Identity) {\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.userType = this.identity.currentUser().userType;\r\n switch (this.userType) {\r\n case UserType.Underwriter:\r\n this.isUnderwriter = true;\r\n break;\r\n\r\n case UserType.Broker:\r\n this.isBroker = true;\r\n break;\r\n\r\n case UserType.Admin:\r\n this.isAdmin = true;\r\n break;\r\n\r\n default:\r\n // do nothing\r\n break;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"PolicySubmissionMaker\")) {\r\n this.isMaker = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"PolicySubmissionChecker\")) {\r\n this.isChecker = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"PolicyClaims\")) {\r\n this.isClaimant = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"InternalUser\")) {\r\n this.isInternalUser = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"PrimaryInternalUser\")) {\r\n this.isPrimaryInternalUser = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"FinanceAccounting\")) {\r\n this.isFinanceAccounting = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"Reports\")) {\r\n this.isReporter = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"ExportReports\")) {\r\n this.isExportReporter = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"ProductReadOnly\")) {\r\n this.isProductReadOnly = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"CustomerService_Operations\")) {\r\n this.isProductReadOnly = true;\r\n this.IsCbsOps = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"OperationUnderwriter\")) {\r\n this.isOperationUnderwriter = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"CustomerService_CBS_SG\")) {\r\n this.isProductReadOnly = true;\r\n this.IsCSCBGSG = true;\r\n }\r\n\r\n if (this.identity.isInUserRole(\"HASE_User\")) {\r\n this.IsHASEUser = true;\r\n }\r\n\r\n /*check is underwriter*/\r\n if (\r\n this.isChecker ||\r\n this.isMaker ||\r\n this.isUnderwriter ||\r\n this.isClaimant ||\r\n this.IsCbsOps ||\r\n this.isProductReadOnly ||\r\n this.IsCSCBGSG ||\r\n this.IsHASEUser\r\n ) {\r\n this.hasProductReadWriteRoles = true;\r\n }\r\n\r\n if (this.isMaker || this.isUnderwriter || this.IsHASEUser) {\r\n this.hasProductTransactRoles = true;\r\n }\r\n }\r\n}\r\n","import { Observable, of as observableOf, of } from \"rxjs\";\r\n//import * as Enum from \"../framework/enum.shared\";\r\nimport * as Enum from \"../../framework/enum.shared\";\r\n//import * as Interface from \"../framework/interface.shared\";\r\nimport * as Interface from \"../../framework/interface.shared\";\r\nimport { Global } from \"../global\";\r\nimport * as lodash from \"lodash\";\r\nimport * as Enums from \"../../framework/enum.shared\";\r\n\r\n//import { common } from \"src/app/core/extensions/framework/utils/common\";\r\nimport { common } from \"src/app/framework/utils/common\";\r\n//import { List } from \"src/app/core/extensions/linqts/linq\";\r\nimport { List } from \"../linqts/linq\";\r\n//import { IProduct } from \"src/app/core/extensions/framework/interface.product\";\r\nimport { IProduct } from \"src/app/framework/interface.product\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { SessionStorageService } from \"src/app/services/storages/session-storage.service\";\r\n//import { LocalStorageService } from \"src/app/core/services/storages/local-storage.service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { UserListService } from \"src/app/services/user-list.service\";\r\nimport { GUID } from \"src/app/framework/domain-entity/guid\";\r\nimport { IdentityRole } from \"./identity-role\";\r\nimport { BroadcastService } from \"src/app/services/broadcast.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { map, switchMap } from \"rxjs/operators\";\r\n//import { NGXLogger } from \"ngx-logger\";\r\n//import { UserListService } from \"../../services/user-list.service\";\r\n//import { Application } from \"src/app/application\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class Identity implements Interface.IIdentity {\r\n // Dependency injection\r\n // static $inject = ['$q', 'localStorageService', 'AuthenticationEvent', 'User', 'Enums', '$state'];\r\n\r\n public static readonly AUTH_STORAGE_NAME: string = \"authorizationData\";\r\n public static readonly USER_STORAGE_NAME: string = \"authorizedUserData\";\r\n private _currentUser: Interface.IUser | any;\r\n\r\n private static _instance: Interface.IIdentity;\r\n\r\n static get instance(): Interface.IIdentity {\r\n if (Global.isUndefined(this._instance)) {\r\n // if (Application.mode === Enum.ApplicationMode.browser) {\r\n // //todo\r\n // //this._instance = Application.angularInjectionObject('Identity');\r\n // }\r\n }\r\n\r\n return this._instance;\r\n }\r\n\r\n constructor(\r\n // private $q: ng.IQService,\r\n // private localStorageService: angular.localStorage.ILocalStorageService,\r\n private sessionStorageService: SessionStorageService,\r\n private userListService: UserListService,\r\n private broadcastService: BroadcastService,\r\n private router: Router\r\n ) //private logger: NGXLogger // private authenticationEvent: AuthenticationEvent, // private User: any, // private Enums: any, // private $state: any\r\n {\r\n //todo\r\n // this.authenticationEvent.onLogin(() => {\r\n // Identity._instance = undefined;\r\n // this.clearAuthData();\r\n // });\r\n // this.authenticationEvent.onLogout(() => {\r\n // Identity._instance = undefined;\r\n // this.clearAuthData();\r\n // });\r\n // this.authenticationEvent.onLoginFailed(() => {\r\n // Identity._instance = undefined;\r\n // this.clearAuthData();\r\n // });\r\n // this.authenticationEvent.onTokenRefreshFailed(() => {\r\n // Identity._instance = undefined;\r\n // this.clearAuthData();\r\n // });\r\n }\r\n public role!: IdentityRole;\r\n isProposalTransactionReadOnly: boolean = true;\r\n\r\n private getStorageAuthorizationData(): Interface.IAuthenticationData {\r\n const authData: Interface.IAuthenticationData =\r\n this.sessionStorageService.get(Identity.AUTH_STORAGE_NAME);\r\n\r\n return authData;\r\n }\r\n\r\n public clearAuthData() {\r\n // clear local storage auth data\r\n this.sessionStorageService.remove(Identity.AUTH_STORAGE_NAME);\r\n this._currentUser = undefined;\r\n }\r\n\r\n public injectAuthData(authData: Interface.IAuthenticationData) {\r\n // set authentication session\r\n this.sessionStorageService.set(Identity.AUTH_STORAGE_NAME, authData);\r\n }\r\n\r\n public storeAuthData(authenticationResponse: Interface.IAuthenticationToken) {\r\n if (authenticationResponse) {\r\n if (\r\n authenticationResponse.access_token &&\r\n authenticationResponse.access_token.length > 0\r\n ) {\r\n this.sessionStorageService.remove(Identity.AUTH_STORAGE_NAME);\r\n\r\n const authData: Interface.IAuthenticationData = {\r\n token: authenticationResponse.access_token,\r\n refreshToken: authenticationResponse.refresh_token,\r\n expiresIn: authenticationResponse.expires_in,\r\n sessionToken: authenticationResponse.sessionToken,\r\n };\r\n\r\n if (\r\n common.isDefined(authenticationResponse.passwordExpired) &&\r\n common.isDefined(authenticationResponse.id)\r\n ) {\r\n authData.passwordExpired = true;\r\n authData.id = parseInt(authenticationResponse.id, 10);\r\n }\r\n\r\n if (common.isDefined(authenticationResponse.ssoFromEbiz)) {\r\n authData.ssoFromEbiz = true;\r\n } else {\r\n authData.ssoFromEbiz = false;\r\n }\r\n\r\n if (common.isDefined(authenticationResponse.sessionId)) {\r\n authData.sessionId = authenticationResponse.sessionId;\r\n }\r\n\r\n if (common.isDefined(authenticationResponse.impersonateBySuperAdmin)) {\r\n authData.impersonateBySuperAdmin = true;\r\n }\r\n\r\n // set authentication session\r\n this.sessionStorageService.set(Identity.AUTH_STORAGE_NAME, authData);\r\n }\r\n }\r\n }\r\n\r\n public isAuthenticated(): boolean {\r\n const authData = this.getStorageAuthorizationData();\r\n\r\n if (common.isDefined(authData) && authData != null) {\r\n if (!common.isDefined(authData.passwordExpired)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getTokenExpiresIn(): number {\r\n const authData = this.getStorageAuthorizationData();\r\n if (authData) {\r\n return authData.expiresIn;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n public getRefreshToken(): string {\r\n const authData = this.getStorageAuthorizationData();\r\n if (authData) {\r\n return authData.refreshToken;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public getSessionToken(): string {\r\n let authData = this.getStorageAuthorizationData();\r\n if (authData) {\r\n return authData.sessionToken;\r\n }\r\n return \"\";\r\n }\r\n\r\n public getAuthenticateToken(): string {\r\n const authData = this.getStorageAuthorizationData();\r\n if (authData) {\r\n return authData.token;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public getCurrentUserType(): Enum.UserType {\r\n if (this.isAuthenticated()) {\r\n switch (this.currentUser().userType) {\r\n case 1:\r\n return Enum.UserType.Admin;\r\n case 2:\r\n return Enum.UserType.Broker;\r\n case 3:\r\n return Enum.UserType.Underwriter;\r\n case 4:\r\n return Enum.UserType.Client;\r\n case 5:\r\n return Enum.UserType.Agent;\r\n case 6:\r\n return Enum.UserType.Marketer;\r\n }\r\n }\r\n\r\n return Enum.UserType.Undefined;\r\n }\r\n\r\n public hasProduct(productId: GUID): boolean {\r\n const found = lodash.find(this.currentUser().products, (product) => {\r\n return productId.toString() === product.pdid.toUpperCase();\r\n });\r\n\r\n return common.isDefined(found);\r\n }\r\n //todo\r\n /** Method to populate mapped child organisation */\r\n // public populateUserMappedOrganisation() {\r\n // // const deferred = this.$q.defer();\r\n\r\n // if (this.isAuthenticated()) {\r\n // // checked if populated before\r\n // if (Global.isDefined(this._currentUser.mappedOrganisation)) {\r\n // deferred.resolve(this._currentUser.mappedOrganisation);\r\n // } else {\r\n // /** Retrieved mapped organisations */\r\n // this.User.getMappedOrganisations()\r\n // .then((mappedOrgnisations) => {\r\n // if (Global.isDefined(mappedOrgnisations)\r\n // && Global.isDefined(mappedOrgnisations.d)) {\r\n\r\n // const index = 0;\r\n // mappedOrgnisations.d.forEach(o => {\r\n // this._currentUser.mappedOrganisation = o;\r\n // });\r\n\r\n // this._currentUser.mappedOrganisation = mappedOrgnisations.d;\r\n // }\r\n // deferred.resolve(this._currentUser.mappedOrganisation);\r\n // }, (rejection) => {\r\n // deferred.reject(rejection);\r\n // });\r\n // }\r\n // } else {\r\n // // Unauthorized\r\n // deferred.reject(401);\r\n // ExceptionManager.error('401 Unauthorized');\r\n // }\r\n\r\n // return deferred.promise;\r\n // }\r\n\r\n /** Method to populate current login user */\r\n public populateCurrentUser(forceRefresh: boolean): Observable {\r\n //const deferred = this.$q.defer();\r\n\r\n if (this.isAuthenticated()) {\r\n // check if user authenticated before retrieved user info\r\n if (!this._currentUser || forceRefresh) {\r\n // check if force refresh or _currentUser object is empty\r\n\r\n this.userListService\r\n .getUser() // retrieved current login user info\r\n .subscribe(\r\n (currentUser: any) => {\r\n this.initCurrentUser(currentUser);\r\n //todo: why not prod no need to set?\r\n //if (!environment.production) {\r\n this.sessionStorageService.set(\r\n Identity.USER_STORAGE_NAME,\r\n currentUser\r\n );\r\n\r\n // this.logger.log(\r\n // \"populateCurrentUser(...); broadcastService.onAutheticated.next(...)\"\r\n // );\r\n this.broadcastService.onAutheticated.next({ loginStatus: true });\r\n return observableOf(\"true\");\r\n }\r\n //TODO\r\n // ,\r\n // (rejection) => {\r\n // deferred.reject(rejection);\r\n // });\r\n );\r\n }\r\n } else {\r\n const authData = this.getStorageAuthorizationData();\r\n if (authData && authData != null) {\r\n if (authData.passwordExpired) {\r\n const errorObj = { errorCode: 403, id: authData.id };\r\n // Forbidden, due to password expired\r\n //deferred.reject(errorObj);\r\n }\r\n }\r\n\r\n // Unauthorized\r\n //deferred.reject(401);\r\n }\r\n return observableOf(\"false\");\r\n //return deferred.promise;\r\n }\r\n\r\n public populateCurrentUser_Promise(forceRefresh: boolean) {\r\n return this.userListService\r\n .getUser() // retrieved current login user info\r\n .pipe(\r\n map((currentUser: any) => {\r\n this.initCurrentUser(currentUser);\r\n //todo: why not prod no need to set?\r\n //if (!environment.production) {\r\n this.sessionStorageService.set(\r\n Identity.USER_STORAGE_NAME,\r\n currentUser\r\n );\r\n\r\n //this.logger.log(\"populateCurrentUser_Promise(...)\");\r\n this.broadcastService.onAutheticated.next({ loginStatus: true });\r\n })\r\n )\r\n .toPromise();\r\n }\r\n\r\n public initCurrentUser(currentUser: any) {\r\n this._currentUser = currentUser;\r\n\r\n // reset to default value\r\n this.isProposalTransactionReadOnly = true;\r\n\r\n switch (this.getCurrentUserType()) {\r\n case Enum.UserType.Broker: // broker\r\n case Enum.UserType.Agent: // agent\r\n case Enum.UserType.Underwriter: // underwriter\r\n this.isProposalTransactionReadOnly = false;\r\n break;\r\n }\r\n\r\n this.role = new IdentityRole(this);\r\n }\r\n\r\n /** to retrieved current login user info */\r\n public currentUser(): Interface.IUser {\r\n if (\r\n !environment.production &&\r\n !common.isUndefinedOrNull(\r\n this.sessionStorageService.get(Identity.USER_STORAGE_NAME)\r\n )\r\n ) {\r\n return this.sessionStorageService.get(Identity.USER_STORAGE_NAME);\r\n }\r\n\r\n if (common.isUndefinedOrNull(this._currentUser) && this.isAuthenticated()) {\r\n //todo\r\n // let authorization = Application.angularInjectionObject(\"Authorization\");\r\n // authorization.logoutAndToDefault();\r\n }\r\n\r\n return this._currentUser!;\r\n }\r\n\r\n public isAllowedGenerateNewPolicy(): boolean {\r\n let isSuspended =\r\n common.isDefined(this._currentUser) &&\r\n common.isDefined(this._currentUser?.suspended) &&\r\n this._currentUser?.suspended;\r\n\r\n /* 2017-02-22 khleow: Some products such as AML\r\n * allow UW to create policies. */\r\n let isPolicyGenerator =\r\n common.isDefined(this._currentUser) &&\r\n (this._currentUser?.userType === Enum.UserType.Agent ||\r\n this._currentUser?.userType === Enum.UserType.Broker ||\r\n (this._currentUser?.userType === Enum.UserType.Underwriter &&\r\n new List(this._currentUser?.products).Any((p) =>\r\n p ? p.uwNewPolicyEnabled : false\r\n )));\r\n\r\n //Product Specify by SelectPlus SG\r\n\r\n if (\r\n common.isDefined(this._currentUser) &&\r\n common.isDefined(this._currentUser?.userRoles)\r\n ) {\r\n /*stop approval underwriter to create new policy*/\r\n if (this._currentUser?.userType === Enum.UserType.Underwriter) {\r\n if (common.isDefined(this._currentUser.userRolePermissions)) {\r\n isPolicyGenerator = this.isInUserRolePermissions(\"CreateNew\");\r\n }\r\n }\r\n }\r\n\r\n return !isSuspended && isPolicyGenerator;\r\n }\r\n\r\n public isInUserRolePermissions(userRolePermissions: string): boolean {\r\n if (this.isAuthenticated()) {\r\n if (\r\n common.isDefined(this._currentUser) &&\r\n common.isDefined(this._currentUser?.userRolePermissions)\r\n ) {\r\n return lodash.includes(\r\n this._currentUser?.userRolePermissions,\r\n userRolePermissions\r\n );\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isInUserRole(userRole: string): boolean {\r\n if (this.isAuthenticated()) {\r\n if (\r\n this._currentUser != undefined &&\r\n this._currentUser.userRoles != undefined\r\n ) {\r\n return lodash.includes(this._currentUser.userRoles, userRole);\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isInRole(role: string): boolean {\r\n if (this.isAuthenticated()) {\r\n if (\r\n common.isDefined(this._currentUser) &&\r\n common.isDefined(this._currentUser?.roles) &&\r\n common.isDefined(this._currentUser?.roles[role])\r\n ) {\r\n return this._currentUser?.roles[role];\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public getSessionId(): string {\r\n const authData = this.getStorageAuthorizationData();\r\n\r\n if (common.isDefined(authData.sessionId)) {\r\n return authData.sessionId!;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public isImpersonate(): boolean {\r\n if (this.isAuthenticated()) {\r\n const authData = this.getStorageAuthorizationData();\r\n\r\n if (common.isDefined(authData.impersonateBySuperAdmin)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isSsoFromEbiz(): boolean {\r\n const authData = this.getStorageAuthorizationData();\r\n\r\n if (\r\n common.isDefined(authData.ssoFromEbiz) &&\r\n authData.ssoFromEbiz === true\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\nconst loadConfiguration = (item: string) => {\r\n let data!: any;\r\n\r\n switch (window.location.origin) {\r\n case \"http://localhost:4200\":\r\n data = require(\"src/assets/config/configuration.json\");\r\n break;\r\n case \"https://apcdcbacsw192.aceins.com:8020\":\r\n data = require(\"src/assets/config/configuration.sit.json\");\r\n break;\r\n case \"https://ep2-banca-uat.chubb.com\":\r\n case \"https://ep2ap-general.chubb.com\":\r\n data = require(\"src/assets/config/configuration.uat.json\");\r\n break;\r\n case \"https://apcdcbacsw191.aceins.com:8030\":\r\n data = require(\"src/assets/config/configuration.stage.json\");\r\n break;\r\n case \"https://ep2-banca.chubb.com\":\r\n data = require(\"src/assets/config/configuration.production1.json\");\r\n break;\r\n default:\r\n }\r\n\r\n if (data) {\r\n return data[item];\r\n } else {\r\n alert(\"incompatible server setup\");\r\n }\r\n};\r\n\r\nexport const environment = {\r\n browser: typeof window !== \"undefined\",\r\n\r\n production: loadConfiguration(\"production\"),\r\n clientLibsVersion: loadConfiguration(\"clientLibsVersion\"),\r\n clientVersion: loadConfiguration(\"clientVersion\"),\r\n serverVersion: loadConfiguration(\"serverVersion\"),\r\n jsonVersion: loadConfiguration(\"jsonVersion\"),\r\n serviceBase: loadConfiguration(\"developement\")\r\n ? \"http://localhost:19442/\" //dev purpose\r\n : window.location.origin + \"/api/\", //deployment purpose\r\n client: loadConfiguration(\"client\"),\r\n siteTitle: loadConfiguration(\"siteTitle\"),\r\n responseType: loadConfiguration(\"responseType\"),\r\n environment: loadConfiguration(\"environment\"),\r\n si_limit_referral: loadConfiguration(\"si_limit_referral\"),\r\n lstMinLimit: loadConfiguration(\"lstMinLimit\"),\r\n lstMaxLimit: loadConfiguration(\"lstMaxLimit\"),\r\n cmbMaxSiLimit: loadConfiguration(\"cmbMaxSiLimit\"),\r\n wpbMaxSiLimit: loadConfiguration(\"wpbMaxSiLimit\"),\r\n ClausesAndDeductiblesReleaseDate: loadConfiguration(\r\n \"ClausesAndDeductiblesReleaseDate\"\r\n ),\r\n services: {\r\n epUser: loadConfiguration(\"services\").epUser,\r\n epProposal: loadConfiguration(\"services\").epProposal,\r\n },\r\n googleApiKey: loadConfiguration(\"googleApiKey\"),\r\n gRecaptchaPublicKey: loadConfiguration(\"gRecaptchaPublicKey\"),\r\n gRecaptchaMinScore: loadConfiguration(\"gRecaptchaMinScore\"),\r\n isgRecaptchaRequire: loadConfiguration(\"isgRecaptchaRequire\"),\r\n\r\n // second(s)\r\n idleAllowed: loadConfiguration(\"idleAllowed\"), // durations of user allowed to be idle (eg, 15 * 60)\r\n idleWarning: loadConfiguration(\"idleWarning\"), // durations of user to response to idle warning\r\n\r\n adb2cSettings: {\r\n clientId: loadConfiguration(\"adb2cSettings\").clientId,\r\n redirectUri:\r\n window.location.origin + loadConfiguration(\"adb2cSettings\").redirectUri, //adb2c-ssologin.component.html\r\n authority: loadConfiguration(\"adb2cSettings\").authority,\r\n knownAuthorities: loadConfiguration(\"adb2cSettings\").knownAuthorities,\r\n postLogoutRedirectUri:\r\n window.location.origin +\r\n loadConfiguration(\"adb2cSettings\").postLogoutRedirectUri,\r\n passwordChangepolicy: {\r\n authority:\r\n loadConfiguration(\"adb2cSettings\").passwordChangepolicy.authority,\r\n value: loadConfiguration(\"adb2cSettings\").passwordChangepolicy.value,\r\n //deployment purpose\r\n redirectUri: loadConfiguration(\"developement\")\r\n ? \"https://ep2ap-sit.chubb.com:8024/adb2c/changepassword/change-password-confirmation.html\" //dev purpose\r\n : loadConfiguration(\r\n \"adb2cSettings\"\r\n ).passwordChangepolicy.redirectUri.startsWith(\"https:\")\r\n ? loadConfiguration(\"adb2cSettings\").passwordChangepolicy.redirectUri\r\n : window.location.origin +\r\n loadConfiguration(\"adb2cSettings\").passwordChangepolicy.redirectUri,\r\n },\r\n cache: {\r\n cacheLocation: loadConfiguration(\"adb2cSettings\").cache.cacheLocation, // This configures where your cache will be stored\r\n storeAuthStateInCookie:\r\n loadConfiguration(\"adb2cSettings\").cache.storeAuthStateInCookie, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n tokenRequest: {\r\n scopes: loadConfiguration(\"adb2cSettings\").tokenRequest.scopes,\r\n forceRefresh:\r\n loadConfiguration(\"adb2cSettings\").tokenRequest.forceRefresh, // Set this to \"true\" to skip a cached token and go to the server to get a new token\r\n },\r\n\r\n //deployment purpose\r\n userTypeListing: loadConfiguration(\"developement\")\r\n ? \"http://localhost:8080/#/adb2cusertypelisting\" //dev purpose\r\n : window.location.origin +\r\n loadConfiguration(\"adb2cSettings\").userTypeListing,\r\n // userTypeListing:\r\n //deployment purpose\r\n landingPageTemplate: loadConfiguration(\"developement\")\r\n ? \"https://ep2ap-sit.chubb.com:8024/adb2c\" //dev purpose\r\n : window.location.origin +\r\n loadConfiguration(\"adb2cSettings\").landingPageTemplate,\r\n // landingPageTemplate:\r\n\r\n tenant: loadConfiguration(\"adb2cSettings\").tenant,\r\n signUpSignIn: loadConfiguration(\"adb2cSettings\").signUpSignIn,\r\n },\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["enCustomMessages","teamEfficiency","teamMembers","dashboard","planning","profile","info","language","trend","volume","myTeam","allTeams","teamCalendar","saveChanges","cancel","warehouse","startFreeTrial","buyNow","getSource","demoInfo","firstName","middleName","lastName","email","phoneNumber","country","biography","public","team","employee","contactName","jobTitle","status","performance","rating","engagement","budget","contacts","address","phone","gridSearch","exportExcel","exportPdf","enComponentMessages","esCustomMessages","esComponentMessages","frCustomMessages","frComponentMessages","EventEmitter","ViewContainerRef","LOCALE_ID","CellClickEvent","GridDataResult","PageChangeEvent","PageSizeItem","SelectAllCheckboxState","orderBy","formatDate","openItemDisplayStatus","SearchCriteria","common","Day","MdConfirmationMessageV1Component","MdConfirmationMessageV2Component","i0","ɵɵelementStart","ɵɵlistener","BatchInvoiceListComponent_ng_template_3_Template_form_ngSubmit_0_listener","ɵɵrestoreView","_r13","ctx_r12","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵtext","ɵɵelementEnd","BatchInvoiceListComponent_ng_template_3_Template_input_input_10_listener","$event","ctx_r14","on_quoteNumber_keyup","BatchInvoiceListComponent_ng_template_3_Template_input_ngModelChange_10_listener","ctx_r15","searchCriteria","policyNo","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_focus_18_listener","ctx_r16","on_searchOIFrom_focus","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_18_listener","ctx_r17","effectiveDateFrom","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_valueChange_18_listener","ctx_r18","on_searchEffectiveDateFrom_change","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_24_listener","ctx_r19","effectiveDateTo","BatchInvoiceListComponent_ng_template_3_Template_input_keypress_34_listener","charCode","BatchInvoiceListComponent_ng_template_3_Template_input_ngModelChange_34_listener","ctx_r21","invoiceNo","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_42_listener","ctx_r22","policyeffectiveDateFrom","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_valueChange_42_listener","ctx_r23","on_searchPolicyEffectiveDateFrom_change","BatchInvoiceListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_48_listener","ctx_r24","policyeffectiveDateTo","BatchInvoiceListComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_57_listener","ctx_r25","segments","BatchInvoiceListComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_65_listener","ctx_r26","productIds","BatchInvoiceListComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_73_listener","ctx_r27","statusIds","ɵɵadvance","ɵɵproperty","ctx_r0","openItemEntryDate_min","openItemEntryDate_max","ɵɵpureFunction0","_c5","segmentList","userProductList","statusList","BatchInvoiceListComponent_div_8_button_2_Template_button_click_0_listener","_r31","ctx_r30","selectAllPolicy","ɵɵelement","BatchInvoiceListComponent_div_8_button_3_Template_button_click_0_listener","_r33","ctx_r32","ɵɵtemplate","BatchInvoiceListComponent_div_8_button_2_Template","BatchInvoiceListComponent_div_8_button_3_Template","BatchInvoiceListComponent_div_8_Template_button_click_4_listener","_r35","ctx_r34","generateSelectedPolicies","BatchInvoiceListComponent_div_8_Template_button_click_7_listener","ctx_r36","updateInvoiceNumber","BatchInvoiceListComponent_div_8_Template_button_click_10_listener","ctx_r37","downloadAllPolicies","ctx_r1","isSelectAll","BatchInvoiceListComponent_div_10_ng_template_3_input_0_Template_input_click_0_listener","_r49","ctx_r48","dataItem_r45","$implicit","idx_r44","rowIndex","ctx_r47","SetSelectedItem","isChecked","BatchInvoiceListComponent_div_10_ng_template_3_input_0_Template","batchId","ctx_r39","pageSizes","BatchInvoiceListComponent_div_10_app_batch_invoice_details_12_Template_app_batch_invoice_details_closeDialogEvent_0_listener","_r54","ctx_r53","returnToBatchInvoiceListing","ctx_r41","redirectOpened","openItemId","BatchInvoiceListComponent_div_10_app_update_invoice_number_13_Template_app_update_invoice_number_closeDialogEvent_0_listener","_r56","ctx_r55","ctx_r42","redirectUpdateInvoiceOpened","BatchInvoiceListComponent_div_10_Template_kendo_grid_sortChange_1_listener","_r58","ctx_r57","sortChange","BatchInvoiceListComponent_div_10_Template_kendo_grid_pageChange_1_listener","ctx_r59","pageChange","BatchInvoiceListComponent_div_10_Template_kendo_grid_cellClick_1_listener","ctx_r60","cellClickHandler","BatchInvoiceListComponent_div_10_Template_kendo_grid_selectedKeysChange_1_listener","ctx_r61","selectedRowIndexes","BatchInvoiceListComponent_div_10_ng_template_3_Template","BatchInvoiceListComponent_div_10_ng_template_10_Template","BatchInvoiceListComponent_div_10_div_11_Template","BatchInvoiceListComponent_div_10_app_batch_invoice_details_12_Template","BatchInvoiceListComponent_div_10_app_update_invoice_number_13_Template","BatchInvoiceListComponent_div_10_div_14_Template","ctx_r2","gridView","sort","pageSize","skip","loading","BatchInvoiceListComponent","constructor","locale","batchInvoiceListService","identity","excelTemplate","cdkDialogService","notifier","take","selectAllState","listing","totalListing","submitted","isCitiProduct","checkableRows","showDetails","doManualPay","doRefundPay","doBatchAndExport","dialogOpened","confirmationOpened","warningDlgOpened","warningZoneEvent","disabledDates","Saturday","Sunday","Tuesday","Wednesday","Thursday","Friday","isSearch","newInvoices","mySelection","select","forEach","idx","allIdx","indexOf","push","data","invoice","statusId","pendInvBankBatchID","loadData","item","reformatPeriod","autoDebitPeriod","isUndefinedOrNull","period","autoDebitPeriodYear","split","autoDebitPeriodMonth","autoDebitPeriodDate","toString","validPeriod","field","dir","doDownloadAllPoliciesHandler","then","response","allPoliciesDownloadColumns","ngOnInit","defaultSearchCriteria","fetchUserList","fetchStatusList","text","value","policyEffectiveDateFrom","Date","setFullYear","getFullYear","currentUser","products","key","hasOwnProperty","Number","x","y","event","k","charCodeAt","preventDefault","dataItem","loopIndex","splice","length","msg","WarningPopup","confirmationMsg","v1InputData","opened","dialogWidth","message","v1DialogRef","open","afterClosed","subscribe","result","confirmationModalCloseForActions","v2InputData","v2DialogRef","refresh","form","dirty","checkDatesRange","isValid","validateMandatoryFields","warningParamters","showWarning","warningText","emit","dates","total","clearSelection","searchBatchInvoiceListing","getQueryString","undefined","body","allInvoiceList","d","results","__count","loadItems","success","appendTo","err","error","formData","FormData","append","array","i","j","JSON","parse","stringify","querystring","pair","entries","encodeURIComponent","buildCheckRows","entity","index","statusDisplayText","maxDate","setMonth","getMonth","policyeffectiveDate_min","policyeffectiveDate_max","oiEffectiveDateTo","isOpen","toggle","on_searchPEFrom_focus","oiPolicyEffectiveDateTo","sender","columnIndex","isEdited","openItem","actionName","val","args","_this","_asyncToGenerator","doBatchAndExportHandler","downloadBatchInvoices","batchInvoiceColumns","ɵɵdirectiveInject","i1","BatchInvoiceListService","i2","Identity","i3","ExcelTemplateService","i4","CdkDialogService","i5","NotifierService","selectors","viewQuery","BatchInvoiceListComponent_Query","rf","ctx","BatchInvoiceListComponent_ng_template_3_Template","BatchInvoiceListComponent_Template_button_click_5_listener","BatchInvoiceListComponent_div_8_Template","BatchInvoiceListComponent_div_10_Template","OpenItemEntity","ManualPaymentEntity","DoBounceChequeComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener","_r2","closeForm","DoBounceChequeComponent_kendo_dialog_0_Template_textarea_ngModelChange_51_listener","ctx_r3","manualPayment","remarks","DoBounceChequeComponent_kendo_dialog_0_Template_button_click_53_listener","ctx_r4","onSave","DoBounceChequeComponent_kendo_dialog_0_Template_button_click_55_listener","ctx_r5","onCancel","openItemEntity","chequeIssuanceBank","chequeNumber","amount","amountGst","payerName","policyCertificateNumber","DoBounceChequeComponent","openItemListService","active","bounceCheque","getOpenItemDetails","isStringNullOrEmpty","manualPaymentChequeIssuanceBank","refundPaymentChequeIssuanceBank","chequeNo","manualPaymentChequeNumber","refundPaymentChequeNumber","paymentRemarks","e","ConfirmationPopup","OpenItemListService","inputs","outputs","decls","vars","consts","template","DoBounceChequeComponent_Template","DoBounceChequeComponent_kendo_dialog_0_Template","DoManualPayComponent_kendo_dialog_0_div_35_Template_input_ngModelChange_2_listener","_r6","paymentType","DoManualPayComponent_kendo_dialog_0_div_35_Template_input_change_2_listener","ctx_r7","onChangePaymentType","DoManualPayComponent_kendo_dialog_0_div_35_Template_input_ngModelChange_5_listener","ctx_r8","DoManualPayComponent_kendo_dialog_0_div_35_Template_input_change_5_listener","ctx_r9","DoManualPayComponent_kendo_dialog_0_div_36_Template_input_ngModelChange_6_listener","_r11","ctx_r10","DoManualPayComponent_kendo_dialog_0_div_36_Template_input_ngModelChange_12_listener","ɵɵpureFunction1","_c0","invalidCIB","invalidCN","DoManualPayComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener","_r14","ctx_r13","DoManualPayComponent_kendo_dialog_0_div_4_Template","DoManualPayComponent_kendo_dialog_0_Template_input_ngModelChange_16_listener","DoManualPayComponent_kendo_dialog_0_div_34_Template","DoManualPayComponent_kendo_dialog_0_div_35_Template","DoManualPayComponent_kendo_dialog_0_div_36_Template","DoManualPayComponent_kendo_dialog_0_Template_textarea_ngModelChange_42_listener","DoManualPayComponent_kendo_dialog_0_Template_button_click_44_listener","DoManualPayComponent_kendo_dialog_0_Template_button_click_46_listener","invalidRequiredField","invalidPayerName","payByChequeOnly","isCashPayment","DoManualPayComponent","makePayment","model","hasError","DoManualPayComponent_Template","DoManualPayComponent_kendo_dialog_0_Template","RefundPaymentEntity","RefundPaymentType","OpenItemStatus","proposalCommon","DoRefundComponent_kendo_dialog_0_div_23_Template_input_ngModelChange_12_listener","_r4","refundPayment","DoRefundComponent_kendo_dialog_0_div_23_Template_input_ngModelChange_18_listener","DoRefundComponent_kendo_dialog_0_div_23_Template_input_ngModelChange_24_listener","ctx_r6","refundTypeDisplayText","DoRefundComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener","_r8","DoRefundComponent_kendo_dialog_0_div_4_Template","DoRefundComponent_kendo_dialog_0_div_23_Template","DoRefundComponent_kendo_dialog_0_Template_textarea_ngModelChange_29_listener","DoRefundComponent_kendo_dialog_0_Template_button_click_31_listener","DoRefundComponent_kendo_dialog_0_Template_button_click_33_listener","ctx_r11","refundType","invalidRemark","DoRefundComponent","doRefund","getOpenItem","PendingRefundToBankInReview","OnlineTransfer","PendingRefundToIndividualInReview","Cheque","Undefined","translateRefundPaymentType","refundPaymentType","DoRefundComponent_Template","DoRefundComponent_kendo_dialog_0_Template","ROUTE_HOME","ROUTE_USER_ROLE_SELECTION","Enums","environment","Adb2cLoginRedirectComponent","msalService","authorizationService","router","identityRolesService","urlService","loginSilentRequest","scopes","adb2cSettings","clientId","instance","acquireTokenSilent","res","ssoUserName","loginData","userName","password","accessToken","login","_ref","resp","storeAuthData","isDefined","DefaultUserLoginCount","parseInt","window","location","href","GetFullUrlWithSubDirectory","populateCurrentUser_Promise","redirectPage","_x","apply","arguments","userType","UserType","Admin","navigate","hasProductReadWriteRoles","hasProductTransactRoles","isFinanceAccounting","MsalService","AuthorizationService","Router","IdentityRolesService","i6","UrlService","Adb2cLoginRedirectComponent_Template","BaseComponent","UserRoleSelectionComponent_div_26_Template_a_click_2_listener","restoredCtx","_r3","option_r1","OpenUserRoleSelected","ɵɵtextInterpolate1","OrganisationName","UserRoleSelectionComponent","broadcastService","userProfileService","onAutheticated","getIdentity","getUserTypeOptions","GetUserRolesByEmail","emailAddress","userTypeOptions","defaultUserLogin","SetDefaultUserRoles","UserLogin","proceedLogin","BroadcastService","UserProfileService","features","ɵɵInheritDefinitionFeature","UserRoleSelectionComponent_Template","UserRoleSelectionComponent_div_26_Template","Items","BaseListingComponent","MfHkEndorsementListSearchCriteria","MfHkConfigEditCriteria","BaseConfigurablesListComponent","masterPolicyService","clausesDeductiblesService","isAdd","isEdit","editModel","currentIdentity","getDefaultDisplayText","isDefault","returnListingHandler","ret","gridSelectionChange","selection","selectedData","selectedRows","deselectedData","deselectedRows","configEntity","typeId","guid","id","myarray","coverageTypeId","toUpperCase","coverageTypes","default","stringBoolToString","code","title","editorValue","description","boolToCompare","String","toLowerCase","modelToArray","setFormData","searchClausesAndWarrantiesListing","console","log","filters","getDataItemsFromGridWithSelectedIndexes","selectedIndexes","currentPageData","selectedDataItems","MasterPolicyService","ClausesDeductiblesService","BaseConfigurablesListComponent_Query","MdInformationMessageComponent","BaseOpenItemListComponent","isSgProduct","isHkProduct","refundOpenItemID","doBounceCheque","calenderValidation","clickout","el","target","className","includes","getCountry","initStatusLists","payableStatusList","refundableStatusList","refundableReviewStatusList","readProductRadio","productRadio","filter","ucvalue","pdid","getTitle","onChange_ProductRadio","resetFormValues","setCitiAutoDebitPeriod","setDbsAutoDebitPeriod","controls","reset","day","getDay","diff","getDate","autoDebitDefaultWeek","setDate","autoDebitDefaultMonth","export","exportOpenItemListing","downloadDbsOpenItemPolicies","dbsColumns","searchOpenItemListing","covertDate","ManualPaid","Refunded","chequeInfo","getActionName","action","getActionByName","isPendingPayment","isPendingRefund","isPendingRefundReview","isBounceableCheque","paymentTypeId","retValue","on_AutoDebitMonthChange","on_AutoDebitWeekChange","onPayClick","onRefundClick","onRefundReviewClick","onBounceChequeClick","datas","PendingRefundToIndividual","PendingRefundToBank","returnToOpenItemListing","cancelPaymentHandler","cancelRefundHandler","cancelBounceChequeHandler","postData","doRefundReview","openStatusPopup","makePaymentHandler","manualPaymentEntity","doRefundHandler","refundPaymentEntity","bounceChequeHandler","date","answer","year","month","i7","BaseOpenItemListComponent_Query","ɵɵresolveDocument","BaseOpenItemListComponent_app_open_item_list_0_Template","BaseOpenItemListComponent_mf_hk_open_item_list_1_Template","cityColumns","ROUTE_PROPOSAL","Enum","AppEnums","Const","MdConfirmationMessageV6Component","HomeConstant","BaseTodoListComponent","masterDataService","uploadService","this","proposalStatusOptions","isCitiUser","isDBSUser","isChubbUser","defaultUserListItem","defaultMasterPolicyOptionsItem","userList","Array","defaultReportListItem","reportList","fetchMasterPolicyList","masterPolicyOptions","getList","masterPolicyList","mp","displayText","policyType","meridianMasterPolicyNumber","policyNumber","showPrintOptionDialog","grdData","command","ProposalCommandAction","Submit","proposalStatusId","ProposalStatus","Approved","Accept","Decline","Referred","Approve","v6InputData","gridData","v6DialogRef","confirmationPrintOptionSelection","getUserOrganisation","fetchReportList","organisation","UserOrganisation","DBS","Citi","getBcrnByUserOrg","currentUserOrg","userTeamOptions","isChecker","isMaker","proposalStatus","isUnderwriter","getUnderwriterMakerUserList","keyValueUserList","getMakerUserList","sumInsured","productId","proposalId","route","productsRoute","commandAction","proposalCommandAction","queryParams","pid","approvedIBGForUW","isOperationUnderwriter","isIBGProduct","ProductID","PRODUCT_ID_DBS_MACH_IBG","PRODUCT_ID_DBS_MF_IBG","isReferredOrApproved","startDateFrom","startDateTo","expiryDateFrom","expiryDateTo","quoteNo","masterPolicyId","cin","insuredName","bankReferenceNo","createdByUserId","userTeam","additionalInsuredName","bcrn","riskAddressPostalCode","checkFilter","searchTodoPolicyListing","canApproveIBGForUW","checkboxChecked","proposalStatusDisplayText","proposalTypeDisplayText","transactionType","proposalTransTypeId","msIGPolicyNo","on_searchStartDateFrom_change","toDoStartDateTo_min","toDoStartDateTo_max","toDoStartDateTo","on_searchStartDateFrom_focus","toDoExpiryDateTo","toDoEffectiveDateTo","on_searchExpiryDateFrom_change","toDoExpiryDateTo_min","toDoExpiryDateTo_max","on_searchExpiryDateFrom_focus","toDoEffectiveDateTo_min","toDoEffectiveDateTo_max","on_searchEffectiveDateFrom_focus","Action","msg_maxWarning","sortedArray","n1","n2","dataItems","ActionApprove","ActionBind","ActionDecline","ActionSelect","alert","_this2","doBulkAction","Status","tempData","ValidationMessage","ButtonShow","getUnderwriterReportList","keyValueReportList","MasterDataService","UploadExcelService","BaseTodoListComponent_Query","ɵɵtextInterpolate","getStatusDisplayText","dataItem_r27","ExportListComponent","excelService","defaultTransTypeItem","transTypeOptions","segmentOptions","submissionDateFrom","submissionDateTo","approvalDateFrom","approvalDateTo","transType","segment","boundDateFrom","boundDateTo","searchExportListing","generateExportList","exportSubmmissionDateTo","on_searchBoundDateFrom_change","boundDateTo_min","boundDateTo_max","on_searchBoundDateFrom_focus","on_searchSubmmissionDateFrom_change","submmissionDateTo_min","submmissionDateTo_max","on_searchSubmmissionDateFrom_focus","on_searchApprovalDateFrom_change","approvalDateTo_min","approvalDateTo_max","on_searchApprovalDateFrom_focus","ExcelService","ExportListComponent_Query","ExportListComponent_Template_form_ngSubmit_0_listener","ExportListComponent_Template_input_ngModelChange_10_listener","ExportListComponent_Template_input_ngModelChange_17_listener","ExportListComponent_Template_input_ngModelChange_24_listener","ExportListComponent_Template_input_ngModelChange_31_listener","ExportListComponent_Template_kendo_datepicker_focus_39_listener","ExportListComponent_Template_kendo_datepicker_valueChange_39_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_39_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_45_listener","ExportListComponent_Template_kendo_datepicker_focus_53_listener","ExportListComponent_Template_kendo_datepicker_valueChange_53_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_53_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_59_listener","ExportListComponent_Template_kendo_datepicker_focus_67_listener","ExportListComponent_Template_kendo_datepicker_valueChange_67_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_67_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_73_listener","ExportListComponent_Template_kendo_datepicker_focus_81_listener","ExportListComponent_Template_kendo_datepicker_valueChange_81_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_81_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_87_listener","ExportListComponent_Template_kendo_dropdownlist_ngModelChange_98_listener","ExportListComponent_Template_kendo_datepicker_focus_105_listener","ExportListComponent_Template_kendo_datepicker_valueChange_105_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_105_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_111_listener","ExportListComponent_Template_input_ngModelChange_121_listener","ExportListComponent_Template_kendo_datepicker_focus_129_listener","ExportListComponent_Template_kendo_datepicker_valueChange_129_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_129_listener","ExportListComponent_Template_kendo_datepicker_ngModelChange_135_listener","ExportListComponent_Template_kendo_multiselect_ngModelChange_145_listener","ExportListComponent_Template_kendo_multiselect_ngModelChange_152_listener","ExportListComponent_Template_kendo_dropdownlist_ngModelChange_160_listener","ExportListComponent_Template_kendo_dropdownlist_ngModelChange_167_listener","ExportListComponent_Template_kendo_multiselect_ngModelChange_175_listener","ExportListComponent_Template_kendo_multiselect_ngModelChange_183_listener","ExportListComponent_Template_button_click_184_listener","toggleCaption","ExportListComponent_Template_button_click_191_listener","ExportListComponent_Template_kendo_grid_pageChange_196_listener","ExportListComponent_Template_kendo_grid_selectedKeysChange_196_listener","ExportListComponent_Template_kendo_grid_selectionChange_196_listener","ExportListComponent_Template_kendo_grid_cellClick_196_listener","ExportListComponent_ng_template_205_Template","ExportListComponent_ng_template_221_Template","ExportListComponent_div_222_Template","_c7","advancedSearchCaption","_r0","valid","PolicyListComponent_input_85_Template_input_ngModelChange_0_listener","PolicyListComponent_input_86_Template_input_ngModelChange_0_listener","_r34","ctx_r33","PolicyListComponent_input_87_Template_input_ngModelChange_0_listener","_r37","getMsigPolicyNoDisplayText","dataItem_r38","getCinDisplayText","dataItem_r39","getProposalTypeDisplayText","dataItem_r40","getOpenItemStatusDisplayText","dataItem_r41","dataItem_r42","transactionHistories","PolicyListComponent","t","searchPolicyListing","openItemStatusEnum","openItemStatusId","translateOpenItemStatus","MSIGPolicyNo","hasTransactionHistories","PolicyListComponent_Query","PolicyListComponent_Template_form_ngSubmit_0_listener","PolicyListComponent_Template_input_ngModelChange_10_listener","PolicyListComponent_Template_input_ngModelChange_17_listener","PolicyListComponent_Template_input_ngModelChange_24_listener","PolicyListComponent_Template_kendo_datepicker_focus_32_listener","PolicyListComponent_Template_kendo_datepicker_valueChange_32_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_32_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_38_listener","PolicyListComponent_Template_kendo_datepicker_focus_46_listener","PolicyListComponent_Template_kendo_datepicker_valueChange_46_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_46_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_52_listener","PolicyListComponent_Template_kendo_datepicker_focus_60_listener","PolicyListComponent_Template_kendo_datepicker_valueChange_60_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_60_listener","PolicyListComponent_Template_kendo_datepicker_ngModelChange_66_listener","PolicyListComponent_Template_input_ngModelChange_76_listener","PolicyListComponent_label_81_Template","PolicyListComponent_label_82_Template","PolicyListComponent_label_83_Template","PolicyListComponent_input_85_Template","PolicyListComponent_input_86_Template","PolicyListComponent_input_87_Template","PolicyListComponent_Template_input_ngModelChange_95_listener","PolicyListComponent_Template_input_ngModelChange_103_listener","PolicyListComponent_Template_kendo_dropdownlist_ngModelChange_113_listener","PolicyListComponent_Template_kendo_multiselect_ngModelChange_121_listener","PolicyListComponent_Template_button_click_122_listener","PolicyListComponent_Template_kendo_grid_pageChange_132_listener","PolicyListComponent_Template_kendo_grid_selectionChange_132_listener","PolicyListComponent_Template_kendo_grid_cellClick_132_listener","PolicyListComponent_ng_template_135_Template","PolicyListComponent_ng_template_140_Template","PolicyListComponent_ng_template_145_Template","PolicyListComponent_ng_template_147_Template","PolicyListComponent_ng_template_150_Template","PolicyListComponent_ng_template_151_Template","PolicyListComponent_div_152_Template","_c4","MfHkDoManualPayComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener","MfHkDoManualPayComponent_kendo_dialog_0_div_4_Template","MfHkDoManualPayComponent_kendo_dialog_0_Template_input_ngModelChange_16_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_input_ngModelChange_36_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_input_change_36_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_input_ngModelChange_39_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_input_change_39_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_textarea_ngModelChange_46_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_button_click_48_listener","MfHkDoManualPayComponent_kendo_dialog_0_Template_button_click_50_listener","MfHkDoManualPayComponent","isPaidByHase","MfHkDoManualPayComponent_Template","MfHkDoManualPayComponent_kendo_dialog_0_Template","MfHkDoRefundComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener","MfHkDoRefundComponent_kendo_dialog_0_div_4_Template","MfHkDoRefundComponent_kendo_dialog_0_Template_input_ngModelChange_29_listener","MfHkDoRefundComponent_kendo_dialog_0_Template_textarea_ngModelChange_35_listener","MfHkDoRefundComponent_kendo_dialog_0_Template_button_click_37_listener","MfHkDoRefundComponent_kendo_dialog_0_Template_button_click_39_listener","MfHkDoRefundComponent","MfHkDoRefundComponent_Template","MfHkDoRefundComponent_kendo_dialog_0_Template","MfHkOpenItemListComponent_ng_template_3_Template_form_ngSubmit_0_listener","_r18","MfHkOpenItemListComponent_ng_template_3_Template_input_input_10_listener","MfHkOpenItemListComponent_ng_template_3_Template_input_ngModelChange_10_listener","ctx_r20","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_18_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_valueChange_18_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_24_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_34_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_41_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_valueChange_41_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_47_listener","MfHkOpenItemListComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_57_listener","ctx_r28","selectedStatusIds","MfHkOpenItemListComponent_ng_template_3_Template_kendo_dateinput_valueChange_65_listener","ctx_r29","MfHkOpenItemListComponent_ng_template_3_Template_kendo_dateinput_ngModelChange_65_listener","isPaymentMonthSelected","MfHkOpenItemListComponent_mf_hk_open_item_details_32_Template_mf_hk_open_item_details_closeDialogEvent_0_listener","MfHkOpenItemListComponent_mf_hk_do_manual_pay_33_Template_mf_hk_do_manual_pay_makePayment_0_listener","_r36","ctx_r35","makeHasePaymentHandler","MfHkOpenItemListComponent_mf_hk_do_manual_pay_33_Template_mf_hk_do_manual_pay_cancel_0_listener","MfHkOpenItemListComponent_mf_hk_do_refund_34_Template_mf_hk_do_refund_doRefund_0_listener","_r39","ctx_r38","MfHkOpenItemListComponent_mf_hk_do_refund_34_Template_mf_hk_do_refund_cancel_0_listener","ctx_r40","MfHkOpenItemListComponent","timestamp","isNaN","map","doHaseManualPay","PendingRefund","doHaseRefund","downloadHaseOpenItemPolicies","haseColumns","MfHkOpenItemListComponent_Template","MfHkOpenItemListComponent_ng_template_3_Template","MfHkOpenItemListComponent_Template_button_click_5_listener","MfHkOpenItemListComponent_Template_button_click_8_listener","MfHkOpenItemListComponent_Template_kendo_grid_sortChange_13_listener","MfHkOpenItemListComponent_Template_kendo_grid_pageChange_13_listener","MfHkOpenItemListComponent_Template_kendo_grid_selectedKeysChange_13_listener","MfHkOpenItemListComponent_Template_kendo_grid_selectionChange_13_listener","MfHkOpenItemListComponent_Template_kendo_grid_cellClick_13_listener","MfHkOpenItemListComponent_ng_template_30_Template","MfHkOpenItemListComponent_div_31_Template","MfHkOpenItemListComponent_mf_hk_open_item_details_32_Template","MfHkOpenItemListComponent_mf_hk_do_manual_pay_33_Template","MfHkOpenItemListComponent_mf_hk_do_refund_34_Template","MfHkOpenItemListComponent_div_35_Template","_c1","ɵɵstyleMap","_c2","MfHkSearchCriteria","GridComponent","dataItem_r25","dataItem_r26","MfHkPolicyListComponent","migratedOptions","defaultMigratedItem","httpRequesting","expandedDetailKeys","expandDetailsBy","interfaceDateFrom","interfaceDateTo","getHaseUnderwriterUserList","getHaseUserList","on_searchInterfaceDateFrom_focus","on_searchInterfaceDateFrom_change","toDoInterfaceDateTo_min","toDoInterfaceDateTo_max","toDoInterfaceDateTo","insuredPropertyAddress","mortgageLoanAccountNumber1","migrated","searchHasePolicyListing","MfHkPolicyListComponent_Query","MfHkPolicyListComponent_Template_form_ngSubmit_0_listener","MfHkPolicyListComponent_Template_input_ngModelChange_10_listener","MfHkPolicyListComponent_Template_input_ngModelChange_17_listener","MfHkPolicyListComponent_Template_input_ngModelChange_24_listener","MfHkPolicyListComponent_Template_kendo_datepicker_focus_32_listener","MfHkPolicyListComponent_Template_kendo_datepicker_valueChange_32_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_32_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_38_listener","MfHkPolicyListComponent_Template_kendo_datepicker_focus_46_listener","MfHkPolicyListComponent_Template_kendo_datepicker_valueChange_46_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_46_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_52_listener","MfHkPolicyListComponent_Template_kendo_datepicker_focus_60_listener","MfHkPolicyListComponent_Template_kendo_datepicker_valueChange_60_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_60_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_66_listener","MfHkPolicyListComponent_Template_input_ngModelChange_76_listener","MfHkPolicyListComponent_Template_input_ngModelChange_84_listener","MfHkPolicyListComponent_Template_kendo_multiselect_ngModelChange_94_listener","MfHkPolicyListComponent_Template_kendo_datepicker_focus_101_listener","MfHkPolicyListComponent_Template_kendo_datepicker_valueChange_101_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_101_listener","MfHkPolicyListComponent_Template_kendo_datepicker_ngModelChange_107_listener","MfHkPolicyListComponent_Template_kendo_dropdownlist_ngModelChange_117_listener","MfHkPolicyListComponent_Template_input_ngModelChange_124_listener","MfHkPolicyListComponent_Template_kendo_dropdownlist_ngModelChange_133_listener","MfHkPolicyListComponent_Template_kendo_multiselect_ngModelChange_141_listener","MfHkPolicyListComponent_Template_kendo_dropdownlist_ngModelChange_148_listener","MfHkPolicyListComponent_Template_button_click_149_listener","MfHkPolicyListComponent_Template_kendo_grid_pageChange_159_listener","MfHkPolicyListComponent_Template_kendo_grid_selectionChange_159_listener","MfHkPolicyListComponent_Template_kendo_grid_cellClick_159_listener","MfHkPolicyListComponent_Template_kendo_grid_expandedDetailKeysChange_159_listener","MfHkPolicyListComponent_ng_template_168_Template","MfHkPolicyListComponent_ng_template_170_Template","MfHkPolicyListComponent_ng_template_176_Template","MfHkPolicyListComponent_ng_template_177_Template","MfHkPolicyListComponent_div_178_Template","MfHkTodoListComponent_ng_template_160_Template_input_click_0_listener","_r25","dataItem_r23","idx_r22","ɵɵstyleProp","MfHkTodoListComponent","searchHaseTodoPolicyListing","MfHkTodoListComponent_Query","MfHkTodoListComponent_Template_form_ngSubmit_0_listener","MfHkTodoListComponent_Template_input_ngModelChange_10_listener","MfHkTodoListComponent_Template_input_ngModelChange_17_listener","MfHkTodoListComponent_Template_input_ngModelChange_24_listener","MfHkTodoListComponent_Template_kendo_datepicker_focus_32_listener","MfHkTodoListComponent_Template_kendo_datepicker_valueChange_32_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_32_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_38_listener","MfHkTodoListComponent_Template_kendo_datepicker_focus_46_listener","MfHkTodoListComponent_Template_kendo_datepicker_valueChange_46_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_46_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_52_listener","MfHkTodoListComponent_Template_kendo_datepicker_focus_60_listener","MfHkTodoListComponent_Template_kendo_datepicker_valueChange_60_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_60_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_66_listener","MfHkTodoListComponent_Template_input_ngModelChange_76_listener","MfHkTodoListComponent_Template_input_ngModelChange_84_listener","MfHkTodoListComponent_Template_kendo_multiselect_ngModelChange_94_listener","MfHkTodoListComponent_Template_kendo_datepicker_focus_101_listener","MfHkTodoListComponent_Template_kendo_datepicker_valueChange_101_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_101_listener","MfHkTodoListComponent_Template_kendo_datepicker_ngModelChange_107_listener","MfHkTodoListComponent_Template_kendo_dropdownlist_ngModelChange_117_listener","MfHkTodoListComponent_Template_input_ngModelChange_124_listener","MfHkTodoListComponent_Template_kendo_dropdownlist_ngModelChange_133_listener","MfHkTodoListComponent_Template_kendo_multiselect_ngModelChange_141_listener","MfHkTodoListComponent_Template_kendo_dropdownlist_ngModelChange_148_listener","MfHkTodoListComponent_Template_button_click_149_listener","MfHkTodoListComponent_Template_kendo_grid_pageChange_158_listener","MfHkTodoListComponent_Template_kendo_grid_selectedKeysChange_158_listener","MfHkTodoListComponent_Template_kendo_grid_selectionChange_158_listener","MfHkTodoListComponent_Template_kendo_grid_cellClick_158_listener","MfHkTodoListComponent_ng_template_160_Template","MfHkTodoListComponent_ng_template_178_Template","MfHkTodoListComponent_div_179_Template","BaseClientCreateComponent","ClientEntity","dialogActionNotifier","EnumSG","Global","ClientAddressEntity","DIALOG_DATA","MfHkAddressHelpFormComponent","errorMsgInHtml","ɵɵsanitizeHtml","MfHkClientCreateComponent_div_4_div_2_label_13_Template_input_ngModelChange_1_listener","changedVal","MfHkClientCreateComponent_div_4_div_2_label_13_Template_input_click_1_listener","selectClientType","MfHkClientCreateComponent_div_4_div_2_Template_input_ngModelChange_6_listener","_r21","MfHkClientCreateComponent_div_4_div_2_Template_input_click_6_listener","MfHkClientCreateComponent_div_4_div_2_Template_input_ngModelChange_10_listener","MfHkClientCreateComponent_div_4_div_2_Template_input_click_10_listener","MfHkClientCreateComponent_div_4_div_2_label_13_Template","showClientTypeOthers","MfHkClientCreateComponent_div_4_form_22_Template_input_ngModelChange_4_listener","_r26","clientData","nric","MfHkClientCreateComponent_div_4_form_22_Template_input_blur_4_listener","nricPassportValidation","_c3","isEmpty","MfHkClientCreateComponent_div_4_form_23_Template_input_ngModelChange_4_listener","_r29","passportNo","MfHkClientCreateComponent_div_4_form_23_Template_input_blur_4_listener","docType","MfHkClientCreateComponent_div_4_form_24_Template_input_ngModelChange_4_listener","_r32","ctx_r31","businessRegistrationNumber","MfHkClientCreateComponent_div_4_form_24_Template_input_blur_4_listener","businessRegistrationNumberToCIN","MfHkClientCreateComponent_div_4_form_25_Template_input_ngModelChange_4_listener","businessRegistrationNumber2","MfHkClientCreateComponent_div_4_form_25_Template_input_blur_4_listener","MfHkClientCreateComponent_div_4_form_26_Template_input_ngModelChange_4_listener","_r38","dbsClientReferenceNumber","MfHkClientCreateComponent_div_4_form_26_Template_input_blur_4_listener","dbsClientReferenceNumberToCIN","MfHkClientCreateComponent_div_4_div_2_Template","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_13_listener","_r41","clientName","MfHkClientCreateComponent_div_4_Template_kendo_dropdownlist_ngModelChange_20_listener","MfHkClientCreateComponent_div_4_Template_kendo_dropdownlist_valueChange_20_listener","ctx_r43","documentTypeChange","MfHkClientCreateComponent_div_4_form_22_Template","MfHkClientCreateComponent_div_4_form_23_Template","MfHkClientCreateComponent_div_4_form_24_Template","MfHkClientCreateComponent_div_4_form_25_Template","MfHkClientCreateComponent_div_4_form_26_Template","MfHkClientCreateComponent_div_4_div_35_Template","MfHkClientCreateComponent_div_4_Template_span_click_39_listener","ctx_r44","openAddressHelp","MfHkClientCreateComponent_div_4_Template_input_onAddressChange_43_listener","ctx_r45","updateAddressValues","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_50_listener","ctx_r46","addressLine1","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_57_listener","addressLine2","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_64_listener","addressLine3","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_71_listener","ctx_r49","addressLine4","MfHkClientCreateComponent_div_4_Template_div_click_76_listener","ctx_r50","resetClientAddressForm","MfHkClientCreateComponent_div_4_Template_input_blur_83_listener","ctx_r51","phoneValidation","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_83_listener","ctx_r52","mobileNumber","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_89_listener","MfHkClientCreateComponent_div_4_Template_input_blur_89_listener","ctx_r54","emailValidation","MfHkClientCreateComponent_div_4_Template_input_blur_95_listener","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_95_listener","ctx_r56","phoneNoHome","MfHkClientCreateComponent_div_4_Template_input_blur_101_listener","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_101_listener","ctx_r58","phoneNoOffice","MfHkClientCreateComponent_div_4_Template_input_ngModelChange_107_listener","faxNumber","isCreate","documentTypeLabel","defaultItem","docTypeList","isChangeOfClientInfo","googlePlacesOptions","MfHkClientCreateComponent","clientService","inputData","dialogRef","productService","proposalService","addAddress3RO","addAddress4RO","isOthers","emptyFieldValidation","showErrorMessage","cinNo","clientType","currentTarget","setClientType","personInCharge","salutation","birthDate","gender","maritalStatus","occupation","race","componentsInitialize","place","componentForm","divId","address_components","addressType","types","val1","long_name","validateReadOnlyAddress","val2","val3","city","val4","postCode","val5","short_name","found","hkDistrictList","find","hkDistrictCode","val6","countryISO2","trim","getIsStateVisible","inputReadOnlyAddress","inputId","readOnlyFields","addAddress1RO","addAddress2RO","addCityRO","addPostcodeRO","addStateRO","addCountryRO","inputValue","errorText","phoneno","match","getPhoneValidationText","createClient","customerTypeCheck","personalMandatory","orgMandatory","otherMandatory","contactMandatory","allMandatoryField","label","qid","atLeastOneCarParkAddressIsFilled","ClientType","Person","Others","concat","postBackData","errorMessageIndicator","htmlErrorMessage","clientAddressData","clientAddressID","proposal","customerMappingAddressID","clientID","customerMappingId","buildingName","unitNo","stateName","contact1","contact2","clientCode","incorporatedDate","pagerNo","nationality","productBase","ProductBase","HASE","replace","isProcessing","clientActionData","endorsementType","EndorsementType","ChangeOfClientInfo","TransType","END","clientModel","ClientSave","cancel_notifier$","next","isNewClient","labelText","h3LabelText","getClient_Promise","updateClientData","dialogOkNotifierSubscription","ok_notifier$","initialize","getClient","isIncomplete","Incomplete","get","qsMaster","qs_master_insuredNo","toPromise","nationalityList","countryList","subscribeTabLoadRenderer","initializeQuestionSchema","initProductFactory","getHkDistrictCodes","responseHkDistrictCodes","ngAfterViewInit","clientInformation_autocomplete","options","componentRestrictions","productFactory","getHKProductFactory","productType","googlePlaces","getGooglePlacesOptions","isPersonal","isOrganization","setCinText","CINText","clientAddressMandatory","allContactMandatoryField","updateNativeElement","insuredAddress_lotunit","insuredAddress_building","insuredAddress1","insuredAddress2","insuredAddress3","insuredAddress4","insuredCity","insuredPostalCode","insuredState","showGeoCode","clientCreateDialogRef","ClientService","DialogRef","ProductService","MfHKProposalService","MfHkClientCreateComponent_Query","MfHkClientCreateComponent_Template_kendo_dialog_close_0_listener","close","MfHkClientCreateComponent_div_2_Template","MfHkClientCreateComponent_div_3_Template","MfHkClientCreateComponent_div_4_Template","MfHkClientCreateComponent_Template_button_click_7_listener","MfHkClientCreateComponent_Template_button_click_9_listener","MdDetailsComponent","MfSgEquipmentListingEntity","KeyValue","MfSgBaseComponent","proposalServiceNotifier","MfSgEquipmentListingComponent_ng_template_2_ng_template_0_Template","dataItem_r6","equipmentType","MfSgEquipmentListingComponent_ng_template_4_span_0_Template","MfSgEquipmentListingComponent_ng_template_10_Template_span_click_4_listener","dataItem_r9","hideActions","MfSgEquipmentListingComponent","equipmentDataOnUpdate","equipmentDataOnCreate","equipmentDataOnDestroy","subscribeProposalLoadedNotifier","equipmentData","readOnly","subscribeProposalSavedNotifier","ngOnDestroy","unsubscribeRxjs","component","getEquipmentListingDetails","clearEquipmentListing","v","refreshEquipmentListing","processTableDataEquipment","jsonParsed","rowID","additionalInfo","slice","onTabSelect","onEquipmentListingStateChange","state","addEquipmentListingHandler","masterPolicyQuestion","isAnswered","editEquipmentListingDataItem","isNewEquipmentListing","policyNumberConfirmationPopup","editEquipmentListingHandler","cancelEquipmentListingHandler","saveEquipmentListingHandler","equipmentListingEntity","updatedData","typeOfFinancing","equipmentDescription","saved_notifier$","removeEquipmentListingHandler","deleteConfirmationPopup","confirmationModalCloseForDetailsActions","MfSgEquipmentListingComponent_Query","MfSgEquipmentListingComponent_Template_kendo_grid_dataStateChange_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_edit_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_remove_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_add_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_pageChange_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_selectedKeysChange_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_selectionChange_1_listener","MfSgEquipmentListingComponent_Template_kendo_grid_cellClick_1_listener","MfSgEquipmentListingComponent_ng_template_2_Template","MfSgEquipmentListingComponent_ng_template_4_Template","MfSgEquipmentListingComponent_ng_template_10_Template","MfSgEquipmentListingComponent_ng_template_11_Template","MfSgEquipmentListingComponent_Template_app_mf_sg_equipment_listing_edit_form_save_12_listener","MfSgEquipmentListingComponent_Template_app_mf_sg_equipment_listing_edit_form_cancel_12_listener","MfSgEquipmentListingComponent_div_13_Template","equipmentDropdownOptions","log_r4","LstRateComponent_ng_template_3_div_0_li_13_Template","errorLogs","Logs","LstRateComponent_ng_template_3_tr_17_Template_kendo_textbox_ngModelChange_4_listener","lstRate_r5","LSTRICode","Value","LstRateComponent_ng_template_3_tr_17_Template_kendo_textbox_keyup_4_listener","validate","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_ngModelChange_7_listener","ReferencePercentage","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_keyup_7_listener","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_valueChange_7_listener","on_oiFrom_change","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_ngModelChange_10_listener","RICommissionPercentage","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_keyup_10_listener","LstRateComponent_ng_template_3_tr_17_Template_kendo_numerictextbox_valueChange_10_listener","LstRateComponent_ng_template_3_tr_17_Template_kendo_datepicker_ngModelChange_13_listener","EffectiveStartDate","LstRateComponent_ng_template_3_tr_17_Template_kendo_datepicker_valueChange_13_listener","SortOrder","OldValue","LstRateComponent_ng_template_3_div_0_Template","LstRateComponent_ng_template_3_tr_17_Template","LstRateComponent_ng_template_3_Template_button_click_20_listener","_r22","onConfirmUpdate","LstRateComponent_ng_template_3_Template_button_click_22_listener","errorLogCheck","lstRates","isDirty","LstRateComponent","lstRateService","DirtyCheck","sumOfReferencePercentage","lstRate","IsExternalParty","parseFloat","toFixed","IsDirty","CheckDirty","getLstRates","oItem","rItem","mapToLstRateEntity","a","b","updateLstRates","AddGroupErrorMessageBySplitting","errorMessage","errorMessages","reverse","LstRateService","LstRateComponent_Query","LstRateComponent_Template_kendo_tabstrip_tabSelect_1_listener","LstRateComponent_ng_template_3_Template","UploadExcel","HttpHeaders","log_r5","MultiYearAutoDebitUploadComponent_kendo_expansionpanel_2_li_8_Template","Title","excelFilesErrorMessage","MultiYearAutoDebitUploadComponent_app_md_successful_file_upload_14_Template_app_md_successful_file_upload_closeDialogEvent_0_listener","_r7","confirmationModelForSuccessullExcelUpload","redirectMessage","redirectData","MultiYearAutoDebitUploadComponent","httpClient","excelAndSizeRestrictions","allowedExtensions","maxFileSize","uploadExcel","sub","segmentDetails","isUndefined","unsubscribe","resetFiles","files","removeEvent","totalFileSize","getUploadedClaimFilesTotalSize","uploadExcels","file","validationErrors","rawFile","size","add","addExcel","getUploadedExcelFiles","uploadedExcel","uploadedExcelFormData","uploadMultiYearAutoDebit","multiyearAutoDebitSummaryReport","validationMessage","reportType","url","headers","params","serviceBase","responseType","observe","fileName","generateAnchorAndTriggerDownload","ActivatedRoute","HttpClient","MultiYearAutoDebitUploadComponent_Template","MultiYearAutoDebitUploadComponent_kendo_expansionpanel_2_Template","MultiYearAutoDebitUploadComponent_label_8_Template","MultiYearAutoDebitUploadComponent_Template_kendo_fileselect_select_9_listener","MultiYearAutoDebitUploadComponent_Template_kendo_fileselect_remove_9_listener","MultiYearAutoDebitUploadComponent_Template_button_click_11_listener","MultiYearAutoDebitUploadComponent_i_12_Template","MultiYearAutoDebitUploadComponent_app_md_successful_file_upload_14_Template","PolicyWordingEntity","log_r14","PolicyWordigSetupComponent_ng_template_3_kendo_expansionpanel_1_li_8_Template","PolicyWordigSetupComponent_ng_template_3_div_45_Template_kendo_dropdownlist_ngModelChange_8_listener","_r16","policyWording","policyWordingDocumentSetupId","PolicyWordigSetupComponent_ng_template_3_div_45_Template_kendo_dropdownlist_valueChange_8_listener","onTitleChange","documentTitleList","PolicyWordigSetupComponent_ng_template_3_div_46_span_5_Template_span_click_0_listener","_r20","downloadDocument","documentName","PolicyWordigSetupComponent_ng_template_3_div_46_span_5_Template","isUpdate","PolicyWordigSetupComponent_ng_template_3_div_48_Template_input_ngModelChange_8_listener","documentTitle","PolicyWordigSetupComponent_ng_template_3_div_49_Template_input_ngModelChange_6_listener","_r24","documentChange","ɵɵpropertyInterpolate","PolicyWordigSetupComponent_ng_template_3_div_50_label_7_Template","PolicyWordigSetupComponent_ng_template_3_div_50_Template_kendo_fileselect_select_8_listener","_r27","PolicyWordigSetupComponent_ng_template_3_div_50_Template_kendo_fileselect_remove_8_listener","PolicyWordigSetupComponent_ng_template_3_button_53_Template_button_click_0_listener","PolicyWordigSetupComponent_ng_template_3_button_53_i_1_Template","PolicyWordigSetupComponent_ng_template_3_button_54_Template_button_click_0_listener","PolicyWordigSetupComponent_ng_template_3_button_54_i_1_Template","PolicyWordigSetupComponent_ng_template_3_kendo_expansionpanel_1_Template","PolicyWordigSetupComponent_ng_template_3_Template_form_ngSubmit_2_listener","PolicyWordigSetupComponent_ng_template_3_Template_kendo_dropdownlist_ngModelChange_13_listener","PolicyWordigSetupComponent_ng_template_3_Template_kendo_dropdownlist_valueChange_13_listener","onProductTypeChange","PolicyWordigSetupComponent_ng_template_3_Template_kendo_multiselect_ngModelChange_23_listener","PolicyWordigSetupComponent_ng_template_3_Template_kendo_multiselect_valueChange_23_listener","onPolicyTypeChange","PolicyWordigSetupComponent_ng_template_3_Template_kendo_datepicker_ngModelChange_33_listener","startEffectiveDate","PolicyWordigSetupComponent_ng_template_3_Template_kendo_dropdownlist_ngModelChange_43_listener","documentVersion","PolicyWordigSetupComponent_ng_template_3_div_45_Template","PolicyWordigSetupComponent_ng_template_3_div_46_Template","PolicyWordigSetupComponent_ng_template_3_div_48_Template","PolicyWordigSetupComponent_ng_template_3_div_49_Template","PolicyWordigSetupComponent_ng_template_3_div_50_Template","PolicyWordigSetupComponent_ng_template_3_button_53_Template","PolicyWordigSetupComponent_ng_template_3_button_54_Template","PolicyWordigSetupComponent_ng_template_3_Template_button_click_55_listener","productTypeList","minEffectiveDate","maxEffectiveDate","ɵɵpipeBind2","dataItem_r51","dataItem_r52","endEffectiveDate","dataItem_r53","updatedDate","dataItem_r54","PolicyWordigSetupComponent_div_4_ng_template_15_button_0_Template_button_click_0_listener","_r59","dataItem_r55","updatePolicyHandler","PolicyWordigSetupComponent_div_4_ng_template_15_button_0_Template","PolicyWordigSetupComponent_div_4_ng_template_15_Template_i_click_2_listener","_r61","downloadPolicies","PolicyWordigSetupComponent_div_4_Template_kendo_grid_pageChange_1_listener","_r65","ctx_r64","PolicyWordigSetupComponent_div_4_Template_kendo_grid_selectedKeysChange_1_listener","ctx_r66","PolicyWordigSetupComponent_div_4_Template_kendo_grid_cellClick_1_listener","ctx_r67","PolicyWordigSetupComponent_div_4_ng_template_6_Template","PolicyWordigSetupComponent_div_4_ng_template_8_Template","PolicyWordigSetupComponent_div_4_ng_template_11_Template","PolicyWordigSetupComponent_div_4_ng_template_13_Template","PolicyWordigSetupComponent_div_4_ng_template_15_Template","PolicyWordigSetupComponent_div_4_ng_template_16_Template","PolicyWordigSetupComponent_div_4_div_17_Template","PolicyWordigSetupComponent","policyWordingSetUpService","_minTransactionDate","lstPolicyWording","dateValidationMsg","docTitleValidationMsg","policyForm","getPolicyListOfWordingSetUp","columns","fetchPolicyTypeList","getDocumentTitleList","uploadPdf","getPolicyTypeList","titleList","addpdf","uplodedExcelFormData","populateFormData","uploadPolicyWording","ConfirmationErrorPopup","Message","GetPolicyWordingSetUpList","toUTCString","confirmationErrorModalCloseForActions","isArray","callGetPolicyWordingSetUpListdList","getPolicyWordingSetUpList","errormessage","PolicyWordingSetupService","PolicyWordigSetupComponent_Query","PolicyWordigSetupComponent_ng_template_3_Template","PolicyWordigSetupComponent_div_4_Template","RmScreenListingEntity","RmScreenComponent_ng_template_3_ng_template_2_ng_template_0_Template","column_r12","filter_r11","filterService_r13","column_r15","filter_r14","filterService_r16","column_r18","filter_r17","filterService_r19","column_r21","filter_r20","filterService_r22","RmScreenComponent_ng_template_3_Template_kendo_grid_dataStateChange_1_listener","onRmStateChange","RmScreenComponent_ng_template_3_Template_kendo_grid_edit_1_listener","editRmHandler","RmScreenComponent_ng_template_3_Template_kendo_grid_remove_1_listener","removeRmHandler","RmScreenComponent_ng_template_3_Template_kendo_grid_add_1_listener","addRmHandler","RmScreenComponent_ng_template_3_Template_kendo_grid_pageChange_1_listener","RmScreenComponent_ng_template_3_Template_kendo_grid_selectedKeysChange_1_listener","RmScreenComponent_ng_template_3_Template_kendo_grid_selectionChange_1_listener","RmScreenComponent_ng_template_3_Template_kendo_grid_cellClick_1_listener","RmScreenComponent_ng_template_3_ng_template_2_Template","RmScreenComponent_ng_template_3_ng_template_4_Template","RmScreenComponent_ng_template_3_ng_template_6_Template","RmScreenComponent_ng_template_3_ng_template_8_Template","RmScreenComponent_ng_template_3_ng_template_10_Template","RmScreenComponent_ng_template_3_ng_template_12_Template","RmScreenComponent_ng_template_3_ng_template_13_Template","RmScreenComponent_ng_template_3_Template_app_rm_grid_edit_form_save_14_listener","saveRmHandler","RmScreenComponent_ng_template_3_Template_app_rm_grid_edit_form_cancel_14_listener","cancelRmHandler","RmScreenComponent_ng_template_3_div_15_Template","editRmDataItem","isNewRm","RmScreenComponent","rmScreenService","getRmdetails","rmScreenEntity","save","IsSuccess","Id","officeNumber","pcCode","rMName","teamName","clearFinancialInstitutionBranches","deleteRM","RmScreenService","RmScreenComponent_Query","RmScreenComponent_Template_kendo_tabstrip_tabSelect_1_listener","RmScreenComponent_ng_template_3_Template","ApiService","errorHandlerService","dialog","SERVER_URL_BATCH_INVOICE_SEARCH","SERVER_URL_BATCH_INVOICE_HISTORY","SERVER_URL_BATCH_INVOICE_EXPORT","SERVER_URL_BATCH_INVOICE_DETAILS","SERVER_URL_BATCH_PROCESSING","SERVER_URL_BATCH_NUMBER_SEARCH","SERVER_URL_BATCH_NUMBER_UPDATE","SERVER_URL_BATCH_DOWNLOAD_ALL","format","post","reportProgress","getBatchInvoiceHistory","getBatchInvoiceDetails","exportBatchInvoiceListing","put","doSearchInvoiceNumberHandler","doUpdateInvoiceNumberHandler","invoiceNumber","allPoliciesDownloadEntityList","ɵɵinject","ErrorHandlerService","DialogWrapperService","factory","ɵfac","providedIn","LstRateEntity","SERVER_URL_LST_RATE_DETAILS","SERVER_URL_LST_RATE_UPDATE","lstRateData","uri","lstRateEntity","lstEntities","lstEntity","ID","toLocaleString","EffectiveEndDate","CreatedBY","Remarks","httpPostCall","getHeaderAsJson","constructEndPoint","dao","GUID","of","MasterPolicyEntity","jsonVersion","SERVER_URL_TODOSEARCH","SERVER_URL_HASE_TODOSEARCH","SERVER_URL_POLICYSEARCH","SERVER_URL_HASE_POLICYSEARCH","SERVER_URL_EXPORTSEARCH","SERVER_URL_EXPORTEXPORT","SERVER_URL_GETPROPOSALDATESUBMITTED","SERVER_URL_HASE_REPORT","getbyMasterPolicyId","masterPolicyDictionary","getProposalDateSubmitted","pipe","getListByProduct","submittedDate","notAppendPolicy","productMasterPolicyListDictionary","masterPolicyData","getApiData","list","commissionRate","homeContentSumInsuredAmount","isMI","masterPolicyNumber","noOfFreeInsuranceYear","productName","typeDescription","productIdText","userMasterPolicyData","productListing","product","exportReport","reportId","saveAs","PolicyCustomerLoginService","SERVER_URL_GET_OTP","SERVER_URL_VALIDATE_OTP","SERVER_URL_CALCULATE_PREMIUM","SERVER_URL_ACCEPT_REJECT_OFFER","SERVER_URL_GET_FAQS","isCustomerLogin","isCustomerOTP","isCustomerOffer","downloadFaqs","Blob","type","URL","createObjectURL","getOTP","userEmailMobile","dob","last4UniqueId","userEmailOrMobile","dobInDDMMYY","otpStatus","validateOtpWithDds","enc","otp","calculatePremium","encProposalId","encExpiryDate","_this3","premiumDetail","acceptReject","acceptOrReject","_this4","offerDetail","ReconcileListService","searchReconcilePolicies","rmScreenListingData","httpDeleteCall","SERVER_URL_BOUNCEDMAILPOLICY","SERVER_URL_LOANREDEMPTION","SERVER_URL_IBGPROPOSALUPLOAD","SERVER_URL_REVIEWREFUNDUPLOAD","SERVER_URL_REVIEWUPLOAD","SERVER_URL_GSTADJUSTMENTUPLOAD","SERVER_URL_UPLOADRECONCILE","SERVER_URL_UPLOAD_MULTI_YEAR_AUTO_DEBIT","SERVER_URL_UPLOADPOLICYWORDING","upload","uploadAsResponse","uploadBouncedMailPolicy","uploadAutoLoanRedemption","uploadIbgProposal","uploadReviewRefund","uploadRefund","uploadGSTAdjustment","generateGSTAdjustmentReport","nav","navigator","msSaveOrOpenBlob","document","createElement","appendChild","setAttribute","download","click","revokeObjectURL","remove","uploadReconcile","bulkActionModel","putData","IBGLoanRedemptionFailureEntity","IBGLoanRedemptionSuccessEntity"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}