{"version":3,"file":"app-1cadf792.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.html","webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.css?a8f8","webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.ts"],"sourcesContent":["// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// extracted by mini-css-extract-plugin\nexport default {\"screen-container\":\"screen-container____IRzBo\",\"screen-container--client\":\"screen-container--client____lgk24 screen-container____IRzBo\",\"screen-container--dashboard\":\"screen-container--dashboard____SfXMJ screen-container--client____lgk24 screen-container____IRzBo\",\"screen-container--home\":\"screen-container--home____UviQE screen-container____IRzBo\",\"screen-container--menu\":\"screen-container--menu____Q9ktg screen-container____IRzBo\",\"screen-container--accounts-override\":\"screen-container--accounts-override____y1Xbk screen-container____IRzBo\",\"screen-container--accounts-override-xxl\":\"screen-container--accounts-override-xxl____Ioc8G screen-container____IRzBo\",\"empty-state\":\"empty-state____WOYPj\",\"empty-state--icon\":\"empty-state--icon____BuwW4\",\"empty-heading\":\"empty-heading____G5oub\",\"empty-subheading\":\"empty-subheading____puQMx\",\"kyc\":\"kyc____yNdFk\",\"advice\":\"advice____lt4Hn\",\"insured\":\"insured____j7DmG\",\"quotes\":\"quotes____VqUFK\",\"policies\":\"policies____MyEhB\",\"claims\":\"claims____j99HF\",\"tasks\":\"tasks____T7m7B\",\"documents\":\"documents____pNpQx\",\"forms\":\"forms____rAbmM\",\"btn\":\"btn____p6ykY\",\"btn--flat\":\"btn--flat____iaRc8 btn____p6ykY\",\"btn--submit\":\"btn--submit____dWOPH btn____p6ykY\",\"btn--delete\":\"btn--delete____o2gIv btn____p6ykY\",\"btn--link\":\"btn--link____xZNZx btn____p6ykY\",\"btn--inline-text-link\":\"btn--inline-text-link____t6HPK btn--link____xZNZx btn____p6ykY\",\"btn--footer\":\"btn--footer____iDi32 btn____p6ykY\",\"btn--footer-submit\":\"btn--footer-submit____Jgdj_ btn--submit____dWOPH btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--footer-cancel\":\"btn--footer-cancel____kSj6E btn--flat____iaRc8 btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--footer-delete\":\"btn--footer-delete____EQxjC btn--delete____o2gIv btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--qce-dropdown\":\"btn--qce-dropdown____dUwRt btn--footer-submit____Jgdj_ btn--submit____dWOPH btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--footer-combo\":\"btn--footer-combo____MM_AZ btn--footer____iDi32 btn____p6ykY\",\"btn--lmi-bicalc\":\"btn--lmi-bicalc____e8PHU btn____p6ykY\",\"btn--lmi-risk\":\"btn--lmi-risk____a8HCZ btn____p6ykY\",\"btn--lmi-policy-comparison\":\"btn--lmi-policy-comparison____JtqOO btn____p6ykY\",\"btn--lmi-policy-coach\":\"btn--lmi-policy-coach____lVQKX btn____p6ykY\",\"btn--andrew-nock\":\"btn--andrew-nock____lZNDh btn____p6ykY\",\"btn--construction-cost-consultants\":\"btn--construction-cost-consultants____VeNM6 btn____p6ykY\",\"btn--5-star\":\"btn--5-star____Bm8WW btn____p6ykY\",\"btn--thermoscan\":\"btn--thermoscan____hK47f btn____p6ykY\",\"btn--risk-survey-services\":\"btn--risk-survey-services____vzrkr btn____p6ykY\",\"btn--risk-management\":\"btn--risk-management____T299T btn____p6ykY\",\"btn--lmi-bicalc--disabled\":\"btn--lmi-bicalc--disabled____JQ3Rd btn--lmi-bicalc____e8PHU btn____p6ykY\",\"btn--lmi-risk--disabled\":\"btn--lmi-risk--disabled____ZFJ3O btn--lmi-risk____a8HCZ btn____p6ykY\",\"btn--lmi-policy-comparison--disabled\":\"btn--lmi-policy-comparison--disabled____TYREg btn--lmi-policy-comparison____JtqOO btn____p6ykY\",\"btn--initial-insured-location-risk\":\"btn--initial-insured-location-risk____sJt4f btn--flat____iaRc8 btn____p6ykY btn____p6ykY\",\"btn--icon\":\"btn--icon____yq7cr btn____p6ykY\",\"badge-pop\":\"badge-pop____dmkz0\",\"btn--icon-no-border\":\"btn--icon-no-border____e1mwz\",\"btn--icon-task\":\"btn--icon-task____rvV8a btn--icon____yq7cr btn____p6ykY\",\"btn--icon-document\":\"btn--icon-document____SvOuv btn--icon____yq7cr btn____p6ykY\",\"btn--icon-add\":\"btn--icon-add____btPij btn--icon____yq7cr btn____p6ykY\",\"btn--add-risk\":\"btn--add-risk____fUxPe btn--icon____yq7cr btn____p6ykY\",\"btn--icon-close\":\"btn--icon-close____xEGz6 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-delete\":\"btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-download\":\"btn--icon-download____m67OM btn--icon____yq7cr btn____p6ykY\",\"btn--icon-edit\":\"btn--icon-edit____nH95n btn--icon____yq7cr btn____p6ykY\",\"btn--icon-email\":\"btn--icon-email____m5tq_ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-download-email\":\"btn--icon-download-email____NuF7r btn--icon____yq7cr btn____p6ykY\",\"btn--icon-eye\":\"btn--icon-eye____LNUMi btn--icon____yq7cr btn____p6ykY\",\"btn--icon-eye-slash\":\"btn--icon-eye-slash____cLdws btn--icon-eye____LNUMi btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder\":\"btn--icon-folder____iDOIh btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder-locked\":\"btn--icon-folder-locked____FhCWJ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder-locked-active\":\"btn--icon-folder-locked-active____crMnQ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-history\":\"btn--icon-history____WBq8w btn--icon____yq7cr btn____p6ykY\",\"btn--icon-info\":\"btn--icon-info____rZuFD btn--icon____yq7cr btn____p6ykY\",\"btn--icon-link\":\"btn--icon-link____fdDOt btn--icon____yq7cr btn____p6ykY\",\"btn--icon-unlink\":\"btn--icon-unlink____er4wf btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-map\":\"btn--icon-map____SRE26 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-more\":\"btn--icon-more____R3yBh btn--icon____yq7cr btn____p6ykY\",\"btn--icon-open-in-new-window\":\"btn--icon-open-in-new-window____KwB3p btn--icon____yq7cr btn____p6ykY\",\"btn--icon-favourite--selected\":\"btn--icon-favourite--selected____YjqRn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-favourite--deselected\":\"btn--icon-favourite--deselected____byjpv btn--icon____yq7cr btn____p6ykY\",\"btn--icon-preview\":\"btn--icon-preview____N9AAr btn--icon____yq7cr btn____p6ykY\",\"btn--icon-pre-printed\":\"btn--icon-pre-printed____aVdyd btn--icon____yq7cr btn____p6ykY\",\"btn--icon-print\":\"btn--icon-print____gjBoQ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-save\":\"btn--icon-save____R4ytm btn--icon____yq7cr btn____p6ykY\",\"btn--icon-settings\":\"btn--icon-settings____C9ZTi btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-details\":\"btn--icon-show-details____htYO7 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-details--alert\":\"btn--icon-show-details--alert____UJw58 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-summary\":\"btn--icon-show-summary____1I1Yn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-attachment\":\"btn--icon-attachment____ckvWg btn--icon____yq7cr btn____p6ykY\",\"btn--icon-tag\":\"btn--icon-tag____pB_ZF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-undo\":\"btn--icon-undo____wZiUd btn--icon____yq7cr btn____p6ykY\",\"btn--icon-sync\":\"btn--icon-sync____tXcSM btn--icon____yq7cr btn____p6ykY\",\"btn--icon-arrow-forward\":\"btn--icon-arrow-forward____qKOrt btn--icon____yq7cr btn____p6ykY\",\"btn--aside-collapse\":\"btn--aside-collapse____WyQpV btn--icon____yq7cr btn____p6ykY\",\"btn--icon-expand-more\":\"btn--icon-expand-more____pTr5X btn--icon____yq7cr btn____p6ykY\",\"btn--icon-expand-less\":\"btn--icon-expand-less____TrXaV btn--icon____yq7cr btn____p6ykY\",\"btn--icon-general\":\"btn--icon-general____o26MX btn--icon____yq7cr btn____p6ykY\",\"btn--icon-sales\":\"btn--icon-sales____VZXHC btn--icon____yq7cr btn____p6ykY\",\"btn--icon-branch\":\"btn--icon-branch____Cmxm7 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-contact\":\"btn--icon-contact____Stgcj btn--icon____yq7cr btn____p6ykY\",\"btn--icon-consent\":\"btn--icon-consent____mBBid btn--icon____yq7cr btn____p6ykY\",\"btn--icon-questions\":\"btn--icon-questions____jg337 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-associated\":\"btn--icon-associated____eJycn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-notes\":\"btn--icon-notes____RF8YK btn--icon____yq7cr btn____p6ykY\",\"btn--back\":\"btn--back____pxs24 btn____p6ykY\",\"btn--back-to-sign-in\":\"btn--back-to-sign-in____vCUP0 btn--back____pxs24 btn____p6ykY\",\"btn--icon-advanced-search\":\"btn--icon-advanced-search____DQclE btn--icon____yq7cr btn____p6ykY\",\"btn--wizard\":\"btn--wizard____p3AQv btn____p6ykY\",\"btn--wizard-back\":\"btn--wizard-back____sJp94 btn--wizard____p3AQv btn____p6ykY\",\"btn--wizard-next\":\"btn--wizard-next____sSaEE btn--wizard____p3AQv btn____p6ykY\",\"fieldset\":\"fieldset____IqQIA\",\"fieldset-instruction\":\"fieldset-instruction____QpOof\",\"fieldset--no-padding\":\"fieldset--no-padding____YtlLW fieldset____IqQIA\",\"fieldset--alt\":\"fieldset--alt____O8nME fieldset____IqQIA\",\"view-password\":\"view-password____pDlmj\",\"input-search\":\"input-search____UArL3\",\"ia-currency-input\":\"ia-currency-input____Tou8U\",\"ia-currency-negative\":\"ia-currency-negative____mgrtz\",\"select--mini\":\"select--mini____o0D1A\",\"required-label\":\"required-label____haNa9\",\"alert\":\"alert____M1ia7\",\"alert--important\":\"alert--important____uvg7q\",\"input-label\":\"input-label____DFBhn\",\"input-toggle\":\"input-toggle____nXNJO\",\"w-100\":\"w-100____zW4nd\",\"search-input-wrapper\":\"search-input-wrapper_____2SoE\",\"search-input--results\":\"search-input--results____giqeD\",\"search-input--result\":\"search-input--result____yVZ0O\",\"search-input--result--highlighted\":\"search-input--result--highlighted____EYWmf\",\"date-range-selections\":\"date-range-selections____UGHKj\",\"date-arrow-forward\":\"date-arrow-forward____v35GX\",\"qce-dropdown\":\"qce-dropdown____AchVJ\",\"qce-or\":\"qce-or____JLkfo\",\"qce-dropdown-with-dropdown\":\"qce-dropdown-with-dropdown____X3BW3\",\"qce-vehicle-registration-search\":\"qce-vehicle-registration-search____uNvAM\",\"row-gap\":\"row-gap____t73ih\",\"row-group\":\"row-group____omBZj\",\"row-group--three\":\"row-group--three____nPXKU row-group____omBZj\",\"grid-14\":\"grid-14____dw0hQ\",\"row-group--auto\":\"row-group--auto____TX2jn row-group____omBZj\",\"space\":\"space____eF9cT\",\"display-none--lg\":\"display-none--lg____JQaL5\",\"display-none--md\":\"display-none--md____YG4oX\",\"tab-navigation\":\"tab-navigation____GwvrJ\",\"has-warnings\":\"has-warnings____Qw8jy\",\"tab-selected\":\"tab-selected____TT9B8 tab____CTCpq\",\"disabled\":\"disabled____apmOE\",\"tab\":\"tab____CTCpq\",\"btn--tab-overflow\":\"btn--tab-overflow____O8Pte\",\"btn--tab-overflow-left\":\"btn--tab-overflow-left____MkEE4 btn--tab-overflow____O8Pte\",\"btn--tab-overflow-left-disabled\":\"btn--tab-overflow-left-disabled____f38KE btn--tab-overflow-left____MkEE4 btn--tab-overflow____O8Pte\",\"btn--tab-overflow-right\":\"btn--tab-overflow-right____ktM8T btn--tab-overflow____O8Pte\",\"btn--tab-overflow-right-disabled\":\"btn--tab-overflow-right-disabled____C2uwa btn--tab-overflow-right____ktM8T btn--tab-overflow____O8Pte\",\"constrained-width\":\"constrained-width____HoDk0\",\"constrained-width--tab\":\"constrained-width--tab____Rb4RV constrained-width____HoDk0\",\"card\":\"card____p5yDN\",\"card-content\":\"card-content____j3IPC\",\"card-heading\":\"card-heading____AWJzS\",\"control-group\":\"control-group____wBSkY\",\"label-group\":\"label-group____lMQU2\",\"label-group-item\":\"label-group-item____sDfCk\",\"button-group\":\"button-group____UV6Mj checkbox-group____YE3uX\",\"card--alert\":\"card--alert_____SbN1 card____p5yDN\",\"card-heading--alert\":\"card-heading--alert____CBiu6 card-heading____AWJzS\",\"card--status-message\":\"card--status-message____XxMjs\",\"card--status-message--left\":\"card--status-message--left____X9rti card--status-message____XxMjs\",\"card-heading--sticky-header\":\"card-heading--sticky-header____q69lu\",\"card-heading--no-icon\":\"card-heading--no-icon____MjXfV card-heading____AWJzS\",\"card-heading--bold-title\":\"card-heading--bold-title____Bz2ND\",\"table\":\"table____qVgjv\",\"table-heading-row\":\"table-heading-row____exmJK\",\"table-row\":\"table-row____YNWNd\",\"table-result-row\":\"table-result-row____qfvim\",\"break-word\":\"break-word____kiwhh\",\"no-wrap\":\"no-wrap____IUSWn\",\"table-result-row--disabled\":\"table-result-row--disabled____it_nz\",\"table-modal\":\"table-modal____LwYYR table____qVgjv\",\"table-enhanced\":\"table-enhanced____Ul0v_\",\"table--no-border-bottom\":\"table--no-border-bottom____qdw65 table____qVgjv\",\"height-45\":\"height-45____rzHOJ\",\"edit-column\":\"edit-column____NR6Oz\",\"delete-column\":\"delete-column____EYmGc\",\"date-table-heading\":\"date-table-heading____O78ku\",\"button-edit\":\"button-edit____dj4ST\",\"button-delete\":\"button-delete____nUSv9\",\"table-row-selected\":\"table-row-selected____LGfe8\",\"table-row-alert\":\"table-row-alert____E4XC8\",\"table-filter-row\":\"table-filter-row____NYz4c\",\"table-filter-row--endcap\":\"table-filter-row--endcap____ywAyD\",\"filter-column\":\"filter-column____lBWc8\",\"table-pagination\":\"table-pagination____OaL6j\",\"table-pagination-with-filter\":\"table-pagination-with-filter____fd27g table-pagination____OaL6j\",\"table-button-group\":\"table-button-group_____slKf\",\"table-child-container\":\"table-child-container____BF9eA\",\"table-child-card\":\"table-child-card____EgtHG\",\"child-table--selected-row\":\"child-table--selected-row____BdsJR\",\"child-table\":\"child-table____Wb6Ak table____qVgjv\",\"custom-pagination\":\"custom-pagination____enZXU\",\"pagination-count\":\"pagination-count____tvCv1\",\"pagination-button\":\"pagination-button____Ytd5V btn____p6ykY\",\"pagination-prev\":\"pagination-prev____NKLMF pagination-button____Ytd5V btn____p6ykY\",\"pagination-next\":\"pagination-next____NaSsX pagination-button____Ytd5V btn____p6ykY\",\"pagination-disabled\":\"pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination-prev-disabled\":\"pagination-prev-disabled____HZ7ZL pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination-next-disabled\":\"pagination-next-disabled____c1gyb pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination\":\"pagination____uGlan\",\"pagination-top\":\"pagination-top____TPL7I pagination____uGlan\",\"pagination-bottom\":\"pagination-bottom____jOqvk pagination____uGlan\",\"pagination-bottom--documents\":\"pagination-bottom--documents____RDNCT pagination-bottom____jOqvk pagination____uGlan\",\"table-cell-btn-icon\":\"table-cell-btn-icon____XK4jw\",\"folder-table\":\"folder-table____mzldC table--no-border-bottom____qdw65 table____qVgjv\",\"doc-table-group--heading\":\"doc-table-group--heading____NL5Ju\",\"doc-table-group--heading-open\":\"doc-table-group--heading-open_____HAOK doc-table-group--heading____NL5Ju\",\"doc-table-group--heading-with-options\":\"doc-table-group--heading-with-options____D5No5\",\"constrained-width--folder-name\":\"constrained-width--folder-name____PRkwE constrained-width____HoDk0\",\"disable-entity\":\"disable-entity____DGpvD\",\"button-options\":\"button-options____D9TJZ\",\"button-options--add\":\"button-options--add____HwrZZ button-options____D9TJZ\",\"information-icon\":\"information-icon_____XHaL\",\"deleted-icon\":\"deleted-icon____N1OQC\",\"exclamation-icon\":\"exclamation-icon____T8oJh\",\"success-icon\":\"success-icon____xKXiZ\",\"text-align-center\":\"text-align-center____eIrRg\",\"word-break\":\"word-break____lq5Dz\",\"btn-group\":\"btn-group____EgOxm\",\"accordion-content\":\"accordion-content____lkwyB\",\"toggle-collapse\":\"toggle-collapse____TfbtR\",\"toggle-collapse--disabled\":\"toggle-collapse--disabled____VR_PT toggle-collapse____TfbtR\",\"toggle-expand\":\"toggle-expand____qHo7o toggle-collapse____TfbtR\",\"folder\":\"folder____iafx4\",\"folder-locked\":\"folder-locked____GM4Bo folder____iafx4\",\"yesNo-filter-width\":\"yesNo-filter-width____fYuFg\",\"w-5\":\"w-5____u0SKK\",\"w-10\":\"w-10____sC1in\",\"w-15\":\"w-15____hmrhE\",\"w-20\":\"w-20____vBiEj\",\"w-25\":\"w-25____r59aZ\",\"w-30\":\"w-30____LGsTV\",\"w-35\":\"w-35____VxsuA\",\"w-40\":\"w-40____VgtTf\",\"w-45\":\"w-45____UOuhz\",\"w-50\":\"w-50____L0Lso\",\"w-60\":\"w-60____Txpbo\",\"table--sticky-header\":\"table--sticky-header____NXRv6\",\"table--sticky-footer\":\"table--sticky-footer____vQDQa\",\"table--sticky-column\":\"table--sticky-column____v9xxX\",\"table--sticky-column2\":\"table--sticky-column2____RrMKn table--sticky-column____v9xxX\",\"table--sticky-column-right\":\"table--sticky-column-right____brnUv table--sticky-column____v9xxX\",\"scrollable-table-container\":\"scrollable-table-container____y2L5C\",\"view-block\":\"view-block____MihFj\",\"view-block--heading\":\"view-block--heading____niUt3\",\"view-block--white\":\"view-block--white____odZqh view-block____MihFj\",\"view-block--alert\":\"view-block--alert____kll0v view-block____MihFj\",\"view-block--success\":\"view-block--success____Y4TLy view-block____MihFj\",\"view-block--info\":\"view-block--info____IV7x_ view-block____MihFj\",\"view-block--warning\":\"view-block--warning____hjlCc view-block____MihFj\",\"view-block--alt\":\"view-block--alt____MiwsG view-block____MihFj\",\"view-block--with-icon\":\"view-block--with-icon____XtVJL view-block____MihFj\",\"view-block-icon\":\"view-block-icon____Znjn6\",\"view-block--warning--with-icon\":\"view-block--warning--with-icon____rQ84L view-block--warning____hjlCc view-block____MihFj\",\"view-block-checkbox\":\"view-block-checkbox____JYhIJ view-block____MihFj\",\"view-block-checkbox--alert\":\"view-block-checkbox--alert____iHlVt view-block--alert____kll0v view-block____MihFj view-block-checkbox____JYhIJ view-block____MihFj\",\"text-view-content\":\"text-view-content____tD8E3\",\"ia-modal\":\"ia-modal____qjTPZ\",\"ia-modal-inner\":\"ia-modal-inner____a7kzu\",\"ia-modal-inner--context-menu\":\"ia-modal-inner--context-menu____pcomt ia-modal-inner____a7kzu\",\"ia-modal-inner--wide-lg\":\"ia-modal-inner--wide-lg____wm2G_ ia-modal-inner____a7kzu\",\"ia-modal-inner--wide-xxl\":\"ia-modal-inner--wide-xxl____IxAZB ia-modal-inner____a7kzu\",\"ia-modal-inner--take-over\":\"ia-modal-inner--take-over____gKoVu ia-modal-inner____a7kzu\",\"fixed-height\":\"fixed-height____F1j8b\",\"takeover-header\":\"takeover-header____VFPqY\",\"logo\":\"logo_____hH9W\",\"logo--broker\":\"logo--broker____kAkN5 logo_____hH9W\",\"close-search\":\"close-search____vV2BU\",\"ia-modal-content\":\"ia-modal-content____GAlVY\",\"ia-modal-overlay--transparent\":\"ia-modal-overlay--transparent____yNBdP ia-modal____qjTPZ\",\"ia-modal-overlay--light-white\":\"ia-modal-overlay--light-white____uNTxr ia-modal____qjTPZ\",\"ia-modal-overlay--transparent--light-white-client-nav\":\"ia-modal-overlay--transparent--light-white-client-nav____LnZMl ia-modal-overlay--light-white____uNTxr ia-modal____qjTPZ\",\"modal-header\":\"modal-header____mYCBQ\",\"modal-footer\":\"modal-footer____FdxAv modal-header____mYCBQ\",\"modal-footer--space-between\":\"modal-footer--space-between____oVQyd modal-footer____FdxAv modal-header____mYCBQ\",\"footer-btn-group\":\"footer-btn-group____F_VJ_\",\"header-label\":\"header-label____LE4NP\",\"header-label-icon\":\"header-label-icon____Yv71j header-label____LE4NP\",\"header-label--alert\":\"header-label--alert____vxn1e header-label-icon____Yv71j header-label____LE4NP\",\"header-label--info\":\"header-label--info____uf8Vq header-label-icon____Yv71j header-label____LE4NP\",\"header-label--settings\":\"header-label--settings____VtpH4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--accounts\":\"header-label--accounts____HxKqn header-label-icon____Yv71j header-label____LE4NP\",\"header-label--edit\":\"header-label--edit____SiOT_ header-label-icon____Yv71j header-label____LE4NP\",\"header-label--download\":\"header-label--download____qjYpE header-label-icon____Yv71j header-label____LE4NP\",\"header-label--delete\":\"header-label--delete____kJ1yz header-label-icon____Yv71j header-label____LE4NP\",\"header-label--history\":\"header-label--history____nOJA4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--tag\":\"header-label--tag____Vobt8 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--search\":\"header-label--search____tlst4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--kyc\":\"header-label--kyc____p8tGF header-label-icon____Yv71j header-label____LE4NP\",\"header-label--advice\":\"header-label--advice____oxKGn header-label-icon____Yv71j header-label____LE4NP\",\"header-label--generate-advice\":\"header-label--generate-advice____lVJFq header-label-icon____Yv71j header-label____LE4NP\",\"header-label--form\":\"header-label--form____AgQK4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--insured\":\"header-label--insured____jGzCv header-label-icon____Yv71j header-label____LE4NP\",\"header-label--quote\":\"header-label--quote____rmq2E header-label-icon____Yv71j header-label____LE4NP\",\"header-label--policy\":\"header-label--policy____ISnpr header-label-icon____Yv71j header-label____LE4NP\",\"header-label--claim\":\"header-label--claim____Bs2mm header-label-icon____Yv71j header-label____LE4NP\",\"header-label--fsg\":\"header-label--fsg____B5sDG header-label-icon____Yv71j header-label____LE4NP\",\"header-label--mandatory-document\":\"header-label--mandatory-document____ngrj2 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--notification\":\"header-label--notification____dTpix header-label-icon____Yv71j header-label____LE4NP\",\"header-label--task\":\"header-label--task____m0ZDS header-label-icon____Yv71j header-label____LE4NP\",\"header-label--contact\":\"header-label--contact____WeBlW header-label-icon____Yv71j header-label____LE4NP\",\"header-label--note\":\"header-label--note____kBTgh header-label-icon____Yv71j header-label____LE4NP\",\"header-label--document\":\"header-label--document____PLCdu header-label-icon____Yv71j header-label____LE4NP\",\"header-label--email\":\"header-label--email____TGCsU header-label-icon____Yv71j header-label____LE4NP\",\"header-label--template\":\"header-label--template____UD9u0 header-label-icon____Yv71j header-label____LE4NP\",\"header-details\":\"header-details____sJl1V\",\"header-detail-item\":\"header-detail-item____RZBYE\",\"header-label--context-menu\":\"header-label--context-menu____xdn7l header-label-icon____Yv71j header-label____LE4NP\",\"context-menu-sep\":\"context-menu-sep____clyDN\",\"context-menu--one-col\":\"context-menu--one-col____mmlJJ\",\"context-menu-disabled\":\"context-menu-disabled____nIqQz\",\"context-menu--two-col\":\"context-menu--two-col____YocRy context-menu--one-col____mmlJJ\",\"context-menu--three-col\":\"context-menu--three-col____vFX8l context-menu--two-col____YocRy context-menu--one-col____mmlJJ\",\"modal-content-copy\":\"modal-content-copy____vFykD\",\"processing-step\":\"processing-step____KsNyu\",\"processing-step--failed\":\"processing-step--failed____krZ84 processing-step____KsNyu\",\"document--processing\":\"document--processing____dZmV3\",\"eclipse-loader\":\"eclipse-loader____oRVZx\",\"confirmation-content\":\"confirmation-content____BXaZw\",\"ia-modal--search\":\"ia-modal--search____Xqo05\",\"view-block--alert--progress-modal\":\"view-block--alert--progress-modal____jGjEL view-block--alert____kll0v view-block____MihFj\",\"client-footer--right\":\"client-footer--right____NeJbJ\",\"wizard-button-group\":\"wizard-button-group____rZbSe\",\"wizard-nav-group\":\"wizard-nav-group____W_oFj\",\"wizard-nav-group--form\":\"wizard-nav-group--form____tXeBa wizard-nav-group____W_oFj\",\"footer-combo-selections\":\"footer-combo-selections____Esj5l\",\"btn--combo-option\":\"btn--combo-option____KYVNL\",\"footer-combo-container\":\"footer-combo-container____Yxl5q\",\"right\":\"right____HnWMg\",\"pdf-selection\":\"pdf-selection____nqB3i\",\"ia-file-upload\":\"ia-file-upload____hSEbM btn____p6ykY\",\"ia-file-upload--disabled\":\"ia-file-upload--disabled____f2K9A\",\"ia-file-info\":\"ia-file-info____bPMYo\",\"delete-pdf\":\"delete-pdf____qerma btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"pdf-section\":\"pdf-section____gGS_A\",\"margin-top\":\"margin-top____G7Wik\",\"new-pdf-action-buttons\":\"new-pdf-action-buttons____tq_0Y\",\"page-pdf-controls\":\"page-pdf-controls____JGPqM\",\"step-message\":\"step-message____kOg49\",\"view-block-checkbox--alert--referrer-fee\":\"view-block-checkbox--alert--referrer-fee____L9OVX view-block-checkbox--alert____iHlVt view-block--alert____kll0v view-block____MihFj view-block-checkbox____JYhIJ view-block____MihFj\",\"checkbox-group\":\"checkbox-group____YE3uX\",\"fap\":\"fap____SirwJ\",\"packaged\":\"packaged____XAv5R\",\"risk-group\":\"risk-group____K9lBZ card____p5yDN\",\"risk-group-label\":\"risk-group-label____JxIDJ\",\"risk-headings\":\"risk-headings____swJL4\",\"risk-row\":\"risk-row____OXazm\",\"risk-headings--au\":\"risk-headings--au____kv4p0 risk-headings____swJL4\",\"risk-row--au\":\"risk-row--au____XPIya risk-headings____swJL4\",\"risk-headings--nz\":\"risk-headings--nz____Y_IUB risk-headings____swJL4\",\"risk-row--nz\":\"risk-row--nz____E6EO0 risk-headings____swJL4\",\"risk-package-costs-nav\":\"risk-package-costs-nav____WZ7F0\",\"risk\":\"risk_____TiyF\",\"risk--co-insured\":\"risk--co-insured____yqspQ risk_____TiyF\",\"risk-type\":\"risk-type____PFj0I\",\"co-insured-name\":\"co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name-total\":\"co-insured-name-total____kLBRn co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name--primary\":\"co-insured-name--primary____HMvrt co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name-total--primary\":\"co-insured-name-total--primary____tkSzF co-insured-name--primary____HMvrt co-insured-name____PC8NI risk-type____PFj0I\",\"risk-heading-row\":\"risk-heading-row____mQpnF input-label____DFBhn\",\"totals\":\"totals____AuBY3\",\"totals--nz\":\"totals--nz____lpE0S totals____AuBY3\",\"totals--au\":\"totals--au____QYwZx totals____AuBY3\",\"totals--co-insured\":\"totals--co-insured____uGJl4 totals____AuBY3\",\"total-cell\":\"total-cell____WGF0l\",\"premium-total\":\"premium-total____JLOxX total-cell____WGF0l\",\"fes-total\":\"fes-total____oxFXj total-cell____WGF0l\",\"earthquake-premium\":\"earthquake-premium____vWCi8 total-cell____WGF0l\",\"earthquake-levy\":\"earthquake-levy____BSERU total-cell____WGF0l\",\"gst-total\":\"gst-total____oivUC total-cell____WGF0l\",\"fsl\":\"fsl____L0pEF total-cell____WGF0l\",\"gst\":\"gst____QwCJ3 total-cell____WGF0l\",\"stamp-duty-total\":\"stamp-duty-total____PlHmR total-cell____WGF0l\",\"premium-total-total\":\"premium-total-total____KlGm9 total-cell____WGF0l\",\"bkge-total\":\"bkge-total____YqQFj total-cell____WGF0l\",\"bkge-gst-total\":\"bkge-gst-total____eTesR total-cell____WGF0l\",\"empty-total-cell\":\"empty-total-cell____lG_hs total-cell____WGF0l\",\"bkge-total--co-insured\":\"bkge-total--co-insured____DLU_k total-cell____WGF0l\",\"bkge-gst-total--co-insured\":\"bkge-gst-total--co-insured_____4Lp5 total-cell____WGF0l\",\"bkge-total--co-insured-primary\":\"bkge-total--co-insured-primary____yr23J total-cell____WGF0l\",\"bkge-gst-total--co-insured-primary\":\"bkge-gst-total--co-insured-primary____eEXqJ total-cell____WGF0l\",\"cs-button-checkbox-group\":\"cs-button-checkbox-group____HSwyO\",\"deletedRisk\":\"deletedRisk____R71iQ\",\"insurer-referrals\":\"insurer-referrals____hPxAk\",\"co-insured-content\":\"co-insured-content____mmL6C\",\"co-insured-lead-insurer\":\"co-insured-lead-insurer____RU9l8\",\"co-insured-lead-insurer-false\":\"co-insured-lead-insurer-false____McQz_ co-insured-lead-insurer____RU9l8\",\"gst-exempt-warning\":\"gst-exempt-warning____v1mbX view-block--warning____hjlCc view-block____MihFj\",\"gstExemptRisk\":\"gstExemptRisk____lTLVv\",\"calculated-value-overridden\":\"calculated-value-overridden____IE_sM\",\"padding-left\":\"padding-left____UUGmy\"};","import { LookupDataService } from 'resources/services/lookup-data';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { CountryCode } from 'libphonenumber-js';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { AppRouter } from 'aurelia-router';\r\nimport { IaToastService } from 'resources/services/ia-toast-service';\r\nimport { FormValidationRenderer } from 'resources/form-validation-renderer';\r\nimport { Api } from './api';\r\nimport { autoinject, TaskQueue, computedFrom } from 'aurelia-framework';\r\n\r\nimport styles from './risk-package-costs.css';\r\nimport { CoInsuredRiskConfigModel, RiskPackageConfigModel } from '../../../models/risk-package-config';\r\nimport { CoInsuredRiskCostsModel, RiskPackageCostsModel } from '../../../models/risk-package-costs-model';\r\nimport { ValidationControllerFactory, ValidationController } from 'aurelia-validation';\r\n\r\nimport { BigNumber } from 'bignumber.js';\r\nimport { log } from 'resources/services/log-service';\r\nimport { calculateGst } from 'resources/calculate-gst';\r\nimport { evenRound } from 'resources/even-round';\r\nimport { EntityMode, EntityActionType, EntityType } from 'routes/app-adviser/client/quotes/interfaces';\r\nimport { ConfirmModalActions } from 'components/ia-modal/ia-modal';\r\nimport { getAppClientType } from 'resources/parse-jwt';\r\nimport { initScrollTabs, scrollTabs } from 'resources/tab-scroll';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\n@autoinject()\r\nexport class RiskPackageCosts {\r\n public validationController: ValidationController;\r\n public config;\r\n private params: IStepModel;\r\n private model;\r\n private modelClone: RiskPackageCostsModel;\r\n private quote;\r\n private step;\r\n private styles = styles;\r\n private selectedInsurer;\r\n private selectedSituation;\r\n private selectedInsurerTab = 0;\r\n private selectedSituationTab = 0;\r\n private context = this;\r\n private insurers = {};\r\n private appClientType: CountryCode = getAppClientType();\r\n private coInsuredFlag;\r\n private botInsurerInterfaceAvailable;\r\n private botPreviouslyRequestedFlag;\r\n private botPreviouslyRequestedForInsurerCodes;\r\n private overrideRiskId = -1;\r\n private overrideParentSituationIndex = -1;\r\n\r\n private showGstWarning = false;\r\n private gstExemptEntities = [];\r\n\r\n private showRiskPackageCostsModal = false;\r\n private setPackageFocus = false;\r\n private changeRiskPackageCostTitle: string;\r\n private isDirty = false;\r\n\r\n private inputMaskOptions: any = {};\r\n\r\n private tabUl: HTMLDivElement;\r\n private tabClass = 'a.insurerTabs';\r\n private tabPosition;\r\n private isRightChevronDisabled = false;\r\n\r\n public showRequestBotQuoteModal = false;\r\n public botRequestValidating = false;\r\n public requestQuoteClicked = false;\r\n public botValidationResult;\r\n public selectedRows = [];\r\n public submittingQuoteRequest = false;\r\n public showCancelQuoteRequestModal = false;\r\n public isCancelingQuoteRequest = false;\r\n\r\n public listType = '';\r\n public showListModal = false;\r\n public list;\r\n\r\n public isDeleteAllMode = false;\r\n public isDeleteMode = false;\r\n\r\n public isQuoteRequestSubmitted = false;\r\n\r\n private autorateConfig;\r\n\r\n private showReferralDetails = false;\r\n private showOverrideDetails = false;\r\n private authReasons = [];\r\n\r\n private ratingStatuses: any = {};\r\n\r\n private rejectSituation = '';\r\n private rejectRisk = '';\r\n private rejectReason = '';\r\n\r\n private authorisationCode = '';\r\n private authorisationReason = 0;\r\n\r\n private currentlySelectedRiskId = null;\r\n private overrideDetails: IOverride;\r\n\r\n private oldRisksModel = {};\r\n private captureDiscountCode = false;\r\n\r\n private selectedRowsPrint = [];\r\n\r\n constructor(\r\n private api: Api,\r\n private i18n: I18N,\r\n private router: AppRouter,\r\n private taskQueue: TaskQueue,\r\n private toast: IaToastService,\r\n private validationControllerFactory: ValidationControllerFactory,\r\n private ea: EventAggregator,\r\n private lookupData: LookupDataService,\r\n ) {\r\n this.validationController = this.validationControllerFactory.createForCurrentScope();\r\n this.validationController.addRenderer(new FormValidationRenderer());\r\n }\r\n\r\n async activate(model: IStepModel) {\r\n try {\r\n this.params = model;\r\n\r\n // Prevent negatives\r\n if (\r\n this.params.actionType == EntityActionType.NewBusiness ||\r\n this.params.actionType == EntityActionType.Reinstatement\r\n ) {\r\n this.inputMaskOptions.minimumValue = 0;\r\n }\r\n\r\n this.validationController.removeObject(this.model);\r\n\r\n await this.loadConfiguration();\r\n\r\n this.ea.publish('stepRendered');\r\n\r\n log.debug(`Step 8 params: `, this.params);\r\n log.debug(`Step 8 'activate' config: `, this.config);\r\n log.debug(`Step 8 'activate' model: `, this.model);\r\n } catch (e) {\r\n this.ea.publish('stepRendered');\r\n }\r\n }\r\n\r\n async loadConfiguration() {\r\n const loadedConfig = await this.api.getRiskPackageCostsConfig(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n this.params.entityMode,\r\n );\r\n\r\n this.coInsuredFlag = loadedConfig.coInsuredFlag;\r\n\r\n this.botInsurerInterfaceAvailable = loadedConfig.botInsurerInterfaceAvailable;\r\n this.botPreviouslyRequestedFlag = loadedConfig.botPreviouslyRequestedFlag;\r\n this.botPreviouslyRequestedForInsurerCodes = loadedConfig.botPreviouslyRequestedForInsurerCodes;\r\n\r\n this.config = this.coInsuredFlag\r\n ? new CoInsuredRiskConfigModel(loadedConfig.coInsuredRiskCostsConfig)\r\n : new RiskPackageConfigModel(loadedConfig.riskPackageCostsConfig);\r\n\r\n if (this.config?.ratingRequired) {\r\n try {\r\n const response = await this.api.postAutorate(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n );\r\n\r\n log.debug('Autorate response after requiring: ', response);\r\n\r\n if (!response) {\r\n log.debug(`Autorate response had no body, it is valid: `, response);\r\n await this.loadConfiguration();\r\n\r\n return;\r\n }\r\n } catch (e) {\r\n log.error(e);\r\n }\r\n }\r\n\r\n if (!this.coInsuredFlag) {\r\n await this.insurerTabChanged(this.config.insurers[this.selectedInsurerTab], true);\r\n } else {\r\n const result = await this.getCoInsuredRiskQuote();\r\n this.model = new CoInsuredRiskCostsModel(result);\r\n this.setCoInsuredInsurerRiskBrokerageTypes();\r\n this.checkGstExemptStatus();\r\n }\r\n\r\n if (this.config.riskRatingStatuses?.length) {\r\n this.ratingStatuses = {};\r\n\r\n this.config.riskRatingStatuses.forEach((status) => {\r\n if (!this.ratingStatuses?.[status.quoteInsurerRiskId]) {\r\n this.ratingStatuses[status.quoteInsurerRiskId] = status;\r\n } else {\r\n this.ratingStatuses[status.quoteInsurerRiskId] = {\r\n ...this.ratingStatuses[status.quoteInsurerRiskId],\r\n ...status,\r\n };\r\n }\r\n });\r\n }\r\n\r\n this.authReasons = await this.lookupData.authorisationReasons();\r\n\r\n this.applyOverrideStyles();\r\n }\r\n\r\n applyOverrideStyles() {\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model?.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n const isAu = this.appClientType === 'AU';\r\n const isFap = this.model.useFapFlag;\r\n\r\n if(isCoInsured){\r\n this.model?.situations.forEach((situation) => {\r\n const situationConfig = this.config.situations.find((x) => x.entitySituationId === situation.entitySituationId);\r\n\r\n situation?.risks.forEach((risk) => {\r\n const config = situationConfig.risks.find((x) => x.entityRiskId == risk.entityRiskId);\r\n this.parseFslStampDutyRate(config);\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, config);\r\n\r\n risk?.insurerRisks.forEach((insurerRisk) => {\r\n this.isValueOverridden(isAu, insurerRisk, config);\r\n });\r\n });\r\n });\r\n }\r\n\r\n if(isPackagedCosts){\r\n const config = this.selectedInsurer.packageConfiguration;\r\n this.parseFslStampDutyRate(config);\r\n this.isValueOverridden(isAu, this.model.packageCosts, config);\r\n }\r\n\r\n if(isRiskCosts) {\r\n this.model?.situations.forEach((situation) => {\r\n situation?.risks.forEach((risk) => {\r\n const config = this.config.insurers[this.selectedInsurerTab].riskConfiguration.find((x) => x.entityRiskId == risk.entityRiskId);\r\n this.parseFslStampDutyRate(config);\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, risk, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, risk, config);\r\n });\r\n });\r\n }\r\n }\r\n\r\n parseFslStampDutyRate(config) {\r\n if (typeof config.fslRate === 'undefined' || config.fslRate === null) {\r\n config.fslRate = 0;\r\n }\r\n\r\n if (typeof config.stampDutyRate === 'undefined' || config.stampDutyRate === null) {\r\n config.stampDutyRate = 0;\r\n }\r\n }\r\n\r\n attached() {\r\n if (!this.coInsuredFlag) {\r\n initScrollTabs(this);\r\n }\r\n }\r\n\r\n scrollTabs(direction) {\r\n scrollTabs(this, direction);\r\n }\r\n\r\n @computedFrom('tabPosition')\r\n get isLeftChevronDisabled() {\r\n return this.tabPosition > 0;\r\n }\r\n\r\n async getRiskPackageQuote(entityInsurerId: number) {\r\n const result = await this.api.getRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n entityInsurerId,\r\n );\r\n\r\n // Ensure any null FAP values are set to 0\r\n if (result.useFapFlag) {\r\n const isPackagedCosts = result.packageFlag;\r\n const isRiskCosts = !isPackagedCosts;\r\n\r\n if (isRiskCosts && result.situations) {\r\n for (const situation of result.situations) {\r\n for (const risk of situation.risks) {\r\n risk.fapPremium = risk.fapPremium === null ? 0 : risk.fapPremium;\r\n risk.fapEarthquakePremium = risk.fapEarthquakePremium === null ? 0 : risk.fapEarthquakePremium;\r\n risk.fapEarthquakeLevy = risk.fapEarthquakeLevy === null ? 0 : risk.fapEarthquakeLevy;\r\n risk.fapFsl = risk.fapFsl === null ? 0 : risk.fapFsl;\r\n risk.fapGst = risk.fapGst === null ? 0 : risk.fapGst;\r\n risk.fapStampDuty = risk.fapStampDuty === null ? 0 : risk.fapStampDuty;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n result.packageCosts.fapPremium = result.packageCosts.fapPremium === null ? 0 : result.packageCosts.fapPremium;\r\n result.packageCosts.fapEarthquakePremium =\r\n result.packageCosts.fapEarthquakePremium === null ? 0 : result.packageCosts.fapEarthquakePremium;\r\n result.packageCosts.fapEarthquakeLevy =\r\n result.packageCosts.fapEarthquakeLevy === null ? 0 : result.packageCosts.fapEarthquakeLevy;\r\n result.packageCosts.fapFsl = result.packageCosts.fapFsl === null ? 0 : result.packageCosts.fapFsl;\r\n result.packageCosts.fapGst = result.packageCosts.fapGst === null ? 0 : result.packageCosts.fapGst;\r\n result.packageCosts.fapStampDuty =\r\n result.packageCosts.fapStampDuty === null ? 0 : result.packageCosts.fapStampDuty;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async getCoInsuredRiskQuote() {\r\n const result = await this.api.getCoInsuredRiskQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n\r\n return result;\r\n }\r\n\r\n async insurerTabChanged(insurer, initialLoad = false) {\r\n let isUpdateSuccessful;\r\n const $index = this.config.insurers.findIndex((el) => el.entityInsurerId === insurer.entityInsurerId);\r\n\r\n if (this.selectedInsurerTab !== $index) {\r\n isUpdateSuccessful = await this.updateCurrentInsurer();\r\n\r\n if (!isUpdateSuccessful) {\r\n const confirm = window.confirm(\r\n 'You have unsaved changes which are currently invalid. Do you want to discard them and change the selected insurer?',\r\n );\r\n\r\n if (confirm) {\r\n isUpdateSuccessful = true;\r\n }\r\n }\r\n\r\n this.selectedInsurerTab = isUpdateSuccessful ? $index : this.selectedInsurerTab;\r\n }\r\n\r\n if (initialLoad || isUpdateSuccessful) {\r\n this.selectedInsurer = insurer;\r\n\r\n const loadedInsurer = await this.getRiskPackageQuote(this.config.insurers[this.selectedInsurerTab].entityInsurerId);\r\n\r\n this.model = new RiskPackageCostsModel(loadedInsurer);\r\n this.model.packageFlag ? this.setPackageBrokerageTypes() : this.setRiskBrokerageTypes();\r\n this.setPackageFocus = this.model.packageFlag;\r\n this.model.showUseFap = this.config.insurers[this.selectedInsurerTab].showUseFap;\r\n this.model.showViewFap = this.config.insurers[this.selectedInsurerTab].showViewFap;\r\n\r\n this.checkGstExemptStatus();\r\n\r\n log.debug(`Insurer changed:`, this.model);\r\n\r\n log.debug(`Selected insurer`, this.selectedInsurer);\r\n\r\n if (this.model?.situations?.length) {\r\n this.model.situations.forEach((situation) => {\r\n if (situation?.risks?.length) {\r\n situation.risks.forEach((risk) => {\r\n if (risk.gstOverridden) {\r\n this.model.gstOverrideFlag = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // So we can disable GST checkbox\r\n if (this?.selectedInsurer?.riskConfiguration?.[0]?.autoRatedRisk) {\r\n this.config.autoRatedRisk = true;\r\n // Auto-check GST override for autorated risks\r\n this.model.gstOverrideFlag = true;\r\n }\r\n }\r\n\r\n if (!initialLoad) {\r\n this.toast.destroyAllToasts();\r\n }\r\n }\r\n\r\n checkGstExemptStatus () {\r\n const isPackagedCosts = this.model.packageFlag ?? false;\r\n\r\n const clientGstExempt = this.config.clientGstExemptFlag;\r\n const insurerOfficeGstExempt = this.coInsuredFlag ? false : this.selectedInsurer.insurerOfficeGstExemptFlag;\r\n const riskGstExempt = this.coInsuredFlag ?\r\n this.config.situations.some((x) => x.risks.some((r) => !r.gstApplies)) :\r\n !isPackagedCosts && this.selectedInsurer.riskConfiguration.some((x) => !x.gstApplies);\r\n\r\n this.gstExemptEntities = [];\r\n\r\n if(clientGstExempt){\r\n this.gstExemptEntities.push('Client');\r\n }\r\n\r\n if(insurerOfficeGstExempt){\r\n this.gstExemptEntities.push('Insurer');\r\n }\r\n\r\n if(!clientGstExempt && !insurerOfficeGstExempt && riskGstExempt){\r\n this.gstExemptEntities.push('Risk');\r\n }\r\n\r\n this.showGstWarning = this.params.entityMode === EntityMode.Edit && (clientGstExempt || insurerOfficeGstExempt || riskGstExempt);\r\n }\r\n\r\n setRiskBrokerageTypes() {\r\n if (this.model.situations) {\r\n for (const situation of this.model.situations) {\r\n for (const risk of situation.risks) {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.selectedInsurer.riskConfiguration.find(\r\n (x) => x.entityRiskId === risk.entityRiskId,\r\n ).brokerageOptions;\r\n\r\n selectedOption = configBrokerageOptions.find((b) => b.brokerageTypeId === parseInt(risk.brokerageTypeId));\r\n\r\n if (selectedOption) {\r\n risk.configBrokerageOptions = configBrokerageOptions;\r\n risk.selectedBrokerageOption = selectedOption;\r\n risk.brokerageTypeId = parseInt(selectedOption.brokerageTypeId);\r\n risk.amountEditable = selectedOption.amountEditable;\r\n risk.defaultPercentage = selectedOption.defaultPercentage;\r\n risk.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.selectedInsurer.riskConfiguration.find(\r\n (x) => x.entityRiskId === risk.entityRiskId,\r\n ).earthquakeBrokerageOptions;\r\n\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.earthquakeBrokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n risk.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n risk.selectedEarthquakeBrokerageOption = selectedOption;\r\n risk.earthquakeBrokerageTypeId = parseInt(selectedOption.brokerageTypeId);\r\n risk.earthquakeAmountEditable = selectedOption.amountEditable;\r\n risk.earthquakeDefaultPercentage = selectedOption.defaultPercentage;\r\n risk.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setPackageBrokerageTypes() {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.selectedInsurer.packageConfiguration.brokerageOptions;\r\n selectedOption = configBrokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.brokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n this.model.packageCosts.configBrokerageOptions = configBrokerageOptions;\r\n this.model.packageCosts.selectedBrokerageOption = selectedOption;\r\n this.model.packageCosts.brokerageTypeId = selectedOption.brokerageTypeId;\r\n this.model.packageCosts.amountEditable = selectedOption.amountEditable;\r\n this.model.packageCosts.defaultPercentage = selectedOption.defaultPercentage;\r\n this.model.packageCosts.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.selectedInsurer.packageConfiguration.earthquakeBrokerageOptions;\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.earthquakeBrokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n this.model.packageCosts.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n this.model.packageCosts.selectedEarthquakeBrokerageOption = selectedOption;\r\n this.model.packageCosts.earthquakeBrokerageTypeId = selectedOption.brokerageTypeId;\r\n this.model.packageCosts.earthquakeAmountEditable = selectedOption.amountEditable;\r\n this.model.packageCosts.earthquakeDefaultPercentage = selectedOption.defaultPercentage;\r\n this.model.packageCosts.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n }\r\n\r\n setCoInsuredInsurerRiskBrokerageTypes() {\r\n if (this.model.situations) {\r\n this.model.situations.forEach((situation) => {\r\n situation.risks.forEach((risk) => {\r\n risk.insurerRisks.forEach((insurerRisk) => {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.config.situations\r\n .find((s) => s.entitySituationId === situation.entitySituationId)\r\n .risks.find((r) => r.entityRiskId == risk.entityRiskId)\r\n .insurerRisks.find((ir) => ir.entityInsurerRiskId === insurerRisk.entityInsurerRiskId).brokerageOptions;\r\n\r\n selectedOption = configBrokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.brokerageTypeId);\r\n\r\n if (selectedOption) {\r\n insurerRisk.configBrokerageOptions = configBrokerageOptions;\r\n insurerRisk.amountEditable = selectedOption.amountEditable;\r\n insurerRisk.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.config.situations\r\n .find((s) => s.entitySituationId === situation.entitySituationId)\r\n .risks.find((r) => r.entityRiskId == risk.entityRiskId)\r\n .insurerRisks.find(\r\n (ir) => ir.entityInsurerRiskId === insurerRisk.entityInsurerRiskId,\r\n ).earthquakeBrokerageOptions;\r\n\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === insurerRisk.earthquakeBrokerageTypeId,\r\n );\r\n\r\n if (selectedOption) {\r\n insurerRisk.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n insurerRisk.earthquakeAmountEditable = selectedOption.amountEditable;\r\n insurerRisk.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n // Called on toggle of the \"use package costs\" checkbox\r\n usePackageCosts() {\r\n if (this.config.isReadOnly || !this.selectedInsurer.packageCostsEnabled) {\r\n return;\r\n }\r\n\r\n this.changeRiskPackageCostTitle = !this.model.packageFlag\r\n ? 'Change to package costs and delete all risk costs?'\r\n : 'Change to risk costs and delete all package costs?';\r\n this.setPackageFocus = false;\r\n this.showRiskPackageCostsModal = true;\r\n }\r\n\r\n // Called on the confirm of Use Package Costs Modal\r\n async changeRiskPackageCostCallBack(type: ConfirmModalActions) {\r\n if (type === 'confirm') {\r\n this.model.packageFlag = !this.model.packageFlag;\r\n\r\n const operation = [{ op: 'replace', path: '/packageFlag', value: this.model.packageFlag }];\r\n this.model = await this.api.patchRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n operation,\r\n );\r\n\r\n if (this.model.packageFlag) {\r\n this.setPackageBrokerageTypes();\r\n this.setPackageFocus = true;\r\n } else {\r\n this.setRiskBrokerageTypes();\r\n }\r\n\r\n this.model.showUseFap = this.config.insurers[this.selectedInsurerTab].showUseFap;\r\n this.model.showViewFap = this.config.insurers[this.selectedInsurerTab].showViewFap;\r\n\r\n this.checkGstExemptStatus();\r\n }\r\n\r\n this.showRiskPackageCostsModal = false;\r\n }\r\n\r\n useFapFlag(selectedInsurer, $index: number) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n\r\n if (this.model.useFapFlag) {\r\n if (isRiskCosts && this.model.situations) {\r\n for (const situation of this.model.situations) {\r\n for (const risk of situation.risks) {\r\n risk.fapPremium = risk.fapPremium === null ? 0 : risk.fapPremium;\r\n risk.fapEarthquakePremium = risk.fapEarthquakePremium === null ? 0 : risk.fapEarthquakePremium;\r\n risk.fapEarthquakeLevy = risk.fapEarthquakeLevy === null ? 0 : risk.fapEarthquakeLevy;\r\n risk.fapFsl = risk.fapFsl === null ? 0 : risk.fapFsl;\r\n risk.fapGst = risk.fapGst === null ? 0 : risk.fapGst;\r\n risk.fapStampDuty = risk.fapStampDuty === null ? 0 : risk.fapStampDuty;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n this.model.packageCosts.fapPremium =\r\n this.model.packageCosts.fapPremium === null ? 0 : this.model.packageCosts.fapPremium;\r\n this.model.packageCosts.fapEarthquakePremium =\r\n this.model.packageCosts.fapEarthquakePremium === null ? 0 : this.model.packageCosts.fapEarthquakePremium;\r\n this.model.packageCosts.fapEarthquakeLevy =\r\n this.model.packageCosts.fapEarthquakeLevy === null ? 0 : this.model.packageCosts.fapEarthquakeLevy;\r\n this.model.packageCosts.fapFsl = this.model.packageCosts.fapFsl === null ? 0 : this.model.packageCosts.fapFsl;\r\n this.model.packageCosts.fapGst = this.model.packageCosts.fapGst === null ? 0 : this.model.packageCosts.fapGst;\r\n this.model.packageCosts.fapStampDuty =\r\n this.model.packageCosts.fapStampDuty === null ? 0 : this.model.packageCosts.fapStampDuty;\r\n }\r\n }\r\n });\r\n }\r\n\r\n resetGstValues(riskOrPackageCosts, config) {\r\n this.isDirty = true;\r\n\r\n const isFap = this.model.useFapFlag;\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n if (isFap) {\r\n if (!this.config.fapValuesReadOnly) {\r\n riskOrPackageCosts.fapGst = this.calculateFapGst(isAu, riskOrPackageCosts, config);\r\n }\r\n riskOrPackageCosts.gst = this.calculateFapDerivedAmount(\r\n this.config,\r\n riskOrPackageCosts.fapGst,\r\n riskOrPackageCosts.fapPrevGst,\r\n );\r\n\r\n if (typeof config.stampDutyRate !== 'undefined' && config.stampDutyRate !== 0) {\r\n if (!this.config.fapValuesReadOnly) {\r\n riskOrPackageCosts.fapStampDuty = this.calculateFapStampDuty(riskOrPackageCosts, config);\r\n }\r\n riskOrPackageCosts.stampDuty = this.calculateFapDerivedAmount(\r\n this.config,\r\n riskOrPackageCosts.fapStampDuty,\r\n riskOrPackageCosts.fapPrevStampDuty,\r\n );\r\n }\r\n } else {\r\n riskOrPackageCosts.gst = this.calculateGst(isAu, riskOrPackageCosts, config);\r\n\r\n if (typeof config.stampDutyRate !== 'undefined' && config.stampDutyRate !== 0) {\r\n riskOrPackageCosts.stampDuty = this.calculateStampDuty(riskOrPackageCosts, config);\r\n }\r\n }\r\n\r\n riskOrPackageCosts.brokerageGst = this.calculateBrokerageGst(riskOrPackageCosts, config);\r\n\r\n if (isNz) {\r\n riskOrPackageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(riskOrPackageCosts, config);\r\n }\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, riskOrPackageCosts, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, riskOrPackageCosts, config);\r\n }\r\n\r\n resetCoInsuredGstValues() {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.model.situations.forEach((situation) => {\r\n const situationConfig = this.config.situations.find((x) => x.entitySituationId === situation.entitySituationId);\r\n\r\n situation.risks.forEach((risk) => {\r\n const riskConfig = situationConfig.risks.find((x) => x.entityRiskId === risk.entityRiskId);\r\n\r\n risk.totalGst = this.calculateCoInsuredRiskTotalGst(isAu, risk, riskConfig);\r\n\r\n if (typeof riskConfig.stampDutyRate !== 'undefined' && riskConfig.stampDutyRate !== 0) {\r\n risk.totalStampDuty = this.calculateCoInsuredRiskTotalStampDuty(risk, riskConfig);\r\n }\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n\r\n risk.insurerRisks.forEach((insurerRisk) => {\r\n const insurerConfig = riskConfig.insurerRisks.find(\r\n (x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId,\r\n );\r\n\r\n insurerRisk.gst = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalGst).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n\r\n insurerRisk.stampDuty = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalStampDuty).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n\r\n if (isNz) {\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n }\r\n\r\n this.isValueOverridden(isAu, insurerRisk, riskConfig);\r\n });\r\n });\r\n });\r\n }\r\n\r\n // Called on toggle of the \"override gst\" checkbox\r\n overrideGst(selectedInsurer, $index: number) {\r\n const self = this;\r\n this.taskQueue.queueMicroTask(() => {\r\n this.isDirty = true;\r\n\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n\r\n if (!this.model.gstOverrideFlag) {\r\n if (isRiskCosts) {\r\n this.model.situations.forEach((situation) => {\r\n if (situation.risks) {\r\n situation.risks.forEach((risk) => {\r\n const config = this.selectedInsurer.riskConfiguration.find((x) => x.entityRiskId === risk.entityRiskId);\r\n if (!config?.autoRatedRisk) {\r\n self.resetGstValues(risk, config);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (isPackagedCosts) {\r\n const config = this.selectedInsurer.packageConfiguration;\r\n self.resetGstValues(this.model.packageCosts, config);\r\n }\r\n\r\n if (isCoInsured) {\r\n self.resetCoInsuredGstValues();\r\n }\r\n }\r\n });\r\n }\r\n\r\n calculateFapDerivedAmount(config, fapValue, fapPrevValue) {\r\n let derivedValue = 0;\r\n const value = fapValue ? fapValue : 0;\r\n const prevValue = fapPrevValue ? fapPrevValue : 0;\r\n\r\n if (config.fapFormula === 'Math.Round(fapAmount * (fapTransactionDays / 365), 2)') {\r\n derivedValue = evenRound(value * (config.fapTransactionDays / 365), 2);\r\n } else if (config.fapFormula === 'Math.Round(fapAmount * (fapTransactionDays / 366), 2)') {\r\n derivedValue = evenRound(value * (config.fapTransactionDays / 366), 2);\r\n } else if (config.fapFormula === 'Math.Round((fapAmount - fapPrevAmount) * (fapTransactionDays / 365), 2)') {\r\n derivedValue = evenRound((value - prevValue) * (config.fapTransactionDays / 365), 2);\r\n } else if (config.fapFormula === 'Math.Round((fapAmount - fapPrevAmount) * (fapTransactionDays / 366), 2)') {\r\n derivedValue = evenRound((value - prevValue) * (config.fapTransactionDays / 366), 2);\r\n }\r\n\r\n return derivedValue;\r\n }\r\n\r\n calculateFapFsl(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskOrPackageCosts.fapPremium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateFapGst(isAu, riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapGstOverridden = false;\r\n\r\n if (!Object.keys(riskOrPackageCosts).length) {\r\n return 0;\r\n }\r\n\r\n const value = isAu\r\n ? new BigNumber(riskOrPackageCosts.fapPremium).plus(riskOrPackageCosts.fapFsl).toNumber()\r\n : new BigNumber(riskOrPackageCosts.fapPremium)\r\n .plus(riskOrPackageCosts.fapEarthquakePremium)\r\n .plus(riskOrPackageCosts.fapEarthquakeLevy)\r\n .plus(riskOrPackageCosts.fapFsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateFapStampDuty(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapStampDutyOverridden = false;\r\n\r\n if (!Object.keys(riskOrPackageCosts).length) {\r\n return 0;\r\n }\r\n\r\n return evenRound(\r\n new BigNumber(riskOrPackageCosts.fapPremium)\r\n .plus(riskOrPackageCosts.fapFsl)\r\n .plus(riskOrPackageCosts.fapGst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateFsl(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskOrPackageCosts.premium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2\r\n );\r\n }\r\n\r\n calculateGst(isAu, riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(riskOrPackageCosts.premium).plus(riskOrPackageCosts.fsl).toNumber()\r\n : new BigNumber(riskOrPackageCosts.premium)\r\n .plus(riskOrPackageCosts.earthquakePremium)\r\n .plus(riskOrPackageCosts.earthquakeLevy)\r\n .plus(riskOrPackageCosts.fsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateStampDuty(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(riskOrPackageCosts.premium)\r\n .plus(riskOrPackageCosts.fsl)\r\n .plus(riskOrPackageCosts.gst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateBrokerageGst(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isBrokerageGstOverridden = false;\r\n\r\n return config.gstApplies ? calculateGst(riskOrPackageCosts.brokerage, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateEarthquakeBrokerageGst(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isEarthquakeBrokerageGstOverridden = false;\r\n\r\n return config.gstApplies ? calculateGst(riskOrPackageCosts.earthquakeBrokerage, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredInsurerRiskFsl(insurerRiskCosts, config) {\r\n insurerRiskCosts.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(insurerRiskCosts.premium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskTotalGst(isAu, riskCosts, config) {\r\n riskCosts.isTotalGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(riskCosts.totalPremium).plus(riskCosts.totalFsl).toNumber()\r\n : new BigNumber(riskCosts.totalPremium)\r\n .plus(riskCosts.totalEarthquakePremium)\r\n .plus(riskCosts.totalEarthquakeLevy)\r\n .plus(riskCosts.totalFsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredInsurerRiskGst(isAu, insurerRiskCosts, config) {\r\n insurerRiskCosts.isGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(insurerRiskCosts.premium).plus(insurerRiskCosts.fsl).toNumber()\r\n : new BigNumber(insurerRiskCosts.premium)\r\n .plus(insurerRiskCosts.earthquakePremium)\r\n .plus(insurerRiskCosts.earthquakeLevy)\r\n .plus(insurerRiskCosts.fsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredRiskTotalStampDuty(riskCosts, config) {\r\n riskCosts.isTotalStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(riskCosts.totalPremium)\r\n .plus(riskCosts.totalFsl)\r\n .plus(riskCosts.totalGst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredInsurerRiskStampDuty(insurerRiskCosts, config) {\r\n insurerRiskCosts.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(insurerRiskCosts.premium)\r\n .plus(insurerRiskCosts.fsl)\r\n .plus(insurerRiskCosts.gst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskTotalFsl(riskCosts, config) {\r\n riskCosts.isTotalFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskCosts.totalPremium)\r\n .dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskFsl(risk, config) {\r\n risk.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalFsl)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskGst(risk, config) {\r\n risk.isGstOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalGst)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredStampDuty(risk, config) {\r\n risk.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalStampDuty)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n coInsuredRiskTotalsChanged(risk, fieldName, riskConfig) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.parseFslStampDutyRate(riskConfig);\r\n\r\n /** Recalc Total Fsl **/\r\n const totalFslRecalcFields = ['totalPremium'];\r\n if (totalFslRecalcFields.includes(fieldName)) {\r\n if (riskConfig.fslRate !== 0) {\r\n risk.totalFsl = this.calculateCoInsuredRiskTotalFsl(risk, riskConfig);\r\n }\r\n }\r\n\r\n /** Recalc Total GST **/\r\n const totalGstRecalcFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl'];\r\n if (totalGstRecalcFields.includes(fieldName)) {\r\n risk.totalGst = this.calculateCoInsuredRiskTotalGst(isAu, risk, riskConfig);\r\n }\r\n\r\n /** Recalc Total Stamp Duty **/\r\n const totalStampDutyRecalcFields = ['totalPremium', 'totalFsl', 'totalGst'];\r\n if (totalStampDutyRecalcFields.includes(fieldName)) {\r\n if (riskConfig.stampDutyRate !== 0) {\r\n risk.totalStampDuty = this.calculateCoInsuredRiskTotalStampDuty(risk, riskConfig);\r\n }\r\n }\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n\r\n /** Recalc Insurer Risks **/\r\n const insurerRiskRecalcFields = [\r\n 'totalPremium',\r\n 'totalEarthquakePremium',\r\n 'totalEarthquakeLevy',\r\n 'totalFsl',\r\n 'totalGst',\r\n 'totalStampDuty',\r\n ];\r\n if (insurerRiskRecalcFields.includes(fieldName)) {\r\n risk.insurerRisks.forEach((insurer) => {\r\n const insurerConfig = riskConfig.insurerRisks.find(\r\n (x) => x.entityInsurerRiskId === insurer.entityInsurerRiskId,\r\n );\r\n\r\n const premiumFields = ['totalPremium'];\r\n if (premiumFields.includes(fieldName)) {\r\n insurer.premium = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalPremium).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n if (isNz) {\r\n const earthquakePremiumFields = ['totalEarthquakePremium'];\r\n if (earthquakePremiumFields.includes(fieldName)) {\r\n insurer.earthquakePremium = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld)\r\n .multipliedBy(risk.totalEarthquakePremium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n const earthquakeLevyFields = ['totalEarthquakeLevy'];\r\n if (earthquakeLevyFields.includes(fieldName)) {\r\n insurer.earthquakeLevy = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld)\r\n .multipliedBy(risk.totalEarthquakeLevy)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n }\r\n\r\n const fslFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl'];\r\n if (fslFields.includes(fieldName)) {\r\n insurer.fsl = this.calculateCoInsuredRiskFsl(risk, insurerConfig);\r\n }\r\n\r\n const gstFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl', 'totalGst'];\r\n if (gstFields.includes(fieldName)) {\r\n insurer.gst = this.calculateCoInsuredRiskGst(risk, insurerConfig);\r\n }\r\n\r\n const stampDutyFields = [\r\n 'totalPremium',\r\n 'totalEarthquakePremium',\r\n 'totalEarthquakeLevy',\r\n 'totalFsl',\r\n 'totalGst',\r\n 'totalStampDuty',\r\n ];\r\n if (stampDutyFields.includes(fieldName)) {\r\n insurer.stampDuty = this.calculateCoInsuredStampDuty(risk, insurerConfig);\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n const brokerageFields = ['totalPremium'];\r\n if (brokerageFields.includes(fieldName)) {\r\n switch (insurer.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurer.brokerage = evenRound((insurer.premium * insurer.brokeragePercentage) / 100, 2);\r\n insurer.brokerageGst = this.calculateBrokerageGst(insurer, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurer.brokerageGst = this.calculateBrokerageGst(insurer, riskConfig);\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n const earthquakeBrokerageFields = ['totalEarthquakePremium'];\r\n if (earthquakeBrokerageFields.includes(fieldName)) {\r\n switch (insurer.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurer.earthquakeBrokerage = evenRound(\r\n (insurer.earthquakePremium * insurer.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n insurer.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurer, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurer.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurer, riskConfig);\r\n break;\r\n }\r\n }\r\n\r\n this.isValueOverridden(isAu, insurer, riskConfig);\r\n });\r\n }\r\n });\r\n }\r\n\r\n coInsuredInsurerRiskChanged(risk, insurerRisk, fieldName, riskConfig) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.parseFslStampDutyRate(riskConfig);\r\n\r\n /** Recalc Fsl **/\r\n const fslRecalcFields = ['premium'];\r\n if (fslRecalcFields.includes(fieldName)) {\r\n if (riskConfig.fslRate !== 0) {\r\n insurerRisk.fsl = this.calculateCoInsuredInsurerRiskFsl(insurerRisk, riskConfig);\r\n }\r\n }\r\n\r\n /** Recalc GST **/\r\n const gstRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl'];\r\n if (gstRecalcFields.includes(fieldName)) {\r\n insurerRisk.gst = this.calculateCoInsuredInsurerRiskGst(isAu, insurerRisk, riskConfig);\r\n }\r\n\r\n /** Recalc Stamp Duty **/\r\n const stampDutyRecalcFields = ['premium', 'fsl', 'gst'];\r\n if (stampDutyRecalcFields.includes(fieldName)) {\r\n if (riskConfig.stampDutyRate !== 0) {\r\n insurerRisk.stampDuty = this.calculateCoInsuredInsurerRiskStampDuty(insurerRisk, riskConfig);\r\n }\r\n }\r\n\r\n /** Brokerage Options **/\r\n const brokerageFields = [\r\n 'premium',\r\n 'earthquakePremium',\r\n 'brokerageOptions',\r\n 'earthquakeBrokerageOptions',\r\n 'brokerage',\r\n 'earthquakeBrokerage',\r\n 'brokeragePercentage',\r\n 'earthquakeBrokeragePercentage',\r\n ];\r\n if (brokerageFields.includes(fieldName)) {\r\n const selectedBrokerageOption = riskConfig.insurerRisks\r\n .find((x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId)\r\n .brokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.brokerageTypeId);\r\n\r\n // Merge in selected brokerage option\r\n insurerRisk.amountEditable = selectedBrokerageOption.amountEditable;\r\n insurerRisk.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n insurerRisk.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'brokerageOptions') {\r\n switch (insurerRisk.brokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n insurerRisk.brokeragePercentage = 0;\r\n insurerRisk.brokerage = 0.0;\r\n insurerRisk.brokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n switch (insurerRisk.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurerRisk.brokerage = evenRound((insurerRisk.premium * insurerRisk.brokeragePercentage) / 100, 2);\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = riskConfig.insurerRisks\r\n .find((x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId)\r\n .earthquakeBrokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.earthquakeBrokerageTypeId);\r\n\r\n // Merge in selected brokerage option\r\n insurerRisk.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n insurerRisk.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n insurerRisk.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'earthquakeBrokerageOptions') {\r\n switch (insurerRisk.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n insurerRisk.earthquakeBrokeragePercentage = 0;\r\n insurerRisk.earthquakeBrokerage = 0.0;\r\n insurerRisk.earthquakeBrokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n switch (insurerRisk.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurerRisk.earthquakeBrokerage = evenRound(\r\n (insurerRisk.earthquakePremium * insurerRisk.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** Update Risk Totals **/\r\n const totalRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl', 'gst', 'stampDuty'];\r\n if (totalRecalcFields.includes(fieldName)) {\r\n risk.totalPremium = risk.insurerRisks.reduce(\r\n (total, { premium }) => evenRound(new BigNumber(total).plus(premium).toNumber(), 2),\r\n 0,\r\n );\r\n\r\n if (isNz) {\r\n risk.totalEarthquakePremium = risk.insurerRisks.reduce(\r\n (total, { earthquakePremium }) => evenRound(new BigNumber(total).plus(earthquakePremium).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalEarthquakeLevy = risk.insurerRisks.reduce(\r\n (total, { earthquakeLevy }) => evenRound(new BigNumber(total).plus(earthquakeLevy).toNumber(), 2),\r\n 0,\r\n );\r\n }\r\n\r\n risk.totalFsl = risk.insurerRisks.reduce(\r\n (total, { fsl }) => evenRound(new BigNumber(total).plus(fsl).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalGst = risk.insurerRisks.reduce(\r\n (total, { gst }) => evenRound(new BigNumber(total).plus(gst).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalStampDuty = risk.insurerRisks.reduce(\r\n (total, { stampDuty }) => evenRound(new BigNumber(total).plus(stampDuty).toNumber(), 2),\r\n 0,\r\n );\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n }\r\n\r\n this.isValueOverridden(isAu, insurerRisk, riskConfig);\r\n });\r\n }\r\n\r\n riskChanged(risk, fieldName, riskConfiguration = null, override = false) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n if (fieldName === 'gst' && override) {\r\n this.model.gstOverrideFlag = true;\r\n }\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n const isFap = this.model.useFapFlag;\r\n const config = isRiskCosts\r\n ? this.selectedInsurer.riskConfiguration.find((x) => x.entityRiskId === risk.entityRiskId)\r\n : this.selectedInsurer.packageConfiguration;\r\n\r\n this.parseFslStampDutyRate(config);\r\n\r\n risk.premiumTotal = evenRound(\r\n new BigNumber(risk.premium)\r\n .plus(risk.fsl)\r\n .plus(risk.gst)\r\n .plus(risk.stampDuty || 0)\r\n .toNumber(),\r\n 2,\r\n );\r\n\r\n /** Recalc fapFsl **/\r\n const fapFslRecalcFields = ['fapPremium'];\r\n if (fapFslRecalcFields.includes(fieldName)) {\r\n if (config.fslRate !== 0) {\r\n risk.fapFsl = this.calculateFapFsl(risk, config);\r\n }\r\n }\r\n\r\n /** Recalc fapGst **/\r\n const fapGstRecalcFields = ['fapPremium', 'fapEarthquakePremium', 'fapEarthquakeLevy', 'fapFsl'];\r\n if (fapGstRecalcFields.includes(fieldName)) {\r\n risk.fapGst = this.calculateFapGst(isAu, risk, config);\r\n }\r\n\r\n /** Recalc fapStampDuty **/\r\n const fapStampDutyRecalcFields = ['fapPremium', 'fapFsl', 'fapGst'];\r\n if (fapStampDutyRecalcFields.includes(fieldName)) {\r\n if (config.stampDutyRate !== 0) {\r\n risk.fapStampDuty = this.calculateFapStampDuty(risk, config);\r\n }\r\n }\r\n\r\n /** Set premium **/\r\n if (fieldName === 'fapPremium') {\r\n risk.premium = this.calculateFapDerivedAmount(this.config, risk.fapPremium, risk.fapPrevPremium);\r\n\r\n // TODO: revisit this late on\r\n // this fixes an issue where updating the fapPremium causes the GST amount to be rounded incorrectly\r\n this.riskChanged(risk, 'premium');\r\n }\r\n\r\n /** Set earthquakePremium **/\r\n if (fieldName === 'fapEarthquakePremium') {\r\n risk.earthquakePremium = this.calculateFapDerivedAmount(\r\n this.config,\r\n risk.fapEarthquakePremium,\r\n risk.fapPrevEarthquakePremium,\r\n );\r\n }\r\n\r\n /** Set earthquakeLevy **/\r\n if (fieldName === 'fapEarthquakeLevy') {\r\n risk.earthquakeLevy = this.calculateFapDerivedAmount(\r\n this.config,\r\n risk.fapEarthquakeLevy,\r\n risk.fapPrevEarthquakeLevy,\r\n );\r\n }\r\n\r\n /** Set fsl **/\r\n if (fieldName === 'fapFsl' || (config.fslRate !== 0 && fapFslRecalcFields.includes(fieldName))) {\r\n risk.fsl = this.calculateFapDerivedAmount(this.config, risk.fapFsl, risk.fapPrevFsl);\r\n }\r\n\r\n /** Set gst **/\r\n if (fieldName === 'fapGst' || fapGstRecalcFields.includes(fieldName)) {\r\n risk.gst = this.calculateFapDerivedAmount(this.config, risk.fapGst, risk.fapPrevGst);\r\n }\r\n\r\n /** Set stampDuty **/\r\n if (\r\n fieldName === 'fapStampDuty' ||\r\n (config.stampDutyRate !== 0 && fapStampDutyRecalcFields.includes(fieldName))\r\n ) {\r\n risk.stampDuty = this.calculateFapDerivedAmount(this.config, risk.fapStampDuty, risk.fapPrevStampDuty);\r\n }\r\n\r\n /** Recalc FSL **/\r\n const fslRecalcFields = ['premium'];\r\n if (fslRecalcFields.includes(fieldName)) {\r\n if (config.fslRate !== 0) {\r\n risk.fsl = this.calculateFsl(risk, config);\r\n }\r\n }\r\n\r\n /** Recalc GST **/\r\n const gstRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl'];\r\n if (gstRecalcFields.includes(fieldName)) {\r\n risk.gst = this.calculateGst(isAu, risk, config);\r\n }\r\n\r\n /** Recalc Stamp Duty **/\r\n const stampDutyRecalcFields = ['premium', 'fsl', 'gst'];\r\n if (stampDutyRecalcFields.includes(fieldName)) {\r\n if (config.stampDutyRate !== 0) {\r\n risk.stampDuty = this.calculateStampDuty(risk, config);\r\n }\r\n }\r\n\r\n /** Brokerage Options **/\r\n const brokerageFields = [\r\n 'premium',\r\n 'earthquakePremium',\r\n 'fapPremium',\r\n 'fapEarthquakePremium',\r\n 'brokerageOptions',\r\n 'earthquakeBrokerageOptions',\r\n 'brokerage',\r\n 'earthquakeBrokerage',\r\n 'brokeragePercentage',\r\n 'earthquakeBrokeragePercentage',\r\n ];\r\n if (brokerageFields.includes(fieldName)) {\r\n if (isRiskCosts) {\r\n const selectedBrokerageOption = config.brokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.selectedBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n risk.brokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n risk.amountEditable = selectedBrokerageOption.amountEditable;\r\n risk.defaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n risk.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n risk.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'brokerageOptions') {\r\n switch (risk.brokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n risk.brokeragePercentage = 0;\r\n risk.brokerage = 0.0;\r\n risk.brokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n switch (risk.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n risk.brokerage = evenRound((risk.premium * risk.brokeragePercentage) / 100, 2);\r\n\r\n risk.brokerageGst = this.calculateBrokerageGst(risk, config);\r\n break;\r\n case 3: // Advised Value\r\n risk.brokerageGst = this.calculateBrokerageGst(risk, config);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = config.earthquakeBrokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.selectedEarthquakeBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n risk.earthquakeBrokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n risk.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n risk.earthquakeDefaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n risk.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n risk.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'earthquakeBrokerageOptions') {\r\n switch (risk.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n risk.earthquakeBrokeragePercentage = 0;\r\n risk.earthquakeBrokerage = 0.0;\r\n risk.earthquakeBrokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n switch (risk.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n risk.earthquakeBrokerage = evenRound(\r\n (risk.earthquakePremium * risk.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n\r\n risk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(risk, config);\r\n break;\r\n case 3: // Advised Value\r\n risk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(risk, config);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n const selectedBrokerageOption = config.brokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.selectedBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n this.model.packageCosts.brokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n this.model.packageCosts.amountEditable = selectedBrokerageOption.amountEditable;\r\n this.model.packageCosts.defaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n this.model.packageCosts.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n this.model.packageCosts.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n switch (this.model.packageCosts.brokerageTypeId) {\r\n case 2: // Non Standard\r\n this.model.packageCosts.brokerage = evenRound(\r\n (this.model.packageCosts.premium * this.model.packageCosts.brokeragePercentage) / 100,\r\n 2,\r\n );\r\n\r\n this.model.packageCosts.brokerageGst = this.calculateBrokerageGst(this.model.packageCosts, config);\r\n break;\r\n case 3: // Advised Value\r\n this.model.packageCosts.brokerageGst = this.calculateBrokerageGst(this.model.packageCosts, config);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = config.earthquakeBrokerageOptions.find(\r\n (b) =>\r\n b.brokerageTypeId ===\r\n parseInt(this.model.packageCosts.selectedEarthquakeBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n this.model.packageCosts.earthquakeBrokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n this.model.packageCosts.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n this.model.packageCosts.earthquakeDefaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n this.model.packageCosts.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n this.model.packageCosts.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n switch (this.model.packageCosts.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n this.model.packageCosts.earthquakeBrokerage = evenRound(\r\n (this.model.packageCosts.earthquakePremium * this.model.packageCosts.earthquakeBrokeragePercentage) /\r\n 100,\r\n 2,\r\n );\r\n\r\n this.model.packageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(\r\n this.model.packageCosts,\r\n config,\r\n );\r\n break;\r\n case 3: // Advised Value\r\n this.model.packageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(\r\n this.model.packageCosts,\r\n config,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, risk, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, risk, config);\r\n });\r\n }\r\n\r\n isCoInsuredTotalOverridden(isAu, risk, config) {\r\n this.isCoInsuredTotalFslOverridden(risk, config);\r\n this.isCoInsuredTotalGstOverridden(isAu, risk, config);\r\n this.isCoInsuredTotalStampDutyOverridden(risk, config);\r\n }\r\n\r\n isFapValueOverridden(isAu, costs, config) {\r\n this.isFapFslOverridden(costs, config);\r\n this.isFapGstOverridden(isAu, costs, config);\r\n this.isFapStampDutyOverridden(costs, config);\r\n }\r\n\r\n isValueOverridden(isAu, costs, config) {\r\n this.isFslOverridden(costs, config);\r\n this.isGstOverridden(isAu, costs, config);\r\n this.isStampDutyOverridden(costs, config);\r\n this.isBrokerageGstOverridden(costs, config);\r\n this.isEarthquakeBrokerageGstOverridden(costs, config);\r\n }\r\n\r\n isFapFslOverridden(costs, config) {\r\n costs.isFapFslOverridden = new BigNumber(costs.fapFsl).toNumber() !== this.calculateFapFsl(costs, config);\r\n }\r\n\r\n isFapGstOverridden(isAu, costs, config) {\r\n costs.isFapGstOverridden = new BigNumber(costs.fapGst).toNumber() !== this.calculateFapGst(isAu, costs, config);\r\n }\r\n\r\n isFapStampDutyOverridden(costs, config) {\r\n costs.isFapStampDutyOverridden = new BigNumber(costs.fapStampDuty).toNumber() !== this.calculateFapStampDuty(costs, config);\r\n }\r\n\r\n isFslOverridden(costs, config) {\r\n costs.isFslOverridden = new BigNumber(costs.fsl).toNumber() !== this.calculateFsl(costs, config);\r\n }\r\n\r\n isGstOverridden(isAu, costs, config) {\r\n costs.isGstOverridden = new BigNumber(costs.gst).toNumber() !== this.calculateGst(isAu, costs, config);\r\n }\r\n\r\n isStampDutyOverridden(costs, config) {\r\n costs.isStampDutyOverridden = new BigNumber(costs.stampDuty).toNumber() !== this.calculateStampDuty(costs, config);\r\n }\r\n\r\n isBrokerageGstOverridden(costs, config) {\r\n costs.isBrokerageGstOverridden = new BigNumber(costs.brokerageGst).toNumber() !== this.calculateBrokerageGst(costs, config);\r\n }\r\n\r\n isEarthquakeBrokerageGstOverridden(costs, config) {\r\n costs.isEarthquakeBrokerageGstOverridden = new BigNumber(costs.earthquakeBrokerageGst).toNumber() !== this.calculateEarthquakeBrokerageGst(costs, config);\r\n }\r\n\r\n isCoInsuredTotalFslOverridden(risk, config) {\r\n risk.isTotalFslOverridden = new BigNumber(risk.totalFsl).toNumber() !== this.calculateCoInsuredRiskTotalFsl(risk, config);\r\n }\r\n\r\n isCoInsuredTotalGstOverridden(isAu, risk, config) {\r\n risk.isTotalGstOverridden = new BigNumber(risk.totalGst).toNumber() !== this.calculateCoInsuredRiskTotalGst(isAu, risk, config);\r\n }\r\n\r\n isCoInsuredTotalStampDutyOverridden(risk, config) {\r\n risk.isTotalStampDutyOverridden = new BigNumber(risk.totalStampDuty).toNumber() !== this.calculateCoInsuredRiskTotalStampDuty(risk, config);\r\n }\r\n\r\n async updateCurrentInsurer() {\r\n if (\r\n this.params.entityMode === EntityMode.View ||\r\n typeof this.config.insurers[this.selectedInsurerTab] === 'undefined' ||\r\n this.config.isReadOnly\r\n ) {\r\n return true;\r\n }\r\n\r\n if (this.config?.ratingRequired) {\r\n const entityInsurerRiskId = this.model.situations?.[0]?.risks?.[0]?.entityInsurerRiskId;\r\n\r\n const response = await this.api.putRiskPackageQuoteAutoRate(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n entityInsurerRiskId,\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n } else {\r\n const response = await this.api.putRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n }\r\n }\r\n\r\n async updateCoInsured() {\r\n if (this.params.entityMode === EntityMode.View || this.config.isReadOnly) {\r\n return true;\r\n }\r\n\r\n const response = await this.api.putCoInsuredRiskQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n }\r\n\r\n async validate() {\r\n return this.coInsuredFlag ? this.updateCoInsured() : this.updateCurrentInsurer();\r\n }\r\n\r\n async validateBotQuote() {\r\n return await this.api.validateBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n }\r\n\r\n // Open request quote modal\r\n async requestQuote() {\r\n // prevent double click of request quote button\r\n if (this.requestQuoteClicked || this.botRequestValidating || this.showRequestBotQuoteModal) {\r\n return;\r\n }\r\n\r\n this.requestQuoteClicked = true;\r\n\r\n if (await this.validate()) {\r\n try {\r\n this.botRequestValidating = true;\r\n this.showRequestBotQuoteModal = true;\r\n\r\n this.botValidationResult = (await this.validateBotQuote()).insurers;\r\n\r\n // Add id for table select row support\r\n if (this.botValidationResult) {\r\n // Discount code applies?\r\n this.captureDiscountCode = this.botValidationResult.some((x) => x.captureDiscountCode);\r\n\r\n for (let index = 0; index < this.botValidationResult.length; index++) {\r\n this.botValidationResult[index].id = index;\r\n // Pre-select or disable\r\n if (this.botValidationResult[index].canProcess) {\r\n this.selectedRows.push(this.botValidationResult[index]);\r\n this.botValidationResult[index].showSuccessStatus = true;\r\n } else {\r\n this.botValidationResult[index].checkboxDisabled = true;\r\n this.botValidationResult[index].showErrorStatus = true;\r\n this.botValidationResult[index].message = 'Validation failed. Expand row for details.';\r\n }\r\n\r\n for (\r\n let childIndex = 0;\r\n childIndex < this.botValidationResult[index].validationIssues.length;\r\n childIndex++\r\n ) {\r\n this.botValidationResult[index].validationIssues[childIndex].id = childIndex;\r\n }\r\n }\r\n }\r\n\r\n this.botRequestValidating = false;\r\n } catch (error) {\r\n this.botRequestValidating = false;\r\n this.showRequestBotQuoteModal = false;\r\n this.requestQuoteClicked = false;\r\n }\r\n }\r\n }\r\n\r\n protected selectAll(event: any, results: any[]) {\r\n const self = this;\r\n this.taskQueue.queueMicroTask(() => {\r\n if (event.target.checked) {\r\n self.selectedRows = self.botValidationResult.filter((x) => !x.checkboxDisabled).slice();\r\n } else {\r\n self.selectedRows = [];\r\n }\r\n });\r\n }\r\n\r\n protected rowClicked(row, $index = 0) {\r\n if(row.validationIssues.length === 0) return\r\n row.showChildRows = !row.showChildRows;\r\n }\r\n\r\n async submitQuoteRequest() {\r\n this.submittingQuoteRequest = true;\r\n const body = {requestedInsurers: this.selectedRows.map((x) => ({insurerId:x.insurerId, discountCode: x.discountCode ?? null}))}\r\n\r\n try {\r\n const response = await this.api.submitBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n body,\r\n );\r\n\r\n if (response) {\r\n this.isQuoteRequestSubmitted = true;\r\n }\r\n\r\n this.submittingQuoteRequest = false;\r\n } catch (error) {\r\n this.submittingQuoteRequest = false;\r\n }\r\n }\r\n\r\n closeQuoteRequestModal() {\r\n if (this.isQuoteRequestSubmitted) {\r\n if (this.params.entityType === EntityType.Quote) {\r\n this.router.navigateToRoute('clientQuotes', { id: this.params.id, quoteId: this.params.entityId });\r\n } else if (this.params.entityType === EntityType.Incomplete || this.params.entityType === EntityType.Policy) {\r\n this.router.navigateToRoute('clientPolicies', {\r\n id: this.params.id,\r\n policyId: this.params.parentEntityId,\r\n policyVersionId: 0,\r\n statusTypeId: this.params.statusTypeId,\r\n versionNo: this.params.versionNo,\r\n });\r\n }\r\n } else {\r\n this.botRequestValidating = false;\r\n this.showRequestBotQuoteModal = false;\r\n this.requestQuoteClicked = false;\r\n this.botValidationResult = undefined;\r\n this.selectedRows = [];\r\n }\r\n }\r\n\r\n // Open cancel quote request modal\r\n async cancelQuoteRequest() {\r\n this.showCancelQuoteRequestModal = true;\r\n }\r\n\r\n async confirmCancelQuoteRequest(action: ConfirmModalActions) {\r\n if (action === 'cancel') {\r\n this.showCancelQuoteRequestModal = false;\r\n return;\r\n }\r\n\r\n if (action === 'confirm') {\r\n try {\r\n this.isCancelingQuoteRequest = true;\r\n const response = await this.api.cancelBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n\r\n if (response) {\r\n window.location.reload();\r\n }\r\n\r\n this.showCancelQuoteRequestModal = false;\r\n this.isCancelingQuoteRequest = false;\r\n } catch (error) {\r\n this.showCancelQuoteRequestModal = false;\r\n this.isCancelingQuoteRequest = false;\r\n }\r\n }\r\n }\r\n\r\n async getList(type) {\r\n this.listType = type;\r\n if (type === 'clause') {\r\n this.list = await this.api.insurerClauses(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n\r\n this.selectedRowsPrint = this.list.filter((x: any) => x.printFlag);\r\n\r\n } else if (type === 'referral') {\r\n this.list = await this.api.insurerReferrals(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n }\r\n\r\n this.showListModal = true;\r\n }\r\n\r\n async selectAllPrint (event: Event) {\r\n if (this.selectedRowsPrint.length != this.list.length) {\r\n this.selectedRowsPrint = this.list.slice();\r\n } else {\r\n this.selectedRowsPrint = [];\r\n }\r\n\r\n await Promise.all(this.list.map((x: any) => this.printRow(x, (event.target as HTMLInputElement).checked)));\r\n }\r\n\r\n selectPrint(event: Event, row: any) {\r\n this.taskQueue.queueMicroTask(async () => {\r\n await this.printRow(row, (event.target as HTMLInputElement).checked);\r\n });\r\n }\r\n\r\n async printRow(row: any, printFlag: boolean) {\r\n try {\r\n await this.api.printInsurerClause(\r\n this.params.id!,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId!),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityInsurerClauseListId,\r\n printFlag);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n deleteAll(action = 'delete') {\r\n this.isDeleteAllMode = action === 'delete';\r\n }\r\n\r\n async processDeleteAll() {\r\n try {\r\n let response;\r\n if (this.listType === 'clause') {\r\n response = await this.api.deleteAllInsurerClauses(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n } else if (this.listType === 'referral') {\r\n response = await this.api.deleteAllinsurerReferrals(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n }\r\n\r\n if (response) {\r\n this.isDeleteAllMode = false;\r\n this.list = [];\r\n this.disabledListButtons();\r\n }\r\n } catch (error) {\r\n this.isDeleteAllMode = false;\r\n console.log(error);\r\n }\r\n }\r\n\r\n deleteRow(row, action = 'delete') {\r\n this.isDeleteMode = action === 'delete';\r\n row.isDeleteMode = action === 'delete';\r\n }\r\n\r\n async processDeleteRow(row) {\r\n try {\r\n let response;\r\n if (this.listType === 'clause') {\r\n response = await this.api.deleteInsurerClause(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityInsurerClauseListId,\r\n );\r\n } else if (this.listType === 'referral') {\r\n response = await this.api.deleteinsurerReferral(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityReferDeclineValidationIssueId,\r\n );\r\n }\r\n\r\n if (response) {\r\n if (this.listType === 'clause') {\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount =\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount - 1;\r\n } else if (this.listType === 'referral') {\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount =\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount - 1;\r\n }\r\n\r\n const index = this.list.indexOf(row);\r\n this.list.splice(index, 1);\r\n this.isDeleteMode = false;\r\n if (!this.list.length) {\r\n this.disabledListButtons();\r\n }\r\n }\r\n } catch (error) {\r\n this.isDeleteMode = false;\r\n log.error(error);\r\n }\r\n }\r\n\r\n disabledListButtons() {\r\n if (this.listType === 'clause') {\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount = 0;\r\n this.config.insurers[this.selectedInsurerTab].insurerClausesPresent = false;\r\n } else if (this.listType === 'referral') {\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount = 0;\r\n this.config.insurers[this.selectedInsurerTab].referralIssuesPresent = false;\r\n }\r\n }\r\n\r\n canShowOverrideButton(entityInsurerRiskId, riskConfig) {\r\n let canShow = false;\r\n\r\n // Don't show override if it's a decline\r\n if (this.isDeclineDetails(entityInsurerRiskId)) {\r\n return false;\r\n }\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n if (status) {\r\n if (status.transactionStatus === 600000000) {\r\n canShow = true;\r\n }\r\n\r\n if (!status.errorDecline || !Object.keys(status.errorDecline).length) {\r\n if (riskConfig.autoRatedRisk) {\r\n canShow = false;\r\n }\r\n }\r\n }\r\n\r\n return canShow;\r\n }\r\n\r\n isDeclineDetails(entityInsurerRiskId) {\r\n let isDecline = false;\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n // if (status && status.errorDecline) {\r\n // if (Object.keys(status.errorDecline).length) {\r\n // isDecline = true;\r\n // }\r\n // }\r\n\r\n if (status && status.transactionStatus === 600000004) {\r\n isDecline = true;\r\n }\r\n\r\n return isDecline;\r\n }\r\n\r\n canShowReferralDetailsButton(entityInsurerRiskId) {\r\n let canShow = false;\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n if (status && status.errorDecline) {\r\n if (Object.keys(status.errorDecline).length) {\r\n canShow = true;\r\n }\r\n }\r\n\r\n return canShow;\r\n }\r\n\r\n async referralDetails(riskId, riskConfig) {\r\n this.showReferralDetails = true;\r\n\r\n this.rejectSituation = '';\r\n this.rejectRisk = '';\r\n this.rejectReason = '';\r\n\r\n const rejection = await this.api.getRejection(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n riskId,\r\n );\r\n\r\n this.rejectSituation = rejection?.situation;\r\n this.rejectRisk = rejection?.risk;\r\n this.rejectReason = rejection?.rejectionReason ?? '';\r\n }\r\n\r\n async override(riskId, parentIndex, riskConfig) {\r\n this.oldRisksModel = cloneDeep(this.model);\r\n this.currentlySelectedRiskId = riskId;\r\n this.showOverrideDetails = true;\r\n\r\n const overrideDetails: IOverride = await this.api.getOverrideDetails(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n riskId,\r\n );\r\n\r\n this.overrideDetails = overrideDetails;\r\n this.overrideRiskId = riskId;\r\n this.overrideParentSituationIndex = parentIndex;\r\n }\r\n\r\n async saveOverride() {\r\n const riskId = this.currentlySelectedRiskId;\r\n\r\n const foundRisk = this.model.situations\r\n .find((s) => s.risks.some((r) => r.entityInsurerRiskId === riskId))\r\n ?.risks.find((r) => r.entityInsurerRiskId === riskId);\r\n\r\n if (!foundRisk) {\r\n return false;\r\n }\r\n\r\n const overrideModel = {\r\n entityInsurerRiskId: riskId,\r\n authorisationCode: this.overrideDetails.authorisationCode,\r\n authorisationReasonId: this.overrideDetails.authorisationReasonId,\r\n overrideComment: this.overrideDetails.overrideComment,\r\n fapPremium: foundRisk.fapPremium,\r\n fapEarthquakePremium: foundRisk.fapEarthquakePremium,\r\n fapEarthquakeLevy: foundRisk.fapEarthquakeLevy,\r\n fapFsl: foundRisk.fapFsl,\r\n fapGst: foundRisk.fapGst,\r\n premium: foundRisk.premium,\r\n earthquakePremium: foundRisk.earthquakePremium,\r\n earthquakeLevy: foundRisk.earthquakeLevy,\r\n fsl: foundRisk.fsl,\r\n gst: foundRisk.gst,\r\n brokerageTypeId: foundRisk.brokerageTypeId,\r\n brokeragePercentage: foundRisk.brokeragePercentage,\r\n brokerage: foundRisk.brokerage,\r\n brokerageGst: foundRisk.brokerageGst,\r\n earthquakeBrokerageTypeId: foundRisk.earthquakeBrokerageTypeId,\r\n earthquakeBrokeragePercentage: foundRisk.earthquakeBrokeragePercentage,\r\n earthquakeBrokerage: foundRisk.earthquakeBrokerage,\r\n earthquakeBrokerageGst: foundRisk.earthquakeBrokerageGst,\r\n stampDuty: foundRisk.stampDuty\r\n };\r\n\r\n const response = await this.api.putOverride(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n this.currentlySelectedRiskId,\r\n overrideModel,\r\n );\r\n\r\n if (response.ok === true) {\r\n this.currentlySelectedRiskId = null;\r\n this.showOverrideDetails = false;\r\n\r\n await this.loadConfiguration();\r\n }\r\n }\r\n\r\n closeOverride() {\r\n this.showOverrideDetails = false;\r\n this.overrideRiskId = -1;\r\n this.model = cloneDeep(this.oldRisksModel);\r\n this.currentlySelectedRiskId = null;\r\n\r\n this.oldRisksModel = {};\r\n }\r\n}\r\n\r\ninterface IOverride {\r\n authorisationCode: string;\r\n authorisationReasonId: number;\r\n brokerage?: number;\r\n brokerageGst?: number;\r\n brokeragePercentage?: number;\r\n brokerageTypeId?: number;\r\n earthquakeBrokerage?: number;\r\n earthquakeBrokerageGst?: number;\r\n earthquakeBrokeragePercentage?: number;\r\n earthquakeBrokerageTypeId?: number;\r\n earthquakeLevy?: number;\r\n earthquakePremium?: number;\r\n entityInsurerRiskId: number;\r\n fsl?: number;\r\n gst?: number;\r\n overrideComment: string;\r\n premium?: number;\r\n}\r\n"],"names":["api","i18n","router","taskQueue","toast","validationControllerFactory","ea","lookupData","styles","selectedInsurerTab","selectedSituationTab","context","this","insurers","appClientType","overrideRiskId","overrideParentSituationIndex","showGstWarning","gstExemptEntities","showRiskPackageCostsModal","setPackageFocus","isDirty","inputMaskOptions","tabClass","isRightChevronDisabled","showRequestBotQuoteModal","botRequestValidating","requestQuoteClicked","selectedRows","submittingQuoteRequest","showCancelQuoteRequestModal","isCancelingQuoteRequest","listType","showListModal","isDeleteAllMode","isDeleteMode","isQuoteRequestSubmitted","showReferralDetails","showOverrideDetails","authReasons","ratingStatuses","rejectSituation","rejectRisk","rejectReason","authorisationCode","authorisationReason","currentlySelectedRiskId","oldRisksModel","captureDiscountCode","selectedRowsPrint","validationController","createForCurrentScope","addRenderer","activate","model","params","actionType","NewBusiness","Reinstatement","minimumValue","removeObject","loadConfiguration","publish","debug","config","getRiskPackageCostsConfig","id","parseInt","entityId","entityType","entityMode","loadedConfig","coInsuredFlag","botInsurerInterfaceAvailable","botPreviouslyRequestedFlag","botPreviouslyRequestedForInsurerCodes","coInsuredRiskCostsConfig","riskPackageCostsConfig","ratingRequired","postAutorate","response","error","insurerTabChanged","getCoInsuredRiskQuote","result","setCoInsuredInsurerRiskBrokerageTypes","checkGstExemptStatus","riskRatingStatuses","length","forEach","status","quoteInsurerRiskId","authorisationReasons","applyOverrideStyles","isCoInsured","isPackagedCosts","packageFlag","isRiskCosts","isAu","isFap","useFapFlag","situations","situation","situationConfig","find","x","entitySituationId","risks","risk","entityRiskId","parseFslStampDutyRate","isCoInsuredTotalOverridden","insurerRisks","insurerRisk","isValueOverridden","selectedInsurer","packageConfiguration","packageCosts","riskConfiguration","isFapValueOverridden","fslRate","stampDutyRate","attached","scrollTabs","direction","tabPosition","getRiskPackageQuote","entityInsurerId","fapPremium","fapEarthquakePremium","fapEarthquakeLevy","fapFsl","fapGst","fapStampDuty","insurer","initialLoad","$index","findIndex","el","updateCurrentInsurer","isUpdateSuccessful","window","confirm","loadedInsurer","setPackageBrokerageTypes","setRiskBrokerageTypes","showUseFap","showViewFap","gstOverridden","gstOverrideFlag","autoRatedRisk","destroyAllToasts","clientGstExempt","clientGstExemptFlag","insurerOfficeGstExempt","insurerOfficeGstExemptFlag","riskGstExempt","some","r","gstApplies","push","Edit","selectedOption","configBrokerageOptions","brokerageOptions","b","brokerageTypeId","selectedBrokerageOption","amountEditable","defaultPercentage","percentageEditable","configEarthquakeBrokerageOptions","earthquakeBrokerageOptions","earthquakeBrokerageTypeId","selectedEarthquakeBrokerageOption","earthquakeAmountEditable","earthquakeDefaultPercentage","earthquakePercentageEditable","s","ir","entityInsurerRiskId","usePackageCosts","isReadOnly","packageCostsEnabled","changeRiskPackageCostTitle","changeRiskPackageCostCallBack","type","operation","op","path","value","patchRiskPackageQuote","queueTask","resetGstValues","riskOrPackageCosts","isNz","fapValuesReadOnly","calculateFapGst","gst","calculateFapDerivedAmount","fapPrevGst","calculateFapStampDuty","stampDuty","fapPrevStampDuty","calculateGst","calculateStampDuty","brokerageGst","calculateBrokerageGst","earthquakeBrokerageGst","calculateEarthquakeBrokerageGst","resetCoInsuredGstValues","riskConfig","totalGst","calculateCoInsuredRiskTotalGst","totalStampDuty","calculateCoInsuredRiskTotalStampDuty","insurerConfig","percentageHeld","multipliedBy","dividedBy","toNumber","overrideGst","self","queueMicroTask","fapValue","fapPrevValue","derivedValue","prevValue","fapFormula","fapTransactionDays","calculateFapFsl","isFapFslOverridden","isFapGstOverridden","Object","keys","plus","gstRate","isFapStampDutyOverridden","calculateFsl","isFslOverridden","premium","isGstOverridden","fsl","earthquakePremium","earthquakeLevy","isStampDutyOverridden","isBrokerageGstOverridden","brokerage","isEarthquakeBrokerageGstOverridden","earthquakeBrokerage","calculateCoInsuredInsurerRiskFsl","insurerRiskCosts","riskCosts","isTotalGstOverridden","totalPremium","totalFsl","totalEarthquakePremium","totalEarthquakeLevy","calculateCoInsuredInsurerRiskGst","isTotalStampDutyOverridden","calculateCoInsuredInsurerRiskStampDuty","calculateCoInsuredRiskTotalFsl","isTotalFslOverridden","calculateCoInsuredRiskFsl","calculateCoInsuredRiskGst","calculateCoInsuredStampDuty","coInsuredRiskTotalsChanged","fieldName","includes","brokeragePercentage","earthquakeBrokeragePercentage","coInsuredInsurerRiskChanged","reduce","total","riskChanged","override","premiumTotal","fapFslRecalcFields","fapGstRecalcFields","fapStampDutyRecalcFields","fapPrevPremium","fapPrevEarthquakePremium","fapPrevEarthquakeLevy","fapPrevFsl","isCoInsuredTotalFslOverridden","isCoInsuredTotalGstOverridden","isCoInsuredTotalStampDutyOverridden","costs","View","putRiskPackageQuoteAutoRate","ok","putRiskPackageQuote","updateCoInsured","putCoInsuredRiskQuote","validate","validateBotQuote","requestQuote","botValidationResult","index","canProcess","showSuccessStatus","checkboxDisabled","showErrorStatus","message","childIndex","validationIssues","selectAll","event","results","target","checked","filter","slice","rowClicked","row","showChildRows","submitQuoteRequest","body","requestedInsurers","map","insurerId","discountCode","submitBotQuote","closeQuoteRequestModal","Quote","navigateToRoute","quoteId","Incomplete","Policy","policyId","parentEntityId","policyVersionId","statusTypeId","versionNo","undefined","cancelQuoteRequest","confirmCancelQuoteRequest","action","cancelBotQuote","location","reload","getList","insurerClauses","list","printFlag","insurerReferrals","selectAllPrint","Promise","all","printRow","selectPrint","printInsurerClause","entityInsurerClauseListId","console","log","deleteAll","processDeleteAll","deleteAllInsurerClauses","deleteAllinsurerReferrals","disabledListButtons","deleteRow","processDeleteRow","deleteInsurerClause","deleteinsurerReferral","entityReferDeclineValidationIssueId","insurerClauseCount","referralIssueCount","indexOf","splice","insurerClausesPresent","referralIssuesPresent","canShowOverrideButton","canShow","isDeclineDetails","transactionStatus","errorDecline","isDecline","canShowReferralDetailsButton","referralDetails","riskId","getRejection","rejection","rejectionReason","parentIndex","getOverrideDetails","overrideDetails","saveOverride","foundRisk","overrideModel","authorisationReasonId","overrideComment","putOverride","closeOverride","computedFrom","autoinject","I18N","TaskQueue","ValidationControllerFactory","EventAggregator","RiskPackageCosts"],"sourceRoot":""}